@sunbird-cb/cbp-ai 0.1.120 → 0.1.121

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.
@@ -1782,8 +1782,8 @@ class EditCbpPlanComponent {
1782
1782
  competencySubTheme: [''],
1783
1783
  manualThemeInput: [''],
1784
1784
  manualSubThemeInput: [''],
1785
- proficiency_level: [''],
1786
- delivery_mode: [''],
1785
+ // proficiency_level: [''],
1786
+ // delivery_mode: [''],
1787
1787
  themeSearch: [''],
1788
1788
  subThemeSearch: [''],
1789
1789
  competencies: this.fb.array(this.planData?.competencies || []),
@@ -2014,8 +2014,8 @@ class EditCbpPlanComponent {
2014
2014
  let type = this.selectedCompetencyType;
2015
2015
  let theme = '';
2016
2016
  let subTheme = '';
2017
- let proficiency_level = '';
2018
- let delivery_mode = '';
2017
+ // let proficiency_level = ''
2018
+ // let delivery_mode = ''
2019
2019
  if (type === 'Domain') {
2020
2020
  // For Domain, use manual input
2021
2021
  theme = this.cbpForm.value.manualThemeInput?.trim();
@@ -2028,15 +2028,15 @@ class EditCbpPlanComponent {
2028
2028
  }
2029
2029
  if (type && theme && subTheme) {
2030
2030
  const exists = this.competenciesArray.value.some(c => c.theme === theme && c.sub_theme === subTheme && c.type === type);
2031
- proficiency_level = this.cbpForm.value.proficiency_level?.trim();
2032
- delivery_mode = this.cbpForm.value.delivery_mode?.trim();
2031
+ // proficiency_level = this.cbpForm.value.proficiency_level?.trim();
2032
+ // delivery_mode = this.cbpForm.value.delivery_mode?.trim();
2033
2033
  if (!exists) {
2034
2034
  const newComp = this.fb.group({
2035
2035
  type: [type],
2036
2036
  theme: [theme],
2037
2037
  sub_theme: [subTheme],
2038
- proficiency_level: [proficiency_level],
2039
- delivery_mode: [delivery_mode]
2038
+ // proficiency_level: [proficiency_level],
2039
+ // delivery_mode: [delivery_mode]
2040
2040
  });
2041
2041
  this.competenciesArray.push(newComp);
2042
2042
  }
@@ -2069,8 +2069,8 @@ class EditCbpPlanComponent {
2069
2069
  manualSubThemeInput: '',
2070
2070
  themeSearch: '',
2071
2071
  subThemeSearch: '',
2072
- proficiency_level: '',
2073
- delivery_mode: ''
2072
+ // proficiency_level:'',
2073
+ // delivery_mode:''
2074
2074
  });
2075
2075
  }
2076
2076
  filterThemes(searchText) {
@@ -2118,8 +2118,8 @@ class EditCbpPlanComponent {
2118
2118
  competencyType: 'Domain',
2119
2119
  manualThemeInput: comp?.theme,
2120
2120
  manualSubThemeInput: comp?.sub_theme,
2121
- proficiency_level: comp?.proficiency_level,
2122
- delivery_mode: comp?.delivery_mode
2121
+ // proficiency_level: comp?.proficiency_level,
2122
+ // delivery_mode: comp?.delivery_mode
2123
2123
  });
2124
2124
  const index = this.competenciesArray.value.findIndex(c => c.theme === comp?.theme &&
2125
2125
  c.sub_theme === comp?.sub_theme &&
@@ -2146,17 +2146,17 @@ class EditCbpPlanComponent {
2146
2146
  let type = this.selectedCompetencyType;
2147
2147
  let theme = '';
2148
2148
  let subTheme = '';
2149
- let proficiency_level = '';
2150
- let delivery_mode = '';
2149
+ // let proficiency_level = ''
2150
+ // let delivery_mode = ''
2151
2151
  if (type === 'Domain') {
2152
2152
  // For Domain, use manual input
2153
2153
  theme = this.cbpForm.value.manualThemeInput?.trim();
2154
2154
  subTheme = this.cbpForm.value.manualSubThemeInput?.trim();
2155
2155
  this.originalCompetencyValueArr = JSON.parse(JSON.stringify(this.competenciesArray.value));
2156
2156
  }
2157
- console.log('this.cbpForm.value', this.cbpForm.value);
2158
- proficiency_level = this.cbpForm.value.proficiency_level?.trim();
2159
- delivery_mode = this.cbpForm.value.delivery_mode?.trim();
2157
+ // console.log('this.cbpForm.value',this.cbpForm.value)
2158
+ // proficiency_level = this.cbpForm.value.proficiency_level?.trim();
2159
+ // delivery_mode = this.cbpForm.value.delivery_mode?.trim();
2160
2160
  console.log(' this.competenciesArray', this.competenciesArray);
2161
2161
  if (type && theme && subTheme) {
2162
2162
  console.log('this.editCompetencyIndex--', this.editCompetencyIndex);
@@ -2164,8 +2164,8 @@ class EditCbpPlanComponent {
2164
2164
  this.competenciesArray.value[this.editCompetencyIndex]['type'] = type;
2165
2165
  this.competenciesArray.value[this.editCompetencyIndex]['theme'] = theme;
2166
2166
  this.competenciesArray.value[this.editCompetencyIndex]['sub_theme'] = subTheme;
2167
- this.competenciesArray.value[this.editCompetencyIndex]['proficiency_level'] = proficiency_level;
2168
- this.competenciesArray.value[this.editCompetencyIndex]['delivery_mode'] = delivery_mode;
2167
+ // this.competenciesArray.value[this.editCompetencyIndex]['proficiency_level'] = proficiency_level
2168
+ // this.competenciesArray.value[this.editCompetencyIndex]['delivery_mode'] = delivery_mode
2169
2169
  }
2170
2170
  console.log('this.competenciesArray.--', this.competenciesArray.value);
2171
2171
  // if (!exists) {
@@ -2527,11 +2527,11 @@ class EditCbpPlanComponent {
2527
2527
  }
2528
2528
  }
2529
2529
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EditCbpPlanComponent, deps: [{ token: i1$1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.FormBuilder }, { token: i0.ChangeDetectorRef }, { token: SharedService }, { token: i3$1.MatSnackBar }, { token: i1.HttpClient }, { token: i3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
2530
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EditCbpPlanComponent, selector: "app-edit-cbp-plan", viewQueries: [{ propertyName: "dialogContent", first: true, predicate: ["dialogContent"], descendants: true }, { propertyName: "designationRef", first: true, predicate: ["designation"], descendants: true, read: ElementRef }, { propertyName: "editSection", first: true, predicate: ["editSection"], descendants: true }], ngImport: i0, template: "<div class=\"view-cbp-plan\" #dialogContent>\n <div class=\"popup-container\">\n <div class=\"popup-header\">\n <div>\n <div class=\"heading\">\n Edit Role Mapping\n <span class=\"text-sm\">\n ({{ cbpForm?.get('designation_name')?.value || planData?.designation_name }})\n </span>\n</div>\n </div>\n <div class=\"cursor-pointer\" (click)=\"closeDialog()\">\n <mat-icon>close</mat-icon>\n </div>\n </div>\n <div class=\"section-container\" [formGroup]=\"cbpForm\">\n\n <!-- <div class=\"section-header mt-4\">\n <input type=\"text\" formControlName=\"designation_name\" [value]=\"planData?.designation_name\"\n style=\"border-radius: 25px; border: 1px solid #ccc; padding: 8px 12px; width: 100%;font-size: 14px;font-family: 'Lato';\">\n\n\n </div> -->\n\n <mat-form-field appearance=\"outline\" class=\"mt-4 margin-top-s w-full required-select\" style=\"border-radius: 25px; border: 1px solid #ccc; padding: 8px 12px; width: 100%;font-size: 14px;font-family: 'Lato';\">\n <mat-select #designation formControlName=\"designation_name\"\n placeholder=\"Select designation\" (closed)=\"onDesignationDropdownClosed()\"\n panelClass=\"search-panel\" (openedChange)=\"setupScrollListener($event)\"\n >\n\n <!-- Sticky search input container -->\n <div class=\"sticky-search-container\" (click)=\"$event.stopPropagation()\">\n <div class=\"search-input-wrapper\">\n <input type=\"text\" placeholder=\"Search designation\" style=\"width:100%\"\n formControlName=\"searchDesignation\" class=\"search-input\"\n (keydown)=\"$event.stopPropagation()\"\n (keydown.enter)=\"$event.preventDefault(); $event.stopPropagation()\"\n autocomplete=\"off\">\n <!-- (keyup)=\"designationSearch($event)\" -->\n <div *ngIf=\"searchDesignationControl?.value\" type=\"button\" class=\"clear-icon\"\n (click)=\"clearDesignationSearch($event)\">\n <mat-icon>close</mat-icon>\n </div>\n </div>\n </div>\n <!-- Options list -->\n <!-- <ng-container *ngFor=\"let designation of masterData?.designation\">\n <mat-option\n *ngIf=\"designation?.name !== planData?.designation_name\"\n [value]=\"designation?.name\">\n {{ designation?.name }}\n </mat-option>\n</ng-container> -->\n<ng-container *ngFor=\"let designation of masterData?.designation\">\n <mat-option\n *ngIf=\"planData?.igot_designation_id || designation?.name !== planData?.designation_name\"\n [value]=\"designation?.name\">\n {{ designation?.name }}\n </mat-option>\n</ng-container>\n <!-- Loading indicator -->\n <div *ngIf=\"isLoadingMoreDesignations\" class=\"loading-indicator\">\n Load More...\n </div>\n <!-- No results message -->\n <mat-option *ngIf=\"(masterData?.designation)?.length === 0 || noMoreLegacyDesignations\" disabled class=\"no-data-option\">\n\n Designation Not Found.\n\n </mat-option>\n \n </mat-select>\n <!-- <mat-error class=\"text-xs\"\n *ngIf=\"designationForm?.get('designation_name')?.touched && designationForm?.get('designation_name')?.invalid\">\n Please select at least one designation.\n </mat-error> -->\n </mat-form-field>\n\n <div class=\"competency-container mt-4\">\n <div class=\"outside-layer-total\">\n <div class=\"inside-layer\">\n Total Competencies\n </div>\n <div class=\"count\">\n {{competenciesCount?.total}}\n </div>\n </div>\n <div class=\"outside-layer-behavioral\">\n <div class=\"inside-layer\">\n Behavioral Competencies\n </div>\n <div class=\"count\">\n {{competenciesCount?.behavioral}}\n </div>\n </div>\n <div class=\"outside-layer-functional\">\n <div class=\"inside-layer\">\n Functional Competencies\n </div>\n <div class=\"count\">\n {{competenciesCount?.functional}}\n </div>\n </div>\n <div class=\"outside-layer-domain\">\n <div class=\"inside-layer\">\n Domain Competencies\n </div>\n <div class=\"count\">\n {{competenciesCount?.domain}}\n </div>\n </div>\n </div>\n <div class=\"mt-4 section\">\n <div class=\"sub-heading\">\n <p>Wing/Division</p>\n </div>\n <div class=\"mt-4\">\n <input type=\"text\" formControlName=\"wing_division_section\" [value]=\"planData?.wing_division_section\"\n style=\"border-radius: 25px; border: 1px solid #ccc; padding: 8px 12px; width:100%;font-size: 14px;font-family: 'Lato';\">\n </div>\n </div>\n <div class=\"mt-2 section\">\n <div class=\"sub-heading\">\n <p>Roles & Responsibilities</p>\n </div>\n <div class=\"mt-4 additional-details\">\n <textarea class=\"custom-textarea\" formControlName=\"role_responsibilities_text\" rows=\"5\"\n placeholder=\"Roles & Responsibilities\"\n [value]=\"planData?.role_responsibilities?.join('\\n')\"></textarea>\n </div>\n </div>\n <div class=\"mt-2 section\">\n <div class=\"sub-heading\">\n <p>Activities</p>\n </div>\n <div class=\"mt-4 additional-details\">\n <textarea class=\"custom-textarea\" formControlName=\"activities_text\" rows=\"5\"\n placeholder=\"Activities\" [value]=\"planData?.activities?.join('\\n')\"></textarea>\n </div>\n </div>\n <div class=\"mt-2 section\">\n <div class=\"sub-heading\">\n <p>Competency</p>\n </div>\n <div #editSection class=\"enhanced-competency-section mt-2\">\n <!-- Step 1: Select Competency Type -->\n <div class=\"competency-step\">\n <label class=\"step-label\">1. Select Core Competency Type</label>\n <div class=\"competency-dropdown-container\">\n <mat-form-field appearance=\"outline\" class=\"competency-dropdown\">\n <mat-select formControlName=\"competencyType\" placeholder=\"Select Competency Type\"\n (selectionChange)=\"onCompetencyTypeChange($event.value)\">\n <mat-option value=\"Behavioral\">Behavioral</mat-option>\n <mat-option value=\"Functional\">Functional</mat-option>\n <mat-option value=\"Domain\">Domain</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n\n <!-- Step 2: Theme Selection (Behavioral/Functional from JSON, Domain manual) -->\n <div class=\"competency-step\" *ngIf=\"selectedCompetencyType\">\n <label class=\"step-label\">2. Select/Enter Theme</label>\n\n <!-- For Behavioral and Functional: Searchable Dropdown from JSON -->\n <div class=\"competency-dropdown-container\"\n *ngIf=\"selectedCompetencyType === 'Behavioral' || selectedCompetencyType === 'Functional'\">\n <mat-form-field appearance=\"outline\" class=\"competency-dropdown\">\n <mat-select formControlName=\"competencyTheme\" placeholder=\"Search and select theme\"\n (selectionChange)=\"onThemeChange($event.value)\">\n <!-- Search input inside dropdown -->\n <mat-option class=\"search-option\" disabled>\n <mat-form-field appearance=\"outline\" class=\"search-field\">\n <input matInput placeholder=\"Search themes...\" formControlName=\"themeSearch\"\n (input)=\"filterThemes($event.target?.value)\"\n (click)=\"$event.stopPropagation()\" (keydown)=\"$event.stopPropagation()\">\n </mat-form-field>\n </mat-option>\n\n <!-- Theme options -->\n <mat-option *ngFor=\"let theme of filteredThemes\" [value]=\"theme.name\">\n {{theme.name}}\n </mat-option>\n\n <!-- No results message -->\n <mat-option *ngIf=\"filteredThemes.length === 0 && themeSearchText\" disabled>\n No themes found matching \"{{themeSearchText}}\"\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <!-- For Domain: Manual input -->\n <div class=\"manual-input-container\" *ngIf=\"selectedCompetencyType === 'Domain'\">\n <input type=\"text\" formControlName=\"manualThemeInput\" placeholder=\"Enter Theme manually\"\n class=\"manual-input\" />\n </div>\n </div>\n\n <!-- Step 3: Sub-theme Selection -->\n <div class=\"competency-step\" *ngIf=\"selectedTheme || (selectedCompetencyType === 'Domain')\">\n <label class=\"step-label\">3. Select/Enter Sub-theme</label>\n\n <!-- For Behavioral and Functional: Searchable Dropdown based on selected theme -->\n <div class=\"competency-dropdown-container\"\n *ngIf=\"selectedCompetencyType === 'Behavioral' || selectedCompetencyType === 'Functional'\">\n <mat-form-field appearance=\"outline\" class=\"competency-dropdown\">\n <mat-select formControlName=\"competencySubTheme\"\n placeholder=\"Search and select sub-theme\"\n (selectionChange)=\"onSubThemeChange($event.value)\">\n <!-- Search input inside dropdown -->\n <mat-option class=\"search-option\" disabled>\n <mat-form-field appearance=\"outline\" class=\"search-field\">\n <input matInput placeholder=\"Search sub-themes...\"\n formControlName=\"subThemeSearch\"\n (input)=\"filterSubThemes($event.target.value)\"\n (click)=\"$event.stopPropagation()\" (keydown)=\"$event.stopPropagation()\">\n </mat-form-field>\n </mat-option>\n\n <!-- Sub-theme options -->\n <mat-option *ngFor=\"let subTheme of filteredSubThemes\" [value]=\"subTheme\">\n {{subTheme}}\n </mat-option>\n\n <!-- No results message -->\n <mat-option *ngIf=\"filteredSubThemes.length === 0 && subThemeSearchText\" disabled>\n No sub-themes found matching \"{{subThemeSearchText}}\"\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <!-- For Domain: Manual input -->\n <div class=\"manual-input-container\" *ngIf=\"selectedCompetencyType === 'Domain'\">\n <input type=\"text\" formControlName=\"manualSubThemeInput\"\n placeholder=\"Enter Sub-theme manually\" class=\"manual-input\" />\n </div>\n </div>\n\n <div class=\"competency-step\" *ngIf=\"selectedTheme || (selectedCompetencyType === 'Domain')\">\n <label class=\"step-label\">4. Competency Level</label>\n <div class=\"mt-2\">\n <!-- <input type=\"text\" formControlName=\"proficiency_level\" [value]=\"planData?.proficiency_level\"\n style=\"border-radius: 25px; border: 1px solid #ccc; padding: 8px 12px; width:100%;font-size: 14px;font-family: 'Lato';\"> -->\n\n <div class=\"competency-dropdown-container\">\n <mat-form-field appearance=\"outline\" class=\"competency-dropdown\">\n <mat-select formControlName=\"proficiency_level\" placeholder=\"Select Competency Level\"\n (selectionChange)=\"onCompetencyLevelChange($event.value)\">\n <mat-option value=\"Strategic\">Strategic</mat-option>\n <mat-option value=\"Tactical\">Tactical</mat-option>\n <mat-option value=\"Operational\">Operational</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n </div>\n\n <div class=\"competency-step\" *ngIf=\"selectedTheme || (selectedCompetencyType === 'Domain')\">\n <label class=\"step-label\">5. Delievery Mode</label>\n <div class=\"mt-2\">\n <!-- <input type=\"text\" formControlName=\"delivery_mode\" [value]=\"planData?.delivery_mode\"\n style=\"border-radius: 25px; border: 1px solid #ccc; padding: 8px 12px; width:100%;font-size: 14px;font-family: 'Lato';\"> -->\n <div class=\"competency-dropdown-container\">\n <mat-form-field appearance=\"outline\" class=\"competency-dropdown\">\n <mat-select formControlName=\"delivery_mode\" placeholder=\"Select Delivery Mode\"\n (selectionChange)=\"onDeliveryModeChange($event.value)\">\n <mat-option value=\"Online\">Online</mat-option>\n <mat-option value=\"Offline\">Offline</mat-option>\n <mat-option value=\"Blended\">Blended</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n </div>\n\n <!-- Add Button -->\n <div class=\"add-button-section\" *ngIf=\"selectedCompetencyType \">\n <button type=\"button\" *ngIf=\"!editDomainCompetencyFlag\" class=\"add-competency-btn\"\n [disabled]=\"!canAddCompetency()\"\n [ngClass]=\"canAddCompetency() ? 'btn-active' : 'btn-disable'\" (click)=\"addCompetency()\">\n Add Competency\n </button>\n <button type=\"button\" *ngIf=\"editDomainCompetencyFlag\" class=\"add-competency-btn btn-active\"\n (click)=\"updateCompetency()\">\n Update Competency\n </button>\n <button type=\"button\" *ngIf=\"editDomainCompetencyFlag\" class=\"add-competency-btn btn-active\"\n style=\"margin-left: 5px;\" (click)=\"cancelUpdate()\">\n Cancel </button>\n </div>\n </div>\n <div class=\"mt-4\">\n <div class=\"competency-sub-heading mt-2\" *ngIf=\"getCompetenciesByType('Behavioral')?.length\">\n Behavioral Competencies\n </div>\n\n <div class=\"competency-grid mt-2\">\n <div class=\"competency-item behavioural-pill\"\n *ngFor=\"let comp of getCompetenciesByType('Behavioral')\">\n <div class=\"flex-col-theme\">\n <div>\n <span class=\"competency-text-behavioral\"> {{ comp.theme }} - {{\n comp.sub_theme }} </span>\n </div>\n <div class=\"competency-tags\">\n <span *ngIf=\"comp.proficiency_level\"\n class=\"proficiency-tag\"\n [ngClass]=\"comp.proficiency_level?.toLowerCase()\"\n [matTooltip]=\"comp?.proficiency_rationale\"\n >\n {{ comp.proficiency_level }}\n </span>\n\n <span *ngIf=\"comp.delivery_mode\"\n class=\"delivery-mode-tag\"\n [ngClass]=\"comp.delivery_mode?.toLowerCase()\"\n [matTooltip]=\"comp?.delivery_mode_rationale\"\n >\n {{ comp.delivery_mode }}\n </span>\n </div>\n </div>\n <span class=\"cursor-pointer close\" (click)=\"deleteCompetency(comp)\">\n <mat-icon>close</mat-icon>\n </span>\n </div>\n </div>\n </div>\n <div class=\"mt-4\">\n <div class=\"competency-sub-heading mt-2\" *ngIf=\"getCompetenciesByType('Functional')?.length\">\n Functional Competencies</div>\n <div class=\"competency-grid mt-2\">\n <div class=\"competency-item functional-pill\"\n *ngFor=\"let comp of getCompetenciesByType('Functional')\">\n <div class=\"flex-col-theme\">\n <div>\n <span class=\"competency-text-functional\"> {{ comp.theme }} - {{\n comp.sub_theme }} </span>\n </div>\n <div class=\"competency-tags\">\n <span *ngIf=\"comp.proficiency_level\"\n class=\"proficiency-tag\"\n [ngClass]=\"comp.proficiency_level?.toLowerCase()\"\n [matTooltip]=\"comp?.proficiency_rationale\"\n >\n {{ comp.proficiency_level }}\n </span>\n\n <span *ngIf=\"comp.delivery_mode\"\n class=\"delivery-mode-tag\"\n [ngClass]=\"comp.delivery_mode?.toLowerCase()\"\n [matTooltip]=\"comp?.delivery_mode_rationale\"\n >\n {{ comp.delivery_mode }}\n </span>\n </div>\n </div>\n <span class=\"cursor-pointer close\" (click)=\"deleteCompetency(comp)\">\n <mat-icon>close</mat-icon>\n </span>\n </div>\n </div>\n </div>\n <div class=\"mt-4\">\n <div class=\"competency-sub-heading mt-2\">Domain Competencies</div>\n <div class=\"competency-grid mt-2\">\n <div class=\"competency-item domain-pill\" *ngFor=\"let comp of getCompetenciesByType('Domain')\">\n <div class=\"flex-col-theme\">\n <div>\n <span class=\"competency-text-domain\"> {{ comp.theme }} - {{\n comp.sub_theme }} </span>\n </div>\n <div class=\"competency-tags\">\n <span *ngIf=\"comp.proficiency_level\"\n class=\"proficiency-tag\"\n [ngClass]=\"comp.proficiency_level?.toLowerCase()\"\n [matTooltip]=\"comp?.proficiency_rationale\"\n >\n {{ comp.proficiency_level }}\n </span>\n\n <span *ngIf=\"comp.delivery_mode\"\n class=\"delivery-mode-tag\"\n [ngClass]=\"comp.delivery_mode?.toLowerCase()\"\n [matTooltip]=\"comp?.delivery_mode_rationale\"\n >\n {{ comp.delivery_mode }}\n </span>\n </div>\n </div>\n <span class=\"cursor-pointer edit\" (click)=\"editCompetency(comp)\">\n <mat-icon>edit</mat-icon>\n </span>\n <span class=\"cursor-pointer close\" (click)=\"deleteCompetency(comp)\">\n <mat-icon>close</mat-icon>\n </span>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"popup-footer\">\n <div>\n <input class=\"btn-active\" type=\"button\" value=\"Cancel\" (click)=\"cancelForm()\" />\n </div>\n <div>\n <input class=\"btn-active\" type=\"button\" value=\"Save\" (click)=\"saveRoleMapping()\" />\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"overlay-loader\" *ngIf=\"loading\">\n <mat-spinner diameter=\"50\"></mat-spinner>\n</div>", styles: ["@charset \"UTF-8\";.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:16px;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:14px;font-style:normal;font-weight:700;line-height:150%}::ng-deep .legacy-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:#000;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:5px}.search-filter-section{display:flex;flex-direction:row;gap:10px}.legacy-search-filter{display:none}.search .rsearch{position:relative}.search .search-icon{position:absolute;top:10px;font-size:20px;left:10px}.search .sinput{border-radius:4px;border:1px solid #d5d0d0;padding:15px 36px;font:400 14px Lato}.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;justify-content:center;align-items:center;gap:8px;border-radius:4px;background:#1b4ca129;color:#1b4ca1;font-family:Lato;font-size:14px;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;justify-content:space-between;flex-direction:row}.outside-layer-total{display:flex;padding:4px 12px;justify-content:center;align-items:center;gap:16px;border-radius:12px;border-left:2px solid #1B4CA1;border-right:2px solid #1B4CA1;background:#edf1f8;margin:0 10px}.outside-layer-functional{display:flex;padding:4px 12px;justify-content:center;align-items:center;gap:16px;border-radius:12px;border-left:2px solid #E24577;border-right:2px solid #E24577;background:#f8d2de;margin:0 10px}.outside-layer-domain{display:flex;padding:4px 12px;justify-content:center;align-items:center;gap:16px;border-radius:12px;border-left:2px solid #7B47A4;border-right:2px solid #7B47A4;background:#dfd3e9;margin:0 10px}.outside-layer-behavioral{display:flex;padding:4px 12px;justify-content:center;align-items:center;gap:16px;border-radius:12px;border-left:2px solid #F8B861;border-right:2px solid #F8B861;background:#fde8cc;margin:0 10px}.inside-layer{color:#1b4ca1;font-family:Lato;font-size:18px;font-style:normal;font-weight:400;line-height:normal}.count{color:#1b4ca1;font-family:Montserrat;font-size:24px;font-style:normal;font-weight:600;line-height:normal}.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:2px 8px;justify-content:center;align-items:center;gap:10px;border-radius:8px;border:1px solid #F8B861;background:linear-gradient(0deg,#f8b86152 0% 100%),#fff;margin:5px 0}.functional-pill{display:flex;padding:2px 8px;justify-content:center;align-items:center;gap:10px;border-radius:8px;border:1px solid #E24577;background:linear-gradient(0deg,#e245773d 0% 100%),#fff;margin:5px 0}.domain-pill{display:flex;padding:2px 8px;justify-content:center;align-items:center;gap:10px;border-radius:8px;border:1px solid #7B47A4;background:linear-gradient(0deg,#7b47a43d 0% 100%),#fff;margin:5px 0}.popup-header{display:flex;flex-direction:row;justify-content:space-between}.popup-footer{display:flex;flex-direction:row;justify-content:end}.view-cbp-plan{margin:10px;padding:10px}.view-cbp-plan-popup{padding:24px;max-height:70vh;overflow-y:auto}.section{border-radius:8px;background:#1b4ca114;padding:16px}.popup-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #ddd;font-weight:700;flex-shrink:0}.popup-footer{display:flex;justify-content:flex-end;gap:16px;padding:16px 24px;border-top:1px solid #ddd;background-color:#fff;flex-shrink:0;position:sticky;bottom:0}.section-container{overflow-y:auto;flex:1 1 auto}.competency-list{display:flex;flex-direction:row;gap:6px}.competency-text{color:#000;font-family:Lato;font-size:14px;font-style:normal;font-weight:400;line-height:normal;padding:5px}.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}.competency-sub-heading{color:#1b4ca1;font-family:Montserrat;font-size:16px;font-style:normal;font-weight:600;line-height:normal}.cursor-pointer{cursor:pointer}.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}.custom-textarea{color:#000;font-family:Lato;font-size:14px;font-style:normal;font-weight:400;line-height:normal}.overlay-loader{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#ffffffbf;z-index:9999;display:flex;justify-content:center;align-items:center}.close .mat-icon{height:18px!important;width:18px!important}.edit .mat-icon{height:24px!important;width:24px!important;overflow:visible;vertical-align:middle}:host ::ng-deep .mat-select-arrow-wrapper{height:6px!important}::ng-deep .filter-section .mat-form-field-appearance-fill .mat-form-field-flex{padding:.5em .75em 0!important}.competency-grid{display:flex;flex-wrap:wrap;gap:12px}.competency-item{flex:0 0 calc(33.333% - 12px);box-sizing:border-box;background-color:#f5f5f5;padding:4px 10px;border-radius:6px;display:flex;justify-content:space-between;align-items:center}.snackbar-success{background-color:#4caf50!important;color:#fff!important;font-weight:500;font-size:14px;border-radius:4px}.enhanced-competency-section{display:flex;flex-direction:column;gap:24px;padding:24px;background:linear-gradient(135deg,#1b4ca105,#1b4ca10f);border-radius:12px;border:1px solid rgba(27,76,161,.15);box-shadow:0 2px 8px #1b4ca114}.competency-step{display:flex;flex-direction:column;gap:12px}.step-label{color:#1b4ca1;font-family:Lato;font-size:15px;font-weight:600;margin-bottom:8px;display:flex;align-items:center}.step-label:before{content:\"\";width:4px;height:16px;background:#1b4ca1;border-radius:2px;margin-right:8px}.competency-dropdown-container,.manual-input-container{width:100%;position:relative}.competency-dropdown{width:100%}.competency-dropdown ::ng-deep .mat-form-field-wrapper{padding:0;margin:0}.competency-dropdown ::ng-deep .mat-form-field-flex{padding:0 16px 0 20px;height:48px;align-items:center;transition:all .3s ease;display:flex;justify-content:space-between}.competency-dropdown ::ng-deep .mat-form-field-flex:hover{border-color:#1b4ca1}.competency-dropdown ::ng-deep .mat-form-field-outline,.competency-dropdown ::ng-deep .mat-form-field-outline-start,.competency-dropdown ::ng-deep .mat-form-field-outline-gap,.competency-dropdown ::ng-deep .mat-form-field-outline-end{display:none}.competency-dropdown ::ng-deep .mat-form-field-infix{padding:0;border:none;height:48px;display:flex;align-items:center;flex:1;width:auto}.competency-dropdown ::ng-deep .mat-select{height:100%;display:flex;align-items:center;font-family:Lato;font-size:14px;color:#333;width:100%;flex:1}.competency-dropdown ::ng-deep .mat-select-value{display:flex;align-items:center;height:100%;color:#333;font-weight:400;flex:1;width:100%;justify-content:flex-start}.competency-dropdown ::ng-deep .mat-select-placeholder{color:#00000080;width:100%;display:flex;align-items:center}.competency-dropdown ::ng-deep .mat-select-value-text{width:100%;display:flex;align-items:center;font-weight:400}.competency-dropdown ::ng-deep .mat-select-arrow-wrapper{height:20px;display:flex;align-items:center;margin-left:8px;flex-shrink:0}.competency-dropdown ::ng-deep .mat-select-arrow-wrapper .mat-select-arrow{color:#1b4ca1;border-top-color:#1b4ca1;margin:0}.competency-dropdown ::ng-deep .mat-form-field-label{display:none}.competency-dropdown ::ng-deep .mat-focused .mat-form-field-flex{border-color:#1b4ca1;box-shadow:0 0 0 3px #1b4ca11a}.competency-dropdown ::ng-deep .mat-select-min-line{line-height:normal}.competency-dropdown ::ng-deep .mat-form-field-appearance-outline .mat-form-field-infix{padding:0}.competency-dropdown ::ng-deep .mat-form-field-appearance-outline .mat-form-field-wrapper{margin:0;padding:0}.search-option{pointer-events:auto!important;opacity:1!important}.search-option ::ng-deep .mat-option-text{width:100%;padding:0}.search-field{width:100%;margin:0}.search-field ::ng-deep .mat-form-field-wrapper{padding:0;margin:0}.search-field ::ng-deep .mat-form-field-flex{height:36px;padding:0 12px;align-items:center}.search-field ::ng-deep .mat-form-field-infix{padding:0;border:none;height:36px;display:flex;align-items:center}.search-field ::ng-deep .mat-form-field-underline,.search-field ::ng-deep .mat-form-field-outline{display:none}.search-field ::ng-deep input{font-family:Lato;font-size:13px;color:#495057}.search-field ::ng-deep input::placeholder{color:#6c757d}::ng-deep .mat-select-panel{background:#fff;border-radius:12px;box-shadow:0 8px 32px #0000001f;border:1px solid #e0e0e0;max-height:320px;margin-top:4px}::ng-deep .mat-select-panel .mat-option{font-family:Lato;font-size:14px;padding:14px 16px;line-height:1.4;transition:all .2s ease;border-bottom:1px solid rgba(0,0,0,.05)}::ng-deep .mat-select-panel .mat-option:last-child{border-bottom:none}::ng-deep .mat-select-panel .mat-option:hover{background-color:#1b4ca10f;color:#1b4ca1}::ng-deep .mat-select-panel .mat-option.mat-selected{background-color:#1b4ca11a;color:#1b4ca1;font-weight:500;position:relative}::ng-deep .mat-select-panel .mat-option.mat-selected:after{content:\"\\2713\";position:absolute;right:16px;color:#1b4ca1;font-weight:700}::ng-deep .mat-select-panel .mat-option.search-option{padding:12px;background-color:#f8f9fa;border-bottom:2px solid #e9ecef;position:sticky;top:0;z-index:10}::ng-deep .mat-select-panel .mat-option.search-option:hover{background-color:#f8f9fa}.enhanced-competency-section ::ng-deep mat-select{border-radius:0!important;background-color:transparent!important}.enhanced-competency-section ::ng-deep mat-form-field .mat-form-field-underline{display:none!important}.enhanced-competency-section ::ng-deep .mat-select-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;min-height:auto}.enhanced-competency-section ::ng-deep .mat-form-field-suffix{margin:0;padding:0;display:flex;align-items:center}.manual-input{border-radius:25px;border:2px solid #e0e0e0;padding:12px 16px;width:100%;font-size:14px;font-family:Lato;background:#fff;height:48px;box-sizing:border-box;transition:all .3s ease;box-shadow:0 2px 4px #0000000d}.manual-input::placeholder{color:#00000080;font-family:Lato;font-size:14px}.manual-input:focus{outline:none;border-color:#1b4ca1;box-shadow:0 0 0 3px #1b4ca11a}.manual-input:hover{border-color:#1b4ca1;box-shadow:0 4px 8px #1b4ca11a}.add-button-section{display:flex;justify-content:flex-start;margin-top:20px;padding-top:20px;border-top:2px solid rgba(27,76,161,.1)}.add-competency-btn{border-radius:25px;padding:12px 24px;font-family:Lato;font-size:14px;font-weight:600;border:none;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #0000001a;min-width:140px}.add-competency-btn.btn-active{background:linear-gradient(135deg,#1b4ca1,#164080);color:#fff}.add-competency-btn.btn-active:hover{background:linear-gradient(135deg,#164080,#0f2f5f);box-shadow:0 4px 16px #1b4ca14d;transform:translateY(-1px)}.add-competency-btn.btn-active:active{transform:translateY(0);box-shadow:0 2px 8px #1b4ca133}.add-competency-btn.btn-disable{background:#e9ecef;color:#6c757d;cursor:not-allowed;opacity:.7;box-shadow:none;border:1px solid #ccc}:host ::ng-deep .mat-select-panel.search-panel{max-height:300px!important;overflow-y:auto!important;box-sizing:border-box}::ng-deep .search-panel .sticky-search-container{position:sticky;top:0;z-index:100;background:#fff;padding:8px;border-bottom:1px solid #eee}:host ::ng-deep .search-panel .search-input-wrapper{display:flex;gap:8px;align-items:center}:host ::ng-deep .search-panel .search-input{width:100%;height:32px;padding:6px 10px}:host ::ng-deep .search-panel .mat-option{padding:8px 16px!important}:host ::ng-deep .search-panel .mat-pseudo-checkbox{margin-right:8px}:host ::ng-deep .search-panel .no-data-option{padding:10px 16px;font-size:14px;color:#f44336}::ng-deep .search-panel .no-data-option .mat-pseudo-checkbox{display:none!important}.search-input-wrapper{position:relative;width:100%;display:flex;align-items:center}.search-input{width:100%;padding-right:40px;height:40px;line-height:40px;box-sizing:border-box}.clear-icon{position:absolute;right:10px;cursor:pointer;font-size:20px;color:#666;display:flex;align-items:center;height:100%}.clear-icon:hover{color:#000}:host ::ng-deep .search-panel .mat-option:first-child{margin-top:0}:host ::ng-deep .mat-notched-outline{border-radius:25px!important}:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{border-radius:25px!important}:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline-start,:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline-end{border-width:1px!important;min-width:0!important}:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{color:transparent!important}:host ::ng-deep .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:transparent!important}:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-flex{border-radius:25px;height:30px;align-items:center;padding:0 16px;background:#fff}.competency-tags{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}.proficiency-tag,.delivery-mode-tag{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;border-radius:16px;font-size:11px;line-height:16px;font-weight:500;white-space:nowrap}.delivery-mode-tag.online{background:#e6f4ea;color:#1a7f45;border:1px solid #9BD3B0}.delivery-mode-tag.offline{background:#fdf0e3;color:#a2590a;border:1px solid #F0C48A}.delivery-mode-tag.blended{background:#efe9fb;color:#5b21b6;border:1px solid #C9B6F0}.proficiency-tag.strategic{background:#1b4ca1;color:#fff;border:none}.proficiency-tag.tactical{background:#5b8def;color:#fff;border:none}.proficiency-tag.operational{background:#dbe6f7;color:#1b4ca1;border:none}.flex-col-theme{display:flex;flex-direction:column}\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: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i7.MatLegacyFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLegacyInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", exportAs: ["matInput"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.MatLegacySelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i11.MatLegacyOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i11$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i12.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] }); }
2530
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EditCbpPlanComponent, selector: "app-edit-cbp-plan", viewQueries: [{ propertyName: "dialogContent", first: true, predicate: ["dialogContent"], descendants: true }, { propertyName: "designationRef", first: true, predicate: ["designation"], descendants: true, read: ElementRef }, { propertyName: "editSection", first: true, predicate: ["editSection"], descendants: true }], ngImport: i0, template: "<div class=\"view-cbp-plan\" #dialogContent>\n <div class=\"popup-container\">\n <div class=\"popup-header\">\n <div>\n <div class=\"heading\">\n Edit Role Mapping\n <span class=\"text-sm\">\n ({{ cbpForm?.get('designation_name')?.value || planData?.designation_name }})\n </span>\n</div>\n </div>\n <div class=\"cursor-pointer\" (click)=\"closeDialog()\">\n <mat-icon>close</mat-icon>\n </div>\n </div>\n <div class=\"section-container\" [formGroup]=\"cbpForm\">\n\n <!-- <div class=\"section-header mt-4\">\n <input type=\"text\" formControlName=\"designation_name\" [value]=\"planData?.designation_name\"\n style=\"border-radius: 25px; border: 1px solid #ccc; padding: 8px 12px; width: 100%;font-size: 14px;font-family: 'Lato';\">\n\n\n </div> -->\n\n <mat-form-field appearance=\"outline\" class=\"mt-4 margin-top-s w-full required-select\" style=\"border-radius: 25px; border: 1px solid #ccc; padding: 8px 12px; width: 100%;font-size: 14px;font-family: 'Lato';\">\n <mat-select #designation formControlName=\"designation_name\"\n placeholder=\"Select designation\" (closed)=\"onDesignationDropdownClosed()\"\n panelClass=\"search-panel\" (openedChange)=\"setupScrollListener($event)\"\n >\n\n <!-- Sticky search input container -->\n <div class=\"sticky-search-container\" (click)=\"$event.stopPropagation()\">\n <div class=\"search-input-wrapper\">\n <input type=\"text\" placeholder=\"Search designation\" style=\"width:100%\"\n formControlName=\"searchDesignation\" class=\"search-input\"\n (keydown)=\"$event.stopPropagation()\"\n (keydown.enter)=\"$event.preventDefault(); $event.stopPropagation()\"\n autocomplete=\"off\">\n <!-- (keyup)=\"designationSearch($event)\" -->\n <div *ngIf=\"searchDesignationControl?.value\" type=\"button\" class=\"clear-icon\"\n (click)=\"clearDesignationSearch($event)\">\n <mat-icon>close</mat-icon>\n </div>\n </div>\n </div>\n <!-- Options list -->\n <!-- <ng-container *ngFor=\"let designation of masterData?.designation\">\n <mat-option\n *ngIf=\"designation?.name !== planData?.designation_name\"\n [value]=\"designation?.name\">\n {{ designation?.name }}\n </mat-option>\n</ng-container> -->\n<ng-container *ngFor=\"let designation of masterData?.designation\">\n <mat-option\n *ngIf=\"planData?.igot_designation_id || designation?.name !== planData?.designation_name\"\n [value]=\"designation?.name\">\n {{ designation?.name }}\n </mat-option>\n</ng-container>\n <!-- Loading indicator -->\n <div *ngIf=\"isLoadingMoreDesignations\" class=\"loading-indicator\">\n Load More...\n </div>\n <!-- No results message -->\n <mat-option *ngIf=\"(masterData?.designation)?.length === 0 || noMoreLegacyDesignations\" disabled class=\"no-data-option\">\n\n Designation Not Found.\n\n </mat-option>\n \n </mat-select>\n <!-- <mat-error class=\"text-xs\"\n *ngIf=\"designationForm?.get('designation_name')?.touched && designationForm?.get('designation_name')?.invalid\">\n Please select at least one designation.\n </mat-error> -->\n </mat-form-field>\n\n <div class=\"competency-container mt-4\">\n <div class=\"outside-layer-total\">\n <div class=\"inside-layer\">\n Total Competencies\n </div>\n <div class=\"count\">\n {{competenciesCount?.total}}\n </div>\n </div>\n <div class=\"outside-layer-behavioral\">\n <div class=\"inside-layer\">\n Behavioral Competencies\n </div>\n <div class=\"count\">\n {{competenciesCount?.behavioral}}\n </div>\n </div>\n <div class=\"outside-layer-functional\">\n <div class=\"inside-layer\">\n Functional Competencies\n </div>\n <div class=\"count\">\n {{competenciesCount?.functional}}\n </div>\n </div>\n <div class=\"outside-layer-domain\">\n <div class=\"inside-layer\">\n Domain Competencies\n </div>\n <div class=\"count\">\n {{competenciesCount?.domain}}\n </div>\n </div>\n </div>\n <div class=\"mt-4 section\">\n <div class=\"sub-heading\">\n <p>Wing/Division</p>\n </div>\n <div class=\"mt-4\">\n <input type=\"text\" formControlName=\"wing_division_section\" [value]=\"planData?.wing_division_section\"\n style=\"border-radius: 25px; border: 1px solid #ccc; padding: 8px 12px; width:100%;font-size: 14px;font-family: 'Lato';\">\n </div>\n </div>\n <div class=\"mt-2 section\">\n <div class=\"sub-heading\">\n <p>Roles & Responsibilities</p>\n </div>\n <div class=\"mt-4 additional-details\">\n <textarea class=\"custom-textarea\" formControlName=\"role_responsibilities_text\" rows=\"5\"\n placeholder=\"Roles & Responsibilities\"\n [value]=\"planData?.role_responsibilities?.join('\\n')\"></textarea>\n </div>\n </div>\n <div class=\"mt-2 section\">\n <div class=\"sub-heading\">\n <p>Activities</p>\n </div>\n <div class=\"mt-4 additional-details\">\n <textarea class=\"custom-textarea\" formControlName=\"activities_text\" rows=\"5\"\n placeholder=\"Activities\" [value]=\"planData?.activities?.join('\\n')\"></textarea>\n </div>\n </div>\n <div class=\"mt-2 section\">\n <div class=\"sub-heading\">\n <p>Competency</p>\n </div>\n <div #editSection class=\"enhanced-competency-section mt-2\">\n <!-- Step 1: Select Competency Type -->\n <div class=\"competency-step\">\n <label class=\"step-label\">1. Select Core Competency Type</label>\n <div class=\"competency-dropdown-container\">\n <mat-form-field appearance=\"outline\" class=\"competency-dropdown\">\n <mat-select formControlName=\"competencyType\" placeholder=\"Select Competency Type\"\n (selectionChange)=\"onCompetencyTypeChange($event.value)\">\n <mat-option value=\"Behavioral\">Behavioral</mat-option>\n <mat-option value=\"Functional\">Functional</mat-option>\n <mat-option value=\"Domain\">Domain</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n\n <!-- Step 2: Theme Selection (Behavioral/Functional from JSON, Domain manual) -->\n <div class=\"competency-step\" *ngIf=\"selectedCompetencyType\">\n <label class=\"step-label\">2. Select/Enter Theme</label>\n\n <!-- For Behavioral and Functional: Searchable Dropdown from JSON -->\n <div class=\"competency-dropdown-container\"\n *ngIf=\"selectedCompetencyType === 'Behavioral' || selectedCompetencyType === 'Functional'\">\n <mat-form-field appearance=\"outline\" class=\"competency-dropdown\">\n <mat-select formControlName=\"competencyTheme\" placeholder=\"Search and select theme\"\n (selectionChange)=\"onThemeChange($event.value)\">\n <!-- Search input inside dropdown -->\n <mat-option class=\"search-option\" disabled>\n <mat-form-field appearance=\"outline\" class=\"search-field\">\n <input matInput placeholder=\"Search themes...\" formControlName=\"themeSearch\"\n (input)=\"filterThemes($event.target?.value)\"\n (click)=\"$event.stopPropagation()\" (keydown)=\"$event.stopPropagation()\">\n </mat-form-field>\n </mat-option>\n\n <!-- Theme options -->\n <mat-option *ngFor=\"let theme of filteredThemes\" [value]=\"theme.name\">\n {{theme.name}}\n </mat-option>\n\n <!-- No results message -->\n <mat-option *ngIf=\"filteredThemes.length === 0 && themeSearchText\" disabled>\n No themes found matching \"{{themeSearchText}}\"\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <!-- For Domain: Manual input -->\n <div class=\"manual-input-container\" *ngIf=\"selectedCompetencyType === 'Domain'\">\n <input type=\"text\" formControlName=\"manualThemeInput\" placeholder=\"Enter Theme manually\"\n class=\"manual-input\" />\n </div>\n </div>\n\n <!-- Step 3: Sub-theme Selection -->\n <div class=\"competency-step\" *ngIf=\"selectedTheme || (selectedCompetencyType === 'Domain')\">\n <label class=\"step-label\">3. Select/Enter Sub-theme</label>\n\n <!-- For Behavioral and Functional: Searchable Dropdown based on selected theme -->\n <div class=\"competency-dropdown-container\"\n *ngIf=\"selectedCompetencyType === 'Behavioral' || selectedCompetencyType === 'Functional'\">\n <mat-form-field appearance=\"outline\" class=\"competency-dropdown\">\n <mat-select formControlName=\"competencySubTheme\"\n placeholder=\"Search and select sub-theme\"\n (selectionChange)=\"onSubThemeChange($event.value)\">\n <!-- Search input inside dropdown -->\n <mat-option class=\"search-option\" disabled>\n <mat-form-field appearance=\"outline\" class=\"search-field\">\n <input matInput placeholder=\"Search sub-themes...\"\n formControlName=\"subThemeSearch\"\n (input)=\"filterSubThemes($event.target.value)\"\n (click)=\"$event.stopPropagation()\" (keydown)=\"$event.stopPropagation()\">\n </mat-form-field>\n </mat-option>\n\n <!-- Sub-theme options -->\n <mat-option *ngFor=\"let subTheme of filteredSubThemes\" [value]=\"subTheme\">\n {{subTheme}}\n </mat-option>\n\n <!-- No results message -->\n <mat-option *ngIf=\"filteredSubThemes.length === 0 && subThemeSearchText\" disabled>\n No sub-themes found matching \"{{subThemeSearchText}}\"\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <!-- For Domain: Manual input -->\n <div class=\"manual-input-container\" *ngIf=\"selectedCompetencyType === 'Domain'\">\n <input type=\"text\" formControlName=\"manualSubThemeInput\"\n placeholder=\"Enter Sub-theme manually\" class=\"manual-input\" />\n </div>\n </div>\n \n <!-- <div class=\"competency-step\" *ngIf=\"selectedTheme || (selectedCompetencyType === 'Domain')\">\n <label class=\"step-label\">4. Competency Level</label>\n <div class=\"mt-2\">\n \n <div class=\"competency-dropdown-container\">\n <mat-form-field appearance=\"outline\" class=\"competency-dropdown\">\n <mat-select formControlName=\"proficiency_level\" placeholder=\"Select Competency Level\"\n (selectionChange)=\"onCompetencyLevelChange($event.value)\">\n <mat-option value=\"Strategic\">Strategic</mat-option>\n <mat-option value=\"Tactical\">Tactical</mat-option>\n <mat-option value=\"Operational\">Operational</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n </div> -->\n\n <!-- <div class=\"competency-step\" *ngIf=\"selectedTheme || (selectedCompetencyType === 'Domain')\">\n <label class=\"step-label\">5. Delievery Mode</label>\n <div class=\"mt-2\">\n <div class=\"competency-dropdown-container\">\n <mat-form-field appearance=\"outline\" class=\"competency-dropdown\">\n <mat-select formControlName=\"delivery_mode\" placeholder=\"Select Delivery Mode\"\n (selectionChange)=\"onDeliveryModeChange($event.value)\">\n <mat-option value=\"Online\">Online</mat-option>\n <mat-option value=\"Offline\">Offline</mat-option>\n <mat-option value=\"Blended\">Blended</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n </div> -->\n\n <!-- Add Button -->\n <div class=\"add-button-section\" *ngIf=\"selectedCompetencyType \">\n <button type=\"button\" *ngIf=\"!editDomainCompetencyFlag\" class=\"add-competency-btn\"\n [disabled]=\"!canAddCompetency()\"\n [ngClass]=\"canAddCompetency() ? 'btn-active' : 'btn-disable'\" (click)=\"addCompetency()\">\n Add Competency\n </button>\n <button type=\"button\" *ngIf=\"editDomainCompetencyFlag\" class=\"add-competency-btn btn-active\"\n (click)=\"updateCompetency()\">\n Update Competency\n </button>\n <button type=\"button\" *ngIf=\"editDomainCompetencyFlag\" class=\"add-competency-btn btn-active\"\n style=\"margin-left: 5px;\" (click)=\"cancelUpdate()\">\n Cancel </button>\n </div>\n </div>\n <div class=\"mt-4\">\n <div class=\"competency-sub-heading mt-2\" *ngIf=\"getCompetenciesByType('Behavioral')?.length\">\n Behavioral Competencies\n </div>\n\n <div class=\"competency-grid mt-2\">\n <div class=\"competency-item behavioural-pill\"\n *ngFor=\"let comp of getCompetenciesByType('Behavioral')\">\n <div class=\"flex-col-theme\">\n <div>\n <span class=\"competency-text-behavioral\"> {{ comp.theme }} - {{\n comp.sub_theme }} </span>\n </div>\n <div class=\"competency-tags\">\n <span *ngIf=\"comp.proficiency_level\"\n class=\"proficiency-tag\"\n [ngClass]=\"comp.proficiency_level?.toLowerCase()\"\n [matTooltip]=\"comp?.proficiency_rationale\"\n >\n {{ comp.proficiency_level }}\n </span>\n\n <span *ngIf=\"comp.delivery_mode\"\n class=\"delivery-mode-tag\"\n [ngClass]=\"comp.delivery_mode?.toLowerCase()\"\n [matTooltip]=\"comp?.delivery_mode_rationale\"\n >\n {{ comp.delivery_mode }}\n </span>\n </div>\n </div>\n <span class=\"cursor-pointer close\" (click)=\"deleteCompetency(comp)\">\n <mat-icon>close</mat-icon>\n </span>\n </div>\n </div>\n </div>\n <div class=\"mt-4\">\n <div class=\"competency-sub-heading mt-2\" *ngIf=\"getCompetenciesByType('Functional')?.length\">\n Functional Competencies</div>\n <div class=\"competency-grid mt-2\">\n <div class=\"competency-item functional-pill\"\n *ngFor=\"let comp of getCompetenciesByType('Functional')\">\n <div class=\"flex-col-theme\">\n <div>\n <span class=\"competency-text-functional\"> {{ comp.theme }} - {{\n comp.sub_theme }} </span>\n </div>\n <div class=\"competency-tags\">\n <span *ngIf=\"comp.proficiency_level\"\n class=\"proficiency-tag\"\n [ngClass]=\"comp.proficiency_level?.toLowerCase()\"\n [matTooltip]=\"comp?.proficiency_rationale\"\n >\n {{ comp.proficiency_level }}\n </span>\n\n <span *ngIf=\"comp.delivery_mode\"\n class=\"delivery-mode-tag\"\n [ngClass]=\"comp.delivery_mode?.toLowerCase()\"\n [matTooltip]=\"comp?.delivery_mode_rationale\"\n >\n {{ comp.delivery_mode }}\n </span>\n </div>\n </div>\n <span class=\"cursor-pointer close\" (click)=\"deleteCompetency(comp)\">\n <mat-icon>close</mat-icon>\n </span>\n </div>\n </div>\n </div>\n <div class=\"mt-4\">\n <div class=\"competency-sub-heading mt-2\">Domain Competencies</div>\n <div class=\"competency-grid mt-2\">\n <div class=\"competency-item domain-pill\" *ngFor=\"let comp of getCompetenciesByType('Domain')\">\n <div class=\"flex-col-theme\">\n <div>\n <span class=\"competency-text-domain\"> {{ comp.theme }} - {{\n comp.sub_theme }} </span>\n </div>\n <div class=\"competency-tags\">\n <span *ngIf=\"comp.proficiency_level\"\n class=\"proficiency-tag\"\n [ngClass]=\"comp.proficiency_level?.toLowerCase()\"\n [matTooltip]=\"comp?.proficiency_rationale\"\n >\n {{ comp.proficiency_level }}\n </span>\n\n <span *ngIf=\"comp.delivery_mode\"\n class=\"delivery-mode-tag\"\n [ngClass]=\"comp.delivery_mode?.toLowerCase()\"\n [matTooltip]=\"comp?.delivery_mode_rationale\"\n >\n {{ comp.delivery_mode }}\n </span>\n </div>\n </div>\n <span class=\"cursor-pointer edit\" (click)=\"editCompetency(comp)\">\n <mat-icon>edit</mat-icon>\n </span>\n <span class=\"cursor-pointer close\" (click)=\"deleteCompetency(comp)\">\n <mat-icon>close</mat-icon>\n </span>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"popup-footer\">\n <div>\n <input class=\"btn-active\" type=\"button\" value=\"Cancel\" (click)=\"cancelForm()\" />\n </div>\n <div>\n <input class=\"btn-active\" type=\"button\" value=\"Save\" (click)=\"saveRoleMapping()\" />\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"overlay-loader\" *ngIf=\"loading\">\n <mat-spinner diameter=\"50\"></mat-spinner>\n</div>", styles: ["@charset \"UTF-8\";.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:16px;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:14px;font-style:normal;font-weight:700;line-height:150%}::ng-deep .legacy-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:#000;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:5px}.search-filter-section{display:flex;flex-direction:row;gap:10px}.legacy-search-filter{display:none}.search .rsearch{position:relative}.search .search-icon{position:absolute;top:10px;font-size:20px;left:10px}.search .sinput{border-radius:4px;border:1px solid #d5d0d0;padding:15px 36px;font:400 14px Lato}.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;justify-content:center;align-items:center;gap:8px;border-radius:4px;background:#1b4ca129;color:#1b4ca1;font-family:Lato;font-size:14px;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;justify-content:space-between;flex-direction:row}.outside-layer-total{display:flex;padding:4px 12px;justify-content:center;align-items:center;gap:16px;border-radius:12px;border-left:2px solid #1B4CA1;border-right:2px solid #1B4CA1;background:#edf1f8;margin:0 10px}.outside-layer-functional{display:flex;padding:4px 12px;justify-content:center;align-items:center;gap:16px;border-radius:12px;border-left:2px solid #E24577;border-right:2px solid #E24577;background:#f8d2de;margin:0 10px}.outside-layer-domain{display:flex;padding:4px 12px;justify-content:center;align-items:center;gap:16px;border-radius:12px;border-left:2px solid #7B47A4;border-right:2px solid #7B47A4;background:#dfd3e9;margin:0 10px}.outside-layer-behavioral{display:flex;padding:4px 12px;justify-content:center;align-items:center;gap:16px;border-radius:12px;border-left:2px solid #F8B861;border-right:2px solid #F8B861;background:#fde8cc;margin:0 10px}.inside-layer{color:#1b4ca1;font-family:Lato;font-size:18px;font-style:normal;font-weight:400;line-height:normal}.count{color:#1b4ca1;font-family:Montserrat;font-size:24px;font-style:normal;font-weight:600;line-height:normal}.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:2px 8px;justify-content:center;align-items:center;gap:10px;border-radius:8px;border:1px solid #F8B861;background:linear-gradient(0deg,#f8b86152 0% 100%),#fff;margin:5px 0}.functional-pill{display:flex;padding:2px 8px;justify-content:center;align-items:center;gap:10px;border-radius:8px;border:1px solid #E24577;background:linear-gradient(0deg,#e245773d 0% 100%),#fff;margin:5px 0}.domain-pill{display:flex;padding:2px 8px;justify-content:center;align-items:center;gap:10px;border-radius:8px;border:1px solid #7B47A4;background:linear-gradient(0deg,#7b47a43d 0% 100%),#fff;margin:5px 0}.popup-header{display:flex;flex-direction:row;justify-content:space-between}.popup-footer{display:flex;flex-direction:row;justify-content:end}.view-cbp-plan{margin:10px;padding:10px}.view-cbp-plan-popup{padding:24px;max-height:70vh;overflow-y:auto}.section{border-radius:8px;background:#1b4ca114;padding:16px}.popup-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #ddd;font-weight:700;flex-shrink:0}.popup-footer{display:flex;justify-content:flex-end;gap:16px;padding:16px 24px;border-top:1px solid #ddd;background-color:#fff;flex-shrink:0;position:sticky;bottom:0}.section-container{overflow-y:auto;flex:1 1 auto}.competency-list{display:flex;flex-direction:row;gap:6px}.competency-text{color:#000;font-family:Lato;font-size:14px;font-style:normal;font-weight:400;line-height:normal;padding:5px}.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}.competency-sub-heading{color:#1b4ca1;font-family:Montserrat;font-size:16px;font-style:normal;font-weight:600;line-height:normal}.cursor-pointer{cursor:pointer}.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}.custom-textarea{color:#000;font-family:Lato;font-size:14px;font-style:normal;font-weight:400;line-height:normal}.overlay-loader{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#ffffffbf;z-index:9999;display:flex;justify-content:center;align-items:center}.close .mat-icon{height:18px!important;width:18px!important}.edit .mat-icon{height:24px!important;width:24px!important;overflow:visible;vertical-align:middle}:host ::ng-deep .mat-select-arrow-wrapper{height:6px!important}::ng-deep .filter-section .mat-form-field-appearance-fill .mat-form-field-flex{padding:.5em .75em 0!important}.competency-grid{display:flex;flex-wrap:wrap;gap:12px}.competency-item{flex:0 0 calc(33.333% - 12px);box-sizing:border-box;background-color:#f5f5f5;padding:4px 10px;border-radius:6px;display:flex;justify-content:space-between;align-items:center}.snackbar-success{background-color:#4caf50!important;color:#fff!important;font-weight:500;font-size:14px;border-radius:4px}.enhanced-competency-section{display:flex;flex-direction:column;gap:24px;padding:24px;background:linear-gradient(135deg,#1b4ca105,#1b4ca10f);border-radius:12px;border:1px solid rgba(27,76,161,.15);box-shadow:0 2px 8px #1b4ca114}.competency-step{display:flex;flex-direction:column;gap:12px}.step-label{color:#1b4ca1;font-family:Lato;font-size:15px;font-weight:600;margin-bottom:8px;display:flex;align-items:center}.step-label:before{content:\"\";width:4px;height:16px;background:#1b4ca1;border-radius:2px;margin-right:8px}.competency-dropdown-container,.manual-input-container{width:100%;position:relative}.competency-dropdown{width:100%}.competency-dropdown ::ng-deep .mat-form-field-wrapper{padding:0;margin:0}.competency-dropdown ::ng-deep .mat-form-field-flex{padding:0 16px 0 20px;height:48px;align-items:center;transition:all .3s ease;display:flex;justify-content:space-between}.competency-dropdown ::ng-deep .mat-form-field-flex:hover{border-color:#1b4ca1}.competency-dropdown ::ng-deep .mat-form-field-outline,.competency-dropdown ::ng-deep .mat-form-field-outline-start,.competency-dropdown ::ng-deep .mat-form-field-outline-gap,.competency-dropdown ::ng-deep .mat-form-field-outline-end{display:none}.competency-dropdown ::ng-deep .mat-form-field-infix{padding:0;border:none;height:48px;display:flex;align-items:center;flex:1;width:auto}.competency-dropdown ::ng-deep .mat-select{height:100%;display:flex;align-items:center;font-family:Lato;font-size:14px;color:#333;width:100%;flex:1}.competency-dropdown ::ng-deep .mat-select-value{display:flex;align-items:center;height:100%;color:#333;font-weight:400;flex:1;width:100%;justify-content:flex-start}.competency-dropdown ::ng-deep .mat-select-placeholder{color:#00000080;width:100%;display:flex;align-items:center}.competency-dropdown ::ng-deep .mat-select-value-text{width:100%;display:flex;align-items:center;font-weight:400}.competency-dropdown ::ng-deep .mat-select-arrow-wrapper{height:20px;display:flex;align-items:center;margin-left:8px;flex-shrink:0}.competency-dropdown ::ng-deep .mat-select-arrow-wrapper .mat-select-arrow{color:#1b4ca1;border-top-color:#1b4ca1;margin:0}.competency-dropdown ::ng-deep .mat-form-field-label{display:none}.competency-dropdown ::ng-deep .mat-focused .mat-form-field-flex{border-color:#1b4ca1;box-shadow:0 0 0 3px #1b4ca11a}.competency-dropdown ::ng-deep .mat-select-min-line{line-height:normal}.competency-dropdown ::ng-deep .mat-form-field-appearance-outline .mat-form-field-infix{padding:0}.competency-dropdown ::ng-deep .mat-form-field-appearance-outline .mat-form-field-wrapper{margin:0;padding:0}.search-option{pointer-events:auto!important;opacity:1!important}.search-option ::ng-deep .mat-option-text{width:100%;padding:0}.search-field{width:100%;margin:0}.search-field ::ng-deep .mat-form-field-wrapper{padding:0;margin:0}.search-field ::ng-deep .mat-form-field-flex{height:36px;padding:0 12px;align-items:center}.search-field ::ng-deep .mat-form-field-infix{padding:0;border:none;height:36px;display:flex;align-items:center}.search-field ::ng-deep .mat-form-field-underline,.search-field ::ng-deep .mat-form-field-outline{display:none}.search-field ::ng-deep input{font-family:Lato;font-size:13px;color:#495057}.search-field ::ng-deep input::placeholder{color:#6c757d}::ng-deep .mat-select-panel{background:#fff;border-radius:12px;box-shadow:0 8px 32px #0000001f;border:1px solid #e0e0e0;max-height:320px;margin-top:4px}::ng-deep .mat-select-panel .mat-option{font-family:Lato;font-size:14px;padding:14px 16px;line-height:1.4;transition:all .2s ease;border-bottom:1px solid rgba(0,0,0,.05)}::ng-deep .mat-select-panel .mat-option:last-child{border-bottom:none}::ng-deep .mat-select-panel .mat-option:hover{background-color:#1b4ca10f;color:#1b4ca1}::ng-deep .mat-select-panel .mat-option.mat-selected{background-color:#1b4ca11a;color:#1b4ca1;font-weight:500;position:relative}::ng-deep .mat-select-panel .mat-option.mat-selected:after{content:\"\\2713\";position:absolute;right:16px;color:#1b4ca1;font-weight:700}::ng-deep .mat-select-panel .mat-option.search-option{padding:12px;background-color:#f8f9fa;border-bottom:2px solid #e9ecef;position:sticky;top:0;z-index:10}::ng-deep .mat-select-panel .mat-option.search-option:hover{background-color:#f8f9fa}.enhanced-competency-section ::ng-deep mat-select{border-radius:0!important;background-color:transparent!important}.enhanced-competency-section ::ng-deep mat-form-field .mat-form-field-underline{display:none!important}.enhanced-competency-section ::ng-deep .mat-select-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;min-height:auto}.enhanced-competency-section ::ng-deep .mat-form-field-suffix{margin:0;padding:0;display:flex;align-items:center}.manual-input{border-radius:25px;border:2px solid #e0e0e0;padding:12px 16px;width:100%;font-size:14px;font-family:Lato;background:#fff;height:48px;box-sizing:border-box;transition:all .3s ease;box-shadow:0 2px 4px #0000000d}.manual-input::placeholder{color:#00000080;font-family:Lato;font-size:14px}.manual-input:focus{outline:none;border-color:#1b4ca1;box-shadow:0 0 0 3px #1b4ca11a}.manual-input:hover{border-color:#1b4ca1;box-shadow:0 4px 8px #1b4ca11a}.add-button-section{display:flex;justify-content:flex-start;margin-top:20px;padding-top:20px;border-top:2px solid rgba(27,76,161,.1)}.add-competency-btn{border-radius:25px;padding:12px 24px;font-family:Lato;font-size:14px;font-weight:600;border:none;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #0000001a;min-width:140px}.add-competency-btn.btn-active{background:linear-gradient(135deg,#1b4ca1,#164080);color:#fff}.add-competency-btn.btn-active:hover{background:linear-gradient(135deg,#164080,#0f2f5f);box-shadow:0 4px 16px #1b4ca14d;transform:translateY(-1px)}.add-competency-btn.btn-active:active{transform:translateY(0);box-shadow:0 2px 8px #1b4ca133}.add-competency-btn.btn-disable{background:#e9ecef;color:#6c757d;cursor:not-allowed;opacity:.7;box-shadow:none;border:1px solid #ccc}:host ::ng-deep .mat-select-panel.search-panel{max-height:300px!important;overflow-y:auto!important;box-sizing:border-box}::ng-deep .search-panel .sticky-search-container{position:sticky;top:0;z-index:100;background:#fff;padding:8px;border-bottom:1px solid #eee}:host ::ng-deep .search-panel .search-input-wrapper{display:flex;gap:8px;align-items:center}:host ::ng-deep .search-panel .search-input{width:100%;height:32px;padding:6px 10px}:host ::ng-deep .search-panel .mat-option{padding:8px 16px!important}:host ::ng-deep .search-panel .mat-pseudo-checkbox{margin-right:8px}:host ::ng-deep .search-panel .no-data-option{padding:10px 16px;font-size:14px;color:#f44336}::ng-deep .search-panel .no-data-option .mat-pseudo-checkbox{display:none!important}.search-input-wrapper{position:relative;width:100%;display:flex;align-items:center}.search-input{width:100%;padding-right:40px;height:40px;line-height:40px;box-sizing:border-box}.clear-icon{position:absolute;right:10px;cursor:pointer;font-size:20px;color:#666;display:flex;align-items:center;height:100%}.clear-icon:hover{color:#000}:host ::ng-deep .search-panel .mat-option:first-child{margin-top:0}:host ::ng-deep .mat-notched-outline{border-radius:25px!important}:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{border-radius:25px!important}:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline-start,:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline-end{border-width:1px!important;min-width:0!important}:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{color:transparent!important}:host ::ng-deep .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:transparent!important}:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-flex{border-radius:25px;height:30px;align-items:center;padding:0 16px;background:#fff}.competency-tags{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}.proficiency-tag,.delivery-mode-tag{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;border-radius:16px;font-size:11px;line-height:16px;font-weight:500;white-space:nowrap}.delivery-mode-tag.online{background:#e6f4ea;color:#1a7f45;border:1px solid #9BD3B0}.delivery-mode-tag.offline{background:#fdf0e3;color:#a2590a;border:1px solid #F0C48A}.delivery-mode-tag.blended{background:#efe9fb;color:#5b21b6;border:1px solid #C9B6F0}.proficiency-tag.strategic{background:#1b4ca1;color:#fff;border:none}.proficiency-tag.tactical{background:#5b8def;color:#fff;border:none}.proficiency-tag.operational{background:#dbe6f7;color:#1b4ca1;border:none}.flex-col-theme{display:flex;flex-direction:column}\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: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i7.MatLegacyFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLegacyInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", exportAs: ["matInput"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.MatLegacySelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i11.MatLegacyOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i11$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i12.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] }); }
2531
2531
  }
2532
2532
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EditCbpPlanComponent, decorators: [{
2533
2533
  type: Component,
2534
- args: [{ selector: 'app-edit-cbp-plan', template: "<div class=\"view-cbp-plan\" #dialogContent>\n <div class=\"popup-container\">\n <div class=\"popup-header\">\n <div>\n <div class=\"heading\">\n Edit Role Mapping\n <span class=\"text-sm\">\n ({{ cbpForm?.get('designation_name')?.value || planData?.designation_name }})\n </span>\n</div>\n </div>\n <div class=\"cursor-pointer\" (click)=\"closeDialog()\">\n <mat-icon>close</mat-icon>\n </div>\n </div>\n <div class=\"section-container\" [formGroup]=\"cbpForm\">\n\n <!-- <div class=\"section-header mt-4\">\n <input type=\"text\" formControlName=\"designation_name\" [value]=\"planData?.designation_name\"\n style=\"border-radius: 25px; border: 1px solid #ccc; padding: 8px 12px; width: 100%;font-size: 14px;font-family: 'Lato';\">\n\n\n </div> -->\n\n <mat-form-field appearance=\"outline\" class=\"mt-4 margin-top-s w-full required-select\" style=\"border-radius: 25px; border: 1px solid #ccc; padding: 8px 12px; width: 100%;font-size: 14px;font-family: 'Lato';\">\n <mat-select #designation formControlName=\"designation_name\"\n placeholder=\"Select designation\" (closed)=\"onDesignationDropdownClosed()\"\n panelClass=\"search-panel\" (openedChange)=\"setupScrollListener($event)\"\n >\n\n <!-- Sticky search input container -->\n <div class=\"sticky-search-container\" (click)=\"$event.stopPropagation()\">\n <div class=\"search-input-wrapper\">\n <input type=\"text\" placeholder=\"Search designation\" style=\"width:100%\"\n formControlName=\"searchDesignation\" class=\"search-input\"\n (keydown)=\"$event.stopPropagation()\"\n (keydown.enter)=\"$event.preventDefault(); $event.stopPropagation()\"\n autocomplete=\"off\">\n <!-- (keyup)=\"designationSearch($event)\" -->\n <div *ngIf=\"searchDesignationControl?.value\" type=\"button\" class=\"clear-icon\"\n (click)=\"clearDesignationSearch($event)\">\n <mat-icon>close</mat-icon>\n </div>\n </div>\n </div>\n <!-- Options list -->\n <!-- <ng-container *ngFor=\"let designation of masterData?.designation\">\n <mat-option\n *ngIf=\"designation?.name !== planData?.designation_name\"\n [value]=\"designation?.name\">\n {{ designation?.name }}\n </mat-option>\n</ng-container> -->\n<ng-container *ngFor=\"let designation of masterData?.designation\">\n <mat-option\n *ngIf=\"planData?.igot_designation_id || designation?.name !== planData?.designation_name\"\n [value]=\"designation?.name\">\n {{ designation?.name }}\n </mat-option>\n</ng-container>\n <!-- Loading indicator -->\n <div *ngIf=\"isLoadingMoreDesignations\" class=\"loading-indicator\">\n Load More...\n </div>\n <!-- No results message -->\n <mat-option *ngIf=\"(masterData?.designation)?.length === 0 || noMoreLegacyDesignations\" disabled class=\"no-data-option\">\n\n Designation Not Found.\n\n </mat-option>\n \n </mat-select>\n <!-- <mat-error class=\"text-xs\"\n *ngIf=\"designationForm?.get('designation_name')?.touched && designationForm?.get('designation_name')?.invalid\">\n Please select at least one designation.\n </mat-error> -->\n </mat-form-field>\n\n <div class=\"competency-container mt-4\">\n <div class=\"outside-layer-total\">\n <div class=\"inside-layer\">\n Total Competencies\n </div>\n <div class=\"count\">\n {{competenciesCount?.total}}\n </div>\n </div>\n <div class=\"outside-layer-behavioral\">\n <div class=\"inside-layer\">\n Behavioral Competencies\n </div>\n <div class=\"count\">\n {{competenciesCount?.behavioral}}\n </div>\n </div>\n <div class=\"outside-layer-functional\">\n <div class=\"inside-layer\">\n Functional Competencies\n </div>\n <div class=\"count\">\n {{competenciesCount?.functional}}\n </div>\n </div>\n <div class=\"outside-layer-domain\">\n <div class=\"inside-layer\">\n Domain Competencies\n </div>\n <div class=\"count\">\n {{competenciesCount?.domain}}\n </div>\n </div>\n </div>\n <div class=\"mt-4 section\">\n <div class=\"sub-heading\">\n <p>Wing/Division</p>\n </div>\n <div class=\"mt-4\">\n <input type=\"text\" formControlName=\"wing_division_section\" [value]=\"planData?.wing_division_section\"\n style=\"border-radius: 25px; border: 1px solid #ccc; padding: 8px 12px; width:100%;font-size: 14px;font-family: 'Lato';\">\n </div>\n </div>\n <div class=\"mt-2 section\">\n <div class=\"sub-heading\">\n <p>Roles & Responsibilities</p>\n </div>\n <div class=\"mt-4 additional-details\">\n <textarea class=\"custom-textarea\" formControlName=\"role_responsibilities_text\" rows=\"5\"\n placeholder=\"Roles & Responsibilities\"\n [value]=\"planData?.role_responsibilities?.join('\\n')\"></textarea>\n </div>\n </div>\n <div class=\"mt-2 section\">\n <div class=\"sub-heading\">\n <p>Activities</p>\n </div>\n <div class=\"mt-4 additional-details\">\n <textarea class=\"custom-textarea\" formControlName=\"activities_text\" rows=\"5\"\n placeholder=\"Activities\" [value]=\"planData?.activities?.join('\\n')\"></textarea>\n </div>\n </div>\n <div class=\"mt-2 section\">\n <div class=\"sub-heading\">\n <p>Competency</p>\n </div>\n <div #editSection class=\"enhanced-competency-section mt-2\">\n <!-- Step 1: Select Competency Type -->\n <div class=\"competency-step\">\n <label class=\"step-label\">1. Select Core Competency Type</label>\n <div class=\"competency-dropdown-container\">\n <mat-form-field appearance=\"outline\" class=\"competency-dropdown\">\n <mat-select formControlName=\"competencyType\" placeholder=\"Select Competency Type\"\n (selectionChange)=\"onCompetencyTypeChange($event.value)\">\n <mat-option value=\"Behavioral\">Behavioral</mat-option>\n <mat-option value=\"Functional\">Functional</mat-option>\n <mat-option value=\"Domain\">Domain</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n\n <!-- Step 2: Theme Selection (Behavioral/Functional from JSON, Domain manual) -->\n <div class=\"competency-step\" *ngIf=\"selectedCompetencyType\">\n <label class=\"step-label\">2. Select/Enter Theme</label>\n\n <!-- For Behavioral and Functional: Searchable Dropdown from JSON -->\n <div class=\"competency-dropdown-container\"\n *ngIf=\"selectedCompetencyType === 'Behavioral' || selectedCompetencyType === 'Functional'\">\n <mat-form-field appearance=\"outline\" class=\"competency-dropdown\">\n <mat-select formControlName=\"competencyTheme\" placeholder=\"Search and select theme\"\n (selectionChange)=\"onThemeChange($event.value)\">\n <!-- Search input inside dropdown -->\n <mat-option class=\"search-option\" disabled>\n <mat-form-field appearance=\"outline\" class=\"search-field\">\n <input matInput placeholder=\"Search themes...\" formControlName=\"themeSearch\"\n (input)=\"filterThemes($event.target?.value)\"\n (click)=\"$event.stopPropagation()\" (keydown)=\"$event.stopPropagation()\">\n </mat-form-field>\n </mat-option>\n\n <!-- Theme options -->\n <mat-option *ngFor=\"let theme of filteredThemes\" [value]=\"theme.name\">\n {{theme.name}}\n </mat-option>\n\n <!-- No results message -->\n <mat-option *ngIf=\"filteredThemes.length === 0 && themeSearchText\" disabled>\n No themes found matching \"{{themeSearchText}}\"\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <!-- For Domain: Manual input -->\n <div class=\"manual-input-container\" *ngIf=\"selectedCompetencyType === 'Domain'\">\n <input type=\"text\" formControlName=\"manualThemeInput\" placeholder=\"Enter Theme manually\"\n class=\"manual-input\" />\n </div>\n </div>\n\n <!-- Step 3: Sub-theme Selection -->\n <div class=\"competency-step\" *ngIf=\"selectedTheme || (selectedCompetencyType === 'Domain')\">\n <label class=\"step-label\">3. Select/Enter Sub-theme</label>\n\n <!-- For Behavioral and Functional: Searchable Dropdown based on selected theme -->\n <div class=\"competency-dropdown-container\"\n *ngIf=\"selectedCompetencyType === 'Behavioral' || selectedCompetencyType === 'Functional'\">\n <mat-form-field appearance=\"outline\" class=\"competency-dropdown\">\n <mat-select formControlName=\"competencySubTheme\"\n placeholder=\"Search and select sub-theme\"\n (selectionChange)=\"onSubThemeChange($event.value)\">\n <!-- Search input inside dropdown -->\n <mat-option class=\"search-option\" disabled>\n <mat-form-field appearance=\"outline\" class=\"search-field\">\n <input matInput placeholder=\"Search sub-themes...\"\n formControlName=\"subThemeSearch\"\n (input)=\"filterSubThemes($event.target.value)\"\n (click)=\"$event.stopPropagation()\" (keydown)=\"$event.stopPropagation()\">\n </mat-form-field>\n </mat-option>\n\n <!-- Sub-theme options -->\n <mat-option *ngFor=\"let subTheme of filteredSubThemes\" [value]=\"subTheme\">\n {{subTheme}}\n </mat-option>\n\n <!-- No results message -->\n <mat-option *ngIf=\"filteredSubThemes.length === 0 && subThemeSearchText\" disabled>\n No sub-themes found matching \"{{subThemeSearchText}}\"\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <!-- For Domain: Manual input -->\n <div class=\"manual-input-container\" *ngIf=\"selectedCompetencyType === 'Domain'\">\n <input type=\"text\" formControlName=\"manualSubThemeInput\"\n placeholder=\"Enter Sub-theme manually\" class=\"manual-input\" />\n </div>\n </div>\n\n <div class=\"competency-step\" *ngIf=\"selectedTheme || (selectedCompetencyType === 'Domain')\">\n <label class=\"step-label\">4. Competency Level</label>\n <div class=\"mt-2\">\n <!-- <input type=\"text\" formControlName=\"proficiency_level\" [value]=\"planData?.proficiency_level\"\n style=\"border-radius: 25px; border: 1px solid #ccc; padding: 8px 12px; width:100%;font-size: 14px;font-family: 'Lato';\"> -->\n\n <div class=\"competency-dropdown-container\">\n <mat-form-field appearance=\"outline\" class=\"competency-dropdown\">\n <mat-select formControlName=\"proficiency_level\" placeholder=\"Select Competency Level\"\n (selectionChange)=\"onCompetencyLevelChange($event.value)\">\n <mat-option value=\"Strategic\">Strategic</mat-option>\n <mat-option value=\"Tactical\">Tactical</mat-option>\n <mat-option value=\"Operational\">Operational</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n </div>\n\n <div class=\"competency-step\" *ngIf=\"selectedTheme || (selectedCompetencyType === 'Domain')\">\n <label class=\"step-label\">5. Delievery Mode</label>\n <div class=\"mt-2\">\n <!-- <input type=\"text\" formControlName=\"delivery_mode\" [value]=\"planData?.delivery_mode\"\n style=\"border-radius: 25px; border: 1px solid #ccc; padding: 8px 12px; width:100%;font-size: 14px;font-family: 'Lato';\"> -->\n <div class=\"competency-dropdown-container\">\n <mat-form-field appearance=\"outline\" class=\"competency-dropdown\">\n <mat-select formControlName=\"delivery_mode\" placeholder=\"Select Delivery Mode\"\n (selectionChange)=\"onDeliveryModeChange($event.value)\">\n <mat-option value=\"Online\">Online</mat-option>\n <mat-option value=\"Offline\">Offline</mat-option>\n <mat-option value=\"Blended\">Blended</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n </div>\n\n <!-- Add Button -->\n <div class=\"add-button-section\" *ngIf=\"selectedCompetencyType \">\n <button type=\"button\" *ngIf=\"!editDomainCompetencyFlag\" class=\"add-competency-btn\"\n [disabled]=\"!canAddCompetency()\"\n [ngClass]=\"canAddCompetency() ? 'btn-active' : 'btn-disable'\" (click)=\"addCompetency()\">\n Add Competency\n </button>\n <button type=\"button\" *ngIf=\"editDomainCompetencyFlag\" class=\"add-competency-btn btn-active\"\n (click)=\"updateCompetency()\">\n Update Competency\n </button>\n <button type=\"button\" *ngIf=\"editDomainCompetencyFlag\" class=\"add-competency-btn btn-active\"\n style=\"margin-left: 5px;\" (click)=\"cancelUpdate()\">\n Cancel </button>\n </div>\n </div>\n <div class=\"mt-4\">\n <div class=\"competency-sub-heading mt-2\" *ngIf=\"getCompetenciesByType('Behavioral')?.length\">\n Behavioral Competencies\n </div>\n\n <div class=\"competency-grid mt-2\">\n <div class=\"competency-item behavioural-pill\"\n *ngFor=\"let comp of getCompetenciesByType('Behavioral')\">\n <div class=\"flex-col-theme\">\n <div>\n <span class=\"competency-text-behavioral\"> {{ comp.theme }} - {{\n comp.sub_theme }} </span>\n </div>\n <div class=\"competency-tags\">\n <span *ngIf=\"comp.proficiency_level\"\n class=\"proficiency-tag\"\n [ngClass]=\"comp.proficiency_level?.toLowerCase()\"\n [matTooltip]=\"comp?.proficiency_rationale\"\n >\n {{ comp.proficiency_level }}\n </span>\n\n <span *ngIf=\"comp.delivery_mode\"\n class=\"delivery-mode-tag\"\n [ngClass]=\"comp.delivery_mode?.toLowerCase()\"\n [matTooltip]=\"comp?.delivery_mode_rationale\"\n >\n {{ comp.delivery_mode }}\n </span>\n </div>\n </div>\n <span class=\"cursor-pointer close\" (click)=\"deleteCompetency(comp)\">\n <mat-icon>close</mat-icon>\n </span>\n </div>\n </div>\n </div>\n <div class=\"mt-4\">\n <div class=\"competency-sub-heading mt-2\" *ngIf=\"getCompetenciesByType('Functional')?.length\">\n Functional Competencies</div>\n <div class=\"competency-grid mt-2\">\n <div class=\"competency-item functional-pill\"\n *ngFor=\"let comp of getCompetenciesByType('Functional')\">\n <div class=\"flex-col-theme\">\n <div>\n <span class=\"competency-text-functional\"> {{ comp.theme }} - {{\n comp.sub_theme }} </span>\n </div>\n <div class=\"competency-tags\">\n <span *ngIf=\"comp.proficiency_level\"\n class=\"proficiency-tag\"\n [ngClass]=\"comp.proficiency_level?.toLowerCase()\"\n [matTooltip]=\"comp?.proficiency_rationale\"\n >\n {{ comp.proficiency_level }}\n </span>\n\n <span *ngIf=\"comp.delivery_mode\"\n class=\"delivery-mode-tag\"\n [ngClass]=\"comp.delivery_mode?.toLowerCase()\"\n [matTooltip]=\"comp?.delivery_mode_rationale\"\n >\n {{ comp.delivery_mode }}\n </span>\n </div>\n </div>\n <span class=\"cursor-pointer close\" (click)=\"deleteCompetency(comp)\">\n <mat-icon>close</mat-icon>\n </span>\n </div>\n </div>\n </div>\n <div class=\"mt-4\">\n <div class=\"competency-sub-heading mt-2\">Domain Competencies</div>\n <div class=\"competency-grid mt-2\">\n <div class=\"competency-item domain-pill\" *ngFor=\"let comp of getCompetenciesByType('Domain')\">\n <div class=\"flex-col-theme\">\n <div>\n <span class=\"competency-text-domain\"> {{ comp.theme }} - {{\n comp.sub_theme }} </span>\n </div>\n <div class=\"competency-tags\">\n <span *ngIf=\"comp.proficiency_level\"\n class=\"proficiency-tag\"\n [ngClass]=\"comp.proficiency_level?.toLowerCase()\"\n [matTooltip]=\"comp?.proficiency_rationale\"\n >\n {{ comp.proficiency_level }}\n </span>\n\n <span *ngIf=\"comp.delivery_mode\"\n class=\"delivery-mode-tag\"\n [ngClass]=\"comp.delivery_mode?.toLowerCase()\"\n [matTooltip]=\"comp?.delivery_mode_rationale\"\n >\n {{ comp.delivery_mode }}\n </span>\n </div>\n </div>\n <span class=\"cursor-pointer edit\" (click)=\"editCompetency(comp)\">\n <mat-icon>edit</mat-icon>\n </span>\n <span class=\"cursor-pointer close\" (click)=\"deleteCompetency(comp)\">\n <mat-icon>close</mat-icon>\n </span>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"popup-footer\">\n <div>\n <input class=\"btn-active\" type=\"button\" value=\"Cancel\" (click)=\"cancelForm()\" />\n </div>\n <div>\n <input class=\"btn-active\" type=\"button\" value=\"Save\" (click)=\"saveRoleMapping()\" />\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"overlay-loader\" *ngIf=\"loading\">\n <mat-spinner diameter=\"50\"></mat-spinner>\n</div>", styles: ["@charset \"UTF-8\";.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:16px;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:14px;font-style:normal;font-weight:700;line-height:150%}::ng-deep .legacy-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:#000;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:5px}.search-filter-section{display:flex;flex-direction:row;gap:10px}.legacy-search-filter{display:none}.search .rsearch{position:relative}.search .search-icon{position:absolute;top:10px;font-size:20px;left:10px}.search .sinput{border-radius:4px;border:1px solid #d5d0d0;padding:15px 36px;font:400 14px Lato}.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;justify-content:center;align-items:center;gap:8px;border-radius:4px;background:#1b4ca129;color:#1b4ca1;font-family:Lato;font-size:14px;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;justify-content:space-between;flex-direction:row}.outside-layer-total{display:flex;padding:4px 12px;justify-content:center;align-items:center;gap:16px;border-radius:12px;border-left:2px solid #1B4CA1;border-right:2px solid #1B4CA1;background:#edf1f8;margin:0 10px}.outside-layer-functional{display:flex;padding:4px 12px;justify-content:center;align-items:center;gap:16px;border-radius:12px;border-left:2px solid #E24577;border-right:2px solid #E24577;background:#f8d2de;margin:0 10px}.outside-layer-domain{display:flex;padding:4px 12px;justify-content:center;align-items:center;gap:16px;border-radius:12px;border-left:2px solid #7B47A4;border-right:2px solid #7B47A4;background:#dfd3e9;margin:0 10px}.outside-layer-behavioral{display:flex;padding:4px 12px;justify-content:center;align-items:center;gap:16px;border-radius:12px;border-left:2px solid #F8B861;border-right:2px solid #F8B861;background:#fde8cc;margin:0 10px}.inside-layer{color:#1b4ca1;font-family:Lato;font-size:18px;font-style:normal;font-weight:400;line-height:normal}.count{color:#1b4ca1;font-family:Montserrat;font-size:24px;font-style:normal;font-weight:600;line-height:normal}.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:2px 8px;justify-content:center;align-items:center;gap:10px;border-radius:8px;border:1px solid #F8B861;background:linear-gradient(0deg,#f8b86152 0% 100%),#fff;margin:5px 0}.functional-pill{display:flex;padding:2px 8px;justify-content:center;align-items:center;gap:10px;border-radius:8px;border:1px solid #E24577;background:linear-gradient(0deg,#e245773d 0% 100%),#fff;margin:5px 0}.domain-pill{display:flex;padding:2px 8px;justify-content:center;align-items:center;gap:10px;border-radius:8px;border:1px solid #7B47A4;background:linear-gradient(0deg,#7b47a43d 0% 100%),#fff;margin:5px 0}.popup-header{display:flex;flex-direction:row;justify-content:space-between}.popup-footer{display:flex;flex-direction:row;justify-content:end}.view-cbp-plan{margin:10px;padding:10px}.view-cbp-plan-popup{padding:24px;max-height:70vh;overflow-y:auto}.section{border-radius:8px;background:#1b4ca114;padding:16px}.popup-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #ddd;font-weight:700;flex-shrink:0}.popup-footer{display:flex;justify-content:flex-end;gap:16px;padding:16px 24px;border-top:1px solid #ddd;background-color:#fff;flex-shrink:0;position:sticky;bottom:0}.section-container{overflow-y:auto;flex:1 1 auto}.competency-list{display:flex;flex-direction:row;gap:6px}.competency-text{color:#000;font-family:Lato;font-size:14px;font-style:normal;font-weight:400;line-height:normal;padding:5px}.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}.competency-sub-heading{color:#1b4ca1;font-family:Montserrat;font-size:16px;font-style:normal;font-weight:600;line-height:normal}.cursor-pointer{cursor:pointer}.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}.custom-textarea{color:#000;font-family:Lato;font-size:14px;font-style:normal;font-weight:400;line-height:normal}.overlay-loader{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#ffffffbf;z-index:9999;display:flex;justify-content:center;align-items:center}.close .mat-icon{height:18px!important;width:18px!important}.edit .mat-icon{height:24px!important;width:24px!important;overflow:visible;vertical-align:middle}:host ::ng-deep .mat-select-arrow-wrapper{height:6px!important}::ng-deep .filter-section .mat-form-field-appearance-fill .mat-form-field-flex{padding:.5em .75em 0!important}.competency-grid{display:flex;flex-wrap:wrap;gap:12px}.competency-item{flex:0 0 calc(33.333% - 12px);box-sizing:border-box;background-color:#f5f5f5;padding:4px 10px;border-radius:6px;display:flex;justify-content:space-between;align-items:center}.snackbar-success{background-color:#4caf50!important;color:#fff!important;font-weight:500;font-size:14px;border-radius:4px}.enhanced-competency-section{display:flex;flex-direction:column;gap:24px;padding:24px;background:linear-gradient(135deg,#1b4ca105,#1b4ca10f);border-radius:12px;border:1px solid rgba(27,76,161,.15);box-shadow:0 2px 8px #1b4ca114}.competency-step{display:flex;flex-direction:column;gap:12px}.step-label{color:#1b4ca1;font-family:Lato;font-size:15px;font-weight:600;margin-bottom:8px;display:flex;align-items:center}.step-label:before{content:\"\";width:4px;height:16px;background:#1b4ca1;border-radius:2px;margin-right:8px}.competency-dropdown-container,.manual-input-container{width:100%;position:relative}.competency-dropdown{width:100%}.competency-dropdown ::ng-deep .mat-form-field-wrapper{padding:0;margin:0}.competency-dropdown ::ng-deep .mat-form-field-flex{padding:0 16px 0 20px;height:48px;align-items:center;transition:all .3s ease;display:flex;justify-content:space-between}.competency-dropdown ::ng-deep .mat-form-field-flex:hover{border-color:#1b4ca1}.competency-dropdown ::ng-deep .mat-form-field-outline,.competency-dropdown ::ng-deep .mat-form-field-outline-start,.competency-dropdown ::ng-deep .mat-form-field-outline-gap,.competency-dropdown ::ng-deep .mat-form-field-outline-end{display:none}.competency-dropdown ::ng-deep .mat-form-field-infix{padding:0;border:none;height:48px;display:flex;align-items:center;flex:1;width:auto}.competency-dropdown ::ng-deep .mat-select{height:100%;display:flex;align-items:center;font-family:Lato;font-size:14px;color:#333;width:100%;flex:1}.competency-dropdown ::ng-deep .mat-select-value{display:flex;align-items:center;height:100%;color:#333;font-weight:400;flex:1;width:100%;justify-content:flex-start}.competency-dropdown ::ng-deep .mat-select-placeholder{color:#00000080;width:100%;display:flex;align-items:center}.competency-dropdown ::ng-deep .mat-select-value-text{width:100%;display:flex;align-items:center;font-weight:400}.competency-dropdown ::ng-deep .mat-select-arrow-wrapper{height:20px;display:flex;align-items:center;margin-left:8px;flex-shrink:0}.competency-dropdown ::ng-deep .mat-select-arrow-wrapper .mat-select-arrow{color:#1b4ca1;border-top-color:#1b4ca1;margin:0}.competency-dropdown ::ng-deep .mat-form-field-label{display:none}.competency-dropdown ::ng-deep .mat-focused .mat-form-field-flex{border-color:#1b4ca1;box-shadow:0 0 0 3px #1b4ca11a}.competency-dropdown ::ng-deep .mat-select-min-line{line-height:normal}.competency-dropdown ::ng-deep .mat-form-field-appearance-outline .mat-form-field-infix{padding:0}.competency-dropdown ::ng-deep .mat-form-field-appearance-outline .mat-form-field-wrapper{margin:0;padding:0}.search-option{pointer-events:auto!important;opacity:1!important}.search-option ::ng-deep .mat-option-text{width:100%;padding:0}.search-field{width:100%;margin:0}.search-field ::ng-deep .mat-form-field-wrapper{padding:0;margin:0}.search-field ::ng-deep .mat-form-field-flex{height:36px;padding:0 12px;align-items:center}.search-field ::ng-deep .mat-form-field-infix{padding:0;border:none;height:36px;display:flex;align-items:center}.search-field ::ng-deep .mat-form-field-underline,.search-field ::ng-deep .mat-form-field-outline{display:none}.search-field ::ng-deep input{font-family:Lato;font-size:13px;color:#495057}.search-field ::ng-deep input::placeholder{color:#6c757d}::ng-deep .mat-select-panel{background:#fff;border-radius:12px;box-shadow:0 8px 32px #0000001f;border:1px solid #e0e0e0;max-height:320px;margin-top:4px}::ng-deep .mat-select-panel .mat-option{font-family:Lato;font-size:14px;padding:14px 16px;line-height:1.4;transition:all .2s ease;border-bottom:1px solid rgba(0,0,0,.05)}::ng-deep .mat-select-panel .mat-option:last-child{border-bottom:none}::ng-deep .mat-select-panel .mat-option:hover{background-color:#1b4ca10f;color:#1b4ca1}::ng-deep .mat-select-panel .mat-option.mat-selected{background-color:#1b4ca11a;color:#1b4ca1;font-weight:500;position:relative}::ng-deep .mat-select-panel .mat-option.mat-selected:after{content:\"\\2713\";position:absolute;right:16px;color:#1b4ca1;font-weight:700}::ng-deep .mat-select-panel .mat-option.search-option{padding:12px;background-color:#f8f9fa;border-bottom:2px solid #e9ecef;position:sticky;top:0;z-index:10}::ng-deep .mat-select-panel .mat-option.search-option:hover{background-color:#f8f9fa}.enhanced-competency-section ::ng-deep mat-select{border-radius:0!important;background-color:transparent!important}.enhanced-competency-section ::ng-deep mat-form-field .mat-form-field-underline{display:none!important}.enhanced-competency-section ::ng-deep .mat-select-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;min-height:auto}.enhanced-competency-section ::ng-deep .mat-form-field-suffix{margin:0;padding:0;display:flex;align-items:center}.manual-input{border-radius:25px;border:2px solid #e0e0e0;padding:12px 16px;width:100%;font-size:14px;font-family:Lato;background:#fff;height:48px;box-sizing:border-box;transition:all .3s ease;box-shadow:0 2px 4px #0000000d}.manual-input::placeholder{color:#00000080;font-family:Lato;font-size:14px}.manual-input:focus{outline:none;border-color:#1b4ca1;box-shadow:0 0 0 3px #1b4ca11a}.manual-input:hover{border-color:#1b4ca1;box-shadow:0 4px 8px #1b4ca11a}.add-button-section{display:flex;justify-content:flex-start;margin-top:20px;padding-top:20px;border-top:2px solid rgba(27,76,161,.1)}.add-competency-btn{border-radius:25px;padding:12px 24px;font-family:Lato;font-size:14px;font-weight:600;border:none;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #0000001a;min-width:140px}.add-competency-btn.btn-active{background:linear-gradient(135deg,#1b4ca1,#164080);color:#fff}.add-competency-btn.btn-active:hover{background:linear-gradient(135deg,#164080,#0f2f5f);box-shadow:0 4px 16px #1b4ca14d;transform:translateY(-1px)}.add-competency-btn.btn-active:active{transform:translateY(0);box-shadow:0 2px 8px #1b4ca133}.add-competency-btn.btn-disable{background:#e9ecef;color:#6c757d;cursor:not-allowed;opacity:.7;box-shadow:none;border:1px solid #ccc}:host ::ng-deep .mat-select-panel.search-panel{max-height:300px!important;overflow-y:auto!important;box-sizing:border-box}::ng-deep .search-panel .sticky-search-container{position:sticky;top:0;z-index:100;background:#fff;padding:8px;border-bottom:1px solid #eee}:host ::ng-deep .search-panel .search-input-wrapper{display:flex;gap:8px;align-items:center}:host ::ng-deep .search-panel .search-input{width:100%;height:32px;padding:6px 10px}:host ::ng-deep .search-panel .mat-option{padding:8px 16px!important}:host ::ng-deep .search-panel .mat-pseudo-checkbox{margin-right:8px}:host ::ng-deep .search-panel .no-data-option{padding:10px 16px;font-size:14px;color:#f44336}::ng-deep .search-panel .no-data-option .mat-pseudo-checkbox{display:none!important}.search-input-wrapper{position:relative;width:100%;display:flex;align-items:center}.search-input{width:100%;padding-right:40px;height:40px;line-height:40px;box-sizing:border-box}.clear-icon{position:absolute;right:10px;cursor:pointer;font-size:20px;color:#666;display:flex;align-items:center;height:100%}.clear-icon:hover{color:#000}:host ::ng-deep .search-panel .mat-option:first-child{margin-top:0}:host ::ng-deep .mat-notched-outline{border-radius:25px!important}:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{border-radius:25px!important}:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline-start,:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline-end{border-width:1px!important;min-width:0!important}:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{color:transparent!important}:host ::ng-deep .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:transparent!important}:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-flex{border-radius:25px;height:30px;align-items:center;padding:0 16px;background:#fff}.competency-tags{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}.proficiency-tag,.delivery-mode-tag{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;border-radius:16px;font-size:11px;line-height:16px;font-weight:500;white-space:nowrap}.delivery-mode-tag.online{background:#e6f4ea;color:#1a7f45;border:1px solid #9BD3B0}.delivery-mode-tag.offline{background:#fdf0e3;color:#a2590a;border:1px solid #F0C48A}.delivery-mode-tag.blended{background:#efe9fb;color:#5b21b6;border:1px solid #C9B6F0}.proficiency-tag.strategic{background:#1b4ca1;color:#fff;border:none}.proficiency-tag.tactical{background:#5b8def;color:#fff;border:none}.proficiency-tag.operational{background:#dbe6f7;color:#1b4ca1;border:none}.flex-col-theme{display:flex;flex-direction:column}\n"] }]
2534
+ args: [{ selector: 'app-edit-cbp-plan', template: "<div class=\"view-cbp-plan\" #dialogContent>\n <div class=\"popup-container\">\n <div class=\"popup-header\">\n <div>\n <div class=\"heading\">\n Edit Role Mapping\n <span class=\"text-sm\">\n ({{ cbpForm?.get('designation_name')?.value || planData?.designation_name }})\n </span>\n</div>\n </div>\n <div class=\"cursor-pointer\" (click)=\"closeDialog()\">\n <mat-icon>close</mat-icon>\n </div>\n </div>\n <div class=\"section-container\" [formGroup]=\"cbpForm\">\n\n <!-- <div class=\"section-header mt-4\">\n <input type=\"text\" formControlName=\"designation_name\" [value]=\"planData?.designation_name\"\n style=\"border-radius: 25px; border: 1px solid #ccc; padding: 8px 12px; width: 100%;font-size: 14px;font-family: 'Lato';\">\n\n\n </div> -->\n\n <mat-form-field appearance=\"outline\" class=\"mt-4 margin-top-s w-full required-select\" style=\"border-radius: 25px; border: 1px solid #ccc; padding: 8px 12px; width: 100%;font-size: 14px;font-family: 'Lato';\">\n <mat-select #designation formControlName=\"designation_name\"\n placeholder=\"Select designation\" (closed)=\"onDesignationDropdownClosed()\"\n panelClass=\"search-panel\" (openedChange)=\"setupScrollListener($event)\"\n >\n\n <!-- Sticky search input container -->\n <div class=\"sticky-search-container\" (click)=\"$event.stopPropagation()\">\n <div class=\"search-input-wrapper\">\n <input type=\"text\" placeholder=\"Search designation\" style=\"width:100%\"\n formControlName=\"searchDesignation\" class=\"search-input\"\n (keydown)=\"$event.stopPropagation()\"\n (keydown.enter)=\"$event.preventDefault(); $event.stopPropagation()\"\n autocomplete=\"off\">\n <!-- (keyup)=\"designationSearch($event)\" -->\n <div *ngIf=\"searchDesignationControl?.value\" type=\"button\" class=\"clear-icon\"\n (click)=\"clearDesignationSearch($event)\">\n <mat-icon>close</mat-icon>\n </div>\n </div>\n </div>\n <!-- Options list -->\n <!-- <ng-container *ngFor=\"let designation of masterData?.designation\">\n <mat-option\n *ngIf=\"designation?.name !== planData?.designation_name\"\n [value]=\"designation?.name\">\n {{ designation?.name }}\n </mat-option>\n</ng-container> -->\n<ng-container *ngFor=\"let designation of masterData?.designation\">\n <mat-option\n *ngIf=\"planData?.igot_designation_id || designation?.name !== planData?.designation_name\"\n [value]=\"designation?.name\">\n {{ designation?.name }}\n </mat-option>\n</ng-container>\n <!-- Loading indicator -->\n <div *ngIf=\"isLoadingMoreDesignations\" class=\"loading-indicator\">\n Load More...\n </div>\n <!-- No results message -->\n <mat-option *ngIf=\"(masterData?.designation)?.length === 0 || noMoreLegacyDesignations\" disabled class=\"no-data-option\">\n\n Designation Not Found.\n\n </mat-option>\n \n </mat-select>\n <!-- <mat-error class=\"text-xs\"\n *ngIf=\"designationForm?.get('designation_name')?.touched && designationForm?.get('designation_name')?.invalid\">\n Please select at least one designation.\n </mat-error> -->\n </mat-form-field>\n\n <div class=\"competency-container mt-4\">\n <div class=\"outside-layer-total\">\n <div class=\"inside-layer\">\n Total Competencies\n </div>\n <div class=\"count\">\n {{competenciesCount?.total}}\n </div>\n </div>\n <div class=\"outside-layer-behavioral\">\n <div class=\"inside-layer\">\n Behavioral Competencies\n </div>\n <div class=\"count\">\n {{competenciesCount?.behavioral}}\n </div>\n </div>\n <div class=\"outside-layer-functional\">\n <div class=\"inside-layer\">\n Functional Competencies\n </div>\n <div class=\"count\">\n {{competenciesCount?.functional}}\n </div>\n </div>\n <div class=\"outside-layer-domain\">\n <div class=\"inside-layer\">\n Domain Competencies\n </div>\n <div class=\"count\">\n {{competenciesCount?.domain}}\n </div>\n </div>\n </div>\n <div class=\"mt-4 section\">\n <div class=\"sub-heading\">\n <p>Wing/Division</p>\n </div>\n <div class=\"mt-4\">\n <input type=\"text\" formControlName=\"wing_division_section\" [value]=\"planData?.wing_division_section\"\n style=\"border-radius: 25px; border: 1px solid #ccc; padding: 8px 12px; width:100%;font-size: 14px;font-family: 'Lato';\">\n </div>\n </div>\n <div class=\"mt-2 section\">\n <div class=\"sub-heading\">\n <p>Roles & Responsibilities</p>\n </div>\n <div class=\"mt-4 additional-details\">\n <textarea class=\"custom-textarea\" formControlName=\"role_responsibilities_text\" rows=\"5\"\n placeholder=\"Roles & Responsibilities\"\n [value]=\"planData?.role_responsibilities?.join('\\n')\"></textarea>\n </div>\n </div>\n <div class=\"mt-2 section\">\n <div class=\"sub-heading\">\n <p>Activities</p>\n </div>\n <div class=\"mt-4 additional-details\">\n <textarea class=\"custom-textarea\" formControlName=\"activities_text\" rows=\"5\"\n placeholder=\"Activities\" [value]=\"planData?.activities?.join('\\n')\"></textarea>\n </div>\n </div>\n <div class=\"mt-2 section\">\n <div class=\"sub-heading\">\n <p>Competency</p>\n </div>\n <div #editSection class=\"enhanced-competency-section mt-2\">\n <!-- Step 1: Select Competency Type -->\n <div class=\"competency-step\">\n <label class=\"step-label\">1. Select Core Competency Type</label>\n <div class=\"competency-dropdown-container\">\n <mat-form-field appearance=\"outline\" class=\"competency-dropdown\">\n <mat-select formControlName=\"competencyType\" placeholder=\"Select Competency Type\"\n (selectionChange)=\"onCompetencyTypeChange($event.value)\">\n <mat-option value=\"Behavioral\">Behavioral</mat-option>\n <mat-option value=\"Functional\">Functional</mat-option>\n <mat-option value=\"Domain\">Domain</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n\n <!-- Step 2: Theme Selection (Behavioral/Functional from JSON, Domain manual) -->\n <div class=\"competency-step\" *ngIf=\"selectedCompetencyType\">\n <label class=\"step-label\">2. Select/Enter Theme</label>\n\n <!-- For Behavioral and Functional: Searchable Dropdown from JSON -->\n <div class=\"competency-dropdown-container\"\n *ngIf=\"selectedCompetencyType === 'Behavioral' || selectedCompetencyType === 'Functional'\">\n <mat-form-field appearance=\"outline\" class=\"competency-dropdown\">\n <mat-select formControlName=\"competencyTheme\" placeholder=\"Search and select theme\"\n (selectionChange)=\"onThemeChange($event.value)\">\n <!-- Search input inside dropdown -->\n <mat-option class=\"search-option\" disabled>\n <mat-form-field appearance=\"outline\" class=\"search-field\">\n <input matInput placeholder=\"Search themes...\" formControlName=\"themeSearch\"\n (input)=\"filterThemes($event.target?.value)\"\n (click)=\"$event.stopPropagation()\" (keydown)=\"$event.stopPropagation()\">\n </mat-form-field>\n </mat-option>\n\n <!-- Theme options -->\n <mat-option *ngFor=\"let theme of filteredThemes\" [value]=\"theme.name\">\n {{theme.name}}\n </mat-option>\n\n <!-- No results message -->\n <mat-option *ngIf=\"filteredThemes.length === 0 && themeSearchText\" disabled>\n No themes found matching \"{{themeSearchText}}\"\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <!-- For Domain: Manual input -->\n <div class=\"manual-input-container\" *ngIf=\"selectedCompetencyType === 'Domain'\">\n <input type=\"text\" formControlName=\"manualThemeInput\" placeholder=\"Enter Theme manually\"\n class=\"manual-input\" />\n </div>\n </div>\n\n <!-- Step 3: Sub-theme Selection -->\n <div class=\"competency-step\" *ngIf=\"selectedTheme || (selectedCompetencyType === 'Domain')\">\n <label class=\"step-label\">3. Select/Enter Sub-theme</label>\n\n <!-- For Behavioral and Functional: Searchable Dropdown based on selected theme -->\n <div class=\"competency-dropdown-container\"\n *ngIf=\"selectedCompetencyType === 'Behavioral' || selectedCompetencyType === 'Functional'\">\n <mat-form-field appearance=\"outline\" class=\"competency-dropdown\">\n <mat-select formControlName=\"competencySubTheme\"\n placeholder=\"Search and select sub-theme\"\n (selectionChange)=\"onSubThemeChange($event.value)\">\n <!-- Search input inside dropdown -->\n <mat-option class=\"search-option\" disabled>\n <mat-form-field appearance=\"outline\" class=\"search-field\">\n <input matInput placeholder=\"Search sub-themes...\"\n formControlName=\"subThemeSearch\"\n (input)=\"filterSubThemes($event.target.value)\"\n (click)=\"$event.stopPropagation()\" (keydown)=\"$event.stopPropagation()\">\n </mat-form-field>\n </mat-option>\n\n <!-- Sub-theme options -->\n <mat-option *ngFor=\"let subTheme of filteredSubThemes\" [value]=\"subTheme\">\n {{subTheme}}\n </mat-option>\n\n <!-- No results message -->\n <mat-option *ngIf=\"filteredSubThemes.length === 0 && subThemeSearchText\" disabled>\n No sub-themes found matching \"{{subThemeSearchText}}\"\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <!-- For Domain: Manual input -->\n <div class=\"manual-input-container\" *ngIf=\"selectedCompetencyType === 'Domain'\">\n <input type=\"text\" formControlName=\"manualSubThemeInput\"\n placeholder=\"Enter Sub-theme manually\" class=\"manual-input\" />\n </div>\n </div>\n \n <!-- <div class=\"competency-step\" *ngIf=\"selectedTheme || (selectedCompetencyType === 'Domain')\">\n <label class=\"step-label\">4. Competency Level</label>\n <div class=\"mt-2\">\n \n <div class=\"competency-dropdown-container\">\n <mat-form-field appearance=\"outline\" class=\"competency-dropdown\">\n <mat-select formControlName=\"proficiency_level\" placeholder=\"Select Competency Level\"\n (selectionChange)=\"onCompetencyLevelChange($event.value)\">\n <mat-option value=\"Strategic\">Strategic</mat-option>\n <mat-option value=\"Tactical\">Tactical</mat-option>\n <mat-option value=\"Operational\">Operational</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n </div> -->\n\n <!-- <div class=\"competency-step\" *ngIf=\"selectedTheme || (selectedCompetencyType === 'Domain')\">\n <label class=\"step-label\">5. Delievery Mode</label>\n <div class=\"mt-2\">\n <div class=\"competency-dropdown-container\">\n <mat-form-field appearance=\"outline\" class=\"competency-dropdown\">\n <mat-select formControlName=\"delivery_mode\" placeholder=\"Select Delivery Mode\"\n (selectionChange)=\"onDeliveryModeChange($event.value)\">\n <mat-option value=\"Online\">Online</mat-option>\n <mat-option value=\"Offline\">Offline</mat-option>\n <mat-option value=\"Blended\">Blended</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n </div> -->\n\n <!-- Add Button -->\n <div class=\"add-button-section\" *ngIf=\"selectedCompetencyType \">\n <button type=\"button\" *ngIf=\"!editDomainCompetencyFlag\" class=\"add-competency-btn\"\n [disabled]=\"!canAddCompetency()\"\n [ngClass]=\"canAddCompetency() ? 'btn-active' : 'btn-disable'\" (click)=\"addCompetency()\">\n Add Competency\n </button>\n <button type=\"button\" *ngIf=\"editDomainCompetencyFlag\" class=\"add-competency-btn btn-active\"\n (click)=\"updateCompetency()\">\n Update Competency\n </button>\n <button type=\"button\" *ngIf=\"editDomainCompetencyFlag\" class=\"add-competency-btn btn-active\"\n style=\"margin-left: 5px;\" (click)=\"cancelUpdate()\">\n Cancel </button>\n </div>\n </div>\n <div class=\"mt-4\">\n <div class=\"competency-sub-heading mt-2\" *ngIf=\"getCompetenciesByType('Behavioral')?.length\">\n Behavioral Competencies\n </div>\n\n <div class=\"competency-grid mt-2\">\n <div class=\"competency-item behavioural-pill\"\n *ngFor=\"let comp of getCompetenciesByType('Behavioral')\">\n <div class=\"flex-col-theme\">\n <div>\n <span class=\"competency-text-behavioral\"> {{ comp.theme }} - {{\n comp.sub_theme }} </span>\n </div>\n <div class=\"competency-tags\">\n <span *ngIf=\"comp.proficiency_level\"\n class=\"proficiency-tag\"\n [ngClass]=\"comp.proficiency_level?.toLowerCase()\"\n [matTooltip]=\"comp?.proficiency_rationale\"\n >\n {{ comp.proficiency_level }}\n </span>\n\n <span *ngIf=\"comp.delivery_mode\"\n class=\"delivery-mode-tag\"\n [ngClass]=\"comp.delivery_mode?.toLowerCase()\"\n [matTooltip]=\"comp?.delivery_mode_rationale\"\n >\n {{ comp.delivery_mode }}\n </span>\n </div>\n </div>\n <span class=\"cursor-pointer close\" (click)=\"deleteCompetency(comp)\">\n <mat-icon>close</mat-icon>\n </span>\n </div>\n </div>\n </div>\n <div class=\"mt-4\">\n <div class=\"competency-sub-heading mt-2\" *ngIf=\"getCompetenciesByType('Functional')?.length\">\n Functional Competencies</div>\n <div class=\"competency-grid mt-2\">\n <div class=\"competency-item functional-pill\"\n *ngFor=\"let comp of getCompetenciesByType('Functional')\">\n <div class=\"flex-col-theme\">\n <div>\n <span class=\"competency-text-functional\"> {{ comp.theme }} - {{\n comp.sub_theme }} </span>\n </div>\n <div class=\"competency-tags\">\n <span *ngIf=\"comp.proficiency_level\"\n class=\"proficiency-tag\"\n [ngClass]=\"comp.proficiency_level?.toLowerCase()\"\n [matTooltip]=\"comp?.proficiency_rationale\"\n >\n {{ comp.proficiency_level }}\n </span>\n\n <span *ngIf=\"comp.delivery_mode\"\n class=\"delivery-mode-tag\"\n [ngClass]=\"comp.delivery_mode?.toLowerCase()\"\n [matTooltip]=\"comp?.delivery_mode_rationale\"\n >\n {{ comp.delivery_mode }}\n </span>\n </div>\n </div>\n <span class=\"cursor-pointer close\" (click)=\"deleteCompetency(comp)\">\n <mat-icon>close</mat-icon>\n </span>\n </div>\n </div>\n </div>\n <div class=\"mt-4\">\n <div class=\"competency-sub-heading mt-2\">Domain Competencies</div>\n <div class=\"competency-grid mt-2\">\n <div class=\"competency-item domain-pill\" *ngFor=\"let comp of getCompetenciesByType('Domain')\">\n <div class=\"flex-col-theme\">\n <div>\n <span class=\"competency-text-domain\"> {{ comp.theme }} - {{\n comp.sub_theme }} </span>\n </div>\n <div class=\"competency-tags\">\n <span *ngIf=\"comp.proficiency_level\"\n class=\"proficiency-tag\"\n [ngClass]=\"comp.proficiency_level?.toLowerCase()\"\n [matTooltip]=\"comp?.proficiency_rationale\"\n >\n {{ comp.proficiency_level }}\n </span>\n\n <span *ngIf=\"comp.delivery_mode\"\n class=\"delivery-mode-tag\"\n [ngClass]=\"comp.delivery_mode?.toLowerCase()\"\n [matTooltip]=\"comp?.delivery_mode_rationale\"\n >\n {{ comp.delivery_mode }}\n </span>\n </div>\n </div>\n <span class=\"cursor-pointer edit\" (click)=\"editCompetency(comp)\">\n <mat-icon>edit</mat-icon>\n </span>\n <span class=\"cursor-pointer close\" (click)=\"deleteCompetency(comp)\">\n <mat-icon>close</mat-icon>\n </span>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"popup-footer\">\n <div>\n <input class=\"btn-active\" type=\"button\" value=\"Cancel\" (click)=\"cancelForm()\" />\n </div>\n <div>\n <input class=\"btn-active\" type=\"button\" value=\"Save\" (click)=\"saveRoleMapping()\" />\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"overlay-loader\" *ngIf=\"loading\">\n <mat-spinner diameter=\"50\"></mat-spinner>\n</div>", styles: ["@charset \"UTF-8\";.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:16px;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:14px;font-style:normal;font-weight:700;line-height:150%}::ng-deep .legacy-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:#000;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:5px}.search-filter-section{display:flex;flex-direction:row;gap:10px}.legacy-search-filter{display:none}.search .rsearch{position:relative}.search .search-icon{position:absolute;top:10px;font-size:20px;left:10px}.search .sinput{border-radius:4px;border:1px solid #d5d0d0;padding:15px 36px;font:400 14px Lato}.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;justify-content:center;align-items:center;gap:8px;border-radius:4px;background:#1b4ca129;color:#1b4ca1;font-family:Lato;font-size:14px;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;justify-content:space-between;flex-direction:row}.outside-layer-total{display:flex;padding:4px 12px;justify-content:center;align-items:center;gap:16px;border-radius:12px;border-left:2px solid #1B4CA1;border-right:2px solid #1B4CA1;background:#edf1f8;margin:0 10px}.outside-layer-functional{display:flex;padding:4px 12px;justify-content:center;align-items:center;gap:16px;border-radius:12px;border-left:2px solid #E24577;border-right:2px solid #E24577;background:#f8d2de;margin:0 10px}.outside-layer-domain{display:flex;padding:4px 12px;justify-content:center;align-items:center;gap:16px;border-radius:12px;border-left:2px solid #7B47A4;border-right:2px solid #7B47A4;background:#dfd3e9;margin:0 10px}.outside-layer-behavioral{display:flex;padding:4px 12px;justify-content:center;align-items:center;gap:16px;border-radius:12px;border-left:2px solid #F8B861;border-right:2px solid #F8B861;background:#fde8cc;margin:0 10px}.inside-layer{color:#1b4ca1;font-family:Lato;font-size:18px;font-style:normal;font-weight:400;line-height:normal}.count{color:#1b4ca1;font-family:Montserrat;font-size:24px;font-style:normal;font-weight:600;line-height:normal}.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:2px 8px;justify-content:center;align-items:center;gap:10px;border-radius:8px;border:1px solid #F8B861;background:linear-gradient(0deg,#f8b86152 0% 100%),#fff;margin:5px 0}.functional-pill{display:flex;padding:2px 8px;justify-content:center;align-items:center;gap:10px;border-radius:8px;border:1px solid #E24577;background:linear-gradient(0deg,#e245773d 0% 100%),#fff;margin:5px 0}.domain-pill{display:flex;padding:2px 8px;justify-content:center;align-items:center;gap:10px;border-radius:8px;border:1px solid #7B47A4;background:linear-gradient(0deg,#7b47a43d 0% 100%),#fff;margin:5px 0}.popup-header{display:flex;flex-direction:row;justify-content:space-between}.popup-footer{display:flex;flex-direction:row;justify-content:end}.view-cbp-plan{margin:10px;padding:10px}.view-cbp-plan-popup{padding:24px;max-height:70vh;overflow-y:auto}.section{border-radius:8px;background:#1b4ca114;padding:16px}.popup-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #ddd;font-weight:700;flex-shrink:0}.popup-footer{display:flex;justify-content:flex-end;gap:16px;padding:16px 24px;border-top:1px solid #ddd;background-color:#fff;flex-shrink:0;position:sticky;bottom:0}.section-container{overflow-y:auto;flex:1 1 auto}.competency-list{display:flex;flex-direction:row;gap:6px}.competency-text{color:#000;font-family:Lato;font-size:14px;font-style:normal;font-weight:400;line-height:normal;padding:5px}.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}.competency-sub-heading{color:#1b4ca1;font-family:Montserrat;font-size:16px;font-style:normal;font-weight:600;line-height:normal}.cursor-pointer{cursor:pointer}.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}.custom-textarea{color:#000;font-family:Lato;font-size:14px;font-style:normal;font-weight:400;line-height:normal}.overlay-loader{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#ffffffbf;z-index:9999;display:flex;justify-content:center;align-items:center}.close .mat-icon{height:18px!important;width:18px!important}.edit .mat-icon{height:24px!important;width:24px!important;overflow:visible;vertical-align:middle}:host ::ng-deep .mat-select-arrow-wrapper{height:6px!important}::ng-deep .filter-section .mat-form-field-appearance-fill .mat-form-field-flex{padding:.5em .75em 0!important}.competency-grid{display:flex;flex-wrap:wrap;gap:12px}.competency-item{flex:0 0 calc(33.333% - 12px);box-sizing:border-box;background-color:#f5f5f5;padding:4px 10px;border-radius:6px;display:flex;justify-content:space-between;align-items:center}.snackbar-success{background-color:#4caf50!important;color:#fff!important;font-weight:500;font-size:14px;border-radius:4px}.enhanced-competency-section{display:flex;flex-direction:column;gap:24px;padding:24px;background:linear-gradient(135deg,#1b4ca105,#1b4ca10f);border-radius:12px;border:1px solid rgba(27,76,161,.15);box-shadow:0 2px 8px #1b4ca114}.competency-step{display:flex;flex-direction:column;gap:12px}.step-label{color:#1b4ca1;font-family:Lato;font-size:15px;font-weight:600;margin-bottom:8px;display:flex;align-items:center}.step-label:before{content:\"\";width:4px;height:16px;background:#1b4ca1;border-radius:2px;margin-right:8px}.competency-dropdown-container,.manual-input-container{width:100%;position:relative}.competency-dropdown{width:100%}.competency-dropdown ::ng-deep .mat-form-field-wrapper{padding:0;margin:0}.competency-dropdown ::ng-deep .mat-form-field-flex{padding:0 16px 0 20px;height:48px;align-items:center;transition:all .3s ease;display:flex;justify-content:space-between}.competency-dropdown ::ng-deep .mat-form-field-flex:hover{border-color:#1b4ca1}.competency-dropdown ::ng-deep .mat-form-field-outline,.competency-dropdown ::ng-deep .mat-form-field-outline-start,.competency-dropdown ::ng-deep .mat-form-field-outline-gap,.competency-dropdown ::ng-deep .mat-form-field-outline-end{display:none}.competency-dropdown ::ng-deep .mat-form-field-infix{padding:0;border:none;height:48px;display:flex;align-items:center;flex:1;width:auto}.competency-dropdown ::ng-deep .mat-select{height:100%;display:flex;align-items:center;font-family:Lato;font-size:14px;color:#333;width:100%;flex:1}.competency-dropdown ::ng-deep .mat-select-value{display:flex;align-items:center;height:100%;color:#333;font-weight:400;flex:1;width:100%;justify-content:flex-start}.competency-dropdown ::ng-deep .mat-select-placeholder{color:#00000080;width:100%;display:flex;align-items:center}.competency-dropdown ::ng-deep .mat-select-value-text{width:100%;display:flex;align-items:center;font-weight:400}.competency-dropdown ::ng-deep .mat-select-arrow-wrapper{height:20px;display:flex;align-items:center;margin-left:8px;flex-shrink:0}.competency-dropdown ::ng-deep .mat-select-arrow-wrapper .mat-select-arrow{color:#1b4ca1;border-top-color:#1b4ca1;margin:0}.competency-dropdown ::ng-deep .mat-form-field-label{display:none}.competency-dropdown ::ng-deep .mat-focused .mat-form-field-flex{border-color:#1b4ca1;box-shadow:0 0 0 3px #1b4ca11a}.competency-dropdown ::ng-deep .mat-select-min-line{line-height:normal}.competency-dropdown ::ng-deep .mat-form-field-appearance-outline .mat-form-field-infix{padding:0}.competency-dropdown ::ng-deep .mat-form-field-appearance-outline .mat-form-field-wrapper{margin:0;padding:0}.search-option{pointer-events:auto!important;opacity:1!important}.search-option ::ng-deep .mat-option-text{width:100%;padding:0}.search-field{width:100%;margin:0}.search-field ::ng-deep .mat-form-field-wrapper{padding:0;margin:0}.search-field ::ng-deep .mat-form-field-flex{height:36px;padding:0 12px;align-items:center}.search-field ::ng-deep .mat-form-field-infix{padding:0;border:none;height:36px;display:flex;align-items:center}.search-field ::ng-deep .mat-form-field-underline,.search-field ::ng-deep .mat-form-field-outline{display:none}.search-field ::ng-deep input{font-family:Lato;font-size:13px;color:#495057}.search-field ::ng-deep input::placeholder{color:#6c757d}::ng-deep .mat-select-panel{background:#fff;border-radius:12px;box-shadow:0 8px 32px #0000001f;border:1px solid #e0e0e0;max-height:320px;margin-top:4px}::ng-deep .mat-select-panel .mat-option{font-family:Lato;font-size:14px;padding:14px 16px;line-height:1.4;transition:all .2s ease;border-bottom:1px solid rgba(0,0,0,.05)}::ng-deep .mat-select-panel .mat-option:last-child{border-bottom:none}::ng-deep .mat-select-panel .mat-option:hover{background-color:#1b4ca10f;color:#1b4ca1}::ng-deep .mat-select-panel .mat-option.mat-selected{background-color:#1b4ca11a;color:#1b4ca1;font-weight:500;position:relative}::ng-deep .mat-select-panel .mat-option.mat-selected:after{content:\"\\2713\";position:absolute;right:16px;color:#1b4ca1;font-weight:700}::ng-deep .mat-select-panel .mat-option.search-option{padding:12px;background-color:#f8f9fa;border-bottom:2px solid #e9ecef;position:sticky;top:0;z-index:10}::ng-deep .mat-select-panel .mat-option.search-option:hover{background-color:#f8f9fa}.enhanced-competency-section ::ng-deep mat-select{border-radius:0!important;background-color:transparent!important}.enhanced-competency-section ::ng-deep mat-form-field .mat-form-field-underline{display:none!important}.enhanced-competency-section ::ng-deep .mat-select-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;min-height:auto}.enhanced-competency-section ::ng-deep .mat-form-field-suffix{margin:0;padding:0;display:flex;align-items:center}.manual-input{border-radius:25px;border:2px solid #e0e0e0;padding:12px 16px;width:100%;font-size:14px;font-family:Lato;background:#fff;height:48px;box-sizing:border-box;transition:all .3s ease;box-shadow:0 2px 4px #0000000d}.manual-input::placeholder{color:#00000080;font-family:Lato;font-size:14px}.manual-input:focus{outline:none;border-color:#1b4ca1;box-shadow:0 0 0 3px #1b4ca11a}.manual-input:hover{border-color:#1b4ca1;box-shadow:0 4px 8px #1b4ca11a}.add-button-section{display:flex;justify-content:flex-start;margin-top:20px;padding-top:20px;border-top:2px solid rgba(27,76,161,.1)}.add-competency-btn{border-radius:25px;padding:12px 24px;font-family:Lato;font-size:14px;font-weight:600;border:none;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #0000001a;min-width:140px}.add-competency-btn.btn-active{background:linear-gradient(135deg,#1b4ca1,#164080);color:#fff}.add-competency-btn.btn-active:hover{background:linear-gradient(135deg,#164080,#0f2f5f);box-shadow:0 4px 16px #1b4ca14d;transform:translateY(-1px)}.add-competency-btn.btn-active:active{transform:translateY(0);box-shadow:0 2px 8px #1b4ca133}.add-competency-btn.btn-disable{background:#e9ecef;color:#6c757d;cursor:not-allowed;opacity:.7;box-shadow:none;border:1px solid #ccc}:host ::ng-deep .mat-select-panel.search-panel{max-height:300px!important;overflow-y:auto!important;box-sizing:border-box}::ng-deep .search-panel .sticky-search-container{position:sticky;top:0;z-index:100;background:#fff;padding:8px;border-bottom:1px solid #eee}:host ::ng-deep .search-panel .search-input-wrapper{display:flex;gap:8px;align-items:center}:host ::ng-deep .search-panel .search-input{width:100%;height:32px;padding:6px 10px}:host ::ng-deep .search-panel .mat-option{padding:8px 16px!important}:host ::ng-deep .search-panel .mat-pseudo-checkbox{margin-right:8px}:host ::ng-deep .search-panel .no-data-option{padding:10px 16px;font-size:14px;color:#f44336}::ng-deep .search-panel .no-data-option .mat-pseudo-checkbox{display:none!important}.search-input-wrapper{position:relative;width:100%;display:flex;align-items:center}.search-input{width:100%;padding-right:40px;height:40px;line-height:40px;box-sizing:border-box}.clear-icon{position:absolute;right:10px;cursor:pointer;font-size:20px;color:#666;display:flex;align-items:center;height:100%}.clear-icon:hover{color:#000}:host ::ng-deep .search-panel .mat-option:first-child{margin-top:0}:host ::ng-deep .mat-notched-outline{border-radius:25px!important}:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{border-radius:25px!important}:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline-start,:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline-end{border-width:1px!important;min-width:0!important}:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{color:transparent!important}:host ::ng-deep .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:transparent!important}:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-flex{border-radius:25px;height:30px;align-items:center;padding:0 16px;background:#fff}.competency-tags{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}.proficiency-tag,.delivery-mode-tag{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;border-radius:16px;font-size:11px;line-height:16px;font-weight:500;white-space:nowrap}.delivery-mode-tag.online{background:#e6f4ea;color:#1a7f45;border:1px solid #9BD3B0}.delivery-mode-tag.offline{background:#fdf0e3;color:#a2590a;border:1px solid #F0C48A}.delivery-mode-tag.blended{background:#efe9fb;color:#5b21b6;border:1px solid #C9B6F0}.proficiency-tag.strategic{background:#1b4ca1;color:#fff;border:none}.proficiency-tag.tactical{background:#5b8def;color:#fff;border:none}.proficiency-tag.operational{background:#dbe6f7;color:#1b4ca1;border:none}.flex-col-theme{display:flex;flex-direction:column}\n"] }]
2535
2535
  }], ctorParameters: function () { return [{ type: i1$1.MatDialogRef }, { type: undefined, decorators: [{
2536
2536
  type: Inject,
2537
2537
  args: [MAT_DIALOG_DATA]
@@ -15630,11 +15630,11 @@ class RoleMappingListComponent {
15630
15630
  this.isCompetencyInfoOpen = false;
15631
15631
  }
15632
15632
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RoleMappingListComponent, deps: [{ token: SharedService }, { token: i1$1.MatDialog }, { token: i3.Router }, { token: i3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
15633
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RoleMappingListComponent, selector: "app-role-mapping-list", inputs: { formData: "formData" }, outputs: { moveToInitialScreen: "moveToInitialScreen" }, viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true }], ngImport: i0, template: "<div class=\"role-mapping-container\">\n <div class=\"container-fluid\">\n\n <mat-card class=\"mt-0 pt-0\">\n <div class=\"section-header\">\n\n </div>\n <div class=\"edit-section mt-4\">\n <div class=\"select-map-route-container\">\n <div class=\"select-map-flex-container\">\n <div class=\"select-map-flex\">\n <div class=\"selected-mapping-route\">\n <p>{{sharedService?.cbpPlanFinalObj?.ministry?.orgName}} <span *ngIf=\"sharedService?.cbpPlanFinalObj?.department_name || originalData?.[0]?.department_name\">\n / {{ sharedService?.cbpPlanFinalObj?.department_name || originalData?.[0]?.department_name }}\n </span>\n </div>\n <div class=\"edit-plan cursor-pointer\" (click)=\"moveToInitialScreenLayout('edit')\">\n <mat-icon>edit</mat-icon>Edit\n </div>\n <!-- <div class=\"cursor-pointer ml-10\">-->\n <!-- <button class=\"btn-active cursor-pointer\" (click)=\"moveToInitialScreenLayout('add')\">-->\n <!-- <mat-icon>add</mat-icon>-->\n <!-- Create New CBP-->\n <!-- </button>-->\n <!-- </div>-->\n </div>\n <div>\n <div class=\"view-final-cbp-plan\">\n <!-- <div class=\"view-final-cbp-plan-text cursor-pointer\" (click)=\"viewFinalCBPPlan('cbp')\">\n <span class=\"ai-loader-icon\"><img src=\"assets/icons/ai-loader.gif\"></span><span>View\n Final CBP</span>\n </div> -->\n\n <div class=\"view-final-cbp-plan-text cursor-pointer\" (click)=\"viewFinalCBPPlan('acbp')\">\n <span class=\"ai-loader-icon\"><img src=\"assets/icons/ai-loader.gif\"></span><span>View\n Final CBP</span>\n </div>\n\n </div>\n\n </div>\n\n </div>\n </div>\n </div>\n <div class=\"search-filter-section mt-2\">\n <div class=\"search flex margin-right-m search-flex\">\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'\"\n type=\"button\" value=\"Search\" (click)=\"applyFilter()\" />\n </div>\n </div>\n\n\n </div>\n\n\n </div>\n <div class=\"filter-section flex margin-top-15\">\n <!-- <div>\n <label class=\"label\">Filter by competency type</label>\n <div>\n <mat-form-field appearance=\"fill\"\n style=\"background: white; border-radius: 25px; padding: 0 12px;\">\n <mat-select [(value)]=\"selectedValue\" placeholder=\"Select Ministry\"\n style=\"border-radius: 25px; background: white;\">\n <mat-option [value]=\"'test'\">Test</mat-option>\n <mat-option [value]=\"'another'\">Another</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div> -->\n <div class=\"btn-group\">\n <div class=\"ml-2\">\n <input class=\"btn-active\" type=\"button\" value=\"Add More Designation\"\n (click)=\"addMoreDesignation()\" />\n </div>\n <div class=\"ml-2\" *ngIf=\"activeTab === 'matched'\">\n <button\n [ngClass]=\"selection.selected.length ? 'btn-active-outline' : 'btn-active-outline-disable'\"\n (click)=\"sendForApprovalForm()\">\n <mat-icon>send</mat-icon>\n Send For Approval\n <span *ngIf=\"selection.selected.length\">({{selection.selected.length}})</span>\n </button>\n </div>\n\n\n </div>\n </div>\n </div>\n <div class=\"role-mapping-tabs mt-3\">\n <button class=\"role-tab\" [class.active]=\"activeTab === 'matched'\" (click)=\"setDataSoure('matched')\">\n <span class=\"dot\"></span>\n Matched role mappings\n <span class=\"badge blue\">{{matchedRoleMapping}}</span>\n </button>\n\n <button class=\"role-tab table-body-unmatched\" [class.active]=\"activeTab === 'unmatched'\"\n (click)=\"setDataSoure('unmatched')\">\n <span class=\"dot red\"></span>\n Unmatched role mapping\n <span class=\"badge red\">{{unMatchedRoleMapping}}</span>\n </button>\n </div>\n <div class=\"nav-container\">\n <div class=\"sidenav-content\">\n <div class=\"table-class\">\n <ng-container *ngIf=\"dataSource?.filteredData?.length > 0\">\n <!-- <table mat-table [dataSource]=\"dataSource\">\n <ng-container matColumnDef=\"RequestId\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\">Request ID </th>\n <td mat-cell class=\"title-class\" *matCellDef=\"let element\">{{element?.demand_id}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\">Title </th>\n <td mat-cell class=\"title-class\" *matCellDef=\"let element\">{{element?.title}}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"requestor\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\">Requestor </th>\n <td mat-cell class=\"title-class\" *matCellDef=\"let element\">{{element?.ownerName}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"requestType\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\">Request Type </th>\n <td mat-cell class=\"title-class\" *matCellDef=\"let element\">{{element?.requestType}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"requestStatus\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\">Request Status </th>\n\n <td mat-cell class=\"title-class\" *matCellDef=\"let element\">\n <span [ngClass]=\"getStatusClass(element?.status)\">{{element?.status ===\n statusKey.fullfill ? 'Fulfilled'\n : element?.status}}</span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"assignee\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\">Assignee </th>\n <td mat-cell class=\"title-class\" *matCellDef=\"let element\">\n {{element?.assignedProvider ?\n element?.assignedProvider : 'Not Assigned' }}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"requestedOn\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\">Requested On </th>\n <td mat-cell class=\"title-class\" *matCellDef=\"let element\">{{element?.createdOn |\n date}}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"interests\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\">Interests</th>\n <td mat-cell class=\"title-class\" *matCellDef=\"let element\">\n <a class=\"action-btn-view\" *ngIf=\"element?.interestCount!== 0\"\n href=\"javascript:void(0)\" [ngStyle]=\"getPointerEventsStyle(element)\">\n <span (click)=\"handleClick(element)\">\n {{element?.interestCount}}\n </span></a>\n <a class=\"\" *ngIf=\"element?.interestCount === 0\"\n href=\"javascript:void(0)\">{{element?.requestType ==\n 'Single' ? 'N/A' : element?.interestCount}}</a>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"details\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\">Details</th>\n <td mat-cell *matCellDef=\"let element\">\n <mat-icon (click)=\"navigateToDetails(element?.demand_id)\"\n class=\"cursor-pointer\">visibility</mat-icon>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"action\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\"></th>\n <td mat-cell *matCellDef=\"let element\">\n\n\n <span>\n <button mat-icon-button [matMenuTriggerFor]=\"menu\"\n aria-label=\"Example icon-button with a menu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)=\"onClickMenu(element,'viewContent')\">\n <span>View</span>\n </button>\n <button\n *ngIf=\"element?.status === statusKey.Unassigned && element?.status!== statusKey.Inprogress && element?.status!== statusKey.invalid \"\n mat-menu-item (click)=\"onClickMenu(element,'invalidContent')\">\n <span>Mark as invalid</span>\n </button>\n <button mat-menu-item\n *ngIf=\"element?.status!== statusKey.Assigned && element?.interestCount >0 && element?.status!== statusKey.Inprogress && element?.status!== statusKey.invalid && element?.status!==statusKey.fullfill\"\n (click)=\"onClickMenu(element,'assignContent')\">\n <span>Assign</span>\n </button>\n <button\n *ngIf=\"element?.status === statusKey.Assigned && element?.status!== statusKey.Inprogress && element?.status!== statusKey.invalid && element?.status!==statusKey.fullfill \"\n mat-menu-item (click)=\"onClickMenu(element,'reAssignContent')\">\n <span> Re-Assign</span>\n </button>\n <button mat-menu-item (click)=\"onClickMenu(element,'copyContent')\">\n <span>Copy</span>\n </button>\n </mat-menu>\n </span>\n </td>\n\n\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\" class=\"table-row-data\"></tr>\n <tr mat-row *matRowDef=\"let row;columns:displayedColumns\"></tr>\n\n\n </table> -->\n <div class=\"table-container mt-4\" style=\"overflow: auto;\">\n <table mat-table [dataSource]=\"dataSource\" class=\"mat-elevation-z1\"\n [ngClass]=\"activeTab === 'matched'? 'table-body': 'table-body-unmatched'\">\n <!-- Selection Column -->\n <ng-container matColumnDef=\"select\">\n <th mat-header-cell *matHeaderCellDef [hidden]=\"activeTab !== 'matched'\">\n <mat-checkbox class=\"radio-style-checkbox\" (change)=\"toggleAllRows($event)\"\n [checked]=\"isAllSelected()\" [indeterminate]=\"isSomeSelected()\"\n [disabled]=\"!hasSelectableRows()\">\n </mat-checkbox>\n </th>\n\n <td mat-cell *matCellDef=\"let row\" [hidden]=\"activeTab !== 'matched'\">\n <span matTooltip=\"Please generate & save course recommendation to select. Course recommendation generation & save is pending.\"\n [matTooltipDisabled]=\"!getActivateCbpPlan(row)\">\n <mat-checkbox class=\"radio-style-checkbox\"\n (click)=\"$event.stopPropagation()\" (change)=\"toggleRow(row)\"\n [checked]=\"selection.isSelected(row)\"\n [disabled]=\"getActivateCbpPlan(row)\" [ngClass]=\" getActivateCbpPlan(row)? 'grayd-disable':''\">\n </mat-checkbox>\n </span>\n </td>\n </ng-container>\n <!-- Designation Name -->\n <ng-container matColumnDef=\"designation_name\">\n <th [ngClass]=\"activeTab === 'matched'? 'table-header': 'table-header-unmatched'\"\n 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\n </td>\n </ng-container>\n\n <!-- Role & Responsibilities -->\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 <!-- {{ isResponisbilityExpanded(element.id) ? 'View Less' : 'View More' }} -->\n View More\n </span>\n </li>\n </ul>\n </td>\n </ng-container>\n <!-- Activities -->\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\"\n 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\n <!-- Behavioral Competencies -->\n <ng-container matColumnDef=\"behavioral\">\n <th [ngClass]=\"activeTab === 'matched'? 'table-header': 'table-header-unmatched'\"\n mat-header-cell *matHeaderCellDef> Behavioral\n Competencies <mat-icon class=\"icon-cursor\" (click)=\"openCompetencyInfo()\">info_outline</mat-icon> </th>\n <td mat-cell *matCellDef=\"let element\">\n <ul class=\"competency-list\">\n <li class=\"behavioural-pill\"\n *ngFor=\"let comp of (isBehavioralExpanded(element.id) ? getCompetenciesByType(element.competencies, 'Behavioral') : getCompetenciesByType(element.competencies, 'Behavioral').slice(0, 4))\">\n <div class=\"flex-col-theme\">\n <div>\n <span class=\"competency-text-behavioral\"> {{ comp.theme }} - {{\n comp.sub_theme }} </span>\n </div>\n <div class=\"competency-tags\">\n <span *ngIf=\"comp.proficiency_level\"\n class=\"proficiency-tag\"\n [ngClass]=\"comp.proficiency_level?.toLowerCase()\"\n [matTooltip]=\"comp?.proficiency_rationale\"\n >\n {{ comp?.proficiency_level }}\n </span>\n\n <span *ngIf=\"comp.delivery_mode\"\n class=\"delivery-mode-tag\"\n [ngClass]=\"comp.delivery_mode?.toLowerCase()\"\n [matTooltip]=\"comp?.delivery_mode_rationale\"\n >\n {{ comp?.delivery_mode }}\n </span>\n </div>\n </div>\n </li>\n <li *ngIf=\"getCompetenciesByType(element.competencies, 'Behavioral').length > 4\"\n class=\"view-more-less cursor-pointer\"\n (click)=\"openFullList(element, 'behavioral')\">\n <span style=\"color: #1B4CA1;font-size: 16px;\">\n View More\n </span>\n </li>\n </ul>\n </td>\n </ng-container>\n\n <!-- Functional Competencies -->\n <ng-container matColumnDef=\"functional\">\n <th [ngClass]=\"activeTab === 'matched'? 'table-header': 'table-header-unmatched'\"\n mat-header-cell *matHeaderCellDef> Functional\n Competencies <mat-icon class=\"icon-cursor\" (click)=\"openCompetencyInfo()\">info_outline</mat-icon></th>\n <td mat-cell *matCellDef=\"let element\">\n <ul class=\"competency-list\">\n <li class=\"functional-pill\"\n *ngFor=\"let comp of (isFunctionalExpanded(element.id) ? getCompetenciesByType(element.competencies, 'Functional') : getCompetenciesByType(element.competencies, 'Functional').slice(0, 4))\">\n <div class=\"flex-col-theme\">\n <div>\n <span class=\"competency-text-functional\"> {{ comp.theme }} - {{\n comp.sub_theme }}</span>\n </div>\n <div class=\"competency-tags\">\n <span *ngIf=\"comp.proficiency_level\"\n class=\"proficiency-tag\"\n [ngClass]=\"comp.proficiency_level?.toLowerCase()\"\n [matTooltip]=\"comp?.proficiency_rationale\"\n >\n {{ comp.proficiency_level }}\n </span>\n\n <span *ngIf=\"comp.delivery_mode\"\n class=\"delivery-mode-tag\"\n [ngClass]=\"comp.delivery_mode?.toLowerCase()\"\n [matTooltip]=\"comp?.delivery_mode_rationale\"\n >\n {{ comp.delivery_mode }}\n </span>\n </div>\n </div>\n </li>\n <li *ngIf=\"getCompetenciesByType(element.competencies, 'Functional').length > 4\"\n class=\"view-more-less cursor-pointer\"\n (click)=\"openFullList(element, 'functional')\">\n <span style=\"color: #1B4CA1;font-size: 16px;\">\n View More\n </span>\n </li>\n </ul>\n </td>\n </ng-container>\n\n <!-- Domain Competencies -->\n <ng-container matColumnDef=\"domain\">\n <th [ngClass]=\"activeTab === 'matched'? 'table-header': 'table-header-unmatched'\"\n mat-header-cell *matHeaderCellDef> Domain\n Competencies <mat-icon class=\"icon-cursor\" (click)=\"openCompetencyInfo()\">info_outline</mat-icon> </th>\n <td mat-cell *matCellDef=\"let element\">\n <ul class=\"competency-list\">\n <li class=\"domain-pill\"\n *ngFor=\"let comp of (isDomainExpanded(element.id) ? getCompetenciesByType(element.competencies, 'Domain') : getCompetenciesByType(element.competencies, 'Domain').slice(0, 4))\">\n <div class=\"flex-col-theme\">\n <div>\n <span class=\"competency-text-domain\"> {{ comp.theme }} - {{\n comp.sub_theme }}</span>\n </div>\n <div class=\"competency-tags\">\n <span *ngIf=\"comp.proficiency_level\"\n class=\"proficiency-tag\"\n [ngClass]=\"comp.proficiency_level?.toLowerCase()\"\n [matTooltip]=\"comp?.proficiency_rationale\"\n >\n {{ comp.proficiency_level }}\n </span>\n\n <span *ngIf=\"comp.delivery_mode\"\n class=\"delivery-mode-tag\"\n [ngClass]=\"comp.delivery_mode?.toLowerCase()\"\n [matTooltip]=\"comp?.delivery_mode_rationale\"\n >\n {{ comp.delivery_mode }}\n </span>\n </div>\n </div>\n </li>\n <li *ngIf=\"getCompetenciesByType(element.competencies, 'Domain').length > 4\"\n class=\"view-more-less cursor-pointer\"\n (click)=\"openFullList(element, 'domain')\">\n <span style=\"color: #1B4CA1;font-size: 16px;\">\n View More\n </span>\n </li>\n </ul>\n </td>\n </ng-container>\n\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 <td mat-cell *matCellDef=\"let element\">\n <button mat-icon-button [matMenuTriggerFor]=\"actionMenu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #actionMenu=\"matMenu\">\n <button mat-menu-item (click)=\"editRoleMapping(element)\">\n <mat-icon>edit</mat-icon>\n <span>Edit Role Mapping</span>\n </button>\n <button mat-menu-item (click)=\"viewCBPPlan(element)\">\n <mat-icon>visibility</mat-icon>\n <span>View Role Mapping</span>\n </button>\n <button mat-menu-item (click)=\"generateCourseRecommendation(element)\">\n <mat-icon>school</mat-icon>\n <span>Generate Course Recommendation</span>\n </button>\n <button mat-menu-item (click)=\"viewCourseRecommendation(element)\">\n <mat-icon>preview</mat-icon>\n <span>View Course Recommendation</span>\n </button>\n <button mat-menu-item (click)=\"deleteRoleMapping(element)\">\n <mat-icon>delete</mat-icon>\n <span>Delete Role Mapping</span>\n </button>\n <button *ngIf=\"activeTab !== 'matched'\" mat-menu-item (click)=\"sendForDesignationNameApproval(element)\">\n <mat-icon>send</mat-icon>\n <span>Send for Designation Name Approval</span>\n </button>\n </mat-menu>\n </td>\n </ng-container>\n\n <!-- Header & Rows -->\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n\n <!-- Pagination -->\n <mat-paginator [length]=\"totalRoleMappingListCount\" [pageIndex]=\"pageIndex\"\n [pageSize]=\"pageSize\" (page)=\"pageChangeEvent($event)\"\n [pageSizeOptions]=\"[5, 10, 20]\" showFirstLastButtons>\n </mat-paginator>\n </div>\n\n </ng-container>\n\n <div class=\"no-cbp-data\" *ngIf=\"dataSource?.filteredData?.length === 0\">\n <!-- <div><img src=\"/mdo-assets/images/no-content-data.svg\" alt=\"no-content\"></div> -->\n <div class=\"sub-heading mt-4\">\n <p>No role mappings available in this category</p>\n </div>\n <!-- <div class=\" margin-top-m no-content-create\">\n <button mat-button type=\"button\" class=\"search-btns\"\n [routerLink]=\"['/app/home/create-request-form']\">Request Content</button>\n </div> -->\n\n </div>\n\n <!-- <mat-paginator *ngIf=\"dataSource?.filteredData?.length > 0\" [pageSize]=\"pageSize\"\n [length]=\"this.requestCount\" [pageSizeOptions]=\"[10,20,40]\"\n (page)=\"onChangePage($event)\"></mat-paginator> -->\n\n\n </div>\n\n\n\n </div>\n </div>\n </mat-card>\n </div>\n</div>\n\n\n<div class=\"overlay-loader\" *ngIf=\"loading\">\n <mat-spinner diameter=\"50\"></mat-spinner>\n</div>\n\n<div\n class=\"competency-modal-backdrop\"\n *ngIf=\"isCompetencyInfoOpen\"\n (click)=\"closeCompetencyInfo()\"\n>\n <div\n class=\"competency-modal\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"competency-modal-title\"\n (click)=\"$event.stopPropagation()\"\n >\n <!-- Close Button -->\n <button\n type=\"button\"\n class=\"modal-close-btn\"\n (click)=\"closeCompetencyInfo()\"\n aria-label=\"Close\"\n >\n \u00D7\n </button>\n\n <!-- Title -->\n <h2 id=\"competency-modal-title\">\n What do the competency tags mean?\n </h2>\n\n <!-- Description -->\n <p class=\"modal-description\">\n Every competency carries two tags: how deeply this designation needs it,\n and how the training for it is delivered.\n </p>\n\n <!-- Proficiency -->\n <div class=\"competency-section\">\n <h3>\n PROFICIENCY LEVEL \u2014 THE DEPTH THIS DESIGNATION NEEDS\n </h3>\n\n <div class=\"tag-info-row\">\n <span class=\"proficiency-tag-modal strategic\">\n Strategic\n </span>\n\n <span class=\"tag-description\">\n Shapes policy, direction and outcomes\n </span>\n </div>\n\n <div class=\"tag-info-row\">\n <span class=\"proficiency-tag-modal tactical\">\n Tactical\n </span>\n\n <span class=\"tag-description\">\n Plans, coordinates and turns direction into programmes\n </span>\n </div>\n\n <div class=\"tag-info-row\">\n <span class=\"proficiency-tag-modal operational\">\n Operational\n </span>\n\n <span class=\"tag-description\">\n Executes and delivers the work on the ground\n </span>\n </div>\n </div>\n\n <!-- Delivery Mode -->\n <div class=\"competency-section delivery-section\">\n <h3>\n DELIVERY MODE \u2014 HOW THE TRAINING IS DELIVERED\n </h3>\n\n <div class=\"tag-info-row\">\n <span class=\"delivery-mode-tag-modal online\">\n Online\n </span>\n\n <span class=\"tag-description\">\n Self-paced, knowledge-based content\n </span>\n </div>\n\n <div class=\"tag-info-row\">\n <span class=\"delivery-mode-tag-modal offline\">\n Offline\n </span>\n\n <span class=\"tag-description\">\n Needs physical presence or supervised practice\n </span>\n </div>\n\n <div class=\"tag-info-row\">\n <span class=\"delivery-mode-tag-modal blended\">\n Blended\n </span>\n\n <span class=\"tag-description\">\n Concept combined with applied practice or coaching\n </span>\n </div>\n </div>\n\n </div>\n</div>", styles: [".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%}:host ::ng-deep input.mat-form-field{background-color:#fff!important;border-radius:25px!important;padding-left:12px;padding-right:12px;height:42px;width:100%}:host ::ng-deep mat-select{border-radius:25px!important;background-color:#fff!important}:host ::ng-deep .mat-select-panel{background-color:#fff!important}:host ::ng-deep .mat-select-panel .mat-option{border-radius:0!important}:host ::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}.grayd-disable{color:#d3d3d3!important}.competency-tags{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}.proficiency-tag,.delivery-mode-tag{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;border-radius:16px;font-size:11px;line-height:16px;font-weight:500;white-space:nowrap}.delivery-mode-tag.online{background:#e6f4ea;color:#1a7f45;border:1px solid #9BD3B0}.delivery-mode-tag.offline{background:#fdf0e3;color:#a2590a;border:1px solid #F0C48A}.delivery-mode-tag.blended{background:#efe9fb;color:#5b21b6;border:1px solid #C9B6F0}.proficiency-tag.strategic{background:#1b4ca1;color:#fff;border:none}.proficiency-tag.tactical{background:#5b8def;color:#fff;border:none}.proficiency-tag.operational{background:#dbe6f7;color:#1b4ca1;border:none}.flex-col-theme{display:flex;flex-direction:column}.competency-info-btn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;cursor:pointer;padding:0}.info-icon{width:22px;height:22px;display:flex;align-items:center;justify-content:center;border:1px solid #1b4ca1;border-radius:50%;color:#1b4ca1;font-size:14px;font-weight:700}.competency-modal-backdrop{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px;background:#1923328c;animation:fadeIn .2s ease}.competency-modal{position:relative;width:100%;max-width:900px;max-height:calc(100vh - 40px);overflow-y:auto;background:#fff;border-radius:16px;padding:40px 42px 38px;box-sizing:border-box;box-shadow:0 20px 50px #00000040;animation:modalSlideIn .25s ease}.modal-close-btn{position:absolute;top:26px;right:36px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:#5b6778;font-size:44px;font-weight:300;line-height:1;cursor:pointer}.modal-close-btn:hover{color:#1b4ca1}.competency-modal h2{margin:0 0 16px;color:#293548;font-size:34px;font-weight:700;line-height:1.25}.modal-description{max-width:800px;margin:0 0 28px;color:#59687b;font-size:16px;font-weight:700;line-height:1.5}.competency-section{margin-top:26px}.delivery-section{margin-top:28px}.competency-section h3{margin:0 0 18px;color:#354154;font-size:21px;font-weight:700;letter-spacing:.5px;line-height:1.4}.tag-info-row{display:flex;align-items:center;gap:14px;margin-bottom:10px}.proficiency-tag-modal,.delivery-mode-tag-modal{width:140px;min-width:140px;display:inline-flex;align-items:center;justify-content:center;padding:6px 14px;border-radius:20px;font-size:16px;font-weight:600;line-height:1.2;box-sizing:border-box}.proficiency-tag-modal.strategic{background:#1b4ca1;color:#fff}.proficiency-tag-modal.tactical{background:#5b8def;color:#fff}.proficiency-tag-modal.operational{background:#dbe6f7;color:#1b4ca1}.delivery-mode-tag-modal.online{background:#e6f4ea;color:#1a7f45;border:1px solid #9BD3B0}.delivery-mode-tag-modal.offline{background:#fdf0e3;color:#a2590a;border:1px solid #F0C48A}.delivery-mode-tag-modal.blended{background:#efe9fb;color:#5b21b6;border:1px solid #C9B6F0}.tag-description{color:#526174;font-weight:700;font-size:16px;line-height:1.4}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width: 768px){.competency-modal{padding:28px 22px}.competency-modal h2{padding-right:35px;font-size:26px}.modal-description,.competency-section h3{font-size:16px}.tag-info-row{align-items:flex-start;flex-direction:column;gap:8px}.proficiency-tag-modal,.delivery-mode-tag-modal{width:140px}.tag-description{font-size:16px}.modal-close-btn{top:18px;right:18px}}.icon-cursor{cursor:pointer;vertical-align:middle}\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.MatLegacyCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8$1.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: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i13.MatLegacyCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i11$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i11$2.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i11$2.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i11$2.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i11$2.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i11$2.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i11$2.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i11$2.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i11$2.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i11$2.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i11$2.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i12$2.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: i14$1.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i14$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i14$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i12.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] }); }
15633
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RoleMappingListComponent, selector: "app-role-mapping-list", inputs: { formData: "formData" }, outputs: { moveToInitialScreen: "moveToInitialScreen" }, viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true }], ngImport: i0, template: "<div class=\"role-mapping-container\">\n <div class=\"container-fluid\">\n\n <mat-card class=\"mt-0 pt-0\">\n <div class=\"section-header\">\n\n </div>\n <div class=\"edit-section mt-4\">\n <div class=\"select-map-route-container\">\n <div class=\"select-map-flex-container\">\n <div class=\"select-map-flex\">\n <div class=\"selected-mapping-route\">\n <p>{{sharedService?.cbpPlanFinalObj?.ministry?.orgName}} <span *ngIf=\"sharedService?.cbpPlanFinalObj?.department_name || originalData?.[0]?.department_name\">\n / {{ sharedService?.cbpPlanFinalObj?.department_name || originalData?.[0]?.department_name }}\n </span>\n </div>\n <div class=\"edit-plan cursor-pointer\" (click)=\"moveToInitialScreenLayout('edit')\">\n <mat-icon>edit</mat-icon>Edit\n </div>\n <!-- <div class=\"cursor-pointer ml-10\">-->\n <!-- <button class=\"btn-active cursor-pointer\" (click)=\"moveToInitialScreenLayout('add')\">-->\n <!-- <mat-icon>add</mat-icon>-->\n <!-- Create New CBP-->\n <!-- </button>-->\n <!-- </div>-->\n </div>\n <div>\n <div class=\"view-final-cbp-plan\">\n <!-- <div class=\"view-final-cbp-plan-text cursor-pointer\" (click)=\"viewFinalCBPPlan('cbp')\">\n <span class=\"ai-loader-icon\"><img src=\"assets/icons/ai-loader.gif\"></span><span>View\n Final CBP</span>\n </div> -->\n\n <div class=\"view-final-cbp-plan-text cursor-pointer\" (click)=\"viewFinalCBPPlan('acbp')\">\n <span class=\"ai-loader-icon\"><img src=\"assets/icons/ai-loader.gif\"></span><span>View\n Final CBP</span>\n </div>\n\n </div>\n\n </div>\n\n </div>\n </div>\n </div>\n <div class=\"search-filter-section mt-2\">\n <div class=\"search flex margin-right-m search-flex\">\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'\"\n type=\"button\" value=\"Search\" (click)=\"applyFilter()\" />\n </div>\n </div>\n\n\n </div>\n\n\n </div>\n <div class=\"filter-section flex margin-top-15\">\n <!-- <div>\n <label class=\"label\">Filter by competency type</label>\n <div>\n <mat-form-field appearance=\"fill\"\n style=\"background: white; border-radius: 25px; padding: 0 12px;\">\n <mat-select [(value)]=\"selectedValue\" placeholder=\"Select Ministry\"\n style=\"border-radius: 25px; background: white;\">\n <mat-option [value]=\"'test'\">Test</mat-option>\n <mat-option [value]=\"'another'\">Another</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div> -->\n <div class=\"btn-group\">\n <div class=\"ml-2\">\n <input class=\"btn-active\" type=\"button\" value=\"Add More Designation\"\n (click)=\"addMoreDesignation()\" />\n </div>\n <div class=\"ml-2\" *ngIf=\"activeTab === 'matched'\">\n <button\n [ngClass]=\"selection.selected.length ? 'btn-active-outline' : 'btn-active-outline-disable'\"\n (click)=\"sendForApprovalForm()\">\n <mat-icon>send</mat-icon>\n Send For Approval\n <span *ngIf=\"selection.selected.length\">({{selection.selected.length}})</span>\n </button>\n </div>\n\n\n </div>\n </div>\n </div>\n <div class=\"role-mapping-tabs mt-3\">\n <button class=\"role-tab\" [class.active]=\"activeTab === 'matched'\" (click)=\"setDataSoure('matched')\">\n <span class=\"dot\"></span>\n Matched role mappings\n <span class=\"badge blue\">{{matchedRoleMapping}}</span>\n </button>\n\n <button class=\"role-tab table-body-unmatched\" [class.active]=\"activeTab === 'unmatched'\"\n (click)=\"setDataSoure('unmatched')\">\n <span class=\"dot red\"></span>\n Unmatched role mapping\n <span class=\"badge red\">{{unMatchedRoleMapping}}</span>\n </button>\n </div>\n <div class=\"nav-container\">\n <div class=\"sidenav-content\">\n <div class=\"table-class\">\n <ng-container *ngIf=\"dataSource?.filteredData?.length > 0\">\n <!-- <table mat-table [dataSource]=\"dataSource\">\n <ng-container matColumnDef=\"RequestId\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\">Request ID </th>\n <td mat-cell class=\"title-class\" *matCellDef=\"let element\">{{element?.demand_id}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\">Title </th>\n <td mat-cell class=\"title-class\" *matCellDef=\"let element\">{{element?.title}}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"requestor\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\">Requestor </th>\n <td mat-cell class=\"title-class\" *matCellDef=\"let element\">{{element?.ownerName}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"requestType\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\">Request Type </th>\n <td mat-cell class=\"title-class\" *matCellDef=\"let element\">{{element?.requestType}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"requestStatus\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\">Request Status </th>\n\n <td mat-cell class=\"title-class\" *matCellDef=\"let element\">\n <span [ngClass]=\"getStatusClass(element?.status)\">{{element?.status ===\n statusKey.fullfill ? 'Fulfilled'\n : element?.status}}</span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"assignee\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\">Assignee </th>\n <td mat-cell class=\"title-class\" *matCellDef=\"let element\">\n {{element?.assignedProvider ?\n element?.assignedProvider : 'Not Assigned' }}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"requestedOn\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\">Requested On </th>\n <td mat-cell class=\"title-class\" *matCellDef=\"let element\">{{element?.createdOn |\n date}}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"interests\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\">Interests</th>\n <td mat-cell class=\"title-class\" *matCellDef=\"let element\">\n <a class=\"action-btn-view\" *ngIf=\"element?.interestCount!== 0\"\n href=\"javascript:void(0)\" [ngStyle]=\"getPointerEventsStyle(element)\">\n <span (click)=\"handleClick(element)\">\n {{element?.interestCount}}\n </span></a>\n <a class=\"\" *ngIf=\"element?.interestCount === 0\"\n href=\"javascript:void(0)\">{{element?.requestType ==\n 'Single' ? 'N/A' : element?.interestCount}}</a>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"details\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\">Details</th>\n <td mat-cell *matCellDef=\"let element\">\n <mat-icon (click)=\"navigateToDetails(element?.demand_id)\"\n class=\"cursor-pointer\">visibility</mat-icon>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"action\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\"></th>\n <td mat-cell *matCellDef=\"let element\">\n\n\n <span>\n <button mat-icon-button [matMenuTriggerFor]=\"menu\"\n aria-label=\"Example icon-button with a menu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)=\"onClickMenu(element,'viewContent')\">\n <span>View</span>\n </button>\n <button\n *ngIf=\"element?.status === statusKey.Unassigned && element?.status!== statusKey.Inprogress && element?.status!== statusKey.invalid \"\n mat-menu-item (click)=\"onClickMenu(element,'invalidContent')\">\n <span>Mark as invalid</span>\n </button>\n <button mat-menu-item\n *ngIf=\"element?.status!== statusKey.Assigned && element?.interestCount >0 && element?.status!== statusKey.Inprogress && element?.status!== statusKey.invalid && element?.status!==statusKey.fullfill\"\n (click)=\"onClickMenu(element,'assignContent')\">\n <span>Assign</span>\n </button>\n <button\n *ngIf=\"element?.status === statusKey.Assigned && element?.status!== statusKey.Inprogress && element?.status!== statusKey.invalid && element?.status!==statusKey.fullfill \"\n mat-menu-item (click)=\"onClickMenu(element,'reAssignContent')\">\n <span> Re-Assign</span>\n </button>\n <button mat-menu-item (click)=\"onClickMenu(element,'copyContent')\">\n <span>Copy</span>\n </button>\n </mat-menu>\n </span>\n </td>\n\n\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\" class=\"table-row-data\"></tr>\n <tr mat-row *matRowDef=\"let row;columns:displayedColumns\"></tr>\n\n\n </table> -->\n <div class=\"table-container mt-4\" style=\"overflow: auto;\">\n <table mat-table [dataSource]=\"dataSource\" class=\"mat-elevation-z1\"\n [ngClass]=\"activeTab === 'matched'? 'table-body': 'table-body-unmatched'\">\n <!-- Selection Column -->\n <ng-container matColumnDef=\"select\">\n <th mat-header-cell *matHeaderCellDef [hidden]=\"activeTab !== 'matched'\">\n <mat-checkbox class=\"radio-style-checkbox\" (change)=\"toggleAllRows($event)\"\n [checked]=\"isAllSelected()\" [indeterminate]=\"isSomeSelected()\"\n [disabled]=\"!hasSelectableRows()\">\n </mat-checkbox>\n </th>\n\n <td mat-cell *matCellDef=\"let row\" [hidden]=\"activeTab !== 'matched'\">\n <span matTooltip=\"Please generate & save course recommendation to select. Course recommendation generation & save is pending.\"\n [matTooltipDisabled]=\"!getActivateCbpPlan(row)\">\n <mat-checkbox class=\"radio-style-checkbox\"\n (click)=\"$event.stopPropagation()\" (change)=\"toggleRow(row)\"\n [checked]=\"selection.isSelected(row)\"\n [disabled]=\"getActivateCbpPlan(row)\" [ngClass]=\" getActivateCbpPlan(row)? 'grayd-disable':''\">\n </mat-checkbox>\n </span>\n </td>\n </ng-container>\n <!-- Designation Name -->\n <ng-container matColumnDef=\"designation_name\">\n <th [ngClass]=\"activeTab === 'matched'? 'table-header': 'table-header-unmatched'\"\n 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\n </td>\n </ng-container>\n\n <!-- Role & Responsibilities -->\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 <!-- {{ isResponisbilityExpanded(element.id) ? 'View Less' : 'View More' }} -->\n View More\n </span>\n </li>\n </ul>\n </td>\n </ng-container>\n <!-- Activities -->\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\"\n 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\n <!-- Behavioral Competencies -->\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 (isBehavioralExpanded(element.id) ? getCompetenciesByType(element.competencies, 'Behavioral') : getCompetenciesByType(element.competencies, 'Behavioral').slice(0, 4))\">\n <div class=\"flex-col-theme\">\n <div>\n <span class=\"competency-text-behavioral\"> {{ comp.theme }} - {{\n comp.sub_theme }} </span>\n </div>\n <div class=\"competency-tags\">\n <span *ngIf=\"comp.proficiency_level\"\n class=\"proficiency-tag\"\n [ngClass]=\"comp.proficiency_level?.toLowerCase()\"\n [matTooltip]=\"comp?.proficiency_rationale\"\n >\n {{ comp?.proficiency_level }}\n </span>\n\n <span *ngIf=\"comp.delivery_mode\"\n class=\"delivery-mode-tag\"\n [ngClass]=\"comp.delivery_mode?.toLowerCase()\"\n [matTooltip]=\"comp?.delivery_mode_rationale\"\n >\n {{ comp?.delivery_mode }}\n </span>\n </div>\n </div>\n </li>\n <li *ngIf=\"getCompetenciesByType(element.competencies, 'Behavioral').length > 4\"\n class=\"view-more-less cursor-pointer\"\n (click)=\"openFullList(element, 'behavioral')\">\n <span style=\"color: #1B4CA1;font-size: 16px;\">\n View More\n </span>\n </li>\n </ul>\n </td>\n </ng-container>\n\n <!-- Functional Competencies -->\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 (isFunctionalExpanded(element.id) ? getCompetenciesByType(element.competencies, 'Functional') : getCompetenciesByType(element.competencies, 'Functional').slice(0, 4))\">\n <div class=\"flex-col-theme\">\n <div>\n <span class=\"competency-text-functional\"> {{ comp.theme }} - {{\n comp.sub_theme }}</span>\n </div>\n <div class=\"competency-tags\">\n <span *ngIf=\"comp.proficiency_level\"\n class=\"proficiency-tag\"\n [ngClass]=\"comp.proficiency_level?.toLowerCase()\"\n [matTooltip]=\"comp?.proficiency_rationale\"\n >\n {{ comp.proficiency_level }}\n </span>\n\n <span *ngIf=\"comp.delivery_mode\"\n class=\"delivery-mode-tag\"\n [ngClass]=\"comp.delivery_mode?.toLowerCase()\"\n [matTooltip]=\"comp?.delivery_mode_rationale\"\n >\n {{ comp.delivery_mode }}\n </span>\n </div>\n </div>\n </li>\n <li *ngIf=\"getCompetenciesByType(element.competencies, 'Functional').length > 4\"\n class=\"view-more-less cursor-pointer\"\n (click)=\"openFullList(element, 'functional')\">\n <span style=\"color: #1B4CA1;font-size: 16px;\">\n View More\n </span>\n </li>\n </ul>\n </td>\n </ng-container>\n\n <!-- Domain Competencies -->\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 (isDomainExpanded(element.id) ? getCompetenciesByType(element.competencies, 'Domain') : getCompetenciesByType(element.competencies, 'Domain').slice(0, 4))\">\n <div class=\"flex-col-theme\">\n <div>\n <span class=\"competency-text-domain\"> {{ comp.theme }} - {{\n comp.sub_theme }}</span>\n </div>\n <div class=\"competency-tags\">\n <span *ngIf=\"comp.proficiency_level\"\n class=\"proficiency-tag\"\n [ngClass]=\"comp.proficiency_level?.toLowerCase()\"\n [matTooltip]=\"comp?.proficiency_rationale\"\n >\n {{ comp.proficiency_level }}\n </span>\n\n <span *ngIf=\"comp.delivery_mode\"\n class=\"delivery-mode-tag\"\n [ngClass]=\"comp.delivery_mode?.toLowerCase()\"\n [matTooltip]=\"comp?.delivery_mode_rationale\"\n >\n {{ comp.delivery_mode }}\n </span>\n </div>\n </div>\n </li>\n <li *ngIf=\"getCompetenciesByType(element.competencies, 'Domain').length > 4\"\n class=\"view-more-less cursor-pointer\"\n (click)=\"openFullList(element, 'domain')\">\n <span style=\"color: #1B4CA1;font-size: 16px;\">\n View More\n </span>\n </li>\n </ul>\n </td>\n </ng-container>\n\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 <td mat-cell *matCellDef=\"let element\">\n <button mat-icon-button [matMenuTriggerFor]=\"actionMenu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #actionMenu=\"matMenu\">\n <button mat-menu-item (click)=\"editRoleMapping(element)\">\n <mat-icon>edit</mat-icon>\n <span>Edit Role Mapping</span>\n </button>\n <button mat-menu-item (click)=\"viewCBPPlan(element)\">\n <mat-icon>visibility</mat-icon>\n <span>View Role Mapping</span>\n </button>\n <button mat-menu-item (click)=\"generateCourseRecommendation(element)\">\n <mat-icon>school</mat-icon>\n <span>Generate Course Recommendation</span>\n </button>\n <button mat-menu-item (click)=\"viewCourseRecommendation(element)\">\n <mat-icon>preview</mat-icon>\n <span>View Course Recommendation</span>\n </button>\n <button mat-menu-item (click)=\"deleteRoleMapping(element)\">\n <mat-icon>delete</mat-icon>\n <span>Delete Role Mapping</span>\n </button>\n <button *ngIf=\"activeTab !== 'matched'\" mat-menu-item (click)=\"sendForDesignationNameApproval(element)\">\n <mat-icon>send</mat-icon>\n <span>Send for Designation Name Approval</span>\n </button>\n </mat-menu>\n </td>\n </ng-container>\n\n <!-- Header & Rows -->\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n\n <!-- Pagination -->\n <mat-paginator [length]=\"totalRoleMappingListCount\" [pageIndex]=\"pageIndex\"\n [pageSize]=\"pageSize\" (page)=\"pageChangeEvent($event)\"\n [pageSizeOptions]=\"[5, 10, 20]\" showFirstLastButtons>\n </mat-paginator>\n </div>\n\n </ng-container>\n\n <div class=\"no-cbp-data\" *ngIf=\"dataSource?.filteredData?.length === 0\">\n <!-- <div><img src=\"/mdo-assets/images/no-content-data.svg\" alt=\"no-content\"></div> -->\n <div class=\"sub-heading mt-4\">\n <p>No role mappings available in this category</p>\n </div>\n <!-- <div class=\" margin-top-m no-content-create\">\n <button mat-button type=\"button\" class=\"search-btns\"\n [routerLink]=\"['/app/home/create-request-form']\">Request Content</button>\n </div> -->\n\n </div>\n\n <!-- <mat-paginator *ngIf=\"dataSource?.filteredData?.length > 0\" [pageSize]=\"pageSize\"\n [length]=\"this.requestCount\" [pageSizeOptions]=\"[10,20,40]\"\n (page)=\"onChangePage($event)\"></mat-paginator> -->\n\n\n </div>\n\n\n\n </div>\n </div>\n </mat-card>\n </div>\n</div>\n\n\n<div class=\"overlay-loader\" *ngIf=\"loading\">\n <mat-spinner diameter=\"50\"></mat-spinner>\n</div>\n\n<div\n class=\"competency-modal-backdrop\"\n *ngIf=\"isCompetencyInfoOpen\"\n (click)=\"closeCompetencyInfo()\"\n>\n <div\n class=\"competency-modal\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"competency-modal-title\"\n (click)=\"$event.stopPropagation()\"\n >\n <!-- Close Button -->\n <button\n type=\"button\"\n class=\"modal-close-btn\"\n (click)=\"closeCompetencyInfo()\"\n aria-label=\"Close\"\n >\n \u00D7\n </button>\n\n <!-- Title -->\n <h2 id=\"competency-modal-title\">\n What do the competency tags mean?\n </h2>\n\n <!-- Description -->\n <p class=\"modal-description\">\n Every competency carries two tags: how deeply this designation needs it,\n and how the training for it is delivered.\n </p>\n\n <!-- Proficiency -->\n <div class=\"competency-section\">\n <h3>\n PROFICIENCY LEVEL \u2014 THE DEPTH THIS DESIGNATION NEEDS\n </h3>\n\n <div class=\"tag-info-row\">\n <span class=\"proficiency-tag-modal strategic\">\n Strategic\n </span>\n\n <span class=\"tag-description\">\n Shapes policy, direction and outcomes\n </span>\n </div>\n\n <div class=\"tag-info-row\">\n <span class=\"proficiency-tag-modal tactical\">\n Tactical\n </span>\n\n <span class=\"tag-description\">\n Plans, coordinates and turns direction into programmes\n </span>\n </div>\n\n <div class=\"tag-info-row\">\n <span class=\"proficiency-tag-modal operational\">\n Operational\n </span>\n\n <span class=\"tag-description\">\n Executes and delivers the work on the ground\n </span>\n </div>\n </div>\n\n <!-- Delivery Mode -->\n <div class=\"competency-section delivery-section\">\n <h3>\n DELIVERY MODE \u2014 HOW THE TRAINING IS DELIVERED\n </h3>\n\n <div class=\"tag-info-row\">\n <span class=\"delivery-mode-tag-modal online\">\n Online\n </span>\n\n <span class=\"tag-description\">\n Self-paced, knowledge-based content\n </span>\n </div>\n\n <div class=\"tag-info-row\">\n <span class=\"delivery-mode-tag-modal offline\">\n Offline\n </span>\n\n <span class=\"tag-description\">\n Needs physical presence or supervised practice\n </span>\n </div>\n\n <div class=\"tag-info-row\">\n <span class=\"delivery-mode-tag-modal blended\">\n Blended\n </span>\n\n <span class=\"tag-description\">\n Concept combined with applied practice or coaching\n </span>\n </div>\n </div>\n\n </div>\n</div>", styles: [".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%}:host ::ng-deep input.mat-form-field{background-color:#fff!important;border-radius:25px!important;padding-left:12px;padding-right:12px;height:42px;width:100%}:host ::ng-deep mat-select{border-radius:25px!important;background-color:#fff!important}:host ::ng-deep .mat-select-panel{background-color:#fff!important}:host ::ng-deep .mat-select-panel .mat-option{border-radius:0!important}:host ::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}.grayd-disable{color:#d3d3d3!important}.competency-tags{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}.proficiency-tag,.delivery-mode-tag{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;border-radius:16px;font-size:11px;line-height:16px;font-weight:500;white-space:nowrap}.delivery-mode-tag.online{background:#e6f4ea;color:#1a7f45;border:1px solid #9BD3B0}.delivery-mode-tag.offline{background:#fdf0e3;color:#a2590a;border:1px solid #F0C48A}.delivery-mode-tag.blended{background:#efe9fb;color:#5b21b6;border:1px solid #C9B6F0}.proficiency-tag.strategic{background:#1b4ca1;color:#fff;border:none}.proficiency-tag.tactical{background:#5b8def;color:#fff;border:none}.proficiency-tag.operational{background:#dbe6f7;color:#1b4ca1;border:none}.flex-col-theme{display:flex;flex-direction:column}.competency-info-btn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;cursor:pointer;padding:0}.info-icon{width:22px;height:22px;display:flex;align-items:center;justify-content:center;border:1px solid #1b4ca1;border-radius:50%;color:#1b4ca1;font-size:14px;font-weight:700}.competency-modal-backdrop{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px;background:#1923328c;animation:fadeIn .2s ease}.competency-modal{position:relative;width:100%;max-width:900px;max-height:calc(100vh - 40px);overflow-y:auto;background:#fff;border-radius:16px;padding:40px 42px 38px;box-sizing:border-box;box-shadow:0 20px 50px #00000040;animation:modalSlideIn .25s ease}.modal-close-btn{position:absolute;top:26px;right:36px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:#5b6778;font-size:44px;font-weight:300;line-height:1;cursor:pointer}.modal-close-btn:hover{color:#1b4ca1}.competency-modal h2{margin:0 0 16px;color:#293548;font-size:34px;font-weight:700;line-height:1.25}.modal-description{max-width:800px;margin:0 0 28px;color:#59687b;font-size:16px;font-weight:700;line-height:1.5}.competency-section{margin-top:26px}.delivery-section{margin-top:28px}.competency-section h3{margin:0 0 18px;color:#354154;font-size:21px;font-weight:700;letter-spacing:.5px;line-height:1.4}.tag-info-row{display:flex;align-items:center;gap:14px;margin-bottom:10px}.proficiency-tag-modal,.delivery-mode-tag-modal{width:140px;min-width:140px;display:inline-flex;align-items:center;justify-content:center;padding:6px 14px;border-radius:20px;font-size:16px;font-weight:600;line-height:1.2;box-sizing:border-box}.proficiency-tag-modal.strategic{background:#1b4ca1;color:#fff}.proficiency-tag-modal.tactical{background:#5b8def;color:#fff}.proficiency-tag-modal.operational{background:#dbe6f7;color:#1b4ca1}.delivery-mode-tag-modal.online{background:#e6f4ea;color:#1a7f45;border:1px solid #9BD3B0}.delivery-mode-tag-modal.offline{background:#fdf0e3;color:#a2590a;border:1px solid #F0C48A}.delivery-mode-tag-modal.blended{background:#efe9fb;color:#5b21b6;border:1px solid #C9B6F0}.tag-description{color:#526174;font-weight:700;font-size:16px;line-height:1.4}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width: 768px){.competency-modal{padding:28px 22px}.competency-modal h2{padding-right:35px;font-size:26px}.modal-description,.competency-section h3{font-size:16px}.tag-info-row{align-items:flex-start;flex-direction:column;gap:8px}.proficiency-tag-modal,.delivery-mode-tag-modal{width:140px}.tag-description{font-size:16px}.modal-close-btn{top:18px;right:18px}}.icon-cursor{cursor:pointer;vertical-align:middle}\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.MatLegacyCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8$1.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: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i13.MatLegacyCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i11$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i11$2.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i11$2.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i11$2.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i11$2.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i11$2.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i11$2.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i11$2.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i11$2.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i11$2.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i11$2.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i12$2.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: i14$1.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i14$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i14$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i12.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] }); }
15634
15634
  }
15635
15635
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RoleMappingListComponent, decorators: [{
15636
15636
  type: Component,
15637
- args: [{ selector: 'app-role-mapping-list', template: "<div class=\"role-mapping-container\">\n <div class=\"container-fluid\">\n\n <mat-card class=\"mt-0 pt-0\">\n <div class=\"section-header\">\n\n </div>\n <div class=\"edit-section mt-4\">\n <div class=\"select-map-route-container\">\n <div class=\"select-map-flex-container\">\n <div class=\"select-map-flex\">\n <div class=\"selected-mapping-route\">\n <p>{{sharedService?.cbpPlanFinalObj?.ministry?.orgName}} <span *ngIf=\"sharedService?.cbpPlanFinalObj?.department_name || originalData?.[0]?.department_name\">\n / {{ sharedService?.cbpPlanFinalObj?.department_name || originalData?.[0]?.department_name }}\n </span>\n </div>\n <div class=\"edit-plan cursor-pointer\" (click)=\"moveToInitialScreenLayout('edit')\">\n <mat-icon>edit</mat-icon>Edit\n </div>\n <!-- <div class=\"cursor-pointer ml-10\">-->\n <!-- <button class=\"btn-active cursor-pointer\" (click)=\"moveToInitialScreenLayout('add')\">-->\n <!-- <mat-icon>add</mat-icon>-->\n <!-- Create New CBP-->\n <!-- </button>-->\n <!-- </div>-->\n </div>\n <div>\n <div class=\"view-final-cbp-plan\">\n <!-- <div class=\"view-final-cbp-plan-text cursor-pointer\" (click)=\"viewFinalCBPPlan('cbp')\">\n <span class=\"ai-loader-icon\"><img src=\"assets/icons/ai-loader.gif\"></span><span>View\n Final CBP</span>\n </div> -->\n\n <div class=\"view-final-cbp-plan-text cursor-pointer\" (click)=\"viewFinalCBPPlan('acbp')\">\n <span class=\"ai-loader-icon\"><img src=\"assets/icons/ai-loader.gif\"></span><span>View\n Final CBP</span>\n </div>\n\n </div>\n\n </div>\n\n </div>\n </div>\n </div>\n <div class=\"search-filter-section mt-2\">\n <div class=\"search flex margin-right-m search-flex\">\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'\"\n type=\"button\" value=\"Search\" (click)=\"applyFilter()\" />\n </div>\n </div>\n\n\n </div>\n\n\n </div>\n <div class=\"filter-section flex margin-top-15\">\n <!-- <div>\n <label class=\"label\">Filter by competency type</label>\n <div>\n <mat-form-field appearance=\"fill\"\n style=\"background: white; border-radius: 25px; padding: 0 12px;\">\n <mat-select [(value)]=\"selectedValue\" placeholder=\"Select Ministry\"\n style=\"border-radius: 25px; background: white;\">\n <mat-option [value]=\"'test'\">Test</mat-option>\n <mat-option [value]=\"'another'\">Another</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div> -->\n <div class=\"btn-group\">\n <div class=\"ml-2\">\n <input class=\"btn-active\" type=\"button\" value=\"Add More Designation\"\n (click)=\"addMoreDesignation()\" />\n </div>\n <div class=\"ml-2\" *ngIf=\"activeTab === 'matched'\">\n <button\n [ngClass]=\"selection.selected.length ? 'btn-active-outline' : 'btn-active-outline-disable'\"\n (click)=\"sendForApprovalForm()\">\n <mat-icon>send</mat-icon>\n Send For Approval\n <span *ngIf=\"selection.selected.length\">({{selection.selected.length}})</span>\n </button>\n </div>\n\n\n </div>\n </div>\n </div>\n <div class=\"role-mapping-tabs mt-3\">\n <button class=\"role-tab\" [class.active]=\"activeTab === 'matched'\" (click)=\"setDataSoure('matched')\">\n <span class=\"dot\"></span>\n Matched role mappings\n <span class=\"badge blue\">{{matchedRoleMapping}}</span>\n </button>\n\n <button class=\"role-tab table-body-unmatched\" [class.active]=\"activeTab === 'unmatched'\"\n (click)=\"setDataSoure('unmatched')\">\n <span class=\"dot red\"></span>\n Unmatched role mapping\n <span class=\"badge red\">{{unMatchedRoleMapping}}</span>\n </button>\n </div>\n <div class=\"nav-container\">\n <div class=\"sidenav-content\">\n <div class=\"table-class\">\n <ng-container *ngIf=\"dataSource?.filteredData?.length > 0\">\n <!-- <table mat-table [dataSource]=\"dataSource\">\n <ng-container matColumnDef=\"RequestId\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\">Request ID </th>\n <td mat-cell class=\"title-class\" *matCellDef=\"let element\">{{element?.demand_id}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\">Title </th>\n <td mat-cell class=\"title-class\" *matCellDef=\"let element\">{{element?.title}}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"requestor\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\">Requestor </th>\n <td mat-cell class=\"title-class\" *matCellDef=\"let element\">{{element?.ownerName}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"requestType\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\">Request Type </th>\n <td mat-cell class=\"title-class\" *matCellDef=\"let element\">{{element?.requestType}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"requestStatus\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\">Request Status </th>\n\n <td mat-cell class=\"title-class\" *matCellDef=\"let element\">\n <span [ngClass]=\"getStatusClass(element?.status)\">{{element?.status ===\n statusKey.fullfill ? 'Fulfilled'\n : element?.status}}</span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"assignee\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\">Assignee </th>\n <td mat-cell class=\"title-class\" *matCellDef=\"let element\">\n {{element?.assignedProvider ?\n element?.assignedProvider : 'Not Assigned' }}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"requestedOn\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\">Requested On </th>\n <td mat-cell class=\"title-class\" *matCellDef=\"let element\">{{element?.createdOn |\n date}}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"interests\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\">Interests</th>\n <td mat-cell class=\"title-class\" *matCellDef=\"let element\">\n <a class=\"action-btn-view\" *ngIf=\"element?.interestCount!== 0\"\n href=\"javascript:void(0)\" [ngStyle]=\"getPointerEventsStyle(element)\">\n <span (click)=\"handleClick(element)\">\n {{element?.interestCount}}\n </span></a>\n <a class=\"\" *ngIf=\"element?.interestCount === 0\"\n href=\"javascript:void(0)\">{{element?.requestType ==\n 'Single' ? 'N/A' : element?.interestCount}}</a>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"details\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\">Details</th>\n <td mat-cell *matCellDef=\"let element\">\n <mat-icon (click)=\"navigateToDetails(element?.demand_id)\"\n class=\"cursor-pointer\">visibility</mat-icon>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"action\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\"></th>\n <td mat-cell *matCellDef=\"let element\">\n\n\n <span>\n <button mat-icon-button [matMenuTriggerFor]=\"menu\"\n aria-label=\"Example icon-button with a menu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)=\"onClickMenu(element,'viewContent')\">\n <span>View</span>\n </button>\n <button\n *ngIf=\"element?.status === statusKey.Unassigned && element?.status!== statusKey.Inprogress && element?.status!== statusKey.invalid \"\n mat-menu-item (click)=\"onClickMenu(element,'invalidContent')\">\n <span>Mark as invalid</span>\n </button>\n <button mat-menu-item\n *ngIf=\"element?.status!== statusKey.Assigned && element?.interestCount >0 && element?.status!== statusKey.Inprogress && element?.status!== statusKey.invalid && element?.status!==statusKey.fullfill\"\n (click)=\"onClickMenu(element,'assignContent')\">\n <span>Assign</span>\n </button>\n <button\n *ngIf=\"element?.status === statusKey.Assigned && element?.status!== statusKey.Inprogress && element?.status!== statusKey.invalid && element?.status!==statusKey.fullfill \"\n mat-menu-item (click)=\"onClickMenu(element,'reAssignContent')\">\n <span> Re-Assign</span>\n </button>\n <button mat-menu-item (click)=\"onClickMenu(element,'copyContent')\">\n <span>Copy</span>\n </button>\n </mat-menu>\n </span>\n </td>\n\n\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\" class=\"table-row-data\"></tr>\n <tr mat-row *matRowDef=\"let row;columns:displayedColumns\"></tr>\n\n\n </table> -->\n <div class=\"table-container mt-4\" style=\"overflow: auto;\">\n <table mat-table [dataSource]=\"dataSource\" class=\"mat-elevation-z1\"\n [ngClass]=\"activeTab === 'matched'? 'table-body': 'table-body-unmatched'\">\n <!-- Selection Column -->\n <ng-container matColumnDef=\"select\">\n <th mat-header-cell *matHeaderCellDef [hidden]=\"activeTab !== 'matched'\">\n <mat-checkbox class=\"radio-style-checkbox\" (change)=\"toggleAllRows($event)\"\n [checked]=\"isAllSelected()\" [indeterminate]=\"isSomeSelected()\"\n [disabled]=\"!hasSelectableRows()\">\n </mat-checkbox>\n </th>\n\n <td mat-cell *matCellDef=\"let row\" [hidden]=\"activeTab !== 'matched'\">\n <span matTooltip=\"Please generate & save course recommendation to select. Course recommendation generation & save is pending.\"\n [matTooltipDisabled]=\"!getActivateCbpPlan(row)\">\n <mat-checkbox class=\"radio-style-checkbox\"\n (click)=\"$event.stopPropagation()\" (change)=\"toggleRow(row)\"\n [checked]=\"selection.isSelected(row)\"\n [disabled]=\"getActivateCbpPlan(row)\" [ngClass]=\" getActivateCbpPlan(row)? 'grayd-disable':''\">\n </mat-checkbox>\n </span>\n </td>\n </ng-container>\n <!-- Designation Name -->\n <ng-container matColumnDef=\"designation_name\">\n <th [ngClass]=\"activeTab === 'matched'? 'table-header': 'table-header-unmatched'\"\n 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\n </td>\n </ng-container>\n\n <!-- Role & Responsibilities -->\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 <!-- {{ isResponisbilityExpanded(element.id) ? 'View Less' : 'View More' }} -->\n View More\n </span>\n </li>\n </ul>\n </td>\n </ng-container>\n <!-- Activities -->\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\"\n 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\n <!-- Behavioral Competencies -->\n <ng-container matColumnDef=\"behavioral\">\n <th [ngClass]=\"activeTab === 'matched'? 'table-header': 'table-header-unmatched'\"\n mat-header-cell *matHeaderCellDef> Behavioral\n Competencies <mat-icon class=\"icon-cursor\" (click)=\"openCompetencyInfo()\">info_outline</mat-icon> </th>\n <td mat-cell *matCellDef=\"let element\">\n <ul class=\"competency-list\">\n <li class=\"behavioural-pill\"\n *ngFor=\"let comp of (isBehavioralExpanded(element.id) ? getCompetenciesByType(element.competencies, 'Behavioral') : getCompetenciesByType(element.competencies, 'Behavioral').slice(0, 4))\">\n <div class=\"flex-col-theme\">\n <div>\n <span class=\"competency-text-behavioral\"> {{ comp.theme }} - {{\n comp.sub_theme }} </span>\n </div>\n <div class=\"competency-tags\">\n <span *ngIf=\"comp.proficiency_level\"\n class=\"proficiency-tag\"\n [ngClass]=\"comp.proficiency_level?.toLowerCase()\"\n [matTooltip]=\"comp?.proficiency_rationale\"\n >\n {{ comp?.proficiency_level }}\n </span>\n\n <span *ngIf=\"comp.delivery_mode\"\n class=\"delivery-mode-tag\"\n [ngClass]=\"comp.delivery_mode?.toLowerCase()\"\n [matTooltip]=\"comp?.delivery_mode_rationale\"\n >\n {{ comp?.delivery_mode }}\n </span>\n </div>\n </div>\n </li>\n <li *ngIf=\"getCompetenciesByType(element.competencies, 'Behavioral').length > 4\"\n class=\"view-more-less cursor-pointer\"\n (click)=\"openFullList(element, 'behavioral')\">\n <span style=\"color: #1B4CA1;font-size: 16px;\">\n View More\n </span>\n </li>\n </ul>\n </td>\n </ng-container>\n\n <!-- Functional Competencies -->\n <ng-container matColumnDef=\"functional\">\n <th [ngClass]=\"activeTab === 'matched'? 'table-header': 'table-header-unmatched'\"\n mat-header-cell *matHeaderCellDef> Functional\n Competencies <mat-icon class=\"icon-cursor\" (click)=\"openCompetencyInfo()\">info_outline</mat-icon></th>\n <td mat-cell *matCellDef=\"let element\">\n <ul class=\"competency-list\">\n <li class=\"functional-pill\"\n *ngFor=\"let comp of (isFunctionalExpanded(element.id) ? getCompetenciesByType(element.competencies, 'Functional') : getCompetenciesByType(element.competencies, 'Functional').slice(0, 4))\">\n <div class=\"flex-col-theme\">\n <div>\n <span class=\"competency-text-functional\"> {{ comp.theme }} - {{\n comp.sub_theme }}</span>\n </div>\n <div class=\"competency-tags\">\n <span *ngIf=\"comp.proficiency_level\"\n class=\"proficiency-tag\"\n [ngClass]=\"comp.proficiency_level?.toLowerCase()\"\n [matTooltip]=\"comp?.proficiency_rationale\"\n >\n {{ comp.proficiency_level }}\n </span>\n\n <span *ngIf=\"comp.delivery_mode\"\n class=\"delivery-mode-tag\"\n [ngClass]=\"comp.delivery_mode?.toLowerCase()\"\n [matTooltip]=\"comp?.delivery_mode_rationale\"\n >\n {{ comp.delivery_mode }}\n </span>\n </div>\n </div>\n </li>\n <li *ngIf=\"getCompetenciesByType(element.competencies, 'Functional').length > 4\"\n class=\"view-more-less cursor-pointer\"\n (click)=\"openFullList(element, 'functional')\">\n <span style=\"color: #1B4CA1;font-size: 16px;\">\n View More\n </span>\n </li>\n </ul>\n </td>\n </ng-container>\n\n <!-- Domain Competencies -->\n <ng-container matColumnDef=\"domain\">\n <th [ngClass]=\"activeTab === 'matched'? 'table-header': 'table-header-unmatched'\"\n mat-header-cell *matHeaderCellDef> Domain\n Competencies <mat-icon class=\"icon-cursor\" (click)=\"openCompetencyInfo()\">info_outline</mat-icon> </th>\n <td mat-cell *matCellDef=\"let element\">\n <ul class=\"competency-list\">\n <li class=\"domain-pill\"\n *ngFor=\"let comp of (isDomainExpanded(element.id) ? getCompetenciesByType(element.competencies, 'Domain') : getCompetenciesByType(element.competencies, 'Domain').slice(0, 4))\">\n <div class=\"flex-col-theme\">\n <div>\n <span class=\"competency-text-domain\"> {{ comp.theme }} - {{\n comp.sub_theme }}</span>\n </div>\n <div class=\"competency-tags\">\n <span *ngIf=\"comp.proficiency_level\"\n class=\"proficiency-tag\"\n [ngClass]=\"comp.proficiency_level?.toLowerCase()\"\n [matTooltip]=\"comp?.proficiency_rationale\"\n >\n {{ comp.proficiency_level }}\n </span>\n\n <span *ngIf=\"comp.delivery_mode\"\n class=\"delivery-mode-tag\"\n [ngClass]=\"comp.delivery_mode?.toLowerCase()\"\n [matTooltip]=\"comp?.delivery_mode_rationale\"\n >\n {{ comp.delivery_mode }}\n </span>\n </div>\n </div>\n </li>\n <li *ngIf=\"getCompetenciesByType(element.competencies, 'Domain').length > 4\"\n class=\"view-more-less cursor-pointer\"\n (click)=\"openFullList(element, 'domain')\">\n <span style=\"color: #1B4CA1;font-size: 16px;\">\n View More\n </span>\n </li>\n </ul>\n </td>\n </ng-container>\n\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 <td mat-cell *matCellDef=\"let element\">\n <button mat-icon-button [matMenuTriggerFor]=\"actionMenu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #actionMenu=\"matMenu\">\n <button mat-menu-item (click)=\"editRoleMapping(element)\">\n <mat-icon>edit</mat-icon>\n <span>Edit Role Mapping</span>\n </button>\n <button mat-menu-item (click)=\"viewCBPPlan(element)\">\n <mat-icon>visibility</mat-icon>\n <span>View Role Mapping</span>\n </button>\n <button mat-menu-item (click)=\"generateCourseRecommendation(element)\">\n <mat-icon>school</mat-icon>\n <span>Generate Course Recommendation</span>\n </button>\n <button mat-menu-item (click)=\"viewCourseRecommendation(element)\">\n <mat-icon>preview</mat-icon>\n <span>View Course Recommendation</span>\n </button>\n <button mat-menu-item (click)=\"deleteRoleMapping(element)\">\n <mat-icon>delete</mat-icon>\n <span>Delete Role Mapping</span>\n </button>\n <button *ngIf=\"activeTab !== 'matched'\" mat-menu-item (click)=\"sendForDesignationNameApproval(element)\">\n <mat-icon>send</mat-icon>\n <span>Send for Designation Name Approval</span>\n </button>\n </mat-menu>\n </td>\n </ng-container>\n\n <!-- Header & Rows -->\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n\n <!-- Pagination -->\n <mat-paginator [length]=\"totalRoleMappingListCount\" [pageIndex]=\"pageIndex\"\n [pageSize]=\"pageSize\" (page)=\"pageChangeEvent($event)\"\n [pageSizeOptions]=\"[5, 10, 20]\" showFirstLastButtons>\n </mat-paginator>\n </div>\n\n </ng-container>\n\n <div class=\"no-cbp-data\" *ngIf=\"dataSource?.filteredData?.length === 0\">\n <!-- <div><img src=\"/mdo-assets/images/no-content-data.svg\" alt=\"no-content\"></div> -->\n <div class=\"sub-heading mt-4\">\n <p>No role mappings available in this category</p>\n </div>\n <!-- <div class=\" margin-top-m no-content-create\">\n <button mat-button type=\"button\" class=\"search-btns\"\n [routerLink]=\"['/app/home/create-request-form']\">Request Content</button>\n </div> -->\n\n </div>\n\n <!-- <mat-paginator *ngIf=\"dataSource?.filteredData?.length > 0\" [pageSize]=\"pageSize\"\n [length]=\"this.requestCount\" [pageSizeOptions]=\"[10,20,40]\"\n (page)=\"onChangePage($event)\"></mat-paginator> -->\n\n\n </div>\n\n\n\n </div>\n </div>\n </mat-card>\n </div>\n</div>\n\n\n<div class=\"overlay-loader\" *ngIf=\"loading\">\n <mat-spinner diameter=\"50\"></mat-spinner>\n</div>\n\n<div\n class=\"competency-modal-backdrop\"\n *ngIf=\"isCompetencyInfoOpen\"\n (click)=\"closeCompetencyInfo()\"\n>\n <div\n class=\"competency-modal\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"competency-modal-title\"\n (click)=\"$event.stopPropagation()\"\n >\n <!-- Close Button -->\n <button\n type=\"button\"\n class=\"modal-close-btn\"\n (click)=\"closeCompetencyInfo()\"\n aria-label=\"Close\"\n >\n \u00D7\n </button>\n\n <!-- Title -->\n <h2 id=\"competency-modal-title\">\n What do the competency tags mean?\n </h2>\n\n <!-- Description -->\n <p class=\"modal-description\">\n Every competency carries two tags: how deeply this designation needs it,\n and how the training for it is delivered.\n </p>\n\n <!-- Proficiency -->\n <div class=\"competency-section\">\n <h3>\n PROFICIENCY LEVEL \u2014 THE DEPTH THIS DESIGNATION NEEDS\n </h3>\n\n <div class=\"tag-info-row\">\n <span class=\"proficiency-tag-modal strategic\">\n Strategic\n </span>\n\n <span class=\"tag-description\">\n Shapes policy, direction and outcomes\n </span>\n </div>\n\n <div class=\"tag-info-row\">\n <span class=\"proficiency-tag-modal tactical\">\n Tactical\n </span>\n\n <span class=\"tag-description\">\n Plans, coordinates and turns direction into programmes\n </span>\n </div>\n\n <div class=\"tag-info-row\">\n <span class=\"proficiency-tag-modal operational\">\n Operational\n </span>\n\n <span class=\"tag-description\">\n Executes and delivers the work on the ground\n </span>\n </div>\n </div>\n\n <!-- Delivery Mode -->\n <div class=\"competency-section delivery-section\">\n <h3>\n DELIVERY MODE \u2014 HOW THE TRAINING IS DELIVERED\n </h3>\n\n <div class=\"tag-info-row\">\n <span class=\"delivery-mode-tag-modal online\">\n Online\n </span>\n\n <span class=\"tag-description\">\n Self-paced, knowledge-based content\n </span>\n </div>\n\n <div class=\"tag-info-row\">\n <span class=\"delivery-mode-tag-modal offline\">\n Offline\n </span>\n\n <span class=\"tag-description\">\n Needs physical presence or supervised practice\n </span>\n </div>\n\n <div class=\"tag-info-row\">\n <span class=\"delivery-mode-tag-modal blended\">\n Blended\n </span>\n\n <span class=\"tag-description\">\n Concept combined with applied practice or coaching\n </span>\n </div>\n </div>\n\n </div>\n</div>", styles: [".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%}:host ::ng-deep input.mat-form-field{background-color:#fff!important;border-radius:25px!important;padding-left:12px;padding-right:12px;height:42px;width:100%}:host ::ng-deep mat-select{border-radius:25px!important;background-color:#fff!important}:host ::ng-deep .mat-select-panel{background-color:#fff!important}:host ::ng-deep .mat-select-panel .mat-option{border-radius:0!important}:host ::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}.grayd-disable{color:#d3d3d3!important}.competency-tags{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}.proficiency-tag,.delivery-mode-tag{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;border-radius:16px;font-size:11px;line-height:16px;font-weight:500;white-space:nowrap}.delivery-mode-tag.online{background:#e6f4ea;color:#1a7f45;border:1px solid #9BD3B0}.delivery-mode-tag.offline{background:#fdf0e3;color:#a2590a;border:1px solid #F0C48A}.delivery-mode-tag.blended{background:#efe9fb;color:#5b21b6;border:1px solid #C9B6F0}.proficiency-tag.strategic{background:#1b4ca1;color:#fff;border:none}.proficiency-tag.tactical{background:#5b8def;color:#fff;border:none}.proficiency-tag.operational{background:#dbe6f7;color:#1b4ca1;border:none}.flex-col-theme{display:flex;flex-direction:column}.competency-info-btn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;cursor:pointer;padding:0}.info-icon{width:22px;height:22px;display:flex;align-items:center;justify-content:center;border:1px solid #1b4ca1;border-radius:50%;color:#1b4ca1;font-size:14px;font-weight:700}.competency-modal-backdrop{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px;background:#1923328c;animation:fadeIn .2s ease}.competency-modal{position:relative;width:100%;max-width:900px;max-height:calc(100vh - 40px);overflow-y:auto;background:#fff;border-radius:16px;padding:40px 42px 38px;box-sizing:border-box;box-shadow:0 20px 50px #00000040;animation:modalSlideIn .25s ease}.modal-close-btn{position:absolute;top:26px;right:36px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:#5b6778;font-size:44px;font-weight:300;line-height:1;cursor:pointer}.modal-close-btn:hover{color:#1b4ca1}.competency-modal h2{margin:0 0 16px;color:#293548;font-size:34px;font-weight:700;line-height:1.25}.modal-description{max-width:800px;margin:0 0 28px;color:#59687b;font-size:16px;font-weight:700;line-height:1.5}.competency-section{margin-top:26px}.delivery-section{margin-top:28px}.competency-section h3{margin:0 0 18px;color:#354154;font-size:21px;font-weight:700;letter-spacing:.5px;line-height:1.4}.tag-info-row{display:flex;align-items:center;gap:14px;margin-bottom:10px}.proficiency-tag-modal,.delivery-mode-tag-modal{width:140px;min-width:140px;display:inline-flex;align-items:center;justify-content:center;padding:6px 14px;border-radius:20px;font-size:16px;font-weight:600;line-height:1.2;box-sizing:border-box}.proficiency-tag-modal.strategic{background:#1b4ca1;color:#fff}.proficiency-tag-modal.tactical{background:#5b8def;color:#fff}.proficiency-tag-modal.operational{background:#dbe6f7;color:#1b4ca1}.delivery-mode-tag-modal.online{background:#e6f4ea;color:#1a7f45;border:1px solid #9BD3B0}.delivery-mode-tag-modal.offline{background:#fdf0e3;color:#a2590a;border:1px solid #F0C48A}.delivery-mode-tag-modal.blended{background:#efe9fb;color:#5b21b6;border:1px solid #C9B6F0}.tag-description{color:#526174;font-weight:700;font-size:16px;line-height:1.4}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width: 768px){.competency-modal{padding:28px 22px}.competency-modal h2{padding-right:35px;font-size:26px}.modal-description,.competency-section h3{font-size:16px}.tag-info-row{align-items:flex-start;flex-direction:column;gap:8px}.proficiency-tag-modal,.delivery-mode-tag-modal{width:140px}.tag-description{font-size:16px}.modal-close-btn{top:18px;right:18px}}.icon-cursor{cursor:pointer;vertical-align:middle}\n"] }]
15637
+ args: [{ selector: 'app-role-mapping-list', template: "<div class=\"role-mapping-container\">\n <div class=\"container-fluid\">\n\n <mat-card class=\"mt-0 pt-0\">\n <div class=\"section-header\">\n\n </div>\n <div class=\"edit-section mt-4\">\n <div class=\"select-map-route-container\">\n <div class=\"select-map-flex-container\">\n <div class=\"select-map-flex\">\n <div class=\"selected-mapping-route\">\n <p>{{sharedService?.cbpPlanFinalObj?.ministry?.orgName}} <span *ngIf=\"sharedService?.cbpPlanFinalObj?.department_name || originalData?.[0]?.department_name\">\n / {{ sharedService?.cbpPlanFinalObj?.department_name || originalData?.[0]?.department_name }}\n </span>\n </div>\n <div class=\"edit-plan cursor-pointer\" (click)=\"moveToInitialScreenLayout('edit')\">\n <mat-icon>edit</mat-icon>Edit\n </div>\n <!-- <div class=\"cursor-pointer ml-10\">-->\n <!-- <button class=\"btn-active cursor-pointer\" (click)=\"moveToInitialScreenLayout('add')\">-->\n <!-- <mat-icon>add</mat-icon>-->\n <!-- Create New CBP-->\n <!-- </button>-->\n <!-- </div>-->\n </div>\n <div>\n <div class=\"view-final-cbp-plan\">\n <!-- <div class=\"view-final-cbp-plan-text cursor-pointer\" (click)=\"viewFinalCBPPlan('cbp')\">\n <span class=\"ai-loader-icon\"><img src=\"assets/icons/ai-loader.gif\"></span><span>View\n Final CBP</span>\n </div> -->\n\n <div class=\"view-final-cbp-plan-text cursor-pointer\" (click)=\"viewFinalCBPPlan('acbp')\">\n <span class=\"ai-loader-icon\"><img src=\"assets/icons/ai-loader.gif\"></span><span>View\n Final CBP</span>\n </div>\n\n </div>\n\n </div>\n\n </div>\n </div>\n </div>\n <div class=\"search-filter-section mt-2\">\n <div class=\"search flex margin-right-m search-flex\">\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'\"\n type=\"button\" value=\"Search\" (click)=\"applyFilter()\" />\n </div>\n </div>\n\n\n </div>\n\n\n </div>\n <div class=\"filter-section flex margin-top-15\">\n <!-- <div>\n <label class=\"label\">Filter by competency type</label>\n <div>\n <mat-form-field appearance=\"fill\"\n style=\"background: white; border-radius: 25px; padding: 0 12px;\">\n <mat-select [(value)]=\"selectedValue\" placeholder=\"Select Ministry\"\n style=\"border-radius: 25px; background: white;\">\n <mat-option [value]=\"'test'\">Test</mat-option>\n <mat-option [value]=\"'another'\">Another</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div> -->\n <div class=\"btn-group\">\n <div class=\"ml-2\">\n <input class=\"btn-active\" type=\"button\" value=\"Add More Designation\"\n (click)=\"addMoreDesignation()\" />\n </div>\n <div class=\"ml-2\" *ngIf=\"activeTab === 'matched'\">\n <button\n [ngClass]=\"selection.selected.length ? 'btn-active-outline' : 'btn-active-outline-disable'\"\n (click)=\"sendForApprovalForm()\">\n <mat-icon>send</mat-icon>\n Send For Approval\n <span *ngIf=\"selection.selected.length\">({{selection.selected.length}})</span>\n </button>\n </div>\n\n\n </div>\n </div>\n </div>\n <div class=\"role-mapping-tabs mt-3\">\n <button class=\"role-tab\" [class.active]=\"activeTab === 'matched'\" (click)=\"setDataSoure('matched')\">\n <span class=\"dot\"></span>\n Matched role mappings\n <span class=\"badge blue\">{{matchedRoleMapping}}</span>\n </button>\n\n <button class=\"role-tab table-body-unmatched\" [class.active]=\"activeTab === 'unmatched'\"\n (click)=\"setDataSoure('unmatched')\">\n <span class=\"dot red\"></span>\n Unmatched role mapping\n <span class=\"badge red\">{{unMatchedRoleMapping}}</span>\n </button>\n </div>\n <div class=\"nav-container\">\n <div class=\"sidenav-content\">\n <div class=\"table-class\">\n <ng-container *ngIf=\"dataSource?.filteredData?.length > 0\">\n <!-- <table mat-table [dataSource]=\"dataSource\">\n <ng-container matColumnDef=\"RequestId\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\">Request ID </th>\n <td mat-cell class=\"title-class\" *matCellDef=\"let element\">{{element?.demand_id}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\">Title </th>\n <td mat-cell class=\"title-class\" *matCellDef=\"let element\">{{element?.title}}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"requestor\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\">Requestor </th>\n <td mat-cell class=\"title-class\" *matCellDef=\"let element\">{{element?.ownerName}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"requestType\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\">Request Type </th>\n <td mat-cell class=\"title-class\" *matCellDef=\"let element\">{{element?.requestType}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"requestStatus\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\">Request Status </th>\n\n <td mat-cell class=\"title-class\" *matCellDef=\"let element\">\n <span [ngClass]=\"getStatusClass(element?.status)\">{{element?.status ===\n statusKey.fullfill ? 'Fulfilled'\n : element?.status}}</span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"assignee\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\">Assignee </th>\n <td mat-cell class=\"title-class\" *matCellDef=\"let element\">\n {{element?.assignedProvider ?\n element?.assignedProvider : 'Not Assigned' }}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"requestedOn\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\">Requested On </th>\n <td mat-cell class=\"title-class\" *matCellDef=\"let element\">{{element?.createdOn |\n date}}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"interests\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\">Interests</th>\n <td mat-cell class=\"title-class\" *matCellDef=\"let element\">\n <a class=\"action-btn-view\" *ngIf=\"element?.interestCount!== 0\"\n href=\"javascript:void(0)\" [ngStyle]=\"getPointerEventsStyle(element)\">\n <span (click)=\"handleClick(element)\">\n {{element?.interestCount}}\n </span></a>\n <a class=\"\" *ngIf=\"element?.interestCount === 0\"\n href=\"javascript:void(0)\">{{element?.requestType ==\n 'Single' ? 'N/A' : element?.interestCount}}</a>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"details\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\">Details</th>\n <td mat-cell *matCellDef=\"let element\">\n <mat-icon (click)=\"navigateToDetails(element?.demand_id)\"\n class=\"cursor-pointer\">visibility</mat-icon>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"action\">\n <th mat-header-cell *matHeaderCellDef class=\"row-heading\"></th>\n <td mat-cell *matCellDef=\"let element\">\n\n\n <span>\n <button mat-icon-button [matMenuTriggerFor]=\"menu\"\n aria-label=\"Example icon-button with a menu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)=\"onClickMenu(element,'viewContent')\">\n <span>View</span>\n </button>\n <button\n *ngIf=\"element?.status === statusKey.Unassigned && element?.status!== statusKey.Inprogress && element?.status!== statusKey.invalid \"\n mat-menu-item (click)=\"onClickMenu(element,'invalidContent')\">\n <span>Mark as invalid</span>\n </button>\n <button mat-menu-item\n *ngIf=\"element?.status!== statusKey.Assigned && element?.interestCount >0 && element?.status!== statusKey.Inprogress && element?.status!== statusKey.invalid && element?.status!==statusKey.fullfill\"\n (click)=\"onClickMenu(element,'assignContent')\">\n <span>Assign</span>\n </button>\n <button\n *ngIf=\"element?.status === statusKey.Assigned && element?.status!== statusKey.Inprogress && element?.status!== statusKey.invalid && element?.status!==statusKey.fullfill \"\n mat-menu-item (click)=\"onClickMenu(element,'reAssignContent')\">\n <span> Re-Assign</span>\n </button>\n <button mat-menu-item (click)=\"onClickMenu(element,'copyContent')\">\n <span>Copy</span>\n </button>\n </mat-menu>\n </span>\n </td>\n\n\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\" class=\"table-row-data\"></tr>\n <tr mat-row *matRowDef=\"let row;columns:displayedColumns\"></tr>\n\n\n </table> -->\n <div class=\"table-container mt-4\" style=\"overflow: auto;\">\n <table mat-table [dataSource]=\"dataSource\" class=\"mat-elevation-z1\"\n [ngClass]=\"activeTab === 'matched'? 'table-body': 'table-body-unmatched'\">\n <!-- Selection Column -->\n <ng-container matColumnDef=\"select\">\n <th mat-header-cell *matHeaderCellDef [hidden]=\"activeTab !== 'matched'\">\n <mat-checkbox class=\"radio-style-checkbox\" (change)=\"toggleAllRows($event)\"\n [checked]=\"isAllSelected()\" [indeterminate]=\"isSomeSelected()\"\n [disabled]=\"!hasSelectableRows()\">\n </mat-checkbox>\n </th>\n\n <td mat-cell *matCellDef=\"let row\" [hidden]=\"activeTab !== 'matched'\">\n <span matTooltip=\"Please generate & save course recommendation to select. Course recommendation generation & save is pending.\"\n [matTooltipDisabled]=\"!getActivateCbpPlan(row)\">\n <mat-checkbox class=\"radio-style-checkbox\"\n (click)=\"$event.stopPropagation()\" (change)=\"toggleRow(row)\"\n [checked]=\"selection.isSelected(row)\"\n [disabled]=\"getActivateCbpPlan(row)\" [ngClass]=\" getActivateCbpPlan(row)? 'grayd-disable':''\">\n </mat-checkbox>\n </span>\n </td>\n </ng-container>\n <!-- Designation Name -->\n <ng-container matColumnDef=\"designation_name\">\n <th [ngClass]=\"activeTab === 'matched'? 'table-header': 'table-header-unmatched'\"\n 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\n </td>\n </ng-container>\n\n <!-- Role & Responsibilities -->\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 <!-- {{ isResponisbilityExpanded(element.id) ? 'View Less' : 'View More' }} -->\n View More\n </span>\n </li>\n </ul>\n </td>\n </ng-container>\n <!-- Activities -->\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\"\n 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\n <!-- Behavioral Competencies -->\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 (isBehavioralExpanded(element.id) ? getCompetenciesByType(element.competencies, 'Behavioral') : getCompetenciesByType(element.competencies, 'Behavioral').slice(0, 4))\">\n <div class=\"flex-col-theme\">\n <div>\n <span class=\"competency-text-behavioral\"> {{ comp.theme }} - {{\n comp.sub_theme }} </span>\n </div>\n <div class=\"competency-tags\">\n <span *ngIf=\"comp.proficiency_level\"\n class=\"proficiency-tag\"\n [ngClass]=\"comp.proficiency_level?.toLowerCase()\"\n [matTooltip]=\"comp?.proficiency_rationale\"\n >\n {{ comp?.proficiency_level }}\n </span>\n\n <span *ngIf=\"comp.delivery_mode\"\n class=\"delivery-mode-tag\"\n [ngClass]=\"comp.delivery_mode?.toLowerCase()\"\n [matTooltip]=\"comp?.delivery_mode_rationale\"\n >\n {{ comp?.delivery_mode }}\n </span>\n </div>\n </div>\n </li>\n <li *ngIf=\"getCompetenciesByType(element.competencies, 'Behavioral').length > 4\"\n class=\"view-more-less cursor-pointer\"\n (click)=\"openFullList(element, 'behavioral')\">\n <span style=\"color: #1B4CA1;font-size: 16px;\">\n View More\n </span>\n </li>\n </ul>\n </td>\n </ng-container>\n\n <!-- Functional Competencies -->\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 (isFunctionalExpanded(element.id) ? getCompetenciesByType(element.competencies, 'Functional') : getCompetenciesByType(element.competencies, 'Functional').slice(0, 4))\">\n <div class=\"flex-col-theme\">\n <div>\n <span class=\"competency-text-functional\"> {{ comp.theme }} - {{\n comp.sub_theme }}</span>\n </div>\n <div class=\"competency-tags\">\n <span *ngIf=\"comp.proficiency_level\"\n class=\"proficiency-tag\"\n [ngClass]=\"comp.proficiency_level?.toLowerCase()\"\n [matTooltip]=\"comp?.proficiency_rationale\"\n >\n {{ comp.proficiency_level }}\n </span>\n\n <span *ngIf=\"comp.delivery_mode\"\n class=\"delivery-mode-tag\"\n [ngClass]=\"comp.delivery_mode?.toLowerCase()\"\n [matTooltip]=\"comp?.delivery_mode_rationale\"\n >\n {{ comp.delivery_mode }}\n </span>\n </div>\n </div>\n </li>\n <li *ngIf=\"getCompetenciesByType(element.competencies, 'Functional').length > 4\"\n class=\"view-more-less cursor-pointer\"\n (click)=\"openFullList(element, 'functional')\">\n <span style=\"color: #1B4CA1;font-size: 16px;\">\n View More\n </span>\n </li>\n </ul>\n </td>\n </ng-container>\n\n <!-- Domain Competencies -->\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 (isDomainExpanded(element.id) ? getCompetenciesByType(element.competencies, 'Domain') : getCompetenciesByType(element.competencies, 'Domain').slice(0, 4))\">\n <div class=\"flex-col-theme\">\n <div>\n <span class=\"competency-text-domain\"> {{ comp.theme }} - {{\n comp.sub_theme }}</span>\n </div>\n <div class=\"competency-tags\">\n <span *ngIf=\"comp.proficiency_level\"\n class=\"proficiency-tag\"\n [ngClass]=\"comp.proficiency_level?.toLowerCase()\"\n [matTooltip]=\"comp?.proficiency_rationale\"\n >\n {{ comp.proficiency_level }}\n </span>\n\n <span *ngIf=\"comp.delivery_mode\"\n class=\"delivery-mode-tag\"\n [ngClass]=\"comp.delivery_mode?.toLowerCase()\"\n [matTooltip]=\"comp?.delivery_mode_rationale\"\n >\n {{ comp.delivery_mode }}\n </span>\n </div>\n </div>\n </li>\n <li *ngIf=\"getCompetenciesByType(element.competencies, 'Domain').length > 4\"\n class=\"view-more-less cursor-pointer\"\n (click)=\"openFullList(element, 'domain')\">\n <span style=\"color: #1B4CA1;font-size: 16px;\">\n View More\n </span>\n </li>\n </ul>\n </td>\n </ng-container>\n\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 <td mat-cell *matCellDef=\"let element\">\n <button mat-icon-button [matMenuTriggerFor]=\"actionMenu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #actionMenu=\"matMenu\">\n <button mat-menu-item (click)=\"editRoleMapping(element)\">\n <mat-icon>edit</mat-icon>\n <span>Edit Role Mapping</span>\n </button>\n <button mat-menu-item (click)=\"viewCBPPlan(element)\">\n <mat-icon>visibility</mat-icon>\n <span>View Role Mapping</span>\n </button>\n <button mat-menu-item (click)=\"generateCourseRecommendation(element)\">\n <mat-icon>school</mat-icon>\n <span>Generate Course Recommendation</span>\n </button>\n <button mat-menu-item (click)=\"viewCourseRecommendation(element)\">\n <mat-icon>preview</mat-icon>\n <span>View Course Recommendation</span>\n </button>\n <button mat-menu-item (click)=\"deleteRoleMapping(element)\">\n <mat-icon>delete</mat-icon>\n <span>Delete Role Mapping</span>\n </button>\n <button *ngIf=\"activeTab !== 'matched'\" mat-menu-item (click)=\"sendForDesignationNameApproval(element)\">\n <mat-icon>send</mat-icon>\n <span>Send for Designation Name Approval</span>\n </button>\n </mat-menu>\n </td>\n </ng-container>\n\n <!-- Header & Rows -->\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n\n <!-- Pagination -->\n <mat-paginator [length]=\"totalRoleMappingListCount\" [pageIndex]=\"pageIndex\"\n [pageSize]=\"pageSize\" (page)=\"pageChangeEvent($event)\"\n [pageSizeOptions]=\"[5, 10, 20]\" showFirstLastButtons>\n </mat-paginator>\n </div>\n\n </ng-container>\n\n <div class=\"no-cbp-data\" *ngIf=\"dataSource?.filteredData?.length === 0\">\n <!-- <div><img src=\"/mdo-assets/images/no-content-data.svg\" alt=\"no-content\"></div> -->\n <div class=\"sub-heading mt-4\">\n <p>No role mappings available in this category</p>\n </div>\n <!-- <div class=\" margin-top-m no-content-create\">\n <button mat-button type=\"button\" class=\"search-btns\"\n [routerLink]=\"['/app/home/create-request-form']\">Request Content</button>\n </div> -->\n\n </div>\n\n <!-- <mat-paginator *ngIf=\"dataSource?.filteredData?.length > 0\" [pageSize]=\"pageSize\"\n [length]=\"this.requestCount\" [pageSizeOptions]=\"[10,20,40]\"\n (page)=\"onChangePage($event)\"></mat-paginator> -->\n\n\n </div>\n\n\n\n </div>\n </div>\n </mat-card>\n </div>\n</div>\n\n\n<div class=\"overlay-loader\" *ngIf=\"loading\">\n <mat-spinner diameter=\"50\"></mat-spinner>\n</div>\n\n<div\n class=\"competency-modal-backdrop\"\n *ngIf=\"isCompetencyInfoOpen\"\n (click)=\"closeCompetencyInfo()\"\n>\n <div\n class=\"competency-modal\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"competency-modal-title\"\n (click)=\"$event.stopPropagation()\"\n >\n <!-- Close Button -->\n <button\n type=\"button\"\n class=\"modal-close-btn\"\n (click)=\"closeCompetencyInfo()\"\n aria-label=\"Close\"\n >\n \u00D7\n </button>\n\n <!-- Title -->\n <h2 id=\"competency-modal-title\">\n What do the competency tags mean?\n </h2>\n\n <!-- Description -->\n <p class=\"modal-description\">\n Every competency carries two tags: how deeply this designation needs it,\n and how the training for it is delivered.\n </p>\n\n <!-- Proficiency -->\n <div class=\"competency-section\">\n <h3>\n PROFICIENCY LEVEL \u2014 THE DEPTH THIS DESIGNATION NEEDS\n </h3>\n\n <div class=\"tag-info-row\">\n <span class=\"proficiency-tag-modal strategic\">\n Strategic\n </span>\n\n <span class=\"tag-description\">\n Shapes policy, direction and outcomes\n </span>\n </div>\n\n <div class=\"tag-info-row\">\n <span class=\"proficiency-tag-modal tactical\">\n Tactical\n </span>\n\n <span class=\"tag-description\">\n Plans, coordinates and turns direction into programmes\n </span>\n </div>\n\n <div class=\"tag-info-row\">\n <span class=\"proficiency-tag-modal operational\">\n Operational\n </span>\n\n <span class=\"tag-description\">\n Executes and delivers the work on the ground\n </span>\n </div>\n </div>\n\n <!-- Delivery Mode -->\n <div class=\"competency-section delivery-section\">\n <h3>\n DELIVERY MODE \u2014 HOW THE TRAINING IS DELIVERED\n </h3>\n\n <div class=\"tag-info-row\">\n <span class=\"delivery-mode-tag-modal online\">\n Online\n </span>\n\n <span class=\"tag-description\">\n Self-paced, knowledge-based content\n </span>\n </div>\n\n <div class=\"tag-info-row\">\n <span class=\"delivery-mode-tag-modal offline\">\n Offline\n </span>\n\n <span class=\"tag-description\">\n Needs physical presence or supervised practice\n </span>\n </div>\n\n <div class=\"tag-info-row\">\n <span class=\"delivery-mode-tag-modal blended\">\n Blended\n </span>\n\n <span class=\"tag-description\">\n Concept combined with applied practice or coaching\n </span>\n </div>\n </div>\n\n </div>\n</div>", styles: [".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%}:host ::ng-deep input.mat-form-field{background-color:#fff!important;border-radius:25px!important;padding-left:12px;padding-right:12px;height:42px;width:100%}:host ::ng-deep mat-select{border-radius:25px!important;background-color:#fff!important}:host ::ng-deep .mat-select-panel{background-color:#fff!important}:host ::ng-deep .mat-select-panel .mat-option{border-radius:0!important}:host ::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}.grayd-disable{color:#d3d3d3!important}.competency-tags{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}.proficiency-tag,.delivery-mode-tag{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;border-radius:16px;font-size:11px;line-height:16px;font-weight:500;white-space:nowrap}.delivery-mode-tag.online{background:#e6f4ea;color:#1a7f45;border:1px solid #9BD3B0}.delivery-mode-tag.offline{background:#fdf0e3;color:#a2590a;border:1px solid #F0C48A}.delivery-mode-tag.blended{background:#efe9fb;color:#5b21b6;border:1px solid #C9B6F0}.proficiency-tag.strategic{background:#1b4ca1;color:#fff;border:none}.proficiency-tag.tactical{background:#5b8def;color:#fff;border:none}.proficiency-tag.operational{background:#dbe6f7;color:#1b4ca1;border:none}.flex-col-theme{display:flex;flex-direction:column}.competency-info-btn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;cursor:pointer;padding:0}.info-icon{width:22px;height:22px;display:flex;align-items:center;justify-content:center;border:1px solid #1b4ca1;border-radius:50%;color:#1b4ca1;font-size:14px;font-weight:700}.competency-modal-backdrop{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px;background:#1923328c;animation:fadeIn .2s ease}.competency-modal{position:relative;width:100%;max-width:900px;max-height:calc(100vh - 40px);overflow-y:auto;background:#fff;border-radius:16px;padding:40px 42px 38px;box-sizing:border-box;box-shadow:0 20px 50px #00000040;animation:modalSlideIn .25s ease}.modal-close-btn{position:absolute;top:26px;right:36px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:#5b6778;font-size:44px;font-weight:300;line-height:1;cursor:pointer}.modal-close-btn:hover{color:#1b4ca1}.competency-modal h2{margin:0 0 16px;color:#293548;font-size:34px;font-weight:700;line-height:1.25}.modal-description{max-width:800px;margin:0 0 28px;color:#59687b;font-size:16px;font-weight:700;line-height:1.5}.competency-section{margin-top:26px}.delivery-section{margin-top:28px}.competency-section h3{margin:0 0 18px;color:#354154;font-size:21px;font-weight:700;letter-spacing:.5px;line-height:1.4}.tag-info-row{display:flex;align-items:center;gap:14px;margin-bottom:10px}.proficiency-tag-modal,.delivery-mode-tag-modal{width:140px;min-width:140px;display:inline-flex;align-items:center;justify-content:center;padding:6px 14px;border-radius:20px;font-size:16px;font-weight:600;line-height:1.2;box-sizing:border-box}.proficiency-tag-modal.strategic{background:#1b4ca1;color:#fff}.proficiency-tag-modal.tactical{background:#5b8def;color:#fff}.proficiency-tag-modal.operational{background:#dbe6f7;color:#1b4ca1}.delivery-mode-tag-modal.online{background:#e6f4ea;color:#1a7f45;border:1px solid #9BD3B0}.delivery-mode-tag-modal.offline{background:#fdf0e3;color:#a2590a;border:1px solid #F0C48A}.delivery-mode-tag-modal.blended{background:#efe9fb;color:#5b21b6;border:1px solid #C9B6F0}.tag-description{color:#526174;font-weight:700;font-size:16px;line-height:1.4}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width: 768px){.competency-modal{padding:28px 22px}.competency-modal h2{padding-right:35px;font-size:26px}.modal-description,.competency-section h3{font-size:16px}.tag-info-row{align-items:flex-start;flex-direction:column;gap:8px}.proficiency-tag-modal,.delivery-mode-tag-modal{width:140px}.tag-description{font-size:16px}.modal-close-btn{top:18px;right:18px}}.icon-cursor{cursor:pointer;vertical-align:middle}\n"] }]
15638
15638
  }], ctorParameters: function () { return [{ type: SharedService }, { type: i1$1.MatDialog }, { type: i3.Router }, { type: i3.ActivatedRoute }]; }, propDecorators: { formData: [{
15639
15639
  type: Input
15640
15640
  }], paginator: [{