vcomply-workflow-engine 8.0.10 → 8.0.11

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.
@@ -46932,11 +46932,11 @@ class BulkResponsibilityViewComponent {
46932
46932
  this.cancel.emit();
46933
46933
  }
46934
46934
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: BulkResponsibilityViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
46935
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: BulkResponsibilityViewComponent, isStandalone: false, 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>&#xe932;</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>&#xe932;\n </i>\n\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>&#xe932;\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>&#xe932;\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>&#xe932;\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>&#xe932;</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>&#xe932;</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>&#xe932;</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>&#xe932;</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>&#xe932;</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>&#xe932;\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>&#xe932;\n </i>\n \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>&#xe932;\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>&#xe932;\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>&#xe932;\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>&#xe932;\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>&#xe932;\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>&#xe932;\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.seven-column]=\"tabType === 'frequency'\" [class.five-column]=\"tabType === 'onCompletion'\" [class.three-column]=\"tabType === 'ongoing'\">\n <div class=\"exel-view-row\">\n \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.seven-column]=\"tabType === 'frequency'\" [class.five-column]=\"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 <div class=\"exel-view-column\">Start Date <span class=\"info-text\">(Day)</span></div>\n <div class=\"exel-view-column\">Start Date <span class=\"info-text\">(Month)</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 \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 \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>&#xe932;</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 \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>&#xe932;\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>&#xe932;\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.seven-column]=\"tabType === 'frequency'\" [class.five-column]=\"tabType === 'onCompletion'\" [class.three-column]=\"tabType === 'ongoing'\">\n <ng-container *ngIf=\"tabType === 'frequency'\">\n <div class=\"exel-view-row multi-column\" [class.seven-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>&#xe932;</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]=\"report?.isDayInvalid ? VALIDATION_MESSAGES.DAY : VALIDATION_MESSAGES.DUE_DATE\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</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>&#xe932;</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]=\"report?.isDateFormatInvalid ? VALIDATION_MESSAGES.DATE_FORMAT : VALIDATION_MESSAGES.DUE_DATE\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</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>&#xe932;</i>\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\" [class.error]=\"!report?.validStartDate || report?.isStartDatePast || report?.isStartDateAfterDueDate\">{{report?.startDay}}\n <i *ngIf=\"report?.isStartDateAfterDueDate\" class=\"icons\" [appTooltip]=\"VALIDATION_MESSAGES.START_DATE_AFTER_DUE_DATE\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\n <i *ngIf=\"report?.isStartDatePast && !report?.isStartDateAfterDueDate\" class=\"icons\" [appTooltip]=\"VALIDATION_MESSAGES.START_DATE_PAST\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\n <i *ngIf=\"!report?.validStartDate && !report?.isStartDatePast && !report?.isStartDateAfterDueDate\" class=\"icons\" [appTooltip]=\"report?.isStartDayInvalid ? VALIDATION_MESSAGES.DAY : (report?.isStartDateFormatInvalid ? VALIDATION_MESSAGES.DATE_FORMAT : VALIDATION_MESSAGES.START_DATE)\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\n </div>\n <div class=\"exel-view-column\" [class.error]=\"!report?.validStartDate || report?.isStartDatePast || report?.isStartDateAfterDueDate\">{{report?.startMonth}}\n <i *ngIf=\"report?.isStartDateAfterDueDate\" class=\"icons\" [appTooltip]=\"VALIDATION_MESSAGES.START_DATE_AFTER_DUE_DATE\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\n <i *ngIf=\"report?.isStartDatePast && !report?.isStartDateAfterDueDate\" class=\"icons\" [appTooltip]=\"VALIDATION_MESSAGES.START_DATE_PAST\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\n <i *ngIf=\"!report?.validStartDate && !report?.isStartDatePast && !report?.isStartDateAfterDueDate\" class=\"icons\" [appTooltip]=\"report?.isStartDateFormatInvalid ? VALIDATION_MESSAGES.DATE_FORMAT : VALIDATION_MESSAGES.START_DATE\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\n </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>&#xe932;</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>&#xe932;</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>&#xe932;</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>&#xe932;</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 \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 \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>&#xe932;\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>&#xe932;\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>&#xe932;\n </i>\n </div>\n </div>\n </div>\n\n \n </div>\n\n\n\n\n\n\n <!-- ------------------------------------------------old code dynamic------------------------------------------------- -->\n\n \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 \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-multi\">Cancel</button>\n <button (click)=\"submit()\" id=\"bulk-resp-confirm-multi\" [disabled]=\"!isConfirmClickable\" class=\"blue\">Confirm</button>\n \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,.bulk-view-body.bulk .exel-view-row.seven-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-body.bulk .exel-view-column.seven-column{width:1400px;min-width:1400px!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" }] }); }
46935
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: BulkResponsibilityViewComponent, isStandalone: false, 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>&#xe932;</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>&#xe932;\n </i>\n\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>&#xe932;\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>&#xe932;\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>&#xe932;\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>&#xe932;</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>&#xe932;</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>&#xe932;</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>&#xe932;</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>&#xe932;</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>&#xe932;\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>&#xe932;\n </i>\n \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>&#xe932;\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>&#xe932;\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>&#xe932;\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>&#xe932;\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>&#xe932;\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>&#xe932;\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.seven-column]=\"tabType === 'frequency'\" [class.five-column]=\"tabType === 'onCompletion'\" [class.three-column]=\"tabType === 'ongoing'\">\n <div class=\"exel-view-row\">\n \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.seven-column]=\"tabType === 'frequency'\" [class.five-column]=\"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 <div class=\"exel-view-column\">Start Date <span class=\"info-text\">(Day)</span></div>\n <div class=\"exel-view-column\">Start Date <span class=\"info-text\">(Month)</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 \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 \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>&#xe932;</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 \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>&#xe932;\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>&#xe932;\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.seven-column]=\"tabType === 'frequency'\" [class.five-column]=\"tabType === 'onCompletion'\" [class.three-column]=\"tabType === 'ongoing'\">\n <ng-container *ngIf=\"tabType === 'frequency'\">\n <div class=\"exel-view-row multi-column\" [class.seven-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>&#xe932;</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]=\"report?.isDayInvalid ? VALIDATION_MESSAGES.DAY : VALIDATION_MESSAGES.DUE_DATE\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</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>&#xe932;</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]=\"report?.isDateFormatInvalid ? VALIDATION_MESSAGES.DATE_FORMAT : VALIDATION_MESSAGES.DUE_DATE\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</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>&#xe932;</i>\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\" [class.error]=\"!report?.validStartDate || report?.isStartPastDate || !report?.isValidTimeLine\">{{report?.startDay}}\n <i *ngIf=\"!report?.validStartDate && !report?.isStartPastDate\" class=\"icons\" [appTooltip]=\"VALIDATION_MESSAGES.START_DATE\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\n <i *ngIf=\"report?.isStartPastDate\" class=\"icons\" [appTooltip]=\"VALIDATION_MESSAGES.START_DATE_PAST\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\n <i *ngIf=\"report?.validStartDate && !report?.isStartPastDate && !report?.isValidTimeLine\" class=\"icons\" [appTooltip]=\"VALIDATION_MESSAGES.START_DATE_AFTER_DUE_DATE\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\n </div>\n <div class=\"exel-view-column\" [class.error]=\"!report?.validStartDate || report?.isStartPastDate || !report?.isValidTimeLine\">{{report?.startMonth}}\n <i *ngIf=\"!report?.validStartDate && !report?.isStartPastDate\" class=\"icons\" [appTooltip]=\"VALIDATION_MESSAGES.DATE_FORMAT\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\n <i *ngIf=\"report?.isStartPastDate\" class=\"icons\" [appTooltip]=\"VALIDATION_MESSAGES.START_DATE_PAST\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\n <i *ngIf=\"report?.validStartDate && !report?.isStartPastDate && !report?.isValidTimeLine\" class=\"icons\" [appTooltip]=\"VALIDATION_MESSAGES.START_DATE_AFTER_DUE_DATE\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\n </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>&#xe932;</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>&#xe932;</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>&#xe932;</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>&#xe932;</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 \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 \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>&#xe932;\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>&#xe932;\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>&#xe932;\n </i>\n </div>\n </div>\n </div>\n\n \n </div>\n\n\n\n\n\n\n <!-- ------------------------------------------------old code dynamic------------------------------------------------- -->\n\n \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 \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-multi\">Cancel</button>\n <button (click)=\"submit()\" id=\"bulk-resp-confirm-multi\" [disabled]=\"!isConfirmClickable\" class=\"blue\">Confirm</button>\n \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,.bulk-view-body.bulk .exel-view-row.seven-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-body.bulk .exel-view-column.seven-column{width:1400px;min-width:1400px!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" }] }); }
46936
46936
  }
