vcomply-workflow-engine 6.0.85 → 6.0.87
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.
- package/esm2022/lib/add-multiple-responsibility-with-tab/add-multiple-responsibility-with-tab.component.mjs +21 -7
- package/esm2022/lib/constants/regix.constants.mjs +4 -0
- package/esm2022/lib/constants/responsibility.mjs +5 -0
- package/esm2022/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.mjs +6 -3
- package/esm2022/lib/sharedComponents/pipes/risk-class.pipe.mjs +17 -0
- package/esm2022/lib/workflow-compliance/workflow-compliance.component.mjs +14 -1
- package/esm2022/lib/workflow-engine.module.mjs +6 -3
- package/fesm2022/vcomply-workflow-engine.mjs +61 -10
- package/fesm2022/vcomply-workflow-engine.mjs.map +1 -1
- package/lib/add-multiple-responsibility-with-tab/add-multiple-responsibility-with-tab.component.d.ts +1 -0
- package/lib/constants/regix.constants.d.ts +3 -0
- package/lib/constants/responsibility.d.ts +4 -0
- package/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.d.ts +3 -0
- package/lib/sharedComponents/pipes/risk-class.pipe.d.ts +7 -0
- package/lib/workflow-compliance/workflow-compliance.component.d.ts +2 -0
- package/lib/workflow-engine.module.d.ts +41 -40
- package/lib/workflow-risk/workflow-risk.component.d.ts +1 -1
- package/package.json +1 -1
|
@@ -30954,6 +30954,12 @@ class WorkflowComplianceComponent {
|
|
|
30954
30954
|
this.setFeatureFlags();
|
|
30955
30955
|
this.pickerChanged.emit(false);
|
|
30956
30956
|
this.getInitialData();
|
|
30957
|
+
this.populateRCList();
|
|
30958
|
+
}
|
|
30959
|
+
populateRCList() {
|
|
30960
|
+
if (this.openedFrom === 'RISK_TREATMENT' && this.mode === 'CREATE') {
|
|
30961
|
+
this.getRCList();
|
|
30962
|
+
}
|
|
30957
30963
|
}
|
|
30958
30964
|
setFeatureFlags() {
|
|
30959
30965
|
this.featureFlag_groups = this.feature.isFeatureEnabled('ff_responsibility_groups');
|
|
@@ -30970,6 +30976,9 @@ class WorkflowComplianceComponent {
|
|
|
30970
30976
|
this.getOrganizationDetails();
|
|
30971
30977
|
this.getUserDetails();
|
|
30972
30978
|
this.shortMonth = this.frequencyService.monthArray.map((month) => month.substring(0, 3));
|
|
30979
|
+
if (this.openedFrom === 'RISK_TREATMENT') {
|
|
30980
|
+
this.getRCDetailsinRiskTreatment();
|
|
30981
|
+
}
|
|
30973
30982
|
if (this.mode === 'CREATE') {
|
|
30974
30983
|
this.organizationId = this.authService.getOrganizationId();
|
|
30975
30984
|
this.memberId = this.authService.getMemberId();
|
|
@@ -30988,6 +30997,10 @@ class WorkflowComplianceComponent {
|
|
|
30988
30997
|
this.setResponsibilityName();
|
|
30989
30998
|
this.hideElementsFromMoreOptions.emit(this.hiddenList);
|
|
30990
30999
|
}
|
|
31000
|
+
getRCDetailsinRiskTreatment() {
|
|
31001
|
+
this.responsibilityForm.rc = this.setList(this.responsibilityCentersList, [this.selectedRC], 'item_id');
|
|
31002
|
+
this.moreOptions.RC = true;
|
|
31003
|
+
}
|
|
30991
31004
|
getOrgDetails() {
|
|
30992
31005
|
this.organizationCommonService?.getOrgDetailsInfo()?.subscribe({
|
|
30993
31006
|
next: (res) => {
|
|
@@ -46651,8 +46664,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
46651
46664
|
}]
|
|
46652
46665
|
}], ctorParameters: function () { return []; } });
|
|
46653
46666
|
|
|
46667
|
+
const RISK_CLASS_LIST = ['high', 'low-medium', 'low', 'medium-high'];
|
|
46668
|
+
const VALIDATION_MESSAGES = {
|
|
46669
|
+
RISK_CLASS: 'Invalid Risk Classification',
|
|
46670
|
+
};
|
|
46671
|
+
|
|
46672
|
+
class RiskClassPipe {
|
|
46673
|
+
transform(value) {
|
|
46674
|
+
return RISK_CLASS_LIST.includes(value?.toLowerCase());
|
|
46675
|
+
}
|
|
46676
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RiskClassPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
46677
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: RiskClassPipe, name: "riskClass" }); }
|
|
46678
|
+
}
|
|
46679
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RiskClassPipe, decorators: [{
|
|
46680
|
+
type: Pipe,
|
|
46681
|
+
args: [{
|
|
46682
|
+
name: 'riskClass',
|
|
46683
|
+
}]
|
|
46684
|
+
}] });
|
|
46685
|
+
|
|
46654
46686
|
class BulkResponsibilityViewComponent {
|
|
46655
46687
|
constructor() {
|
|
46688
|
+
this.VALIDATION_MESSAGES = VALIDATION_MESSAGES;
|
|
46656
46689
|
this.loader = false;
|
|
46657
46690
|
this.tabType = 'frequency';
|
|
46658
46691
|
this.submitResponsibilityBulkUpload = new EventEmitter();
|
|
@@ -46691,11 +46724,11 @@ class BulkResponsibilityViewComponent {
|
|
|
46691
46724
|
this.cancel.emit();
|
|
46692
46725
|
}
|
|
46693
46726
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BulkResponsibilityViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
46694
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BulkResponsibilityViewComponent, selector: "app-bulk-responsibility-view", inputs: { responsibilityBulkUpload: "responsibilityBulkUpload", fileName: "fileName", defaultOwner: "defaultOwner", loader: "loader", tabType: "tabType", bulkUpload: "bulkUpload", responsibilityType: "responsibilityType" }, outputs: { submitResponsibilityBulkUpload: "submitResponsibilityBulkUpload", cancel: "cancel", selectedTab: "selectedTab" }, usesOnChanges: true, ngImport: i0, template: "\n<ng-container *ngIf=\"responsibilityType === 'singleTab'\">\n<div class=\"bulk-view\">\n <div class=\"bulk-view-head\">\n <h2 class=\"bulk-view-title\">\n {{fileName}}\n </h2>\n </div>\n <div class=\"bulk-view-body\">\n <div class=\"exel-view\">\n <div class=\"exel-view-row head\">\n <div class=\"exel-view-column sl-no\">#</div>\n <div class=\"exel-view-column\" *ngFor=\"let heading of responsibilityBulkUpload?.header\"\n [class.large]=\"heading && heading.startsWith('Inherent')\">\n <ng-container *ngIf=\"heading && !(heading.startsWith('Due')) && !(heading.startsWith('Oversight'))\">\n {{(heading.includes('*')? heading.replace('*', '') : heading)}}\n <span *ngIf=\"heading.includes('*')\" class=\"required\">*</span>\n </ng-container>\n <ng-container *ngIf=\"heading && heading.startsWith('Due')\">\n <div class=\"exel-view-row\">\n <div class=\"exel-view-column large\">Due Date</div>\n </div>\n <div class=\"exel-view-row multi-column\">\n <div class=\"exel-view-column\">Day</div>\n <div class=\"exel-view-column\">Month</div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"heading && heading.startsWith('Oversight')\">\n <div class=\"exel-view-row\">\n <div class=\"exel-view-column large\">Oversight </div>\n </div>\n <div class=\"exel-view-row multi-column\">\n <div class=\"exel-view-column\">Always Notify</div>\n <div class=\"exel-view-column\">Notify on Failure</div>\n </div>\n </ng-container>\n </div>\n\n </div>\n <div class=\"exel-view-row\" *ngFor=\"let report of responsibilityBulkUpload?.reports; let i = index\">\n <div class=\"exel-view-column sl-no\">{{i+1}}</div>\n\n <div class=\"exel-view-column\" [class.error]=\"!report.responsibilityName\">{{report?.responsibilityName}}\n <i *ngIf=\"!report?.responsibilityName\" class=\"icons\"\n [appTooltip]=\"'Enter a name for this responsibility.'\" placement=\"bottom-right\" type=\"white\"\n delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column\">\n {{report?.assignor}}\n <i *ngIf=\"((report?.assignor) && (report?.notifyOnFailure == report?.assignor||report?.alwaysNotify == report?.assignor))\"\n class=\"icons\"\n [appTooltip]=\"'The Overseer cannot also be the Assignor of this responsibility. Select another user as the Assignor.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n<!--\n <i *ngIf=\"((report?.assignor) && (report?.reviewer == report?.assignor))\"\n class=\"icons\"\n [appTooltip]=\"'The Reviewer cannot also be the Assignor of this responsibility. Select another user as the Assignor.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i> -->\n </div>\n <div class=\"exel-view-column\">\n {{report?.assignee}}\n\n <i *ngIf=\"((report?.assignee) && (report?.notifyOnFailure == report?.assignee||report?.alwaysNotify == report?.assignee))\"\n class=\"icons\"\n [appTooltip]=\"'The Overseer cannot also be the Assignee of this responsibility. Select another user as the Assignee.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n\n <i *ngIf=\"((report?.assignee) && (report?.reviewer == report?.assignee))\"\n class=\"icons\"\n [appTooltip]=\"'The Reviewer cannot also be the Assignee of this responsibility. Select another user as the Assignee.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n <i *ngIf=\"(!report?.assignee) || (!report?.isValidUser)\"\n class=\"icons\"\n [appTooltip]=\"'Select the user responsible for completing this responsibility. '\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n </div>\n <div class=\"exel-view-column\" id=\"resCategory\" *ngIf=\"report?.responsibilityCategory!==null\">{{report?.responsibilityCategory}}</div>\n <div class=\"exel-view-column\" [class.error]=\"!report.frequency\">{{report?.frequency}}\n <i *ngIf=\"!report?.frequency\" class=\"icons\" [appTooltip]=\"'Select a frequency for this responsibility.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column multi-column\">\n <div class=\"exel-view-row\">\n <div class=\"exel-view-column\" [class.error]=\"!report.isValidDueDate\">{{report?.day}}\n <i *ngIf=\"!report?.isValidDueDate\" class=\"icons\" [appTooltip]=\"'Invalid Due Date.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n <i *ngIf=\"report?.isPastDate\" class=\"icons\" [appTooltip]=\"'This date occurs in the past. Select a future date.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column\" [class.error]=\"!report.isValidDueDate\">{{report?.month}}\n <i *ngIf=\"!report?.isValidDueDate\" class=\"icons\" [appTooltip]=\"'Invalid Due Date.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n <i *ngIf=\"report?.isPastDate\" class=\"icons\" [appTooltip]=\"'This date occurs in the past. Select a future date.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n </div>\n </div>\n <div class=\"exel-view-column\">{{report?.responsibilityWindow}}</div>\n <div class=\"exel-view-column\">{{report?.failedAfter}}</div>\n <div class=\"exel-view-column\">{{report?.reportClass}}</div>\n <div class=\"exel-view-column\">{{report?.responsibilityCenter}}</div>\n <div class=\"exel-view-column\">\n {{report?.reviewer}}\n\n <i *ngIf=\"(report?.reviewer) && ((report?.reviewer == report?.alwaysNotify) || (report?.reviewer == report?.notifyOnFailure))\"\n class=\"icons\"\n [appTooltip]=\"'The Overseer cannot also be the Reviewer of this responsibility. Select another user as the Reviewer'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n\n <i *ngIf=\"report?.reviewer && (report?.reviewer == report?.assignee)\" class=\"icons\"\n [appTooltip]=\"'The Assignee cannot also be the Reviewer of this responsibility. Select another user as the Reviewer.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n <!-- <i *ngIf=\"(report?.reviewer && report?.assignor)\"\n class=\"icons\"\n [appTooltip]=\"((report?.assignor)?'The Assignor cannot also be the Reviewer of this responsibility.':'You cannot be a Reviewer of this responsibility since you are the assignor. ') +'Select another user as the Reviewer'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i> -->\n </div>\n <div class=\"exel-view-column\">{{report?.reviewToBeCompletedWithin}}</div>\n <div class=\"exel-view-column\">{{report?.reviewWillBeFailedAfter}}</div>\n <div class=\"exel-view-column\">{{report?.formatForResponsibility}}</div>\n <div class=\"exel-view-column\">{{report?.notes}}</div>\n <div class=\"exel-view-column\">{{report?.documentEvidenceRequired}}</div>\n <div class=\"exel-view-column multi-column\">\n <div class=\"exel-view-row\">\n <div class=\"exel-view-column\">\n {{report?.alwaysNotify}}\n <i *ngIf=\"(report?.alwaysNotify) && ((report?.reviewer == report?.alwaysNotify))\"\n class=\"icons\"\n [appTooltip]=\"'The Reviewer cannot also be the Overseer of this responsibility. Select another user as the Overseer.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n\n <i *ngIf=\"report?.alwaysNotify && (report?.alwaysNotify == report?.assignee)\" class=\"icons\"\n [appTooltip]=\"'The Assignee cannot also be the Overseer of this responsibility. Select another user as the Overseer'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n <i *ngIf=\"((report?.alwaysNotify && report?.assignor) && (report?.alwaysNotify == report?.assignor)) ||((report?.alwaysNotify && (!report?.assignor)) && (report?.alwaysNotify == defaultOwner))\"\n class=\"icons\"\n [appTooltip]=\"((report?.assignor)?'The Assignor cannot also be the Overseer of this responsibility. ':'You cannot be an Overseer of this responsibility since you are the Assignor. ') +'Select another user as the Overseer.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n </div>\n <div class=\"exel-view-column\">\n {{report?.notifyOnFailure}}\n <i *ngIf=\"(report?.notifyOnFailure) && ((report?.reviewer == report?.notifyOnFailure))\"\n class=\"icons\"\n [appTooltip]=\"'The Reviewer cannot also be the Overseer of this responsibility. Select another user as the Overseer.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n\n <i *ngIf=\"report?.notifyOnFailure && (report?.notifyOnFailure == report?.assignee)\" class=\"icons\"\n [appTooltip]=\"'The Assignee cannot also be the Overseer of this responsibility. Select another user as the Overseer'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n <i *ngIf=\"((report?.notifyOnFailure && report?.assignor) && (report?.notifyOnFailure == report?.assignor)) ||((report?.notifyOnFailure && (!report?.assignor)) && (report?.notifyOnFailure == defaultOwner))\"\n class=\"icons\"\n [appTooltip]=\"((report?.assignor)?'The Assignor cannot also be the Overseer of this responsibility. ':'You cannot be an Overseer of this responsibility since you are the Assignor. ') +'Select another user as the Overseer.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n </div>\n </div>\n </div>\n\n\n <div class=\"exel-view-column\">{{report?.keyResponsibility}}</div>\n <div class=\"exel-view-column\">{{report?.objective}}</div>\n\n </div>\n </div>\n </div>\n <div class=\"bulk-view-footer\">\n <div class=\"left\">\n <p>{{finalResponsibilities}} out of {{responsibilityBulkUpload?.reports?.length}} responsibilities will be\n uploaded.</p>\n </div>\n <div class=\"right\">\n <button (click)=\"close()\" id=\"bulk-resp-cancel\" >Cancel</button>\n <button (click)=\"submit()\" id=\"bulk-resp-confirm\" [disabled]=\"finalResponsibilities<1\" class=\"blue\">Confirm</button>\n </div>\n </div>\n</div>\n<app-loader *ngIf=\"loader\"></app-loader>\n\n</ng-container>\n\n<!-- --------------------------------------------------------------------upward is new one-------------------- -->\n<app-loader *ngIf=\"loader\"></app-loader>\n\n\n\n\n\n\n<!-- HTML for multiple tabs -->\n<ng-container *ngIf=\"responsibilityType === 'multiTab'\">\n <div class=\"bulk-view\">\n <div class=\"bulk-view-head\">\n <h2 class=\"bulk-view-title\">\n {{fileName}}\n </h2>\n </div>\n <div class=\"bulk-view-body bulk\">\n <div class=\"exel-view\">\n <div class=\"exel-view-row head\">\n <div class=\"exel-view-column sl-no\">#</div>\n <div class=\"exel-view-column\">Responsibility Name <span class=\"required\">*</span></div>\n <div class=\"exel-view-column\" *ngIf=\"responsibilityBulkUpload?.header.includes('Program')\" [class.three-column]=\"true\">\n <div class=\"exel-view-row\">\n <div class=\"exel-view-column large\">Program</div>\n </div>\n <div class=\"exel-view-row multi-column\" [class.three-column]=\"true\">\n <div class=\"exel-view-column\">Program Type</div>\n <div class=\"exel-view-column\">Program</div>\n <div class=\"exel-view-column\">Program Category</div>\n </div>\n </div>\n <div class=\"exel-view-column\">Entrusted By</div>\n <div class=\"exel-view-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-row\">\n <div class=\"exel-view-column large\">Entrust To <span class=\"required\">*</span></div>\n </div>\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-column\">Person or Group<span class=\"required\">*</span></div>\n <div class=\"exel-view-column\">All or Any Persons</div>\n </div>\n </div>\n <div class=\"exel-view-column\">Key Responsibility?</div>\n <div class=\"exel-view-column\" [class.five-column]=\"tabType === 'frequency' || tabType === 'onCompletion'\" [class.three-column]=\"tabType === 'ongoing'\">\n <div class=\"exel-view-row\">\n <!-- <div class=\"exel-view-column large\">Frequency of Occurrence and Completion Window <span class=\"required\">*</span></div> -->\n <div class=\"exel-view-column large\">{{responsibilityBulkUpload?.header.includes('Program') ? responsibilityBulkUpload?.header[8]?.slice(0, -1) : responsibilityBulkUpload?.header[5]?.slice(0, -1)}}<span class=\"required\">*</span></div>\n </div>\n <div class=\"exel-view-row multi-column\" [class.five-column]=\"tabType === 'frequency' || tabType === 'onCompletion'\" [class.three-column]=\"tabType === 'ongoing'\">\n <ng-container *ngIf=\"tabType === 'frequency'\">\n <div class=\"exel-view-column\">Frequency <span class=\"required\">*</span></div>\n <div class=\"exel-view-column\">Due Date <span class=\"info-text\">(Day)</span></div>\n <div class=\"exel-view-column\">Due Date <span class=\"info-text\">(Month)</span></div>\n <div class=\"exel-view-column\">Start <span class=\"info-text\">(No. of days before the due date)</span></div>\n <div class=\"exel-view-column\">Fail <span class=\"info-text\" appTooltip=\"(No. of days after the due date. Select '0' if the responsibility must be completed on the due date)\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">(No. of days after the due date. Select \"0\" if the responsibility must be completed on the due date)</span></div>\n </ng-container>\n <ng-container *ngIf=\"tabType === 'ongoing'\">\n <div class=\"exel-view-column\">Ongoing Frequency <span class=\"required\">*</span></div>\n <div class=\"exel-view-column\">Set a Reminder?</div>\n <div class=\"exel-view-column\">Frequency of Reminder</div>\n </ng-container>\n <ng-container *ngIf=\"tabType === 'onCompletion'\">\n <div class=\"exel-view-column\">On Completion of Frequency <span class=\"required\">*</span></div>\n <div class=\"exel-view-column\">Parent Responsibility<span class=\"info-text\">(Day)</span></div>\n <div class=\"exel-view-column\">Due Date <span class=\"info-text\" appTooltip=\"(No. of days after completion of the Parent Responsibility)\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">(No. of days after completion of the Parent Responsibility)</span></div>\n <div class=\"exel-view-column\">Start <span class=\"info-text\" appTooltip=\"(No. of days before the due date)\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">(No. of days before the due date)</span></div>\n <div class=\"exel-view-column\">Fail <span class=\"info-text\" appTooltip=\"(No. of days after the due date. Select '0' if the responsibility must be completed on the due date)\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">(No. of days after the due date. Select \"0\" if the responsibility must be completed on the due date)</span></div>\n </ng-container>\n </div>\n </div>\n <div class=\"exel-view-column\">Responsibility Centre</div>\n <div class=\"exel-view-column\">Risk Class</div>\n <div class=\"exel-view-column\">Objective</div>\n <div class=\"exel-view-column\">Notes</div>\n <div class=\"exel-view-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-row\">\n <div class=\"exel-view-column large\">Format & Evidence</div>\n </div>\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\" [class.three-column]=\"false\">\n <div class=\"exel-view-column\" [class.small-column]=\"true\">Format</div>\n <div class=\"exel-view-column\">Format For Responsibility (link)</div>\n <div class=\"exel-view-column\" [class.small-column]=\"true\">Evidence</div>\n </div>\n </div>\n <!-- <div class=\"exel-view-column\">Assessments or Checkpoints</div> -->\n <div class=\"exel-view-column\" [class.three-column]=\"true\">\n <div class=\"exel-view-row\">\n <div class=\"exel-view-column large\">Review of Responsibility</div>\n </div>\n <div class=\"exel-view-row multi-column\" [class.three-column]=\"true\">\n <div class=\"exel-view-column\">Reviewer</div>\n <div class=\"exel-view-column\">Review Start <span class=\"info-text\">(No. of days before the due date)</span></div>\n <div class=\"exel-view-column\">Review Fail <span class=\"info-text\" appTooltip=\"(No. of days after the due date. Select '0' if the responsibility must be reviewed on the due date)\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">(No. of days after the due date. Select \"0\" if the responsibility must be reviewed on the due date)</span></div>\n </div>\n </div>\n <div class=\"exel-view-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-row\">\n <div class=\"exel-view-column large\">Overseer</div>\n </div>\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-column\">Always Notify</div>\n <div class=\"exel-view-column\">Notify on Failure</div>\n </div>\n </div>\n <!-- <div class=\"exel-view-column\">Overseer</div> -->\n\n </div>\n <div class=\"exel-view-row\" *ngFor=\"let report of responsibilityBulkUpload?.reports; let i = index\">\n <div class=\"exel-view-column sl-no\" [class.error]=\"!report?.isValid\">{{i+1}}</div>\n <div class=\"exel-view-column\" [class.error]=\"!report.responsibilityName\">{{report?.responsibilityName}} <i *ngIf=\"!report.responsibilityName\" class=\"icons\" [appTooltip]=\"'Enter a name for this responsibility.'\" placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i></div>\n <div class=\"exel-view-column multi-column\" *ngIf=\"responsibilityBulkUpload?.header.includes('Program')\" [class.error]=\"false\" [class.three-column]=\"true\">\n <div class=\"exel-view-row multi-column\" [class.three-column]=\"true\">\n <div class=\"exel-view-column\">{{report?.programType}}</div>\n <div class=\"exel-view-column\">{{report?.program}}</div>\n <div class=\"exel-view-column\">{{report?.programCategory}}</div>\n </div>\n </div>\n <div class=\"exel-view-column\">{{report?.assignor}}\n <!-- <i *ngIf=\"((report?.assignor) && (report?.reviewer === report?.assignor))\"\n class=\"icons\"\n [appTooltip]=\"'The Reviewer cannot also be the Assignor of this responsibility. Select another user as the Assignor.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i> -->\n </div>\n <div class=\"exel-view-column multi-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-column\" [class.error]=\"!report?.assignee || !report?.userValidateWithProgram?.isValidAssignee || (!report?.isValidUser)\">{{report?.assignee}}\n <!-- || (!report?.isValidUser) -->\n <i *ngIf=\"(!report?.assignee) || (!report?.isValidUser)\"\n class=\"icons\"\n [appTooltip]=\"'Select the user responsible for completing this responsibility. '\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n <i *ngIf=\"(report?.assignee) && !report?.userValidateWithProgram?.isValidAssignee\"\n class=\"icons\"\n [appTooltip]=\"'This user is not associated with the selected Program.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n </div>\n <div class=\"exel-view-column\">{{report?.assigneeType}}</div>\n </div>\n </div>\n <div class=\"exel-view-column\">{{report?.keyResponsibility}}</div>\n <div class=\"exel-view-column multi-column\" [class.five-column]=\"tabType === 'frequency' || tabType === 'onCompletion'\" [class.three-column]=\"tabType === 'ongoing'\">\n <ng-container *ngIf=\"tabType === 'frequency'\">\n <div class=\"exel-view-row multi-column\" [class.five-column]=\"true\">\n <div class=\"exel-view-column\" [class.error]=\"!report?.frequency\">{{report?.frequency}}\n <i *ngIf=\"!report?.frequency\" class=\"icons\" [appTooltip]=\"'Select a frequency for this responsibility.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column\" [class.error]=\"!report?.validDate || report?.isPastDate\">{{report?.day}}\n <i *ngIf=\"!report?.validDate\" class=\"icons\" [appTooltip]=\"'Invalid Due Date.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n <i *ngIf=\"report?.isPastDate\" class=\"icons\" [appTooltip]=\"'This date occurs in the past. Select a future date.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column\" [class.error]=\"!report?.validDate || report?.isPastDate\">{{report?.month}}\n <i *ngIf=\"!report?.validDate\" class=\"icons\" [appTooltip]=\"'Invalid Due Date.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n <i *ngIf=\"report?.isPastDate\" class=\"icons\" [appTooltip]=\"'This date occurs in the past. Select a future date.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column\">{{report?.responsibilityWindow}}</div>\n <div class=\"exel-view-column\">{{report?.failedAfter}}</div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"tabType === 'ongoing'\">\n <div class=\"exel-view-row multi-column\" [class.three-column]=\"true\">\n <div class=\"exel-view-column\" [class.error]=\"!report?.frequency\">{{report?.frequency}}\n <i *ngIf=\"!report?.frequency\" class=\"icons\" [appTooltip]=\"'Select a frequency for this responsibility.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column\">{{report?.setReminder}}</div>\n <div class=\"exel-view-column\">{{report?.frequencyReminder}}</div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"tabType === 'onCompletion'\">\n <div class=\"exel-view-row multi-column\" [class.five-column]=\"true\">\n <div class=\"exel-view-column\" [class.error]=\"!report?.frequency\">{{report?.frequency}}\n <i *ngIf=\"!report?.frequency\" class=\"icons\" [appTooltip]=\"'Select a frequency for this responsibility.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column\" [class.error]=\"!report?.parentResponsibility\">{{report?.parentResponsibility}}\n <i *ngIf=\"!report?.parentResponsibility\" class=\"icons\" [appTooltip]=\"'Select a parent responsibility on whose completion this responsibility will become active.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column\">{{report?.dueDate}}</div>\n <div class=\"exel-view-column\">{{report?.responsibilityWindow}}</div>\n <div class=\"exel-view-column\">{{report?.failedAfter}}</div>\n </div>\n </ng-container>\n </div>\n <div class=\"exel-view-column\">{{report?.responsibilityCenter}}</div>\n <div class=\"exel-view-column\">{{report?.reportClass}}</div>\n <div class=\"exel-view-column\">{{report?.objective}}</div>\n <div class=\"exel-view-column\">{{report?.notes}}</div>\n <div class=\"exel-view-column multi-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-column multi-column\">\n <div class=\"exel-view-row multi-column\">\n <div class=\"exel-view-column\" [class.small-column]=\"true\">{{report?.isFormat}}</div>\n <div class=\"exel-view-column\">{{report?.formatForResponsibility}}</div>\n </div>\n </div>\n <div class=\"exel-view-column\" [class.small-column]=\"true\">{{report?.documentEvidenceRequired}}</div>\n </div>\n </div>\n <!-- <div class=\"exel-view-column\">{{report?.assessments}}</div> -->\n <div class=\"exel-view-column multi-column\" [class.three-column]=\"true\">\n <div class=\"exel-view-row multi-column\" [class.three-column]=\"true\">\n <div class=\"exel-view-column\" [class.error]=\"report?.reviewer && (\n !report?.userValidateWithProgram?.isValidReviewer )\">{{report?.reviewer}}\n\n <!-- <i *ngIf=\"(report?.reviewer && report?.reviewer === report?.assignor)\"\n class=\"icons\"\n [appTooltip]=\"((report?.assignor)?'The Assignor cannot also be the Reviewer of this responsibility.':'You cannot be a Reviewer of this responsibility since you are the assignor. ') +'Select another user as the Reviewer'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i> -->\n <i *ngIf=\"report?.reviewer && !report?.userValidateWithProgram?.isValidReviewer\"\n class=\"icons\"\n [appTooltip]=\"'This user is not associated with the selected Program.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n </div>\n <div class=\"exel-view-column\">{{report?.reviewToBeCompletedWithin}}</div>\n <div class=\"exel-view-column\">{{report?.reviewWillBeFailedAfter}}</div>\n </div>\n </div>\n\n <div class=\"exel-view-column multi-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-column\" [class.error]=\"report?.overseer && (\n !report?.userValidateWithProgram?.isValidOverseer )\">\n {{report?.overseer}}\n\n <i *ngIf=\"(report?.overseer) && !report?.userValidateWithProgram?.isValidOverseer\"\n class=\"icons\"\n [appTooltip]=\"'This user is not associated with the selected Program.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n </div>\n <div class=\"exel-view-column\" [class.error]=\"report?.notifyOnFailure && (\n !report?.userValidateWithProgram?.isValidNotifyOnFailure )\">\n {{report?.notifyOnFailure}}\n\n <i *ngIf=\"(report?.notifyOnFailure) && !report?.userValidateWithProgram?.isValidNotifyOnFailure\"\n class=\"icons\"\n [appTooltip]=\"'This user is not associated with the selected Program.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n </div>\n </div>\n </div>\n\n <!-- <div class=\"exel-view-column\" [class.error]=\"(report?.overseer) && ((report?.overseer === report?.assignee) ||(report?.reviewer === report?.overseer) || (report?.overseer == report?.assignor) || (!report?.userValidateWithProgram?.isValidOverseer))\">\n {{report?.overseer}}\n <i *ngIf=\"(report?.overseer) && ((report?.reviewer === report?.overseer))\"\n class=\"icons\"\n [appTooltip]=\"'The Reviewer cannot also be the Overseer of this responsibility. Select another user as the Overseer.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n\n <i *ngIf=\"report?.overseer && (report?.overseer === report?.assignee)\" class=\"icons\"\n [appTooltip]=\"'The Assignee cannot also be the Overseer of this responsibility. Select another user as the Overseer'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n <i *ngIf=\"((report?.overseer) && (report?.overseer == report?.assignor))\"\n class=\"icons\"\n [appTooltip]=\"((report?.assignor)?'The Assignor cannot also be the Overseer of this responsibility. ':'You cannot be an Overseer of this responsibility since you are the Assignor. ') +'Select another user as the Overseer.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n <i *ngIf=\"!report?.userValidateWithProgram?.isValidOverseer\"\n class=\"icons\"\n [appTooltip]=\"'Selected user is not a valid overseer for selected program.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n </div> -->\n </div>\n\n\n\n\n\n\n <!-- ------------------------------------------------old code dynamic------------------------------------------------- -->\n\n <!-- *ngFor=\"let report of responsibilityBulkUpload?.reports; let i = index\" -->\n </div>\n </div>\n <div class=\"bulk-view-option\">\n <button *ngIf=\"bulkUpload?.frequency?.reports?.length\" [class.active]=\"tabType === 'frequency'\" (click)=\"selectedTab.emit('frequency')\">Frequency Responsibilities</button>\n <button *ngIf=\"bulkUpload?.ongoing?.reports?.length\" [class.active]=\"tabType === 'ongoing'\" (click)=\"selectedTab.emit('ongoing')\">Ongoing Responsibilities</button>\n <button *ngIf=\"bulkUpload?.onCompletion?.reports?.length\" [class.active]=\"tabType === 'onCompletion'\" (click)=\"selectedTab.emit('onCompletion')\">On Completion Responsibilities</button>\n </div>\n <div class=\"bulk-view-footer\">\n <!-- <div class=\"left\">\n <p>{{finalResponsibilities}} out of {{responsibilityBulkUpload?.reports?.length}} responsibilities will be\n uploaded.</p>\n </div> -->\n <div class=\"left\">\n <p>{{finalResponsibilities}} out of {{responsibilityMultiTabBulkUpload?.length}} {{responsibilityMultiTabBulkUpload?.length > 1 ? 'responsibilities' : 'responsibility'}} will be\n uploaded.</p>\n </div>\n <div class=\"right\">\n <button (click)=\"close()\" id=\"bulk-resp-cancel\">Cancel</button>\n <button (click)=\"submit()\" id=\"bulk-resp-confirm\" [disabled]=\"!isConfirmClickable\" class=\"blue\">Confirm</button>\n <!-- finalResponsibilities < 1 -->\n </div>\n </div>\n </div>\n <app-loader *ngIf=\"loader\"></app-loader>\n\n</ng-container>\n\n <!-- --------------------------------------------------------------------upward is new one-------------------- -->\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::-webkit-scrollbar-thumb,::-webkit-scrollbar-thumb:hover{background:#747576;border-radius:16px}::-webkit-scrollbar{height:15px}.bulk-view{position:fixed;inset:0;z-index:11}.bulk-view-head{height:60px;padding:20px 24px;background:#161b2f;display:flex;justify-content:flex-start}.bulk-view-title{font-size:16px;line-height:20px;font-weight:400;margin:0;color:#fff}.bulk-view-body{height:calc(100vh - 110px);overflow:auto;width:100%;background:#fff}.bulk-view-body .exel-view{display:block}.bulk-view-body .exel-view-row{display:flex;width:100%}.bulk-view-body .exel-view-row.head .exel-view-column{font-weight:500;font-size:14px;min-height:26px;background:#f1f1f1;padding:0;word-break:unset}.bulk-view-body .exel-view-row.multi-column .exel-view-column{width:140px;min-width:140px}.bulk-view-body .exel-view-column{width:300px;min-width:300px;padding:0 10px;border-right:1px solid #dcdcdc;border-bottom:1px solid #dcdcdc;display:flex;align-items:center;justify-content:center;text-align:center;word-break:break-all;line-height:16px;font-size:12px;color:#161b2f;flex-wrap:wrap;position:relative}.bulk-view-body .exel-view-column i.icons{position:absolute;top:8px;right:10px;cursor:pointer;color:#d93b41}.bulk-view-body .exel-view-column.large{width:100%;min-width:auto}.bulk-view-body .exel-view-column.error{border:1px solid #EB2424!important;padding-right:24px}.bulk-view-body .exel-view-column.error+.error{border-left:none!important}.bulk-view-body .exel-view-column span.required{color:#eb2424;display:contents}.bulk-view-body .exel-view-column .exel-view-row .exel-view-column{width:100%}.bulk-view-body .exel-view-column.sl-no{background:#f1f1f1;width:60px;min-width:60px;min-height:30px;font-weight:400}.bulk-view-body .exel-view-column.sl-no.error{background:#eb242424;border:none;padding-right:10px;border-bottom:1px solid #dcdcdc}.bulk-view-body .exel-view-column.multi-column{padding:0;border:none}.bulk-view-body .exel-view-column.multi-column .exel-view-row{height:100%}.bulk-view-body .exel-view-column.multi-column .exel-view-column{width:50%;min-width:50%}.bulk-view-body .exel-view-column.multi-column .exel-view-column+.exel-view-column{border-left:none}.bulk-view-body.bulk{height:calc(100vh - 142px)}.bulk-view-body.bulk .exel-view-row.head{position:sticky;top:0;z-index:1}.bulk-view-body.bulk .exel-view-row.head .exel-view-column{min-height:34px}.bulk-view-body.bulk .exel-view-row.head .exel-view-column .info-text{font-size:10px;display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding:0 8px}.bulk-view-body.bulk .exel-view-row.two-column .exel-view-column{min-width:250px!important}.bulk-view-body.bulk .exel-view-row.three-column .exel-view-column,.bulk-view-body.bulk .exel-view-row.five-column .exel-view-column{width:200px;min-width:200px!important}.bulk-view-body.bulk .exel-view-column .exel-view-row .exel-view-column.small-column{width:120px;min-width:120px!important}.bulk-view-body.bulk .exel-view-column.multi-column .exel-view-column{min-width:unset}.bulk-view-body.bulk .exel-view-column.two-column{width:500px;min-width:500px!important}.bulk-view-body.bulk .exel-view-column.three-column{width:600px;min-width:600px!important}.bulk-view-body.bulk .exel-view-column.five-column{width:1000px;min-width:1000px!important}.bulk-view-option{background:#fff;border-top:1px solid #f1f1f1;padding:0 20px;position:fixed;width:100%;bottom:50px;display:flex;align-items:center}.bulk-view-option button{background:transparent;border-radius:0;border:none;border-left:1px solid #f1f1f1;color:#747576;font-size:11px;font-weight:500;padding:0 .5rem;margin:0;height:2rem;position:relative}.bulk-view-option button:last-of-type{border-right:1px solid #f1f1f1}.bulk-view-option button.active{color:#1e5dd3}.bulk-view-option button.active:before{background:#fff;content:\"\";position:absolute;top:-1px;left:0;height:1px;width:100%}.bulk-view-footer{height:50px;box-shadow:0 0 15px #1e03d259;padding:10px 20px;position:fixed;width:100%;bottom:0;display:flex;align-items:center;justify-content:space-between;background:#fff}.bulk-view-footer .left p{color:#747576;font-size:13px;font-weight:500;margin:0}.bulk-view-footer .right button{font-size:12px;background:#fff;border:1px solid #dcdcdc;color:#747576;border-radius:2px;padding:8px 18px;cursor:pointer;text-transform:uppercase}.bulk-view-footer .right button+button{margin-left:4px}.bulk-view-footer .right button.blue{color:#fff;background:#1e5dd3}.bulk-view-footer .right button:disabled{background:#f1f1f1;border-color:#f1f1f1;pointer-events:none;cursor:not-allowed;color:#747576}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: LoaderComponent$1, selector: "app-loader" }] }); }
|
|
46727
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BulkResponsibilityViewComponent, selector: "app-bulk-responsibility-view", inputs: { responsibilityBulkUpload: "responsibilityBulkUpload", fileName: "fileName", defaultOwner: "defaultOwner", loader: "loader", tabType: "tabType", bulkUpload: "bulkUpload", responsibilityType: "responsibilityType" }, outputs: { submitResponsibilityBulkUpload: "submitResponsibilityBulkUpload", cancel: "cancel", selectedTab: "selectedTab" }, usesOnChanges: true, ngImport: i0, template: "\n<ng-container *ngIf=\"responsibilityType === 'singleTab'\">\n<div class=\"bulk-view\">\n <div class=\"bulk-view-head\">\n <h2 class=\"bulk-view-title\">\n {{fileName}}\n </h2>\n </div>\n <div class=\"bulk-view-body\">\n <div class=\"exel-view\">\n <div class=\"exel-view-row head\">\n <div class=\"exel-view-column sl-no\">#</div>\n <div class=\"exel-view-column\" *ngFor=\"let heading of responsibilityBulkUpload?.header\"\n [class.large]=\"heading && heading.startsWith('Inherent')\">\n <ng-container *ngIf=\"heading && !(heading.startsWith('Due')) && !(heading.startsWith('Oversight'))\">\n {{(heading.includes('*')? heading.replace('*', '') : heading)}}\n <span *ngIf=\"heading.includes('*')\" class=\"required\">*</span>\n </ng-container>\n <ng-container *ngIf=\"heading && heading.startsWith('Due')\">\n <div class=\"exel-view-row\">\n <div class=\"exel-view-column large\">Due Date</div>\n </div>\n <div class=\"exel-view-row multi-column\">\n <div class=\"exel-view-column\">Day</div>\n <div class=\"exel-view-column\">Month</div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"heading && heading.startsWith('Oversight')\">\n <div class=\"exel-view-row\">\n <div class=\"exel-view-column large\">Oversight </div>\n </div>\n <div class=\"exel-view-row multi-column\">\n <div class=\"exel-view-column\">Always Notify</div>\n <div class=\"exel-view-column\">Notify on Failure</div>\n </div>\n </ng-container>\n </div>\n\n </div>\n <div class=\"exel-view-row\" *ngFor=\"let report of responsibilityBulkUpload?.reports; let i = index\">\n <div class=\"exel-view-column sl-no\">{{i+1}}</div>\n\n <div class=\"exel-view-column\" [class.error]=\"!report.responsibilityName\">{{report?.responsibilityName}}\n <i *ngIf=\"!report?.responsibilityName\" class=\"icons\"\n [appTooltip]=\"'Enter a name for this responsibility.'\" placement=\"bottom-right\" type=\"white\"\n delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column\">\n {{report?.assignor}}\n <i *ngIf=\"((report?.assignor) && (report?.notifyOnFailure == report?.assignor||report?.alwaysNotify == report?.assignor))\"\n class=\"icons\"\n [appTooltip]=\"'The Overseer cannot also be the Assignor of this responsibility. Select another user as the Assignor.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n<!--\n <i *ngIf=\"((report?.assignor) && (report?.reviewer == report?.assignor))\"\n class=\"icons\"\n [appTooltip]=\"'The Reviewer cannot also be the Assignor of this responsibility. Select another user as the Assignor.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i> -->\n </div>\n <div class=\"exel-view-column\">\n {{report?.assignee}}\n\n <i *ngIf=\"((report?.assignee) && (report?.notifyOnFailure == report?.assignee||report?.alwaysNotify == report?.assignee))\"\n class=\"icons\"\n [appTooltip]=\"'The Overseer cannot also be the Assignee of this responsibility. Select another user as the Assignee.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n\n <i *ngIf=\"((report?.assignee) && (report?.reviewer == report?.assignee))\"\n class=\"icons\"\n [appTooltip]=\"'The Reviewer cannot also be the Assignee of this responsibility. Select another user as the Assignee.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n <i *ngIf=\"(!report?.assignee) || (!report?.isValidUser)\"\n class=\"icons\"\n [appTooltip]=\"'Select the user responsible for completing this responsibility. '\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n </div>\n <div class=\"exel-view-column\" id=\"resCategory\" *ngIf=\"report?.responsibilityCategory!==null\">{{report?.responsibilityCategory}}</div>\n <div class=\"exel-view-column\" [class.error]=\"!report.frequency\">{{report?.frequency}}\n <i *ngIf=\"!report?.frequency\" class=\"icons\" [appTooltip]=\"'Select a frequency for this responsibility.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column multi-column\">\n <div class=\"exel-view-row\">\n <div class=\"exel-view-column\" [class.error]=\"!report.isValidDueDate\">{{report?.day}}\n <i *ngIf=\"!report?.isValidDueDate\" class=\"icons\" [appTooltip]=\"'Invalid Due Date.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n <i *ngIf=\"report?.isPastDate\" class=\"icons\" [appTooltip]=\"'This date occurs in the past. Select a future date.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column\" [class.error]=\"!report.isValidDueDate\">{{report?.month}}\n <i *ngIf=\"!report?.isValidDueDate\" class=\"icons\" [appTooltip]=\"'Invalid Due Date.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n <i *ngIf=\"report?.isPastDate\" class=\"icons\" [appTooltip]=\"'This date occurs in the past. Select a future date.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n </div>\n </div>\n <div class=\"exel-view-column\">{{report?.responsibilityWindow}}</div>\n <div class=\"exel-view-column\">{{report?.failedAfter}}</div>\n <div class=\"exel-view-column\">{{report?.reportClass}}</div>\n <div class=\"exel-view-column\">{{report?.responsibilityCenter}}</div>\n <div class=\"exel-view-column\">\n {{report?.reviewer}}\n\n <i *ngIf=\"(report?.reviewer) && ((report?.reviewer == report?.alwaysNotify) || (report?.reviewer == report?.notifyOnFailure))\"\n class=\"icons\"\n [appTooltip]=\"'The Overseer cannot also be the Reviewer of this responsibility. Select another user as the Reviewer'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n\n <i *ngIf=\"report?.reviewer && (report?.reviewer == report?.assignee)\" class=\"icons\"\n [appTooltip]=\"'The Assignee cannot also be the Reviewer of this responsibility. Select another user as the Reviewer.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n <!-- <i *ngIf=\"(report?.reviewer && report?.assignor)\"\n class=\"icons\"\n [appTooltip]=\"((report?.assignor)?'The Assignor cannot also be the Reviewer of this responsibility.':'You cannot be a Reviewer of this responsibility since you are the assignor. ') +'Select another user as the Reviewer'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i> -->\n </div>\n <div class=\"exel-view-column\">{{report?.reviewToBeCompletedWithin}}</div>\n <div class=\"exel-view-column\">{{report?.reviewWillBeFailedAfter}}</div>\n <div class=\"exel-view-column\">{{report?.formatForResponsibility}}</div>\n <div class=\"exel-view-column\">{{report?.notes}}</div>\n <div class=\"exel-view-column\">{{report?.documentEvidenceRequired}}</div>\n <div class=\"exel-view-column multi-column\">\n <div class=\"exel-view-row\">\n <div class=\"exel-view-column\">\n {{report?.alwaysNotify}}\n <i *ngIf=\"(report?.alwaysNotify) && ((report?.reviewer == report?.alwaysNotify))\"\n class=\"icons\"\n [appTooltip]=\"'The Reviewer cannot also be the Overseer of this responsibility. Select another user as the Overseer.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n\n <i *ngIf=\"report?.alwaysNotify && (report?.alwaysNotify == report?.assignee)\" class=\"icons\"\n [appTooltip]=\"'The Assignee cannot also be the Overseer of this responsibility. Select another user as the Overseer'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n <i *ngIf=\"((report?.alwaysNotify && report?.assignor) && (report?.alwaysNotify == report?.assignor)) ||((report?.alwaysNotify && (!report?.assignor)) && (report?.alwaysNotify == defaultOwner))\"\n class=\"icons\"\n [appTooltip]=\"((report?.assignor)?'The Assignor cannot also be the Overseer of this responsibility. ':'You cannot be an Overseer of this responsibility since you are the Assignor. ') +'Select another user as the Overseer.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n </div>\n <div class=\"exel-view-column\">\n {{report?.notifyOnFailure}}\n <i *ngIf=\"(report?.notifyOnFailure) && ((report?.reviewer == report?.notifyOnFailure))\"\n class=\"icons\"\n [appTooltip]=\"'The Reviewer cannot also be the Overseer of this responsibility. Select another user as the Overseer.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n\n <i *ngIf=\"report?.notifyOnFailure && (report?.notifyOnFailure == report?.assignee)\" class=\"icons\"\n [appTooltip]=\"'The Assignee cannot also be the Overseer of this responsibility. Select another user as the Overseer'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n <i *ngIf=\"((report?.notifyOnFailure && report?.assignor) && (report?.notifyOnFailure == report?.assignor)) ||((report?.notifyOnFailure && (!report?.assignor)) && (report?.notifyOnFailure == defaultOwner))\"\n class=\"icons\"\n [appTooltip]=\"((report?.assignor)?'The Assignor cannot also be the Overseer of this responsibility. ':'You cannot be an Overseer of this responsibility since you are the Assignor. ') +'Select another user as the Overseer.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n </div>\n </div>\n </div>\n\n\n <div class=\"exel-view-column\">{{report?.keyResponsibility}}</div>\n <div class=\"exel-view-column\">{{report?.objective}}</div>\n\n </div>\n </div>\n </div>\n <div class=\"bulk-view-footer\">\n <div class=\"left\">\n <p>{{finalResponsibilities}} out of {{responsibilityBulkUpload?.reports?.length}} responsibilities will be\n uploaded.</p>\n </div>\n <div class=\"right\">\n <button (click)=\"close()\" id=\"bulk-resp-cancel\" >Cancel</button>\n <button (click)=\"submit()\" id=\"bulk-resp-confirm\" [disabled]=\"finalResponsibilities<1\" class=\"blue\">Confirm</button>\n </div>\n </div>\n</div>\n<app-loader *ngIf=\"loader\"></app-loader>\n\n</ng-container>\n\n<!-- --------------------------------------------------------------------upward is new one-------------------- -->\n<app-loader *ngIf=\"loader\"></app-loader>\n\n\n\n\n\n\n<!-- HTML for multiple tabs -->\n<ng-container *ngIf=\"responsibilityType === 'multiTab'\">\n <div class=\"bulk-view\">\n <div class=\"bulk-view-head\">\n <h2 class=\"bulk-view-title\">\n {{fileName}}\n </h2>\n </div>\n <div class=\"bulk-view-body bulk\">\n <div class=\"exel-view\">\n <div class=\"exel-view-row head\">\n <div class=\"exel-view-column sl-no\">#</div>\n <div class=\"exel-view-column\">Responsibility Name <span class=\"required\">*</span></div>\n <div class=\"exel-view-column\" *ngIf=\"responsibilityBulkUpload?.header.includes('Program')\" [class.three-column]=\"true\">\n <div class=\"exel-view-row\">\n <div class=\"exel-view-column large\">Program</div>\n </div>\n <div class=\"exel-view-row multi-column\" [class.three-column]=\"true\">\n <div class=\"exel-view-column\">Program Type</div>\n <div class=\"exel-view-column\">Program</div>\n <div class=\"exel-view-column\">Program Category</div>\n </div>\n </div>\n <div class=\"exel-view-column\">Entrusted By</div>\n <div class=\"exel-view-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-row\">\n <div class=\"exel-view-column large\">Entrust To <span class=\"required\">*</span></div>\n </div>\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-column\">Person or Group<span class=\"required\">*</span></div>\n <div class=\"exel-view-column\">All or Any Persons</div>\n </div>\n </div>\n <div class=\"exel-view-column\">Key Responsibility?</div>\n <div class=\"exel-view-column\" [class.five-column]=\"tabType === 'frequency' || tabType === 'onCompletion'\" [class.three-column]=\"tabType === 'ongoing'\">\n <div class=\"exel-view-row\">\n <!-- <div class=\"exel-view-column large\">Frequency of Occurrence and Completion Window <span class=\"required\">*</span></div> -->\n <div class=\"exel-view-column large\">{{responsibilityBulkUpload?.header.includes('Program') ? responsibilityBulkUpload?.header[8]?.slice(0, -1) : responsibilityBulkUpload?.header[5]?.slice(0, -1)}}<span class=\"required\">*</span></div>\n </div>\n <div class=\"exel-view-row multi-column\" [class.five-column]=\"tabType === 'frequency' || tabType === 'onCompletion'\" [class.three-column]=\"tabType === 'ongoing'\">\n <ng-container *ngIf=\"tabType === 'frequency'\">\n <div class=\"exel-view-column\">Frequency <span class=\"required\">*</span></div>\n <div class=\"exel-view-column\">Due Date <span class=\"info-text\">(Day)</span></div>\n <div class=\"exel-view-column\">Due Date <span class=\"info-text\">(Month)</span></div>\n <div class=\"exel-view-column\">Start <span class=\"info-text\">(No. of days before the due date)</span></div>\n <div class=\"exel-view-column\">Fail <span class=\"info-text\" appTooltip=\"(No. of days after the due date. Select '0' if the responsibility must be completed on the due date)\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">(No. of days after the due date. Select \"0\" if the responsibility must be completed on the due date)</span></div>\n </ng-container>\n <ng-container *ngIf=\"tabType === 'ongoing'\">\n <div class=\"exel-view-column\">Ongoing Frequency <span class=\"required\">*</span></div>\n <div class=\"exel-view-column\">Set a Reminder?</div>\n <div class=\"exel-view-column\">Frequency of Reminder</div>\n </ng-container>\n <ng-container *ngIf=\"tabType === 'onCompletion'\">\n <div class=\"exel-view-column\">On Completion of Frequency <span class=\"required\">*</span></div>\n <div class=\"exel-view-column\">Parent Responsibility<span class=\"info-text\">(Day)</span></div>\n <div class=\"exel-view-column\">Due Date <span class=\"info-text\" appTooltip=\"(No. of days after completion of the Parent Responsibility)\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">(No. of days after completion of the Parent Responsibility)</span></div>\n <div class=\"exel-view-column\">Start <span class=\"info-text\" appTooltip=\"(No. of days before the due date)\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">(No. of days before the due date)</span></div>\n <div class=\"exel-view-column\">Fail <span class=\"info-text\" appTooltip=\"(No. of days after the due date. Select '0' if the responsibility must be completed on the due date)\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">(No. of days after the due date. Select \"0\" if the responsibility must be completed on the due date)</span></div>\n </ng-container>\n </div>\n </div>\n <div class=\"exel-view-column\">Responsibility Centre</div>\n <div class=\"exel-view-column\">Risk Class</div>\n <div class=\"exel-view-column\">Objective</div>\n <div class=\"exel-view-column\">Notes</div>\n <div class=\"exel-view-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-row\">\n <div class=\"exel-view-column large\">Format & Evidence</div>\n </div>\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\" [class.three-column]=\"false\">\n <div class=\"exel-view-column\" [class.small-column]=\"true\">Format</div>\n <div class=\"exel-view-column\">Format For Responsibility (link)</div>\n <div class=\"exel-view-column\" [class.small-column]=\"true\">Evidence</div>\n </div>\n </div>\n <!-- <div class=\"exel-view-column\">Assessments or Checkpoints</div> -->\n <div class=\"exel-view-column\" [class.three-column]=\"true\">\n <div class=\"exel-view-row\">\n <div class=\"exel-view-column large\">Review of Responsibility</div>\n </div>\n <div class=\"exel-view-row multi-column\" [class.three-column]=\"true\">\n <div class=\"exel-view-column\">Reviewer</div>\n <div class=\"exel-view-column\">Review Start <span class=\"info-text\">(No. of days before the due date)</span></div>\n <div class=\"exel-view-column\">Review Fail <span class=\"info-text\" appTooltip=\"(No. of days after the due date. Select '0' if the responsibility must be reviewed on the due date)\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">(No. of days after the due date. Select \"0\" if the responsibility must be reviewed on the due date)</span></div>\n </div>\n </div>\n <div class=\"exel-view-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-row\">\n <div class=\"exel-view-column large\">Overseer</div>\n </div>\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-column\">Always Notify</div>\n <div class=\"exel-view-column\">Notify on Failure</div>\n </div>\n </div>\n <!-- <div class=\"exel-view-column\">Overseer</div> -->\n\n </div>\n <div class=\"exel-view-row\" *ngFor=\"let report of responsibilityBulkUpload?.reports; let i = index\">\n <div class=\"exel-view-column sl-no\" [class.error]=\"!report?.isValid\">{{i+1}}</div>\n <div class=\"exel-view-column\" [class.error]=\"!report.responsibilityName\">{{report?.responsibilityName}} <i *ngIf=\"!report.responsibilityName\" class=\"icons\" [appTooltip]=\"'Enter a name for this responsibility.'\" placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i></div>\n <div class=\"exel-view-column multi-column\" *ngIf=\"responsibilityBulkUpload?.header.includes('Program')\" [class.error]=\"false\" [class.three-column]=\"true\">\n <div class=\"exel-view-row multi-column\" [class.three-column]=\"true\">\n <div class=\"exel-view-column\">{{report?.programType}}</div>\n <div class=\"exel-view-column\">{{report?.program}}</div>\n <div class=\"exel-view-column\">{{report?.programCategory}}</div>\n </div>\n </div>\n <div class=\"exel-view-column\">{{report?.assignor}}\n <!-- <i *ngIf=\"((report?.assignor) && (report?.reviewer === report?.assignor))\"\n class=\"icons\"\n [appTooltip]=\"'The Reviewer cannot also be the Assignor of this responsibility. Select another user as the Assignor.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i> -->\n </div>\n <div class=\"exel-view-column multi-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-column\" [class.error]=\"!report?.assignee || !report?.userValidateWithProgram?.isValidAssignee || (!report?.isValidUser)\">{{report?.assignee}}\n <!-- || (!report?.isValidUser) -->\n <i *ngIf=\"(!report?.assignee) || (!report?.isValidUser)\"\n class=\"icons\"\n [appTooltip]=\"'Select the user responsible for completing this responsibility. '\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n <i *ngIf=\"(report?.assignee) && !report?.userValidateWithProgram?.isValidAssignee\"\n class=\"icons\"\n [appTooltip]=\"'This user is not associated with the selected Program.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n </div>\n <div class=\"exel-view-column\">{{report?.assigneeType}}</div>\n </div>\n </div>\n <div class=\"exel-view-column\">{{report?.keyResponsibility}}</div>\n <div class=\"exel-view-column multi-column\" [class.five-column]=\"tabType === 'frequency' || tabType === 'onCompletion'\" [class.three-column]=\"tabType === 'ongoing'\">\n <ng-container *ngIf=\"tabType === 'frequency'\">\n <div class=\"exel-view-row multi-column\" [class.five-column]=\"true\">\n <div class=\"exel-view-column\" [class.error]=\"!report?.frequency\">{{report?.frequency}}\n <i *ngIf=\"!report?.frequency\" class=\"icons\" [appTooltip]=\"'Select a frequency for this responsibility.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column\" [class.error]=\"!report?.validDate || report?.isPastDate\">{{report?.day}}\n <i *ngIf=\"!report?.validDate\" class=\"icons\" [appTooltip]=\"'Invalid Due Date.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n <i *ngIf=\"report?.isPastDate\" class=\"icons\" [appTooltip]=\"'This date occurs in the past. Select a future date.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column\" [class.error]=\"!report?.validDate || report?.isPastDate\">{{report?.month}}\n <i *ngIf=\"!report?.validDate\" class=\"icons\" [appTooltip]=\"'Invalid Due Date.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n <i *ngIf=\"report?.isPastDate\" class=\"icons\" [appTooltip]=\"'This date occurs in the past. Select a future date.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column\">{{report?.responsibilityWindow}}</div>\n <div class=\"exel-view-column\">{{report?.failedAfter}}</div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"tabType === 'ongoing'\">\n <div class=\"exel-view-row multi-column\" [class.three-column]=\"true\">\n <div class=\"exel-view-column\" [class.error]=\"!report?.frequency\">{{report?.frequency}}\n <i *ngIf=\"!report?.frequency\" class=\"icons\" [appTooltip]=\"'Select a frequency for this responsibility.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column\">{{report?.setReminder}}</div>\n <div class=\"exel-view-column\">{{report?.frequencyReminder}}</div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"tabType === 'onCompletion'\">\n <div class=\"exel-view-row multi-column\" [class.five-column]=\"true\">\n <div class=\"exel-view-column\" [class.error]=\"!report?.frequency\">{{report?.frequency}}\n <i *ngIf=\"!report?.frequency\" class=\"icons\" [appTooltip]=\"'Select a frequency for this responsibility.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column\" [class.error]=\"!report?.parentResponsibility\">{{report?.parentResponsibility}}\n <i *ngIf=\"!report?.parentResponsibility\" class=\"icons\" [appTooltip]=\"'Select a parent responsibility on whose completion this responsibility will become active.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column\">{{report?.dueDate}}</div>\n <div class=\"exel-view-column\">{{report?.responsibilityWindow}}</div>\n <div class=\"exel-view-column\">{{report?.failedAfter}}</div>\n </div>\n </ng-container>\n </div> \n <div class=\"exel-view-column\">{{report?.responsibilityCenter}}</div>\n <div class=\"exel-view-column\" [class.error]=\"!(report?.reportClass | riskClass)\">{{report?.reportClass}}\n <i *ngIf=\"!(report?.reportClass | riskClass)\" class=\"icons\" [appTooltip]=\"VALIDATION_MESSAGES.RISK_CLASS\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column\">{{report?.objective}}</div>\n <div class=\"exel-view-column\">{{report?.notes}}</div>\n <div class=\"exel-view-column multi-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-column multi-column\">\n <div class=\"exel-view-row multi-column\">\n <div class=\"exel-view-column\" [class.small-column]=\"true\">{{report?.isFormat}}</div>\n <div class=\"exel-view-column\">{{report?.formatForResponsibility}}</div>\n </div>\n </div>\n <div class=\"exel-view-column\" [class.small-column]=\"true\">{{report?.documentEvidenceRequired}}</div>\n </div>\n </div>\n <!-- <div class=\"exel-view-column\">{{report?.assessments}}</div> -->\n <div class=\"exel-view-column multi-column\" [class.three-column]=\"true\">\n <div class=\"exel-view-row multi-column\" [class.three-column]=\"true\">\n <div class=\"exel-view-column\" [class.error]=\"report?.reviewer && (\n !report?.userValidateWithProgram?.isValidReviewer )\">{{report?.reviewer}}\n\n <!-- <i *ngIf=\"(report?.reviewer && report?.reviewer === report?.assignor)\"\n class=\"icons\"\n [appTooltip]=\"((report?.assignor)?'The Assignor cannot also be the Reviewer of this responsibility.':'You cannot be a Reviewer of this responsibility since you are the assignor. ') +'Select another user as the Reviewer'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i> -->\n <i *ngIf=\"report?.reviewer && !report?.userValidateWithProgram?.isValidReviewer\"\n class=\"icons\"\n [appTooltip]=\"'This user is not associated with the selected Program.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n </div>\n <div class=\"exel-view-column\">{{report?.reviewToBeCompletedWithin}}</div>\n <div class=\"exel-view-column\">{{report?.reviewWillBeFailedAfter}}</div>\n </div>\n </div>\n\n <div class=\"exel-view-column multi-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-column\" [class.error]=\"report?.overseer && (\n !report?.userValidateWithProgram?.isValidOverseer )\">\n {{report?.overseer}}\n\n <i *ngIf=\"(report?.overseer) && !report?.userValidateWithProgram?.isValidOverseer\"\n class=\"icons\"\n [appTooltip]=\"'This user is not associated with the selected Program.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n </div>\n <div class=\"exel-view-column\" [class.error]=\"report?.notifyOnFailure && (\n !report?.userValidateWithProgram?.isValidNotifyOnFailure )\">\n {{report?.notifyOnFailure}}\n\n <i *ngIf=\"(report?.notifyOnFailure) && !report?.userValidateWithProgram?.isValidNotifyOnFailure\"\n class=\"icons\"\n [appTooltip]=\"'This user is not associated with the selected Program.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n </div>\n </div>\n </div>\n\n <!-- <div class=\"exel-view-column\" [class.error]=\"(report?.overseer) && ((report?.overseer === report?.assignee) ||(report?.reviewer === report?.overseer) || (report?.overseer == report?.assignor) || (!report?.userValidateWithProgram?.isValidOverseer))\">\n {{report?.overseer}}\n <i *ngIf=\"(report?.overseer) && ((report?.reviewer === report?.overseer))\"\n class=\"icons\"\n [appTooltip]=\"'The Reviewer cannot also be the Overseer of this responsibility. Select another user as the Overseer.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n\n <i *ngIf=\"report?.overseer && (report?.overseer === report?.assignee)\" class=\"icons\"\n [appTooltip]=\"'The Assignee cannot also be the Overseer of this responsibility. Select another user as the Overseer'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n <i *ngIf=\"((report?.overseer) && (report?.overseer == report?.assignor))\"\n class=\"icons\"\n [appTooltip]=\"((report?.assignor)?'The Assignor cannot also be the Overseer of this responsibility. ':'You cannot be an Overseer of this responsibility since you are the Assignor. ') +'Select another user as the Overseer.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n <i *ngIf=\"!report?.userValidateWithProgram?.isValidOverseer\"\n class=\"icons\"\n [appTooltip]=\"'Selected user is not a valid overseer for selected program.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n </div> -->\n </div>\n\n\n\n\n\n\n <!-- ------------------------------------------------old code dynamic------------------------------------------------- -->\n\n <!-- *ngFor=\"let report of responsibilityBulkUpload?.reports; let i = index\" -->\n </div>\n </div>\n <div class=\"bulk-view-option\">\n <button *ngIf=\"bulkUpload?.frequency?.reports?.length\" [class.active]=\"tabType === 'frequency'\" (click)=\"selectedTab.emit('frequency')\">Frequency Responsibilities</button>\n <button *ngIf=\"bulkUpload?.ongoing?.reports?.length\" [class.active]=\"tabType === 'ongoing'\" (click)=\"selectedTab.emit('ongoing')\">Ongoing Responsibilities</button>\n <button *ngIf=\"bulkUpload?.onCompletion?.reports?.length\" [class.active]=\"tabType === 'onCompletion'\" (click)=\"selectedTab.emit('onCompletion')\">On Completion Responsibilities</button>\n </div>\n <div class=\"bulk-view-footer\">\n <!-- <div class=\"left\">\n <p>{{finalResponsibilities}} out of {{responsibilityBulkUpload?.reports?.length}} responsibilities will be\n uploaded.</p>\n </div> -->\n <div class=\"left\">\n <p>{{finalResponsibilities}} out of {{responsibilityMultiTabBulkUpload?.length}} {{responsibilityMultiTabBulkUpload?.length > 1 ? 'responsibilities' : 'responsibility'}} will be\n uploaded.</p>\n </div>\n <div class=\"right\">\n <button (click)=\"close()\" id=\"bulk-resp-cancel\">Cancel</button>\n <button (click)=\"submit()\" id=\"bulk-resp-confirm\" [disabled]=\"!isConfirmClickable\" class=\"blue\">Confirm</button>\n <!-- finalResponsibilities < 1 -->\n </div>\n </div>\n </div>\n <app-loader *ngIf=\"loader\"></app-loader>\n\n</ng-container>\n\n <!-- --------------------------------------------------------------------upward is new one-------------------- -->\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::-webkit-scrollbar-thumb,::-webkit-scrollbar-thumb:hover{background:#747576;border-radius:16px}::-webkit-scrollbar{height:15px}.bulk-view{position:fixed;inset:0;z-index:11}.bulk-view-head{height:60px;padding:20px 24px;background:#161b2f;display:flex;justify-content:flex-start}.bulk-view-title{font-size:16px;line-height:20px;font-weight:400;margin:0;color:#fff}.bulk-view-body{height:calc(100vh - 110px);overflow:auto;width:100%;background:#fff}.bulk-view-body .exel-view{display:block}.bulk-view-body .exel-view-row{display:flex;width:100%}.bulk-view-body .exel-view-row.head .exel-view-column{font-weight:500;font-size:14px;min-height:26px;background:#f1f1f1;padding:0;word-break:unset}.bulk-view-body .exel-view-row.multi-column .exel-view-column{width:140px;min-width:140px}.bulk-view-body .exel-view-column{width:300px;min-width:300px;padding:0 10px;border-right:1px solid #dcdcdc;border-bottom:1px solid #dcdcdc;display:flex;align-items:center;justify-content:center;text-align:center;word-break:break-all;line-height:16px;font-size:12px;color:#161b2f;flex-wrap:wrap;position:relative}.bulk-view-body .exel-view-column i.icons{position:absolute;top:8px;right:10px;cursor:pointer;color:#d93b41}.bulk-view-body .exel-view-column.large{width:100%;min-width:auto}.bulk-view-body .exel-view-column.error{border:1px solid #EB2424!important;padding-right:24px}.bulk-view-body .exel-view-column.error+.error{border-left:none!important}.bulk-view-body .exel-view-column span.required{color:#eb2424;display:contents}.bulk-view-body .exel-view-column .exel-view-row .exel-view-column{width:100%}.bulk-view-body .exel-view-column.sl-no{background:#f1f1f1;width:60px;min-width:60px;min-height:30px;font-weight:400}.bulk-view-body .exel-view-column.sl-no.error{background:#eb242424;border:none;padding-right:10px;border-bottom:1px solid #dcdcdc}.bulk-view-body .exel-view-column.multi-column{padding:0;border:none}.bulk-view-body .exel-view-column.multi-column .exel-view-row{height:100%}.bulk-view-body .exel-view-column.multi-column .exel-view-column{width:50%;min-width:50%}.bulk-view-body .exel-view-column.multi-column .exel-view-column+.exel-view-column{border-left:none}.bulk-view-body.bulk{height:calc(100vh - 142px)}.bulk-view-body.bulk .exel-view-row.head{position:sticky;top:0;z-index:1}.bulk-view-body.bulk .exel-view-row.head .exel-view-column{min-height:34px}.bulk-view-body.bulk .exel-view-row.head .exel-view-column .info-text{font-size:10px;display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding:0 8px}.bulk-view-body.bulk .exel-view-row.two-column .exel-view-column{min-width:250px!important}.bulk-view-body.bulk .exel-view-row.three-column .exel-view-column,.bulk-view-body.bulk .exel-view-row.five-column .exel-view-column{width:200px;min-width:200px!important}.bulk-view-body.bulk .exel-view-column .exel-view-row .exel-view-column.small-column{width:120px;min-width:120px!important}.bulk-view-body.bulk .exel-view-column.multi-column .exel-view-column{min-width:unset}.bulk-view-body.bulk .exel-view-column.two-column{width:500px;min-width:500px!important}.bulk-view-body.bulk .exel-view-column.three-column{width:600px;min-width:600px!important}.bulk-view-body.bulk .exel-view-column.five-column{width:1000px;min-width:1000px!important}.bulk-view-option{background:#fff;border-top:1px solid #f1f1f1;padding:0 20px;position:fixed;width:100%;bottom:50px;display:flex;align-items:center}.bulk-view-option button{background:transparent;border-radius:0;border:none;border-left:1px solid #f1f1f1;color:#747576;font-size:11px;font-weight:500;padding:0 .5rem;margin:0;height:2rem;position:relative}.bulk-view-option button:last-of-type{border-right:1px solid #f1f1f1}.bulk-view-option button.active{color:#1e5dd3}.bulk-view-option button.active:before{background:#fff;content:\"\";position:absolute;top:-1px;left:0;height:1px;width:100%}.bulk-view-footer{height:50px;box-shadow:0 0 15px #1e03d259;padding:10px 20px;position:fixed;width:100%;bottom:0;display:flex;align-items:center;justify-content:space-between;background:#fff}.bulk-view-footer .left p{color:#747576;font-size:13px;font-weight:500;margin:0}.bulk-view-footer .right button{font-size:12px;background:#fff;border:1px solid #dcdcdc;color:#747576;border-radius:2px;padding:8px 18px;cursor:pointer;text-transform:uppercase}.bulk-view-footer .right button+button{margin-left:4px}.bulk-view-footer .right button.blue{color:#fff;background:#1e5dd3}.bulk-view-footer .right button:disabled{background:#f1f1f1;border-color:#f1f1f1;pointer-events:none;cursor:not-allowed;color:#747576}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: LoaderComponent$1, selector: "app-loader" }, { kind: "pipe", type: RiskClassPipe, name: "riskClass" }] }); }
|
|
46695
46728
|
}
|
|
46696
46729
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BulkResponsibilityViewComponent, decorators: [{
|
|
46697
46730
|
type: Component,
|
|
46698
|
-
args: [{ selector: 'app-bulk-responsibility-view', template: "\n<ng-container *ngIf=\"responsibilityType === 'singleTab'\">\n<div class=\"bulk-view\">\n <div class=\"bulk-view-head\">\n <h2 class=\"bulk-view-title\">\n {{fileName}}\n </h2>\n </div>\n <div class=\"bulk-view-body\">\n <div class=\"exel-view\">\n <div class=\"exel-view-row head\">\n <div class=\"exel-view-column sl-no\">#</div>\n <div class=\"exel-view-column\" *ngFor=\"let heading of responsibilityBulkUpload?.header\"\n [class.large]=\"heading && heading.startsWith('Inherent')\">\n <ng-container *ngIf=\"heading && !(heading.startsWith('Due')) && !(heading.startsWith('Oversight'))\">\n {{(heading.includes('*')? heading.replace('*', '') : heading)}}\n <span *ngIf=\"heading.includes('*')\" class=\"required\">*</span>\n </ng-container>\n <ng-container *ngIf=\"heading && heading.startsWith('Due')\">\n <div class=\"exel-view-row\">\n <div class=\"exel-view-column large\">Due Date</div>\n </div>\n <div class=\"exel-view-row multi-column\">\n <div class=\"exel-view-column\">Day</div>\n <div class=\"exel-view-column\">Month</div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"heading && heading.startsWith('Oversight')\">\n <div class=\"exel-view-row\">\n <div class=\"exel-view-column large\">Oversight </div>\n </div>\n <div class=\"exel-view-row multi-column\">\n <div class=\"exel-view-column\">Always Notify</div>\n <div class=\"exel-view-column\">Notify on Failure</div>\n </div>\n </ng-container>\n </div>\n\n </div>\n <div class=\"exel-view-row\" *ngFor=\"let report of responsibilityBulkUpload?.reports; let i = index\">\n <div class=\"exel-view-column sl-no\">{{i+1}}</div>\n\n <div class=\"exel-view-column\" [class.error]=\"!report.responsibilityName\">{{report?.responsibilityName}}\n <i *ngIf=\"!report?.responsibilityName\" class=\"icons\"\n [appTooltip]=\"'Enter a name for this responsibility.'\" placement=\"bottom-right\" type=\"white\"\n delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column\">\n {{report?.assignor}}\n <i *ngIf=\"((report?.assignor) && (report?.notifyOnFailure == report?.assignor||report?.alwaysNotify == report?.assignor))\"\n class=\"icons\"\n [appTooltip]=\"'The Overseer cannot also be the Assignor of this responsibility. Select another user as the Assignor.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n<!--\n <i *ngIf=\"((report?.assignor) && (report?.reviewer == report?.assignor))\"\n class=\"icons\"\n [appTooltip]=\"'The Reviewer cannot also be the Assignor of this responsibility. Select another user as the Assignor.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i> -->\n </div>\n <div class=\"exel-view-column\">\n {{report?.assignee}}\n\n <i *ngIf=\"((report?.assignee) && (report?.notifyOnFailure == report?.assignee||report?.alwaysNotify == report?.assignee))\"\n class=\"icons\"\n [appTooltip]=\"'The Overseer cannot also be the Assignee of this responsibility. Select another user as the Assignee.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n\n <i *ngIf=\"((report?.assignee) && (report?.reviewer == report?.assignee))\"\n class=\"icons\"\n [appTooltip]=\"'The Reviewer cannot also be the Assignee of this responsibility. Select another user as the Assignee.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n <i *ngIf=\"(!report?.assignee) || (!report?.isValidUser)\"\n class=\"icons\"\n [appTooltip]=\"'Select the user responsible for completing this responsibility. '\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n </div>\n <div class=\"exel-view-column\" id=\"resCategory\" *ngIf=\"report?.responsibilityCategory!==null\">{{report?.responsibilityCategory}}</div>\n <div class=\"exel-view-column\" [class.error]=\"!report.frequency\">{{report?.frequency}}\n <i *ngIf=\"!report?.frequency\" class=\"icons\" [appTooltip]=\"'Select a frequency for this responsibility.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column multi-column\">\n <div class=\"exel-view-row\">\n <div class=\"exel-view-column\" [class.error]=\"!report.isValidDueDate\">{{report?.day}}\n <i *ngIf=\"!report?.isValidDueDate\" class=\"icons\" [appTooltip]=\"'Invalid Due Date.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n <i *ngIf=\"report?.isPastDate\" class=\"icons\" [appTooltip]=\"'This date occurs in the past. Select a future date.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column\" [class.error]=\"!report.isValidDueDate\">{{report?.month}}\n <i *ngIf=\"!report?.isValidDueDate\" class=\"icons\" [appTooltip]=\"'Invalid Due Date.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n <i *ngIf=\"report?.isPastDate\" class=\"icons\" [appTooltip]=\"'This date occurs in the past. Select a future date.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n </div>\n </div>\n <div class=\"exel-view-column\">{{report?.responsibilityWindow}}</div>\n <div class=\"exel-view-column\">{{report?.failedAfter}}</div>\n <div class=\"exel-view-column\">{{report?.reportClass}}</div>\n <div class=\"exel-view-column\">{{report?.responsibilityCenter}}</div>\n <div class=\"exel-view-column\">\n {{report?.reviewer}}\n\n <i *ngIf=\"(report?.reviewer) && ((report?.reviewer == report?.alwaysNotify) || (report?.reviewer == report?.notifyOnFailure))\"\n class=\"icons\"\n [appTooltip]=\"'The Overseer cannot also be the Reviewer of this responsibility. Select another user as the Reviewer'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n\n <i *ngIf=\"report?.reviewer && (report?.reviewer == report?.assignee)\" class=\"icons\"\n [appTooltip]=\"'The Assignee cannot also be the Reviewer of this responsibility. Select another user as the Reviewer.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n <!-- <i *ngIf=\"(report?.reviewer && report?.assignor)\"\n class=\"icons\"\n [appTooltip]=\"((report?.assignor)?'The Assignor cannot also be the Reviewer of this responsibility.':'You cannot be a Reviewer of this responsibility since you are the assignor. ') +'Select another user as the Reviewer'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i> -->\n </div>\n <div class=\"exel-view-column\">{{report?.reviewToBeCompletedWithin}}</div>\n <div class=\"exel-view-column\">{{report?.reviewWillBeFailedAfter}}</div>\n <div class=\"exel-view-column\">{{report?.formatForResponsibility}}</div>\n <div class=\"exel-view-column\">{{report?.notes}}</div>\n <div class=\"exel-view-column\">{{report?.documentEvidenceRequired}}</div>\n <div class=\"exel-view-column multi-column\">\n <div class=\"exel-view-row\">\n <div class=\"exel-view-column\">\n {{report?.alwaysNotify}}\n <i *ngIf=\"(report?.alwaysNotify) && ((report?.reviewer == report?.alwaysNotify))\"\n class=\"icons\"\n [appTooltip]=\"'The Reviewer cannot also be the Overseer of this responsibility. Select another user as the Overseer.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n\n <i *ngIf=\"report?.alwaysNotify && (report?.alwaysNotify == report?.assignee)\" class=\"icons\"\n [appTooltip]=\"'The Assignee cannot also be the Overseer of this responsibility. Select another user as the Overseer'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n <i *ngIf=\"((report?.alwaysNotify && report?.assignor) && (report?.alwaysNotify == report?.assignor)) ||((report?.alwaysNotify && (!report?.assignor)) && (report?.alwaysNotify == defaultOwner))\"\n class=\"icons\"\n [appTooltip]=\"((report?.assignor)?'The Assignor cannot also be the Overseer of this responsibility. ':'You cannot be an Overseer of this responsibility since you are the Assignor. ') +'Select another user as the Overseer.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n </div>\n <div class=\"exel-view-column\">\n {{report?.notifyOnFailure}}\n <i *ngIf=\"(report?.notifyOnFailure) && ((report?.reviewer == report?.notifyOnFailure))\"\n class=\"icons\"\n [appTooltip]=\"'The Reviewer cannot also be the Overseer of this responsibility. Select another user as the Overseer.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n\n <i *ngIf=\"report?.notifyOnFailure && (report?.notifyOnFailure == report?.assignee)\" class=\"icons\"\n [appTooltip]=\"'The Assignee cannot also be the Overseer of this responsibility. Select another user as the Overseer'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n <i *ngIf=\"((report?.notifyOnFailure && report?.assignor) && (report?.notifyOnFailure == report?.assignor)) ||((report?.notifyOnFailure && (!report?.assignor)) && (report?.notifyOnFailure == defaultOwner))\"\n class=\"icons\"\n [appTooltip]=\"((report?.assignor)?'The Assignor cannot also be the Overseer of this responsibility. ':'You cannot be an Overseer of this responsibility since you are the Assignor. ') +'Select another user as the Overseer.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n </div>\n </div>\n </div>\n\n\n <div class=\"exel-view-column\">{{report?.keyResponsibility}}</div>\n <div class=\"exel-view-column\">{{report?.objective}}</div>\n\n </div>\n </div>\n </div>\n <div class=\"bulk-view-footer\">\n <div class=\"left\">\n <p>{{finalResponsibilities}} out of {{responsibilityBulkUpload?.reports?.length}} responsibilities will be\n uploaded.</p>\n </div>\n <div class=\"right\">\n <button (click)=\"close()\" id=\"bulk-resp-cancel\" >Cancel</button>\n <button (click)=\"submit()\" id=\"bulk-resp-confirm\" [disabled]=\"finalResponsibilities<1\" class=\"blue\">Confirm</button>\n </div>\n </div>\n</div>\n<app-loader *ngIf=\"loader\"></app-loader>\n\n</ng-container>\n\n<!-- --------------------------------------------------------------------upward is new one-------------------- -->\n<app-loader *ngIf=\"loader\"></app-loader>\n\n\n\n\n\n\n<!-- HTML for multiple tabs -->\n<ng-container *ngIf=\"responsibilityType === 'multiTab'\">\n <div class=\"bulk-view\">\n <div class=\"bulk-view-head\">\n <h2 class=\"bulk-view-title\">\n {{fileName}}\n </h2>\n </div>\n <div class=\"bulk-view-body bulk\">\n <div class=\"exel-view\">\n <div class=\"exel-view-row head\">\n <div class=\"exel-view-column sl-no\">#</div>\n <div class=\"exel-view-column\">Responsibility Name <span class=\"required\">*</span></div>\n <div class=\"exel-view-column\" *ngIf=\"responsibilityBulkUpload?.header.includes('Program')\" [class.three-column]=\"true\">\n <div class=\"exel-view-row\">\n <div class=\"exel-view-column large\">Program</div>\n </div>\n <div class=\"exel-view-row multi-column\" [class.three-column]=\"true\">\n <div class=\"exel-view-column\">Program Type</div>\n <div class=\"exel-view-column\">Program</div>\n <div class=\"exel-view-column\">Program Category</div>\n </div>\n </div>\n <div class=\"exel-view-column\">Entrusted By</div>\n <div class=\"exel-view-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-row\">\n <div class=\"exel-view-column large\">Entrust To <span class=\"required\">*</span></div>\n </div>\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-column\">Person or Group<span class=\"required\">*</span></div>\n <div class=\"exel-view-column\">All or Any Persons</div>\n </div>\n </div>\n <div class=\"exel-view-column\">Key Responsibility?</div>\n <div class=\"exel-view-column\" [class.five-column]=\"tabType === 'frequency' || tabType === 'onCompletion'\" [class.three-column]=\"tabType === 'ongoing'\">\n <div class=\"exel-view-row\">\n <!-- <div class=\"exel-view-column large\">Frequency of Occurrence and Completion Window <span class=\"required\">*</span></div> -->\n <div class=\"exel-view-column large\">{{responsibilityBulkUpload?.header.includes('Program') ? responsibilityBulkUpload?.header[8]?.slice(0, -1) : responsibilityBulkUpload?.header[5]?.slice(0, -1)}}<span class=\"required\">*</span></div>\n </div>\n <div class=\"exel-view-row multi-column\" [class.five-column]=\"tabType === 'frequency' || tabType === 'onCompletion'\" [class.three-column]=\"tabType === 'ongoing'\">\n <ng-container *ngIf=\"tabType === 'frequency'\">\n <div class=\"exel-view-column\">Frequency <span class=\"required\">*</span></div>\n <div class=\"exel-view-column\">Due Date <span class=\"info-text\">(Day)</span></div>\n <div class=\"exel-view-column\">Due Date <span class=\"info-text\">(Month)</span></div>\n <div class=\"exel-view-column\">Start <span class=\"info-text\">(No. of days before the due date)</span></div>\n <div class=\"exel-view-column\">Fail <span class=\"info-text\" appTooltip=\"(No. of days after the due date. Select '0' if the responsibility must be completed on the due date)\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">(No. of days after the due date. Select \"0\" if the responsibility must be completed on the due date)</span></div>\n </ng-container>\n <ng-container *ngIf=\"tabType === 'ongoing'\">\n <div class=\"exel-view-column\">Ongoing Frequency <span class=\"required\">*</span></div>\n <div class=\"exel-view-column\">Set a Reminder?</div>\n <div class=\"exel-view-column\">Frequency of Reminder</div>\n </ng-container>\n <ng-container *ngIf=\"tabType === 'onCompletion'\">\n <div class=\"exel-view-column\">On Completion of Frequency <span class=\"required\">*</span></div>\n <div class=\"exel-view-column\">Parent Responsibility<span class=\"info-text\">(Day)</span></div>\n <div class=\"exel-view-column\">Due Date <span class=\"info-text\" appTooltip=\"(No. of days after completion of the Parent Responsibility)\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">(No. of days after completion of the Parent Responsibility)</span></div>\n <div class=\"exel-view-column\">Start <span class=\"info-text\" appTooltip=\"(No. of days before the due date)\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">(No. of days before the due date)</span></div>\n <div class=\"exel-view-column\">Fail <span class=\"info-text\" appTooltip=\"(No. of days after the due date. Select '0' if the responsibility must be completed on the due date)\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">(No. of days after the due date. Select \"0\" if the responsibility must be completed on the due date)</span></div>\n </ng-container>\n </div>\n </div>\n <div class=\"exel-view-column\">Responsibility Centre</div>\n <div class=\"exel-view-column\">Risk Class</div>\n <div class=\"exel-view-column\">Objective</div>\n <div class=\"exel-view-column\">Notes</div>\n <div class=\"exel-view-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-row\">\n <div class=\"exel-view-column large\">Format & Evidence</div>\n </div>\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\" [class.three-column]=\"false\">\n <div class=\"exel-view-column\" [class.small-column]=\"true\">Format</div>\n <div class=\"exel-view-column\">Format For Responsibility (link)</div>\n <div class=\"exel-view-column\" [class.small-column]=\"true\">Evidence</div>\n </div>\n </div>\n <!-- <div class=\"exel-view-column\">Assessments or Checkpoints</div> -->\n <div class=\"exel-view-column\" [class.three-column]=\"true\">\n <div class=\"exel-view-row\">\n <div class=\"exel-view-column large\">Review of Responsibility</div>\n </div>\n <div class=\"exel-view-row multi-column\" [class.three-column]=\"true\">\n <div class=\"exel-view-column\">Reviewer</div>\n <div class=\"exel-view-column\">Review Start <span class=\"info-text\">(No. of days before the due date)</span></div>\n <div class=\"exel-view-column\">Review Fail <span class=\"info-text\" appTooltip=\"(No. of days after the due date. Select '0' if the responsibility must be reviewed on the due date)\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">(No. of days after the due date. Select \"0\" if the responsibility must be reviewed on the due date)</span></div>\n </div>\n </div>\n <div class=\"exel-view-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-row\">\n <div class=\"exel-view-column large\">Overseer</div>\n </div>\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-column\">Always Notify</div>\n <div class=\"exel-view-column\">Notify on Failure</div>\n </div>\n </div>\n <!-- <div class=\"exel-view-column\">Overseer</div> -->\n\n </div>\n <div class=\"exel-view-row\" *ngFor=\"let report of responsibilityBulkUpload?.reports; let i = index\">\n <div class=\"exel-view-column sl-no\" [class.error]=\"!report?.isValid\">{{i+1}}</div>\n <div class=\"exel-view-column\" [class.error]=\"!report.responsibilityName\">{{report?.responsibilityName}} <i *ngIf=\"!report.responsibilityName\" class=\"icons\" [appTooltip]=\"'Enter a name for this responsibility.'\" placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i></div>\n <div class=\"exel-view-column multi-column\" *ngIf=\"responsibilityBulkUpload?.header.includes('Program')\" [class.error]=\"false\" [class.three-column]=\"true\">\n <div class=\"exel-view-row multi-column\" [class.three-column]=\"true\">\n <div class=\"exel-view-column\">{{report?.programType}}</div>\n <div class=\"exel-view-column\">{{report?.program}}</div>\n <div class=\"exel-view-column\">{{report?.programCategory}}</div>\n </div>\n </div>\n <div class=\"exel-view-column\">{{report?.assignor}}\n <!-- <i *ngIf=\"((report?.assignor) && (report?.reviewer === report?.assignor))\"\n class=\"icons\"\n [appTooltip]=\"'The Reviewer cannot also be the Assignor of this responsibility. Select another user as the Assignor.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i> -->\n </div>\n <div class=\"exel-view-column multi-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-column\" [class.error]=\"!report?.assignee || !report?.userValidateWithProgram?.isValidAssignee || (!report?.isValidUser)\">{{report?.assignee}}\n <!-- || (!report?.isValidUser) -->\n <i *ngIf=\"(!report?.assignee) || (!report?.isValidUser)\"\n class=\"icons\"\n [appTooltip]=\"'Select the user responsible for completing this responsibility. '\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n <i *ngIf=\"(report?.assignee) && !report?.userValidateWithProgram?.isValidAssignee\"\n class=\"icons\"\n [appTooltip]=\"'This user is not associated with the selected Program.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n </div>\n <div class=\"exel-view-column\">{{report?.assigneeType}}</div>\n </div>\n </div>\n <div class=\"exel-view-column\">{{report?.keyResponsibility}}</div>\n <div class=\"exel-view-column multi-column\" [class.five-column]=\"tabType === 'frequency' || tabType === 'onCompletion'\" [class.three-column]=\"tabType === 'ongoing'\">\n <ng-container *ngIf=\"tabType === 'frequency'\">\n <div class=\"exel-view-row multi-column\" [class.five-column]=\"true\">\n <div class=\"exel-view-column\" [class.error]=\"!report?.frequency\">{{report?.frequency}}\n <i *ngIf=\"!report?.frequency\" class=\"icons\" [appTooltip]=\"'Select a frequency for this responsibility.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column\" [class.error]=\"!report?.validDate || report?.isPastDate\">{{report?.day}}\n <i *ngIf=\"!report?.validDate\" class=\"icons\" [appTooltip]=\"'Invalid Due Date.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n <i *ngIf=\"report?.isPastDate\" class=\"icons\" [appTooltip]=\"'This date occurs in the past. Select a future date.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column\" [class.error]=\"!report?.validDate || report?.isPastDate\">{{report?.month}}\n <i *ngIf=\"!report?.validDate\" class=\"icons\" [appTooltip]=\"'Invalid Due Date.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n <i *ngIf=\"report?.isPastDate\" class=\"icons\" [appTooltip]=\"'This date occurs in the past. Select a future date.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column\">{{report?.responsibilityWindow}}</div>\n <div class=\"exel-view-column\">{{report?.failedAfter}}</div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"tabType === 'ongoing'\">\n <div class=\"exel-view-row multi-column\" [class.three-column]=\"true\">\n <div class=\"exel-view-column\" [class.error]=\"!report?.frequency\">{{report?.frequency}}\n <i *ngIf=\"!report?.frequency\" class=\"icons\" [appTooltip]=\"'Select a frequency for this responsibility.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column\">{{report?.setReminder}}</div>\n <div class=\"exel-view-column\">{{report?.frequencyReminder}}</div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"tabType === 'onCompletion'\">\n <div class=\"exel-view-row multi-column\" [class.five-column]=\"true\">\n <div class=\"exel-view-column\" [class.error]=\"!report?.frequency\">{{report?.frequency}}\n <i *ngIf=\"!report?.frequency\" class=\"icons\" [appTooltip]=\"'Select a frequency for this responsibility.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column\" [class.error]=\"!report?.parentResponsibility\">{{report?.parentResponsibility}}\n <i *ngIf=\"!report?.parentResponsibility\" class=\"icons\" [appTooltip]=\"'Select a parent responsibility on whose completion this responsibility will become active.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column\">{{report?.dueDate}}</div>\n <div class=\"exel-view-column\">{{report?.responsibilityWindow}}</div>\n <div class=\"exel-view-column\">{{report?.failedAfter}}</div>\n </div>\n </ng-container>\n </div>\n <div class=\"exel-view-column\">{{report?.responsibilityCenter}}</div>\n <div class=\"exel-view-column\">{{report?.reportClass}}</div>\n <div class=\"exel-view-column\">{{report?.objective}}</div>\n <div class=\"exel-view-column\">{{report?.notes}}</div>\n <div class=\"exel-view-column multi-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-column multi-column\">\n <div class=\"exel-view-row multi-column\">\n <div class=\"exel-view-column\" [class.small-column]=\"true\">{{report?.isFormat}}</div>\n <div class=\"exel-view-column\">{{report?.formatForResponsibility}}</div>\n </div>\n </div>\n <div class=\"exel-view-column\" [class.small-column]=\"true\">{{report?.documentEvidenceRequired}}</div>\n </div>\n </div>\n <!-- <div class=\"exel-view-column\">{{report?.assessments}}</div> -->\n <div class=\"exel-view-column multi-column\" [class.three-column]=\"true\">\n <div class=\"exel-view-row multi-column\" [class.three-column]=\"true\">\n <div class=\"exel-view-column\" [class.error]=\"report?.reviewer && (\n !report?.userValidateWithProgram?.isValidReviewer )\">{{report?.reviewer}}\n\n <!-- <i *ngIf=\"(report?.reviewer && report?.reviewer === report?.assignor)\"\n class=\"icons\"\n [appTooltip]=\"((report?.assignor)?'The Assignor cannot also be the Reviewer of this responsibility.':'You cannot be a Reviewer of this responsibility since you are the assignor. ') +'Select another user as the Reviewer'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i> -->\n <i *ngIf=\"report?.reviewer && !report?.userValidateWithProgram?.isValidReviewer\"\n class=\"icons\"\n [appTooltip]=\"'This user is not associated with the selected Program.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n </div>\n <div class=\"exel-view-column\">{{report?.reviewToBeCompletedWithin}}</div>\n <div class=\"exel-view-column\">{{report?.reviewWillBeFailedAfter}}</div>\n </div>\n </div>\n\n <div class=\"exel-view-column multi-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-column\" [class.error]=\"report?.overseer && (\n !report?.userValidateWithProgram?.isValidOverseer )\">\n {{report?.overseer}}\n\n <i *ngIf=\"(report?.overseer) && !report?.userValidateWithProgram?.isValidOverseer\"\n class=\"icons\"\n [appTooltip]=\"'This user is not associated with the selected Program.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n </div>\n <div class=\"exel-view-column\" [class.error]=\"report?.notifyOnFailure && (\n !report?.userValidateWithProgram?.isValidNotifyOnFailure )\">\n {{report?.notifyOnFailure}}\n\n <i *ngIf=\"(report?.notifyOnFailure) && !report?.userValidateWithProgram?.isValidNotifyOnFailure\"\n class=\"icons\"\n [appTooltip]=\"'This user is not associated with the selected Program.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n </div>\n </div>\n </div>\n\n <!-- <div class=\"exel-view-column\" [class.error]=\"(report?.overseer) && ((report?.overseer === report?.assignee) ||(report?.reviewer === report?.overseer) || (report?.overseer == report?.assignor) || (!report?.userValidateWithProgram?.isValidOverseer))\">\n {{report?.overseer}}\n <i *ngIf=\"(report?.overseer) && ((report?.reviewer === report?.overseer))\"\n class=\"icons\"\n [appTooltip]=\"'The Reviewer cannot also be the Overseer of this responsibility. Select another user as the Overseer.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n\n <i *ngIf=\"report?.overseer && (report?.overseer === report?.assignee)\" class=\"icons\"\n [appTooltip]=\"'The Assignee cannot also be the Overseer of this responsibility. Select another user as the Overseer'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n <i *ngIf=\"((report?.overseer) && (report?.overseer == report?.assignor))\"\n class=\"icons\"\n [appTooltip]=\"((report?.assignor)?'The Assignor cannot also be the Overseer of this responsibility. ':'You cannot be an Overseer of this responsibility since you are the Assignor. ') +'Select another user as the Overseer.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n <i *ngIf=\"!report?.userValidateWithProgram?.isValidOverseer\"\n class=\"icons\"\n [appTooltip]=\"'Selected user is not a valid overseer for selected program.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n </div> -->\n </div>\n\n\n\n\n\n\n <!-- ------------------------------------------------old code dynamic------------------------------------------------- -->\n\n <!-- *ngFor=\"let report of responsibilityBulkUpload?.reports; let i = index\" -->\n </div>\n </div>\n <div class=\"bulk-view-option\">\n <button *ngIf=\"bulkUpload?.frequency?.reports?.length\" [class.active]=\"tabType === 'frequency'\" (click)=\"selectedTab.emit('frequency')\">Frequency Responsibilities</button>\n <button *ngIf=\"bulkUpload?.ongoing?.reports?.length\" [class.active]=\"tabType === 'ongoing'\" (click)=\"selectedTab.emit('ongoing')\">Ongoing Responsibilities</button>\n <button *ngIf=\"bulkUpload?.onCompletion?.reports?.length\" [class.active]=\"tabType === 'onCompletion'\" (click)=\"selectedTab.emit('onCompletion')\">On Completion Responsibilities</button>\n </div>\n <div class=\"bulk-view-footer\">\n <!-- <div class=\"left\">\n <p>{{finalResponsibilities}} out of {{responsibilityBulkUpload?.reports?.length}} responsibilities will be\n uploaded.</p>\n </div> -->\n <div class=\"left\">\n <p>{{finalResponsibilities}} out of {{responsibilityMultiTabBulkUpload?.length}} {{responsibilityMultiTabBulkUpload?.length > 1 ? 'responsibilities' : 'responsibility'}} will be\n uploaded.</p>\n </div>\n <div class=\"right\">\n <button (click)=\"close()\" id=\"bulk-resp-cancel\">Cancel</button>\n <button (click)=\"submit()\" id=\"bulk-resp-confirm\" [disabled]=\"!isConfirmClickable\" class=\"blue\">Confirm</button>\n <!-- finalResponsibilities < 1 -->\n </div>\n </div>\n </div>\n <app-loader *ngIf=\"loader\"></app-loader>\n\n</ng-container>\n\n <!-- --------------------------------------------------------------------upward is new one-------------------- -->\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::-webkit-scrollbar-thumb,::-webkit-scrollbar-thumb:hover{background:#747576;border-radius:16px}::-webkit-scrollbar{height:15px}.bulk-view{position:fixed;inset:0;z-index:11}.bulk-view-head{height:60px;padding:20px 24px;background:#161b2f;display:flex;justify-content:flex-start}.bulk-view-title{font-size:16px;line-height:20px;font-weight:400;margin:0;color:#fff}.bulk-view-body{height:calc(100vh - 110px);overflow:auto;width:100%;background:#fff}.bulk-view-body .exel-view{display:block}.bulk-view-body .exel-view-row{display:flex;width:100%}.bulk-view-body .exel-view-row.head .exel-view-column{font-weight:500;font-size:14px;min-height:26px;background:#f1f1f1;padding:0;word-break:unset}.bulk-view-body .exel-view-row.multi-column .exel-view-column{width:140px;min-width:140px}.bulk-view-body .exel-view-column{width:300px;min-width:300px;padding:0 10px;border-right:1px solid #dcdcdc;border-bottom:1px solid #dcdcdc;display:flex;align-items:center;justify-content:center;text-align:center;word-break:break-all;line-height:16px;font-size:12px;color:#161b2f;flex-wrap:wrap;position:relative}.bulk-view-body .exel-view-column i.icons{position:absolute;top:8px;right:10px;cursor:pointer;color:#d93b41}.bulk-view-body .exel-view-column.large{width:100%;min-width:auto}.bulk-view-body .exel-view-column.error{border:1px solid #EB2424!important;padding-right:24px}.bulk-view-body .exel-view-column.error+.error{border-left:none!important}.bulk-view-body .exel-view-column span.required{color:#eb2424;display:contents}.bulk-view-body .exel-view-column .exel-view-row .exel-view-column{width:100%}.bulk-view-body .exel-view-column.sl-no{background:#f1f1f1;width:60px;min-width:60px;min-height:30px;font-weight:400}.bulk-view-body .exel-view-column.sl-no.error{background:#eb242424;border:none;padding-right:10px;border-bottom:1px solid #dcdcdc}.bulk-view-body .exel-view-column.multi-column{padding:0;border:none}.bulk-view-body .exel-view-column.multi-column .exel-view-row{height:100%}.bulk-view-body .exel-view-column.multi-column .exel-view-column{width:50%;min-width:50%}.bulk-view-body .exel-view-column.multi-column .exel-view-column+.exel-view-column{border-left:none}.bulk-view-body.bulk{height:calc(100vh - 142px)}.bulk-view-body.bulk .exel-view-row.head{position:sticky;top:0;z-index:1}.bulk-view-body.bulk .exel-view-row.head .exel-view-column{min-height:34px}.bulk-view-body.bulk .exel-view-row.head .exel-view-column .info-text{font-size:10px;display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding:0 8px}.bulk-view-body.bulk .exel-view-row.two-column .exel-view-column{min-width:250px!important}.bulk-view-body.bulk .exel-view-row.three-column .exel-view-column,.bulk-view-body.bulk .exel-view-row.five-column .exel-view-column{width:200px;min-width:200px!important}.bulk-view-body.bulk .exel-view-column .exel-view-row .exel-view-column.small-column{width:120px;min-width:120px!important}.bulk-view-body.bulk .exel-view-column.multi-column .exel-view-column{min-width:unset}.bulk-view-body.bulk .exel-view-column.two-column{width:500px;min-width:500px!important}.bulk-view-body.bulk .exel-view-column.three-column{width:600px;min-width:600px!important}.bulk-view-body.bulk .exel-view-column.five-column{width:1000px;min-width:1000px!important}.bulk-view-option{background:#fff;border-top:1px solid #f1f1f1;padding:0 20px;position:fixed;width:100%;bottom:50px;display:flex;align-items:center}.bulk-view-option button{background:transparent;border-radius:0;border:none;border-left:1px solid #f1f1f1;color:#747576;font-size:11px;font-weight:500;padding:0 .5rem;margin:0;height:2rem;position:relative}.bulk-view-option button:last-of-type{border-right:1px solid #f1f1f1}.bulk-view-option button.active{color:#1e5dd3}.bulk-view-option button.active:before{background:#fff;content:\"\";position:absolute;top:-1px;left:0;height:1px;width:100%}.bulk-view-footer{height:50px;box-shadow:0 0 15px #1e03d259;padding:10px 20px;position:fixed;width:100%;bottom:0;display:flex;align-items:center;justify-content:space-between;background:#fff}.bulk-view-footer .left p{color:#747576;font-size:13px;font-weight:500;margin:0}.bulk-view-footer .right button{font-size:12px;background:#fff;border:1px solid #dcdcdc;color:#747576;border-radius:2px;padding:8px 18px;cursor:pointer;text-transform:uppercase}.bulk-view-footer .right button+button{margin-left:4px}.bulk-view-footer .right button.blue{color:#fff;background:#1e5dd3}.bulk-view-footer .right button:disabled{background:#f1f1f1;border-color:#f1f1f1;pointer-events:none;cursor:not-allowed;color:#747576}\n"] }]
|
|
46731
|
+
args: [{ selector: 'app-bulk-responsibility-view', template: "\n<ng-container *ngIf=\"responsibilityType === 'singleTab'\">\n<div class=\"bulk-view\">\n <div class=\"bulk-view-head\">\n <h2 class=\"bulk-view-title\">\n {{fileName}}\n </h2>\n </div>\n <div class=\"bulk-view-body\">\n <div class=\"exel-view\">\n <div class=\"exel-view-row head\">\n <div class=\"exel-view-column sl-no\">#</div>\n <div class=\"exel-view-column\" *ngFor=\"let heading of responsibilityBulkUpload?.header\"\n [class.large]=\"heading && heading.startsWith('Inherent')\">\n <ng-container *ngIf=\"heading && !(heading.startsWith('Due')) && !(heading.startsWith('Oversight'))\">\n {{(heading.includes('*')? heading.replace('*', '') : heading)}}\n <span *ngIf=\"heading.includes('*')\" class=\"required\">*</span>\n </ng-container>\n <ng-container *ngIf=\"heading && heading.startsWith('Due')\">\n <div class=\"exel-view-row\">\n <div class=\"exel-view-column large\">Due Date</div>\n </div>\n <div class=\"exel-view-row multi-column\">\n <div class=\"exel-view-column\">Day</div>\n <div class=\"exel-view-column\">Month</div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"heading && heading.startsWith('Oversight')\">\n <div class=\"exel-view-row\">\n <div class=\"exel-view-column large\">Oversight </div>\n </div>\n <div class=\"exel-view-row multi-column\">\n <div class=\"exel-view-column\">Always Notify</div>\n <div class=\"exel-view-column\">Notify on Failure</div>\n </div>\n </ng-container>\n </div>\n\n </div>\n <div class=\"exel-view-row\" *ngFor=\"let report of responsibilityBulkUpload?.reports; let i = index\">\n <div class=\"exel-view-column sl-no\">{{i+1}}</div>\n\n <div class=\"exel-view-column\" [class.error]=\"!report.responsibilityName\">{{report?.responsibilityName}}\n <i *ngIf=\"!report?.responsibilityName\" class=\"icons\"\n [appTooltip]=\"'Enter a name for this responsibility.'\" placement=\"bottom-right\" type=\"white\"\n delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column\">\n {{report?.assignor}}\n <i *ngIf=\"((report?.assignor) && (report?.notifyOnFailure == report?.assignor||report?.alwaysNotify == report?.assignor))\"\n class=\"icons\"\n [appTooltip]=\"'The Overseer cannot also be the Assignor of this responsibility. Select another user as the Assignor.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n<!--\n <i *ngIf=\"((report?.assignor) && (report?.reviewer == report?.assignor))\"\n class=\"icons\"\n [appTooltip]=\"'The Reviewer cannot also be the Assignor of this responsibility. Select another user as the Assignor.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i> -->\n </div>\n <div class=\"exel-view-column\">\n {{report?.assignee}}\n\n <i *ngIf=\"((report?.assignee) && (report?.notifyOnFailure == report?.assignee||report?.alwaysNotify == report?.assignee))\"\n class=\"icons\"\n [appTooltip]=\"'The Overseer cannot also be the Assignee of this responsibility. Select another user as the Assignee.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n\n <i *ngIf=\"((report?.assignee) && (report?.reviewer == report?.assignee))\"\n class=\"icons\"\n [appTooltip]=\"'The Reviewer cannot also be the Assignee of this responsibility. Select another user as the Assignee.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n <i *ngIf=\"(!report?.assignee) || (!report?.isValidUser)\"\n class=\"icons\"\n [appTooltip]=\"'Select the user responsible for completing this responsibility. '\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n </div>\n <div class=\"exel-view-column\" id=\"resCategory\" *ngIf=\"report?.responsibilityCategory!==null\">{{report?.responsibilityCategory}}</div>\n <div class=\"exel-view-column\" [class.error]=\"!report.frequency\">{{report?.frequency}}\n <i *ngIf=\"!report?.frequency\" class=\"icons\" [appTooltip]=\"'Select a frequency for this responsibility.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column multi-column\">\n <div class=\"exel-view-row\">\n <div class=\"exel-view-column\" [class.error]=\"!report.isValidDueDate\">{{report?.day}}\n <i *ngIf=\"!report?.isValidDueDate\" class=\"icons\" [appTooltip]=\"'Invalid Due Date.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n <i *ngIf=\"report?.isPastDate\" class=\"icons\" [appTooltip]=\"'This date occurs in the past. Select a future date.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column\" [class.error]=\"!report.isValidDueDate\">{{report?.month}}\n <i *ngIf=\"!report?.isValidDueDate\" class=\"icons\" [appTooltip]=\"'Invalid Due Date.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n <i *ngIf=\"report?.isPastDate\" class=\"icons\" [appTooltip]=\"'This date occurs in the past. Select a future date.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n </div>\n </div>\n <div class=\"exel-view-column\">{{report?.responsibilityWindow}}</div>\n <div class=\"exel-view-column\">{{report?.failedAfter}}</div>\n <div class=\"exel-view-column\">{{report?.reportClass}}</div>\n <div class=\"exel-view-column\">{{report?.responsibilityCenter}}</div>\n <div class=\"exel-view-column\">\n {{report?.reviewer}}\n\n <i *ngIf=\"(report?.reviewer) && ((report?.reviewer == report?.alwaysNotify) || (report?.reviewer == report?.notifyOnFailure))\"\n class=\"icons\"\n [appTooltip]=\"'The Overseer cannot also be the Reviewer of this responsibility. Select another user as the Reviewer'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n\n <i *ngIf=\"report?.reviewer && (report?.reviewer == report?.assignee)\" class=\"icons\"\n [appTooltip]=\"'The Assignee cannot also be the Reviewer of this responsibility. Select another user as the Reviewer.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n <!-- <i *ngIf=\"(report?.reviewer && report?.assignor)\"\n class=\"icons\"\n [appTooltip]=\"((report?.assignor)?'The Assignor cannot also be the Reviewer of this responsibility.':'You cannot be a Reviewer of this responsibility since you are the assignor. ') +'Select another user as the Reviewer'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i> -->\n </div>\n <div class=\"exel-view-column\">{{report?.reviewToBeCompletedWithin}}</div>\n <div class=\"exel-view-column\">{{report?.reviewWillBeFailedAfter}}</div>\n <div class=\"exel-view-column\">{{report?.formatForResponsibility}}</div>\n <div class=\"exel-view-column\">{{report?.notes}}</div>\n <div class=\"exel-view-column\">{{report?.documentEvidenceRequired}}</div>\n <div class=\"exel-view-column multi-column\">\n <div class=\"exel-view-row\">\n <div class=\"exel-view-column\">\n {{report?.alwaysNotify}}\n <i *ngIf=\"(report?.alwaysNotify) && ((report?.reviewer == report?.alwaysNotify))\"\n class=\"icons\"\n [appTooltip]=\"'The Reviewer cannot also be the Overseer of this responsibility. Select another user as the Overseer.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n\n <i *ngIf=\"report?.alwaysNotify && (report?.alwaysNotify == report?.assignee)\" class=\"icons\"\n [appTooltip]=\"'The Assignee cannot also be the Overseer of this responsibility. Select another user as the Overseer'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n <i *ngIf=\"((report?.alwaysNotify && report?.assignor) && (report?.alwaysNotify == report?.assignor)) ||((report?.alwaysNotify && (!report?.assignor)) && (report?.alwaysNotify == defaultOwner))\"\n class=\"icons\"\n [appTooltip]=\"((report?.assignor)?'The Assignor cannot also be the Overseer of this responsibility. ':'You cannot be an Overseer of this responsibility since you are the Assignor. ') +'Select another user as the Overseer.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n </div>\n <div class=\"exel-view-column\">\n {{report?.notifyOnFailure}}\n <i *ngIf=\"(report?.notifyOnFailure) && ((report?.reviewer == report?.notifyOnFailure))\"\n class=\"icons\"\n [appTooltip]=\"'The Reviewer cannot also be the Overseer of this responsibility. Select another user as the Overseer.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n\n <i *ngIf=\"report?.notifyOnFailure && (report?.notifyOnFailure == report?.assignee)\" class=\"icons\"\n [appTooltip]=\"'The Assignee cannot also be the Overseer of this responsibility. Select another user as the Overseer'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n <i *ngIf=\"((report?.notifyOnFailure && report?.assignor) && (report?.notifyOnFailure == report?.assignor)) ||((report?.notifyOnFailure && (!report?.assignor)) && (report?.notifyOnFailure == defaultOwner))\"\n class=\"icons\"\n [appTooltip]=\"((report?.assignor)?'The Assignor cannot also be the Overseer of this responsibility. ':'You cannot be an Overseer of this responsibility since you are the Assignor. ') +'Select another user as the Overseer.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n </div>\n </div>\n </div>\n\n\n <div class=\"exel-view-column\">{{report?.keyResponsibility}}</div>\n <div class=\"exel-view-column\">{{report?.objective}}</div>\n\n </div>\n </div>\n </div>\n <div class=\"bulk-view-footer\">\n <div class=\"left\">\n <p>{{finalResponsibilities}} out of {{responsibilityBulkUpload?.reports?.length}} responsibilities will be\n uploaded.</p>\n </div>\n <div class=\"right\">\n <button (click)=\"close()\" id=\"bulk-resp-cancel\" >Cancel</button>\n <button (click)=\"submit()\" id=\"bulk-resp-confirm\" [disabled]=\"finalResponsibilities<1\" class=\"blue\">Confirm</button>\n </div>\n </div>\n</div>\n<app-loader *ngIf=\"loader\"></app-loader>\n\n</ng-container>\n\n<!-- --------------------------------------------------------------------upward is new one-------------------- -->\n<app-loader *ngIf=\"loader\"></app-loader>\n\n\n\n\n\n\n<!-- HTML for multiple tabs -->\n<ng-container *ngIf=\"responsibilityType === 'multiTab'\">\n <div class=\"bulk-view\">\n <div class=\"bulk-view-head\">\n <h2 class=\"bulk-view-title\">\n {{fileName}}\n </h2>\n </div>\n <div class=\"bulk-view-body bulk\">\n <div class=\"exel-view\">\n <div class=\"exel-view-row head\">\n <div class=\"exel-view-column sl-no\">#</div>\n <div class=\"exel-view-column\">Responsibility Name <span class=\"required\">*</span></div>\n <div class=\"exel-view-column\" *ngIf=\"responsibilityBulkUpload?.header.includes('Program')\" [class.three-column]=\"true\">\n <div class=\"exel-view-row\">\n <div class=\"exel-view-column large\">Program</div>\n </div>\n <div class=\"exel-view-row multi-column\" [class.three-column]=\"true\">\n <div class=\"exel-view-column\">Program Type</div>\n <div class=\"exel-view-column\">Program</div>\n <div class=\"exel-view-column\">Program Category</div>\n </div>\n </div>\n <div class=\"exel-view-column\">Entrusted By</div>\n <div class=\"exel-view-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-row\">\n <div class=\"exel-view-column large\">Entrust To <span class=\"required\">*</span></div>\n </div>\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-column\">Person or Group<span class=\"required\">*</span></div>\n <div class=\"exel-view-column\">All or Any Persons</div>\n </div>\n </div>\n <div class=\"exel-view-column\">Key Responsibility?</div>\n <div class=\"exel-view-column\" [class.five-column]=\"tabType === 'frequency' || tabType === 'onCompletion'\" [class.three-column]=\"tabType === 'ongoing'\">\n <div class=\"exel-view-row\">\n <!-- <div class=\"exel-view-column large\">Frequency of Occurrence and Completion Window <span class=\"required\">*</span></div> -->\n <div class=\"exel-view-column large\">{{responsibilityBulkUpload?.header.includes('Program') ? responsibilityBulkUpload?.header[8]?.slice(0, -1) : responsibilityBulkUpload?.header[5]?.slice(0, -1)}}<span class=\"required\">*</span></div>\n </div>\n <div class=\"exel-view-row multi-column\" [class.five-column]=\"tabType === 'frequency' || tabType === 'onCompletion'\" [class.three-column]=\"tabType === 'ongoing'\">\n <ng-container *ngIf=\"tabType === 'frequency'\">\n <div class=\"exel-view-column\">Frequency <span class=\"required\">*</span></div>\n <div class=\"exel-view-column\">Due Date <span class=\"info-text\">(Day)</span></div>\n <div class=\"exel-view-column\">Due Date <span class=\"info-text\">(Month)</span></div>\n <div class=\"exel-view-column\">Start <span class=\"info-text\">(No. of days before the due date)</span></div>\n <div class=\"exel-view-column\">Fail <span class=\"info-text\" appTooltip=\"(No. of days after the due date. Select '0' if the responsibility must be completed on the due date)\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">(No. of days after the due date. Select \"0\" if the responsibility must be completed on the due date)</span></div>\n </ng-container>\n <ng-container *ngIf=\"tabType === 'ongoing'\">\n <div class=\"exel-view-column\">Ongoing Frequency <span class=\"required\">*</span></div>\n <div class=\"exel-view-column\">Set a Reminder?</div>\n <div class=\"exel-view-column\">Frequency of Reminder</div>\n </ng-container>\n <ng-container *ngIf=\"tabType === 'onCompletion'\">\n <div class=\"exel-view-column\">On Completion of Frequency <span class=\"required\">*</span></div>\n <div class=\"exel-view-column\">Parent Responsibility<span class=\"info-text\">(Day)</span></div>\n <div class=\"exel-view-column\">Due Date <span class=\"info-text\" appTooltip=\"(No. of days after completion of the Parent Responsibility)\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">(No. of days after completion of the Parent Responsibility)</span></div>\n <div class=\"exel-view-column\">Start <span class=\"info-text\" appTooltip=\"(No. of days before the due date)\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">(No. of days before the due date)</span></div>\n <div class=\"exel-view-column\">Fail <span class=\"info-text\" appTooltip=\"(No. of days after the due date. Select '0' if the responsibility must be completed on the due date)\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">(No. of days after the due date. Select \"0\" if the responsibility must be completed on the due date)</span></div>\n </ng-container>\n </div>\n </div>\n <div class=\"exel-view-column\">Responsibility Centre</div>\n <div class=\"exel-view-column\">Risk Class</div>\n <div class=\"exel-view-column\">Objective</div>\n <div class=\"exel-view-column\">Notes</div>\n <div class=\"exel-view-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-row\">\n <div class=\"exel-view-column large\">Format & Evidence</div>\n </div>\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\" [class.three-column]=\"false\">\n <div class=\"exel-view-column\" [class.small-column]=\"true\">Format</div>\n <div class=\"exel-view-column\">Format For Responsibility (link)</div>\n <div class=\"exel-view-column\" [class.small-column]=\"true\">Evidence</div>\n </div>\n </div>\n <!-- <div class=\"exel-view-column\">Assessments or Checkpoints</div> -->\n <div class=\"exel-view-column\" [class.three-column]=\"true\">\n <div class=\"exel-view-row\">\n <div class=\"exel-view-column large\">Review of Responsibility</div>\n </div>\n <div class=\"exel-view-row multi-column\" [class.three-column]=\"true\">\n <div class=\"exel-view-column\">Reviewer</div>\n <div class=\"exel-view-column\">Review Start <span class=\"info-text\">(No. of days before the due date)</span></div>\n <div class=\"exel-view-column\">Review Fail <span class=\"info-text\" appTooltip=\"(No. of days after the due date. Select '0' if the responsibility must be reviewed on the due date)\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">(No. of days after the due date. Select \"0\" if the responsibility must be reviewed on the due date)</span></div>\n </div>\n </div>\n <div class=\"exel-view-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-row\">\n <div class=\"exel-view-column large\">Overseer</div>\n </div>\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-column\">Always Notify</div>\n <div class=\"exel-view-column\">Notify on Failure</div>\n </div>\n </div>\n <!-- <div class=\"exel-view-column\">Overseer</div> -->\n\n </div>\n <div class=\"exel-view-row\" *ngFor=\"let report of responsibilityBulkUpload?.reports; let i = index\">\n <div class=\"exel-view-column sl-no\" [class.error]=\"!report?.isValid\">{{i+1}}</div>\n <div class=\"exel-view-column\" [class.error]=\"!report.responsibilityName\">{{report?.responsibilityName}} <i *ngIf=\"!report.responsibilityName\" class=\"icons\" [appTooltip]=\"'Enter a name for this responsibility.'\" placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i></div>\n <div class=\"exel-view-column multi-column\" *ngIf=\"responsibilityBulkUpload?.header.includes('Program')\" [class.error]=\"false\" [class.three-column]=\"true\">\n <div class=\"exel-view-row multi-column\" [class.three-column]=\"true\">\n <div class=\"exel-view-column\">{{report?.programType}}</div>\n <div class=\"exel-view-column\">{{report?.program}}</div>\n <div class=\"exel-view-column\">{{report?.programCategory}}</div>\n </div>\n </div>\n <div class=\"exel-view-column\">{{report?.assignor}}\n <!-- <i *ngIf=\"((report?.assignor) && (report?.reviewer === report?.assignor))\"\n class=\"icons\"\n [appTooltip]=\"'The Reviewer cannot also be the Assignor of this responsibility. Select another user as the Assignor.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i> -->\n </div>\n <div class=\"exel-view-column multi-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-column\" [class.error]=\"!report?.assignee || !report?.userValidateWithProgram?.isValidAssignee || (!report?.isValidUser)\">{{report?.assignee}}\n <!-- || (!report?.isValidUser) -->\n <i *ngIf=\"(!report?.assignee) || (!report?.isValidUser)\"\n class=\"icons\"\n [appTooltip]=\"'Select the user responsible for completing this responsibility. '\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n <i *ngIf=\"(report?.assignee) && !report?.userValidateWithProgram?.isValidAssignee\"\n class=\"icons\"\n [appTooltip]=\"'This user is not associated with the selected Program.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n </div>\n <div class=\"exel-view-column\">{{report?.assigneeType}}</div>\n </div>\n </div>\n <div class=\"exel-view-column\">{{report?.keyResponsibility}}</div>\n <div class=\"exel-view-column multi-column\" [class.five-column]=\"tabType === 'frequency' || tabType === 'onCompletion'\" [class.three-column]=\"tabType === 'ongoing'\">\n <ng-container *ngIf=\"tabType === 'frequency'\">\n <div class=\"exel-view-row multi-column\" [class.five-column]=\"true\">\n <div class=\"exel-view-column\" [class.error]=\"!report?.frequency\">{{report?.frequency}}\n <i *ngIf=\"!report?.frequency\" class=\"icons\" [appTooltip]=\"'Select a frequency for this responsibility.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column\" [class.error]=\"!report?.validDate || report?.isPastDate\">{{report?.day}}\n <i *ngIf=\"!report?.validDate\" class=\"icons\" [appTooltip]=\"'Invalid Due Date.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n <i *ngIf=\"report?.isPastDate\" class=\"icons\" [appTooltip]=\"'This date occurs in the past. Select a future date.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column\" [class.error]=\"!report?.validDate || report?.isPastDate\">{{report?.month}}\n <i *ngIf=\"!report?.validDate\" class=\"icons\" [appTooltip]=\"'Invalid Due Date.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n <i *ngIf=\"report?.isPastDate\" class=\"icons\" [appTooltip]=\"'This date occurs in the past. Select a future date.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column\">{{report?.responsibilityWindow}}</div>\n <div class=\"exel-view-column\">{{report?.failedAfter}}</div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"tabType === 'ongoing'\">\n <div class=\"exel-view-row multi-column\" [class.three-column]=\"true\">\n <div class=\"exel-view-column\" [class.error]=\"!report?.frequency\">{{report?.frequency}}\n <i *ngIf=\"!report?.frequency\" class=\"icons\" [appTooltip]=\"'Select a frequency for this responsibility.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column\">{{report?.setReminder}}</div>\n <div class=\"exel-view-column\">{{report?.frequencyReminder}}</div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"tabType === 'onCompletion'\">\n <div class=\"exel-view-row multi-column\" [class.five-column]=\"true\">\n <div class=\"exel-view-column\" [class.error]=\"!report?.frequency\">{{report?.frequency}}\n <i *ngIf=\"!report?.frequency\" class=\"icons\" [appTooltip]=\"'Select a frequency for this responsibility.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column\" [class.error]=\"!report?.parentResponsibility\">{{report?.parentResponsibility}}\n <i *ngIf=\"!report?.parentResponsibility\" class=\"icons\" [appTooltip]=\"'Select a parent responsibility on whose completion this responsibility will become active.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column\">{{report?.dueDate}}</div>\n <div class=\"exel-view-column\">{{report?.responsibilityWindow}}</div>\n <div class=\"exel-view-column\">{{report?.failedAfter}}</div>\n </div>\n </ng-container>\n </div> \n <div class=\"exel-view-column\">{{report?.responsibilityCenter}}</div>\n <div class=\"exel-view-column\" [class.error]=\"!(report?.reportClass | riskClass)\">{{report?.reportClass}}\n <i *ngIf=\"!(report?.reportClass | riskClass)\" class=\"icons\" [appTooltip]=\"VALIDATION_MESSAGES.RISK_CLASS\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true></i>\n </div>\n <div class=\"exel-view-column\">{{report?.objective}}</div>\n <div class=\"exel-view-column\">{{report?.notes}}</div>\n <div class=\"exel-view-column multi-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-column multi-column\">\n <div class=\"exel-view-row multi-column\">\n <div class=\"exel-view-column\" [class.small-column]=\"true\">{{report?.isFormat}}</div>\n <div class=\"exel-view-column\">{{report?.formatForResponsibility}}</div>\n </div>\n </div>\n <div class=\"exel-view-column\" [class.small-column]=\"true\">{{report?.documentEvidenceRequired}}</div>\n </div>\n </div>\n <!-- <div class=\"exel-view-column\">{{report?.assessments}}</div> -->\n <div class=\"exel-view-column multi-column\" [class.three-column]=\"true\">\n <div class=\"exel-view-row multi-column\" [class.three-column]=\"true\">\n <div class=\"exel-view-column\" [class.error]=\"report?.reviewer && (\n !report?.userValidateWithProgram?.isValidReviewer )\">{{report?.reviewer}}\n\n <!-- <i *ngIf=\"(report?.reviewer && report?.reviewer === report?.assignor)\"\n class=\"icons\"\n [appTooltip]=\"((report?.assignor)?'The Assignor cannot also be the Reviewer of this responsibility.':'You cannot be a Reviewer of this responsibility since you are the assignor. ') +'Select another user as the Reviewer'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i> -->\n <i *ngIf=\"report?.reviewer && !report?.userValidateWithProgram?.isValidReviewer\"\n class=\"icons\"\n [appTooltip]=\"'This user is not associated with the selected Program.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n </div>\n <div class=\"exel-view-column\">{{report?.reviewToBeCompletedWithin}}</div>\n <div class=\"exel-view-column\">{{report?.reviewWillBeFailedAfter}}</div>\n </div>\n </div>\n\n <div class=\"exel-view-column multi-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\n <div class=\"exel-view-column\" [class.error]=\"report?.overseer && (\n !report?.userValidateWithProgram?.isValidOverseer )\">\n {{report?.overseer}}\n\n <i *ngIf=\"(report?.overseer) && !report?.userValidateWithProgram?.isValidOverseer\"\n class=\"icons\"\n [appTooltip]=\"'This user is not associated with the selected Program.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n </div>\n <div class=\"exel-view-column\" [class.error]=\"report?.notifyOnFailure && (\n !report?.userValidateWithProgram?.isValidNotifyOnFailure )\">\n {{report?.notifyOnFailure}}\n\n <i *ngIf=\"(report?.notifyOnFailure) && !report?.userValidateWithProgram?.isValidNotifyOnFailure\"\n class=\"icons\"\n [appTooltip]=\"'This user is not associated with the selected Program.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n </div>\n </div>\n </div>\n\n <!-- <div class=\"exel-view-column\" [class.error]=\"(report?.overseer) && ((report?.overseer === report?.assignee) ||(report?.reviewer === report?.overseer) || (report?.overseer == report?.assignor) || (!report?.userValidateWithProgram?.isValidOverseer))\">\n {{report?.overseer}}\n <i *ngIf=\"(report?.overseer) && ((report?.reviewer === report?.overseer))\"\n class=\"icons\"\n [appTooltip]=\"'The Reviewer cannot also be the Overseer of this responsibility. Select another user as the Overseer.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n\n <i *ngIf=\"report?.overseer && (report?.overseer === report?.assignee)\" class=\"icons\"\n [appTooltip]=\"'The Assignee cannot also be the Overseer of this responsibility. Select another user as the Overseer'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n <i *ngIf=\"((report?.overseer) && (report?.overseer == report?.assignor))\"\n class=\"icons\"\n [appTooltip]=\"((report?.assignor)?'The Assignor cannot also be the Overseer of this responsibility. ':'You cannot be an Overseer of this responsibility since you are the Assignor. ') +'Select another user as the Overseer.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n <i *ngIf=\"!report?.userValidateWithProgram?.isValidOverseer\"\n class=\"icons\"\n [appTooltip]=\"'Selected user is not a valid overseer for selected program.'\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>\n </i>\n </div> -->\n </div>\n\n\n\n\n\n\n <!-- ------------------------------------------------old code dynamic------------------------------------------------- -->\n\n <!-- *ngFor=\"let report of responsibilityBulkUpload?.reports; let i = index\" -->\n </div>\n </div>\n <div class=\"bulk-view-option\">\n <button *ngIf=\"bulkUpload?.frequency?.reports?.length\" [class.active]=\"tabType === 'frequency'\" (click)=\"selectedTab.emit('frequency')\">Frequency Responsibilities</button>\n <button *ngIf=\"bulkUpload?.ongoing?.reports?.length\" [class.active]=\"tabType === 'ongoing'\" (click)=\"selectedTab.emit('ongoing')\">Ongoing Responsibilities</button>\n <button *ngIf=\"bulkUpload?.onCompletion?.reports?.length\" [class.active]=\"tabType === 'onCompletion'\" (click)=\"selectedTab.emit('onCompletion')\">On Completion Responsibilities</button>\n </div>\n <div class=\"bulk-view-footer\">\n <!-- <div class=\"left\">\n <p>{{finalResponsibilities}} out of {{responsibilityBulkUpload?.reports?.length}} responsibilities will be\n uploaded.</p>\n </div> -->\n <div class=\"left\">\n <p>{{finalResponsibilities}} out of {{responsibilityMultiTabBulkUpload?.length}} {{responsibilityMultiTabBulkUpload?.length > 1 ? 'responsibilities' : 'responsibility'}} will be\n uploaded.</p>\n </div>\n <div class=\"right\">\n <button (click)=\"close()\" id=\"bulk-resp-cancel\">Cancel</button>\n <button (click)=\"submit()\" id=\"bulk-resp-confirm\" [disabled]=\"!isConfirmClickable\" class=\"blue\">Confirm</button>\n <!-- finalResponsibilities < 1 -->\n </div>\n </div>\n </div>\n <app-loader *ngIf=\"loader\"></app-loader>\n\n</ng-container>\n\n <!-- --------------------------------------------------------------------upward is new one-------------------- -->\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::-webkit-scrollbar-thumb,::-webkit-scrollbar-thumb:hover{background:#747576;border-radius:16px}::-webkit-scrollbar{height:15px}.bulk-view{position:fixed;inset:0;z-index:11}.bulk-view-head{height:60px;padding:20px 24px;background:#161b2f;display:flex;justify-content:flex-start}.bulk-view-title{font-size:16px;line-height:20px;font-weight:400;margin:0;color:#fff}.bulk-view-body{height:calc(100vh - 110px);overflow:auto;width:100%;background:#fff}.bulk-view-body .exel-view{display:block}.bulk-view-body .exel-view-row{display:flex;width:100%}.bulk-view-body .exel-view-row.head .exel-view-column{font-weight:500;font-size:14px;min-height:26px;background:#f1f1f1;padding:0;word-break:unset}.bulk-view-body .exel-view-row.multi-column .exel-view-column{width:140px;min-width:140px}.bulk-view-body .exel-view-column{width:300px;min-width:300px;padding:0 10px;border-right:1px solid #dcdcdc;border-bottom:1px solid #dcdcdc;display:flex;align-items:center;justify-content:center;text-align:center;word-break:break-all;line-height:16px;font-size:12px;color:#161b2f;flex-wrap:wrap;position:relative}.bulk-view-body .exel-view-column i.icons{position:absolute;top:8px;right:10px;cursor:pointer;color:#d93b41}.bulk-view-body .exel-view-column.large{width:100%;min-width:auto}.bulk-view-body .exel-view-column.error{border:1px solid #EB2424!important;padding-right:24px}.bulk-view-body .exel-view-column.error+.error{border-left:none!important}.bulk-view-body .exel-view-column span.required{color:#eb2424;display:contents}.bulk-view-body .exel-view-column .exel-view-row .exel-view-column{width:100%}.bulk-view-body .exel-view-column.sl-no{background:#f1f1f1;width:60px;min-width:60px;min-height:30px;font-weight:400}.bulk-view-body .exel-view-column.sl-no.error{background:#eb242424;border:none;padding-right:10px;border-bottom:1px solid #dcdcdc}.bulk-view-body .exel-view-column.multi-column{padding:0;border:none}.bulk-view-body .exel-view-column.multi-column .exel-view-row{height:100%}.bulk-view-body .exel-view-column.multi-column .exel-view-column{width:50%;min-width:50%}.bulk-view-body .exel-view-column.multi-column .exel-view-column+.exel-view-column{border-left:none}.bulk-view-body.bulk{height:calc(100vh - 142px)}.bulk-view-body.bulk .exel-view-row.head{position:sticky;top:0;z-index:1}.bulk-view-body.bulk .exel-view-row.head .exel-view-column{min-height:34px}.bulk-view-body.bulk .exel-view-row.head .exel-view-column .info-text{font-size:10px;display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding:0 8px}.bulk-view-body.bulk .exel-view-row.two-column .exel-view-column{min-width:250px!important}.bulk-view-body.bulk .exel-view-row.three-column .exel-view-column,.bulk-view-body.bulk .exel-view-row.five-column .exel-view-column{width:200px;min-width:200px!important}.bulk-view-body.bulk .exel-view-column .exel-view-row .exel-view-column.small-column{width:120px;min-width:120px!important}.bulk-view-body.bulk .exel-view-column.multi-column .exel-view-column{min-width:unset}.bulk-view-body.bulk .exel-view-column.two-column{width:500px;min-width:500px!important}.bulk-view-body.bulk .exel-view-column.three-column{width:600px;min-width:600px!important}.bulk-view-body.bulk .exel-view-column.five-column{width:1000px;min-width:1000px!important}.bulk-view-option{background:#fff;border-top:1px solid #f1f1f1;padding:0 20px;position:fixed;width:100%;bottom:50px;display:flex;align-items:center}.bulk-view-option button{background:transparent;border-radius:0;border:none;border-left:1px solid #f1f1f1;color:#747576;font-size:11px;font-weight:500;padding:0 .5rem;margin:0;height:2rem;position:relative}.bulk-view-option button:last-of-type{border-right:1px solid #f1f1f1}.bulk-view-option button.active{color:#1e5dd3}.bulk-view-option button.active:before{background:#fff;content:\"\";position:absolute;top:-1px;left:0;height:1px;width:100%}.bulk-view-footer{height:50px;box-shadow:0 0 15px #1e03d259;padding:10px 20px;position:fixed;width:100%;bottom:0;display:flex;align-items:center;justify-content:space-between;background:#fff}.bulk-view-footer .left p{color:#747576;font-size:13px;font-weight:500;margin:0}.bulk-view-footer .right button{font-size:12px;background:#fff;border:1px solid #dcdcdc;color:#747576;border-radius:2px;padding:8px 18px;cursor:pointer;text-transform:uppercase}.bulk-view-footer .right button+button{margin-left:4px}.bulk-view-footer .right button.blue{color:#fff;background:#1e5dd3}.bulk-view-footer .right button:disabled{background:#f1f1f1;border-color:#f1f1f1;pointer-events:none;cursor:not-allowed;color:#747576}\n"] }]
|
|
46699
46732
|
}], propDecorators: { responsibilityBulkUpload: [{
|
|
46700
46733
|
type: Input
|
|
46701
46734
|
}], fileName: [{
|
|
@@ -47610,6 +47643,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
47610
47643
|
type: Input
|
|
47611
47644
|
}] } });
|
|
47612
47645
|
|
|
47646
|
+
const REGIX = {
|
|
47647
|
+
MONTH: /^[A-Za-z]+'\d{2}$/,
|
|
47648
|
+
};
|
|
47649
|
+
|
|
47613
47650
|
class AddMultipleResponsibilityWithTabComponent {
|
|
47614
47651
|
set uploadedFileData(data) {
|
|
47615
47652
|
this.uploadedFile(data);
|
|
@@ -47976,6 +48013,9 @@ class AddMultipleResponsibilityWithTabComponent {
|
|
|
47976
48013
|
return false;
|
|
47977
48014
|
}
|
|
47978
48015
|
else {
|
|
48016
|
+
const monthFormatRegex = REGIX.MONTH;
|
|
48017
|
+
if (!monthFormatRegex.test(month))
|
|
48018
|
+
return false;
|
|
47979
48019
|
const monthAndYear = month.split("'");
|
|
47980
48020
|
const startDate = moment(day + '-' + monthAndYear[0] + '-' + 20 + monthAndYear[1] + ' 00:00:00', 'DD-MMMM-YYYY HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');
|
|
47981
48021
|
if (startDate == 'Invalid date') {
|
|
@@ -48745,7 +48785,8 @@ class AddMultipleResponsibilityWithTabComponent {
|
|
|
48745
48785
|
!obj['isPastDate'] &&
|
|
48746
48786
|
obj?.frequency?.length &&
|
|
48747
48787
|
!Object.values(obj['userValidateWithProgram']).includes(false) &&
|
|
48748
|
-
obj['isValidUser']
|
|
48788
|
+
obj['isValidUser'] &&
|
|
48789
|
+
this.isValidRiskClass(obj?.reportClass);
|
|
48749
48790
|
return obj;
|
|
48750
48791
|
}
|
|
48751
48792
|
else {
|
|
@@ -48788,7 +48829,8 @@ class AddMultipleResponsibilityWithTabComponent {
|
|
|
48788
48829
|
obj['validDate'] &&
|
|
48789
48830
|
!obj['isPastDate'] &&
|
|
48790
48831
|
obj?.frequency?.length &&
|
|
48791
|
-
obj['isValidUser']
|
|
48832
|
+
obj['isValidUser'] &&
|
|
48833
|
+
this.isValidRiskClass(obj?.reportClass);
|
|
48792
48834
|
return obj;
|
|
48793
48835
|
}
|
|
48794
48836
|
break;
|
|
@@ -48831,7 +48873,8 @@ class AddMultipleResponsibilityWithTabComponent {
|
|
|
48831
48873
|
obj['isValid'] =
|
|
48832
48874
|
obj['isValidData'] &&
|
|
48833
48875
|
!Object.values(obj['userValidateWithProgram']).includes(false) &&
|
|
48834
|
-
obj['isValidUser']
|
|
48876
|
+
obj['isValidUser'] &&
|
|
48877
|
+
this.isValidRiskClass(obj?.reportClass);
|
|
48835
48878
|
return obj;
|
|
48836
48879
|
}
|
|
48837
48880
|
else {
|
|
@@ -48865,7 +48908,8 @@ class AddMultipleResponsibilityWithTabComponent {
|
|
|
48865
48908
|
obj['isValidUser'] = this.returnIds(obj?.assignee, 'entrusted_to')
|
|
48866
48909
|
? true
|
|
48867
48910
|
: false;
|
|
48868
|
-
obj['isValid'] = obj['isValidData'] && obj['isValidUser']
|
|
48911
|
+
obj['isValid'] = obj['isValidData'] && obj['isValidUser'] &&
|
|
48912
|
+
this.isValidRiskClass(obj?.reportClass);
|
|
48869
48913
|
return obj;
|
|
48870
48914
|
}
|
|
48871
48915
|
}
|
|
@@ -48910,7 +48954,8 @@ class AddMultipleResponsibilityWithTabComponent {
|
|
|
48910
48954
|
obj['isValidData'] &&
|
|
48911
48955
|
!Object.values(obj['userValidateWithProgram']).includes(false) &&
|
|
48912
48956
|
obj?.parentResponsibility?.length &&
|
|
48913
|
-
obj['isValidUser']
|
|
48957
|
+
obj['isValidUser'] &&
|
|
48958
|
+
this.isValidRiskClass(obj?.reportClass);
|
|
48914
48959
|
return obj;
|
|
48915
48960
|
}
|
|
48916
48961
|
else {
|
|
@@ -48949,7 +48994,8 @@ class AddMultipleResponsibilityWithTabComponent {
|
|
|
48949
48994
|
obj['isValid'] =
|
|
48950
48995
|
obj['isValidData'] &&
|
|
48951
48996
|
obj?.parentResponsibility?.length &&
|
|
48952
|
-
obj['isValidUser']
|
|
48997
|
+
obj['isValidUser'] &&
|
|
48998
|
+
this.isValidRiskClass(obj?.reportClass);
|
|
48953
48999
|
return obj;
|
|
48954
49000
|
}
|
|
48955
49001
|
}
|
|
@@ -48957,6 +49003,9 @@ class AddMultipleResponsibilityWithTabComponent {
|
|
|
48957
49003
|
}
|
|
48958
49004
|
}
|
|
48959
49005
|
}
|
|
49006
|
+
isValidRiskClass(riskClass) {
|
|
49007
|
+
return RISK_CLASS_LIST.includes(riskClass?.toLowerCase());
|
|
49008
|
+
}
|
|
48960
49009
|
/**
|
|
48961
49010
|
* It takes a string, removes all whitespace, and returns the string
|
|
48962
49011
|
* @param {any} name - the name of the responsibility
|
|
@@ -52566,7 +52615,8 @@ class VComplyWorkflowEngineModule {
|
|
|
52566
52615
|
ApprovalCreateFormComponent,
|
|
52567
52616
|
LinkProgramComponent,
|
|
52568
52617
|
TooltipValidationPipe,
|
|
52569
|
-
LinkRelatedPoliciesComponent
|
|
52618
|
+
LinkRelatedPoliciesComponent,
|
|
52619
|
+
RiskClassPipe], imports: [ReactiveFormsModule,
|
|
52570
52620
|
CreateAssessmentModule,
|
|
52571
52621
|
// MarxEditorModule,
|
|
52572
52622
|
VcomplyEditorModule,
|
|
@@ -52748,7 +52798,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
52748
52798
|
ApprovalCreateFormComponent,
|
|
52749
52799
|
LinkProgramComponent,
|
|
52750
52800
|
TooltipValidationPipe,
|
|
52751
|
-
LinkRelatedPoliciesComponent
|
|
52801
|
+
LinkRelatedPoliciesComponent,
|
|
52802
|
+
RiskClassPipe
|
|
52752
52803
|
],
|
|
52753
52804
|
imports: [
|
|
52754
52805
|
ReactiveFormsModule,
|