vcomply-workflow-engine 2.4.47 → 2.4.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/vcomply-workflow-engine.umd.js +47 -39
- package/bundles/vcomply-workflow-engine.umd.js.map +1 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/add-page-details/add-page-details.component.js +6 -1
- package/esm2015/lib/sharedComponents/assessment-editor/services/validator.service.js +10 -7
- package/esm2015/lib/sharedComponents/program-listing/program-listing.component.js +4 -4
- package/esm2015/lib/sharedComponents/responsibility-centers-list/responsibility-centers-list.component.js +2 -2
- package/esm2015/lib/sharedComponents/responsibility-centers-list/responsibility-centers-list.component.ngfactory.js +2 -2
- package/esm2015/lib/workflow-compliance/workflow-compliance.component.js +5 -5
- package/esm2015/lib/workflow-engine.module.ngfactory.js +1 -1
- package/esm2015/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.js +2 -2
- package/esm2015/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.ngfactory.js +2 -2
- package/esm2015/lib/workflow-program/workflow-program.component.js +2 -2
- package/esm2015/lib/workflow-program/workflow-program.component.ngfactory.js +2 -2
- package/fesm2015/vcomply-workflow-engine.js +24 -16
- package/fesm2015/vcomply-workflow-engine.js.map +1 -1
- package/lib/sharedComponents/assessment-editor/components/add-page-details/add-page-details.component.d.ts +1 -0
- package/package.json +2 -2
- package/vcomply-workflow-engine.metadata.json +1 -1
|
@@ -3210,7 +3210,7 @@
|
|
|
3210
3210
|
WorkflowComplianceComponent.prototype.getEditResponsibilityDetails = function (id) {
|
|
3211
3211
|
var _this = this;
|
|
3212
3212
|
this.responsibilityService.editResponsibility(id).subscribe(function (res) {
|
|
3213
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
|
|
3213
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
|
|
3214
3214
|
_this.isDuplicateEntrust = true;
|
|
3215
3215
|
if (res) {
|
|
3216
3216
|
var currentUser = (_a = _this.authService.getUserDetails()) === null || _a === void 0 ? void 0 : _a.user;
|
|
@@ -3275,7 +3275,7 @@
|
|
|
3275
3275
|
riskClass: res === null || res === void 0 ? void 0 : res.risk_class,
|
|
3276
3276
|
riskMatrix: res === null || res === void 0 ? void 0 : res.risk_matrix_data
|
|
3277
3277
|
};
|
|
3278
|
-
_this.selectedProgram = (res === null || res === void 0 ? void 0 : res.programDetails) ? res.programDetails : undefined;
|
|
3278
|
+
_this.selectedProgram = ((_t = res === null || res === void 0 ? void 0 : res.programDetails) === null || _t === void 0 ? void 0 : _t.category_id) ? res.programDetails : undefined;
|
|
3279
3279
|
_this.isNotificationPending = res.notification_pending;
|
|
3280
3280
|
if (_this.isNotificationPending) {
|
|
3281
3281
|
_this.actionButtons[1].buttonText = 'View Responsibilities in Queue';
|
|
@@ -3298,7 +3298,7 @@
|
|
|
3298
3298
|
_this.organizationId = _this.authService.getOrganizationId();
|
|
3299
3299
|
_this.memberId = _this.authService.getMemberId();
|
|
3300
3300
|
}
|
|
3301
|
-
if (((
|
|
3301
|
+
if (((_u = _this.responsibilityForm.assignees.list) === null || _u === void 0 ? void 0 : _u.length) === 0) {
|
|
3302
3302
|
_this.isEntrust = true;
|
|
3303
3303
|
_this.mode = 'CREATE';
|
|
3304
3304
|
_this.assigneeRadioSelect = false;
|
|
@@ -3327,7 +3327,7 @@
|
|
|
3327
3327
|
frequency_time: ''
|
|
3328
3328
|
};
|
|
3329
3329
|
}
|
|
3330
|
-
if ((
|
|
3330
|
+
if ((_v = res.assessment) === null || _v === void 0 ? void 0 : _v.assessment_id) {
|
|
3331
3331
|
_this.getAssessmentDetails(res.assessment, res.questionnaire_type);
|
|
3332
3332
|
}
|
|
3333
3333
|
if (!_this.responsibilityForm.checkpoints) {
|
|
@@ -7320,7 +7320,7 @@
|
|
|
7320
7320
|
ResponsibilityCentersListComponent.decorators = [
|
|
7321
7321
|
{ type: i0.Component, args: [{
|
|
7322
7322
|
selector: 'app-responsibility-centers-list',
|
|
7323
|
-
template: "<div class=\"add-risk-rc\" [class.animate]=\"animation\">\r\n <div class=\"add-risk-rc-head\">\r\n <h3 class=\"add-risk-rc-title\">Select Responsibility Center(s)</h3>\r\n </div>\r\n <div class=\"add-risk-rc-body\">\r\n <div class=\"search-block\">\r\n <i class=\"icons\"></i>\r\n <input type=\"text\" [(ngModel)]=\"search\" placeholder=\"Search Responsibility Center\" />\r\n </div>\r\n <!-- <app-workflow-pagination></app-workflow-pagination> -->\r\n <ng-container *ngIf=\"(responsibilityCentersList | filter:search) as searchList\">\r\n <div class=\"body-top\" *ngIf=\"!radioSelection && (searchList?.length > 0 && search?.trim()?.length === 0)\">\r\n <app-cs-checkbox [ngValue]=\"checkSelectAll()\" (ngValueChange)=\"selectAll($event)\"><strong>{{checkSelectAll() ? 'Deselect All' : 'Select All'}}</strong>\r\n </app-cs-checkbox>\r\n </div>\r\n\r\n <ul class=\"add-risk-rc-list\" *ngIf=\"searchList?.length > 0\">\r\n <ng-container *ngIf=\"!radioSelection\">\r\n <li *ngFor=\"let rc of searchList\" #ulElement>\r\n <app-cs-checkbox [ngValue]=\"selectedIds.includes(rc.item_id)\" (ngValueChange)=\"selectRc(rc.item_id,$event)\">\r\n <ul class=\"add-risk-rc-name\" #listBlock>\r\n <!-- [style.max-width.px]=\"blockWidth / rc.rc_name\" -->\r\n <li\r\n *ngFor=\"let entity of rc.rc_name; let j = index\"\r\n [appTooltip]=\"entity\"\r\n placement=\"bottom\"\r\n type=\"black\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"true\">\r\n <i class=\"icons\" *ngIf=\"j !== 0\"></i>{{ entity }}\r\n </li>\r\n </ul>\r\n </app-cs-checkbox>\r\n </li>\r\n </ng-container>\r\n <ng-container *ngIf=\"radioSelection\">\r\n <li *ngFor=\"let rc of searchList\" #ulElement>\r\n <app-cs-radio (checkedEvent)=\"selectRc(rc.item_id,$event)\"\r\n [checked]=\"selectedIds.includes(rc.item_id)\">\r\n <ul class=\"add-risk-rc-name\">\r\n <li\r\n *ngFor=\"let entity of rc.rc_name; let j = index\"\r\n [appTooltip]=\"entity\"\r\n placement=\"bottom\"\r\n type=\"black\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"true\">\r\n <i class=\"icons\" *ngIf=\"j !== 0\"></i>{{ entity }}\r\n </li>\r\n </ul>\r\n </app-cs-radio>\r\n </li>\r\n </ng-container>\r\n\r\n </ul>\r\n <app-no-data *ngIf=\"searchList?.length === 0\" [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"'No
|
|
7323
|
+
template: "<div class=\"add-risk-rc\" [class.animate]=\"animation\">\r\n <div class=\"add-risk-rc-head\">\r\n <h3 class=\"add-risk-rc-title\">Select Responsibility Center(s)</h3>\r\n </div>\r\n <div class=\"add-risk-rc-body\">\r\n <div class=\"search-block\">\r\n <i class=\"icons\"></i>\r\n <input type=\"text\" [(ngModel)]=\"search\" placeholder=\"Search Responsibility Center\" />\r\n </div>\r\n <!-- <app-workflow-pagination></app-workflow-pagination> -->\r\n <ng-container *ngIf=\"(responsibilityCentersList | filter:search) as searchList\">\r\n <div class=\"body-top\" *ngIf=\"!radioSelection && (searchList?.length > 0 && search?.trim()?.length === 0)\">\r\n <app-cs-checkbox [ngValue]=\"checkSelectAll()\" (ngValueChange)=\"selectAll($event)\"><strong>{{checkSelectAll() ? 'Deselect All' : 'Select All'}}</strong>\r\n </app-cs-checkbox>\r\n </div>\r\n\r\n <ul class=\"add-risk-rc-list\" *ngIf=\"searchList?.length > 0\">\r\n <ng-container *ngIf=\"!radioSelection\">\r\n <li *ngFor=\"let rc of searchList\" #ulElement>\r\n <app-cs-checkbox [ngValue]=\"selectedIds.includes(rc.item_id)\" (ngValueChange)=\"selectRc(rc.item_id,$event)\">\r\n <ul class=\"add-risk-rc-name\" #listBlock>\r\n <!-- [style.max-width.px]=\"blockWidth / rc.rc_name\" -->\r\n <li\r\n *ngFor=\"let entity of rc.rc_name; let j = index\"\r\n [appTooltip]=\"entity\"\r\n placement=\"bottom\"\r\n type=\"black\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"true\">\r\n <i class=\"icons\" *ngIf=\"j !== 0\"></i>{{ entity }}\r\n </li>\r\n </ul>\r\n </app-cs-checkbox>\r\n </li>\r\n </ng-container>\r\n <ng-container *ngIf=\"radioSelection\">\r\n <li *ngFor=\"let rc of searchList\" #ulElement>\r\n <app-cs-radio (checkedEvent)=\"selectRc(rc.item_id,$event)\"\r\n [checked]=\"selectedIds.includes(rc.item_id)\">\r\n <ul class=\"add-risk-rc-name\">\r\n <li\r\n *ngFor=\"let entity of rc.rc_name; let j = index\"\r\n [appTooltip]=\"entity\"\r\n placement=\"bottom\"\r\n type=\"black\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"true\">\r\n <i class=\"icons\" *ngIf=\"j !== 0\"></i>{{ entity }}\r\n </li>\r\n </ul>\r\n </app-cs-radio>\r\n </li>\r\n </ng-container>\r\n\r\n </ul>\r\n <app-no-data *ngIf=\"searchList?.length === 0\" [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"'No data to display'\"></app-no-data>\r\n </ng-container>\r\n </div>\r\n <app-floating-bar\r\n [selectedData]=\"selectedResponsibilityCenters\"\r\n [displayElementKey]=\"'item_name'\"\r\n [singularText]=\"singularText\"\r\n [pluralText]=\"pluralText\"\r\n (closeEvent)=\"save(selectedIds)\"\r\n (deleteEvent)=\"deleteEvent($event)\" (closeList)=\"close()\"\r\n [isDisabled]=\"selectedResponsibilityCenters?.length === 0 || responsibilityCentersList?.length === 0\"></app-floating-bar>\r\n\r\n</div>\r\n\r\n<!-- <button (click)=\"save(selectedIds)\">Next</button> -->\r\n",
|
|
7324
7324
|
styles: ["@import url(\"https://cdn.v-comply.com/design-system/css/icons/icons.css\");::-webkit-scrollbar-track{background-color:#f1f1f1;position:absolute}::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}::ng-deep .add-risk-rc{border-top:3px solid #1e5dd3;position:fixed;top:0;right:500px;bottom:0;left:0}::ng-deep .add-risk-rc-head{background:#fbfbfb;height:42px;padding:0 18px;display:flex;justify-content:space-between;align-items:center;border:1px solid #f1f1f1;border-right:none}::ng-deep .add-risk-rc-title{color:#161b2f;font-size:15px;font-weight:500;margin:0!important;padding:0;line-height:21px}::ng-deep .add-risk-rc-close{background:transparent;border:none;outline:none;cursor:pointer;color:#000;font-size:12px;display:inline-block;padding:0}::ng-deep .add-risk-rc-body{padding:24px 36px 16px;height:calc(100vh - 112px)}::ng-deep .add-risk-rc-body .search-block{position:relative}::ng-deep .add-risk-rc-body .search-block input{height:44px;line-height:24px;padding:10px 15px 10px 40px;outline:none;border:1px solid #7475763f;border-radius:4px;width:100%;font-size:14px;color:#747576}::ng-deep .add-risk-rc-body .search-block input:focus{border-color:#1e5dd3}::ng-deep .add-risk-rc-body .search-block i{position:absolute;left:17px;font-size:12px;font-weight:400;top:17px;pointer-events:none;color:#f1f1f1}::ng-deep .add-risk-rc-body .body-top{display:flex;justify-content:space-between;padding:16px 0 0}::ng-deep .add-risk-rc-body .body-top app-cs-checkbox{display:flex}::ng-deep .add-risk-rc-body .body-top app-cs-checkbox label span.value strong{color:#161b2f;font-size:14px;font-weight:600;white-space:nowrap}::ng-deep .add-risk-rc-body ul{padding:0;margin:0}::ng-deep .add-risk-rc-body ul.add-risk-rc-list{display:block;align-items:flex-start;flex-wrap:wrap;max-height:calc(100vh - 248px);min-height:calc(100vh - 248px);overflow:auto;padding:16px 0 0}::ng-deep .add-risk-rc-body ul.add-risk-rc-list li{width:100%;padding:0 0 16px;list-style:none}::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-checkbox,::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-radio{display:flex}::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-checkbox label,::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-radio label{width:100%}::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-checkbox label span.value,::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-radio label span.value{width:auto;justify-content:flex-start;line-height:18px!important}::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-checkbox ul.add-risk-rc-name,::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-radio ul.add-risk-rc-name{display:flex;justify-content:flex-start;width:auto;max-width:100%}::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-checkbox ul.add-risk-rc-name li,::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-radio ul.add-risk-rc-name li{list-style:none;color:#747576;font-size:14px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;width:auto;padding:0 8px 0 0;max-width:100%}::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-checkbox ul.add-risk-rc-name li i,::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-radio ul.add-risk-rc-name li i{font-size:8px;padding-right:8px}::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-checkbox ul.add-risk-rc-name li:first-child,::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-radio ul.add-risk-rc-name li:first-child{color:#4681ef;max-width:100%}::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-checkbox ul.add-risk-rc-name li:last-of-type,::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-radio ul.add-risk-rc-name li:last-of-type{color:#66bf72}::ng-deep .add-risk-rc-body app-no-data .no-data-wrapper{height:calc(100vh - 92px)}::ng-deep .add-risk-rc.animate{-webkit-animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;z-index:-1}::ng-deep .add-risk-rc .message-footer{background:#1e5dd3;border-radius:5px;margin:0 0 0 30px;width:calc(100% - 60px);position:relative;bottom:0}::ng-deep .add-risk-rc .message-footer .message{padding:15px;display:flex;align-items:flex-start}::ng-deep .add-risk-rc .message-footer .message i{width:auto;font-size:16px;color:#fff}::ng-deep .add-risk-rc .message-footer .message span{color:#fff;font-size:12px;line-height:18px;padding-left:9px;font-weight:300}::ng-deep .add-risk-rc .message-footer .footer{border-top:1px solid #1483ef;display:flex;justify-content:space-between;align-items:center;padding:10px 15px}::ng-deep .add-risk-rc .message-footer .footer span{color:#fff;font-size:14px}::ng-deep .add-risk-rc .message-footer .footer .button-wrapper{display:flex}::ng-deep .add-risk-rc .message-footer .footer .button-wrapper button{width:60px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:11px;font-weight:500;border:1px solid #fff;text-transform:uppercase;border-radius:2px;outline:none;padding:0;margin:0}::ng-deep .add-risk-rc .message-footer .footer .button-wrapper button.outline{background:#1e5dd3;color:#fff}::ng-deep .add-risk-rc .message-footer .footer .button-wrapper button.fill{background:#fff;color:#1e5dd3}@-webkit-keyframes animate-right{0%{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes animate-right{0%{transform:translateX(100%)}to{transform:translateX(0)}}"]
|
|
7325
7325
|
},] }
|
|
7326
7326
|
];
|
|
@@ -18045,6 +18045,7 @@
|
|
|
18045
18045
|
this.fd = (_a = config.data) === null || _a === void 0 ? void 0 : _a.ref;
|
|
18046
18046
|
}
|
|
18047
18047
|
AddPageDetailsComponent.prototype.ngOnInit = function () {
|
|
18048
|
+
this.tempPageDetails = JSON.stringify(this.config.data);
|
|
18048
18049
|
this.pageDetails.pageNumber = this.config.data.page;
|
|
18049
18050
|
this.pageDetails.pageName = this.config.data.pageDetails.pageName;
|
|
18050
18051
|
this.pageDetails.pageDescription = this.config.data.pageDetails.pageDescription;
|
|
@@ -18087,7 +18088,11 @@
|
|
|
18087
18088
|
}
|
|
18088
18089
|
};
|
|
18089
18090
|
AddPageDetailsComponent.prototype.cancelPageDetails = function () {
|
|
18091
|
+
var _a, _b;
|
|
18090
18092
|
//this.cancel.emit();
|
|
18093
|
+
this.pageDetails = (_a = JSON.parse(this.tempPageDetails)) === null || _a === void 0 ? void 0 : _a.pageDetails;
|
|
18094
|
+
this.fd.currentPageDetails = (_b = JSON.parse(this.tempPageDetails)) === null || _b === void 0 ? void 0 : _b.pageDetails;
|
|
18095
|
+
this.populatePageDetailsList();
|
|
18091
18096
|
this.dialogRef.close('CANCEL');
|
|
18092
18097
|
};
|
|
18093
18098
|
return AddPageDetailsComponent;
|
|
@@ -19866,11 +19871,12 @@
|
|
|
19866
19871
|
};
|
|
19867
19872
|
ValidatorService.prototype.validateMultiValuedQuestion = function (question) {
|
|
19868
19873
|
var _this = this;
|
|
19874
|
+
var _a, _b, _c, _d, _e;
|
|
19869
19875
|
// question.errorArray = {};
|
|
19870
19876
|
delete question.errorArray;
|
|
19871
19877
|
var validStatus = [];
|
|
19872
19878
|
var ERROR_ARRAY = {};
|
|
19873
|
-
if (this.extract(question.title).length === 0) {
|
|
19879
|
+
if (this.extract(question.title).length === 0 || ((_a = question === null || question === void 0 ? void 0 : question.title) === null || _a === void 0 ? void 0 : _a.trim().length) === 0) {
|
|
19874
19880
|
ERROR_ARRAY.questionMissing = { message: 'Please enter the question.' };
|
|
19875
19881
|
validStatus.push(false);
|
|
19876
19882
|
}
|
|
@@ -19881,14 +19887,14 @@
|
|
|
19881
19887
|
question.hasComments = false;
|
|
19882
19888
|
}
|
|
19883
19889
|
if (question.choices.length >= 2) {
|
|
19884
|
-
if (question.choices.length === 2 && (this.extract(question.choices[0].title).length === 0 ||
|
|
19885
|
-
this.extract(question.choices[1].title).length === 0)) {
|
|
19890
|
+
if (question.choices.length === 2 && (this.extract(question.choices[0].title).length === 0 || ((_c = (_b = this.extract(question.choices[0].title)) === null || _b === void 0 ? void 0 : _b.trim()) === null || _c === void 0 ? void 0 : _c.length) === 0 ||
|
|
19891
|
+
this.extract(question.choices[1].title).length === 0 || ((_e = (_d = this.extract(question.choices[1].title)) === null || _d === void 0 ? void 0 : _d.trim()) === null || _e === void 0 ? void 0 : _e.length) === 0)) {
|
|
19886
19892
|
ERROR_ARRAY.twoChoice = { message: 'Please add at least two answer choices.' };
|
|
19887
19893
|
validStatus.push(false);
|
|
19888
19894
|
}
|
|
19889
19895
|
else {
|
|
19890
19896
|
question.choices =
|
|
19891
|
-
question.choices.filter(function (choice) { return _this.extract(choice.title).length !== 0; });
|
|
19897
|
+
question.choices.filter(function (choice) { var _a, _b; return (((_b = (_a = _this.extract(choice.title)) === null || _a === void 0 ? void 0 : _a.trim()) === null || _b === void 0 ? void 0 : _b.length) !== 0); });
|
|
19892
19898
|
if (question.choices.length === 0) {
|
|
19893
19899
|
question.choices.push({ title: '', value: 1, isSelected: false, required: 0, hasHelpingLabel: false, helpingLabel: '' });
|
|
19894
19900
|
}
|
|
@@ -19914,10 +19920,11 @@
|
|
|
19914
19920
|
}
|
|
19915
19921
|
};
|
|
19916
19922
|
ValidatorService.prototype.validateSingleValued = function (question) {
|
|
19923
|
+
var _a, _b;
|
|
19917
19924
|
delete question.errorArray;
|
|
19918
19925
|
var validStatus = [];
|
|
19919
19926
|
var ERROR_ARRAY = {};
|
|
19920
|
-
if (this.extract(question.title).length === 0) {
|
|
19927
|
+
if (this.extract(question.title).length === 0 || ((_b = (_a = this.extract(question.title)) === null || _a === void 0 ? void 0 : _a.trim()) === null || _b === void 0 ? void 0 : _b.length) === 0) {
|
|
19921
19928
|
ERROR_ARRAY.questionMissing = { message: 'Please enter the question.' };
|
|
19922
19929
|
validStatus.push(false);
|
|
19923
19930
|
}
|
|
@@ -19945,10 +19952,11 @@
|
|
|
19945
19952
|
}
|
|
19946
19953
|
};
|
|
19947
19954
|
ValidatorService.prototype.validateDateTime = function (question) {
|
|
19955
|
+
var _a, _b;
|
|
19948
19956
|
delete question.errorArray;
|
|
19949
19957
|
var validStatus = [];
|
|
19950
19958
|
var ERROR_ARRAY = {};
|
|
19951
|
-
if (this.extract(question.title).length === 0) {
|
|
19959
|
+
if (this.extract(question.title).length === 0 || ((_b = (_a = this.extract(question.title)) === null || _a === void 0 ? void 0 : _a.trim()) === null || _b === void 0 ? void 0 : _b.length) === 0) {
|
|
19952
19960
|
ERROR_ARRAY.questionMissing = { message: 'Please enter the question.' };
|
|
19953
19961
|
validStatus.push(false);
|
|
19954
19962
|
}
|
|
@@ -20031,7 +20039,7 @@
|
|
|
20031
20039
|
}
|
|
20032
20040
|
};
|
|
20033
20041
|
ValidatorService.prototype.validateMatrixDropdown = function (question) {
|
|
20034
|
-
var e_1,
|
|
20042
|
+
var e_1, _f, e_2, _g, e_3, _h;
|
|
20035
20043
|
var _this = this;
|
|
20036
20044
|
delete question.errorArray;
|
|
20037
20045
|
var validStatus = [];
|
|
@@ -20048,8 +20056,8 @@
|
|
|
20048
20056
|
}
|
|
20049
20057
|
if (question.choices.length > 0) {
|
|
20050
20058
|
try {
|
|
20051
|
-
for (var
|
|
20052
|
-
var choice =
|
|
20059
|
+
for (var _j = __values(question.choices), _k = _j.next(); !_k.done; _k = _j.next()) {
|
|
20060
|
+
var choice = _k.value;
|
|
20053
20061
|
if (question.choices.length === 1 && this.extract(choice.title).length === 0) {
|
|
20054
20062
|
ERROR_ARRAY.oneRow = { message: 'You are required to have at least one row.' };
|
|
20055
20063
|
validStatus.push(false);
|
|
@@ -20065,7 +20073,7 @@
|
|
|
20065
20073
|
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
20066
20074
|
finally {
|
|
20067
20075
|
try {
|
|
20068
|
-
if (
|
|
20076
|
+
if (_k && !_k.done && (_f = _j.return)) _f.call(_j);
|
|
20069
20077
|
}
|
|
20070
20078
|
finally { if (e_1) throw e_1.error; }
|
|
20071
20079
|
}
|
|
@@ -20081,16 +20089,16 @@
|
|
|
20081
20089
|
if (question.columns.length > 0) {
|
|
20082
20090
|
question.columns = question.columns.filter(function (selectedChoice) { return _this.extract(selectedChoice.title).length !== 0; });
|
|
20083
20091
|
try {
|
|
20084
|
-
for (var
|
|
20085
|
-
var column =
|
|
20092
|
+
for (var _l = __values(question.columns), _m = _l.next(); !_m.done; _m = _l.next()) {
|
|
20093
|
+
var column = _m.value;
|
|
20086
20094
|
if (this.extract(column.title).length === 0) {
|
|
20087
20095
|
ERROR_ARRAY.oneCol = { message: 'You are required to have at least one column.' };
|
|
20088
20096
|
validStatus.push(false);
|
|
20089
20097
|
}
|
|
20090
20098
|
if (column.choices.length > 1) {
|
|
20091
20099
|
try {
|
|
20092
|
-
for (var
|
|
20093
|
-
var columnChoice =
|
|
20100
|
+
for (var _o = (e_3 = void 0, __values(column.choices)), _p = _o.next(); !_p.done; _p = _o.next()) {
|
|
20101
|
+
var columnChoice = _p.value;
|
|
20094
20102
|
if (this.extract(columnChoice.title).length === 0) {
|
|
20095
20103
|
question.columns = question.columns.filter(function (selectedChoice) { return _this.extract(selectedChoice.title).length !== 0; });
|
|
20096
20104
|
// ERROR_ARRAY.twoChoice = {message: 'Please add at least two answer choices for each column.'};
|
|
@@ -20106,7 +20114,7 @@
|
|
|
20106
20114
|
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
20107
20115
|
finally {
|
|
20108
20116
|
try {
|
|
20109
|
-
if (
|
|
20117
|
+
if (_p && !_p.done && (_h = _o.return)) _h.call(_o);
|
|
20110
20118
|
}
|
|
20111
20119
|
finally { if (e_3) throw e_3.error; }
|
|
20112
20120
|
}
|
|
@@ -20120,7 +20128,7 @@
|
|
|
20120
20128
|
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
20121
20129
|
finally {
|
|
20122
20130
|
try {
|
|
20123
|
-
if (
|
|
20131
|
+
if (_m && !_m.done && (_g = _l.return)) _g.call(_l);
|
|
20124
20132
|
}
|
|
20125
20133
|
finally { if (e_2) throw e_2.error; }
|
|
20126
20134
|
}
|
|
@@ -20268,7 +20276,7 @@
|
|
|
20268
20276
|
}
|
|
20269
20277
|
};
|
|
20270
20278
|
ValidatorService.prototype.validateRatingScale = function (question) {
|
|
20271
|
-
var e_4,
|
|
20279
|
+
var e_4, _f, e_5, _g;
|
|
20272
20280
|
var _this = this;
|
|
20273
20281
|
delete question.errorArray;
|
|
20274
20282
|
var validStatus = [];
|
|
@@ -20285,8 +20293,8 @@
|
|
|
20285
20293
|
}
|
|
20286
20294
|
if (question.choices.length > 0) {
|
|
20287
20295
|
try {
|
|
20288
|
-
for (var
|
|
20289
|
-
var choice =
|
|
20296
|
+
for (var _h = __values(question.choices), _j = _h.next(); !_j.done; _j = _h.next()) {
|
|
20297
|
+
var choice = _j.value;
|
|
20290
20298
|
if (question.choices.length === 1 && this.extract(choice.title).length === 0) {
|
|
20291
20299
|
ERROR_ARRAY.oneRow = { message: 'You are required to have at least one row.' };
|
|
20292
20300
|
validStatus.push(false);
|
|
@@ -20303,7 +20311,7 @@
|
|
|
20303
20311
|
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
20304
20312
|
finally {
|
|
20305
20313
|
try {
|
|
20306
|
-
if (
|
|
20314
|
+
if (_j && !_j.done && (_f = _h.return)) _f.call(_h);
|
|
20307
20315
|
}
|
|
20308
20316
|
finally { if (e_4) throw e_4.error; }
|
|
20309
20317
|
}
|
|
@@ -20318,8 +20326,8 @@
|
|
|
20318
20326
|
}
|
|
20319
20327
|
if (question.columns !== undefined && question.columns.length > 0) {
|
|
20320
20328
|
try {
|
|
20321
|
-
for (var
|
|
20322
|
-
var column =
|
|
20329
|
+
for (var _k = __values(question.columns), _l = _k.next(); !_l.done; _l = _k.next()) {
|
|
20330
|
+
var column = _l.value;
|
|
20323
20331
|
if (question.columns.length === 1 && this.extract(column.title).length === 0) {
|
|
20324
20332
|
ERROR_ARRAY.oneCol = { message: 'You are required to have at least one column.' };
|
|
20325
20333
|
validStatus.push(false);
|
|
@@ -20336,7 +20344,7 @@
|
|
|
20336
20344
|
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
20337
20345
|
finally {
|
|
20338
20346
|
try {
|
|
20339
|
-
if (
|
|
20347
|
+
if (_l && !_l.done && (_g = _k.return)) _g.call(_k);
|
|
20340
20348
|
}
|
|
20341
20349
|
finally { if (e_5) throw e_5.error; }
|
|
20342
20350
|
}
|
|
@@ -20374,7 +20382,7 @@
|
|
|
20374
20382
|
* @param choices Choice for which title should be checked
|
|
20375
20383
|
*/
|
|
20376
20384
|
ValidatorService.prototype.checkForSameTitle = function (choices) {
|
|
20377
|
-
var e_6,
|
|
20385
|
+
var e_6, _f;
|
|
20378
20386
|
var title = choices.map(function (data) { return data.title; });
|
|
20379
20387
|
var _loop_1 = function (choice) {
|
|
20380
20388
|
var sameTitle = cloneDeep__default$1['default'](title).filter(function (data) { return data === choice.title; });
|
|
@@ -20393,7 +20401,7 @@
|
|
|
20393
20401
|
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
|
20394
20402
|
finally {
|
|
20395
20403
|
try {
|
|
20396
|
-
if (choices_1_1 && !choices_1_1.done && (
|
|
20404
|
+
if (choices_1_1 && !choices_1_1.done && (_f = choices_1.return)) _f.call(choices_1);
|
|
20397
20405
|
}
|
|
20398
20406
|
finally { if (e_6) throw e_6.error; }
|
|
20399
20407
|
}
|
|
@@ -20404,7 +20412,7 @@
|
|
|
20404
20412
|
* @param choices Choice for which title should be checked
|
|
20405
20413
|
*/
|
|
20406
20414
|
ValidatorService.prototype.checkForSameTitleWithOther = function (questionDetails) {
|
|
20407
|
-
var e_7,
|
|
20415
|
+
var e_7, _f;
|
|
20408
20416
|
var title = questionDetails.choices.map(function (data) { return data.title.trim(); });
|
|
20409
20417
|
var _loop_2 = function (choice) {
|
|
20410
20418
|
var sameTitle = cloneDeep__default$1['default'](title).filter(function (data) { return data === choice.title.trim(); });
|
|
@@ -20418,8 +20426,8 @@
|
|
|
20418
20426
|
}
|
|
20419
20427
|
};
|
|
20420
20428
|
try {
|
|
20421
|
-
for (var
|
|
20422
|
-
var choice =
|
|
20429
|
+
for (var _g = __values(questionDetails.choices), _h = _g.next(); !_h.done; _h = _g.next()) {
|
|
20430
|
+
var choice = _h.value;
|
|
20423
20431
|
var state_2 = _loop_2(choice);
|
|
20424
20432
|
if (typeof state_2 === "object")
|
|
20425
20433
|
return state_2.value;
|
|
@@ -20428,7 +20436,7 @@
|
|
|
20428
20436
|
catch (e_7_1) { e_7 = { error: e_7_1 }; }
|
|
20429
20437
|
finally {
|
|
20430
20438
|
try {
|
|
20431
|
-
if (
|
|
20439
|
+
if (_h && !_h.done && (_f = _g.return)) _f.call(_g);
|
|
20432
20440
|
}
|
|
20433
20441
|
finally { if (e_7) throw e_7.error; }
|
|
20434
20442
|
}
|
|
@@ -23841,9 +23849,9 @@
|
|
|
23841
23849
|
break;
|
|
23842
23850
|
}
|
|
23843
23851
|
this.getSelectedProgramCount();
|
|
23844
|
-
|
|
23845
|
-
|
|
23846
|
-
|
|
23852
|
+
if (((_b = this.selectedCategories) === null || _b === void 0 ? void 0 : _b.length) && this.currentProgram) {
|
|
23853
|
+
this.populateCategories();
|
|
23854
|
+
}
|
|
23847
23855
|
}
|
|
23848
23856
|
if (this.hideProgramsList) {
|
|
23849
23857
|
this.getCategoriesList();
|
|
@@ -25521,7 +25529,7 @@
|
|
|
25521
25529
|
WorkflowProgramComponent.decorators = [
|
|
25522
25530
|
{ type: i0.Component, args: [{
|
|
25523
25531
|
selector: 'app-workflow-program',
|
|
25524
|
-
template: "<div class=\"workflow-program\" #form>\r\n <form novalidate [formGroup]=\"programForm\">\r\n <!-- Program Category Type -->\r\n <form-field [checked]=\"controls?.program_type?.value > -1\" [active]=\"false\" [disabled]=\"sideElements.includes(activeList)\"\r\n [img]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/issue-type.svg'\">\r\n <label class=\"vx-control-panel\">PROGRAM TYPE <span class=\"required\">*</span></label>\r\n <tab-selector formControlName=\"program_type\" [displayArray]=\"constants?.categoryType\"></tab-selector>\r\n <!-- <p *ngIf=\"program_name?.invalid\" class=\"error-message\">Add a program type</p> -->\r\n </form-field>\r\n\r\n <!-- Program Category Name -->\r\n <form-field [checked]=\"controls?.program_name?.value?.trim()?.length\" [active]=\"false\" [disabled]=\"sideElements.includes(activeList)\"\r\n [img]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/what.svg'\">\r\n <label class=\"vx-control-panel\">PROGRAM NAME <span class=\"required\">*</span></label>\r\n <input InputTrim formControlName=\"program_name\" type=\"text\"\r\n placeholder=\"What is the Program name?\">\r\n\r\n <p *ngIf=\"controls?.program_name?.errors && controls?.program_name?.touched\" class=\"error-message\">Enter a\r\n name for this Program.</p>\r\n <p *ngIf=\"isNameExists\" class=\"error-message\">Program name already exists.</p>\r\n <div class=\"upload-files vx-d-flex vx-align-center vx-flex-wrap vx-mt-1\">\r\n <file-pill *ngFor=\"let attachment of controls?.description_attachment?.value |slice:0:2\"\r\n [extension]=\"attachment?.org_file?.split('.').pop()\" [name]=\"attachment?.org_file\"\r\n [disabled]=\"attachment?.uploading\" (delete)=\"deleteAttachment('DESCRIPTION',attachment)\">\r\n </file-pill>\r\n <button *ngIf=\"controls?.description_attachment?.value?.length > 2\" class=\"file-count\" appPopover (click)=\"uploadFile.popover()\" placement=\"right\">+{{controls?.description_attachment?.value?.length - 2}}</button>\r\n <app-popover #uploadFile [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li class=\"vx-p-2\" *ngFor=\"let attachment of controls?.description_attachment?.value|slice:2\">\r\n <file-pill [extension]=\"attachment?.org_file?.split('.').pop()\" [name]=\"attachment?.org_file\"\r\n [disabled]=\"attachment?.uploading\" (delete)=\"deleteAttachment('DESCRIPTION',attachment)\"></file-pill>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n <marx-editor [(ngModel)]=\"editorData.programDescription\" [ngModelOptions]=\"{standalone: true}\"\r\n (sendSavedFiles)=\"selectFile('DESCRIPTION',$event)\"\r\n (ngModelChange)=\"setFormField('program_description',$event)\" [editorConfig]=\"constants?.description\">\r\n </marx-editor>\r\n\r\n </form-field>\r\n\r\n <!-- Objective -->\r\n <form-field [checked]=\"controls?.program_objective?.value?.trim()?.length\" [active]=\"activeList === 'OBJECTIVE'\" [disabled]=\"sideElements.includes(activeList) && activeList !== 'OBJECTIVE'\"\r\n [img]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/objectives.svg'\">\r\n <label class=\"vx-control-panel\">OBJECTIVE\r\n <!-- <span class=\"required\">*</span> -->\r\n </label>\r\n <marx-editor [(ngModel)]=\"editorData.programObjective\" [ngModelOptions]=\"{standalone: true}\"\r\n (sendSavedFiles)=\"selectFile('OBJECTIVE',$event)\"\r\n (ngModelChange)=\"setFormField('program_objective',$event, true)\" [editorConfig]=\"constants?.objective\">\r\n </marx-editor>\r\n <!-- <p *ngIf=\"!isObjectiveValid\" class=\"error-message\">Specify the objective for this Program.</p> -->\r\n </form-field>\r\n\r\n <!-- Roles -->\r\n <form-field [checked]=\"controls?.program_roles?.value?.length \" [active]=\"activeList === 'ROLE'\" [disabled]=\"sideElements.includes(activeList) && activeList !== 'ROLE'\"\r\n [img]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/roles.svg'\">\r\n <label class=\"vx-control-panel\">ROLE(S) <span class=\"required\">*</span><i class=\"icons\" [appTooltip]=\"'Role(s) let you specify the users that can be selected as Program owners and approvers.'\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i></label>\r\n <input-with-pill [placeholder]=\"'Which user roles have access to this program?'\"\r\n (select)=\"activateList('ROLE')\">\r\n <div class=\"selected\" *ngIf=\"controls?.program_roles?.value?.length\">\r\n <div class=\"chip-container\">\r\n <div class=\"chip-inner\">\r\n <span class=\"chip\"><i *ngIf=\"!lists.SYSTEM_ROLE_IDS.includes(controls?.program_roles?.value[0]?._id)\"\r\n (click)=\"remove(controls?.program_roles?.value[0],'ROLE')\"\r\n class=\"icons\"></i>{{controls?.program_roles?.value[0]?.roleName}}</span>\r\n <button *ngIf=\"controls?.program_roles?.value?.length > 1\" class=\"count\" appPopover\r\n (click)=\"role.popover()\" placement=\"right\">\r\n +{{controls?.program_roles?.value?.length - 1}}</button>\r\n </div>\r\n </div>\r\n <button *ngIf=\"activeList!=='ROLE'\" class=\"edit\" type=\"button\" (click)=\"activateList('ROLE')\"><i class=\"icons\"></i>\r\n Edit</button>\r\n </div>\r\n </input-with-pill>\r\n <p *ngIf=\"false\" class=\"error-message\">Add a role(s)</p>\r\n <app-popover #role [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let data of controls?.program_roles?.value | slice:1\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i *ngIf=\"!lists.SYSTEM_ROLE_IDS.includes(data?._id)\" class=\"icons\"\r\n (click)=\"removeRole(data,'ROLE')\"></i>\r\n {{data?.roleName}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </form-field>\r\n\r\n <!-- Owners -->\r\n <form-field [checked]=\"controls?.program_owners.value?.length > 0 || controls?.program_owners_group.value?.length > 0\" [active]=\"activeList === 'OWNER'\" [disabled]=\"sideElements.includes(activeList) && activeList !== 'OWNER'\"\r\n [img]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/owner.svg'\">\r\n <label class=\"vx-control-panel\">OWNER(S) <span class=\"required\">*</span><i class=\"icons\" [appTooltip]=\"'An owner is a user responsible for managing a Program. By default, the Key Admin and all users designated as Admins are selected as Program owners. Only users selected as owners can edit and make changes to the program and its associated responsibilities.'\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i></label>\r\n <input-with-pill [placeholder]=\"'Who is responsible for managing this program?'\"\r\n (select)=\"activateList('OWNER')\">\r\n <div class=\"selected\" *ngIf=\"controls?.program_owners.value[0]\">\r\n <div class=\"chip-container\">\r\n <div class=\"chip-inner\">\r\n <span class=\"chip\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">USER(S)</span></span>\r\n <button class=\"count user\" appPopover (click)=\"owner.popover()\" placement=\"right\">{{controls?.program_owners?.value?.length}}</button>\r\n </div>\r\n <span class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\" *ngIf=\"controls?.program_owners_group?.value?.length && controls?.program_owners?.value?.length\">&</span>\r\n <div class=\"chip-inner\" *ngIf=\"controls?.program_owners_group?.value?.length\">\r\n <span class=\"chip\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">GROUP(S)</span></span>\r\n <button *ngIf=\"controls?.program_owners_group?.value?.length\" class=\"count\" appPopover (click)=\"group.popover()\" placement=\"right\">{{controls?.program_owners_group?.value?.length }}</button>\r\n </div>\r\n </div>\r\n <button *ngIf=\"activeList!=='OWNER'\" [class.disabled]=\"controls?.all_user_in_role?.value\" (click)=\"activateList('OWNER')\"\r\n class=\"edit\" type=\"button\"><i class=\"icons\"></i>Edit</button>\r\n </div>\r\n </input-with-pill>\r\n <p *ngIf=\"false\" class=\"error-message\">Add a owner(s)</p>\r\n <div class=\"vx-d-flex vx-align-center vx-justify-end vx-mt-2\">\r\n <div class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-mr-2\">ALL USERS ASSOCIATED WITH THE\r\n SELECTED ROLES</div>\r\n <switch formControlName=\"all_user_in_role\" (change)=\"selectAllRoleOwner($event)\"></switch>\r\n </div>\r\n <app-popover #owner [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let owner of controls?.program_owners?.value \">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i *ngIf=\"!['ADMIN','KEY_ADMIN','LOGGED_IN'].includes(owner?.user_role)\"\r\n class=\"icons\" (click)=\"remove(owner,'OWNER')\"></i>\r\n {{owner?.member_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <app-popover #group [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let owner of controls?.program_owners_group?.value \">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i *ngIf=\"!['ADMIN','KEY_ADMIN','LOGGED_IN'].includes(owner?.user_role)\"\r\n class=\"icons\" (click)=\"remove(owner,'OWNER_GROUP')\"></i>\r\n {{owner?.member_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </form-field>\r\n\r\n <!-- Approvers -->\r\n <form-field [checked]=\"controls?.program_approver?.value?.length\" [active]=\"activeList === 'APPROVER'\" [disabled]=\"sideElements.includes(activeList) && activeList !== 'APPROVER'\"\r\n [img]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/approval.svg'\">\r\n <label class=\"vx-control-panel\">APPROVER(S) <i class=\"icons\" [appTooltip]=\"'An approver is a user who is responsible for approving a Program. If an approver is selected, the Program can be started only after approval.'\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i></label>\r\n <input-with-pill [placeholder]=\"'Who is responsible for approving this program?'\"\r\n (select)=\"activateList('APPROVER')\">\r\n <div class=\"selected\" *ngIf=\"controls?.program_approver?.value[0]\">\r\n <div class=\"chip-container\">\r\n <div class=\"chip-inner\">\r\n <i (click)=\"remove(controls?.program_approver?.value[0],'APPROVER')\"\r\n class=\"icons vx-fs-9 vx-mr-1 cross\"></i>{{controls?.program_approver?.value[0]?.member_name}}\r\n </div>\r\n </div>\r\n <button *ngIf=\"activeList!=='APPROVER'\"(click)=\"activateList('APPROVER')\" class=\"edit\" type=\"button\"><i\r\n class=\"icons\"></i>Edit</button>\r\n </div>\r\n </input-with-pill>\r\n </form-field>\r\n\r\n <!-- Performance Calculated -->\r\n <form-field [checked]=\"controls?.performance_calculation?.value\" [active]=\"activeList === 'PERFORMANCE'\" [disabled]=\"sideElements.includes(activeList) && activeList !== 'PERFORMANCE'\"\r\n [img]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/performance-calc.svg'\">\r\n <label class=\"vx-control-panel\">HOW SHOULD THE PERFORMANCE OF THIS CATEGORY BE CALCULATED?</label>\r\n <tab-selector formControlName=\"performance_calculation\" [displayArray]=\"constants?.performanceCalculation\">\r\n </tab-selector>\r\n </form-field>\r\n <div class=\"scope-label vx-fs-10 vx-txt-white vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mb-5 vx-lh-4 vx-d-inline-block\">PROGRAM SCOPE</div> <i class=\"icons info-icon vx-fs-12 vx-txt-blue vx-ml-1\" [appTooltip]=\"'The scope lets you define the frequency of the Program and set up default assignees, overseers, reviewers, assessments, and Responsibility Centers for the responsibilities associated with this Program.'\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i>\r\n\r\n <!-- Program Frequency -->\r\n <form-field [checked]=\"[true,false].includes(controls?.recurring_frequency?.value)\" [active]=\"activeList === 'FREQUENCY'\" [disabled]=\"sideElements.includes(activeList) && activeList !== 'FREQUENCY'\"\r\n [img]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/recurring.svg'\">\r\n <label class=\"vx-control-panel\">PROGRAM FREQUENCY <i class=\"icons\" [appTooltip]=\"'The Program Frequency lets you specify if a Program is recurring. If a Program is not recurring, then the Program will complete its lifecycle on the last day of your organization\u2019s business cycle. Additionally, all responsibilities associated with the Program will also complete their lifecycle on the same day.'\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i></label>\r\n <div class=\"upload-format\">\r\n <div class=\"vx-d-flex vx-align-center vx-justify-between\">\r\n <span class=\"text vx-mb-0\">Is this program recurring?</span>\r\n <div class=\"radio-group program\">\r\n <app-cs-radio [name]=\"'recurring_frequency'\" [checked]=\"controls?.recurring_frequency?.value\"\r\n (checkedEvent)=\"setFormField('recurring_frequency',true)\">YES</app-cs-radio>\r\n <app-cs-radio [name]=\"'recurring_frequency'\" [checked]=\"!controls?.recurring_frequency?.value\"\r\n (checkedEvent)=\"setFormField('recurring_frequency',false)\">NO</app-cs-radio>\r\n </div>\r\n </div>\r\n </div>\r\n </form-field>\r\n\r\n <!-- Scope Changes -->\r\n <form-field [checked]=\"[true,false].includes(controls?.lock_scope_change?.value)\" [active]=\"activeList === 'SCOPE'\" [disabled]=\"sideElements.includes(activeList) && activeList !== 'SCOPE'\"\r\n [img]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/lock-scope.svg'\">\r\n <label class=\"vx-control-panel\">SCOPE CHANGES <i class=\"icons\" [appTooltip]=\"'If scope changes are locked, the owners cannot add or remove any new responsibilities and program categories once a Program has started.'\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i></label>\r\n <div class=\"upload-format\">\r\n <span class=\"text\">Would you like to <span class=\"vx-label-txt vx-fw-500\">lock changes</span> to the program\r\n scope?</span>\r\n <div class=\"radio-group program\">\r\n <app-cs-radio [name]=\"'lock_scope_change'\" [checked]=\"controls?.lock_scope_change?.value\"\r\n (checkedEvent)=\"setFormField('lock_scope_change',true)\">YES</app-cs-radio>\r\n <app-cs-radio [name]=\"'lock_scope_change'\" [checked]=\"!controls?.lock_scope_change?.value\"\r\n (checkedEvent)=\"setFormField('lock_scope_change',false)\">NO</app-cs-radio>\r\n </div>\r\n </div>\r\n </form-field>\r\n\r\n <!-- Framework -->\r\n <!-- <form-field [checked]=\"false\" [active]=\"activeList === 'FRAMEWORK'\" [disabled]=\"sideElements.includes(activeList) && activeList !== 'FRAMEWORK'\"\r\n [img]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/category.svg'\">\r\n <label class=\"vx-control-panel\">FRAMEWORK</label>\r\n <input-with-pill [placeholder]=\"'Select a framework that this Program relates to'\" (select)=\"activateList('FRAMEWORK')\">\r\n <div class=\"selected\" *ngIf=\"controls?.framework?.value?.framework_name\">\r\n <div class=\"chip-container\">\r\n <div class=\"chip-inner\">\r\n <span class=\"chip\"><i (click)=\"remove(controls?.framework.value,'FRAMEWORK')\" class=\"icons\"></i>{{controls?.framework?.value?.framework_name}}</span>\r\n <button class=\"count\" appPopover (click)=\"framework.popover()\" placement=\"right\">+5</button>\r\n </div>\r\n </div>\r\n <button *ngIf=\"activeList!=='FRAMEWORK'\" (click)=\"activateList('FRAMEWORK')\" class=\"edit\" type=\"button\"><i class=\"icons\"></i> Edit</button>\r\n </div>\r\n </input-with-pill>\r\n <app-popover #framework [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let data of [1, 1, 1, 1, 1, 1, 1]\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\"></i>\r\n Manage framework name\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </form-field> -->\r\n\r\n <!-- Responsibility Center -->\r\n <form-field [checked]=\"controls?.rc?.value?.length\" [active]=\"activeList === 'RC'\" [disabled]=\"sideElements.includes(activeList) && activeList !== 'RC'\"\r\n [img]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/responsibility-center.svg'\">\r\n <label class=\"vx-control-panel\">RESPONSIBILITY CENTER <i class=\"icons\" [appTooltip]=\"'Responsibility Centers represent your organizational and operational infrastructure. You can associate one or more Responsibility Centers with a Program. Thereafter, all the responsibilities within this Program can only be linked with the associated Responsibility Centers.'\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i></label>\r\n <input-with-pill (select)=\"activateList('RC')\"\r\n [placeholder]=\"'Which Responsibility Center(s) can be linked to the responsibilities associated with this Program Category.'\">\r\n <div class=\"selected\" *ngIf=\"controls?.rc?.value && controls?.rc?.value?.length\">\r\n <div class=\"chip-container\">\r\n <div class=\"chip-inner\">\r\n <span class=\"chip\"><i class=\"icons\"\r\n (click)=\"remove(controls?.rc?.value[0],'RC')\"></i>{{controls?.rc?.value[0]?.item_name}}</span>\r\n <button *ngIf=\"controls?.rc?.value?.length > 1\" class=\"count\" appPopover\r\n (click)=\"rc.popover()\" placement=\"right\">+{{controls?.rc?.value?.length -1 }}</button>\r\n </div>\r\n </div>\r\n <button *ngIf=\"activeList!=='RC'\" class=\"edit\" type=\"button\" (click)=\"activateList('RC')\"><i class=\"icons\"></i>\r\n Edit</button>\r\n </div>\r\n </input-with-pill>\r\n <app-popover #rc [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let rc of controls?.rc?.value |slice:1\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"remove(rc,'RC')\"></i>\r\n {{rc?.item_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </form-field>\r\n\r\n <!-- Assignee -->\r\n <form-field [checked]=\"controls?.program_assignee?.value?.length || controls?.program_default_assignee?.value?.length ||controls?.program_default_assignee?.value?.length || controls?.program_default_assignee_group?.value?.length\"\r\n [active]=\"['ASSIGNEE','DEFAULT_ASSIGNEE']?.includes(activeList)\" [disabled]=\"sideElements?.includes(activeList) && !['ASSIGNEE','DEFAULT_ASSIGNEE'].includes(activeList)\"\r\n [img]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/who.svg'\">\r\n <label class=\"vx-control-panel\" [class.disabled]=\"activeList === 'DEFAULT_ASSIGNEE'\">ASSIGNEE(S) <i class=\"icons\" [appTooltip]=\"'Assignees are users to whom you can assign a responsibility. While creating a Program, you can select the set of assignees responsible for completing responsibilities within this Program.'\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i> </label>\r\n <input-with-pill [disabled]=\"activeList === 'DEFAULT_ASSIGNEE'\" [placeholder]=\"'Select persons responsible for executing controls within this program'\"\r\n (select)=\"activateList('ASSIGNEE')\">\r\n <div class=\"selected\" *ngIf=\"controls?.program_assignee?.value?.length || controls?.program_assignee_group?.value?.length\">\r\n <div class=\"chip-container\">\r\n <div class=\"chip-inner\" *ngIf=\"controls?.program_assignee?.value?.length\">\r\n <span class=\"chip\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">USER(S)</span></span>\r\n <button class=\"count user\" appPopover (click)=\"assignee.popover()\" placement=\"right\">{{controls?.program_assignee?.value?.length}}</button>\r\n </div>\r\n <span class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\" *ngIf=\"controls?.program_assignee_group?.value?.length && controls?.program_assignee?.value?.length\">&</span>\r\n <div class=\"chip-inner\" *ngIf=\"controls?.program_assignee_group?.value?.length\">\r\n <span class=\"chip\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">GROUP(S)</span></span>\r\n <button *ngIf=\"controls?.program_assignee_group?.value?.length\" class=\"count\" appPopover (click)=\"assignee_group.popover()\" placement=\"right\">{{controls?.program_assignee_group?.value?.length }}</button>\r\n </div>\r\n </div>\r\n <button *ngIf=\"activeList!=='ASSIGNEE'\" class=\"edit\" type=\"button\" (click)=\"activateList('ASSIGNEE')\"><i class=\"icons\"></i> Edit</button>\r\n </div>\r\n </input-with-pill>\r\n <app-popover #assignee [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let assignee of controls?.program_assignee?.value\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i (click)=\"remove(assignee,'ASSIGNEE')\" class=\"icons\"></i>\r\n {{assignee?.member_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <app-popover #assignee_group [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let group of controls?.program_assignee_group?.value\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i (click)=\"remove(group,'ASSIGNEE_GROUP')\" class=\"icons\"></i>\r\n {{group?.group_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <label class=\"vx-control-panel\" [class.disabled]=\"activeList === 'ASSIGNEE'\">DEFAULT ASSIGNEE(S) <i class=\"icons\" [appTooltip]=\"'This option lets you specify the default assignees for all new responsibilities associated with a Program. If a default assignee is selected, the user will automatically be selected as an assignee within the \\'Create a Responsibility\\' form. However, the assignor can make changes, if required.'\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i></label>\r\n <input-with-pill [disabled]=\"activeList === 'ASSIGNEE'\" [placeholder]=\"'Select persons responsible for executing controls within this program'\" (select)=\"activateList('DEFAULT_ASSIGNEE')\">\r\n <div class=\"selected\" *ngIf=\"controls?.program_default_assignee?.value?.length || controls?.program_default_assignee_group?.value?.length\">\r\n <div class=\"chip-container\">\r\n <div class=\"chip-inner\" *ngIf=\"controls?.program_default_assignee?.value?.length\">\r\n <span class=\"chip\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">USER(S)</span></span>\r\n <button class=\"count user\" appPopover (click)=\"defaultAssignee.popover()\" placement=\"right\">{{controls?.program_default_assignee?.value?.length}}</button>\r\n </div>\r\n <span class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\" *ngIf=\"controls?.program_default_assignee_group?.value?.length && controls?.program_default_assignee?.value?.length\">&</span>\r\n <div class=\"chip-inner\" *ngIf=\"controls?.program_default_assignee_group?.value?.length\">\r\n <span class=\"chip\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">GROUP(S)</span></span>\r\n <button *ngIf=\"controls?.program_default_assignee_group?.value?.length\" class=\"count\" appPopover (click)=\"defaultAssigneeGroup.popover()\" placement=\"right\">{{controls?.program_default_assignee_group?.value?.length }}</button>\r\n </div>\r\n </div>\r\n <button *ngIf=\"activeList!=='DEFAULT_ASSIGNEE'\" (click)=\"activateList('DEFAULT_ASSIGNEE')\" class=\"edit\" type=\"button\"><i class=\"icons\"></i> Edit</button>\r\n </div>\r\n </input-with-pill>\r\n <app-popover #defaultAssignee [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let assignee of controls?.program_default_assignee?.value \">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i (click)=\"remove(assignee,'DEFAULT_ASSIGNEE')\" class=\"icons\"></i>\r\n {{assignee?.member_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <app-popover #defaultAssigneeGroup [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let group of controls?.program_default_assignee_group?.value\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i (click)=\"remove(assignee,'DEFAULT_ASSIGNEE_GROUP')\" class=\"icons\"></i>\r\n {{group?.group_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <div class=\"radio-group-selector\" [class.disabled]=\"activeList === 'ASSIGNEE'\">\r\n <app-cs-radio [name]=\"'assignee'\" [checked]=\"controls?.assignee_completion_criteria?.value === 'ALL'\" (checkedEvent)=\"setFormField('assignee_completion_criteria', 'ALL')\">\r\n ALL SELECTED PERSONS NEED TO COMPLETE THIS <i class=\"icons\"\r\n [appTooltip]=\"'If selected, separate responsibilities will be created for each person.'\"\r\n placement=\"bottom-right\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\" ></i>\r\n </app-cs-radio>\r\n <app-cs-radio [name]=\"'assignee'\" [checked]=\"controls?.assignee_completion_criteria?.value === 'ANYONE'\" (checkedEvent)=\"setFormField('assignee_completion_criteria', 'ANYONE')\">\r\n ANY SELECTED PERSON CAN COMPLETE THIS <i class=\"icons\"\r\n [appTooltip]=\"'If selected, only one responsibility will be created.'\" placement=\"bottom-right\"\r\n delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i>\r\n </app-cs-radio>\r\n </div>\r\n </form-field>\r\n\r\n <!-- Reviewer -->\r\n <form-field [appScrollInView]=\"scrollToBottom\" *ngIf=\"additionalOption?.REVIEWER\"\r\n [checked]=\"controls?.program_reviewer?.value?.length || controls?.program_default_reviewer?.value?.length ||controls?.program_default_reviewer?.value?.length || controls?.program_default_reviewer_group?.value?.length\"\r\n [active]=\"['REVIEWER','DEFAULT_REVIEWER']?.includes(activeList)\" [disabled]=\"sideElements?.includes(activeList) && !['REVIEWER','DEFAULT_REVIEWER'].includes(activeList)\"\r\n [img]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/reviewer.svg'\">\r\n <label [class.disabled]=\"activeList === 'DEFAULT_REVIEWER'\" class=\"vx-control-panel\">Reviewer(s) <i class=\"icons\" [appTooltip]=\"'Reviewers are users who can review a responsibility after it has been completed. While creating a Program, you can select the set of reviewers responsible for reviewing responsibilities within this Program.'\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i></label>\r\n <input-with-pill [disabled]=\"activeList === 'DEFAULT_REVIEWER'\" [placeholder]=\"'Select persons responsible for executing controls within this program'\" (select)=\"activateList('REVIEWER')\">\r\n <div class=\"selected\" *ngIf=\"controls?.program_reviewer?.value?.length || controls?.program_reviewer_group?.value?.length\">\r\n\r\n <div class=\"chip-container\">\r\n <div class=\"chip-inner\" *ngIf=\"controls?.program_reviewer?.value?.length\">\r\n <span class=\"chip\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">USER(S)</span></span>\r\n <button class=\"count user\" appPopover (click)=\"reviewer.popover()\" placement=\"right\">{{controls?.program_reviewer?.value?.length}}</button>\r\n </div>\r\n <span class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\" *ngIf=\"controls?.program_reviewer_group?.value?.length && controls?.program_reviewer?.value?.length\">&</span>\r\n <div class=\"chip-inner\" *ngIf=\"controls?.program_reviewer_group?.value?.length\">\r\n <span class=\"chip\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">GROUP(S)</span></span>\r\n <button *ngIf=\"controls?.program_reviewer_group?.value?.length\" class=\"count\" appPopover (click)=\"reviewerGroup.popover()\" placement=\"right\">{{controls?.program_reviewer_group?.value?.length }}</button>\r\n </div>\r\n </div>\r\n <button *ngIf=\"activeList!=='REVIEWER'\" (click)=\"activateList('REVIEWER')\" class=\"edit\" type=\"button\"><i class=\"icons\"></i> Edit</button>\r\n </div>\r\n </input-with-pill>\r\n <app-popover #reviewer [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let reviewer of controls?.program_reviewer?.value\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i (click)=\"remove(reviewer,'REVIEWER')\" class=\"icons\"></i>\r\n {{reviewer?.member_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <app-popover #reviewerGroup [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let group of controls?.program_reviewer_group?.value\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i (click)=\"remove(group,'REVIEWER_GROUP')\" class=\"icons\"></i>\r\n {{group?.group_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <label [class.disabled]=\"activeList === 'REVIEWER'\" class=\"vx-control-panel\">DEFAULT Reviewer(S) <i class=\"icons\" [appTooltip]=\"'This option lets you specify the default reviewers for all new responsibilities associated with a Program. If a default reviewer is selected, the user will automatically be selected as a reviewer within the \\'Create a Responsibility\\' form. However, the assignor can make changes to this setting, if required.'\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i></label>\r\n <input-with-pill [disabled]=\"activeList === 'REVIEWER'\" [placeholder]=\"'Select persons responsible for executing controls within this program'\" (select)=\"activateList('DEFAULT_REVIEWER')\">\r\n <div class=\"selected\" *ngIf=\"controls?.program_default_reviewer?.value?.length || controls?.program_default_reviewer_group?.value?.length\">\r\n <div class=\"chip-container\">\r\n <div class=\"chip-inner\" *ngIf=\"controls?.program_default_reviewer?.value?.length\">\r\n <span class=\"chip\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">USER(S)</span></span>\r\n <button class=\"count user\" appPopover (click)=\"defaultReviewer.popover()\" placement=\"right\">{{controls?.program_default_reviewer?.value?.length}}</button>\r\n </div>\r\n <span class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\" *ngIf=\"controls?.program_default_reviewer_group?.value?.length && controls?.program_default_reviewer?.value?.length\">&</span>\r\n <div class=\"chip-inner\" *ngIf=\"controls?.program_default_reviewer_group?.value?.length\">\r\n <span class=\"chip\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">GROUP(S)</span></span>\r\n <button *ngIf=\"controls?.program_default_reviewer_group?.value?.length\" class=\"count\" appPopover (click)=\"assignee_group.popover()\" placement=\"right\">{{controls?.program_default_reviewer_group?.value?.length }}</button>\r\n </div>\r\n </div>\r\n <button *ngIf=\"activeList!=='DEFAULT_REVIEWER'\" (click)=\"activateList('DEFAULT_REVIEWER')\" class=\"edit\" type=\"button\"><i class=\"icons\"></i> Edit</button>\r\n </div>\r\n </input-with-pill>\r\n <app-popover #defaultReviewer [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let reviewer of controls?.program_default_reviewer?.value\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i (click)=\"remove(reviewer,'DEFAULT_REVIEWER')\" class=\"icons\"></i>\r\n {{reviewer?.member_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <app-popover #defaultReviewerGroup [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let group of controls?.program_default_reviewer_group?.value \">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i (click)=\"remove(group,'DEFAULT_REVIEWER_GROUP')\" class=\"icons\"></i>\r\n {{group?.group_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <div class=\"radio-group-selector\" [class.disabled]=\"activeList === 'REVIEWER'\">\r\n <app-cs-radio [name]=\"'reviewer'\" [checked]=\"controls?.reviewer_completion_criteria?.value == 'SEQUENTIAL'\" (checkedEvent)=\"setFormField('reviewer_completion_criteria', 'SEQUENTIAL')\">\r\n SEQUENTIAL <i class=\"icons\"\r\n [appTooltip]=\"'The responsibility will be sent for review one at a time in the sequence defined by you.'\"\r\n placement=\"bottom-right\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i>\r\n </app-cs-radio>\r\n <app-cs-radio [name]=\"'reviewer'\" [checked]=\"controls?.reviewer_completion_criteria?.value == 'ANYONE'\" (checkedEvent)=\"setFormField('reviewer_completion_criteria', 'ANYONE')\">\r\n ANY REVIEWER CAN MARK THIS AS REVIEWED <i class=\"icons\"\r\n [appTooltip]=\"'The responsibility will be sent for review to all reviewers at the same time. If anyone of the reviewer reviews the responsibility, it will be considered as reviewed.'\"\r\n placement=\"bottom-right\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i>\r\n </app-cs-radio>\r\n </div>\r\n </form-field>\r\n\r\n <!-- Overseer -->\r\n <form-field [appScrollInView]=\"scrollToBottom\" *ngIf=\"additionalOption?.OVERSEER\"\r\n [checked]=\"controls?.program_overseer?.value?.length || controls?.program_default_overseer?.value?.length ||controls?.program_default_overseer?.value?.length || controls?.program_default_overseer_group?.value?.length\"\r\n [active]=\"activeList === 'OVERSEER'\" [disabled]=\"sideElements?.includes(activeList) && !['OVERSEER','DEFAULT_OVERSEER','DEFAULT_FAILED_OVERSEER'].includes(activeList)\"\r\n [img]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/oversight.svg'\">\r\n <label class=\"vx-control-panel\" [class.disabled]=\"['DEFAULT_OVERSEER','DEFAULT_FAILED_OVERSEER'].includes(activeList)\">Overseer <i class=\"icons\" [appTooltip]=\"'Overseers refer to the users who can oversee a responsibility and receive email updates when a responsibility is completed or not completed. While creating a Program, this options lets you restrict the users who can oversee the responsibilities associated with the Program.'\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i></label>\r\n <input-with-pill [disabled]=\"['DEFAULT_OVERSEER','DEFAULT_FAILED_OVERSEER'].includes(activeList)\" [placeholder]=\"'Who should have oversight of the responsibility?'\" (select)=\"activateList('OVERSEER')\">\r\n <div class=\"selected\" *ngIf=\"controls?.program_overseer?.value?.length || controls?.program_overseer_group?.value?.length\">\r\n <div class=\"chip-container\">\r\n <div class=\"chip-inner\" *ngIf=\"controls?.program_overseer?.value?.length\">\r\n <span class=\"chip\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">USER(S)</span></span>\r\n <button class=\"count user\" appPopover (click)=\"overseers.popover()\" placement=\"right\">{{controls?.program_overseer?.value?.length}}</button>\r\n </div>\r\n\r\n <span *ngIf=\"controls?.program_overseer_group?.value?.length && controls?.program_overseer?.value?.length \" class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\">&</span>\r\n <div class=\"chip-inner\" *ngIf=\"controls?.program_overseer_group?.value?.length \">\r\n <span class=\"chip\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">GROUP(S)</span></span>\r\n <button class=\"count\" appPopover (click)=\"overseerGroup.popover()\" placement=\"right\">{{controls?.program_overseer_group?.value?.length}}</button>\r\n </div>\r\n </div>\r\n\r\n <button *ngIf=\"activeList!=='OVERSEER'\" (click)=\"activateList('OVERSEER')\" class=\"edit\" type=\"button\"><i class=\"icons\"></i> Edit</button>\r\n </div>\r\n </input-with-pill>\r\n <app-popover #overseers [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let overseer of controls?.program_overseer?.value\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"remove(overseer,'OVERSEER')\"></i> {{overseer?.member_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <app-popover #overseerGroup [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let group of controls?.program_overseer_group?.value\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i (click)=\"remove(group,'OVERSEER_GROUP')\" class=\"icons\"></i> {{group?.group_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <ng-container [class.disabled]=\"activeList === 'OVERSEER'\">\r\n <label class=\"vx-control-panel\" [class.disabled]=\"['OVERSEER'].includes(activeList)\">DEFAULT Overseer <i class=\"icons\" [appTooltip]=\"'This option lets you specify the default overseers for all new responsibilities associated with a Program. If a default overseer is selected, the user will automatically be selected as an overseer within the \\'Create a Responsibility\\' form. However, the assignor can make changes to this setting, if required.'\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i></label>\r\n <input-with-pill [disabled]=\"['OVERSEER','DEFAULT_FAILED_OVERSEER'].includes(activeList)\" [placeholder]=\"'Who should have oversight of the responsibility?'\" (select)=\"activateList('DEFAULT_OVERSEER')\">\r\n <div class=\"selected\" *ngIf=\"controls?.program_default_overseer?.value?.length || controls?.program_default_overseer_group?.value?.length\">\r\n <div class=\"chip-container\">\r\n <div class=\"chip-inner\" *ngIf=\"controls?.program_default_overseer?.value?.length\">\r\n <span class=\"chip\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">USER(S)</span></span>\r\n <button class=\"count user\" appPopover (click)=\"overseersDefault.popover()\" placement=\"right\">{{controls?.program_default_overseer?.value?.length}}</button>\r\n </div>\r\n\r\n <span *ngIf=\"controls?.program_default_overseer_group?.value?.length && controls?.program_default_overseer?.value?.length\" class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\">&</span>\r\n <div class=\"chip-inner\" *ngIf=\"controls?.program_default_overseer_group?.value?.length \">\r\n <span class=\"chip\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">GROUP(S)</span></span>\r\n <button class=\"count\" appPopover (click)=\"overseerDefaultGroup.popover()\" placement=\"right\">{{controls?.program_default_overseer_group?.value?.length}}</button>\r\n </div>\r\n </div>\r\n <button *ngIf=\"activeList!=='DEFAULT_OVERSEER'\" (click)=\"activateList('DEFAULT_OVERSEER')\" class=\"edit\" type=\"button\"><i class=\"icons\"></i> Edit</button>\r\n </div>\r\n </input-with-pill>\r\n <app-popover #overseersDefault [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let overseer of controls?.program_default_overseer?.value\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"remove(overseer,'DEFAULT_OVERSEER')\"></i> {{overseer?.member_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <app-popover #overseerDefaultGroup [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let group of controls?.program_default_overseer_group?.value\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i (click)=\"remove(group,'DEFAULT_OVERSEER_GROUP')\" class=\"icons\"></i> {{group?.group_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <label class=\"vx-control-panel\" > </label>\r\n <input-with-pill class=\"vx-mt-2\" [disabled]=\"['OVERSEER','DEFAULT_OVERSEER'].includes(activeList)\" [placeholder]=\"'Who should be notified if the responsibility is not completed?'\" (select)=\"activateList('DEFAULT_FAILED_OVERSEER')\">\r\n <div class=\"selected\" *ngIf=\"controls?.program_default_failed_overseer?.value?.length || controls?.program_default_failed_overseer_group?.value?.length\">\r\n <div class=\"chip-container\">\r\n <div class=\"chip-inner\" *ngIf=\"controls?.program_default_failed_overseer?.value?.length\">\r\n <span class=\"chip\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">USER(S)</span></span>\r\n <button class=\"count user\" appPopover (click)=\"overseersDefaultFail.popover()\" placement=\"right\">{{controls?.program_default_failed_overseer?.value?.length}}</button>\r\n </div>\r\n\r\n <span *ngIf=\"controls?.program_default_failed_overseer_group?.value?.length && controls?.program_default_failed_overseer?.value?.length\" class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\">&</span>\r\n <div class=\"chip-inner\" *ngIf=\"controls?.program_default_failed_overseer_group?.value?.length \">\r\n <span class=\"chip\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">GROUP(S)</span></span>\r\n <button class=\"count\" appPopover (click)=\"overseerDefaultFailGroup.popover()\" placement=\"right\">{{controls?.program_default_failed_overseer_group?.value?.length}}</button>\r\n </div>\r\n </div>\r\n <button *ngIf=\"activeList!=='DEFAULT_FAILED_OVERSEER'\" (click)=\"activateList('DEFAULT_FAILED_OVERSEER')\" class=\"edit\" type=\"button\"><i class=\"icons\"></i> Edit</button>\r\n </div>\r\n </input-with-pill>\r\n <app-popover #overseersDefaultFail [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let overseer of controls?.program_default_failed_overseer?.value\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"remove(overseer,'DEFAULT_FAILED_OVERSEER')\"></i> {{overseer?.member_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <app-popover #overseerDefaultFailGroup [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let group of controls?.program_default_failed_overseer_group?.value\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i (click)=\"remove(group,'DEFAULT_FAILED_OVERSEER_GROUP')\" class=\"icons\"></i> {{group?.group_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n</ng-container>\r\n </form-field>\r\n\r\n <!-- Assessment -->\r\n <form-field [appScrollInView]=\"scrollToBottom\" *ngIf=\"additionalOption?.ASSESSMENT\"\r\n [checked]=\"controls?.program_assessments?.value?.length\"\r\n [active]=\"activeList === 'ASSESSMENT'\" [disabled]=\"sideElements.includes(activeList) && activeList !== 'ASSESSMENT'\"\r\n [img]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/assessments.svg'\">\r\n <label class=\"vx-control-panel\">ASSESSMENTS <i class=\"icons\" [appTooltip]=\"'Assessments allows you to associate outcome based questionnaires or self-assessment questionnaires with a responsibility. This option lets you specify which assessments can be linked with responsibilities within a Program.'\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i></label>\r\n <input-with-pill [placeholder]=\"'Select assessment for this responsibility'\" (select)=\"activateList('ASSESSMENT')\">\r\n <div class=\"selected\" *ngIf=\"controls?.program_assessments?.value?.length\">\r\n <div class=\"chip-container\">\r\n <ng-container *ngIf=\"(controls?.program_assessments?.value | assessmentResolver) as assessments\">\r\n <div class=\"chip-inner\">\r\n <span class=\"chip\"><i class=\"icons\"\r\n (click)=\"remove(assessments[0],'ASSESSMENT')\"></i>{{assessments[0]?.assessment_name}} </span>\r\n <button *ngIf=\"assessments?.length > 1\" class=\"count\" appPopover\r\n (click)=\"program_assessments.popover()\" placement=\"right\">+{{assessments?.length -1 }}</button>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <button *ngIf=\"activeList!=='ASSESSMENT'\" class=\"edit\" type=\"button\" (click)=\"activateList('ASSESSMENT')\"><i class=\"icons\"></i>\r\n Edit</button>\r\n </div>\r\n </input-with-pill>\r\n <app-popover #program_assessments [dontCloseonClick]=\"true\">\r\n <ng-container >\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n\r\n <li *ngFor=\"let assessment of (controls?.program_assessments?.value | assessmentResolver) | slice:1\">\r\n <div class=\"avatar-card\" (click)=\"remove(assessment,'ASSESSMENT')\">\r\n <span class=\"value\">\r\n <i class=\"icons\" ></i> {{assessment?.assessment_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n </app-popover>\r\n </form-field>\r\n\r\n\r\n <!-- Format & Evidence -->\r\n <form-field [appScrollInView]=\"scrollToBottom\" *ngIf=\"additionalOption?.FORMATE_EVIDENCE\" [checked]=\"[true,false].includes(controls?.evidence_required?.value)\"\r\n [active]=\"false\" [disabled]=\"sideElements.includes(activeList)\"\r\n [img]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/format-evidence.svg'\">\r\n <label class=\"vx-control-panel\">Evidence <i class=\"icons\" [appTooltip]=\"'This option lets you specify if the evidence of completion of a responsibility within a Program needs to be uploaded. If \u2018Yes\u2019 is selected, the assignees for all responsibilities associated with the Program will be required to upload evidence while completing the responsibility. However, the assignor can make changes to this setting if required.'\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i></label>\r\n <div class=\"upload-format\">\r\n\r\n <span class=\"text\">Do all responsibilities within this program require evidence?</span>\r\n <div class=\"radio-group program\">\r\n <app-cs-radio [name]=\"'evidence_required'\" [checked]=\"controls?.evidence_required?.value\"\r\n (checkedEvent)=\"setFormField('evidence_required',true)\">YES</app-cs-radio>\r\n <app-cs-radio [name]=\"'evidence_required'\" [checked]=\"!controls?.evidence_required?.value\"\r\n (checkedEvent)=\"setFormField('evidence_required',false)\">NO</app-cs-radio>\r\n </div>\r\n </div>\r\n <div class=\"vx-d-flex vx-align-center vx-justify-end vx-mt-2\">\r\n <div class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-mr-2\">Allow any file to be marked as\r\n key\r\n evidence</div>\r\n <switch formControlName=\"allow_any_file_key_evidence\"\r\n (change)=\"setFormField('allow_any_file_key_evidence',$event?.target?.checked)\"></switch>\r\n </div>\r\n </form-field>\r\n\r\n\r\n <!-- Custom Field -->\r\n <form-field [appScrollInView]=\"scrollToBottom\" *ngIf=\"additionalOption?.CUSTOM_FIELDS\" [checked]=\"controls?.custom_fields?.value?.length\"\r\n [active]=\"false\" [disabled]=\"sideElements.includes(activeList)\"\r\n [img]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/custom-fields.svg'\">\r\n <label class=\"vx-control-panel\">CUSTOM FIELDS <i class=\"icons\" [appTooltip]=\"'Custom fields enable you to add additional meta data to a responsibility.'\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i></label>\r\n <custom-field formControlName=\"custom_fields\"></custom-field>\r\n </form-field>\r\n </form>\r\n</div>\r\n\r\n\r\n<!-- list of roles -->\r\n<role-list *ngIf=\"activeList === 'ROLE'\" [selected]=\"controls?.program_roles?.value | refDisconnect\" [loading]=\"listLoadingState.ROLES\"\r\n [list]=\"lists?.ROLES?.data ?? []\" (save)=\"listAction($event,'ROLE')\" (cancel)=\"fieldDeselector('ROLE')\"></role-list>\r\n\r\n<!-- list of frameworks -->\r\n<app-define-framework-listing *ngIf=\"activeList === 'FRAMEWORK'\" (cancel)=\"fieldDeselector('FRAMEWORK')\" (next)=\"listAction($event,'FRAMEWORK')\" [mode]=\"mode\" [selectedFramework]=\"controls?.framework?.value\"></app-define-framework-listing>\r\n<!-- list of responsibility center -->\r\n<app-responsibility-centers-list *ngIf=\"activeList === 'RC'\" [responsibilityCentersList]=\"lists?.RC ?? []\"\r\n [radioSelection]=\"false\" [rcIdKey]=\"'rc_id'\" (closeRcList)=\"fieldDeselector('RC')\"\r\n (saveSelectedList)=\"listAction($event,'RC')\" [selectedResponsibilityCenters]=\"controls?.rc?.value | refDisconnect\">\r\n</app-responsibility-centers-list>\r\n<!-- render userlist with group -->\r\n\r\n<user-group-list *ngIf=\"activeList === 'OWNER'\" [groupEnabled]=\"true\" [singleSelect]=\"false\" [loading]=\"listLoadingState.USERS\"\r\n [nonRemovableUserIds]=\"lists.NON_REMOVABLE_OWNERS | listToId : 'member_id'\" [userlist]=\"lists?.OWNERS?.data ?? []\"\r\n [selectedUsers]=\"controls?.program_owners?.value | refDisconnect\"\r\n (fetchUserData)=\"fetchUsersAssociatedWithRoles(false,$event)\" [userListInfo]=\"lists?.OWNERS\"\r\n [groupListInfo]=\"lists?.OWNERS_GROUPS\" [groupList]=\"lists?.OWNERS_GROUPS?.data ?? []\"\r\n [selectedGroups]=\"controls?.program_owners_group?.value | refDisconnect\" (save)=\"listAction($event,'OWNER')\"\r\n (cancel)=\"fieldDeselector('OWNER')\" [panelTitle]=\"panelTitleOwner\"></user-group-list>\r\n<user-group-list *ngIf=\"activeList === 'APPROVER'\" [groupEnabled]=\"false\" [singleSelect]=\"true\"\r\n [userlist]=\"lists?.APPROVERS?.data ?? []\" [selectedUsers]=\"controls?.program_approver?.value | refDisconnect\"\r\n [userListInfo]=\"lists?.APPROVERS\" (save)=\"listAction($event,'APPROVER')\" (cancel)=\"fieldDeselector('APPROVER')\" [panelTitle]=\"panelTitleApprover\">\r\n</user-group-list>\r\n<user-group-list *ngIf=\"activeList === 'ASSIGNEE'\" [groupEnabled]=\"true\" [singleSelect]=\"false\"\r\n [userlist]=\"lists?.ASSIGNEES ?? []\" [selectedUsers]=\"controls?.program_assignee?.value | refDisconnect\" [groupList]=\"lists?.ASSIGNEES_GROUP ?? []\"\r\n [selectedGroups]=\"controls?.program_assignee_group?.value | refDisconnect\"\r\n [userListInfo]=\"lists?.ASSIGNEES\" (save)=\"listAction($event,'ASSIGNEE')\" (cancel)=\"fieldDeselector('ASSIGNEE')\" [panelTitle]=\"panelTitleAssignee\">\r\n</user-group-list>\r\n<user-group-list *ngIf=\"activeList === 'DEFAULT_ASSIGNEE'\" [groupEnabled]=\"true\" [singleSelect]=\"false\"\r\n [userlist]=\"lists?.DEFAULT_ASSIGNEES ?? []\" [selectedUsers]=\"controls?.program_default_assignee?.value | refDisconnect\" [groupList]=\"lists?.DEFAULT_ASSIGNEES_GROUP ?? []\"\r\n [selectedGroups]=\"controls?.program_default_assignee_group?.value | refDisconnect\"\r\n [userListInfo]=\"lists?.DEFAULT_ASSIGNEE\" (save)=\"listAction($event,'DEFAULT_ASSIGNEE')\" (cancel)=\"fieldDeselector('DEFAULT_ASSIGNEE')\">\r\n</user-group-list>\r\n\r\n<user-group-list *ngIf=\"activeList === 'REVIEWER'\" [groupEnabled]=\"false\" [singleSelect]=\"false\"\r\n [userlist]=\"lists?.REVIEWERS ?? []\" [selectedUsers]=\"controls?.program_reviewer?.value | refDisconnect\" [groupList]=\"lists?.REVIEWERS_GROUP ?? []\"\r\n [selectedGroups]=\"controls?.program_reviewer_group?.value | refDisconnect\"\r\n [userListInfo]=\"lists?.REVIEWERS\" (save)=\"listAction($event,'REVIEWER')\" (cancel)=\"fieldDeselector('REVIEWER')\" [panelTitle]=\"panelTitleReviewer\">\r\n</user-group-list>\r\n<user-group-list *ngIf=\"activeList === 'DEFAULT_REVIEWER'\" [groupEnabled]=\"false\" [singleSelect]=\"false\"\r\n [userlist]=\"lists?.DEFAULT_REVIEWERS ?? []\" [selectedUsers]=\"controls?.program_default_reviewer?.value | refDisconnect\" [groupList]=\"lists?.DEFAULT_REVIEWERS_GROUP ?? []\"\r\n [selectedGroups]=\"controls?.program_default_reviewer_group?.value | refDisconnect\"\r\n [userListInfo]=\"lists?.DEFAULT_REVIEWERS\" (save)=\"listAction($event,'DEFAULT_REVIEWER')\" (cancel)=\"fieldDeselector('DEFAULT_REVIEWER')\" [panelTitle]=\"panelTitleDefaultReviewer\">\r\n</user-group-list>\r\n<user-group-list *ngIf=\"activeList === 'OVERSEER'\" [groupEnabled]=\"false\" [singleSelect]=\"false\"\r\n [userlist]=\"lists?.OVERSEERS ?? []\" [selectedUsers]=\"controls?.program_overseer?.value | refDisconnect\" [groupList]=\"lists?.OVERSEERS_GROUP ?? []\"\r\n [selectedGroups]=\"controls?.program_overseer_group?.value | refDisconnect\"\r\n [userListInfo]=\"lists?.OVERSEES\" (save)=\"listAction($event,'OVERSEER')\" (cancel)=\"fieldDeselector('OVERSEER')\">\r\n</user-group-list>\r\n<user-group-list *ngIf=\"activeList === 'DEFAULT_OVERSEER'\" [groupEnabled]=\"false\" [singleSelect]=\"false\"\r\n [userlist]=\"lists?.DEFAULT_OVERSEERS ?? []\" [selectedUsers]=\"controls?.program_default_overseer?.value | refDisconnect\" [groupList]=\"lists?.DEFAULT_OVERSEERS_GROUP ?? []\"\r\n [selectedGroups]=\"controls?.program_default_overseer_group?.value | refDisconnect\"\r\n [userListInfo]=\"lists?.DEFAULT_OVERSEERS\" (save)=\"listAction($event,'DEFAULT_OVERSEER')\" (cancel)=\"fieldDeselector('DEFAULT_OVERSEER')\">\r\n</user-group-list>\r\n<user-group-list *ngIf=\"activeList === 'DEFAULT_FAILED_OVERSEER'\" [groupEnabled]=\"false\" [singleSelect]=\"false\"\r\n [userlist]=\"lists?.DEFAULT_OVERSEERS ?? []\" [selectedUsers]=\"controls?.program_default_failed_overseer?.value | refDisconnect\" [groupList]=\"lists?.DEFAULT_OVERSEERS_GROUP ?? []\"\r\n [selectedGroups]=\"controls?.program_default_failed_overseer_group?.value | refDisconnect\"\r\n [userListInfo]=\"lists?.DEFAULT_OVERSEERS\" (save)=\"listAction($event,'DEFAULT_FAILED_OVERSEER')\" (cancel)=\"fieldDeselector('DEFAULT_FAILED_OVERSEER')\">\r\n</user-group-list>\r\n<assessment-picker *ngIf=\"activeList === 'ASSESSMENT'\" [selectedAssessment]=\"controls?.program_assessments?.value\" (cancelAssessment)=\"fieldDeselector('ASSESSMENT')\" (onAssessmentSelect)=\"listAction($event,'ASSESSMENT')\"></assessment-picker>\r\n<app-loader-inline *ngIf=\"loader\"></app-loader-inline>\r\n <app-smiley-dialog-inline\r\n *ngIf=\"showSmiley\"\r\n [message]=\"smileyMessage\"\r\n [actionButtons]=\"actionButtons\"\r\n (action)=\"action($event)\"\r\n (closeSmiley)=\"closeSmiley($event)\">\r\n </app-smiley-dialog-inline>\r\n",
|
|
25532
|
+
template: "<div class=\"workflow-program\" #form>\r\n <form novalidate [formGroup]=\"programForm\">\r\n <!-- Program Category Type -->\r\n <form-field [checked]=\"controls?.program_type?.value > -1\" [active]=\"false\" [disabled]=\"sideElements.includes(activeList)\"\r\n [img]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/issue-type.svg'\">\r\n <label class=\"vx-control-panel\">PROGRAM TYPE <span class=\"required\">*</span></label>\r\n <tab-selector formControlName=\"program_type\" [displayArray]=\"constants?.categoryType\"></tab-selector>\r\n <!-- <p *ngIf=\"program_name?.invalid\" class=\"error-message\">Add a program type</p> -->\r\n </form-field>\r\n\r\n <!-- Program Category Name -->\r\n <form-field [checked]=\"controls?.program_name?.value?.trim()?.length\" [active]=\"false\" [disabled]=\"sideElements.includes(activeList)\"\r\n [img]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/what.svg'\">\r\n <label class=\"vx-control-panel\">PROGRAM NAME <span class=\"required\">*</span></label>\r\n <input InputTrim formControlName=\"program_name\" type=\"text\"\r\n placeholder=\"What is the Program name?\">\r\n\r\n <p *ngIf=\"controls?.program_name?.errors && controls?.program_name?.touched\" class=\"error-message\">Enter a\r\n name for this Program.</p>\r\n <p *ngIf=\"isNameExists\" class=\"error-message\">Program name already exists.</p>\r\n <div class=\"upload-files vx-d-flex vx-align-center vx-flex-wrap vx-mt-1\">\r\n <file-pill *ngFor=\"let attachment of controls?.description_attachment?.value |slice:0:2\"\r\n [extension]=\"attachment?.org_file?.split('.').pop()\" [name]=\"attachment?.org_file\"\r\n [disabled]=\"attachment?.uploading\" (delete)=\"deleteAttachment('DESCRIPTION',attachment)\">\r\n </file-pill>\r\n <button *ngIf=\"controls?.description_attachment?.value?.length > 2\" class=\"file-count\" appPopover (click)=\"uploadFile.popover()\" placement=\"right\">+{{controls?.description_attachment?.value?.length - 2}}</button>\r\n <app-popover #uploadFile [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li class=\"vx-p-2\" *ngFor=\"let attachment of controls?.description_attachment?.value|slice:2\">\r\n <file-pill [extension]=\"attachment?.org_file?.split('.').pop()\" [name]=\"attachment?.org_file\"\r\n [disabled]=\"attachment?.uploading\" (delete)=\"deleteAttachment('DESCRIPTION',attachment)\"></file-pill>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n <marx-editor [(ngModel)]=\"editorData.programDescription\" [ngModelOptions]=\"{standalone: true}\"\r\n (sendSavedFiles)=\"selectFile('DESCRIPTION',$event)\"\r\n (ngModelChange)=\"setFormField('program_description',$event)\" [editorConfig]=\"constants?.description\">\r\n </marx-editor>\r\n\r\n </form-field>\r\n\r\n <!-- Objective -->\r\n <form-field [checked]=\"controls?.program_objective?.value?.trim()?.length\" [active]=\"activeList === 'OBJECTIVE'\" [disabled]=\"sideElements.includes(activeList) && activeList !== 'OBJECTIVE'\"\r\n [img]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/objectives.svg'\">\r\n <label class=\"vx-control-panel\">OBJECTIVE\r\n <!-- <span class=\"required\">*</span> -->\r\n </label>\r\n <marx-editor [(ngModel)]=\"editorData.programObjective\" [ngModelOptions]=\"{standalone: true}\"\r\n (sendSavedFiles)=\"selectFile('OBJECTIVE',$event)\"\r\n (ngModelChange)=\"setFormField('program_objective',$event, true)\" [editorConfig]=\"constants?.objective\">\r\n </marx-editor>\r\n <!-- <p *ngIf=\"!isObjectiveValid\" class=\"error-message\">Specify the objective for this Program.</p> -->\r\n </form-field>\r\n\r\n <!-- Roles -->\r\n <form-field [checked]=\"controls?.program_roles?.value?.length \" [active]=\"activeList === 'ROLE'\" [disabled]=\"sideElements.includes(activeList) && activeList !== 'ROLE'\"\r\n [img]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/roles.svg'\">\r\n <label class=\"vx-control-panel\">ROLE(S) <span class=\"required\">*</span><i class=\"icons\" [appTooltip]=\"'Role(s) let you specify the users that can be selected as Program owners and approvers.'\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i></label>\r\n <input-with-pill [placeholder]=\"'Which user roles have access to this program?'\"\r\n (select)=\"activateList('ROLE')\">\r\n <div class=\"selected\" *ngIf=\"controls?.program_roles?.value?.length\">\r\n <div class=\"chip-container\">\r\n <div class=\"chip-inner\">\r\n <span class=\"chip\"><i *ngIf=\"!lists.SYSTEM_ROLE_IDS.includes(controls?.program_roles?.value[0]?._id)\"\r\n (click)=\"remove(controls?.program_roles?.value[0],'ROLE')\"\r\n class=\"icons\"></i>{{controls?.program_roles?.value[0]?.roleName}}</span>\r\n <button *ngIf=\"controls?.program_roles?.value?.length > 1\" class=\"count\" appPopover\r\n (click)=\"role.popover()\" placement=\"right\">\r\n +{{controls?.program_roles?.value?.length - 1}}</button>\r\n </div>\r\n </div>\r\n <button *ngIf=\"activeList!=='ROLE'\" class=\"edit\" type=\"button\" (click)=\"activateList('ROLE')\"><i class=\"icons\"></i>\r\n Edit</button>\r\n </div>\r\n </input-with-pill>\r\n <p *ngIf=\"false\" class=\"error-message\">Add a role(s)</p>\r\n <app-popover #role [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let data of controls?.program_roles?.value | slice:1\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i *ngIf=\"!lists.SYSTEM_ROLE_IDS.includes(data?._id)\" class=\"icons\"\r\n (click)=\"removeRole(data,'ROLE')\"></i>\r\n {{data?.roleName}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </form-field>\r\n\r\n <!-- Owners -->\r\n <form-field [checked]=\"controls?.program_owners.value?.length > 0 || controls?.program_owners_group.value?.length > 0\" [active]=\"activeList === 'OWNER'\" [disabled]=\"sideElements.includes(activeList) && activeList !== 'OWNER'\"\r\n [img]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/owner.svg'\">\r\n <label class=\"vx-control-panel\">OWNER(S) <span class=\"required\">*</span><i class=\"icons\" [appTooltip]=\"'An owner is a user responsible for managing a Program. By default, the Key Admin and all users designated as Admins are selected as Program owners. Only users selected as owners can edit and make changes to the program and its associated responsibilities.'\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i></label>\r\n <input-with-pill [placeholder]=\"'Who is responsible for managing this program?'\"\r\n (select)=\"activateList('OWNER')\">\r\n <div class=\"selected\" *ngIf=\"controls?.program_owners.value[0]\">\r\n <div class=\"chip-container\">\r\n <div class=\"chip-inner\">\r\n <span class=\"chip\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">USER(S)</span></span>\r\n <button class=\"count user\" appPopover (click)=\"owner.popover()\" placement=\"right\">{{controls?.program_owners?.value?.length}}</button>\r\n </div>\r\n <span class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\" *ngIf=\"controls?.program_owners_group?.value?.length && controls?.program_owners?.value?.length\">&</span>\r\n <div class=\"chip-inner\" *ngIf=\"controls?.program_owners_group?.value?.length\">\r\n <span class=\"chip\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">GROUP(S)</span></span>\r\n <button *ngIf=\"controls?.program_owners_group?.value?.length\" class=\"count\" appPopover (click)=\"group.popover()\" placement=\"right\">{{controls?.program_owners_group?.value?.length }}</button>\r\n </div>\r\n </div>\r\n <button *ngIf=\"activeList!=='OWNER'\" [class.disabled]=\"controls?.all_user_in_role?.value\" (click)=\"activateList('OWNER')\"\r\n class=\"edit\" type=\"button\"><i class=\"icons\"></i>Edit</button>\r\n </div>\r\n </input-with-pill>\r\n <p *ngIf=\"false\" class=\"error-message\">Add a owner(s)</p>\r\n <div class=\"vx-d-flex vx-align-center vx-justify-end vx-mt-2\">\r\n <div class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-mr-2\">ALL USERS ASSOCIATED WITH THE\r\n SELECTED ROLES</div>\r\n <switch formControlName=\"all_user_in_role\" (change)=\"selectAllRoleOwner($event)\"></switch>\r\n </div>\r\n <app-popover #owner [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let owner of controls?.program_owners?.value \">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i *ngIf=\"!['ADMIN','KEY_ADMIN','LOGGED_IN'].includes(owner?.user_role)\"\r\n class=\"icons\" (click)=\"remove(owner,'OWNER')\"></i>\r\n {{owner?.member_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <app-popover #group [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let owner of controls?.program_owners_group?.value \">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i *ngIf=\"!['ADMIN','KEY_ADMIN','LOGGED_IN'].includes(owner?.user_role)\"\r\n class=\"icons\" (click)=\"remove(owner,'OWNER_GROUP')\"></i>\r\n {{owner?.member_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </form-field>\r\n\r\n <!-- Approvers -->\r\n <form-field [checked]=\"controls?.program_approver?.value?.length\" [active]=\"activeList === 'APPROVER'\" [disabled]=\"sideElements.includes(activeList) && activeList !== 'APPROVER'\"\r\n [img]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/approval.svg'\">\r\n <label class=\"vx-control-panel\">APPROVER(S) <i class=\"icons\" [appTooltip]=\"'An approver is a user who is responsible for approving a Program. If an approver is selected, the Program can be started only after approval.'\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i></label>\r\n <input-with-pill [placeholder]=\"'Who is responsible for approving this program?'\"\r\n (select)=\"activateList('APPROVER')\">\r\n <div class=\"selected\" *ngIf=\"controls?.program_approver?.value[0]\">\r\n <div class=\"chip-container\">\r\n <div class=\"chip-inner\">\r\n <i (click)=\"remove(controls?.program_approver?.value[0],'APPROVER')\"\r\n class=\"icons vx-fs-9 vx-mr-1 cross\"></i>{{controls?.program_approver?.value[0]?.member_name}}\r\n </div>\r\n </div>\r\n <button *ngIf=\"activeList!=='APPROVER'\"(click)=\"activateList('APPROVER')\" class=\"edit\" type=\"button\"><i\r\n class=\"icons\"></i>Edit</button>\r\n </div>\r\n </input-with-pill>\r\n </form-field>\r\n\r\n <!-- Performance Calculated -->\r\n <form-field [checked]=\"controls?.performance_calculation?.value\" [active]=\"activeList === 'PERFORMANCE'\" [disabled]=\"sideElements.includes(activeList) && activeList !== 'PERFORMANCE'\"\r\n [img]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/performance-calc.svg'\">\r\n <label class=\"vx-control-panel\">HOW SHOULD THE PERFORMANCE OF THIS CATEGORY BE CALCULATED?</label>\r\n <tab-selector formControlName=\"performance_calculation\" [displayArray]=\"constants?.performanceCalculation\">\r\n </tab-selector>\r\n </form-field>\r\n <div class=\"scope-label vx-fs-10 vx-txt-white vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mb-5 vx-lh-4 vx-d-inline-block\">PROGRAM SCOPE</div> <i class=\"icons info-icon vx-fs-12 vx-txt-blue vx-ml-1\" [appTooltip]=\"'The scope lets you define the frequency of the Program and set up default assignees, overseers, reviewers, assessments, and Responsibility Centers for the responsibilities associated with this Program.'\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i>\r\n\r\n <!-- Program Frequency -->\r\n <form-field [checked]=\"[true,false].includes(controls?.recurring_frequency?.value)\" [active]=\"activeList === 'FREQUENCY'\" [disabled]=\"sideElements.includes(activeList) && activeList !== 'FREQUENCY'\"\r\n [img]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/recurring.svg'\">\r\n <label class=\"vx-control-panel\">PROGRAM FREQUENCY <i class=\"icons\" [appTooltip]=\"'The Program Frequency lets you specify if a Program is recurring. If a Program is not recurring, then the Program will complete its lifecycle on the last day of your organization\u2019s business cycle. Additionally, all responsibilities associated with the Program will also complete their lifecycle on the same day.'\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i></label>\r\n <div class=\"upload-format\">\r\n <div class=\"vx-d-flex vx-align-center vx-justify-between\">\r\n <span class=\"text vx-mb-0\">Is this program recurring?</span>\r\n <div class=\"radio-group program\">\r\n <app-cs-radio [name]=\"'recurring_frequency'\" [checked]=\"controls?.recurring_frequency?.value\"\r\n (checkedEvent)=\"setFormField('recurring_frequency',true)\">YES</app-cs-radio>\r\n <app-cs-radio [name]=\"'recurring_frequency'\" [checked]=\"!controls?.recurring_frequency?.value\"\r\n (checkedEvent)=\"setFormField('recurring_frequency',false)\">NO</app-cs-radio>\r\n </div>\r\n </div>\r\n </div>\r\n </form-field>\r\n\r\n <!-- Scope Changes -->\r\n <form-field [checked]=\"[true,false].includes(controls?.lock_scope_change?.value)\" [active]=\"activeList === 'SCOPE'\" [disabled]=\"sideElements.includes(activeList) && activeList !== 'SCOPE'\"\r\n [img]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/lock-scope.svg'\">\r\n <label class=\"vx-control-panel\">SCOPE CHANGES <i class=\"icons\" [appTooltip]=\"'If scope changes are locked, the owners cannot add or remove any new responsibilities and program categories once a Program has started.'\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i></label>\r\n <div class=\"upload-format\">\r\n <span class=\"text\">Would you like to <span class=\"vx-label-txt vx-fw-500\">lock changes</span> to the program\r\n scope?</span>\r\n <div class=\"radio-group program\">\r\n <app-cs-radio [name]=\"'lock_scope_change'\" [checked]=\"controls?.lock_scope_change?.value\"\r\n (checkedEvent)=\"setFormField('lock_scope_change',true)\">YES</app-cs-radio>\r\n <app-cs-radio [name]=\"'lock_scope_change'\" [checked]=\"!controls?.lock_scope_change?.value\"\r\n (checkedEvent)=\"setFormField('lock_scope_change',false)\">NO</app-cs-radio>\r\n </div>\r\n </div>\r\n </form-field>\r\n\r\n <!-- Framework -->\r\n <!-- <form-field [checked]=\"false\" [active]=\"activeList === 'FRAMEWORK'\" [disabled]=\"sideElements.includes(activeList) && activeList !== 'FRAMEWORK'\"\r\n [img]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/category.svg'\">\r\n <label class=\"vx-control-panel\">FRAMEWORK</label>\r\n <input-with-pill [placeholder]=\"'Select a framework that this Program relates to'\" (select)=\"activateList('FRAMEWORK')\">\r\n <div class=\"selected\" *ngIf=\"controls?.framework?.value?.framework_name\">\r\n <div class=\"chip-container\">\r\n <div class=\"chip-inner\">\r\n <span class=\"chip\"><i (click)=\"remove(controls?.framework.value,'FRAMEWORK')\" class=\"icons\"></i>{{controls?.framework?.value?.framework_name}}</span>\r\n <button class=\"count\" appPopover (click)=\"framework.popover()\" placement=\"right\">+5</button>\r\n </div>\r\n </div>\r\n <button *ngIf=\"activeList!=='FRAMEWORK'\" (click)=\"activateList('FRAMEWORK')\" class=\"edit\" type=\"button\"><i class=\"icons\"></i> Edit</button>\r\n </div>\r\n </input-with-pill>\r\n <app-popover #framework [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let data of [1, 1, 1, 1, 1, 1, 1]\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\"></i>\r\n Manage framework name\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </form-field> -->\r\n\r\n <!-- Responsibility Center -->\r\n <form-field [checked]=\"controls?.rc?.value?.length\" [active]=\"activeList === 'RC'\" [disabled]=\"sideElements.includes(activeList) && activeList !== 'RC'\"\r\n [img]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/responsibility-center.svg'\">\r\n <label class=\"vx-control-panel\">RESPONSIBILITY CENTER <i class=\"icons\" [appTooltip]=\"'Responsibility Centers represent your organizational and operational infrastructure. You can associate one or more Responsibility Centers with a Program. Thereafter, all the responsibilities within this Program can only be linked with the associated Responsibility Centers.'\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i></label>\r\n <input-with-pill (select)=\"activateList('RC')\"\r\n [placeholder]=\"'Which Responsibility Center(s) can be linked to the responsibilities associated with this Program?'\">\r\n <div class=\"selected\" *ngIf=\"controls?.rc?.value && controls?.rc?.value?.length\">\r\n <div class=\"chip-container\">\r\n <div class=\"chip-inner\">\r\n <span class=\"chip\"><i class=\"icons\"\r\n (click)=\"remove(controls?.rc?.value[0],'RC')\"></i>{{controls?.rc?.value[0]?.item_name}}</span>\r\n <button *ngIf=\"controls?.rc?.value?.length > 1\" class=\"count\" appPopover\r\n (click)=\"rc.popover()\" placement=\"right\">+{{controls?.rc?.value?.length -1 }}</button>\r\n </div>\r\n </div>\r\n <button *ngIf=\"activeList!=='RC'\" class=\"edit\" type=\"button\" (click)=\"activateList('RC')\"><i class=\"icons\"></i>\r\n Edit</button>\r\n </div>\r\n </input-with-pill>\r\n <app-popover #rc [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let rc of controls?.rc?.value |slice:1\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"remove(rc,'RC')\"></i>\r\n {{rc?.item_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </form-field>\r\n\r\n <!-- Assignee -->\r\n <form-field [checked]=\"controls?.program_assignee?.value?.length || controls?.program_default_assignee?.value?.length ||controls?.program_default_assignee?.value?.length || controls?.program_default_assignee_group?.value?.length\"\r\n [active]=\"['ASSIGNEE','DEFAULT_ASSIGNEE']?.includes(activeList)\" [disabled]=\"sideElements?.includes(activeList) && !['ASSIGNEE','DEFAULT_ASSIGNEE'].includes(activeList)\"\r\n [img]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/who.svg'\">\r\n <label class=\"vx-control-panel\" [class.disabled]=\"activeList === 'DEFAULT_ASSIGNEE'\">ASSIGNEE(S) <i class=\"icons\" [appTooltip]=\"'Assignees are users to whom you can assign a responsibility. While creating a Program, you can select the set of assignees responsible for completing responsibilities within this Program.'\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i> </label>\r\n <input-with-pill [disabled]=\"activeList === 'DEFAULT_ASSIGNEE'\" [placeholder]=\"'Who is responsible for executing/completing the responsibilities within this Program? '\"\r\n (select)=\"activateList('ASSIGNEE')\">\r\n <div class=\"selected\" *ngIf=\"controls?.program_assignee?.value?.length || controls?.program_assignee_group?.value?.length\">\r\n <div class=\"chip-container\">\r\n <div class=\"chip-inner\" *ngIf=\"controls?.program_assignee?.value?.length\">\r\n <span class=\"chip\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">USER(S)</span></span>\r\n <button class=\"count user\" appPopover (click)=\"assignee.popover()\" placement=\"right\">{{controls?.program_assignee?.value?.length}}</button>\r\n </div>\r\n <span class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\" *ngIf=\"controls?.program_assignee_group?.value?.length && controls?.program_assignee?.value?.length\">&</span>\r\n <div class=\"chip-inner\" *ngIf=\"controls?.program_assignee_group?.value?.length\">\r\n <span class=\"chip\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">GROUP(S)</span></span>\r\n <button *ngIf=\"controls?.program_assignee_group?.value?.length\" class=\"count\" appPopover (click)=\"assignee_group.popover()\" placement=\"right\">{{controls?.program_assignee_group?.value?.length }}</button>\r\n </div>\r\n </div>\r\n <button *ngIf=\"activeList!=='ASSIGNEE'\" class=\"edit\" type=\"button\" (click)=\"activateList('ASSIGNEE')\"><i class=\"icons\"></i> Edit</button>\r\n </div>\r\n </input-with-pill>\r\n <app-popover #assignee [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let assignee of controls?.program_assignee?.value\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i (click)=\"remove(assignee,'ASSIGNEE')\" class=\"icons\"></i>\r\n {{assignee?.member_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <app-popover #assignee_group [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let group of controls?.program_assignee_group?.value\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i (click)=\"remove(group,'ASSIGNEE_GROUP')\" class=\"icons\"></i>\r\n {{group?.group_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <label class=\"vx-control-panel\" [class.disabled]=\"activeList === 'ASSIGNEE'\">DEFAULT ASSIGNEE(S) <i class=\"icons\" [appTooltip]=\"'This option lets you specify the default assignees for all new responsibilities associated with a Program. If a default assignee is selected, the user will automatically be selected as an assignee within the \\'Create a Responsibility\\' form. However, the assignor can make changes, if required.'\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i></label>\r\n <input-with-pill [disabled]=\"activeList === 'ASSIGNEE'\" [placeholder]=\"'Which persons will be selected as the default assignees for the responsibilities within this Program?'\" (select)=\"activateList('DEFAULT_ASSIGNEE')\">\r\n <div class=\"selected\" *ngIf=\"controls?.program_default_assignee?.value?.length || controls?.program_default_assignee_group?.value?.length\">\r\n <div class=\"chip-container\">\r\n <div class=\"chip-inner\" *ngIf=\"controls?.program_default_assignee?.value?.length\">\r\n <span class=\"chip\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">USER(S)</span></span>\r\n <button class=\"count user\" appPopover (click)=\"defaultAssignee.popover()\" placement=\"right\">{{controls?.program_default_assignee?.value?.length}}</button>\r\n </div>\r\n <span class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\" *ngIf=\"controls?.program_default_assignee_group?.value?.length && controls?.program_default_assignee?.value?.length\">&</span>\r\n <div class=\"chip-inner\" *ngIf=\"controls?.program_default_assignee_group?.value?.length\">\r\n <span class=\"chip\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">GROUP(S)</span></span>\r\n <button *ngIf=\"controls?.program_default_assignee_group?.value?.length\" class=\"count\" appPopover (click)=\"defaultAssigneeGroup.popover()\" placement=\"right\">{{controls?.program_default_assignee_group?.value?.length }}</button>\r\n </div>\r\n </div>\r\n <button *ngIf=\"activeList!=='DEFAULT_ASSIGNEE'\" (click)=\"activateList('DEFAULT_ASSIGNEE')\" class=\"edit\" type=\"button\"><i class=\"icons\"></i> Edit</button>\r\n </div>\r\n </input-with-pill>\r\n <app-popover #defaultAssignee [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let assignee of controls?.program_default_assignee?.value \">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i (click)=\"remove(assignee,'DEFAULT_ASSIGNEE')\" class=\"icons\"></i>\r\n {{assignee?.member_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <app-popover #defaultAssigneeGroup [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let group of controls?.program_default_assignee_group?.value\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i (click)=\"remove(assignee,'DEFAULT_ASSIGNEE_GROUP')\" class=\"icons\"></i>\r\n {{group?.group_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <div class=\"radio-group-selector\" [class.disabled]=\"activeList === 'ASSIGNEE'\">\r\n <app-cs-radio [name]=\"'assignee'\" [checked]=\"controls?.assignee_completion_criteria?.value === 'ALL'\" (checkedEvent)=\"setFormField('assignee_completion_criteria', 'ALL')\">\r\n ALL SELECTED PERSONS NEED TO COMPLETE THIS <i class=\"icons\"\r\n [appTooltip]=\"'If selected, separate responsibilities will be created for each person.'\"\r\n placement=\"bottom-right\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\" ></i>\r\n </app-cs-radio>\r\n <app-cs-radio [name]=\"'assignee'\" [checked]=\"controls?.assignee_completion_criteria?.value === 'ANYONE'\" (checkedEvent)=\"setFormField('assignee_completion_criteria', 'ANYONE')\">\r\n ANY SELECTED PERSON CAN COMPLETE THIS <i class=\"icons\"\r\n [appTooltip]=\"'If selected, only one responsibility will be created.'\" placement=\"bottom-right\"\r\n delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i>\r\n </app-cs-radio>\r\n </div>\r\n </form-field>\r\n\r\n <!-- Reviewer -->\r\n <form-field [appScrollInView]=\"scrollToBottom\" *ngIf=\"additionalOption?.REVIEWER\"\r\n [checked]=\"controls?.program_reviewer?.value?.length || controls?.program_default_reviewer?.value?.length ||controls?.program_default_reviewer?.value?.length || controls?.program_default_reviewer_group?.value?.length\"\r\n [active]=\"['REVIEWER','DEFAULT_REVIEWER']?.includes(activeList)\" [disabled]=\"sideElements?.includes(activeList) && !['REVIEWER','DEFAULT_REVIEWER'].includes(activeList)\"\r\n [img]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/reviewer.svg'\">\r\n <label [class.disabled]=\"activeList === 'DEFAULT_REVIEWER'\" class=\"vx-control-panel\">Reviewer(s) <i class=\"icons\" [appTooltip]=\"'Reviewers are users who can review a responsibility after it has been completed. While creating a Program, you can select the set of reviewers responsible for reviewing responsibilities within this Program.'\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i></label>\r\n <input-with-pill [disabled]=\"activeList === 'DEFAULT_REVIEWER'\" [placeholder]=\"'Select persons responsible for executing controls within this program'\" (select)=\"activateList('REVIEWER')\">\r\n <div class=\"selected\" *ngIf=\"controls?.program_reviewer?.value?.length || controls?.program_reviewer_group?.value?.length\">\r\n\r\n <div class=\"chip-container\">\r\n <div class=\"chip-inner\" *ngIf=\"controls?.program_reviewer?.value?.length\">\r\n <span class=\"chip\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">USER(S)</span></span>\r\n <button class=\"count user\" appPopover (click)=\"reviewer.popover()\" placement=\"right\">{{controls?.program_reviewer?.value?.length}}</button>\r\n </div>\r\n <span class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\" *ngIf=\"controls?.program_reviewer_group?.value?.length && controls?.program_reviewer?.value?.length\">&</span>\r\n <div class=\"chip-inner\" *ngIf=\"controls?.program_reviewer_group?.value?.length\">\r\n <span class=\"chip\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">GROUP(S)</span></span>\r\n <button *ngIf=\"controls?.program_reviewer_group?.value?.length\" class=\"count\" appPopover (click)=\"reviewerGroup.popover()\" placement=\"right\">{{controls?.program_reviewer_group?.value?.length }}</button>\r\n </div>\r\n </div>\r\n <button *ngIf=\"activeList!=='REVIEWER'\" (click)=\"activateList('REVIEWER')\" class=\"edit\" type=\"button\"><i class=\"icons\"></i> Edit</button>\r\n </div>\r\n </input-with-pill>\r\n <app-popover #reviewer [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let reviewer of controls?.program_reviewer?.value\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i (click)=\"remove(reviewer,'REVIEWER')\" class=\"icons\"></i>\r\n {{reviewer?.member_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <app-popover #reviewerGroup [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let group of controls?.program_reviewer_group?.value\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i (click)=\"remove(group,'REVIEWER_GROUP')\" class=\"icons\"></i>\r\n {{group?.group_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <label [class.disabled]=\"activeList === 'REVIEWER'\" class=\"vx-control-panel\">DEFAULT Reviewer(S) <i class=\"icons\" [appTooltip]=\"'This option lets you specify the default reviewers for all new responsibilities associated with a Program. If a default reviewer is selected, the user will automatically be selected as a reviewer within the \\'Create a Responsibility\\' form. However, the assignor can make changes to this setting, if required.'\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i></label>\r\n <input-with-pill [disabled]=\"activeList === 'REVIEWER'\" [placeholder]=\"'Select persons responsible for executing controls within this program'\" (select)=\"activateList('DEFAULT_REVIEWER')\">\r\n <div class=\"selected\" *ngIf=\"controls?.program_default_reviewer?.value?.length || controls?.program_default_reviewer_group?.value?.length\">\r\n <div class=\"chip-container\">\r\n <div class=\"chip-inner\" *ngIf=\"controls?.program_default_reviewer?.value?.length\">\r\n <span class=\"chip\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">USER(S)</span></span>\r\n <button class=\"count user\" appPopover (click)=\"defaultReviewer.popover()\" placement=\"right\">{{controls?.program_default_reviewer?.value?.length}}</button>\r\n </div>\r\n <span class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\" *ngIf=\"controls?.program_default_reviewer_group?.value?.length && controls?.program_default_reviewer?.value?.length\">&</span>\r\n <div class=\"chip-inner\" *ngIf=\"controls?.program_default_reviewer_group?.value?.length\">\r\n <span class=\"chip\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">GROUP(S)</span></span>\r\n <button *ngIf=\"controls?.program_default_reviewer_group?.value?.length\" class=\"count\" appPopover (click)=\"assignee_group.popover()\" placement=\"right\">{{controls?.program_default_reviewer_group?.value?.length }}</button>\r\n </div>\r\n </div>\r\n <button *ngIf=\"activeList!=='DEFAULT_REVIEWER'\" (click)=\"activateList('DEFAULT_REVIEWER')\" class=\"edit\" type=\"button\"><i class=\"icons\"></i> Edit</button>\r\n </div>\r\n </input-with-pill>\r\n <app-popover #defaultReviewer [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let reviewer of controls?.program_default_reviewer?.value\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i (click)=\"remove(reviewer,'DEFAULT_REVIEWER')\" class=\"icons\"></i>\r\n {{reviewer?.member_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <app-popover #defaultReviewerGroup [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let group of controls?.program_default_reviewer_group?.value \">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i (click)=\"remove(group,'DEFAULT_REVIEWER_GROUP')\" class=\"icons\"></i>\r\n {{group?.group_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <div class=\"radio-group-selector\" [class.disabled]=\"activeList === 'REVIEWER'\">\r\n <app-cs-radio [name]=\"'reviewer'\" [checked]=\"controls?.reviewer_completion_criteria?.value == 'SEQUENTIAL'\" (checkedEvent)=\"setFormField('reviewer_completion_criteria', 'SEQUENTIAL')\">\r\n SEQUENTIAL <i class=\"icons\"\r\n [appTooltip]=\"'The responsibility will be sent for review one at a time in the sequence defined by you.'\"\r\n placement=\"bottom-right\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i>\r\n </app-cs-radio>\r\n <app-cs-radio [name]=\"'reviewer'\" [checked]=\"controls?.reviewer_completion_criteria?.value == 'ANYONE'\" (checkedEvent)=\"setFormField('reviewer_completion_criteria', 'ANYONE')\">\r\n ANY REVIEWER CAN MARK THIS AS REVIEWED <i class=\"icons\"\r\n [appTooltip]=\"'The responsibility will be sent for review to all reviewers at the same time. If anyone of the reviewer reviews the responsibility, it will be considered as reviewed.'\"\r\n placement=\"bottom-right\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i>\r\n </app-cs-radio>\r\n </div>\r\n </form-field>\r\n\r\n <!-- Overseer -->\r\n <form-field [appScrollInView]=\"scrollToBottom\" *ngIf=\"additionalOption?.OVERSEER\"\r\n [checked]=\"controls?.program_overseer?.value?.length || controls?.program_default_overseer?.value?.length ||controls?.program_default_overseer?.value?.length || controls?.program_default_overseer_group?.value?.length\"\r\n [active]=\"activeList === 'OVERSEER'\" [disabled]=\"sideElements?.includes(activeList) && !['OVERSEER','DEFAULT_OVERSEER','DEFAULT_FAILED_OVERSEER'].includes(activeList)\"\r\n [img]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/oversight.svg'\">\r\n <label class=\"vx-control-panel\" [class.disabled]=\"['DEFAULT_OVERSEER','DEFAULT_FAILED_OVERSEER'].includes(activeList)\">Overseer <i class=\"icons\" [appTooltip]=\"'Overseers refer to the users who can oversee a responsibility and receive email updates when a responsibility is completed or not completed. While creating a Program, this options lets you restrict the users who can oversee the responsibilities associated with the Program.'\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i></label>\r\n <input-with-pill [disabled]=\"['DEFAULT_OVERSEER','DEFAULT_FAILED_OVERSEER'].includes(activeList)\" [placeholder]=\"'Who should have oversight of the responsibility?'\" (select)=\"activateList('OVERSEER')\">\r\n <div class=\"selected\" *ngIf=\"controls?.program_overseer?.value?.length || controls?.program_overseer_group?.value?.length\">\r\n <div class=\"chip-container\">\r\n <div class=\"chip-inner\" *ngIf=\"controls?.program_overseer?.value?.length\">\r\n <span class=\"chip\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">USER(S)</span></span>\r\n <button class=\"count user\" appPopover (click)=\"overseers.popover()\" placement=\"right\">{{controls?.program_overseer?.value?.length}}</button>\r\n </div>\r\n\r\n <span *ngIf=\"controls?.program_overseer_group?.value?.length && controls?.program_overseer?.value?.length \" class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\">&</span>\r\n <div class=\"chip-inner\" *ngIf=\"controls?.program_overseer_group?.value?.length \">\r\n <span class=\"chip\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">GROUP(S)</span></span>\r\n <button class=\"count\" appPopover (click)=\"overseerGroup.popover()\" placement=\"right\">{{controls?.program_overseer_group?.value?.length}}</button>\r\n </div>\r\n </div>\r\n\r\n <button *ngIf=\"activeList!=='OVERSEER'\" (click)=\"activateList('OVERSEER')\" class=\"edit\" type=\"button\"><i class=\"icons\"></i> Edit</button>\r\n </div>\r\n </input-with-pill>\r\n <app-popover #overseers [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let overseer of controls?.program_overseer?.value\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"remove(overseer,'OVERSEER')\"></i> {{overseer?.member_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <app-popover #overseerGroup [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let group of controls?.program_overseer_group?.value\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i (click)=\"remove(group,'OVERSEER_GROUP')\" class=\"icons\"></i> {{group?.group_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <ng-container [class.disabled]=\"activeList === 'OVERSEER'\">\r\n <label class=\"vx-control-panel\" [class.disabled]=\"['OVERSEER'].includes(activeList)\">DEFAULT Overseer <i class=\"icons\" [appTooltip]=\"'This option lets you specify the default overseers for all new responsibilities associated with a Program. If a default overseer is selected, the user will automatically be selected as an overseer within the \\'Create a Responsibility\\' form. However, the assignor can make changes to this setting, if required.'\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i></label>\r\n <input-with-pill [disabled]=\"['OVERSEER','DEFAULT_FAILED_OVERSEER'].includes(activeList)\" [placeholder]=\"'Who should have oversight of the responsibility?'\" (select)=\"activateList('DEFAULT_OVERSEER')\">\r\n <div class=\"selected\" *ngIf=\"controls?.program_default_overseer?.value?.length || controls?.program_default_overseer_group?.value?.length\">\r\n <div class=\"chip-container\">\r\n <div class=\"chip-inner\" *ngIf=\"controls?.program_default_overseer?.value?.length\">\r\n <span class=\"chip\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">USER(S)</span></span>\r\n <button class=\"count user\" appPopover (click)=\"overseersDefault.popover()\" placement=\"right\">{{controls?.program_default_overseer?.value?.length}}</button>\r\n </div>\r\n\r\n <span *ngIf=\"controls?.program_default_overseer_group?.value?.length && controls?.program_default_overseer?.value?.length\" class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\">&</span>\r\n <div class=\"chip-inner\" *ngIf=\"controls?.program_default_overseer_group?.value?.length \">\r\n <span class=\"chip\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">GROUP(S)</span></span>\r\n <button class=\"count\" appPopover (click)=\"overseerDefaultGroup.popover()\" placement=\"right\">{{controls?.program_default_overseer_group?.value?.length}}</button>\r\n </div>\r\n </div>\r\n <button *ngIf=\"activeList!=='DEFAULT_OVERSEER'\" (click)=\"activateList('DEFAULT_OVERSEER')\" class=\"edit\" type=\"button\"><i class=\"icons\"></i> Edit</button>\r\n </div>\r\n </input-with-pill>\r\n <app-popover #overseersDefault [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let overseer of controls?.program_default_overseer?.value\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"remove(overseer,'DEFAULT_OVERSEER')\"></i> {{overseer?.member_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <app-popover #overseerDefaultGroup [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let group of controls?.program_default_overseer_group?.value\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i (click)=\"remove(group,'DEFAULT_OVERSEER_GROUP')\" class=\"icons\"></i> {{group?.group_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <label class=\"vx-control-panel\" > </label>\r\n <input-with-pill class=\"vx-mt-2\" [disabled]=\"['OVERSEER','DEFAULT_OVERSEER'].includes(activeList)\" [placeholder]=\"'Who should be notified if the responsibility is not completed?'\" (select)=\"activateList('DEFAULT_FAILED_OVERSEER')\">\r\n <div class=\"selected\" *ngIf=\"controls?.program_default_failed_overseer?.value?.length || controls?.program_default_failed_overseer_group?.value?.length\">\r\n <div class=\"chip-container\">\r\n <div class=\"chip-inner\" *ngIf=\"controls?.program_default_failed_overseer?.value?.length\">\r\n <span class=\"chip\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">USER(S)</span></span>\r\n <button class=\"count user\" appPopover (click)=\"overseersDefaultFail.popover()\" placement=\"right\">{{controls?.program_default_failed_overseer?.value?.length}}</button>\r\n </div>\r\n\r\n <span *ngIf=\"controls?.program_default_failed_overseer_group?.value?.length && controls?.program_default_failed_overseer?.value?.length\" class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\">&</span>\r\n <div class=\"chip-inner\" *ngIf=\"controls?.program_default_failed_overseer_group?.value?.length \">\r\n <span class=\"chip\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">GROUP(S)</span></span>\r\n <button class=\"count\" appPopover (click)=\"overseerDefaultFailGroup.popover()\" placement=\"right\">{{controls?.program_default_failed_overseer_group?.value?.length}}</button>\r\n </div>\r\n </div>\r\n <button *ngIf=\"activeList!=='DEFAULT_FAILED_OVERSEER'\" (click)=\"activateList('DEFAULT_FAILED_OVERSEER')\" class=\"edit\" type=\"button\"><i class=\"icons\"></i> Edit</button>\r\n </div>\r\n </input-with-pill>\r\n <app-popover #overseersDefaultFail [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let overseer of controls?.program_default_failed_overseer?.value\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"remove(overseer,'DEFAULT_FAILED_OVERSEER')\"></i> {{overseer?.member_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <app-popover #overseerDefaultFailGroup [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let group of controls?.program_default_failed_overseer_group?.value\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i (click)=\"remove(group,'DEFAULT_FAILED_OVERSEER_GROUP')\" class=\"icons\"></i> {{group?.group_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n</ng-container>\r\n </form-field>\r\n\r\n <!-- Assessment -->\r\n <form-field [appScrollInView]=\"scrollToBottom\" *ngIf=\"additionalOption?.ASSESSMENT\"\r\n [checked]=\"controls?.program_assessments?.value?.length\"\r\n [active]=\"activeList === 'ASSESSMENT'\" [disabled]=\"sideElements.includes(activeList) && activeList !== 'ASSESSMENT'\"\r\n [img]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/assessments.svg'\">\r\n <label class=\"vx-control-panel\">ASSESSMENTS <i class=\"icons\" [appTooltip]=\"'Assessments allows you to associate outcome based questionnaires or self-assessment questionnaires with a responsibility. This option lets you specify which assessments can be linked with responsibilities within a Program.'\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i></label>\r\n <input-with-pill [placeholder]=\"'Select assessment for this responsibility'\" (select)=\"activateList('ASSESSMENT')\">\r\n <div class=\"selected\" *ngIf=\"controls?.program_assessments?.value?.length\">\r\n <div class=\"chip-container\">\r\n <ng-container *ngIf=\"(controls?.program_assessments?.value | assessmentResolver) as assessments\">\r\n <div class=\"chip-inner\">\r\n <span class=\"chip\"><i class=\"icons\"\r\n (click)=\"remove(assessments[0],'ASSESSMENT')\"></i>{{assessments[0]?.assessment_name}} </span>\r\n <button *ngIf=\"assessments?.length > 1\" class=\"count\" appPopover\r\n (click)=\"program_assessments.popover()\" placement=\"right\">+{{assessments?.length -1 }}</button>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <button *ngIf=\"activeList!=='ASSESSMENT'\" class=\"edit\" type=\"button\" (click)=\"activateList('ASSESSMENT')\"><i class=\"icons\"></i>\r\n Edit</button>\r\n </div>\r\n </input-with-pill>\r\n <app-popover #program_assessments [dontCloseonClick]=\"true\">\r\n <ng-container >\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n\r\n <li *ngFor=\"let assessment of (controls?.program_assessments?.value | assessmentResolver) | slice:1\">\r\n <div class=\"avatar-card\" (click)=\"remove(assessment,'ASSESSMENT')\">\r\n <span class=\"value\">\r\n <i class=\"icons\" ></i> {{assessment?.assessment_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n </app-popover>\r\n </form-field>\r\n\r\n\r\n <!-- Format & Evidence -->\r\n <form-field [appScrollInView]=\"scrollToBottom\" *ngIf=\"additionalOption?.FORMATE_EVIDENCE\" [checked]=\"[true,false].includes(controls?.evidence_required?.value)\"\r\n [active]=\"false\" [disabled]=\"sideElements.includes(activeList)\"\r\n [img]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/format-evidence.svg'\">\r\n <label class=\"vx-control-panel\">Evidence <i class=\"icons\" [appTooltip]=\"'This option lets you specify if the evidence of completion of a responsibility within a Program needs to be uploaded. If \u2018Yes\u2019 is selected, the assignees for all responsibilities associated with the Program will be required to upload evidence while completing the responsibility. However, the assignor can make changes to this setting if required.'\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i></label>\r\n <div class=\"upload-format\">\r\n\r\n <span class=\"text\">Do all responsibilities within this program require evidence?</span>\r\n <div class=\"radio-group program\">\r\n <app-cs-radio [name]=\"'evidence_required'\" [checked]=\"controls?.evidence_required?.value\"\r\n (checkedEvent)=\"setFormField('evidence_required',true)\">YES</app-cs-radio>\r\n <app-cs-radio [name]=\"'evidence_required'\" [checked]=\"!controls?.evidence_required?.value\"\r\n (checkedEvent)=\"setFormField('evidence_required',false)\">NO</app-cs-radio>\r\n </div>\r\n </div>\r\n <div class=\"vx-d-flex vx-align-center vx-justify-end vx-mt-2\">\r\n <div class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-mr-2\">Allow any file to be marked as\r\n key\r\n evidence</div>\r\n <switch formControlName=\"allow_any_file_key_evidence\"\r\n (change)=\"setFormField('allow_any_file_key_evidence',$event?.target?.checked)\"></switch>\r\n </div>\r\n </form-field>\r\n\r\n\r\n <!-- Custom Field -->\r\n <form-field [appScrollInView]=\"scrollToBottom\" *ngIf=\"additionalOption?.CUSTOM_FIELDS\" [checked]=\"controls?.custom_fields?.value?.length\"\r\n [active]=\"false\" [disabled]=\"sideElements.includes(activeList)\"\r\n [img]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/custom-fields.svg'\">\r\n <label class=\"vx-control-panel\">CUSTOM FIELDS <i class=\"icons\" [appTooltip]=\"'Custom fields enable you to add additional meta data to a responsibility.'\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"></i></label>\r\n <custom-field formControlName=\"custom_fields\"></custom-field>\r\n </form-field>\r\n </form>\r\n</div>\r\n\r\n\r\n<!-- list of roles -->\r\n<role-list *ngIf=\"activeList === 'ROLE'\" [selected]=\"controls?.program_roles?.value | refDisconnect\" [loading]=\"listLoadingState.ROLES\"\r\n [list]=\"lists?.ROLES?.data ?? []\" (save)=\"listAction($event,'ROLE')\" (cancel)=\"fieldDeselector('ROLE')\"></role-list>\r\n\r\n<!-- list of frameworks -->\r\n<app-define-framework-listing *ngIf=\"activeList === 'FRAMEWORK'\" (cancel)=\"fieldDeselector('FRAMEWORK')\" (next)=\"listAction($event,'FRAMEWORK')\" [mode]=\"mode\" [selectedFramework]=\"controls?.framework?.value\"></app-define-framework-listing>\r\n<!-- list of responsibility center -->\r\n<app-responsibility-centers-list *ngIf=\"activeList === 'RC'\" [responsibilityCentersList]=\"lists?.RC ?? []\"\r\n [radioSelection]=\"false\" [rcIdKey]=\"'rc_id'\" (closeRcList)=\"fieldDeselector('RC')\"\r\n (saveSelectedList)=\"listAction($event,'RC')\" [selectedResponsibilityCenters]=\"controls?.rc?.value | refDisconnect\">\r\n</app-responsibility-centers-list>\r\n<!-- render userlist with group -->\r\n\r\n<user-group-list *ngIf=\"activeList === 'OWNER'\" [groupEnabled]=\"true\" [singleSelect]=\"false\" [loading]=\"listLoadingState.USERS\"\r\n [nonRemovableUserIds]=\"lists.NON_REMOVABLE_OWNERS | listToId : 'member_id'\" [userlist]=\"lists?.OWNERS?.data ?? []\"\r\n [selectedUsers]=\"controls?.program_owners?.value | refDisconnect\"\r\n (fetchUserData)=\"fetchUsersAssociatedWithRoles(false,$event)\" [userListInfo]=\"lists?.OWNERS\"\r\n [groupListInfo]=\"lists?.OWNERS_GROUPS\" [groupList]=\"lists?.OWNERS_GROUPS?.data ?? []\"\r\n [selectedGroups]=\"controls?.program_owners_group?.value | refDisconnect\" (save)=\"listAction($event,'OWNER')\"\r\n (cancel)=\"fieldDeselector('OWNER')\" [panelTitle]=\"panelTitleOwner\"></user-group-list>\r\n<user-group-list *ngIf=\"activeList === 'APPROVER'\" [groupEnabled]=\"false\" [singleSelect]=\"true\"\r\n [userlist]=\"lists?.APPROVERS?.data ?? []\" [selectedUsers]=\"controls?.program_approver?.value | refDisconnect\"\r\n [userListInfo]=\"lists?.APPROVERS\" (save)=\"listAction($event,'APPROVER')\" (cancel)=\"fieldDeselector('APPROVER')\" [panelTitle]=\"panelTitleApprover\">\r\n</user-group-list>\r\n<user-group-list *ngIf=\"activeList === 'ASSIGNEE'\" [groupEnabled]=\"true\" [singleSelect]=\"false\"\r\n [userlist]=\"lists?.ASSIGNEES ?? []\" [selectedUsers]=\"controls?.program_assignee?.value | refDisconnect\" [groupList]=\"lists?.ASSIGNEES_GROUP ?? []\"\r\n [selectedGroups]=\"controls?.program_assignee_group?.value | refDisconnect\"\r\n [userListInfo]=\"lists?.ASSIGNEES\" (save)=\"listAction($event,'ASSIGNEE')\" (cancel)=\"fieldDeselector('ASSIGNEE')\" [panelTitle]=\"panelTitleAssignee\">\r\n</user-group-list>\r\n<user-group-list *ngIf=\"activeList === 'DEFAULT_ASSIGNEE'\" [groupEnabled]=\"true\" [singleSelect]=\"false\"\r\n [userlist]=\"lists?.DEFAULT_ASSIGNEES ?? []\" [selectedUsers]=\"controls?.program_default_assignee?.value | refDisconnect\" [groupList]=\"lists?.DEFAULT_ASSIGNEES_GROUP ?? []\"\r\n [selectedGroups]=\"controls?.program_default_assignee_group?.value | refDisconnect\"\r\n [userListInfo]=\"lists?.DEFAULT_ASSIGNEE\" (save)=\"listAction($event,'DEFAULT_ASSIGNEE')\" (cancel)=\"fieldDeselector('DEFAULT_ASSIGNEE')\">\r\n</user-group-list>\r\n\r\n<user-group-list *ngIf=\"activeList === 'REVIEWER'\" [groupEnabled]=\"false\" [singleSelect]=\"false\"\r\n [userlist]=\"lists?.REVIEWERS ?? []\" [selectedUsers]=\"controls?.program_reviewer?.value | refDisconnect\" [groupList]=\"lists?.REVIEWERS_GROUP ?? []\"\r\n [selectedGroups]=\"controls?.program_reviewer_group?.value | refDisconnect\"\r\n [userListInfo]=\"lists?.REVIEWERS\" (save)=\"listAction($event,'REVIEWER')\" (cancel)=\"fieldDeselector('REVIEWER')\" [panelTitle]=\"panelTitleReviewer\">\r\n</user-group-list>\r\n<user-group-list *ngIf=\"activeList === 'DEFAULT_REVIEWER'\" [groupEnabled]=\"false\" [singleSelect]=\"false\"\r\n [userlist]=\"lists?.DEFAULT_REVIEWERS ?? []\" [selectedUsers]=\"controls?.program_default_reviewer?.value | refDisconnect\" [groupList]=\"lists?.DEFAULT_REVIEWERS_GROUP ?? []\"\r\n [selectedGroups]=\"controls?.program_default_reviewer_group?.value | refDisconnect\"\r\n [userListInfo]=\"lists?.DEFAULT_REVIEWERS\" (save)=\"listAction($event,'DEFAULT_REVIEWER')\" (cancel)=\"fieldDeselector('DEFAULT_REVIEWER')\" [panelTitle]=\"panelTitleDefaultReviewer\">\r\n</user-group-list>\r\n<user-group-list *ngIf=\"activeList === 'OVERSEER'\" [groupEnabled]=\"false\" [singleSelect]=\"false\"\r\n [userlist]=\"lists?.OVERSEERS ?? []\" [selectedUsers]=\"controls?.program_overseer?.value | refDisconnect\" [groupList]=\"lists?.OVERSEERS_GROUP ?? []\"\r\n [selectedGroups]=\"controls?.program_overseer_group?.value | refDisconnect\"\r\n [userListInfo]=\"lists?.OVERSEES\" (save)=\"listAction($event,'OVERSEER')\" (cancel)=\"fieldDeselector('OVERSEER')\">\r\n</user-group-list>\r\n<user-group-list *ngIf=\"activeList === 'DEFAULT_OVERSEER'\" [groupEnabled]=\"false\" [singleSelect]=\"false\"\r\n [userlist]=\"lists?.DEFAULT_OVERSEERS ?? []\" [selectedUsers]=\"controls?.program_default_overseer?.value | refDisconnect\" [groupList]=\"lists?.DEFAULT_OVERSEERS_GROUP ?? []\"\r\n [selectedGroups]=\"controls?.program_default_overseer_group?.value | refDisconnect\"\r\n [userListInfo]=\"lists?.DEFAULT_OVERSEERS\" (save)=\"listAction($event,'DEFAULT_OVERSEER')\" (cancel)=\"fieldDeselector('DEFAULT_OVERSEER')\">\r\n</user-group-list>\r\n<user-group-list *ngIf=\"activeList === 'DEFAULT_FAILED_OVERSEER'\" [groupEnabled]=\"false\" [singleSelect]=\"false\"\r\n [userlist]=\"lists?.DEFAULT_OVERSEERS ?? []\" [selectedUsers]=\"controls?.program_default_failed_overseer?.value | refDisconnect\" [groupList]=\"lists?.DEFAULT_OVERSEERS_GROUP ?? []\"\r\n [selectedGroups]=\"controls?.program_default_failed_overseer_group?.value | refDisconnect\"\r\n [userListInfo]=\"lists?.DEFAULT_OVERSEERS\" (save)=\"listAction($event,'DEFAULT_FAILED_OVERSEER')\" (cancel)=\"fieldDeselector('DEFAULT_FAILED_OVERSEER')\">\r\n</user-group-list>\r\n<assessment-picker *ngIf=\"activeList === 'ASSESSMENT'\" [selectedAssessment]=\"controls?.program_assessments?.value\" (cancelAssessment)=\"fieldDeselector('ASSESSMENT')\" (onAssessmentSelect)=\"listAction($event,'ASSESSMENT')\"></assessment-picker>\r\n<app-loader-inline *ngIf=\"loader\"></app-loader-inline>\r\n <app-smiley-dialog-inline\r\n *ngIf=\"showSmiley\"\r\n [message]=\"smileyMessage\"\r\n [actionButtons]=\"actionButtons\"\r\n (action)=\"action($event)\"\r\n (closeSmiley)=\"closeSmiley($event)\">\r\n </app-smiley-dialog-inline>\r\n",
|
|
25525
25533
|
styles: ["@import url(\"https://cdn.v-comply.com/design-system/css/icons/icons.css\");@import url(\"https://cdn.v-comply.com/design-system/css/display/display.css\");@import url(\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\");@import url(\"https://cdn.v-comply.com/design-system/css/text/text.css\");@import url(\"https://cdn.v-comply.com/design-system/css/color/color.css\");@import url(\"https://cdn.v-comply.com/design-system/css/padding/padding.css\");@import url(\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\");@import url(\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\");@import url(\"https://cdn.v-comply.com/design-system/css/margin/margin.css\");@import url(\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\");@import url(\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\");@import url(\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\");@import url(\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\");::ng-deep .workflow-program{display:block;position:relative}::ng-deep .workflow-program .scope-label{background:#747576;border-radius:.125rem;position:relative;z-index:1}::ng-deep .workflow-program .scope-label:before{background:#f1f1f1;content:\"\";position:absolute;top:.5rem;left:7rem;width:20rem;height:1px;z-index:-1}::ng-deep .workflow-program .scope-label:after{background:#f1f1f1;content:\"\";position:absolute;top:.5rem;left:-2.5rem;width:2.5rem;height:1px;z-index:-1}::ng-deep .workflow-program .scope-label .required{position:absolute;top:0;right:-.625rem}::ng-deep .workflow-program .info-icon{position:relative;top:.125rem;cursor:pointer}::ng-deep .workflow-program .date-picker .picker-group{width:calc(50% - .125rem);position:relative}::ng-deep .workflow-program .date-picker .picker-group:focus-within{border-color:#1e5dd3;box-shadow:0 0 5px rgba(30,93,211,.27)}::ng-deep .workflow-program .date-picker .picker-group input{height:2.5rem;border-radius:.25rem;border:1px solid #dbdbdb;background:#fff;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;padding:0 2rem 0 .75rem;outline:none}::ng-deep .workflow-program .date-picker .picker-group input:focus,::ng-deep .workflow-program .date-picker .picker-group input:hover{border-color:#1e5dd3;box-shadow:0 0 5px rgba(30,93,211,.27)}::ng-deep .workflow-program .date-picker .picker-group input::-moz-placeholder{color:#747576;font-size:13px}::ng-deep .workflow-program .date-picker .picker-group input::placeholder{color:#747576;font-size:13px}::ng-deep .workflow-program .date-picker .picker-group input:-ms-input-placeholder{color:#747576;font-size:13px}::ng-deep .workflow-program .date-picker .picker-group input::-ms-input-placeholder{color:#747576;font-size:13px}::ng-deep .workflow-program .date-picker .picker-group i{height:1rem;width:1rem;position:absolute;right:.75rem;top:.625rem;pointer-events:none}::ng-deep .workflow-program .program-type-field{background:#f8f8f8;border:1px solid #dbdbdb;border-radius:4px;height:40px;display:flex;align-items:center;justify-content:space-between;padding:4px;position:relative;z-index:1}::ng-deep .workflow-program .program-type-field .type-item{position:relative}::ng-deep .workflow-program .program-type-field .type-item:first-of-type{width:6.25rem}::ng-deep .workflow-program .program-type-field .type-item:nth-child(2){width:5.75rem}::ng-deep .workflow-program .program-type-field .type-item:nth-child(2).active~.background-glider{transform:translate(6.4375rem);width:5.75rem}::ng-deep .workflow-program .program-type-field .type-item:nth-child(3){width:8.625rem}::ng-deep .workflow-program .program-type-field .type-item:nth-child(3).active~.background-glider{transform:translate(12.375rem);width:8.625rem}::ng-deep .workflow-program .program-type-field .type-item:last-of-type{width:5.25rem}::ng-deep .workflow-program .program-type-field .type-item:last-of-type.active~.background-glider{transform:translate(21.1875rem);width:5.25rem}::ng-deep .workflow-program .program-type-field .type-item button{background:transparent;border:none;border-radius:0;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase;width:100%;height:32px;padding:0 12px;text-align:center}::ng-deep .workflow-program .program-type-field .type-item button.disabled{background:transparent!important;color:#dbdbdb!important;filter:unset!important;opacity:unset!important;pointer-events:none}::ng-deep .workflow-program .program-type-field .type-item .info{color:#1e5dd3;font-size:12px;position:absolute;top:10px;right:12px;cursor:pointer}::ng-deep .workflow-program .program-type-field .type-item.active button{color:#1e5dd3!important}::ng-deep .workflow-program .program-type-field .background-glider{background:#fff;border-radius:4px;box-shadow:0 1px 3px #161b2f26;position:absolute;display:flex;width:6.25rem;height:32px;z-index:-1;transition:.25s ease-out}::ng-deep .workflow-program .vx-form-group .upload-files .file-item{background:#f1f1f1;border:1px solid #dbdbdb;border-radius:.25rem;padding-left:.125rem}::ng-deep .workflow-program .vx-form-group .upload-files .file-item .file-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:8.5rem}::ng-deep .workflow-program .vx-form-group .upload-files .file-item button.delete-btn{background:transparent;border-radius:0;border:none;border-left:1px solid #dbdbdb;height:1.625rem}::ng-deep .workflow-program .vx-form-group .upload-files button.file-count{background:#1e5dd3;border-radius:.125rem;border:none;color:#fff;font-size:11px;display:flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0;margin:4px 0 0 4px}::ng-deep .workflow-program .vx-form-group .upload-format .radio-group app-cs-radio{height:1.375rem}::ng-deep .workflow-program .vx-form-group .default-selected{background:#fbfbfb;border:1px solid #f1f1f1;border-radius:.25rem;margin-top:.5rem}::ng-deep .workflow-program .vx-form-group .default-selected .selected{border-radius:0;border:none;background:none}::ng-deep .workflow-program .vx-form-group .default-selected .default-radio{border-top:1px solid #f1f1f1}::ng-deep .workflow-program .vx-form-group .default-selected .default-radio app-cs-radio{margin-top:0!important}::ng-deep .workflow-program .vx-form-group .default-selected .default-radio app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .workflow-program .vx-form-group .default-selected .default-radio app-cs-radio label.radio-item span.radio{position:absolute;top:.5rem;left:.75rem}::ng-deep .workflow-program .vx-form-group .default-selected .default-radio app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;padding:.5rem .5rem .5rem 2.25rem;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .workflow-program .vx-form-group .default-selected .default-radio app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .workflow-program .vx-form-group .default-selected .default-radio app-cs-radio label.radio-item svg{position:absolute;top:.5rem;left:.75rem}::ng-deep .workflow-program .vx-form-group .selected .custom-text{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-height:2.4rem}::ng-deep .workflow-program .vx-form-group .selected button.cross-btn{background:transparent;border-radius:0;border:0;padding:0}::ng-deep .workflow-program .vx-form-group .custom-input{position:relative}::ng-deep .workflow-program .vx-form-group .custom-input input{padding-right:2rem}::ng-deep .workflow-program .vx-form-group .custom-input button.cross-btn{background:transparent;border-radius:0;border:0;position:absolute;top:.875rem;right:.625rem}::ng-deep .workflow-program .vx-form-group button.add-more-btn{background:transparent;border-radius:0;border:none;padding:0}::ng-deep app-popover .action-list ul.action-item .avatar-card .value{text-transform:none!important}::ng-deep app-popover .action-list ul.action-item li file-pill .file-item{background:transparent!important;border:none!important;border-radius:0!important;padding:0!important;margin:0!important}::ng-deep app-popover .action-list ul.action-item li file-pill .file-name{width:100%!important;max-width:100%!important}::ng-deep app-popover .action-list ul.action-item li file-pill button.delete-btn{border:none!important;padding-right:0!important}.disabled{opacity:.4;pointer-events:none;filter:grayscale(1)}", "@import url(\"https://cdn.v-comply.com/design-system/css/icons/icons.css\");::-webkit-scrollbar-track{background-color:#f1f1f1;position:absolute}::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}button{font-family:Poppins,sans-serif}::ng-deep .vx-form-group{display:block;position:relative;margin-bottom:20px}::ng-deep .vx-form-group:after{content:\"\";display:block;clear:both}::ng-deep .vx-form-group .select{position:relative}::ng-deep .vx-form-group .select:after{border-left-color:#707070;border-bottom:1px solid #707070;border-right:1px solid #707070;border-top-color:#707070;content:\"\";display:inline-block;right:15px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .vx-form-group .select input{cursor:pointer;padding-right:30px!important}::ng-deep .vx-form-group .select .custom-input{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;outline:none;padding:3px 12px;line-height:16px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;cursor:pointer}::ng-deep .vx-form-group .select .custom-input:empty:not(:focus):before{content:attr(aria-placeholder);line-height:16px;font-size:13px;width:94%;display:block;pointer-events:none;opacity:.8}::ng-deep .vx-form-group .select .custom-input:hover{border-color:#1e5dd3;box-shadow:0 0 5px rgba(30,93,211,.27)}::ng-deep .vx-form-group .select .custom-input.frequency-custom-input{padding-right:116px}::ng-deep .vx-form-group .select+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .select+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .select+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .select~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .select.button-sec:after{display:none}::ng-deep .vx-form-group .select.button-sec button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;position:absolute;top:12px;right:8px;padding:0;margin:0}::ng-deep .vx-form-group .select+.vx-control-panel{margin-top:8px}::ng-deep .vx-form-group .select+.selected{margin-top:8px}::ng-deep .vx-form-group .select.select{margin-top:8px}::ng-deep .vx-form-group .upload-format{border:1px solid #dbdbdb;border-radius:4px;padding:8px 12px;display:block}::ng-deep .vx-form-group .upload-format span.text{line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:block;margin-bottom:6px}::ng-deep .vx-form-group .upload-format .radio-group{display:flex}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio{display:inline-block}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;margin-left:8px}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio+app-cs-radio{margin-left:12px}::ng-deep .vx-form-group .upload-format~.upload-format{margin-top:4px}::ng-deep .vx-form-group .form-tab{display:flex;justify-content:flex-start}::ng-deep .vx-form-group .form-tab button{background:transparent;color:#161b2f;font-size:11px;line-height:16px;text-transform:uppercase;cursor:pointer;padding:8px 8px 8px 0;border:none;outline:none;font-weight:500}::ng-deep .vx-form-group .form-tab button:disabled{opacity:.5;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}::ng-deep .vx-form-group .form-tab button+button{padding:8px}::ng-deep .vx-form-group .form-tab button.active{color:#1e5dd3}::ng-deep .vx-form-group .tab-group{border:1px solid #dbdbdb;border-radius:4px;padding:0;display:block;position:relative}::ng-deep .vx-form-group .tab-group .upload-file{padding:16px 24px;display:flex;align-items:center}::ng-deep .vx-form-group .tab-group .upload-file .image{width:80px;margin-right:20px}::ng-deep .vx-form-group .tab-group .upload-file .browse{display:flex;align-items:center;justify-content:center;width:calc(100% - 100px);text-align:center}::ng-deep .vx-form-group .tab-group .upload-file .browse span{display:inline-block;font-size:12px;color:#747576;line-height:16px;padding:0 4px}::ng-deep .vx-form-group .tab-group .upload-file .browse .label{font-size:11px;color:#1e5dd3;line-height:16px;font-weight:600;text-transform:uppercase;margin:0;padding:0}::ng-deep .vx-form-group .tab-group .upload-file .browse .label input{opacity:0;position:absolute;top:0;margin:0;padding:0;right:0;bottom:0;left:0;cursor:pointer;width:100%}::ng-deep .vx-form-group .tab-group.active{border-color:#1e5dd3}::ng-deep .vx-form-group .tab-group.uploaded{margin-top:4px}::ng-deep .vx-form-group .tab-group.uploaded .upload-file{padding:12px \u200B24px}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .image{display:none}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .browse{width:100%}::ng-deep .vx-form-group .tab-group+label.vx-form-group{margin-top:8px;margin-bottom:4px}::ng-deep .vx-form-group .file-list{background:#fbfbfb;border:1px solid #f1f1f1;border-radius:4px;padding:12px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;position:relative}::ng-deep .vx-form-group .file-list span.file-name{color:#747576;line-height:16px;font-size:11px;font-weight:400;cursor:pointer;max-width:calc(100% - 20px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .vx-form-group .file-list .button-group{display:flex}::ng-deep .vx-form-group .file-list button{font-size:12px;color:#eb2424;cursor:pointer;display:flex;padding:0;border:none;outline:none;background:transparent}::ng-deep .vx-form-group .file-list button.edit{color:#1e5dd3}::ng-deep .vx-form-group .file-list button+button{margin-left:16px}::ng-deep .vx-form-group .file-list+.file-list{margin-top:4px}::ng-deep .vx-form-group .file-list .file-container{display:flex;justify-content:space-between;width:100%}::ng-deep .vx-form-group .file-list.policy{background:#fff}::ng-deep .vx-form-group .file-list cs-select{position:relative;margin-top:8px;width:100%}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group input.value{height:32px!important;font-size:11px!important}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group i{right:12px!important;top:12px!important}::ng-deep .vx-form-group .file-list app-line-loader{display:block;position:absolute;left:10px;right:10px;bottom:0}::ng-deep .vx-form-group label.vx-control-panel{color:#161b2f;font-size:11px;font-weight:500;line-height:16px;margin-bottom:8px;display:block;text-transform:uppercase;width:100%;margin-top:4px;text-align:left}::ng-deep .vx-form-group label.vx-control-panel.custom-tag{font-size:10px}::ng-deep .vx-form-group label.vx-control-panel.vx-mt-8{margin-top:8px}::ng-deep .vx-form-group label.vx-control-panel span.required{color:#eb2424;font-size:16px;font-weight:400;position:relative;top:-2px}::ng-deep .vx-form-group label.vx-control-panel .button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;padding:0;margin:0}::ng-deep .vx-form-group label.vx-control-panel app-cs-switch{float:right;display:block}::ng-deep .vx-form-group label.vx-control-panel i{margin-left:8px;font-size:12px;color:#1e5dd3;cursor:pointer;position:relative;top:1px}::ng-deep .vx-form-group label.vx-control-panel i.depreciation-icon{color:#e4b700;font-size:16px;position:relative;top:3px}::ng-deep .vx-form-group label.vx-control-panel .checkpoint-version{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:10px;font-weight:600;line-height:14px;margin-left:4px;padding:0 2px}::ng-deep .vx-form-group .input,::ng-deep .vx-form-group input[type=text]{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;outline:none;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400}::ng-deep .vx-form-group .input::-moz-placeholder,::ng-deep .vx-form-group input[type=text]::-moz-placeholder{color:#747576;font-weight:400}::ng-deep .vx-form-group .input:-ms-input-placeholder,::ng-deep .vx-form-group input[type=text]:-ms-input-placeholder{color:#747576;font-weight:400}::ng-deep .vx-form-group .input::placeholder,::ng-deep .vx-form-group input[type=text]::placeholder{color:#747576;font-weight:400}::ng-deep .vx-form-group .input:focus,::ng-deep .vx-form-group .input:hover,::ng-deep .vx-form-group input[type=text]:focus,::ng-deep .vx-form-group input[type=text]:hover{border-color:#1e5dd3;box-shadow:0 0 5px rgba(30,93,211,.27)}::ng-deep .vx-form-group .input.error,::ng-deep .vx-form-group input[type=text].error{border-color:#eb2424;color:#eb2424;margin-bottom:4px}::ng-deep .vx-form-group .input.error:focus,::ng-deep .vx-form-group input[type=text].error:focus{box-shadow:0 0 5px rgba(211,30,30,.27)}::ng-deep .vx-form-group .input:disabled,::ng-deep .vx-form-group input[type=text]:disabled{background:#f1f1f1;cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}::ng-deep .vx-form-group .input:disabled:hover,::ng-deep .vx-form-group input[type=text]:disabled:hover{border-color:#dbdbdb;box-shadow:none}::ng-deep .vx-form-group .input span.text,::ng-deep .vx-form-group input[type=text] span.text{font-size:13px;color:#747576;font-weight:400;display:block;width:100%}::ng-deep .vx-form-group .input .input-group,::ng-deep .vx-form-group input[type=text] .input-group{display:flex;align-items:center}::ng-deep .vx-form-group .input .input-group.counter,::ng-deep .vx-form-group input[type=text] .input-group.counter{min-width:96px;width:96px}::ng-deep .vx-form-group .input .input-group.counter button,::ng-deep .vx-form-group input[type=text] .input-group.counter button{height:24px;width:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#747576;font-size:8px;cursor:pointer;outline:none}::ng-deep .vx-form-group .input .input-group.counter input,::ng-deep .vx-form-group input[type=text] .input-group.counter input{-webkit-appearance:textfield;-moz-appearance:textfield;height:24px;width:calc(100% - 48px);border:1px solid #f1f1f1;outline:none;padding:0 6px;text-align:center}::ng-deep .vx-form-group .input .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-outer-spin-button,::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0}::ng-deep .vx-form-group .input+.file-list,::ng-deep .vx-form-group input[type=text]+.file-list{margin-top:8px}::ng-deep .vx-form-group .input::-moz-placeholder,::ng-deep .vx-form-group input[type=text]::-moz-placeholder{font-size:13px}::ng-deep .vx-form-group .input::placeholder,::ng-deep .vx-form-group input[type=text]::placeholder{font-size:13px}::ng-deep .vx-form-group .input:-ms-input-placeholder,::ng-deep .vx-form-group input[type=text]:-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group .input::-ms-input-placeholder,::ng-deep .vx-form-group input[type=text]::-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group .classification{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;padding:8px 12px;display:flex;justify-content:space-between}::ng-deep .vx-form-group .classification label{width:100%;position:relative;z-index:1;margin:0 4px 0 0}::ng-deep .vx-form-group .classification label span{display:block;width:100%;height:24px;border:1px solid #f1f1f1;border-radius:2px;line-height:24px;font-size:10px;text-align:center;color:#747576;font-weight:500;position:relative;text-transform:uppercase}::ng-deep .vx-form-group .classification label span:before{height:2px;content:\"\";top:0;right:0;left:0;border-radius:2px;position:absolute;transition:all .2s ease-in-out}::ng-deep .vx-form-group .classification label input{opacity:0;position:absolute;top:0;right:0;bottom:0;left:0;margin:0;padding:0;width:100%;height:100%;cursor:pointer;z-index:1}::ng-deep .vx-form-group .classification label input:checked+span{color:#fff}::ng-deep .vx-form-group .classification label input:checked+span:before{bottom:0;height:100%;z-index:-1}::ng-deep .vx-form-group .classification label.low span:before{background:#34aa44}::ng-deep .vx-form-group .classification label.low-med span:before{background:#f2bf19}::ng-deep .vx-form-group .classification label.med-high span:before{background:#f29619}::ng-deep .vx-form-group .classification label.high span:before{background:#eb2424}::ng-deep .vx-form-group .classification label:last-of-type{margin-right:0}::ng-deep .vx-form-group .input{display:flex;align-items:center}::ng-deep .vx-form-group .selected{height:40px;border-radius:4px;border:1px solid #f1f1f1;background:#fbfbfb;outline:none;padding:8px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:flex;align-items:center;position:relative;justify-content:space-between}::ng-deep .vx-form-group .selected.first-field{z-index:2}::ng-deep .vx-form-group .selected .chip-container{display:flex;width:calc(100% - 60px);align-items:center}::ng-deep .vx-form-group .selected .chip-container.checkpoints{width:calc(100% - 120px)}::ng-deep .vx-form-group .selected .chip-container span.chip{background:#fff;border-radius:2px;box-shadow:0 0 3px #1e5dd31a;height:24px;padding:0 8px;color:#1e5dd3;font-size:12px;display:block;width:auto;max-width:100%;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:24px}::ng-deep .vx-form-group .selected .chip-container span.chip.disabled{background:#f1f1f1;box-shadow:none;color:#747576;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}::ng-deep .vx-form-group .selected .chip-container span.chip i{font-weight:400;margin-right:8px;cursor:pointer;font-size:10px;position:relative;top:1px}::ng-deep .vx-form-group .selected .chip-container span.chip span.step{background:#1e5dd3;border-radius:2px;color:#fff;font-size:9px;line-height:14px;padding:0 4px;font-weight:400;text-align:center;min-width:auto;margin-right:4px}::ng-deep .vx-form-group .selected .chip-container span.chip+span.chip{margin-left:4px}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question{display:flex;align-items:center;justify-content:space-between;width:100%}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.value{color:#1e5dd3;font-size:12px;font-weight:400;line-height:24px;padding:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:calc(100% - 80px)}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.label{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:9px;font-weight:600;text-transform:uppercase;padding-left:4px;padding-right:4px;line-height:12px;margin-left:8px}::ng-deep .vx-form-group .selected .chip-container span.value{color:#747576;font-size:13px;line-height:20px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 52px);padding:0 4px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text{color:#747576;font-size:10px;font-weight:500;padding:0 8px;width:122px;line-height:14px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first{position:relative;min-width:162px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first:before{background:#f1f1f1;content:\"\";position:absolute;top:0;right:0;height:calc(100% + 12px);width:1px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text .no{color:#1e5dd3}::ng-deep .vx-form-group .selected .chip-container.plus span.chip{max-width:calc(50% - 35px)}::ng-deep .vx-form-group .selected .chip-container.more-one span.chip{max-width:50%}::ng-deep .vx-form-group .selected .chip-container .chip-inner{background:#fff;border-radius:2px;box-shadow:0 2px 4px #1e5dd31a;line-height:24px;padding:0 4px 0 8px;display:flex;align-items:center}::ng-deep .vx-form-group .selected .chip-container .chip-inner .chip{background:transparent;border-radius:0;box-shadow:none;height:auto;line-height:unset;padding:0;color:#747576;max-width:300px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count{border-radius:20px;height:16px;padding:0 6px;border:none;font-size:9px;line-height:16px;margin-left:4px;min-width:20px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count.user{background:#34aa44}::ng-deep .vx-form-group .selected .chip-container .chip-inner i.cross{cursor:pointer}::ng-deep .vx-form-group .selected button.count{background:#1e5dd3;border-radius:2px;height:24px;padding:0 8px;border:1px solid #1e5dd3;cursor:pointer;outline:none;color:#fff;font:13px;font-weight:500;line-height:20px;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit{border:1px solid #f1f1f1;border-radius:2px;background:#fff;outline:none;cursor:pointer;display:block;height:24px;padding:0 5px 0 4px;font-size:11px;font-weight:500;color:#1e5dd3;text-transform:uppercase;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit i{font-weight:400;font-size:8px;margin-right:4px}::ng-deep .vx-form-group .selected button.close-btn{background:transparent;border:none;padding:0;margin-left:8px;font-size:10px;color:#c7381b;display:flex;align-items:center}::ng-deep .vx-form-group .selected .workflow-label{min-width:92px;padding:4px;text-align:center;margin-left:-8px;margin-right:8px;border-right:1px solid #f1f1f1}::ng-deep .vx-form-group .selected .workflow-label p{margin:0;display:block;text-transform:uppercase}::ng-deep .vx-form-group .selected .workflow-label p.title{font-size:9px;line-height:12px;color:#161b2f;font-weight:500}::ng-deep .vx-form-group .selected .workflow-label p.description{font-size:11px;line-height:16px;color:#161b2f;font-weight:600}::ng-deep .vx-form-group .selected .workflow-label+.chip-container{width:calc(100% - 148px)}::ng-deep .vx-form-group .selected+.selected{margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .selected+app-cs-switch.who-toggle label.cs-switch span.value{color:#747576}::ng-deep .vx-form-group .selected+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .selected~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .selected.readOnly{pointer-events:none}::ng-deep .vx-form-group .selected span.chip{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .vx-form-group .select-list{position:absolute;background:#fff;box-shadow:0 0 5px #1e5dd3;top:100%;right:0;left:0;z-index:2}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item{width:100%;padding:12px 16px}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item:hover{background:#f8f8f8}::ng-deep .vx-form-group marx-editor{margin-top:8px;display:block}::ng-deep .vx-form-group marx-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb}::ng-deep .vx-form-group marx-editor .editor-container .editable-block{min-height:60px;padding:11px 15px;max-height:100px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}::ng-deep .vx-form-group marx-editor .editor-container .editable-block ul{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group marx-editor .editor-container .editable-block ul li{list-style:disc}::ng-deep .vx-form-group marx-editor .editor-container .editable-block ol{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group marx-editor .editor-container .editable-block ol li{list-style:decimal}::ng-deep .vx-form-group marx-editor .editor-container .editor-tools{z-index:1;border-top:1px solid #dbdbdb;transition:none;border-radius:0 0 3px 3px;position:static}::ng-deep .vx-form-group marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep .vx-form-group marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:22px}::ng-deep .vx-form-group marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep .vx-form-group marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep .vx-form-group marx-editor .editor-container:focus-within{border-color:#1e5dd3!important}::ng-deep .vx-form-group marx-editor .editor-container:focus-within .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group marx-editor .editor-container:hover{border-color:#1e5dd3!important}::ng-deep .vx-form-group marx-editor .editor-container:hover .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group marx-editor+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group app-cs-switch label.cs-switch span.value{font-size:11px;color:#747576;text-transform:uppercase}::ng-deep .vx-form-group app-cs-switch+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group .date-time-picker{display:flex;justify-content:space-between;height:40px;border-radius:4px;border:1px solid #dbdbdb;padding:11px 0}::ng-deep .vx-form-group .date-time-picker:focus-within{border-color:#1e5dd3;box-shadow:0 0 5px rgba(30,93,211,.27)}::ng-deep .vx-form-group .date-time-picker .picker-group{width:50%;position:relative;display:flex;align-items:center}::ng-deep .vx-form-group .date-time-picker .picker-group:first-of-type{border-right:1px solid #dbdbdb}::ng-deep .vx-form-group .date-time-picker .picker-group:only-of-type{border:none;width:100%}::ng-deep .vx-form-group .date-time-picker .picker-group input{height:38px;background:#fff;line-height:38px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400;border:none;padding:0 12px 0 34px;outline:none}::ng-deep .vx-form-group .date-time-picker .picker-group input:focus,::ng-deep .vx-form-group .date-time-picker .picker-group input:hover{box-shadow:none;border:none}::ng-deep .vx-form-group .date-time-picker .picker-group input::-moz-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input::placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input:-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input::-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group i{display:flex;justify-content:center;align-items:center;height:16px;width:16px;position:absolute;left:12px;top:0;color:#bcbcbc;font-size:16px;pointer-events:none}::ng-deep .vx-form-group app-cs-radio.main-filed{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;color:#707070}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .switch-row{display:flex}::ng-deep .vx-form-group .switch-row app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:0;text-transform:uppercase;color:#747576!important}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value i{display:inline-flex;font-size:11px;cursor:pointer;color:#1e5dd3;align-items:center;line-height:16px;margin:0 4px}::ng-deep .vx-form-group .switch-row app-cs-switch+app-cs-switch{margin-left:8px}::ng-deep .vx-form-group .switch-row.align-right{justify-content:flex-end}::ng-deep .vx-form-group .switch-row.align-right label.cs-switch span.value{margin-right:8px}::ng-deep .vx-form-group .risk-type-field{background:#f8f8f8;border:1px solid #dbdbdb;border-radius:4px;height:40px;display:flex;align-items:center;padding:4px;position:relative;z-index:1}::ng-deep .vx-form-group .risk-type-field .type-item{width:50%;position:relative}::ng-deep .vx-form-group .risk-type-field .type-item button{background:transparent;border:none;border-radius:0;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase;width:100%;height:32px;padding:0 12px;text-align:left}::ng-deep .vx-form-group .risk-type-field .type-item button.disabled{background:transparent!important;color:#dbdbdb!important;filter:unset!important;opacity:unset!important;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}::ng-deep .vx-form-group .risk-type-field .type-item .info{color:#1e5dd3;font-size:12px;position:absolute;top:10px;right:12px;cursor:pointer}::ng-deep .vx-form-group .risk-type-field .type-item.active button{color:#1e5dd3!important}::ng-deep .vx-form-group .risk-type-field .type-item:nth-child(2).active~.background-glider{transform:translate(100%)}::ng-deep .vx-form-group .risk-type-field .background-glider{background:#fff;border-radius:4px;box-shadow:0 1px 3px #161b2f26;position:absolute;display:flex;width:208px;height:32px;z-index:-1;transition:.25s ease-out}.left{width:36px;height:36px;margin-top:30px;margin-left:-58px;margin-right:20px;display:flex;justify-content:center;align-items:center;position:relative;z-index:10;border-radius:50%}.left.deadline-completed{margin-top:18px}.left.checked{background:transparent}.left img{width:36px}.left .checkIcon{width:32px;height:32px;background:#fff;border-radius:50%;stroke-width:4;stroke:#34aa44;stroke-miterlimit:10;box-shadow:inset 0 0 0 #34aa44;-webkit-animation:fillCheck .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;animation:fillCheck .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;margin-top:0}.left .checkIcon__circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#34aa44;fill:none;-webkit-animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards;animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards}.left .checkIcon__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;-webkit-animation:strokeCheck .3s cubic-bezier(.65,0,.45,1) .8s forwards;animation:strokeCheck .3s cubic-bezier(.65,0,.45,1) .8s forwards}.right{width:100%}.right span.indicator{position:absolute;top:36px;left:-16px;font-size:12px;color:#f0b819;cursor:pointer}.form-group-row{display:flex;position:relative;transition:all .2s ease-in-out}.form-group-row.disabled{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;filter:grayscale(1);z-index:2}.form-group-row.disabled .left{position:relative}.form-group-row.disabled .left:before{content:\"\";position:absolute;top:2px;right:0;bottom:0;left:2px;background:#fff;opacity:.7;border-radius:50%;width:32px;height:32px}.form-group-row.disabled .right{opacity:.3}.form-group-row.active{pointer-events:none;filter:grayscale(0);z-index:2;opacity:1}.form-group-row.active .right .vx-form-group .custom-input,.form-group-row.active .right .vx-form-group input{border-color:#1e5dd3;box-shadow:0 0 5px rgba(30,93,211,.27)}::ng-deep .radio-group-selector app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .radio-group-selector app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .radio-group-selector app-cs-radio label.radio-item .radio,::ng-deep .radio-group-selector app-cs-radio label.radio-item .radiomark{position:absolute!important;top:9px;left:12px}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value{font-size:11px!important;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0!important;max-width:100%!important;font-weight:500!important;color:#707070!important}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value i{font-size:12px;color:#1e5dd3}::ng-deep .radio-group-selector app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}@-webkit-keyframes strokeCheck{to{stroke-dashoffset:0}}@keyframes strokeCheck{to{stroke-dashoffset:0}}@-webkit-keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}@keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}.action-list{width:220px}.action-list ul{padding:0;margin:0;-webkit-animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}.action-list ul.action-item{display:block}.action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}.action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}.action-list ul.action-item li button i{font-size:17px;margin-right:10px;color:#1c5bd1}.action-list ul.action-item li button:hover{background:#f3f3f3}.action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}.action-list ul.action-item li .avatar-card.within-con{display:block}.action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;overflow:hidden;background:#4681ef;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}.action-list ul.action-item li .avatar-card .avatar img{width:100%}.action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}.action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;-moz-text-align-last:left;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}.action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#1c5bd1;cursor:pointer;margin-right:5px}.action-list ul.action-item li .avatar-card.no-image{display:block}.action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}.action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}.action-list ul.action-item li .chip-item i{margin-right:7px;font-size:10px;cursor:pointer;display:inline-flex}.action-list ul.action-item li .chip-item span{display:block;width:auto;max-width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}.action-list ul.action-item li .chip-item span.id{font-size:9px}.action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}.action-list ul.action-item li .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}.action-list ul.action-item li .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}.action-list ul.action-item li:first-child{-webkit-animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(2){-webkit-animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(3){-webkit-animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(4){-webkit-animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(5){-webkit-animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(6){-webkit-animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(7){-webkit-animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(8){-webkit-animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(9){-webkit-animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(10){-webkit-animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@-webkit-keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@-webkit-keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}p.error-message{font-size:11px;font-weight:400;color:#eb2424;line-height:16px;margin-top:8px;margin-bottom:0}.edit-loader{position:absolute;top:-3px;left:-3px;width:46px;height:46px;transform:rotate(180deg)}.circular-loader{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;height:100%;transform-origin:center center;width:100%;position:absolute;top:0;left:0;margin:auto}.loader-path{stroke-dasharray:150,200;stroke-dashoffset:-10;-webkit-animation:dash 1.5s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite;stroke-linecap:round}@-webkit-keyframes rotate{to{transform:rotate(1turn)}}@keyframes rotate{to{transform:rotate(1turn)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35}to{stroke-dasharray:89,200;stroke-dashoffset:-124}}@keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35}to{stroke-dasharray:89,200;stroke-dashoffset:-124}}::ng-deep .dropdown{position:fixed;background:#fff;box-shadow:0 3px 6px #00000029;padding:24px 0;z-index:9;max-height:calc(100vh - 200px);overflow:auto}::ng-deep .dropdown ul.dropdown-list{padding:0 20px;margin:0;display:block}::ng-deep .dropdown ul.dropdown-list li{list-style:none}::ng-deep .dropdown ul.dropdown-list li app-cs-radio{display:flex}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.radio{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.value{padding:11px 12px 11px 32px;width:100%;border:1px solid #bcbcbc;border-radius:4px;margin-left:0;max-width:100%}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item svg{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item input[type=radio]:checked~span.value{background:#e8feeb;border-color:#34aa44}::ng-deep .dropdown ul.dropdown-list li+li{margin-top:8px}app-smiley-dialog{position:relative;z-index:10}app-smiley-dialog-inline{position:absolute;top:-3px;right:0;bottom:0;z-index:999;width:520px;height:calc(100vh + 3px)}::ng-deep .vx-overlay{position:fixed;z-index:3;top:0;right:0;bottom:0;left:0}dp-date-picker{width:100%;position:fixed!important;z-index:14;top:-40px;left:0}dp-date-picker input{width:100%;border:none;opacity:0;pointer-events:none}dp-date-picker input:focus{outline:none}dp-date-picker .dp-popup{width:412px;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;-webkit-animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}dp-date-picker .dp-popup dp-day-calendar,dp-date-picker .dp-popup dp-month-calendar{width:100%;pointer-events:auto}dp-date-picker .dp-popup dp-day-calendar button,dp-date-picker .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right,dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:hover{background-color:#f3f3f3}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:before,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000;display:inline-flex}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week,dp-date-picker .dp-popup dp-day-calendar .dp-weekdays,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays{display:flex;justify-content:space-around}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,dp-date-picker .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button,dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button:hover,dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button:hover,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button:hover,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button:hover{background-color:#f3f3f3}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-selected{background:#1e5dd3}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}dp-date-picker .dp-popup dp-day-calendar .dp-day-calendar-container,dp-date-picker .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-wrapper,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}dp-date-picker .dp-open+div{position:fixed!important;top:0!important;right:0!important;bottom:0!important;left:0!important;display:flex;justify-content:center;align-items:center;z-index:99;pointer-events:none;background:rgba(0,0,0,.3)}@-webkit-keyframes slide-bottom{0%{transform:translateY(-100px)}to{transform:translateY(0)}}@keyframes slide-bottom{0%{transform:translateY(-100px)}to{transform:translateY(0)}}::ng-deep span.file{display:block;width:20px;min-width:20px;border-radius:0 0 2px 2px;position:relative;margin-right:5px;border:1px solid #747576;border-top:none;margin-top:5px;background:#fff}::ng-deep span.file.table{margin-right:8px;width:18px;min-width:18px}::ng-deep span.file.table i{font-size:8px}::ng-deep span.file.table .format{height:8px;font-size:7px;line-height:8px;font-weight:400}::ng-deep span.file:before{position:absolute;border-radius:0;top:-4px;right:-1px;content:\"\";height:4px;width:4px;display:block;background:linear-gradient(45deg,#747576,#747576 1%,#747576 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file:after{height:4px;left:-1px;right:3px;border-top:1px solid;border-right:none;border-left:1px solid;content:\"\";top:-4px;position:absolute;border-radius:2px 0 0 0;background:#fff}::ng-deep span.file .format{height:10px;font-size:6px;text-transform:uppercase;background:transparent;font-weight:600;text-align:center;display:block;line-height:10px}::ng-deep span.file i{font-size:10px;height:10px;display:flex;align-items:center;justify-content:center;color:#dbdbdb}::ng-deep span.file.docx{width:22px!important}::ng-deep span.file.pdf,::ng-deep span.file.template{border-color:#f31c39}::ng-deep span.file.pdf:before,::ng-deep span.file.template:before{background:linear-gradient(45deg,#f31c39,#f31c39 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#f31c39\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.pdf:after,::ng-deep span.file.template:after{border-color:#f31c39}::ng-deep span.file.pdf .format,::ng-deep span.file.template .format{color:#f31c39}::ng-deep span.file.css,::ng-deep span.file.less,::ng-deep span.file.scss,::ng-deep span.file.xls,::ng-deep span.file.xlsx{border-color:#34aa44}::ng-deep span.file.css:before,::ng-deep span.file.less:before,::ng-deep span.file.scss:before,::ng-deep span.file.xls:before,::ng-deep span.file.xlsx:before{background:linear-gradient(45deg,#34aa44,#34aa44 1%,#34aa44 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.css:after,::ng-deep span.file.less:after,::ng-deep span.file.scss:after,::ng-deep span.file.xls:after,::ng-deep span.file.xlsx:after{border-color:#34aa44;color:#34aa44}::ng-deep span.file.css .format,::ng-deep span.file.less .format,::ng-deep span.file.scss .format,::ng-deep span.file.xls .format,::ng-deep span.file.xlsx .format{color:#34aa44}::ng-deep span.file.doc,::ng-deep span.file.docx,::ng-deep span.file.psd{border-color:#1e5dd3}::ng-deep span.file.doc:before,::ng-deep span.file.docx:before,::ng-deep span.file.psd:before{background:linear-gradient(45deg,#1e5dd3,#1e5dd3 1%,#1e5dd3 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.doc:after,::ng-deep span.file.docx:after,::ng-deep span.file.psd:after{border-color:#1e5dd3}::ng-deep span.file.doc .format,::ng-deep span.file.docx .format,::ng-deep span.file.psd .format{color:#1e5dd3}::ng-deep span.file.ai,::ng-deep span.file.html,::ng-deep span.file.jpeg,::ng-deep span.file.jpg,::ng-deep span.file.png,::ng-deep span.file.ppt{border-color:#f6882f}::ng-deep span.file.ai:before,::ng-deep span.file.html:before,::ng-deep span.file.jpeg:before,::ng-deep span.file.jpg:before,::ng-deep span.file.png:before,::ng-deep span.file.ppt:before{background:linear-gradient(45deg,#f6882f,#f6882f 1%,#f6882f 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.ai:after,::ng-deep span.file.html:after,::ng-deep span.file.jpeg:after,::ng-deep span.file.jpg:after,::ng-deep span.file.png:after,::ng-deep span.file.ppt:after{border-color:#f6882f}::ng-deep span.file.ai .format,::ng-deep span.file.html .format,::ng-deep span.file.jpeg .format,::ng-deep span.file.jpg .format,::ng-deep span.file.png .format,::ng-deep span.file.ppt .format{color:#f6882f}::ng-deep span.file.php{border-color:#7aa6f7}::ng-deep span.file.php:before{background:linear-gradient(45deg,#7aa6f7,#7aa6f7 1%,#7aa6f7 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.php:after{border-color:#7aa6f7}::ng-deep span.file.php .format{color:#7aa6f7}::ng-deep ngx-material-timepicker-container .timepicker-backdrop-overlay{background-color:rgba(0,0,0,.05)!important;z-index:9999999999!important}::ng-deep ngx-material-timepicker-container .timepicker-overlay{z-index:9999999999!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker{width:232px!important;border-radius:2px!important;box-shadow:0 4px 30px #161b2f26!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header{background-color:#fff!important;padding:0!important;border-radius:2px 2px 0 0}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container{display:block!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time{color:#000!important;width:150px!important;margin:0 auto;line-height:60px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control{font-size:40px;background-color:transparent!important;color:#000!important;font-weight:600;text-align:right;caret-color:transparent;outline:none;font-family:Poppins;line-height:56px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:focus,::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:hover{background-color:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control:last-of-type .timepicker-dial__control{text-align:left}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time span{padding:0 8px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period{display:flex!important;width:182px;margin:0 auto!important;background:#f1f1f1;padding:4px 10px;border-radius:20px;position:relative}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period:before{background:#f1f1f1;content:\"\";position:absolute;top:15px;left:-25px;width:calc(100% + 50px);height:2px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period{flex-direction:unset!important;position:relative;z-index:1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:after{content:\"\";position:absolute;right:-12px;top:0;border-left:14px solid #f1f1f1;border-bottom:12px solid transparent;border-top:12px solid transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:before{content:\"\";position:absolute;left:-18px;top:0;border-right:14px solid #f1f1f1;border-bottom:12px solid transparent;border-top:12px solid transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button{font-size:11px;background-color:transparent;padding:0;border-radius:20px;color:#747576;font-weight:600;font-family:Poppins;width:84px;height:24px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button.timepicker-dial__item_active{background:#fff!important;color:#1e5dd3!important;box-shadow:0 1px 2px #dbdbdb}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button+button{margin-left:0!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face{width:200px!important;height:200px!important;padding:10px!important;background:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer{height:calc(224px / 2 - 20px)!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span{color:#000}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span.active{color:#fff}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand{height:80px!important;top:calc(50% - 80px)!important;background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number>span.active{background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand_minute:before{border:4px solid #1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions{display:flex!important;padding:10px 0 0!important;background:#fff!important;justify-content:space-around!important;border-radius:0 0 2px 2px!important;overflow:hidden}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div:first-child ngx-material-timepicker-button button.timepicker-button{background:#f8f8f8;color:#1e5dd3}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button{line-height:28px!important;width:100%;background:#1e5dd3;color:#fff;border-radius:0!important;height:32px!important;width:116px!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button span{font-weight:500!important;font-size:11px;font-family:Poppins}"]
|
|
25526
25534
|
},] }
|
|
25527
25535
|
];
|
|
@@ -26548,7 +26556,7 @@
|
|
|
26548
26556
|
UserGroupListComponent.decorators = [
|
|
26549
26557
|
{ type: i0.Component, args: [{
|
|
26550
26558
|
selector: 'user-group-list',
|
|
26551
|
-
template: "<div class=\"user-group-list\" [class.animate]=\"animation\">\r\n <div class=\"user-group-list-head\">\r\n <h3 class=\"user-group-list-title\">{{panelTitle}}</h3>\r\n </div>\r\n <div class=\"user-group-list-body\">\r\n <app-loader-inline *ngIf=\"loading\"></app-loader-inline>\r\n <div class=\"search-block vx-mb-2\">\r\n <i class=\"icons\"></i>\r\n <input [(ngModel)]=\"searchKey\" type=\"text\" placeholder=\"{{currentTab === 'USER' ? 'Search User' :'Search Group'}}\" />\r\n </div>\r\n\r\n <div class=\"user-group-list-tab vx-d-flex vx-align-center vx-mb-2\" *ngIf=\"groupEnabled\">\r\n <button (click)=\"switchTab('USER')\" class=\"tab-btn vx-fs-11 vx-fw-600 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0 vx-d-flex vx-align-center vx-lh-4\" [class.active]=\"currentTab === 'USER'\">USERS\r\n <span class=\"vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center vx-ml-2 vx-lh-4\">{{userListInfo?.total_items || usersList?.length}}</span></button>\r\n <button (click)=\"switchTab('GROUP')\" class=\"tab-btn vx-fs-11 vx-fw-600 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0 vx-d-flex vx-align-center vx-lh-4\" [class.active]=\"currentTab === 'GROUP'\">GROUPS <span class=\"vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center vx-ml-2 vx-lh-4\">{{groupListInfo?.total_items || groupsList?.length}}</span></button>\r\n </div>\r\n\r\n\r\n\r\n <ng-container *ngIf=\"currentTab === 'USER'\">\r\n <ng-container *ngIf=\"(usersList|search:searchKey:'member_name') as users\">\r\n <vui-pagination *ngIf=\"userListInfo?.total_pages > 1 && usersList?.length !== userListInfo?.total_items\" [currentPage]=\"userCurrentPage\" [totalPage]=\"userListInfo?.total_pages\" (pageChanged)=\"userPageChange($event)\"></vui-pagination>\r\n <div class=\"user-group-list-mid\" [class.with-pagination]=\"true\">\r\n <ng-container *ngIf=\"users?.length > 0;else nouser\">\r\n <div class=\"user-list-select vx-mb-2\">\r\n <vui-checkbox *ngIf=\"!singleSelect\" #user [checked]=\"allUserSelected\" [disabled]=\"allUserSelectedDisabled\" (change)=\"selectAllUser($event)\">\r\n <div class=\"user-name vx-fs-12 vx-fw-600 vx-label-txt vx-tt-none\">{{!user?.checked ? 'Select All' : 'Deselect All'}}</div>\r\n </vui-checkbox>\r\n </div>\r\n <div class=\"user-list-item\">\r\n <ul class=\"vx-m-0 vx-p-0 vx-d-flex\">\r\n <li class=\"vx-mb-4\" *ngFor=\"let user of users \">\r\n <vui-checkbox *ngIf=\"!singleSelect\" (change)=\"selectItem($event,user)\" [disabled]=\"nonRemovableUserIds?.includes(user?.member_id)\" [checked]=\"selectedUserIds.includes(user?.member_id)\"><div class=\"user-name\" [appTooltip]=\"user?.member_email\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{user?.member_name}}</div></vui-checkbox>\r\n <app-cs-radio *ngIf=\"singleSelect\" [name]=\"'radio-selector'\" (checkedEvent)=\"selectItemRadio($event,user)\"\r\n [name]=\"'rx-category'\" [checked]=\"selectedUserIds.includes(user?.member_id)\"\r\n [appTooltip]=\"user?.member_email\" placement=\"bottom-left\"\r\n delay=\"0\" [tooltipMandatory]=\"true\">\r\n {{user?.member_name}}\r\n </app-cs-radio>\r\n </li>\r\n\r\n </ul>\r\n </div>\r\n </ng-container>\r\n <ng-template #nouser>\r\n <app-no-data [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"(searchKey?.length > 0 ?'No match found.':'No Users found.')\"></app-no-data>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"currentTab === 'GROUP'\">\r\n <ng-container *ngIf=\"(groupsList|search:searchKey:'group_name') as groups\">\r\n <div class=\"user-group-list-mid\" [class.with-pagination]=\"true\">\r\n <ng-container *ngIf=\"groups?.length > 0; else nogroup\">\r\n <div class=\"user-list-select vx-mb-2\">\r\n <vui-checkbox #group [checked]=\"allGroupSelected\" [disabled]=\"allGroupSelectedDisabled\" (change)=\"selectAllGroup($event)\">\r\n <div class=\"user-name vx-fs-12 vx-fw-600 vx-label-txt vx-tt-none\">{{!group?.checked ? 'Select All' : 'Deselect All'}}</div>\r\n </vui-checkbox>\r\n </div>\r\n <div class=\"user-list-item\">\r\n <ul class=\"vx-m-0 vx-p-0 vx-d-flex\">\r\n <li class=\"vx-mb-4\" *ngFor=\"let group of groupsList\">\r\n <vui-checkbox (change)=\"selectGroup($event,group)\" [disabled]=\"nonRemovableGroupIds?.includes(group?.group_id)\" [checked]=\"selectedGroupIds.includes(group?.group_id)\">\r\n <div class=\"user-name\">{{group?.group_name}}\r\n <span class=\"counter vx-fs-9 vx-fw-600 vx-pl-1 vx-pr-1 vx-lh-3 vx-tt-uppercase vx-ml-2\">{{group?.member_count}} {{group?.member_count > 1 ? 'USERS' :'USER'}}</span></div>\r\n </vui-checkbox>\r\n </li>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n <ng-template #nogroup>\r\n <app-no-data [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"(searchKey?.length > 0 ?'No match found.':'No Groups found.')\"></app-no-data>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n </div>\r\n\r\n <div class=\"user-group-list-footer\">\r\n <vui-floating-bar *ngIf=\"!singleSelect\" (closeEvent)=\"saveList()\" (closeList)=\"closeList()\">\r\n <ng-container *ngIf=\"!groupEnabled\">\r\n <div class=\"chip\" *ngFor=\"let element of selectedUsers?.slice(0,1);let i = index\"><i *ngIf=\"!nonRemovableUserIds.includes(element?.member_id)\"\r\n (click)=\"selectItem({target:{checked:false}},element)\" class=\"icons\"></i> <span>{{element?.member_name}}</span></div>\r\n <div class=\"counter\" *ngIf=\"selectedUsers?.length>1\" appPopover (click)=\"groupDisable.popover()\"\r\n placement=\"left\">+{{selectedUsers?.slice(1).length}}</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"groupEnabled\">\r\n <div class=\"counter\" *ngIf=\"selectedUsers?.length\" appPopover (click)=\"userCount.popover()\"\r\n placement=\"left\">{{selectedUsers?.length}}</div>\r\n </ng-container>\r\n <div class=\"name\">\r\n <span *ngIf=\"selectedUsers?.length === 1\">User {{selectedGroups?.length > 0 ?' & ':'selected'}}</span>\r\n <span *ngIf=\"selectedUsers?.length > 1\">Users {{selectedGroups?.length > 0 ?' & ':'are selected'}}</span>\r\n </div>\r\n\r\n <div class=\"counter group\" *ngIf=\"selectedGroups?.length\" appPopover (click)=\"groupCount.popover()\"\r\n placement=\"left\">{{selectedGroups?.length}}</div>\r\n <div class=\"name\" >\r\n <span *ngIf=\"selectedGroups?.length === 1\">Group selected</span>\r\n <span *ngIf=\"selectedGroups?.length > 1\">Groups selected</span>\r\n </div>\r\n\r\n <app-popover #userCount [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let element of selectedUsers let i =index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" *ngIf=\"!nonRemovableUserIds.includes(element?.member_id)\"\r\n (click)=\"selectItem({target:{checked:false}},element)\"></i>\r\n {{element?.member_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n\r\n <app-popover #groupDisable [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let element of selectedUsers.slice(1) let i =index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" *ngIf=\"!nonRemovableUserIds.includes(element?.member_id)\"\r\n (click)=\"selectItem({target:{checked:false}},element)\"></i>\r\n {{element?.member_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n\r\n <app-popover #groupCount [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let element of selectedGroups; let i =index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" *ngIf=\"!nonRemovableGroupIds.includes(element?.group_id)\"\r\n (click)=\"selectGroup({target:{checked:false}},element)\"></i>\r\n {{element?.group_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </vui-floating-bar>\r\n <vui-floating-bar *ngIf=\"singleSelect\" (closeEvent)=\"saveList()\" (closeList)=\"closeList()\">\r\n <div class=\"chip\" *ngIf=\"selectedUsers?.length\" >\r\n <ng-container>\r\n <i class=\"icons\" (click)=\"selectItem({target:{checked:false}},selectedUsers[0])\"></i>\r\n <span class=\"value\"> {{selectedUsers[0]?.member_name}}</span>\r\n </ng-container>\r\n </div>\r\n </vui-floating-bar>\r\n </div>\r\n\r\n</div>\r\n",
|
|
26559
|
+
template: "<div class=\"user-group-list\" [class.animate]=\"animation\">\r\n <div class=\"user-group-list-head\">\r\n <h3 class=\"user-group-list-title\">{{panelTitle}}</h3>\r\n </div>\r\n <div class=\"user-group-list-body\">\r\n <app-loader-inline *ngIf=\"loading\"></app-loader-inline>\r\n <div class=\"search-block vx-mb-2\">\r\n <i class=\"icons\"></i>\r\n <input [(ngModel)]=\"searchKey\" type=\"text\" placeholder=\"{{currentTab === 'USER' ? 'Search User' :'Search Group'}}\" />\r\n </div>\r\n\r\n <div class=\"user-group-list-tab vx-d-flex vx-align-center vx-mb-2\" *ngIf=\"groupEnabled\">\r\n <button (click)=\"switchTab('USER')\" class=\"tab-btn vx-fs-11 vx-fw-600 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0 vx-d-flex vx-align-center vx-lh-4\" [class.active]=\"currentTab === 'USER'\">USERS\r\n <span class=\"vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center vx-ml-2 vx-lh-4\">{{userListInfo?.total_items || usersList?.length}}</span></button>\r\n <button (click)=\"switchTab('GROUP')\" class=\"tab-btn vx-fs-11 vx-fw-600 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0 vx-d-flex vx-align-center vx-lh-4\" [class.active]=\"currentTab === 'GROUP'\">GROUPS <span class=\"vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center vx-ml-2 vx-lh-4\">{{groupListInfo?.total_items || groupsList?.length}}</span></button>\r\n </div>\r\n\r\n\r\n\r\n <ng-container *ngIf=\"currentTab === 'USER'\">\r\n <ng-container *ngIf=\"(usersList|search:searchKey:'member_name') as users\">\r\n <vui-pagination *ngIf=\"userListInfo?.total_pages > 1 && usersList?.length !== userListInfo?.total_items\" [currentPage]=\"userCurrentPage\" [totalPage]=\"userListInfo?.total_pages\" (pageChanged)=\"userPageChange($event)\"></vui-pagination>\r\n <div class=\"user-group-list-mid\" [class.with-pagination]=\"true\">\r\n <ng-container *ngIf=\"users?.length > 0;else nouser\">\r\n <div class=\"user-list-select vx-mb-2\">\r\n <vui-checkbox *ngIf=\"!singleSelect\" #user [checked]=\"allUserSelected\" [disabled]=\"allUserSelectedDisabled\" (change)=\"selectAllUser($event)\">\r\n <div class=\"user-name vx-fs-12 vx-fw-600 vx-label-txt vx-tt-none\">{{!user?.checked ? 'Select All' : 'Deselect All'}}</div>\r\n </vui-checkbox>\r\n </div>\r\n <div class=\"user-list-item\">\r\n <ul class=\"vx-m-0 vx-p-0 vx-d-flex\">\r\n <li class=\"vx-mb-4\" *ngFor=\"let user of users \">\r\n <vui-checkbox *ngIf=\"!singleSelect\" (change)=\"selectItem($event,user)\" [disabled]=\"nonRemovableUserIds?.includes(user?.member_id)\" [checked]=\"selectedUserIds.includes(user?.member_id)\"><div class=\"user-name\" [appTooltip]=\"user?.member_email\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{user?.member_name}}</div></vui-checkbox>\r\n <app-cs-radio *ngIf=\"singleSelect\" [name]=\"'radio-selector'\" (checkedEvent)=\"selectItemRadio($event,user)\"\r\n [name]=\"'rx-category'\" [checked]=\"selectedUserIds.includes(user?.member_id)\"\r\n [appTooltip]=\"user?.member_email\" placement=\"bottom-left\"\r\n delay=\"0\" [tooltipMandatory]=\"true\">\r\n {{user?.member_name}}\r\n </app-cs-radio>\r\n </li>\r\n\r\n </ul>\r\n </div>\r\n </ng-container>\r\n <ng-template #nouser>\r\n <app-no-data [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"(searchKey?.length > 0 ?'No match found.':'No Users found.')\"></app-no-data>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"currentTab === 'GROUP'\">\r\n <ng-container *ngIf=\"(groupsList|search:searchKey:'group_name') as groups\">\r\n <div class=\"user-group-list-mid\" [class.with-pagination]=\"true\">\r\n <ng-container *ngIf=\"groups?.length > 0; else nogroup\">\r\n <div class=\"user-list-select vx-mb-2\">\r\n <vui-checkbox #group [checked]=\"allGroupSelected\" [disabled]=\"allGroupSelectedDisabled\" (change)=\"selectAllGroup($event)\">\r\n <div class=\"user-name vx-fs-12 vx-fw-600 vx-label-txt vx-tt-none\">{{!group?.checked ? 'Select All' : 'Deselect All'}}</div>\r\n </vui-checkbox>\r\n </div>\r\n <div class=\"user-list-item\">\r\n <ul class=\"vx-m-0 vx-p-0 vx-d-flex\">\r\n <li class=\"vx-mb-4\" *ngFor=\"let group of groupsList\">\r\n <vui-checkbox (change)=\"selectGroup($event,group)\" [disabled]=\"nonRemovableGroupIds?.includes(group?.group_id)\" [checked]=\"selectedGroupIds.includes(group?.group_id)\">\r\n <div class=\"user-name\">{{group?.group_name}}\r\n <span class=\"counter vx-fs-9 vx-fw-600 vx-pl-1 vx-pr-1 vx-lh-3 vx-tt-uppercase vx-ml-2\">{{group?.member_count}} {{group?.member_count > 1 ? 'USERS' :'USER'}}</span></div>\r\n </vui-checkbox>\r\n </li>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n <ng-template #nogroup>\r\n <app-no-data [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"(searchKey?.length > 0 ?'No match found.':'No data to display.')\"></app-no-data>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n </div>\r\n\r\n <div class=\"user-group-list-footer\">\r\n <vui-floating-bar *ngIf=\"!singleSelect\" (closeEvent)=\"saveList()\" (closeList)=\"closeList()\">\r\n <ng-container *ngIf=\"!groupEnabled\">\r\n <div class=\"chip\" *ngFor=\"let element of selectedUsers?.slice(0,1);let i = index\"><i *ngIf=\"!nonRemovableUserIds.includes(element?.member_id)\"\r\n (click)=\"selectItem({target:{checked:false}},element)\" class=\"icons\"></i> <span>{{element?.member_name}}</span></div>\r\n <div class=\"counter\" *ngIf=\"selectedUsers?.length>1\" appPopover (click)=\"groupDisable.popover()\"\r\n placement=\"left\">+{{selectedUsers?.slice(1).length}}</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"groupEnabled\">\r\n <div class=\"counter\" *ngIf=\"selectedUsers?.length\" appPopover (click)=\"userCount.popover()\"\r\n placement=\"left\">{{selectedUsers?.length}}</div>\r\n </ng-container>\r\n <div class=\"name\">\r\n <span *ngIf=\"selectedUsers?.length === 1\">User {{selectedGroups?.length > 0 ?' & ':'selected'}}</span>\r\n <span *ngIf=\"selectedUsers?.length > 1\">Users {{selectedGroups?.length > 0 ?' & ':'are selected'}}</span>\r\n </div>\r\n\r\n <div class=\"counter group\" *ngIf=\"selectedGroups?.length\" appPopover (click)=\"groupCount.popover()\"\r\n placement=\"left\">{{selectedGroups?.length}}</div>\r\n <div class=\"name\" >\r\n <span *ngIf=\"selectedGroups?.length === 1\">Group selected</span>\r\n <span *ngIf=\"selectedGroups?.length > 1\">Groups selected</span>\r\n </div>\r\n\r\n <app-popover #userCount [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let element of selectedUsers let i =index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" *ngIf=\"!nonRemovableUserIds.includes(element?.member_id)\"\r\n (click)=\"selectItem({target:{checked:false}},element)\"></i>\r\n {{element?.member_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n\r\n <app-popover #groupDisable [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let element of selectedUsers.slice(1) let i =index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" *ngIf=\"!nonRemovableUserIds.includes(element?.member_id)\"\r\n (click)=\"selectItem({target:{checked:false}},element)\"></i>\r\n {{element?.member_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n\r\n <app-popover #groupCount [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let element of selectedGroups; let i =index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" *ngIf=\"!nonRemovableGroupIds.includes(element?.group_id)\"\r\n (click)=\"selectGroup({target:{checked:false}},element)\"></i>\r\n {{element?.group_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </vui-floating-bar>\r\n <vui-floating-bar *ngIf=\"singleSelect\" (closeEvent)=\"saveList()\" (closeList)=\"closeList()\">\r\n <div class=\"chip\" *ngIf=\"selectedUsers?.length\" >\r\n <ng-container>\r\n <i class=\"icons\" (click)=\"selectItem({target:{checked:false}},selectedUsers[0])\"></i>\r\n <span class=\"value\"> {{selectedUsers[0]?.member_name}}</span>\r\n </ng-container>\r\n </div>\r\n </vui-floating-bar>\r\n </div>\r\n\r\n</div>\r\n",
|
|
26552
26560
|
styles: ["@import url(\"https://cdn.v-comply.com/design-system/css/icons/icons.css\");@import url(\"https://cdn.v-comply.com/design-system/css/text/text.css\");@import url(\"https://cdn.v-comply.com/design-system/css/color/color.css\");@import url(\"https://cdn.v-comply.com/design-system/css/padding/padding.css\");@import url(\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\");@import url(\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\");@import url(\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\");@import url(\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\");@import url(\"https://cdn.v-comply.com/design-system/css/margin/margin.css\");@import url(\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\");@import url(\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\");@import url(\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\");@import url(\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\");::ng-deep .user-group-list{background:#fff;position:fixed;top:0;right:500px;bottom:0;left:0;border-top:3px solid #1e5dd3}::ng-deep .user-group-list.animate{-webkit-animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;z-index:-1}::ng-deep .user-group-list-head{background:#fbfbfb;height:42px;padding:0 18px;display:flex;justify-content:space-between;align-items:center;border:1px solid #f1f1f1;border-right:none}::ng-deep .user-group-list-title{color:#161b2f;font-size:15px;font-weight:500;margin:0!important;padding:0;line-height:21px}::ng-deep .user-group-list-body{padding:24px 40px 24px 36px;height:calc(100vh - 124px)}::ng-deep .user-group-list-body .search-block{position:relative}::ng-deep .user-group-list-body .search-block input{height:44px;line-height:24px;padding:10px 16px 10px 40px;outline:none;border:1px solid #7475763f;border-radius:4px;width:100%;font-size:14px;color:#747576}::ng-deep .user-group-list-body .search-block input:focus{border-color:#1e5dd3}::ng-deep .user-group-list-body .search-block i{position:absolute;left:17px;font-size:12px;font-weight:400;top:17px;pointer-events:none;color:#f1f1f1}::ng-deep .user-group-list-mid{width:calc(100% + .75rem);height:calc(100vh - 15.5rem);overflow:auto;padding-right:.75rem}::ng-deep .user-group-list-mid::-webkit-scrollbar-track{background-color:#fff}::ng-deep .user-group-list-mid.with-pagination{height:calc(100vh - 17.5rem)}::ng-deep .user-group-list-mid .selected-owners{border-bottom:1px solid #dbdbdb}::ng-deep .user-group-list-mid .user-list-select{background:#fff;position:sticky;top:0;z-index:1}::ng-deep .user-group-list-mid .user-list-select vui-checkbox-indeterminate .checkbox-item,::ng-deep .user-group-list-mid .user-list-select vui-checkbox .checkbox-item{position:relative;padding-left:1.5rem;width:100%}::ng-deep .user-group-list-mid .user-list-select vui-checkbox-indeterminate .checkbox-item .checkbox,::ng-deep .user-group-list-mid .user-list-select vui-checkbox .checkbox-item .checkbox{position:absolute!important;left:0;top:0}::ng-deep .user-group-list-mid .user-list-select vui-checkbox-indeterminate .checkbox-item .checkmark,::ng-deep .user-group-list-mid .user-list-select vui-checkbox .checkbox-item .checkmark{position:absolute!important;left:0;top:0}::ng-deep .user-group-list-mid .user-list-select vui-checkbox-indeterminate .checkbox-item span,::ng-deep .user-group-list-mid .user-list-select vui-checkbox .checkbox-item span{justify-content:unset!important;margin:0!important}::ng-deep .user-group-list-mid .user-list-select vui-checkbox-indeterminate .checkbox-item span.value,::ng-deep .user-group-list-mid .user-list-select vui-checkbox .checkbox-item span.value{color:#747576!important;font-size:11px!important;font-weight:600!important;text-transform:uppercase!important;width:100%}::ng-deep .user-group-list-mid .user-list-select vui-checkbox-indeterminate .checkbox-item span.value .user-name,::ng-deep .user-group-list-mid .user-list-select vui-checkbox .checkbox-item span.value .user-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .user-group-list-mid .user-list-item ul{list-style-type:none;align-items:flex-start;flex-wrap:wrap}::ng-deep .user-group-list-mid .user-list-item ul li{width:50%}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox{width:calc(100% - 4.5rem)}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox .checkbox-item{position:relative;padding-left:1.5rem;width:100%}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox .checkbox-item .checkbox{position:absolute!important;left:0;top:0}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox .checkbox-item .checkmark{position:absolute!important;left:0;top:0}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox .checkbox-item span{justify-content:unset!important;margin:0!important}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox .checkbox-item span.value{color:#747576!important;font-size:12px!important;width:100%}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox .checkbox-item span.value .user-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox .checkbox-item span.value .counter{background:#f1f1f1;border-radius:.125rem;color:#042e7d}::ng-deep .user-group-list-tab{border-bottom:1px solid #f1f1f1}::ng-deep .user-group-list-tab button.tab-btn{background:transparent;border-radius:0;border:none;border-bottom:.1875rem solid transparent;margin-right:2.5rem!important}::ng-deep .user-group-list-tab button.tab-btn span{border-radius:1.25rem;color:#74757680;min-width:1.5rem}::ng-deep .user-group-list-tab button.active{pointer-events:none}::ng-deep .user-group-list-tab button.active.tab-btn{border-color:#1e5dd3;color:#1e5dd3}::ng-deep .user-group-list-tab button.active.tab-btn span{background:#1e5dd3;color:#fff;font-weight:500}.group{background:#1e5dd3!important;border-color:#1e5dd3!important}.action-list{width:220px}.action-list ul{padding:0;margin:0;-webkit-animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}.action-list ul.action-item{display:block}.action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}.action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}.action-list ul.action-item li button .file-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:calc(100% - 16px)}.action-list ul.action-item li button i{font-size:17px;margin-right:10px;color:#1c5bd1}.action-list ul.action-item li button:hover{background:#f3f3f3}.action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}.action-list ul.action-item li .avatar-card.within-con{display:block}.action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;min-width:24px!important;overflow:hidden;background:#4681ef;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}.action-list ul.action-item li .avatar-card .avatar img{background:#fff;width:100%;height:100%}.action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}.action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;-moz-text-align-last:left;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}.action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#1c5bd1;cursor:pointer;margin-right:5px}.action-list ul.action-item li .avatar-card.no-image{display:block}.action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}.action-list ul.action-item li .avatar-card i.delete-icon{color:#d93b41;cursor:pointer;font-size:14px}.action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}.action-list ul.action-item li .chip-item i{margin-left:7px;font-size:10px;cursor:pointer;display:inline-flex}.action-list ul.action-item li .chip-item span{display:block;width:auto;width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}.action-list ul.action-item li .chip-item span.id{font-size:9px}.action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}.action-list ul.action-item li .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}.action-list ul.action-item li .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}.action-list ul.action-item li:first-child{-webkit-animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(2){-webkit-animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(3){-webkit-animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(4){-webkit-animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(5){-webkit-animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(6){-webkit-animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(7){-webkit-animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(8){-webkit-animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(9){-webkit-animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(10){-webkit-animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@-webkit-keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}"]
|
|
26553
26561
|
},] }
|
|
26554
26562
|
];
|