46937
46937
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: BulkResponsibilityViewComponent, decorators: [{
46938
46938
  type: Component,
46939
- args: [{ selector: 'app-bulk-responsibility-view', standalone: false, 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>&#xe932;</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>&#xe932;\n </i>\n\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>&#xe932;\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>&#xe932;\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>&#xe932;\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>&#xe932;</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>&#xe932;</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>&#xe932;</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>&#xe932;</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>&#xe932;</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>&#xe932;\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>&#xe932;\n </i>\n \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>&#xe932;\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>&#xe932;\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>&#xe932;\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>&#xe932;\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>&#xe932;\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>&#xe932;\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.seven-column]=\"tabType === 'frequency'\" [class.five-column]=\"tabType === 'onCompletion'\" [class.three-column]=\"tabType === 'ongoing'\">\n <div class=\"exel-view-row\">\n \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.seven-column]=\"tabType === 'frequency'\" [class.five-column]=\"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 <div class=\"exel-view-column\">Start Date <span class=\"info-text\">(Day)</span></div>\n <div class=\"exel-view-column\">Start Date <span class=\"info-text\">(Month)</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 \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 \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>&#xe932;</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 \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>&#xe932;\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>&#xe932;\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.seven-column]=\"tabType === 'frequency'\" [class.five-column]=\"tabType === 'onCompletion'\" [class.three-column]=\"tabType === 'ongoing'\">\n <ng-container *ngIf=\"tabType === 'frequency'\">\n <div class=\"exel-view-row multi-column\" [class.seven-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>&#xe932;</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]=\"report?.isDayInvalid ? VALIDATION_MESSAGES.DAY : VALIDATION_MESSAGES.DUE_DATE\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</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>&#xe932;</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]=\"report?.isDateFormatInvalid ? VALIDATION_MESSAGES.DATE_FORMAT : VALIDATION_MESSAGES.DUE_DATE\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</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>&#xe932;</i>\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\" [class.error]=\"!report?.validStartDate || report?.isStartDatePast || report?.isStartDateAfterDueDate\">{{report?.startDay}}\n <i *ngIf=\"report?.isStartDateAfterDueDate\" class=\"icons\" [appTooltip]=\"VALIDATION_MESSAGES.START_DATE_AFTER_DUE_DATE\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\n <i *ngIf=\"report?.isStartDatePast && !report?.isStartDateAfterDueDate\" class=\"icons\" [appTooltip]=\"VALIDATION_MESSAGES.START_DATE_PAST\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\n <i *ngIf=\"!report?.validStartDate && !report?.isStartDatePast && !report?.isStartDateAfterDueDate\" class=\"icons\" [appTooltip]=\"report?.isStartDayInvalid ? VALIDATION_MESSAGES.DAY : (report?.isStartDateFormatInvalid ? VALIDATION_MESSAGES.DATE_FORMAT : VALIDATION_MESSAGES.START_DATE)\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\n </div>\n <div class=\"exel-view-column\" [class.error]=\"!report?.validStartDate || report?.isStartDatePast || report?.isStartDateAfterDueDate\">{{report?.startMonth}}\n <i *ngIf=\"report?.isStartDateAfterDueDate\" class=\"icons\" [appTooltip]=\"VALIDATION_MESSAGES.START_DATE_AFTER_DUE_DATE\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\n <i *ngIf=\"report?.isStartDatePast && !report?.isStartDateAfterDueDate\" class=\"icons\" [appTooltip]=\"VALIDATION_MESSAGES.START_DATE_PAST\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\n <i *ngIf=\"!report?.validStartDate && !report?.isStartDatePast && !report?.isStartDateAfterDueDate\" class=\"icons\" [appTooltip]=\"report?.isStartDateFormatInvalid ? VALIDATION_MESSAGES.DATE_FORMAT : VALIDATION_MESSAGES.START_DATE\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\n </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>&#xe932;</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>&#xe932;</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>&#xe932;</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>&#xe932;</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 \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 \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>&#xe932;\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>&#xe932;\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>&#xe932;\n </i>\n </div>\n </div>\n </div>\n\n \n </div>\n\n\n\n\n\n\n <!-- ------------------------------------------------old code dynamic------------------------------------------------- -->\n\n \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 \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-multi\">Cancel</button>\n <button (click)=\"submit()\" id=\"bulk-resp-confirm-multi\" [disabled]=\"!isConfirmClickable\" class=\"blue\">Confirm</button>\n \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,.bulk-view-body.bulk .exel-view-row.seven-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-body.bulk .exel-view-column.seven-column{width:1400px;min-width:1400px!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"] }]
46939
+ args: [{ selector: 'app-bulk-responsibility-view', standalone: false, 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>&#xe932;</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>&#xe932;\n </i>\n\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>&#xe932;\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>&#xe932;\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>&#xe932;\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>&#xe932;</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>&#xe932;</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>&#xe932;</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>&#xe932;</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>&#xe932;</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>&#xe932;\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>&#xe932;\n </i>\n \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>&#xe932;\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>&#xe932;\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>&#xe932;\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>&#xe932;\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>&#xe932;\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>&#xe932;\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.seven-column]=\"tabType === 'frequency'\" [class.five-column]=\"tabType === 'onCompletion'\" [class.three-column]=\"tabType === 'ongoing'\">\n <div class=\"exel-view-row\">\n \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.seven-column]=\"tabType === 'frequency'\" [class.five-column]=\"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 <div class=\"exel-view-column\">Start Date <span class=\"info-text\">(Day)</span></div>\n <div class=\"exel-view-column\">Start Date <span class=\"info-text\">(Month)</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 \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 \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>&#xe932;</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 \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>&#xe932;\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>&#xe932;\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.seven-column]=\"tabType === 'frequency'\" [class.five-column]=\"tabType === 'onCompletion'\" [class.three-column]=\"tabType === 'ongoing'\">\n <ng-container *ngIf=\"tabType === 'frequency'\">\n <div class=\"exel-view-row multi-column\" [class.seven-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>&#xe932;</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]=\"report?.isDayInvalid ? VALIDATION_MESSAGES.DAY : VALIDATION_MESSAGES.DUE_DATE\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</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>&#xe932;</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]=\"report?.isDateFormatInvalid ? VALIDATION_MESSAGES.DATE_FORMAT : VALIDATION_MESSAGES.DUE_DATE\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</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>&#xe932;</i>\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\" [class.error]=\"!report?.validStartDate || report?.isStartPastDate || !report?.isValidTimeLine\">{{report?.startDay}}\n <i *ngIf=\"!report?.validStartDate && !report?.isStartPastDate\" class=\"icons\" [appTooltip]=\"VALIDATION_MESSAGES.START_DATE\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\n <i *ngIf=\"report?.isStartPastDate\" class=\"icons\" [appTooltip]=\"VALIDATION_MESSAGES.START_DATE_PAST\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\n <i *ngIf=\"report?.validStartDate && !report?.isStartPastDate && !report?.isValidTimeLine\" class=\"icons\" [appTooltip]=\"VALIDATION_MESSAGES.START_DATE_AFTER_DUE_DATE\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\n </div>\n <div class=\"exel-view-column\" [class.error]=\"!report?.validStartDate || report?.isStartPastDate || !report?.isValidTimeLine\">{{report?.startMonth}}\n <i *ngIf=\"!report?.validStartDate && !report?.isStartPastDate\" class=\"icons\" [appTooltip]=\"VALIDATION_MESSAGES.DATE_FORMAT\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\n <i *ngIf=\"report?.isStartPastDate\" class=\"icons\" [appTooltip]=\"VALIDATION_MESSAGES.START_DATE_PAST\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\n <i *ngIf=\"report?.validStartDate && !report?.isStartPastDate && !report?.isValidTimeLine\" class=\"icons\" [appTooltip]=\"VALIDATION_MESSAGES.START_DATE_AFTER_DUE_DATE\"\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\n </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>&#xe932;</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>&#xe932;</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>&#xe932;</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>&#xe932;</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 \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 \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>&#xe932;\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>&#xe932;\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>&#xe932;\n </i>\n </div>\n </div>\n </div>\n\n \n </div>\n\n\n\n\n\n\n <!-- ------------------------------------------------old code dynamic------------------------------------------------- -->\n\n \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 \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-multi\">Cancel</button>\n <button (click)=\"submit()\" id=\"bulk-resp-confirm-multi\" [disabled]=\"!isConfirmClickable\" class=\"blue\">Confirm</button>\n \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,.bulk-view-body.bulk .exel-view-row.seven-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-body.bulk .exel-view-column.seven-column{width:1400px;min-width:1400px!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"] }]
46940
46940
  }], propDecorators: { responsibilityBulkUpload: [{
46941
46941
  type: Input
46942
46942
  }], fileName: [{
@@ -48266,44 +48266,10 @@ class AddMultipleResponsibilityWithTabComponent {
48266
48266
  }
48267
48267
  }
48268
48268
  }
48269
- getStartDateValidation(day, month) {
48270
- const validation = {
48271
- validStartDate: true,
48272
- isStartDatePast: false,
48273
- isStartDayInvalid: false,
48274
- isStartDateFormatInvalid: false,
48275
- };
48276
- if (!(day || month)) {
48277
- return validation;
48278
- }
48279
- if (!(day && month)) {
48280
- validation.validStartDate = false;
48281
- return validation;
48282
- }
48283
- const monthFormatRegex = REGEX.MONTH;
48284
- if (!monthFormatRegex.test(month)) {
48285
- validation.isStartDateFormatInvalid = true;
48286
- validation.validStartDate = false;
48287
- return validation;
48288
- }
48289
- if (!(day > 0 && day < 32)) {
48290
- validation.isStartDayInvalid = true;
48291
- validation.validStartDate = false;
48292
- return validation;
48293
- }
48294
- const monthAndYear = month.split("'");
48295
- const parsedStartDate = moment$1(day + '-' + monthAndYear[0] + '-' + 20 + monthAndYear[1] + ' 00:00:00', 'DD-MMMM-YYYY HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');
48296
- if (parsedStartDate == 'Invalid date') {
48297
- validation.isStartDayInvalid = true;
48298
- validation.validStartDate = false;
48299
- return validation;
48300
- }
48301
- if (this.isPastDate(day, month)) {
48302
- validation.isStartDatePast = true;
48303
- validation.validStartDate = false;
48304
- }
48305
- return validation;
48306
- }
48269
+ /**
48270
+ * Converts bulk-upload day/month values (e.g. 15 and "June'26") into a moment date.
48271
+ * Used when comparing Start Date against Due Date during frequency responsibility validation.
48272
+ */
48307
48273
  parseBulkUploadDate(day, month) {
48308
48274
  if (!(day && month)) {
48309
48275
  return null;
@@ -48312,31 +48278,20 @@ class AddMultipleResponsibilityWithTabComponent {
48312
48278
  const parsedDate = moment$1(day + '-' + monthAndYear[0] + '-' + 20 + monthAndYear[1] + ' 00:00:00', 'DD-MMMM-YYYY HH:mm:ss');
48313
48279
  return parsedDate.isValid() ? parsedDate : null;
48314
48280
  }
48315
- isStartDateAfterDueDate(startDay, startMonth, dueDay, dueMonth) {
48281
+ /**
48282
+ * Ensures the responsibility Start Date does not fall after the Due Date.
48283
+ * Returns true when Start Date is omitted, or when it is on/before the Due Date.
48284
+ */
48285
+ validateTimeLine(startDay, startMonth, day, month) {
48286
+ if (!(startDay || startMonth)) {
48287
+ return true;
48288
+ }
48316
48289
  const startDate = this.parseBulkUploadDate(startDay, startMonth);
48317
- const dueDate = this.parseBulkUploadDate(dueDay, dueMonth);
48290
+ const dueDate = this.parseBulkUploadDate(day, month);
48318
48291
  if (!startDate || !dueDate) {
48319
48292
  return false;
48320
48293
  }
48321
- return startDate.isAfter(dueDate, 'day');
48322
- }
48323
- applyStartDateValidation(obj) {
48324
- const startDateValidation = this.getStartDateValidation(obj?.startDay, obj?.startMonth);
48325
- obj['validStartDate'] = startDateValidation.validStartDate;
48326
- obj['isStartDatePast'] = startDateValidation.isStartDatePast;
48327
- obj['isStartDayInvalid'] = startDateValidation.isStartDayInvalid;
48328
- obj['isStartDateFormatInvalid'] =
48329
- startDateValidation.isStartDateFormatInvalid;
48330
- obj['isStartDateAfterDueDate'] = false;
48331
- if (startDateValidation.validStartDate &&
48332
- !startDateValidation.isStartDatePast &&
48333
- obj?.day &&
48334
- obj?.month) {
48335
- obj['isStartDateAfterDueDate'] = this.isStartDateAfterDueDate(obj?.startDay, obj?.startMonth, obj?.day, obj?.month);
48336
- if (obj['isStartDateAfterDueDate']) {
48337
- obj['validStartDate'] = false;
48338
- }
48339
- }
48294
+ return startDate.isSameOrBefore(dueDate, 'day');
48340
48295
  }
48341
48296
  downloadTemplate() {
48342
48297
  this.downloadStatus = 'DOWNLOADING';
@@ -49017,14 +48972,16 @@ class AddMultipleResponsibilityWithTabComponent {
49017
48972
  obj['isDateFormatInvalid'] = this.isDateFormatInvalid;
49018
48973
  obj['isDayInvalid'] = this.isDayInvalid;
49019
48974
  obj['isPastDate'] = this.isPastDate(obj?.day, obj?.month);
49020
- this.applyStartDateValidation(obj);
48975
+ obj['validStartDate'] = this.compareWithCurrentDate(obj?.startDay, obj?.startMonth);
48976
+ obj['isStartPastDate'] = this.isPastDate(obj?.startDay, obj?.startMonth);
48977
+ obj['isValidTimeLine'] = this.validateTimeLine(obj?.startDay, obj?.startMonth, obj?.day, obj?.month);
49021
48978
  obj['isValid'] =
49022
48979
  obj['isValidData'] &&
49023
48980
  obj['validDate'] &&
49024
48981
  !obj['isPastDate'] &&
49025
48982
  obj['validStartDate'] &&
49026
- !obj['isStartDatePast'] &&
49027
- !obj['isStartDateAfterDueDate'] &&
48983
+ !obj['isStartPastDate'] &&
48984
+ obj['isValidTimeLine'] &&
49028
48985
  obj?.frequency?.length &&
49029
48986
  !Object.values(obj['userValidateWithProgram']).includes(false) &&
49030
48987
  obj['isValidUser'] &&
@@ -49066,14 +49023,16 @@ class AddMultipleResponsibilityWithTabComponent {
49066
49023
  : false;
49067
49024
  obj['validDate'] = this.compareWithCurrentDate(obj?.day, obj?.month);
49068
49025
  obj['isPastDate'] = this.isPastDate(obj?.day, obj?.month);
49069
- this.applyStartDateValidation(obj);
49026
+ obj['validStartDate'] = this.compareWithCurrentDate(obj?.startDay, obj?.startMonth);
49027
+ obj['isStartPastDate'] = this.isPastDate(obj?.startDay, obj?.startMonth);
49028
+ obj['isValidTimeLine'] = this.validateTimeLine(obj?.startDay, obj?.startMonth, obj?.day, obj?.month);
49070
49029
  obj['isValid'] =
49071
49030
  obj['isValidData'] &&
49072
49031
  obj['validDate'] &&
49073
49032
  !obj['isPastDate'] &&
49074
49033
  obj['validStartDate'] &&
49075
- !obj['isStartDatePast'] &&
49076
- !obj['isStartDateAfterDueDate'] &&
49034
+ !obj['isStartPastDate'] &&
49035
+ obj['isValidTimeLine'] &&
49077
49036
  obj?.frequency?.length &&
49078
49037
  obj['isValidUser'] &&
49079
49038
  this.isValidRiskClass(obj?.reportClass);