vcomply-workflow-engine 6.0.86 → 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-engine.module.mjs +6 -3
- package/fesm2022/vcomply-workflow-engine.mjs +48 -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-engine.module.d.ts +41 -40
- package/lib/workflow-risk/workflow-risk.component.d.ts +1 -1
- package/package.json +1 -1
|
@@ -46664,8 +46664,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
46664
46664
|
}]
|
|
46665
46665
|
}], ctorParameters: function () { return []; } });
|
|
46666
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
|
+
|
|
46667
46686
|
class BulkResponsibilityViewComponent {
|
|
46668
46687
|
constructor() {
|
|
46688
|
+
this.VALIDATION_MESSAGES = VALIDATION_MESSAGES;
|
|
46669
46689
|
this.loader = false;
|
|
46670
46690
|
this.tabType = 'frequency';
|
|
46671
46691
|
this.submitResponsibilityBulkUpload = new EventEmitter();
|
|
@@ -46704,11 +46724,11 @@ class BulkResponsibilityViewComponent {
|
|
|
46704
46724
|
this.cancel.emit();
|
|
46705
46725
|
}
|
|
46706
46726
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BulkResponsibilityViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
46707
|
-
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" }] }); }
|
|
46708
46728
|
}
|
|
46709
46729
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BulkResponsibilityViewComponent, decorators: [{
|
|
46710
46730
|
type: Component,
|
|
46711
|
-
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"] }]
|
|
46712
46732
|
}], propDecorators: { responsibilityBulkUpload: [{
|
|
46713
46733
|
type: Input
|
|
46714
46734
|
}], fileName: [{
|
|
@@ -47623,6 +47643,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
47623
47643
|
type: Input
|
|
47624
47644
|
}] } });
|
|
47625
47645
|
|
|
47646
|
+
const REGIX = {
|
|
47647
|
+
MONTH: /^[A-Za-z]+'\d{2}$/,
|
|
47648
|
+
};
|
|
47649
|
+
|
|
47626
47650
|
class AddMultipleResponsibilityWithTabComponent {
|
|
47627
47651
|
set uploadedFileData(data) {
|
|
47628
47652
|
this.uploadedFile(data);
|
|
@@ -47989,6 +48013,9 @@ class AddMultipleResponsibilityWithTabComponent {
|
|
|
47989
48013
|
return false;
|
|
47990
48014
|
}
|
|
47991
48015
|
else {
|
|
48016
|
+
const monthFormatRegex = REGIX.MONTH;
|
|
48017
|
+
if (!monthFormatRegex.test(month))
|
|
48018
|
+
return false;
|
|
47992
48019
|
const monthAndYear = month.split("'");
|
|
47993
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');
|
|
47994
48021
|
if (startDate == 'Invalid date') {
|
|
@@ -48758,7 +48785,8 @@ class AddMultipleResponsibilityWithTabComponent {
|
|
|
48758
48785
|
!obj['isPastDate'] &&
|
|
48759
48786
|
obj?.frequency?.length &&
|
|
48760
48787
|
!Object.values(obj['userValidateWithProgram']).includes(false) &&
|
|
48761
|
-
obj['isValidUser']
|
|
48788
|
+
obj['isValidUser'] &&
|
|
48789
|
+
this.isValidRiskClass(obj?.reportClass);
|
|
48762
48790
|
return obj;
|
|
48763
48791
|
}
|
|
48764
48792
|
else {
|
|
@@ -48801,7 +48829,8 @@ class AddMultipleResponsibilityWithTabComponent {
|
|
|
48801
48829
|
obj['validDate'] &&
|
|
48802
48830
|
!obj['isPastDate'] &&
|
|
48803
48831
|
obj?.frequency?.length &&
|
|
48804
|
-
obj['isValidUser']
|
|
48832
|
+
obj['isValidUser'] &&
|
|
48833
|
+
this.isValidRiskClass(obj?.reportClass);
|
|
48805
48834
|
return obj;
|
|
48806
48835
|
}
|
|
48807
48836
|
break;
|
|
@@ -48844,7 +48873,8 @@ class AddMultipleResponsibilityWithTabComponent {
|
|
|
48844
48873
|
obj['isValid'] =
|
|
48845
48874
|
obj['isValidData'] &&
|
|
48846
48875
|
!Object.values(obj['userValidateWithProgram']).includes(false) &&
|
|
48847
|
-
obj['isValidUser']
|
|
48876
|
+
obj['isValidUser'] &&
|
|
48877
|
+
this.isValidRiskClass(obj?.reportClass);
|
|
48848
48878
|
return obj;
|
|
48849
48879
|
}
|
|
48850
48880
|
else {
|
|
@@ -48878,7 +48908,8 @@ class AddMultipleResponsibilityWithTabComponent {
|
|
|
48878
48908
|
obj['isValidUser'] = this.returnIds(obj?.assignee, 'entrusted_to')
|
|
48879
48909
|
? true
|
|
48880
48910
|
: false;
|
|
48881
|
-
obj['isValid'] = obj['isValidData'] && obj['isValidUser']
|
|
48911
|
+
obj['isValid'] = obj['isValidData'] && obj['isValidUser'] &&
|
|
48912
|
+
this.isValidRiskClass(obj?.reportClass);
|
|
48882
48913
|
return obj;
|
|
48883
48914
|
}
|
|
48884
48915
|
}
|
|
@@ -48923,7 +48954,8 @@ class AddMultipleResponsibilityWithTabComponent {
|
|
|
48923
48954
|
obj['isValidData'] &&
|
|
48924
48955
|
!Object.values(obj['userValidateWithProgram']).includes(false) &&
|
|
48925
48956
|
obj?.parentResponsibility?.length &&
|
|
48926
|
-
obj['isValidUser']
|
|
48957
|
+
obj['isValidUser'] &&
|
|
48958
|
+
this.isValidRiskClass(obj?.reportClass);
|
|
48927
48959
|
return obj;
|
|
48928
48960
|
}
|
|
48929
48961
|
else {
|
|
@@ -48962,7 +48994,8 @@ class AddMultipleResponsibilityWithTabComponent {
|
|
|
48962
48994
|
obj['isValid'] =
|
|
48963
48995
|
obj['isValidData'] &&
|
|
48964
48996
|
obj?.parentResponsibility?.length &&
|
|
48965
|
-
obj['isValidUser']
|
|
48997
|
+
obj['isValidUser'] &&
|
|
48998
|
+
this.isValidRiskClass(obj?.reportClass);
|
|
48966
48999
|
return obj;
|
|
48967
49000
|
}
|
|
48968
49001
|
}
|
|
@@ -48970,6 +49003,9 @@ class AddMultipleResponsibilityWithTabComponent {
|
|
|
48970
49003
|
}
|
|
48971
49004
|
}
|
|
48972
49005
|
}
|
|
49006
|
+
isValidRiskClass(riskClass) {
|
|
49007
|
+
return RISK_CLASS_LIST.includes(riskClass?.toLowerCase());
|
|
49008
|
+
}
|
|
48973
49009
|
/**
|
|
48974
49010
|
* It takes a string, removes all whitespace, and returns the string
|
|
48975
49011
|
* @param {any} name - the name of the responsibility
|
|
@@ -52579,7 +52615,8 @@ class VComplyWorkflowEngineModule {
|
|
|
52579
52615
|
ApprovalCreateFormComponent,
|
|
52580
52616
|
LinkProgramComponent,
|
|
52581
52617
|
TooltipValidationPipe,
|
|
52582
|
-
LinkRelatedPoliciesComponent
|
|
52618
|
+
LinkRelatedPoliciesComponent,
|
|
52619
|
+
RiskClassPipe], imports: [ReactiveFormsModule,
|
|
52583
52620
|
CreateAssessmentModule,
|
|
52584
52621
|
// MarxEditorModule,
|
|
52585
52622
|
VcomplyEditorModule,
|
|
@@ -52761,7 +52798,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
52761
52798
|
ApprovalCreateFormComponent,
|
|
52762
52799
|
LinkProgramComponent,
|
|
52763
52800
|
TooltipValidationPipe,
|
|
52764
|
-
LinkRelatedPoliciesComponent
|
|
52801
|
+
LinkRelatedPoliciesComponent,
|
|
52802
|
+
RiskClassPipe
|
|
52765
52803
|
],
|
|
52766
52804
|
imports: [
|
|
52767
52805
|
ReactiveFormsModule,
|