vcomply-workflow-engine 2.9.58 → 2.9.60
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 +956 -263
- package/bundles/vcomply-workflow-engine.umd.js.map +1 -1
- package/esm2015/lib/more-option/more-option.component.js +110 -59
- package/esm2015/lib/more-option/more-option.component.ngfactory.js +3 -3
- package/esm2015/lib/sharedComponents/link-program/link-program/link-program.component.js +435 -0
- package/esm2015/lib/sharedComponents/link-program/link-program/link-program.component.ngfactory.js +292 -0
- package/esm2015/lib/sharedComponents/link-program/link-program/link-program.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/link-program/link-program/program-list-model.js +2 -0
- package/esm2015/lib/sharedComponents/link-program/link-program/program-list-model.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/link-program/program-integration-interfaces.js +2 -0
- package/esm2015/lib/sharedComponents/link-program/program-integration-interfaces.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/link-program/restapi.service.js +136 -0
- package/esm2015/lib/sharedComponents/link-program/restapi.service.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/link-program/tooltip-validation.pipe.js +25 -0
- package/esm2015/lib/sharedComponents/link-program/tooltip-validation.pipe.ngsummary.json +1 -0
- package/esm2015/lib/workflow-engine.module.js +9 -3
- package/esm2015/lib/workflow-engine.module.ngfactory.js +1 -1
- package/esm2015/lib/workflow-interfaces/create-policy-form.js +1 -1
- package/esm2015/lib/workflow-policy/workflow-policy.component.js +65 -17
- package/esm2015/lib/workflow-policy/workflow-policy.component.ngfactory.js +171 -156
- package/esm2015/lib/workflow-policy/workflow-policy.component.ngsummary.json +1 -1
- package/esm2015/vcomply-workflow-engine.js +193 -190
- package/esm2015/vcomply-workflow-engine.ngsummary.json +1 -1
- package/fesm2015/vcomply-workflow-engine.js +758 -78
- package/fesm2015/vcomply-workflow-engine.js.map +1 -1
- package/lib/sharedComponents/link-program/link-program/link-program.component.d.ts +81 -0
- package/lib/sharedComponents/link-program/link-program/link-program.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/link-program/link-program/program-list-model.d.ts +25 -0
- package/lib/sharedComponents/link-program/program-integration-interfaces.d.ts +9 -0
- package/lib/sharedComponents/link-program/restapi.service.d.ts +33 -0
- package/lib/sharedComponents/link-program/tooltip-validation.pipe.d.ts +4 -0
- package/lib/workflow-interfaces/create-policy-form.d.ts +5 -0
- package/lib/workflow-policy/workflow-policy.component.d.ts +2 -0
- package/package.json +1 -1
- package/vcomply-workflow-engine.d.ts +192 -189
- package/vcomply-workflow-engine.metadata.json +1 -1
|
@@ -6891,6 +6891,7 @@
|
|
|
6891
6891
|
'frequency',
|
|
6892
6892
|
'reviewerFrequency',
|
|
6893
6893
|
'checkpoints',
|
|
6894
|
+
'linkProgram'
|
|
6894
6895
|
];
|
|
6895
6896
|
this.riskClassification = [
|
|
6896
6897
|
{ name: 'LOW', value: 1, class: 'low' },
|
|
@@ -6907,6 +6908,7 @@
|
|
|
6907
6908
|
this.baseURL = '';
|
|
6908
6909
|
this.overseerGroupsList = [];
|
|
6909
6910
|
this.isVersionValid = true;
|
|
6911
|
+
this.versionErrorMessage = 'You have entered an incorrect format. The version field can either include numbers, alphabets, hyphen or dots.';
|
|
6910
6912
|
this.policyForm = {
|
|
6911
6913
|
policyName: '',
|
|
6912
6914
|
policyNotes: '',
|
|
@@ -6941,6 +6943,9 @@
|
|
|
6941
6943
|
addCheckpoints: false,
|
|
6942
6944
|
addOverseers: false,
|
|
6943
6945
|
addAssociatedDocuments: false,
|
|
6946
|
+
addVersion: false,
|
|
6947
|
+
addLinkAssessment: false,
|
|
6948
|
+
addLinkProgram: false,
|
|
6944
6949
|
failed_time: '',
|
|
6945
6950
|
frequency_details: '',
|
|
6946
6951
|
frequency_text: '',
|
|
@@ -6952,6 +6957,8 @@
|
|
|
6952
6957
|
review_frequency_type: '',
|
|
6953
6958
|
review_remind_days_before_due_date: 0,
|
|
6954
6959
|
review: false,
|
|
6960
|
+
linkProgram: {},
|
|
6961
|
+
programSelectedValues: {},
|
|
6955
6962
|
assignee_start_date: '',
|
|
6956
6963
|
reviewer_start_date: '',
|
|
6957
6964
|
policy_version: '',
|
|
@@ -7144,6 +7151,7 @@
|
|
|
7144
7151
|
this.allApprovers = [];
|
|
7145
7152
|
this.allReviewers = [];
|
|
7146
7153
|
this.policyService.getReviewers(categoryIds).subscribe(function (res) {
|
|
7154
|
+
var _a, _b, _c, _e, _f, _g;
|
|
7147
7155
|
if ((res === null || res === void 0 ? void 0 : res.length) >= 0) {
|
|
7148
7156
|
res.forEach(function (element) {
|
|
7149
7157
|
var _a;
|
|
@@ -7160,9 +7168,9 @@
|
|
|
7160
7168
|
var obj = approverIds;
|
|
7161
7169
|
var approverLevels = [];
|
|
7162
7170
|
for (var item in obj) {
|
|
7163
|
-
var ids = obj[item].approvers.map(function (approver) { return approver.member_id; });
|
|
7171
|
+
var ids = (_b = (_a = obj[item]) === null || _a === void 0 ? void 0 : _a.approvers) === null || _b === void 0 ? void 0 : _b.map(function (approver) { return approver.member_id; });
|
|
7164
7172
|
var data = {
|
|
7165
|
-
name: obj[item].type,
|
|
7173
|
+
name: (_c = obj[item]) === null || _c === void 0 ? void 0 : _c.type,
|
|
7166
7174
|
approvers: _this.setList(_this.allApprovers, ids, 'member_id'),
|
|
7167
7175
|
};
|
|
7168
7176
|
if (data.name == 'ROUNDROBIN') {
|
|
@@ -7177,9 +7185,9 @@
|
|
|
7177
7185
|
var obj_1 = approverIds;
|
|
7178
7186
|
var approverLevels_1 = [];
|
|
7179
7187
|
for (var item in obj_1) {
|
|
7180
|
-
var ids = obj_1[item].approvers.map(function (approver) { return approver.member_id; });
|
|
7188
|
+
var ids = (_f = (_e = obj_1[item]) === null || _e === void 0 ? void 0 : _e.approvers) === null || _f === void 0 ? void 0 : _f.map(function (approver) { return approver.member_id; });
|
|
7181
7189
|
var data = {
|
|
7182
|
-
name: obj_1[item].type,
|
|
7190
|
+
name: (_g = obj_1[item]) === null || _g === void 0 ? void 0 : _g.type,
|
|
7183
7191
|
approvers: _this.setList(_this.allApprovers, ids, 'member_id'),
|
|
7184
7192
|
};
|
|
7185
7193
|
if (data.name == 'ROUNDROBIN') {
|
|
@@ -7218,7 +7226,11 @@
|
|
|
7218
7226
|
if (this.policyForm.addAssociatedDocuments) {
|
|
7219
7227
|
activatedOptions.push('RELATED_DOCUMENTS');
|
|
7220
7228
|
}
|
|
7229
|
+
if (this.policyForm.policy_version) {
|
|
7230
|
+
activatedOptions.push('VERSION');
|
|
7231
|
+
}
|
|
7221
7232
|
if (this.policyForm.assessment.length) {
|
|
7233
|
+
activatedOptions.push('LINK_ASSESSMENTS');
|
|
7222
7234
|
this.getAssessmentDetails(this.policyForm.assessment[0]);
|
|
7223
7235
|
}
|
|
7224
7236
|
console.log('==============>12', activatedOptions);
|
|
@@ -7245,6 +7257,15 @@
|
|
|
7245
7257
|
case 'RELATED_DOCUMENTS':
|
|
7246
7258
|
this.policyForm.addAssociatedDocuments = event.checked;
|
|
7247
7259
|
break;
|
|
7260
|
+
case 'VERSION':
|
|
7261
|
+
this.policyForm.addVersion = event.checked;
|
|
7262
|
+
break;
|
|
7263
|
+
case 'LINK_PROGRAM_RESPONSIBILITIES':
|
|
7264
|
+
this.policyForm.addLinkProgram = event.checked;
|
|
7265
|
+
break;
|
|
7266
|
+
case 'LINK_ASSESSMENTS':
|
|
7267
|
+
this.policyForm.addLinkAssessment = event.checked;
|
|
7268
|
+
break;
|
|
7248
7269
|
}
|
|
7249
7270
|
this.scrollToBottom = true;
|
|
7250
7271
|
};
|
|
@@ -7510,6 +7531,11 @@
|
|
|
7510
7531
|
case 'workflowLevel':
|
|
7511
7532
|
(_o = this.policyForm) === null || _o === void 0 ? void 0 : _o.selectedApprovers.splice(removeIndex, 1);
|
|
7512
7533
|
break;
|
|
7534
|
+
case 'linkProgram':
|
|
7535
|
+
this.policyForm.linkProgram = {};
|
|
7536
|
+
this.policyForm.programSelectedValues = {};
|
|
7537
|
+
this.refreshAllLists();
|
|
7538
|
+
break;
|
|
7513
7539
|
case 'owners':
|
|
7514
7540
|
(_p = this.policyForm) === null || _p === void 0 ? void 0 : _p.policy_owners.splice(removeIndex, 1);
|
|
7515
7541
|
break;
|
|
@@ -7560,8 +7586,8 @@
|
|
|
7560
7586
|
*/
|
|
7561
7587
|
WorkflowPolicyComponent.prototype.setList = function (list, ids, key) {
|
|
7562
7588
|
var data = [];
|
|
7563
|
-
ids.forEach(function (element) {
|
|
7564
|
-
var index = list.findIndex(function (listElement) { return listElement[key] == element; });
|
|
7589
|
+
ids === null || ids === void 0 ? void 0 : ids.forEach(function (element) {
|
|
7590
|
+
var index = list === null || list === void 0 ? void 0 : list.findIndex(function (listElement) { return listElement[key] == element; });
|
|
7565
7591
|
if (index !== -1) {
|
|
7566
7592
|
data.push(list[index]);
|
|
7567
7593
|
}
|
|
@@ -7927,13 +7953,15 @@
|
|
|
7927
7953
|
cc_fail_usergroup_ids: this.ccFailGroupObjIds,
|
|
7928
7954
|
reviewer_start_date: (_c = policy.reviewer_start_date) !== null && _c !== void 0 ? _c : '',
|
|
7929
7955
|
assignee_start_date: policy.assignee_start_date,
|
|
7930
|
-
policy_version: policy.policy_version,
|
|
7931
|
-
assessment: policy.
|
|
7932
|
-
|
|
7933
|
-
|
|
7934
|
-
|
|
7935
|
-
|
|
7936
|
-
|
|
7956
|
+
policy_version: policy.addVersion ? policy.policy_version : '',
|
|
7957
|
+
assessment: policy.addLinkAssessment
|
|
7958
|
+
? policy.assessment.map(function (ele) {
|
|
7959
|
+
return {
|
|
7960
|
+
assessment_id: ele.assessment_id,
|
|
7961
|
+
category_id: ele.category_id,
|
|
7962
|
+
};
|
|
7963
|
+
})
|
|
7964
|
+
: [],
|
|
7937
7965
|
policy_owners: this.policyForm.policy_owners.map(function (ele) { return ele.member_id; }),
|
|
7938
7966
|
};
|
|
7939
7967
|
if (this.mode == 'CREATE') {
|
|
@@ -8102,7 +8130,7 @@
|
|
|
8102
8130
|
}
|
|
8103
8131
|
};
|
|
8104
8132
|
WorkflowPolicyComponent.prototype.populatePolicyForm = function (data, categoryIds) {
|
|
8105
|
-
var _a, _b, _c, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
|
|
8133
|
+
var _a, _b, _c, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
|
|
8106
8134
|
var reviewerFiles = data.ReviewerAttachments.map(function (file) {
|
|
8107
8135
|
file.filename = file.name;
|
|
8108
8136
|
file.filepath = file.file_path;
|
|
@@ -8205,6 +8233,8 @@
|
|
|
8205
8233
|
? data === null || data === void 0 ? void 0 : data.cc_fail_usergroup_ids
|
|
8206
8234
|
: [];
|
|
8207
8235
|
this.policyForm.assessment = (_r = data === null || data === void 0 ? void 0 : data.assessment) !== null && _r !== void 0 ? _r : [];
|
|
8236
|
+
this.policyForm.addLinkAssessment = (_s = data === null || data === void 0 ? void 0 : data.assessment) === null || _s === void 0 ? void 0 : _s.length;
|
|
8237
|
+
this.policyForm.addVersion = (data === null || data === void 0 ? void 0 : data.policy_version) ? true : false;
|
|
8208
8238
|
console.log('this.policyForm ==>', this.policyForm, data);
|
|
8209
8239
|
this.populateOptionalFields();
|
|
8210
8240
|
// this.checkForCreateDocuments();
|
|
@@ -8220,10 +8250,28 @@
|
|
|
8220
8250
|
this.policyForm.review = event;
|
|
8221
8251
|
};
|
|
8222
8252
|
WorkflowPolicyComponent.prototype.onVersion = function (event) {
|
|
8223
|
-
var
|
|
8253
|
+
var _a, _b;
|
|
8254
|
+
var regexMatch = new RegExp('^$|^[a-zA-Z0-9-.]$');
|
|
8224
8255
|
this.isVersionValid = regexMatch.test(this.policyForm.policy_version);
|
|
8256
|
+
console.log('this.isVersionValid ==>', this.isVersionValid);
|
|
8257
|
+
if (!this.isVersionValid) {
|
|
8258
|
+
if (((_a = this.policyForm.policy_version) === null || _a === void 0 ? void 0 : _a.length) > 20) {
|
|
8259
|
+
this.versionErrorMessage =
|
|
8260
|
+
'Your input is invalid. The version field can only include numbers, alphabets, hyphen or dots. The maximum character limit is 20 characters.';
|
|
8261
|
+
}
|
|
8262
|
+
}
|
|
8263
|
+
else if (this.isVersionValid &&
|
|
8264
|
+
((_b = this.policyForm.policy_version) === null || _b === void 0 ? void 0 : _b.length) > 20) {
|
|
8265
|
+
this.versionErrorMessage =
|
|
8266
|
+
'Your input is invalid. The maximum character limit is 20 characters.';
|
|
8267
|
+
}
|
|
8225
8268
|
console.log('version match', event, regexMatch.test(this.policyForm.policy_version));
|
|
8226
8269
|
};
|
|
8270
|
+
WorkflowPolicyComponent.prototype.updatedProgramDetails = function (event) {
|
|
8271
|
+
this.policyForm.linkProgram = event === null || event === void 0 ? void 0 : event.linkProgram;
|
|
8272
|
+
this.policyForm.programSelectedValues = event === null || event === void 0 ? void 0 : event.selectedValues;
|
|
8273
|
+
this.disableSelector();
|
|
8274
|
+
};
|
|
8227
8275
|
WorkflowPolicyComponent.prototype.onAssessmentSelect = function (event) {
|
|
8228
8276
|
console.log('event ==>', event);
|
|
8229
8277
|
this.policyForm.assessment = [event];
|
|
@@ -8259,7 +8307,7 @@
|
|
|
8259
8307
|
WorkflowPolicyComponent.decorators = [
|
|
8260
8308
|
{ type: i0.Component, args: [{
|
|
8261
8309
|
selector: 'app-workflow-policy',
|
|
8262
|
-
template: "<!-- <p>workflow-policy works!</p> -->\r\n\r\n<ng-container *ngIf=\"!showCreateDocuments\">\r\n <div class=\"workflow-policy\">\r\n <!-- Policy Name -->\r\n <div\r\n class=\"form-group-row\"\r\n [class.disabled]=\"activeSelector && activeSelector !== 'name'\"\r\n >\r\n <div class=\"left\" [class.checked]=\"policyForm?.policyName\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/what.svg\"\r\n alt=\"name\"\r\n *ngIf=\"!policyForm?.policyName || activeSelector === 'name'\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"policyForm?.policyName && activeSelector !== 'name'\"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">\r\n Policy Name <span class=\"required\">*</span>\r\n </label>\r\n <input\r\n type=\"text\"\r\n (keydown)=\"activeSelector = 'name'\"\r\n (focusin)=\"activateSelector('name', true)\"\r\n *ngIf=\"policyForm.policyName == '' || activeSelector === 'name'\"\r\n (focusout)=\"activateSelector('name', false)\"\r\n [ngModel]=\"policyForm.policyName\"\r\n (ngModelChange)=\"policyForm.policyName = changeName($event)\"\r\n placeholder=\"Name this policy\"\r\n />\r\n <div\r\n class=\"selected\"\r\n *ngIf=\"policyForm.policyName.length && activeSelector !== 'name'\"\r\n >\r\n <div class=\"chip-container\">\r\n <span class=\"value\">{{ policyForm.policyName }}</span>\r\n </div>\r\n <button\r\n class=\"edit\"\r\n (click)=\"activateSelector('name', true)\"\r\n type=\"button\"\r\n >\r\n <i class=\"icons\"></i> Edit\r\n </button>\r\n </div>\r\n\r\n <p\r\n *ngIf=\"submitted && !policyForm.policyName.trim()\"\r\n [appScrollInView]=\"true\"\r\n class=\"error-message\"\r\n >\r\n Please enter a name for this policy.\r\n </p>\r\n <marx-editor\r\n [(ngModel)]=\"policyForm.policyNotes\"\r\n [editorConfig]=\"description\"\r\n ></marx-editor>\r\n <app-cs-switch\r\n [(ngValue)]=\"policyForm.availableOnPortal\"\r\n (ngValueChange)=\"availabilityOnPortal($event)\"\r\n >\r\n Do you want this policy to be available on the portal?\r\n <i\r\n class=\"icons\"\r\n [appTooltip]=\"\r\n 'The policies that you intend to make accessible to the entire organization can be added to the policy portal. It is like a shared catalog of all active & updated policies that any logged in user can read/download for reference.'\r\n \"\r\n placement=\"bottom-right\"\r\n type=\"white\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"true\"\r\n ></i\r\n >\r\n </app-cs-switch>\r\n <app-cs-switch\r\n *ngIf=\"policyForm.availableOnPortal\"\r\n [(ngValue)]=\"policyForm.acceptSuggestions\"\r\n >\r\n Accept suggestions\r\n <i\r\n class=\"icons\"\r\n [appTooltip]=\"\r\n 'If enabled, users can provide improvement suggestions to the policies that are listed on the Policy Portal.'\r\n \"\r\n placement=\"bottom-right\"\r\n type=\"white\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"true\"\r\n ></i\r\n ></app-cs-switch\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Policy Category -->\r\n <div\r\n class=\"form-group-row\"\r\n [class.active]=\"activeSelector === 'category'\"\r\n [class.disabled]=\"\r\n activeSelector &&\r\n activeSelector !== 'category' &&\r\n sideSelectorElements.includes(activeSelector)\r\n \"\r\n >\r\n <div\r\n class=\"left\"\r\n [class.checked]=\"policyForm?.selectedCategories?.length > 0\"\r\n >\r\n <img\r\n *ngIf=\"\r\n policyForm?.selectedCategories?.length == 0 ||\r\n activeSelector === 'category'\r\n \"\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/category.svg\"\r\n alt=\"\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"\r\n policyForm?.selectedCategories?.length > 0 &&\r\n activeSelector !== 'category'\r\n \"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\"\r\n >Policy Category <span class=\"required\">*</span>\r\n </label>\r\n <div\r\n class=\"select\"\r\n *ngIf=\"policyForm?.selectedCategories?.length == 0\"\r\n >\r\n <input\r\n type=\"text\"\r\n (click)=\"activateSelector('category', true)\"\r\n placeholder=\"Select a category for this policy.\"\r\n readonly\r\n />\r\n </div>\r\n\r\n <div\r\n class=\"selected\"\r\n *ngIf=\"policyForm?.selectedCategories?.length > 0\"\r\n >\r\n <div\r\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\r\n >\r\n <ng-container\r\n *ngFor=\"\r\n let category of policyForm?.selectedCategories?.slice(0, 1)\r\n \"\r\n >\r\n <i\r\n (click)=\"remove('category', category)\"\r\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"category.item_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ category.item_name }}</span\r\n >\r\n </ng-container>\r\n <button\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\r\n *ngIf=\"policyForm?.selectedCategories?.length > 1\"\r\n type=\"button\"\r\n appPopover\r\n (click)=\"category.popover()\"\r\n placement=\"right\"\r\n >\r\n +{{ policyForm?.selectedCategories?.slice(1).length }}\r\n </button>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\" [class.more-one]=\"policyForm?.selectedCategories?.length>1\"\r\n [class.plus]=\"policyForm?.selectedCategories?.length>2\">\r\n <span class=\"chip\" *ngFor=\"let category of policyForm?.selectedCategories?.slice(0,2)\"><i\r\n class=\"icons\" (click)=\"remove('category',category)\"></i>\r\n {{category.item_name}}</span>\r\n <button class=\"count\" *ngIf=\"policyForm?.selectedCategories?.length > 2\" type=\"button\"\r\n appPopover (click)=\"category.popover()\" placement=\"right\">+\r\n {{policyForm?.selectedCategories?.slice(2).length}}</button>\r\n </div> -->\r\n <button\r\n *ngIf=\"activeSelector !== 'category'\"\r\n class=\"edit\"\r\n type=\"button\"\r\n (click)=\"activateSelector('category', true)\"\r\n >\r\n <i class=\"icons\"></i> Edit\r\n </button>\r\n </div>\r\n <app-popover #category [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let category of policyForm?.selectedCategories | slice : 1;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"remove('category', category)\"\r\n ></i\r\n >\r\n {{ category.item_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <p\r\n *ngIf=\"submitted && policyForm?.selectedCategories?.length == 0\"\r\n [appScrollInView]=\"true\"\r\n class=\"error-message\"\r\n >\r\n Please select the category for this policy.\r\n </p>\r\n </div>\r\n\r\n <div class=\"vx-form-group\" *ngIf=\"policyForm?.customTags?.length > 0\">\r\n <ng-container *ngFor=\"let tag of policyForm?.customTags\">\r\n <label class=\"vx-control-panel vx-mt-2\">{{ tag.tagname }}</label>\r\n <input\r\n type=\"text\"\r\n [(ngModel)]=\"tag.value\"\r\n placeholder=\"{{ tag.tagname }}\"\r\n />\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Effective Date -->\r\n <div class=\"form-group-row\" [class.disabled]=\"activeSelector\">\r\n <div class=\"left\" [class.checked]=\"false\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/when.svg\"\r\n alt=\"\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"false\"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Effective Date</label>\r\n <div class=\"date-time-picker\">\r\n <div class=\"picker-group\">\r\n <input\r\n type=\"text\"\r\n readonly\r\n placeholder=\"Select the effective date of the policy.\"\r\n [value]=\"policyForm.policyDueDate | date : 'dd MMM yyyy'\"\r\n (click)=\"openDatePicker()\"\r\n />\r\n <i class=\"icons\"></i>\r\n <dp-date-picker\r\n #datePicker\r\n (onSelect)=\"datePickerOverlay = false; closeDatePicker($event)\"\r\n [config]=\"dateConfig\"\r\n [(ngModel)]=\"policyForm.policyDueDate\"\r\n >\r\n </dp-date-picker>\r\n <div\r\n class=\"vx-overlay\"\r\n (click)=\"closeDatePicker($event)\"\r\n *ngIf=\"datePickerOverlay\"\r\n ></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Policy Owner -->\r\n <div class=\"form-group-row\" [class.active]=\"false\" [class.disabled]=\"false\">\r\n <div class=\"left\" [class.checked]=\"false\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/im-creating.svg\"\r\n alt=\"\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"false\"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <div class=\"vx-d-flex vx-align-center vx-justify-between\">\r\n <label class=\"vx-control-panel\">POLICY OWNER</label>\r\n <app-cs-switch></app-cs-switch>\r\n </div>\r\n <div\r\n *ngIf=\"!policyForm.policy_owners?.length\"\r\n (click)=\"activateSelector('owners', true)\"\r\n class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\"\r\n [class.disabled]=\"false\"\r\n >\r\n <div class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\">\r\n I am creating this Policy on behalf of someone else\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"policyForm.policy_owners?.length\"\r\n class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\"\r\n >\r\n <div class=\"vx-d-flex vx-align-center\">\r\n <div\r\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\r\n >\r\n <i\r\n (click)=\"remove('owners', policyForm?.policy_owners[0], 0)\"\r\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"policyForm?.policy_owners[0]?.member_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ policyForm?.policy_owners[0]?.member_name }}</span\r\n >\r\n\r\n <button\r\n *ngIf=\"policyForm?.policy_owners?.length > 1\"\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4 greenBg\"\r\n appPopover\r\n (click)=\"policyUserPopover.popover()\"\r\n placement=\"right\"\r\n >\r\n + {{ policyForm?.policy_owners.length - 1 }}\r\n </button>\r\n </div>\r\n <div\r\n *ngIf=\"false\"\r\n class=\"vx-fs-12 vx-paragraph-txt vx-ml-1 vx-mr-1\"\r\n >\r\n &\r\n </div>\r\n <div\r\n *ngIf=\"false\"\r\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\r\n >\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"'Samantha Jones'\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >Samantha Jones</span\r\n >\r\n <button\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\r\n appPopover\r\n (click)=\"policyGroupPopover.popover()\"\r\n placement=\"right\"\r\n >\r\n +4\r\n </button>\r\n </div>\r\n <app-popover #policyUserPopover [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let owner of policyForm?.policy_owners | slice : 1;\r\n let i = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span\r\n class=\"value\"\r\n [appTooltip]=\"owner?.member_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n <i\r\n (click)=\"remove('owners', owner, i + 1)\"\r\n class=\"icons\"\r\n ></i\r\n >\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 #policyGroupPopover [dontCloseonClick]=\"true\">\r\n <div class=\"wf-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\r\n class=\"value\"\r\n [appTooltip]=\"'Harshvardhan Kariwala'\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n <i class=\"icons\"></i>\r\n Harshvardhan Kariwala\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n <button\r\n (click)=\"activateSelector('owners', true)\"\r\n class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\r\n >\r\n <i class=\"icons vx-mr-1\"></i> EDIT\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Review -->\r\n <div class=\"form-group-row\" [class.active]=\"false\" [class.disabled]=\"false\">\r\n <div class=\"left\" [class.checked]=\"policyForm?.review\">\r\n <img\r\n *ngIf=\"!policyForm?.review\"\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/reviewer.svg\"\r\n alt=\"\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"policyForm?.review\"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">REVIEW</label>\r\n <div\r\n class=\"reviewSelection vx-p-3 vx-pb-0\"\r\n [class.disabled]=\"\r\n activeSelector && sideSelectorElements.includes(activeSelector)\r\n \"\r\n >\r\n <div class=\"vx-fs-13 vx-paragraph-txt vx-mb-1\">\r\n Does this policy need to be reviewed?\r\n </div>\r\n <app-cs-radio\r\n [checked]=\"policyForm?.review\"\r\n (checkedEvent)=\"typeSelected(true)\"\r\n ><div class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-mr-3\">\r\n YES\r\n </div></app-cs-radio\r\n >\r\n <app-cs-radio\r\n [checked]=\"!policyForm?.review\"\r\n (checkedEvent)=\"typeSelected(false)\"\r\n ><div class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-mr-3\">\r\n NO\r\n </div></app-cs-radio\r\n >\r\n </div>\r\n\r\n <ng-container *ngIf=\"policyForm?.review\">\r\n <label class=\"vx-control-panel vx-mt-2\">REVIEWER</label>\r\n <div\r\n class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\"\r\n *ngIf=\"policyForm?.selectedReviewers?.length == 0\"\r\n [appScrollInView]=\"scrollToBottom\"\r\n [class.active]=\"activeSelector === 'reviewer'\"\r\n [class.disabled]=\"\r\n activeSelector &&\r\n activeSelector !== 'reviewer' &&\r\n activeSelector !== 'reviewerFrequency' &&\r\n sideSelectorElements.includes(activeSelector)\r\n \"\r\n (click)=\"activateSelector('reviewer', true)\"\r\n >\r\n <div\r\n class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\"\r\n >\r\n Select the person responsible for reviewing this policy\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\"\r\n *ngIf=\"policyForm?.selectedReviewers?.length > 0\"\r\n [class.disabled]=\"\r\n activeSelector && sideSelectorElements.includes(activeSelector)\r\n \"\r\n >\r\n <div\r\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\r\n *ngFor=\"let reviewer of policyForm?.selectedReviewers\"\r\n >\r\n <i\r\n (click)=\"remove('reviewer', reviewer)\"\r\n class=\"icons cross vx-fs-12 vx-paragraph-txt vx-mr-1\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"'Samantha Jones'\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n {{ reviewer?.member_name }}</span\r\n >\r\n </div>\r\n <button\r\n class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\r\n *ngIf=\"activeSelector !== 'reviewer'\"\r\n (click)=\"activateSelector('reviewer', true)\"\r\n >\r\n <i class=\"icons vx-mr-1\"></i> EDIT\r\n </button>\r\n </div>\r\n <label class=\"vx-control-panel vx-mt-3\">REVIEW FREQUENCY</label>\r\n <div\r\n *ngIf=\"policyForm?.review_frequency_details == ''\"\r\n class=\"selectButton vx-pl-3 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\"\r\n >\r\n <div\r\n (click)=\"activateSelector('reviewerFrequency', true)\"\r\n class=\"selectButtonPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\"\r\n >\r\n When does this policy needs to be reviewed?\r\n </div>\r\n <div\r\n (click)=\"activateSelector('reviewerFrequency', true)\"\r\n class=\"vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase\"\r\n >\r\n SET A FREQUENCY\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"policyForm?.review_frequency_details != ''\"\r\n class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\"\r\n >\r\n <div class=\"selectBoxText vx-fs-13 vx-paragraph-txt\">\r\n {{ reviewerFrequencyPlaceholder }}\r\n </div>\r\n <button\r\n *ngIf=\"activeSelector !== 'reviewerFrequency'\"\r\n (click)=\"activateSelector('reviewerFrequency', true)\"\r\n class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\r\n >\r\n <i class=\"icons vx-mr-1\"></i> EDIT\r\n </button>\r\n </div>\r\n <p\r\n *ngIf=\"\r\n submitted &&\r\n policyForm?.selectedReviewers?.length > 0 &&\r\n !policyForm?.review_frequency_details\r\n \"\r\n class=\"error-message\"\r\n [appScrollInView]=\"true\"\r\n >\r\n Select the review schedule for this policy.\r\n </p>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- New Approval Workflow -->\r\n <div class=\"form-group-row\" [class.active]=\"false\" [class.disabled]=\"false\">\r\n <div\r\n class=\"left\"\r\n [class.checked]=\"policyForm?.selectedApprovers?.length > 0\"\r\n >\r\n <img\r\n *ngIf=\"\r\n policyForm?.selectedApprovers?.length == 0 ||\r\n activeSelector === 'approvers'\r\n \"\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/approval.svg\"\r\n alt=\"im\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"\r\n policyForm?.selectedApprovers?.length > 0 &&\r\n activeSelector !== 'approvers'\r\n \"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <div class=\"vx-d-flex vx-align-center vx-justify-between\">\r\n <label class=\"vx-control-panel\"\r\n >APPROVAL <span class=\"required\">*</span></label\r\n >\r\n <button\r\n class=\"createNewBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0\"\r\n >\r\n CREATE A NEW APPROVAL WORKFLOW\r\n </button>\r\n </div>\r\n <div\r\n class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\"\r\n [class.disabled]=\"false\"\r\n >\r\n <div class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\">\r\n Select the approval workflow for this policy\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between vx-mb-2\"\r\n >\r\n <div class=\"vx-d-flex vx-align-center\">\r\n <div class=\"level-left vx-d-flex vx-align-center\">\r\n <div class=\"vx-d-block\">\r\n <div\r\n class=\"level-name vx-fs-9 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-lh-3\"\r\n [appTooltip]=\"'Level 1'\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n LEVEL 1\r\n </div>\r\n <div\r\n class=\"vx-fs-9 vx-fw-500 vx-label-txt vx-tt-uppercase vx-lh-3\"\r\n >\r\n SEQUENTIAL\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2 vx-ml-2\"\r\n >\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n ></i\r\n >\r\n <div\r\n class=\"workflowLavel vx-fs-11 vx-fw-500 vx-pl-1 vx-pr-1 vx-lh-4 vx-mr-1 vx-text-center\"\r\n >\r\n 1\r\n </div>\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"'Samantha Jones'\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >Samantha Jones</span\r\n >\r\n <button\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\r\n appPopover\r\n (click)=\"workflowPopover.popover()\"\r\n placement=\"right\"\r\n >\r\n +3\r\n </button>\r\n </div>\r\n <app-popover #workflowPopover [dontCloseonClick]=\"true\">\r\n <div class=\"wf-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\r\n class=\"value\"\r\n [appTooltip]=\"'Harshvardhan Kariwala'\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n <i class=\"icons\"></i>\r\n <span\r\n class=\"workflowLavel vx-fs-11 vx-fw-500 vx-pl-1 vx-pr-1 vx-lh-4 vx-mr-1 vx-text-center\"\r\n >Final</span\r\n >\r\n Harshvardhan Kariwala\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n\r\n <div class=\"vx-d-flex vx-align-center\">\r\n <button\r\n class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\r\n >\r\n <i class=\"icons vx-mr-1\"></i> EDIT\r\n </button>\r\n <button\r\n class=\"deleteBtn vx-fs-11 vx-fw-600 vx-tt-uppercase vx-p-0 vx-m-0 vx-ml-4 vx-d-flex vx-align-center\"\r\n >\r\n <i class=\"icons vx-mr-1\"></i> DELETE\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between vx-mb-2\"\r\n >\r\n <div class=\"vx-d-flex vx-align-center\">\r\n <div class=\"level-left vx-d-flex vx-align-center\">\r\n <div class=\"vx-d-block\">\r\n <div\r\n class=\"level-name vx-fs-9 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-lh-3\"\r\n [appTooltip]=\"'Level 2'\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n LEVEL 2\r\n </div>\r\n <div\r\n class=\"vx-fs-9 vx-fw-500 vx-label-txt vx-tt-uppercase vx-lh-3\"\r\n >\r\n ANYONE\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2 vx-ml-2\"\r\n >\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"'Nick Holden'\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >Nick Holden</span\r\n >\r\n <button\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\r\n appPopover\r\n (click)=\"workflowPopover.popover()\"\r\n placement=\"right\"\r\n >\r\n +3\r\n </button>\r\n </div>\r\n <app-popover #workflowPopover [dontCloseonClick]=\"true\">\r\n <div class=\"wf-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\r\n class=\"value\"\r\n [appTooltip]=\"'Harshvardhan Kariwala'\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n <i class=\"icons\"></i>\r\n Harshvardhan Kariwala\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n\r\n <div class=\"vx-d-flex vx-align-center\">\r\n <button\r\n class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\r\n >\r\n <i class=\"icons vx-mr-1\"></i> EDIT\r\n </button>\r\n <button\r\n class=\"deleteBtn vx-fs-11 vx-fw-600 vx-tt-uppercase vx-p-0 vx-m-0 vx-ml-4 vx-d-flex vx-align-center\"\r\n >\r\n <i class=\"icons vx-mr-1\"></i> DELETE\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Policy Access -->\r\n <div class=\"form-group-row\" [class.active]=\"false\" [class.disabled]=\"false\">\r\n <div class=\"left\" [class.checked]=\"false\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/lock-scope.svg\"\r\n alt=\"\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"false\"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <div class=\"vx-d-flex vx-align-center vx-justify-between\">\r\n <label class=\"vx-control-panel\">POLICY ACCESS</label>\r\n </div>\r\n <div\r\n class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\"\r\n [class.disabled]=\"false\"\r\n >\r\n <div class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\">\r\n Who should be able to view this policy?\r\n </div>\r\n </div>\r\n\r\n <div class=\"selectBoxSuccess vx-pl-2 vx-pr-3\">\r\n <div\r\n class=\"vx-d-flex vx-align-center vx-justify-between vx-mt-2 vx-mb-2\"\r\n >\r\n <div\r\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\r\n >\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"'Samantha Jones'\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >Samantha Jones</span\r\n >\r\n <button\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\r\n appPopover\r\n (click)=\"policyAccessPopover.popover()\"\r\n placement=\"right\"\r\n >\r\n +4\r\n </button>\r\n </div>\r\n <app-popover #policyAccessPopover [dontCloseonClick]=\"true\">\r\n <div class=\"wf-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\r\n class=\"value\"\r\n [appTooltip]=\"'Harshvardhan Kariwala'\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n <i class=\"icons\"></i>\r\n Harshvardhan Kariwala\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <button\r\n class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\r\n >\r\n <i class=\"icons vx-mr-1\"></i> EDIT\r\n </button>\r\n </div>\r\n\r\n <div class=\"vx-mt-4 vx-mb-2\">\r\n <app-cs-radio\r\n ><div class=\"vx-fs-12 vx-paragraph-txt\">\r\n Everyone who has access to this Policy Category\r\n </div></app-cs-radio\r\n >\r\n <app-cs-radio class=\"vx-mt-1\"\r\n ><div class=\"vx-fs-12 vx-paragraph-txt\">\r\n Select users/groups\r\n </div></app-cs-radio\r\n >\r\n </div>\r\n </div>\r\n\r\n <div class=\"vx-mt-2\">\r\n <app-cs-switch\r\n >ACCEPT SUGGESTIONS\r\n <i\r\n class=\"icons vx-fs-12 vx-txt-blue vx-ml-1 vx-mr-2\"\r\n [appTooltip]=\"'Accept suggestions info text here...'\"\r\n placement=\"bottom-right\"\r\n delay=\"0\"\r\n type=\"white\"\r\n [tooltipMandatory]=\"true\"\r\n ></i\r\n ></app-cs-switch\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Attestations -->\r\n <div\r\n class=\"form-group-row\"\r\n [class.active]=\"false\"\r\n [class.disabled]=\"false\"\r\n *ngIf=\"false\"\r\n >\r\n <div class=\"left\" [class.checked]=\"false\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/attestations.svg\"\r\n alt=\"\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"false\"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <div class=\"vx-d-flex vx-align-center vx-justify-between\">\r\n <label class=\"vx-control-panel\">ATTESTATIONS</label>\r\n </div>\r\n <div\r\n class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\"\r\n [class.disabled]=\"false\"\r\n >\r\n <div class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\">\r\n Select the persons required to attest to this Policy\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\"\r\n >\r\n <div\r\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\r\n >\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"'Samantha Jones'\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >Samantha Jones</span\r\n >\r\n <button\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\r\n appPopover\r\n (click)=\"policyAttestationPopover.popover()\"\r\n placement=\"right\"\r\n >\r\n +4\r\n </button>\r\n </div>\r\n <app-popover #policyAttestationPopover [dontCloseonClick]=\"true\">\r\n <div class=\"wf-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\r\n class=\"value\"\r\n [appTooltip]=\"'Harshvardhan Kariwala'\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n <i class=\"icons\"></i>\r\n Harshvardhan Kariwala\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <button\r\n class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\r\n >\r\n <i class=\"icons vx-mr-1\"></i> EDIT\r\n </button>\r\n </div>\r\n\r\n <div class=\"vx-mt-2\">\r\n <app-cs-switch\r\n >REQUIRES E-SIGNATURE FOR ATTESTATION\r\n <i\r\n class=\"icons vx-fs-12 vx-txt-blue vx-ml-1 vx-mr-2\"\r\n [appTooltip]=\"\r\n 'Requires e-signature for attestation info text here...'\r\n \"\r\n placement=\"bottom-right\"\r\n delay=\"0\"\r\n type=\"white\"\r\n [tooltipMandatory]=\"true\"\r\n ></i\r\n ></app-cs-switch\r\n >\r\n </div>\r\n\r\n <label class=\"vx-control-panel vx-mt-2\">WHEN?</label>\r\n <div\r\n class=\"selectButton vx-pl-3 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\"\r\n >\r\n <div\r\n class=\"selectButtonPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\"\r\n >\r\n What is the attestation schedule for this<br />policy?\r\n </div>\r\n <div class=\"vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase\">\r\n SET A FREQUENCY\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\"\r\n >\r\n <div class=\"selectBoxText vx-fs-13 vx-paragraph-txt\">\r\n Every Wednesday by 11:59 pm\r\n </div>\r\n <button\r\n class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\r\n >\r\n <i class=\"icons vx-mr-1\"></i> EDIT\r\n </button>\r\n </div>\r\n\r\n <label class=\"vx-control-panel vx-mt-2\"\r\n >ASSESSMENT OF UNDERSTANDING</label\r\n >\r\n <div\r\n class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\"\r\n [class.disabled]=\"false\"\r\n >\r\n <div class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\">\r\n Set up a questionnaire to confirm the reader\u2019s<br />understanding\r\n of the policy.\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"selectBoxSuccess vx-pl-3 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\"\r\n >\r\n <div\r\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\r\n >\r\n <span class=\"chipName vx-fs-11 vx-label-txt\">5 Questions</span>\r\n </div>\r\n <button\r\n class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\r\n >\r\n <i class=\"icons vx-mr-1\"></i> EDIT\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Approval Workflow -->\r\n <div\r\n class=\"form-group-row\"\r\n *ngIf=\"false\"\r\n [class.active]=\"activeSelector === 'approvers'\"\r\n [class.disabled]=\"\r\n activeSelector &&\r\n activeSelector !== 'approvers' &&\r\n sideSelectorElements.includes(activeSelector)\r\n \"\r\n >\r\n <div\r\n class=\"left\"\r\n [class.checked]=\"policyForm?.selectedApprovers?.length > 0\"\r\n >\r\n <img\r\n *ngIf=\"\r\n policyForm?.selectedApprovers?.length == 0 ||\r\n activeSelector === 'approvers'\r\n \"\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/approval.svg\"\r\n alt=\"im\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"\r\n policyForm?.selectedApprovers?.length > 0 &&\r\n activeSelector !== 'approvers'\r\n \"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div\r\n class=\"vx-form-group approval-workflow\"\r\n [class.disabled]=\"policyApprovalFlag !== 0\"\r\n >\r\n <label class=\"vx-control-panel\">\r\n Approval workflow <span class=\"required\">*</span>\r\n <button\r\n (click)=\"\r\n activateSelector('approvers', true);\r\n addMoreLevels = true;\r\n workflowType = 'SEQUENTIAL'\r\n \"\r\n class=\"button\"\r\n >\r\n Create a new Approval Workflow\r\n </button>\r\n </label>\r\n <div\r\n class=\"select\"\r\n [class.disabled]=\"approverWorkFlowList?.length == 0\"\r\n *ngIf=\"\r\n policyForm?.selectedApprovers[0]?.approvers?.length == 0 ||\r\n policyForm?.selectedApprovers.length == 0\r\n \"\r\n >\r\n <cs-select\r\n [ngModel]=\"selectedApprovalWorkflow\"\r\n (ngModelChange)=\"selectedWorkflowChange($event)\"\r\n [placeholder]=\"'Select approval workflow for this policy'\"\r\n name=\"selectedApprovalWorkflow\"\r\n [setMaxWidth]=\"true\"\r\n >\r\n <cs-option\r\n *ngFor=\"let data of approverWorkFlowList\"\r\n [value]=\"data\"\r\n >\r\n {{ data.workflow_name }}\r\n </cs-option>\r\n <cs-option\r\n [value]=\"-1\"\r\n (click)=\"\r\n activateSelector('approvers', true);\r\n addMoreLevels = true;\r\n workflowType = 'SEQUENTIAL'\r\n \"\r\n >Create a new approval workflow</cs-option\r\n >\r\n </cs-select>\r\n </div>\r\n <ng-container\r\n *ngIf=\"policyForm?.selectedApprovers[0]?.approvers?.length > 0\"\r\n >\r\n <div\r\n class=\"selected\"\r\n *ngFor=\"let level of policyForm?.selectedApprovers; let i = index\"\r\n >\r\n <div class=\"workflow-label\">\r\n <p class=\"title\">Level {{ i + 1 }}</p>\r\n <p class=\"description\">{{ level.name }}</p>\r\n </div>\r\n <div class=\"vx-d-flex vx-align-center\">\r\n <div class=\"chip-container\">\r\n <span\r\n class=\"chip\"\r\n *ngFor=\"\r\n let approver of level.approvers.slice(0, 1);\r\n let j = index\r\n \"\r\n ><i class=\"icons\" (click)=\"remove('approvers', approver, i)\"\r\n ></i\r\n >\r\n <span class=\"step\" *ngIf=\"level.name == 'SEQUENTIAL'\">{{\r\n j + 1\r\n }}</span\r\n >{{ approver.member_name }}</span\r\n >\r\n\r\n <button\r\n class=\"count\"\r\n *ngIf=\"level.approvers?.length > 1\"\r\n type=\"button\"\r\n appPopover\r\n (click)=\"labelName.popover()\"\r\n placement=\"right\"\r\n >\r\n +\r\n\r\n {{ level.approvers.slice(1).length }}\r\n </button>\r\n <app-popover #labelName [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let approver of level.approvers | slice : 1;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i\r\n class=\"icons\"\r\n (click)=\"remove('approvers', approver, i)\"\r\n ></i\r\n >\r\n <span\r\n class=\"step\"\r\n *ngIf=\"level.name == 'SEQUENTIAL'\"\r\n >\r\n {{\r\n j == level.approvers.slice(1).length - 1\r\n ? \"Final\"\r\n : j + 2\r\n }}\r\n </span>\r\n {{ approver.member_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n <button\r\n class=\"edit\"\r\n type=\"button\"\r\n (click)=\"\r\n activateSelector('approvers', true, level.name);\r\n approversListIndex = i\r\n \"\r\n >\r\n <i class=\"icons\"></i>Edit\r\n </button>\r\n <button\r\n class=\"close-btn\"\r\n (click)=\"remove('workflowLevel', level, i)\"\r\n >\r\n <i class=\"icons\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <p\r\n *ngIf=\"\r\n submitted &&\r\n policyForm?.selectedApprovers?.length == 0 &&\r\n policyApprovalFlag === 0\r\n \"\r\n [appScrollInView]=\"true\"\r\n class=\"error-message\"\r\n >\r\n Select or create an approval workflow for this policy.\r\n </p>\r\n\r\n <label\r\n class=\"vx-control-panel\"\r\n *ngIf=\"policyForm.selectedApprovers[0]?.approvers?.length > 0\"\r\n ><button\r\n class=\"button\"\r\n (click)=\"\r\n activateSelector('approvers', true);\r\n addMoreLevels = true;\r\n workflowType = 'SEQUENTIAL'\r\n \"\r\n >\r\n + Add More Levels\r\n </button></label\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Who / now Attestation -->\r\n <div\r\n class=\"form-group-row\"\r\n [class.active]=\"activeSelector === 'assignees'\"\r\n [class.disabled]=\"\r\n activeSelector &&\r\n activeSelector !== 'assignees' &&\r\n sideSelectorElements.includes(activeSelector)\r\n \"\r\n >\r\n <div\r\n class=\"left\"\r\n [class.checked]=\"policyForm?.selectedAssignees?.length > 0\"\r\n >\r\n <img\r\n *ngIf=\"\r\n policyForm?.selectedAssignees?.length == 0 ||\r\n activeSelector === 'assignees'\r\n \"\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/who.svg\"\r\n alt=\"im\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"\r\n policyForm?.selectedAssignees?.length > 0 &&\r\n activeSelector !== 'assignees'\r\n \"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Attestation?</label>\r\n <div\r\n class=\"select\"\r\n *ngIf=\"\r\n (policyForm?.selectedAssignees?.length == 0 && !groupEnabled) ||\r\n (policyForm?.selectedAssignees?.length == 0 &&\r\n groupEnabled &&\r\n policyForm?.selectedGroupAssignee.length == 0)\r\n \"\r\n >\r\n <input\r\n type=\"text\"\r\n (click)=\"activateSelector('assignees', true)\"\r\n placeholder=\"Select the persons responsible for attesting this policy.\"\r\n readonly\r\n />\r\n </div>\r\n <div\r\n class=\"selected\"\r\n *ngIf=\"\r\n policyForm?.selectedAssignees?.length > 0 ||\r\n policyForm?.selectedGroupAssignee?.length > 0\r\n \"\r\n >\r\n <div class=\"chip-container\" *ngIf=\"!groupEnabled\">\r\n <span\r\n class=\"chip\"\r\n *ngFor=\"\r\n let assignee of policyForm?.selectedAssignees?.slice(0, 2)\r\n \"\r\n ><i class=\"icons\" (click)=\"remove('assignees', assignee)\"\r\n ></i\r\n >\r\n {{ assignee.employee_name }}</span\r\n >\r\n <button\r\n class=\"count\"\r\n *ngIf=\"policyForm?.selectedAssignees?.length > 2\"\r\n type=\"button\"\r\n appPopover\r\n (click)=\"assigneePopover.popover()\"\r\n placement=\"right\"\r\n >\r\n + {{ policyForm?.selectedAssignees?.slice(2).length }}\r\n </button>\r\n </div>\r\n <div class=\"chip-container\" *ngIf=\"groupEnabled\">\r\n <div\r\n class=\"chip-inner\"\r\n *ngIf=\"groupEnabled && policyForm?.selectedAssignees.length > 0\"\r\n >\r\n <i\r\n class=\"icons cross vx-mr-1\"\r\n (click)=\"\r\n remove('assignees', policyForm?.selectedAssignees[0])\r\n \"\r\n ></i\r\n >\r\n <span\r\n class=\"chip\"\r\n [appTooltip]=\"policyForm?.selectedAssignees[0]?.employee_name\"\r\n placement=\"bottom-left\"\r\n type=\"black\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n <span\r\n class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\"\r\n >\r\n {{ policyForm?.selectedAssignees[0]?.employee_name }}\r\n </span>\r\n </span>\r\n <button\r\n *ngIf=\"policyForm?.selectedAssignees.length > 1\"\r\n class=\"count user\"\r\n appPopover\r\n (click)=\"UserPopover.popover()\"\r\n placement=\"right\"\r\n >\r\n +{{ policyForm?.selectedAssignees.length - 1 }}\r\n </button>\r\n </div>\r\n <span\r\n class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\"\r\n *ngIf=\"\r\n policyForm?.selectedAssignees.length > 0 &&\r\n policyForm?.selectedGroupAssignee.length > 0\r\n \"\r\n >&</span\r\n >\r\n <div\r\n class=\"chip-inner\"\r\n *ngIf=\"policyForm?.selectedGroupAssignee.length > 0\"\r\n >\r\n <i\r\n class=\"icons cross vx-mr-1\"\r\n (click)=\"\r\n remove(\r\n 'groupAssignees',\r\n policyForm?.selectedGroupAssignee[0]\r\n )\r\n \"\r\n ></i\r\n >\r\n <span class=\"chip\"\r\n ><span\r\n class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\"\r\n >{{\r\n policyForm?.selectedGroupAssignee[0]?.group_name\r\n }}</span\r\n ></span\r\n >\r\n <button\r\n *ngIf=\"policyForm?.selectedGroupAssignee.length > 1\"\r\n class=\"count\"\r\n appPopover\r\n (click)=\"group.popover()\"\r\n placement=\"right\"\r\n >\r\n +{{ policyForm?.selectedGroupAssignee.length - 1 }}\r\n </button>\r\n </div>\r\n </div>\r\n <button\r\n class=\"edit\"\r\n type=\"button\"\r\n (click)=\"activateSelector('assignees', true)\"\r\n >\r\n <i class=\"icons\"></i> Edit\r\n </button>\r\n </div>\r\n <p\r\n *ngIf=\"\r\n submitted &&\r\n ((policyForm?.selectedAssignees?.length == 0 &&\r\n policyForm?.frequency_details &&\r\n !groupEnabled) ||\r\n (policyForm?.selectedAssignees?.length == 0 &&\r\n policyForm.selectedGroupAssignee.length == 0 &&\r\n policyForm?.frequency_details &&\r\n groupEnabled))\r\n \"\r\n id=\"whovalidatemsg\"\r\n class=\"error-message\"\r\n [appScrollInView]=\"true\"\r\n >\r\n Select the persons required to attest to this Policy.\r\n </p>\r\n <app-cs-switch\r\n [(ngValue)]=\"policyForm.requiresSignatureForAttestation\"\r\n [class.disabled]=\"policyForm?.selectedAssignees?.length == 0\"\r\n class=\"who-toggle\"\r\n >THIS POLICY REQUIRES E-SIGNATURE FOR ATTESTATION\r\n <i\r\n class=\"icons\"\r\n [appTooltip]=\"\r\n 'If selected, the readers will be required to attest this policy using their electronic signature.'\r\n \"\r\n placement=\"bottom-right\"\r\n type=\"white\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"true\"\r\n ></i\r\n ></app-cs-switch\r\n >\r\n <app-popover #assigneePopover [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let assignee of policyForm?.selectedAssignees | slice : 2;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"remove('assignees', assignee)\"\r\n ></i\r\n >\r\n {{ assignee.employee_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <app-popover #UserPopover [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let assignee of policyForm?.selectedAssignees | slice : 1;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"remove('assignees', assignee)\"\r\n ></i\r\n >\r\n {{ assignee.employee_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=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let data of policyForm?.selectedGroupAssignee | slice : 1;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"remove('groupAssignees', data)\"\r\n ></i\r\n >\r\n {{ data.group_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n\r\n <!-- overseer -->\r\n <app-popover #overseerPopover [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let overseer of policyForm?.CCEmail | slice : 1;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"remove('ccEmail', overseer)\"\r\n ></i\r\n >\r\n {{ overseer?.employee_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=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let data of policyForm?.CCGroupEmail | slice : 1;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"remove('ccGroupEmail', data)\"\r\n ></i\r\n >\r\n {{ data?.group_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <!-- overseer end -->\r\n\r\n <!-- overseer fail start -->\r\n <app-popover #overseerFailPopover [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let overseer of policyForm?.CCFailEmail | slice : 1;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"remove('ccFail', overseer)\"\r\n ></i\r\n >\r\n {{ overseer?.employee_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <app-popover #overseerFailGroup [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let data of policyForm?.CCFailEmailGroup | slice : 1;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i\r\n class=\"icons\"\r\n (click)=\"remove('ccGroupFailEmail', data)\"\r\n ></i\r\n >\r\n {{ data?.group_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <!-- overseer fail end -->\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- When -->\r\n <div\r\n class=\"form-group-row\"\r\n [class.active]=\"activeSelector === 'frequency'\"\r\n [class.disabled]=\"\r\n activeSelector &&\r\n activeSelector !== 'frequency' &&\r\n sideSelectorElements.includes(activeSelector)\r\n \"\r\n >\r\n <div class=\"left\" [class.checked]=\"policyForm?.frequency_details\">\r\n <img\r\n *ngIf=\"\r\n !policyForm?.frequency_details || activeSelector === 'frequency'\r\n \"\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/when.svg\"\r\n alt=\"im\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"\r\n policyForm?.frequency_details && activeSelector !== 'frequency'\r\n \"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">When?</label>\r\n\r\n <div\r\n *ngIf=\"policyForm?.frequency_details == ''\"\r\n class=\"select button-sec\"\r\n >\r\n <div\r\n class=\"custom-input frequency-custom-input\"\r\n (click)=\"activateSelector('frequency', true)\"\r\n >\r\n {{ frequencyPlaceholder }}\r\n </div>\r\n\r\n <button (click)=\"activateSelector('frequency', true)\" type=\"button\">\r\n Set A frequency\r\n </button>\r\n </div>\r\n <div\r\n *ngIf=\"policyForm?.frequency_details != ''\"\r\n class=\"selected button-sec\"\r\n >\r\n <span class=\"chip\">{{ frequencyPlaceholder }}</span>\r\n <button\r\n *ngIf=\"activeSelector !== 'frequency'\"\r\n type=\"button\"\r\n class=\"edit\"\r\n (click)=\"activateSelector('frequency', true)\"\r\n >\r\n <i class=\"icons\"></i>Edit\r\n </button>\r\n </div>\r\n <p\r\n *ngIf=\"\r\n submitted &&\r\n ((policyForm?.selectedAssignees?.length > 0 &&\r\n !policyForm?.frequency_details &&\r\n !groupEnabled) ||\r\n ((policyForm?.selectedAssignees?.length > 0 ||\r\n policyForm?.selectedGroupAssignee?.length > 0) &&\r\n !policyForm?.frequency_details &&\r\n groupEnabled))\r\n \"\r\n class=\"error-message\"\r\n [appScrollInView]=\"true\"\r\n >\r\n Select an attestation schedule for this policy.\r\n </p>\r\n\r\n <!-- <label class=\"vx-control-panel\">Effective Date</label>\r\n <div class=\"date-time-picker\">\r\n <div class=\"picker-group\">\r\n <input type=\"text\" readonly placeholder=\"Select the date from which this policy goes into effect.\"\r\n [value]=\"policyForm.policyDueDate | date: 'dd MMM yyyy'\" (click)=\"openDatePicker();\">\r\n <i class=\"icons\"></i>\r\n <dp-date-picker #datePicker (onSelect)=\"datePickerOverlay = false;closeDatePicker($event)\"\r\n [config]=\"dateConfig\" [(ngModel)]=\"policyForm.policyDueDate\">\r\n </dp-date-picker>\r\n <div class=\"vx-overlay\" (click)=\"closeDatePicker($event)\" *ngIf=\"datePickerOverlay\"></div>\r\n </div>\r\n </div> -->\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Checkpoints / Assessment of Understanding -->\r\n <div\r\n class=\"form-group-row\"\r\n [appScrollInView]=\"scrollToBottom\"\r\n *ngIf=\"true\"\r\n [class.active]=\"activeSelector === 'checkpoints'\"\r\n [class.disabled]=\"\r\n activeSelector &&\r\n activeSelector !== 'checkpoints' &&\r\n sideSelectorElements.includes(activeSelector)\r\n \"\r\n >\r\n <div\r\n class=\"left\"\r\n [class.checked]=\"policyForm?.checkpointDetails?.length > 0\"\r\n >\r\n <img\r\n *ngIf=\"\r\n policyForm?.checkpointDetails?.length == 0 ||\r\n activeSelector === 'checkpoints'\r\n \"\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/checkpoints.svg\"\r\n alt=\"im\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"\r\n policyForm?.checkpointDetails?.length > 0 &&\r\n activeSelector !== 'checkpoints'\r\n \"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">\r\n Assessment of Understanding\r\n <!-- <button *ngIf=\"policyForm?.checkpointDetails?.length===0\" class=\"button\" (click)=\"activateSelector('checkpoints',true)\">+ Add Checkpoints</button> -->\r\n </label>\r\n <div\r\n class=\"select\"\r\n *ngIf=\"policyForm?.checkpointDetails?.length === 0\"\r\n (click)=\"activateSelector('checkpoints', true)\"\r\n >\r\n <!-- <input type=\"text\" placeholder=\"Set up a questionnaire to confirm the reader\u2019s understanding of the policy.\" readonly> -->\r\n <div class=\"custom-input\">\r\n Set up a questionnaire to confirm the reader\u2019s<br />understanding\r\n of the policy.\r\n </div>\r\n </div>\r\n <div\r\n class=\"selected\"\r\n *ngIf=\"policyForm?.checkpointDetails?.length > 0\"\r\n >\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\">{{policyForm?.checkpointDetails?.length + (policyForm?.checkpointDetails?.length > 1 ?' Checkpoints':' Checkpoint')}}</span>\r\n\r\n <span class=\"checkpoint-point-text first\">TOTAL POINTS: <span class=\"no\">{{policyForm?.totalQuestion}}</span><br><em>Each question carries 1 point</em></span>\r\n\r\n <span class=\"checkpoint-point-text\">POINTS REQUIRED TO ATTEST : <span class=\"no\">{{policyForm?.passingMarks}}</span></span>\r\n\r\n </div> -->\r\n <div\r\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\r\n >\r\n <span class=\"chipName vx-fs-11 vx-label-txt\">{{\r\n policyForm?.checkpointDetails?.length +\r\n (policyForm?.checkpointDetails?.length > 1\r\n ? \" Questions\"\r\n : \" Question\")\r\n }}</span>\r\n </div>\r\n <button\r\n class=\"edit\"\r\n type=\"button\"\r\n (click)=\"activateSelector('checkpoints', true)\"\r\n >\r\n <i class=\"icons\"></i> Edit\r\n </button>\r\n </div>\r\n <!-- <app-popover #checkpointPopOver [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let checkpoint of policyForm?.checkpointDetails | slice: 1; let j = index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"remove('checkpoints',checkpoint,j+1)\"></i>\r\n {{ checkpoint?.question }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover> -->\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Risk Classification -->\r\n <div\r\n class=\"form-group-row\"\r\n *ngIf=\"showRiskClassification && false\"\r\n [class.disabled]=\"activeSelector && activeSelector !== 'name'\"\r\n >\r\n <div class=\"left\" [class.checked]=\"policyForm.riskRating\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/risks.svg\"\r\n alt=\"im\"\r\n *ngIf=\"!policyForm?.riskRating\"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"policyForm?.riskRating\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Risk Classification</label>\r\n <div class=\"classification\">\r\n <label\r\n class=\"low\"\r\n *ngFor=\"let class of riskClassification\"\r\n [ngClass]=\"[class.class]\"\r\n >\r\n <input\r\n type=\"radio\"\r\n name=\"classification\"\r\n [value]=\"class.value\"\r\n [checked]=\"policyForm?.riskRating === class.value\"\r\n [(ngModel)]=\"policyForm.riskRating\"\r\n />\r\n <span>{{ class.name }}</span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Responsibility Center -->\r\n <div\r\n class=\"form-group-row\"\r\n [appScrollInView]=\"scrollToBottom\"\r\n *ngIf=\"policyForm.addResponsibilityCenters\"\r\n [class.active]=\"activeSelector === 'rc'\"\r\n [class.disabled]=\"\r\n activeSelector &&\r\n activeSelector !== 'rc' &&\r\n sideSelectorElements.includes(activeSelector)\r\n \"\r\n >\r\n <div class=\"left\" [class.checked]=\"policyForm?.selectedRCs?.length > 0\">\r\n <img\r\n *ngIf=\"\r\n policyForm?.selectedRCs?.length == 0 || activeSelector === 'rc'\r\n \"\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/responsibility-center.svg\"\r\n alt=\"\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"policyForm?.selectedRCs?.length > 0 && activeSelector !== 'rc'\"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Responsibility Center</label>\r\n <div class=\"select\" *ngIf=\"policyForm?.selectedRCs?.length == 0\">\r\n <input\r\n type=\"text\"\r\n (click)=\"activateSelector('rc', true)\"\r\n placeholder=\"Select Responsibility Center(s) that this policy relates to.\"\r\n readonly\r\n />\r\n </div>\r\n <div class=\"selected\" *ngIf=\"policyForm?.selectedRCs?.length > 0\">\r\n <div class=\"chip-container\">\r\n <span\r\n class=\"chip\"\r\n *ngFor=\"let rc of policyForm?.selectedRCs?.slice(0, 2)\"\r\n ><i class=\"icons\" (click)=\"remove('rc', rc)\"></i>\r\n {{ rc.item_name }}</span\r\n >\r\n <button\r\n class=\"count\"\r\n *ngIf=\"policyForm?.selectedRCs?.length > 2\"\r\n type=\"button\"\r\n appPopover\r\n (click)=\"rcPopover.popover()\"\r\n placement=\"right\"\r\n >\r\n + {{ policyForm?.selectedRCs?.slice(2).length }}\r\n </button>\r\n </div>\r\n <button\r\n class=\"edit\"\r\n type=\"button\"\r\n (click)=\"activateSelector('rc', true)\"\r\n >\r\n <i class=\"icons\"></i> Edit\r\n </button>\r\n </div>\r\n <app-popover #rcPopover [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let rc of policyForm?.selectedRCs | slice : 2;\r\n let j = index\r\n \"\r\n >\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 </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Version -->\r\n <div class=\"form-group-row\" [class.disabled]=\"false\">\r\n <div class=\"left\" [class.checked]=\"false\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/associated-risks.svg\"\r\n alt=\"name\"\r\n *ngIf=\"true\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"false\"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">VERSION</label>\r\n <input\r\n [(ngModel)]=\"policyForm.policy_version\"\r\n (change)=\"onVersion($event)\"\r\n type=\"text\"\r\n placeholder=\"Specify the policy version.\"\r\n />\r\n <p\r\n *ngIf=\"!isVersionValid\"\r\n class=\"error-message\"\r\n [appScrollInView]=\"true\"\r\n >\r\n Enter a valid version\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Reviewer -->\r\n <div\r\n class=\"form-group-row\"\r\n [appScrollInView]=\"scrollToBottom\"\r\n *ngIf=\"policyForm.addReviewers && false\"\r\n [class.active]=\"activeSelector === 'reviewer'\"\r\n [class.disabled]=\"\r\n activeSelector &&\r\n activeSelector !== 'reviewer' &&\r\n activeSelector !== 'reviewerFrequency' &&\r\n sideSelectorElements.includes(activeSelector)\r\n \"\r\n >\r\n <div\r\n class=\"left\"\r\n [class.checked]=\"policyForm?.selectedReviewers?.length > 0\"\r\n >\r\n <img\r\n *ngIf=\"\r\n policyForm?.selectedReviewers?.length == 0 ||\r\n activeSelector === 'reviewer'\r\n \"\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/reviewer.svg\"\r\n alt=\"\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"\r\n policyForm?.selectedReviewers?.length > 0 &&\r\n activeSelector !== 'reviewer'\r\n \"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Reviewer </label>\r\n <div\r\n class=\"select\"\r\n *ngIf=\"policyForm?.selectedReviewers?.length == 0\"\r\n >\r\n <input\r\n type=\"text\"\r\n (click)=\"activateSelector('reviewer', true)\"\r\n placeholder=\"Select the person responsible for reviewing this policy\"\r\n readonly\r\n />\r\n </div>\r\n\r\n <div\r\n class=\"selected\"\r\n *ngIf=\"policyForm?.selectedReviewers?.length > 0\"\r\n >\r\n <div class=\"chip-container\">\r\n <span\r\n class=\"chip\"\r\n *ngFor=\"let reviewer of policyForm?.selectedReviewers\"\r\n ><i class=\"icons\" (click)=\"remove('reviewer', reviewer)\"\r\n ></i\r\n >\r\n {{ reviewer.member_name }}</span\r\n >\r\n </div>\r\n <button\r\n class=\"edit\"\r\n type=\"button\"\r\n (click)=\"activateSelector('reviewer', true)\"\r\n >\r\n <i class=\"icons\"></i> Edit\r\n </button>\r\n </div>\r\n <p\r\n *ngIf=\"\r\n submitted &&\r\n policyForm?.selectedReviewers?.length == 0 &&\r\n policyForm?.review_frequency_details\r\n \"\r\n class=\"error-message\"\r\n [appScrollInView]=\"true\"\r\n >\r\n Select a reviewer for this policy.\r\n </p>\r\n\r\n <label class=\"vx-control-panel\">When? </label>\r\n\r\n <div\r\n *ngIf=\"policyForm?.review_frequency_details == ''\"\r\n class=\"select button-sec\"\r\n >\r\n <input\r\n type=\"text\"\r\n (click)=\"activateSelector('reviewerFrequency', true)\"\r\n [placeholder]=\"reviewerFrequencyPlaceholder\"\r\n readonly\r\n />\r\n <button\r\n (click)=\"activateSelector('reviewerFrequency', true)\"\r\n type=\"button\"\r\n >\r\n Set A frequency\r\n </button>\r\n </div>\r\n <div\r\n *ngIf=\"policyForm?.review_frequency_details != ''\"\r\n class=\"selected button-sec\"\r\n >\r\n <span class=\"chip\">{{ reviewerFrequencyPlaceholder }}</span>\r\n <button\r\n *ngIf=\"activeSelector !== 'reviewerFrequency'\"\r\n type=\"button\"\r\n class=\"edit\"\r\n (click)=\"activateSelector('reviewerFrequency', true)\"\r\n >\r\n <i class=\"icons\"></i>Edit\r\n </button>\r\n </div>\r\n <p\r\n *ngIf=\"\r\n submitted &&\r\n policyForm?.selectedReviewers?.length > 0 &&\r\n !policyForm?.review_frequency_details\r\n \"\r\n class=\"error-message\"\r\n [appScrollInView]=\"true\"\r\n >\r\n Select the review schedule for this policy.\r\n </p>\r\n\r\n <app-format-and-evidence\r\n (updateFiles)=\"saveSelectedList('reviewer_attachments', $event)\"\r\n #formatEvidence\r\n [mode]=\"'policyReviewer'\"\r\n [organization_id]=\"organization_id\"\r\n [formatEvidanceData]=\"policyForm?.documentsAndLinks\"\r\n >\r\n </app-format-and-evidence>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Overseer -->\r\n <div\r\n class=\"form-group-row\"\r\n [appScrollInView]=\"scrollToBottom\"\r\n *ngIf=\"policyForm.addOverseers\"\r\n [class.active]=\"\r\n activeSelector === 'ccEmail' || activeSelector === 'ccFail'\r\n \"\r\n [class.disabled]=\"\r\n activeSelector &&\r\n activeSelector !== 'ccEmail' &&\r\n activeSelector !== 'ccFail' &&\r\n sideSelectorElements.includes(activeSelector)\r\n \"\r\n >\r\n <div\r\n class=\"left\"\r\n [class.checked]=\"\r\n policyForm?.CCEmail?.length > 0 || policyForm?.CCFailEmail?.length > 0\r\n \"\r\n >\r\n <img\r\n *ngIf=\"\r\n (policyForm?.CCFailEmail?.length == 0 &&\r\n policyForm?.CCEmail?.length == 0) ||\r\n activeSelector === 'ccEmail' ||\r\n activeSelector === 'ccFail'\r\n \"\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/oversight.svg\"\r\n alt=\"im\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"\r\n (policyForm?.CCFailEmail?.length > 0 ||\r\n policyForm?.CCEmail?.length > 0) &&\r\n activeSelector !== 'ccEmail' &&\r\n activeSelector !== 'ccFail'\r\n \"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Overseer </label>\r\n <div\r\n class=\"select\"\r\n *ngIf=\"\r\n policyForm?.CCEmail?.length == 0 &&\r\n policyForm?.CCGroupEmail.length == 0\r\n \"\r\n >\r\n <input\r\n type=\"text\"\r\n (click)=\"activateSelector('ccEmail', true)\"\r\n placeholder=\"Who should have oversight of this policy?\"\r\n readonly\r\n />\r\n </div>\r\n <div\r\n class=\"selected\"\r\n *ngIf=\"\r\n policyForm?.CCEmail?.length > 0 ||\r\n policyForm?.CCGroupEmail.length > 0\r\n \"\r\n >\r\n <div *ngIf=\"!groupEnabled\" class=\"chip-container\">\r\n <span\r\n class=\"chip\"\r\n *ngFor=\"let ccEmail of policyForm?.CCEmail?.slice(0, 2)\"\r\n ><i class=\"icons\" (click)=\"remove('ccEmail', ccEmail)\"\r\n ></i\r\n >\r\n {{ ccEmail.employee_name }}</span\r\n >\r\n <button\r\n class=\"count\"\r\n *ngIf=\"policyForm?.CCEmail?.length > 2\"\r\n type=\"button\"\r\n appPopover\r\n (click)=\"ccEmailPopover.popover()\"\r\n placement=\"right\"\r\n >\r\n + {{ policyForm?.CCEmail?.slice(2).length }}\r\n </button>\r\n </div>\r\n <div *ngIf=\"groupEnabled\" class=\"chip-container\">\r\n <div\r\n class=\"chip-inner\"\r\n *ngIf=\"groupEnabled && policyForm?.CCEmail?.length > 0\"\r\n >\r\n <i\r\n class=\"icons cross vx-mr-1\"\r\n (click)=\"remove('ccEmail', policyForm?.CCEmail[0])\"\r\n ></i\r\n >\r\n <span\r\n class=\"chip\"\r\n [appTooltip]=\"policyForm?.CCEmail[0].employee_name\"\r\n placement=\"bottom-left\"\r\n type=\"black\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"false\"\r\n ><span\r\n class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\"\r\n >{{ policyForm?.CCEmail[0].employee_name }}</span\r\n ></span\r\n >\r\n <button\r\n *ngIf=\"policyForm?.CCEmail?.length > 1\"\r\n class=\"count user\"\r\n appPopover\r\n (click)=\"overseerPopover.popover()\"\r\n placement=\"right\"\r\n >\r\n +{{ policyForm?.CCEmail?.length - 1 }}\r\n </button>\r\n </div>\r\n <span\r\n class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\"\r\n *ngIf=\"\r\n policyForm?.CCEmail.length > 0 &&\r\n policyForm?.CCGroupEmail?.length > 0\r\n \"\r\n >&</span\r\n >\r\n\r\n <div\r\n class=\"chip-inner\"\r\n *ngIf=\"policyForm?.CCGroupEmail.length > 0\"\r\n >\r\n <i\r\n class=\"icons cross vx-mr-1\"\r\n (click)=\"remove('ccGroupEmail', policyForm?.CCGroupEmail[0])\"\r\n ></i\r\n >\r\n <span\r\n class=\"chip\"\r\n [appTooltip]=\"policyForm?.CCGroupEmail[0]?.group_name\"\r\n placement=\"bottom-left\"\r\n type=\"black\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"false\"\r\n ><span\r\n class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\"\r\n >{{ policyForm?.CCGroupEmail[0]?.group_name }}</span\r\n ></span\r\n >\r\n <button\r\n *ngIf=\"policyForm?.CCGroupEmail?.length > 1\"\r\n class=\"count\"\r\n appPopover\r\n (click)=\"overseerGroup.popover()\"\r\n placement=\"right\"\r\n >\r\n +{{ policyForm?.CCGroupEmail?.length - 1 }}\r\n </button>\r\n </div>\r\n </div>\r\n <button\r\n class=\"edit\"\r\n type=\"button\"\r\n (click)=\"activateSelector('ccEmail', true)\"\r\n >\r\n <i class=\"icons\"></i> Edit\r\n </button>\r\n </div>\r\n\r\n <div\r\n class=\"select\"\r\n *ngIf=\"\r\n policyForm?.CCFailEmail?.length == 0 &&\r\n policyForm?.CCFailEmailGroup?.length == 0\r\n \"\r\n >\r\n <input\r\n type=\"text\"\r\n (click)=\"activateSelector('ccFail', true)\"\r\n placeholder=\"Who should be notified if the policy is not attested on time?\"\r\n readonly\r\n />\r\n </div>\r\n <div\r\n class=\"selected\"\r\n *ngIf=\"\r\n policyForm?.CCFailEmail?.length > 0 ||\r\n policyForm?.CCFailEmailGroup?.length > 0\r\n \"\r\n >\r\n <div *ngIf=\"!groupEnabled\" class=\"chip-container\">\r\n <span\r\n class=\"chip\"\r\n *ngFor=\"let ccFail of policyForm?.CCFailEmail?.slice(0, 2)\"\r\n ><i class=\"icons\" (click)=\"remove('ccFail', ccFail)\"\r\n ></i\r\n >\r\n {{ ccFail.employee_name }}</span\r\n >\r\n <button\r\n class=\"count\"\r\n *ngIf=\"policyForm?.CCFailEmail?.length > 2\"\r\n type=\"button\"\r\n appPopover\r\n (click)=\"ccFailPopover.popover()\"\r\n placement=\"right\"\r\n >\r\n + {{ policyForm?.CCFailEmail?.slice(2).length }}\r\n </button>\r\n </div>\r\n <div *ngIf=\"groupEnabled\" class=\"chip-container\">\r\n <div\r\n class=\"chip-inner\"\r\n *ngIf=\"groupEnabled && policyForm?.CCFailEmail.length > 0\"\r\n >\r\n <i\r\n class=\"icons cross vx-mr-1\"\r\n (click)=\"remove('ccFail', policyForm?.CCFailEmail[0])\"\r\n ></i\r\n >\r\n <span\r\n class=\"chip\"\r\n [appTooltip]=\"policyForm?.CCFailEmail[0]?.employee_name\"\r\n placement=\"bottom-left\"\r\n type=\"black\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n <span\r\n class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\"\r\n >{{ policyForm?.CCFailEmail[0]?.employee_name }}</span\r\n ></span\r\n >\r\n <button\r\n *ngIf=\"policyForm?.CCFailEmail?.length > 1\"\r\n class=\"count user\"\r\n appPopover\r\n (click)=\"overseerFailPopover.popover()\"\r\n placement=\"right\"\r\n >\r\n +{{ policyForm?.CCFailEmail?.length - 1 }}\r\n </button>\r\n </div>\r\n <span\r\n class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\"\r\n *ngIf=\"\r\n policyForm?.CCFailEmail?.length > 0 &&\r\n policyForm?.CCFailEmailGroup?.length > 0\r\n \"\r\n >&</span\r\n >\r\n <div\r\n class=\"chip-inner\"\r\n *ngIf=\"policyForm?.CCFailEmailGroup?.length > 0\"\r\n >\r\n <i\r\n class=\"icons cross vx-mr-1\"\r\n (click)=\"\r\n remove('ccGroupFailEmail', policyForm?.CCFailEmailGroup[0])\r\n \"\r\n ></i\r\n >\r\n <span\r\n class=\"chip\"\r\n [appTooltip]=\"policyForm?.CCFailEmailGroup[0]?.group_name\"\r\n placement=\"bottom-left\"\r\n type=\"black\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n <span\r\n class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\"\r\n >{{ policyForm?.CCFailEmailGroup[0]?.group_name }}</span\r\n ></span\r\n >\r\n <button\r\n *ngIf=\"policyForm?.CCFailEmailGroup?.length > 1\"\r\n class=\"count\"\r\n appPopover\r\n (click)=\"overseerFailGroup.popover()\"\r\n placement=\"right\"\r\n >\r\n +{{ policyForm?.CCFailEmailGroup?.length - 1 }}\r\n </button>\r\n </div>\r\n </div>\r\n <button\r\n class=\"edit\"\r\n type=\"button\"\r\n (click)=\"activateSelector('ccFail', true)\"\r\n >\r\n <i class=\"icons\"></i> Edit\r\n </button>\r\n </div>\r\n <app-popover #ccEmailPopover [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let ccEmail of policyForm?.CCEmail | slice : 2;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"remove('ccEmail', ccEmail)\"\r\n ></i\r\n >\r\n {{ ccEmail.employee_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <app-popover #ccFailPopover [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let ccFail of policyForm?.CCFailEmail | slice : 2;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"remove('ccFail', ccFail)\"\r\n ></i\r\n >\r\n {{ ccFail.employee_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Related Documents -->\r\n <div\r\n class=\"form-group-row\"\r\n [appScrollInView]=\"scrollToBottom\"\r\n *ngIf=\"policyForm.addAssociatedDocuments\"\r\n [class.disabled]=\"activeSelector && activeSelector !== 'name'\"\r\n >\r\n <div class=\"left\">\r\n <img\r\n *ngIf=\"policyForm.associatedDocuments.formatFiles?.length == 0\"\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/format-evidence.svg\"\r\n alt=\"im\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"policyForm.associatedDocuments.formatFiles?.length > 0\"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">RELATED DOCUMENTS</label>\r\n <app-format-and-evidence\r\n (updateFiles)=\"saveSelectedList('associatedDocuments', $event)\"\r\n [mode]=\"'policy'\"\r\n [organization_id]=\"organization_id\"\r\n [formatEvidanceData]=\"policyForm?.associatedDocuments\"\r\n ></app-format-and-evidence>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Link Programs & Responsibilities -->\r\n <div class=\"form-group-row\" [class.active]=\"false\" [class.disabled]=\"false\">\r\n <div class=\"left\" [class.checked]=\"false\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/link-items.svg\"\r\n alt=\"\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"false\"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\"\r\n >LINK PROGRAMS & RESPONSIBILITIES</label\r\n >\r\n <div\r\n class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\"\r\n [class.disabled]=\"false\"\r\n >\r\n <div class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\">\r\n Select Programs & responsibilities that are<br />associated with\r\n this policy.\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\"\r\n >\r\n <div\r\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\r\n >\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"'Implementing information security continuity'\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >Implementing information security continuity</span\r\n >\r\n <button\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\r\n appPopover\r\n (click)=\"programResponsibilityPopover.popover()\"\r\n placement=\"right\"\r\n >\r\n +4\r\n </button>\r\n </div>\r\n <app-popover\r\n #programResponsibilityPopover\r\n [dontCloseonClick]=\"true\"\r\n >\r\n <div class=\"wf-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\r\n class=\"value\"\r\n [appTooltip]=\"\r\n 'Reporting information security weaknesses'\r\n \"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n <i class=\"icons\"></i>\r\n Reporting information security weaknesses\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <button\r\n class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\r\n >\r\n <i class=\"icons vx-mr-1\"></i> EDIT\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Link Assessment -->\r\n <div class=\"form-group-row\" [class.active]=\"false\" [class.disabled]=\"false\">\r\n <div class=\"left\" [class.checked]=\"false\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/assessments.svg\"\r\n alt=\"\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"false\"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">LINK ASSESSMENTS</label>\r\n <div\r\n *ngIf=\"policyForm?.assessment?.length === 0\"\r\n (click)=\"activateSelector('isAssessment', true)\"\r\n class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\"\r\n [class.disabled]=\"false\"\r\n >\r\n <div class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\">\r\n Select assessments that are associated with this<br />policy.\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"policyForm?.assessment?.length > 0\"\r\n class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\"\r\n >\r\n <div\r\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\r\n >\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"\r\n policyForm.assessment[0]?.assessmentDetails?.assessment_name\r\n \"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{\r\n policyForm.assessment[0]?.assessmentDetails?.assessment_name\r\n }}</span\r\n >\r\n </div>\r\n <app-popover\r\n #programResponsibilityPopover\r\n [dontCloseonClick]=\"true\"\r\n >\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"let assessment of policyForm.assessment | slice : 1\"\r\n >\r\n <div class=\"avatar-card\">\r\n <span\r\n class=\"value\"\r\n [appTooltip]=\"\r\n assessment?.assessmentDetails?.assessment_name\r\n \"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n <i class=\"icons\"></i>\r\n {{ assessment?.assessmentDetails?.assessment_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <button\r\n (click)=\"activateSelector('isAssessment', true)\"\r\n class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\r\n >\r\n <i class=\"icons vx-mr-1\"></i> EDIT\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <app-checkbox-list\r\n [config]=\"categoryConfig\"\r\n [twoColumn]=\"false\"\r\n [itemsList]=\"categoryList\"\r\n [selectedItems]=\"policyForm.selectedCategories\"\r\n [identifierKey]=\"'_id'\"\r\n [displayKey]=\"'item_name'\"\r\n [tooltipKey]=\"'item_name'\"\r\n *ngIf=\"activeSelector === 'category'\"\r\n (saveList)=\"saveSelectedList('category', $event)\"\r\n (closeList)=\"disableSelector()\"\r\n >\r\n </app-checkbox-list>\r\n <!-- <app-checkbox-list [config]=\"approvalWorkflowConfig\" [twoColumn]=\"true\"\r\n [itemsList]=\"\"\r\n [selectedItems]=\"policyForm.issueCCUsers\" [identifierKey]=\"'employee_email'\" [displayKey]=\"'employee_name'\" [tooltipKey]=\"'employee_email'\"\r\n *ngIf=\"activeSelector==='ISSUE_CC'\" (saveList)=\"selectorAction($event,'ISSUE_CC')\"\r\n (closeList)=\"fieldDeselector('ISSUE_CC')\">\r\n</app-checkbox-list> -->\r\n\r\n <app-responsibility-centers-list\r\n *ngIf=\"activeSelector === 'rc'\"\r\n [responsibilityCentersList]=\"rcList\"\r\n [selectedResponsibilityCenters]=\"policyForm.selectedRCs\"\r\n [rcIdKey]=\"'item_id'\"\r\n (saveSelectedList)=\"saveSelectedList('rc', $event)\"\r\n (closeRcList)=\"disableSelector()\"\r\n >\r\n </app-responsibility-centers-list>\r\n\r\n <app-users-radio-list\r\n *ngIf=\"activeSelector === 'reviewer'\"\r\n [itemEmailKey]=\"'member_email'\"\r\n [usersList]=\"allReviewers\"\r\n [selectedUsers]=\"policyForm.selectedReviewers\"\r\n [userIdKey]=\"'member_id'\"\r\n [itemNameKey]=\"'member_name'\"\r\n (saveSelectedList)=\"saveSelectedList('reviewer', $event)\"\r\n (closeUsersList)=\"disableSelector()\"\r\n >\r\n </app-users-radio-list>\r\n\r\n <app-owner-list\r\n *ngIf=\"activeSelector === 'ccEmail' && !groupEnabled\"\r\n [usersList]=\"overseersList\"\r\n [singularText]=\"'User selected'\"\r\n [pluralText]=\"'Users selected'\"\r\n [selectedUsers]=\"policyForm.CCEmail\"\r\n [userIdKey]=\"'employee_id'\"\r\n [itemNameKey]=\"'employee_name'\"\r\n (saveSelectedList)=\"saveSelectedList('ccEmail', $event)\"\r\n (closeUsersList)=\"disableSelector()\"\r\n >\r\n </app-owner-list>\r\n\r\n <user-group-list\r\n *ngIf=\"activeSelector === 'ccEmail' && groupEnabled\"\r\n [groupEnabled]=\"true\"\r\n [userlist]=\"overseersList\"\r\n [groupList]=\"overseerGroupsList\"\r\n [selectedUsers]=\"policyForm.CCEmail\"\r\n [selectedGroups]=\"policyForm.CCGroupEmail\"\r\n (save)=\"saveSelectedList('ccEmail', $event)\"\r\n (cancel)=\"disableSelector()\"\r\n [featureflag]=\"groupEnabled\"\r\n >\r\n </user-group-list>\r\n\r\n <app-owner-list\r\n *ngIf=\"activeSelector === 'ccFail' && !groupEnabled\"\r\n [usersList]=\"overseersList\"\r\n [singularText]=\"'User selected'\"\r\n [pluralText]=\"'Users selected'\"\r\n [selectedUsers]=\"policyForm.CCFailEmail\"\r\n [userIdKey]=\"'employee_id'\"\r\n [itemNameKey]=\"'employee_name'\"\r\n (saveSelectedList)=\"saveSelectedList('ccFail', $event)\"\r\n (closeUsersList)=\"disableSelector()\"\r\n >\r\n </app-owner-list>\r\n\r\n <user-group-list\r\n *ngIf=\"activeSelector === 'ccFail' && groupEnabled\"\r\n [groupEnabled]=\"true\"\r\n [userlist]=\"overseersList\"\r\n [groupList]=\"overseerGroupsList\"\r\n [selectedUsers]=\"policyForm.CCFailEmail\"\r\n [selectedGroups]=\"policyForm.CCFailEmailGroup\"\r\n (save)=\"saveSelectedList('ccFail', $event)\"\r\n (cancel)=\"disableSelector()\"\r\n [featureflag]=\"groupEnabled\"\r\n >\r\n </user-group-list>\r\n\r\n <app-group-users-list\r\n *ngIf=\"activeSelector === 'assignees' && !groupEnabled\"\r\n [usersList]=\"assigneesList\"\r\n [groupsList]=\"groupsList\"\r\n [selectedUsers]=\"policyForm.selectedAssignees\"\r\n [userIdKey]=\"'my_member_id'\"\r\n (saveSelectedList)=\"saveSelectedList('assignees', $event)\"\r\n (closeUsersList)=\"disableSelector()\"\r\n >\r\n </app-group-users-list>\r\n\r\n <user-group-list\r\n *ngIf=\"activeSelector === 'assignees' && groupEnabled\"\r\n [groupEnabled]=\"true\"\r\n [userlist]=\"ownerlist\"\r\n [groupList]=\"groupsList\"\r\n (save)=\"saveSelectedList('assignees', $event)\"\r\n (cancel)=\"disableSelector()\"\r\n [selectedGroups]=\"policyForm.selectedGroupAssignee\"\r\n [selectedUsers]=\"policyForm.selectedAssignees\"\r\n [featureflag]=\"groupEnabled\"\r\n >\r\n </user-group-list>\r\n\r\n <app-owner-list\r\n *ngIf=\"activeSelector === 'approvers'\"\r\n [listHeading]=\"'Select Approvers'\"\r\n [singularText]=\"'User selected'\"\r\n [pluralText]=\"'Users selected'\"\r\n [usersList]=\"allApprovers\"\r\n [showWorkflow]=\"true\"\r\n [selectedUsers]=\"\r\n addMoreLevels\r\n ? []\r\n : policyForm.selectedApprovers[approversListIndex].approvers\r\n \"\r\n [userIdKey]=\"'member_id'\"\r\n [itemEmailKey]=\"'member_email'\"\r\n [itemNameKey]=\"'member_name'\"\r\n (saveSelectedList)=\"saveSelectedList('approvers', $event)\"\r\n (closeUsersList)=\"disableSelector()\"\r\n [mode]=\"mode\"\r\n [reviewerWorkflowType]=\"workflowType\"\r\n (reviewerWorkflowTypeChange)=\"reviewerTypeChange($event)\"\r\n [workflowList]=\"workflowList\"\r\n [workflowText]=\"'Approval Workflow'\"\r\n >\r\n </app-owner-list>\r\n\r\n <app-frequency-container\r\n *ngIf=\"activeSelector === 'frequency'\"\r\n [mode]=\"'policy'\"\r\n [frequencyDetails]=\"frequencyDetails\"\r\n (selectedFrequency)=\"frequencyData($event)\"\r\n [feature]=\"feature\"\r\n [pageType]=\"'policy'\"\r\n (closeFrequency)=\"disableSelector()\"\r\n ></app-frequency-container>\r\n\r\n <app-frequency-container\r\n *ngIf=\"activeSelector === 'reviewerFrequency'\"\r\n [mode]=\"'reviewerFrequency'\"\r\n [frequencyDetails]=\"reviewerFrequencyDetails\"\r\n (selectedFrequency)=\"reviewerFrequencyData($event)\"\r\n [feature]=\"feature\"\r\n [pageType]=\"'policy'\"\r\n (closeFrequency)=\"disableSelector()\"\r\n ></app-frequency-container>\r\n\r\n <app-checkpoints-policy-container\r\n (closeCheckPoint)=\"disableSelector()\"\r\n [checkpointData]=\"policyForm?.checkpointDetails\"\r\n [requiredPoint]=\"policyForm?.passingMarks\"\r\n *ngIf=\"activeSelector === 'checkpoints'\"\r\n (saveCheckPoint)=\"saveSelectedList('checkpoints', $event)\"\r\n ></app-checkpoints-policy-container>\r\n <app-loader-inline *ngIf=\"loader\"></app-loader-inline>\r\n\r\n <!-- <app-approval-workflow></app-approval-workflow> -->\r\n <!-- <app-select-approvers></app-select-approvers> -->\r\n\r\n <!-- <app-policy-access></app-policy-access> -->\r\n</ng-container>\r\n<ng-container *ngIf=\"showCreateDocuments\">\r\n <!-- <app-create-documents *ngIf=\"showCreateDocuments\"\r\n [organization_id]=\"organization_id\"\r\n [member_obj_id]=\"member_obj_id\"\r\n [userInfo]=\"userInfo\"\r\n [policyId]=\"policyId\"\r\n [policyName]=\"policyForm.policyName\"\r\n (disconnectRefresh)=\"disconnectRefresh.emit(false)\"\r\n (editPolicy)=\"editPolicyFromDocuments()\"\r\n ></app-create-documents> -->\r\n <lib-document-section\r\n *ngIf=\"showCreateDocuments\"\r\n [organization_id]=\"organization_id\"\r\n [member_obj_id]=\"member_obj_id\"\r\n [userInfo]=\"userInfo\"\r\n [policyId]=\"policyId\"\r\n [policyName]=\"policyForm.policyName\"\r\n (disconnectRefresh)=\"disconnectRefresh.emit(false)\"\r\n (editPolicy)=\"editPolicyFromDocuments()\"\r\n ></lib-document-section>\r\n</ng-container>\r\n\r\n<app-assessment-list\r\n *ngIf=\"activeSelector === 'isAssessment'\"\r\n [program_ids]=\"''\"\r\n [isEdit]=\"policyForm?.assessment?.length\"\r\n (cancelAssessment)=\"saveSelectedList('isAssessment', false)\"\r\n [selectedAssessment]=\"policyForm?.assessment[0]\"\r\n (onAssessmentSelect)=\"\r\n onAssessmentSelect($event); saveSelectedList('isAssessment', false)\r\n \"\r\n></app-assessment-list>\r\n\r\n<app-owner-list\r\n *ngIf=\"activeSelector === 'approvers'\"\r\n [listHeading]=\"'Select Approvers'\"\r\n [singularText]=\"'User selected'\"\r\n [pluralText]=\"'Users selected'\"\r\n [usersList]=\"allApprovers\"\r\n [showWorkflow]=\"true\"\r\n [selectedUsers]=\"\r\n addMoreLevels\r\n ? []\r\n : policyForm.selectedApprovers[approversListIndex].approvers\r\n \"\r\n [userIdKey]=\"'member_id'\"\r\n [itemEmailKey]=\"'member_email'\"\r\n [itemNameKey]=\"'member_name'\"\r\n (saveSelectedList)=\"saveSelectedList('approvers', $event)\"\r\n (closeUsersList)=\"disableSelector()\"\r\n [mode]=\"mode\"\r\n [reviewerWorkflowType]=\"workflowType\"\r\n (reviewerWorkflowTypeChange)=\"reviewerTypeChange($event)\"\r\n [workflowList]=\"workflowList\"\r\n [workflowText]=\"'Approval Workflow'\"\r\n>\r\n</app-owner-list>\r\n\r\n<app-owner-list\r\n *ngIf=\"activeSelector === 'owners'\"\r\n [listHeading]=\"'Select User(s)'\"\r\n [singularText]=\"'User selected'\"\r\n [pluralText]=\"'Users selected'\"\r\n [usersList]=\"allApprovers\"\r\n [showWorkflow]=\"false\"\r\n [userIdKey]=\"'member_id'\"\r\n [itemEmailKey]=\"'member_email'\"\r\n [itemNameKey]=\"'member_name'\"\r\n (saveSelectedList)=\"saveSelectedList('owners', $event)\"\r\n (closeUsersList)=\"disableSelector()\"\r\n [mode]=\"mode\"\r\n [selectedUsers]=\"policyForm?.policy_owners ?? []\"\r\n>\r\n</app-owner-list>\r\n",
|
|
8310
|
+
template: "<!-- <p>workflow-policy works!</p> -->\r\n\r\n<ng-container *ngIf=\"!showCreateDocuments\">\r\n <div class=\"workflow-policy\">\r\n <!-- Policy Name -->\r\n <div\r\n class=\"form-group-row\"\r\n [class.disabled]=\"activeSelector && activeSelector !== 'name'\"\r\n >\r\n <div class=\"left\" [class.checked]=\"policyForm?.policyName\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/what.svg\"\r\n alt=\"name\"\r\n *ngIf=\"!policyForm?.policyName || activeSelector === 'name'\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"policyForm?.policyName && activeSelector !== 'name'\"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">\r\n Policy Name <span class=\"required\">*</span>\r\n </label>\r\n <input\r\n type=\"text\"\r\n (keydown)=\"activeSelector = 'name'\"\r\n (focusin)=\"activateSelector('name', true)\"\r\n *ngIf=\"policyForm.policyName == '' || activeSelector === 'name'\"\r\n (focusout)=\"activateSelector('name', false)\"\r\n [ngModel]=\"policyForm.policyName\"\r\n (ngModelChange)=\"policyForm.policyName = changeName($event)\"\r\n placeholder=\"Name this policy\"\r\n />\r\n <div\r\n class=\"selected\"\r\n *ngIf=\"policyForm.policyName.length && activeSelector !== 'name'\"\r\n >\r\n <div class=\"chip-container\">\r\n <span class=\"value\">{{ policyForm.policyName }}</span>\r\n </div>\r\n <button\r\n class=\"edit\"\r\n (click)=\"activateSelector('name', true)\"\r\n type=\"button\"\r\n >\r\n <i class=\"icons\"></i> Edit\r\n </button>\r\n </div>\r\n\r\n <p\r\n *ngIf=\"submitted && !policyForm.policyName.trim()\"\r\n [appScrollInView]=\"true\"\r\n class=\"error-message\"\r\n >\r\n Please enter a name for this policy.\r\n </p>\r\n <marx-editor\r\n [(ngModel)]=\"policyForm.policyNotes\"\r\n [editorConfig]=\"description\"\r\n ></marx-editor>\r\n <app-cs-switch\r\n [(ngValue)]=\"policyForm.availableOnPortal\"\r\n (ngValueChange)=\"availabilityOnPortal($event)\"\r\n >\r\n Do you want this policy to be available on the portal?\r\n <i\r\n class=\"icons\"\r\n [appTooltip]=\"\r\n 'The policies that you intend to make accessible to the entire organization can be added to the policy portal. It is like a shared catalog of all active & updated policies that any logged in user can read/download for reference.'\r\n \"\r\n placement=\"bottom-right\"\r\n type=\"white\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"true\"\r\n ></i\r\n >\r\n </app-cs-switch>\r\n <app-cs-switch\r\n *ngIf=\"policyForm.availableOnPortal\"\r\n [(ngValue)]=\"policyForm.acceptSuggestions\"\r\n >\r\n Accept suggestions\r\n <i\r\n class=\"icons\"\r\n [appTooltip]=\"\r\n 'If enabled, users can provide improvement suggestions to the policies that are listed on the Policy Portal.'\r\n \"\r\n placement=\"bottom-right\"\r\n type=\"white\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"true\"\r\n ></i\r\n ></app-cs-switch\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Policy Category -->\r\n <div\r\n class=\"form-group-row\"\r\n [class.active]=\"activeSelector === 'category'\"\r\n [class.disabled]=\"\r\n activeSelector &&\r\n activeSelector !== 'category' &&\r\n sideSelectorElements.includes(activeSelector)\r\n \"\r\n >\r\n <div\r\n class=\"left\"\r\n [class.checked]=\"policyForm?.selectedCategories?.length > 0\"\r\n >\r\n <img\r\n *ngIf=\"\r\n policyForm?.selectedCategories?.length == 0 ||\r\n activeSelector === 'category'\r\n \"\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/category.svg\"\r\n alt=\"\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"\r\n policyForm?.selectedCategories?.length > 0 &&\r\n activeSelector !== 'category'\r\n \"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\"\r\n >Policy Category <span class=\"required\">*</span>\r\n </label>\r\n <div\r\n class=\"select\"\r\n *ngIf=\"policyForm?.selectedCategories?.length == 0\"\r\n >\r\n <input\r\n type=\"text\"\r\n (click)=\"activateSelector('category', true)\"\r\n placeholder=\"Select a category for this policy.\"\r\n readonly\r\n />\r\n </div>\r\n\r\n <div\r\n class=\"selected\"\r\n *ngIf=\"policyForm?.selectedCategories?.length > 0\"\r\n >\r\n <div\r\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\r\n >\r\n <ng-container\r\n *ngFor=\"\r\n let category of policyForm?.selectedCategories?.slice(0, 1)\r\n \"\r\n >\r\n <i\r\n (click)=\"remove('category', category)\"\r\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"category.item_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ category.item_name }}</span\r\n >\r\n </ng-container>\r\n <button\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\r\n *ngIf=\"policyForm?.selectedCategories?.length > 1\"\r\n type=\"button\"\r\n appPopover\r\n (click)=\"category.popover()\"\r\n placement=\"right\"\r\n >\r\n +{{ policyForm?.selectedCategories?.slice(1).length }}\r\n </button>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\" [class.more-one]=\"policyForm?.selectedCategories?.length>1\"\r\n [class.plus]=\"policyForm?.selectedCategories?.length>2\">\r\n <span class=\"chip\" *ngFor=\"let category of policyForm?.selectedCategories?.slice(0,2)\"><i\r\n class=\"icons\" (click)=\"remove('category',category)\"></i>\r\n {{category.item_name}}</span>\r\n <button class=\"count\" *ngIf=\"policyForm?.selectedCategories?.length > 2\" type=\"button\"\r\n appPopover (click)=\"category.popover()\" placement=\"right\">+\r\n {{policyForm?.selectedCategories?.slice(2).length}}</button>\r\n </div> -->\r\n <button\r\n *ngIf=\"activeSelector !== 'category'\"\r\n class=\"edit\"\r\n type=\"button\"\r\n (click)=\"activateSelector('category', true)\"\r\n >\r\n <i class=\"icons\"></i> Edit\r\n </button>\r\n </div>\r\n <app-popover #category [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let category of policyForm?.selectedCategories | slice : 1;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"remove('category', category)\"\r\n ></i\r\n >\r\n {{ category.item_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <p\r\n *ngIf=\"submitted && policyForm?.selectedCategories?.length == 0\"\r\n [appScrollInView]=\"true\"\r\n class=\"error-message\"\r\n >\r\n Please select the category for this policy.\r\n </p>\r\n </div>\r\n\r\n <div class=\"vx-form-group\" *ngIf=\"policyForm?.customTags?.length > 0\">\r\n <ng-container *ngFor=\"let tag of policyForm?.customTags\">\r\n <label class=\"vx-control-panel vx-mt-2\">{{ tag.tagname }}</label>\r\n <input\r\n type=\"text\"\r\n [(ngModel)]=\"tag.value\"\r\n placeholder=\"{{ tag.tagname }}\"\r\n />\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Effective Date -->\r\n <div class=\"form-group-row\" [class.disabled]=\"activeSelector\">\r\n <div class=\"left\" [class.checked]=\"false\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/when.svg\"\r\n alt=\"\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"false\"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Effective Date</label>\r\n <div class=\"date-time-picker\">\r\n <div class=\"picker-group\">\r\n <input\r\n type=\"text\"\r\n readonly\r\n placeholder=\"Select the effective date of the policy.\"\r\n [value]=\"policyForm.policyDueDate | date : 'dd MMM yyyy'\"\r\n (click)=\"openDatePicker()\"\r\n />\r\n <i class=\"icons\"></i>\r\n <dp-date-picker\r\n #datePicker\r\n (onSelect)=\"datePickerOverlay = false; closeDatePicker($event)\"\r\n [config]=\"dateConfig\"\r\n [(ngModel)]=\"policyForm.policyDueDate\"\r\n >\r\n </dp-date-picker>\r\n <div\r\n class=\"vx-overlay\"\r\n (click)=\"closeDatePicker($event)\"\r\n *ngIf=\"datePickerOverlay\"\r\n ></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Policy Owner -->\r\n <div class=\"form-group-row\" [class.active]=\"false\" [class.disabled]=\"false\">\r\n <div class=\"left\" [class.checked]=\"false\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/im-creating.svg\"\r\n alt=\"\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"false\"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <div class=\"vx-d-flex vx-align-center vx-justify-between\">\r\n <label class=\"vx-control-panel\">POLICY OWNER</label>\r\n <app-cs-switch></app-cs-switch>\r\n </div>\r\n <div\r\n *ngIf=\"!policyForm.policy_owners?.length\"\r\n (click)=\"activateSelector('owners', true)\"\r\n class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\"\r\n [class.disabled]=\"false\"\r\n >\r\n <div class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\">\r\n I am creating this Policy on behalf of someone else\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"policyForm.policy_owners?.length\"\r\n class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\"\r\n >\r\n <div class=\"vx-d-flex vx-align-center\">\r\n <div\r\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\r\n >\r\n <i\r\n (click)=\"remove('owners', policyForm?.policy_owners[0], 0)\"\r\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"policyForm?.policy_owners[0]?.member_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ policyForm?.policy_owners[0]?.member_name }}</span\r\n >\r\n\r\n <button\r\n *ngIf=\"policyForm?.policy_owners?.length > 1\"\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4 greenBg\"\r\n appPopover\r\n (click)=\"policyUserPopover.popover()\"\r\n placement=\"right\"\r\n >\r\n + {{ policyForm?.policy_owners.length - 1 }}\r\n </button>\r\n </div>\r\n <div\r\n *ngIf=\"false\"\r\n class=\"vx-fs-12 vx-paragraph-txt vx-ml-1 vx-mr-1\"\r\n >\r\n &\r\n </div>\r\n <div\r\n *ngIf=\"false\"\r\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\r\n >\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"'Samantha Jones'\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >Samantha Jones</span\r\n >\r\n <button\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\r\n appPopover\r\n (click)=\"policyGroupPopover.popover()\"\r\n placement=\"right\"\r\n >\r\n +4\r\n </button>\r\n </div>\r\n <app-popover #policyUserPopover [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let owner of policyForm?.policy_owners | slice : 1;\r\n let i = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span\r\n class=\"value\"\r\n [appTooltip]=\"owner?.member_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n <i\r\n (click)=\"remove('owners', owner, i + 1)\"\r\n class=\"icons\"\r\n ></i\r\n >\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 #policyGroupPopover [dontCloseonClick]=\"true\">\r\n <div class=\"wf-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\r\n class=\"value\"\r\n [appTooltip]=\"'Harshvardhan Kariwala'\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n <i class=\"icons\"></i>\r\n Harshvardhan Kariwala\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n <button\r\n (click)=\"activateSelector('owners', true)\"\r\n class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\r\n >\r\n <i class=\"icons vx-mr-1\"></i> EDIT\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Review -->\r\n <div class=\"form-group-row\" [class.active]=\"false\" [class.disabled]=\"false\">\r\n <div class=\"left\" [class.checked]=\"policyForm?.review\">\r\n <img\r\n *ngIf=\"!policyForm?.review\"\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/reviewer.svg\"\r\n alt=\"\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"policyForm?.review\"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">REVIEW</label>\r\n <div\r\n class=\"reviewSelection vx-p-3 vx-pb-0\"\r\n [class.disabled]=\"\r\n activeSelector && sideSelectorElements.includes(activeSelector)\r\n \"\r\n >\r\n <div class=\"vx-fs-13 vx-paragraph-txt vx-mb-1\">\r\n Does this policy need to be reviewed?\r\n </div>\r\n <app-cs-radio\r\n [checked]=\"policyForm?.review\"\r\n (checkedEvent)=\"typeSelected(true)\"\r\n ><div class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-mr-3\">\r\n YES\r\n </div></app-cs-radio\r\n >\r\n <app-cs-radio\r\n [checked]=\"!policyForm?.review\"\r\n (checkedEvent)=\"typeSelected(false)\"\r\n ><div class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-mr-3\">\r\n NO\r\n </div></app-cs-radio\r\n >\r\n </div>\r\n\r\n <ng-container *ngIf=\"policyForm?.review\">\r\n <label class=\"vx-control-panel vx-mt-2\">REVIEWER</label>\r\n <div\r\n class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\"\r\n *ngIf=\"policyForm?.selectedReviewers?.length == 0\"\r\n [appScrollInView]=\"scrollToBottom\"\r\n [class.active]=\"activeSelector === 'reviewer'\"\r\n [class.disabled]=\"\r\n activeSelector &&\r\n activeSelector !== 'reviewer' &&\r\n activeSelector !== 'reviewerFrequency' &&\r\n sideSelectorElements.includes(activeSelector)\r\n \"\r\n (click)=\"activateSelector('reviewer', true)\"\r\n >\r\n <div\r\n class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\"\r\n >\r\n Select the person responsible for reviewing this policy\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\"\r\n *ngIf=\"policyForm?.selectedReviewers?.length > 0\"\r\n [class.disabled]=\"\r\n activeSelector && sideSelectorElements.includes(activeSelector)\r\n \"\r\n >\r\n <div\r\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\r\n *ngFor=\"let reviewer of policyForm?.selectedReviewers\"\r\n >\r\n <i\r\n (click)=\"remove('reviewer', reviewer)\"\r\n class=\"icons cross vx-fs-12 vx-paragraph-txt vx-mr-1\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"'Samantha Jones'\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n {{ reviewer?.member_name }}</span\r\n >\r\n </div>\r\n <button\r\n class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\r\n *ngIf=\"activeSelector !== 'reviewer'\"\r\n (click)=\"activateSelector('reviewer', true)\"\r\n >\r\n <i class=\"icons vx-mr-1\"></i> EDIT\r\n </button>\r\n </div>\r\n <label class=\"vx-control-panel vx-mt-3\">REVIEW FREQUENCY</label>\r\n <div\r\n *ngIf=\"policyForm?.review_frequency_details == ''\"\r\n class=\"selectButton vx-pl-3 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\"\r\n >\r\n <div\r\n (click)=\"activateSelector('reviewerFrequency', true)\"\r\n class=\"selectButtonPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\"\r\n >\r\n When does this policy needs to be reviewed?\r\n </div>\r\n <div\r\n (click)=\"activateSelector('reviewerFrequency', true)\"\r\n class=\"vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase\"\r\n >\r\n SET A FREQUENCY\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"policyForm?.review_frequency_details != ''\"\r\n class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\"\r\n >\r\n <div class=\"selectBoxText vx-fs-13 vx-paragraph-txt\">\r\n {{ reviewerFrequencyPlaceholder }}\r\n </div>\r\n <button\r\n *ngIf=\"activeSelector !== 'reviewerFrequency'\"\r\n (click)=\"activateSelector('reviewerFrequency', true)\"\r\n class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\r\n >\r\n <i class=\"icons vx-mr-1\"></i> EDIT\r\n </button>\r\n </div>\r\n <p\r\n *ngIf=\"\r\n submitted &&\r\n policyForm?.selectedReviewers?.length > 0 &&\r\n !policyForm?.review_frequency_details\r\n \"\r\n class=\"error-message\"\r\n [appScrollInView]=\"true\"\r\n >\r\n Select the review schedule for this policy.\r\n </p>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- New Approval Workflow -->\r\n <div class=\"form-group-row\" [class.active]=\"false\" [class.disabled]=\"false\">\r\n <div\r\n class=\"left\"\r\n [class.checked]=\"policyForm?.selectedApprovers?.length > 0\"\r\n >\r\n <img\r\n *ngIf=\"\r\n policyForm?.selectedApprovers?.length == 0 ||\r\n activeSelector === 'approvers'\r\n \"\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/approval.svg\"\r\n alt=\"im\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"\r\n policyForm?.selectedApprovers?.length > 0 &&\r\n activeSelector !== 'approvers'\r\n \"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <div class=\"vx-d-flex vx-align-center vx-justify-between\">\r\n <label class=\"vx-control-panel\"\r\n >APPROVAL <span class=\"required\">*</span></label\r\n >\r\n <button\r\n class=\"createNewBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0\"\r\n >\r\n CREATE A NEW APPROVAL WORKFLOW\r\n </button>\r\n </div>\r\n <div\r\n class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\"\r\n [class.disabled]=\"false\"\r\n >\r\n <div class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\">\r\n Select the approval workflow for this policy\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between vx-mb-2\"\r\n >\r\n <div class=\"vx-d-flex vx-align-center\">\r\n <div class=\"level-left vx-d-flex vx-align-center\">\r\n <div class=\"vx-d-block\">\r\n <div\r\n class=\"level-name vx-fs-9 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-lh-3\"\r\n [appTooltip]=\"'Level 1'\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n LEVEL 1\r\n </div>\r\n <div\r\n class=\"vx-fs-9 vx-fw-500 vx-label-txt vx-tt-uppercase vx-lh-3\"\r\n >\r\n SEQUENTIAL\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2 vx-ml-2\"\r\n >\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n ></i\r\n >\r\n <div\r\n class=\"workflowLavel vx-fs-11 vx-fw-500 vx-pl-1 vx-pr-1 vx-lh-4 vx-mr-1 vx-text-center\"\r\n >\r\n 1\r\n </div>\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"'Samantha Jones'\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >Samantha Jones</span\r\n >\r\n <button\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\r\n appPopover\r\n (click)=\"workflowPopover.popover()\"\r\n placement=\"right\"\r\n >\r\n +3\r\n </button>\r\n </div>\r\n <app-popover #workflowPopover [dontCloseonClick]=\"true\">\r\n <div class=\"wf-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\r\n class=\"value\"\r\n [appTooltip]=\"'Harshvardhan Kariwala'\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n <i class=\"icons\"></i>\r\n <span\r\n class=\"workflowLavel vx-fs-11 vx-fw-500 vx-pl-1 vx-pr-1 vx-lh-4 vx-mr-1 vx-text-center\"\r\n >Final</span\r\n >\r\n Harshvardhan Kariwala\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n\r\n <div class=\"vx-d-flex vx-align-center\">\r\n <button\r\n class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\r\n >\r\n <i class=\"icons vx-mr-1\"></i> EDIT\r\n </button>\r\n <button\r\n class=\"deleteBtn vx-fs-11 vx-fw-600 vx-tt-uppercase vx-p-0 vx-m-0 vx-ml-4 vx-d-flex vx-align-center\"\r\n >\r\n <i class=\"icons vx-mr-1\"></i> DELETE\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between vx-mb-2\"\r\n >\r\n <div class=\"vx-d-flex vx-align-center\">\r\n <div class=\"level-left vx-d-flex vx-align-center\">\r\n <div class=\"vx-d-block\">\r\n <div\r\n class=\"level-name vx-fs-9 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-lh-3\"\r\n [appTooltip]=\"'Level 2'\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n LEVEL 2\r\n </div>\r\n <div\r\n class=\"vx-fs-9 vx-fw-500 vx-label-txt vx-tt-uppercase vx-lh-3\"\r\n >\r\n ANYONE\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2 vx-ml-2\"\r\n >\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"'Nick Holden'\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >Nick Holden</span\r\n >\r\n <button\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\r\n appPopover\r\n (click)=\"workflowPopover.popover()\"\r\n placement=\"right\"\r\n >\r\n +3\r\n </button>\r\n </div>\r\n <app-popover #workflowPopover [dontCloseonClick]=\"true\">\r\n <div class=\"wf-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\r\n class=\"value\"\r\n [appTooltip]=\"'Harshvardhan Kariwala'\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n <i class=\"icons\"></i>\r\n Harshvardhan Kariwala\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n\r\n <div class=\"vx-d-flex vx-align-center\">\r\n <button\r\n class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\r\n >\r\n <i class=\"icons vx-mr-1\"></i> EDIT\r\n </button>\r\n <button\r\n class=\"deleteBtn vx-fs-11 vx-fw-600 vx-tt-uppercase vx-p-0 vx-m-0 vx-ml-4 vx-d-flex vx-align-center\"\r\n >\r\n <i class=\"icons vx-mr-1\"></i> DELETE\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Policy Access -->\r\n <div class=\"form-group-row\" [class.active]=\"false\" [class.disabled]=\"false\">\r\n <div class=\"left\" [class.checked]=\"false\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/lock-scope.svg\"\r\n alt=\"\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"false\"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <div class=\"vx-d-flex vx-align-center vx-justify-between\">\r\n <label class=\"vx-control-panel\">POLICY ACCESS</label>\r\n </div>\r\n <div\r\n class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\"\r\n [class.disabled]=\"false\"\r\n >\r\n <div class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\">\r\n Who should be able to view this policy?\r\n </div>\r\n </div>\r\n\r\n <div class=\"selectBoxSuccess vx-pl-2 vx-pr-3\">\r\n <div\r\n class=\"vx-d-flex vx-align-center vx-justify-between vx-mt-2 vx-mb-2\"\r\n >\r\n <div\r\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\r\n >\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"'Samantha Jones'\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >Samantha Jones</span\r\n >\r\n <button\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\r\n appPopover\r\n (click)=\"policyAccessPopover.popover()\"\r\n placement=\"right\"\r\n >\r\n +4\r\n </button>\r\n </div>\r\n <app-popover #policyAccessPopover [dontCloseonClick]=\"true\">\r\n <div class=\"wf-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\r\n class=\"value\"\r\n [appTooltip]=\"'Harshvardhan Kariwala'\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n <i class=\"icons\"></i>\r\n Harshvardhan Kariwala\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <button\r\n class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\r\n >\r\n <i class=\"icons vx-mr-1\"></i> EDIT\r\n </button>\r\n </div>\r\n\r\n <div class=\"vx-mt-4 vx-mb-2\">\r\n <app-cs-radio\r\n ><div class=\"vx-fs-12 vx-paragraph-txt\">\r\n Everyone who has access to this Policy Category\r\n </div></app-cs-radio\r\n >\r\n <app-cs-radio class=\"vx-mt-1\"\r\n ><div class=\"vx-fs-12 vx-paragraph-txt\">\r\n Select users/groups\r\n </div></app-cs-radio\r\n >\r\n </div>\r\n </div>\r\n\r\n <div class=\"vx-mt-2\">\r\n <app-cs-switch\r\n >ACCEPT SUGGESTIONS\r\n <i\r\n class=\"icons vx-fs-12 vx-txt-blue vx-ml-1 vx-mr-2\"\r\n [appTooltip]=\"'Accept suggestions info text here...'\"\r\n placement=\"bottom-right\"\r\n delay=\"0\"\r\n type=\"white\"\r\n [tooltipMandatory]=\"true\"\r\n ></i\r\n ></app-cs-switch\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Attestations -->\r\n <div\r\n class=\"form-group-row\"\r\n [class.active]=\"false\"\r\n [class.disabled]=\"false\"\r\n *ngIf=\"false\"\r\n >\r\n <div class=\"left\" [class.checked]=\"false\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/attestations.svg\"\r\n alt=\"\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"false\"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <div class=\"vx-d-flex vx-align-center vx-justify-between\">\r\n <label class=\"vx-control-panel\">ATTESTATIONS</label>\r\n </div>\r\n <div\r\n class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\"\r\n [class.disabled]=\"false\"\r\n >\r\n <div class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\">\r\n Select the persons required to attest to this Policy\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\"\r\n >\r\n <div\r\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\r\n >\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"'Samantha Jones'\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >Samantha Jones</span\r\n >\r\n <button\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\r\n appPopover\r\n (click)=\"policyAttestationPopover.popover()\"\r\n placement=\"right\"\r\n >\r\n +4\r\n </button>\r\n </div>\r\n <app-popover #policyAttestationPopover [dontCloseonClick]=\"true\">\r\n <div class=\"wf-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\r\n class=\"value\"\r\n [appTooltip]=\"'Harshvardhan Kariwala'\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n <i class=\"icons\"></i>\r\n Harshvardhan Kariwala\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <button\r\n class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\r\n >\r\n <i class=\"icons vx-mr-1\"></i> EDIT\r\n </button>\r\n </div>\r\n\r\n <div class=\"vx-mt-2\">\r\n <app-cs-switch\r\n >REQUIRES E-SIGNATURE FOR ATTESTATION\r\n <i\r\n class=\"icons vx-fs-12 vx-txt-blue vx-ml-1 vx-mr-2\"\r\n [appTooltip]=\"\r\n 'Requires e-signature for attestation info text here...'\r\n \"\r\n placement=\"bottom-right\"\r\n delay=\"0\"\r\n type=\"white\"\r\n [tooltipMandatory]=\"true\"\r\n ></i\r\n ></app-cs-switch\r\n >\r\n </div>\r\n\r\n <label class=\"vx-control-panel vx-mt-2\">WHEN?</label>\r\n <div\r\n class=\"selectButton vx-pl-3 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\"\r\n >\r\n <div\r\n class=\"selectButtonPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\"\r\n >\r\n What is the attestation schedule for this<br />policy?\r\n </div>\r\n <div class=\"vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase\">\r\n SET A FREQUENCY\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\"\r\n >\r\n <div class=\"selectBoxText vx-fs-13 vx-paragraph-txt\">\r\n Every Wednesday by 11:59 pm\r\n </div>\r\n <button\r\n class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\r\n >\r\n <i class=\"icons vx-mr-1\"></i> EDIT\r\n </button>\r\n </div>\r\n\r\n <label class=\"vx-control-panel vx-mt-2\"\r\n >ASSESSMENT OF UNDERSTANDING</label\r\n >\r\n <div\r\n class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\"\r\n [class.disabled]=\"false\"\r\n >\r\n <div class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\">\r\n Set up a questionnaire to confirm the reader\u2019s<br />understanding\r\n of the policy.\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"selectBoxSuccess vx-pl-3 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\"\r\n >\r\n <div\r\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\r\n >\r\n <span class=\"chipName vx-fs-11 vx-label-txt\">5 Questions</span>\r\n </div>\r\n <button\r\n class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\r\n >\r\n <i class=\"icons vx-mr-1\"></i> EDIT\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Approval Workflow -->\r\n <div\r\n class=\"form-group-row\"\r\n *ngIf=\"false\"\r\n [class.active]=\"activeSelector === 'approvers'\"\r\n [class.disabled]=\"\r\n activeSelector &&\r\n activeSelector !== 'approvers' &&\r\n sideSelectorElements.includes(activeSelector)\r\n \"\r\n >\r\n <div\r\n class=\"left\"\r\n [class.checked]=\"policyForm?.selectedApprovers?.length > 0\"\r\n >\r\n <img\r\n *ngIf=\"\r\n policyForm?.selectedApprovers?.length == 0 ||\r\n activeSelector === 'approvers'\r\n \"\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/approval.svg\"\r\n alt=\"im\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"\r\n policyForm?.selectedApprovers?.length > 0 &&\r\n activeSelector !== 'approvers'\r\n \"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div\r\n class=\"vx-form-group approval-workflow\"\r\n [class.disabled]=\"policyApprovalFlag !== 0\"\r\n >\r\n <label class=\"vx-control-panel\">\r\n Approval workflow <span class=\"required\">*</span>\r\n <button\r\n (click)=\"\r\n activateSelector('approvers', true);\r\n addMoreLevels = true;\r\n workflowType = 'SEQUENTIAL'\r\n \"\r\n class=\"button\"\r\n >\r\n Create a new Approval Workflow\r\n </button>\r\n </label>\r\n <div\r\n class=\"select\"\r\n [class.disabled]=\"approverWorkFlowList?.length == 0\"\r\n *ngIf=\"\r\n policyForm?.selectedApprovers[0]?.approvers?.length == 0 ||\r\n policyForm?.selectedApprovers.length == 0\r\n \"\r\n >\r\n <cs-select\r\n [ngModel]=\"selectedApprovalWorkflow\"\r\n (ngModelChange)=\"selectedWorkflowChange($event)\"\r\n [placeholder]=\"'Select approval workflow for this policy'\"\r\n name=\"selectedApprovalWorkflow\"\r\n [setMaxWidth]=\"true\"\r\n >\r\n <cs-option\r\n *ngFor=\"let data of approverWorkFlowList\"\r\n [value]=\"data\"\r\n >\r\n {{ data.workflow_name }}\r\n </cs-option>\r\n <cs-option\r\n [value]=\"-1\"\r\n (click)=\"\r\n activateSelector('approvers', true);\r\n addMoreLevels = true;\r\n workflowType = 'SEQUENTIAL'\r\n \"\r\n >Create a new approval workflow</cs-option\r\n >\r\n </cs-select>\r\n </div>\r\n <ng-container\r\n *ngIf=\"policyForm?.selectedApprovers[0]?.approvers?.length > 0\"\r\n >\r\n <div\r\n class=\"selected\"\r\n *ngFor=\"let level of policyForm?.selectedApprovers; let i = index\"\r\n >\r\n <div class=\"workflow-label\">\r\n <p class=\"title\">Level {{ i + 1 }}</p>\r\n <p class=\"description\">{{ level.name }}</p>\r\n </div>\r\n <div class=\"vx-d-flex vx-align-center\">\r\n <div class=\"chip-container\">\r\n <span\r\n class=\"chip\"\r\n *ngFor=\"\r\n let approver of level.approvers.slice(0, 1);\r\n let j = index\r\n \"\r\n ><i class=\"icons\" (click)=\"remove('approvers', approver, i)\"\r\n ></i\r\n >\r\n <span class=\"step\" *ngIf=\"level.name == 'SEQUENTIAL'\">{{\r\n j + 1\r\n }}</span\r\n >{{ approver.member_name }}</span\r\n >\r\n\r\n <button\r\n class=\"count\"\r\n *ngIf=\"level.approvers?.length > 1\"\r\n type=\"button\"\r\n appPopover\r\n (click)=\"labelName.popover()\"\r\n placement=\"right\"\r\n >\r\n +\r\n\r\n {{ level.approvers.slice(1).length }}\r\n </button>\r\n <app-popover #labelName [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let approver of level.approvers | slice : 1;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i\r\n class=\"icons\"\r\n (click)=\"remove('approvers', approver, i)\"\r\n ></i\r\n >\r\n <span\r\n class=\"step\"\r\n *ngIf=\"level.name == 'SEQUENTIAL'\"\r\n >\r\n {{\r\n j == level.approvers.slice(1).length - 1\r\n ? \"Final\"\r\n : j + 2\r\n }}\r\n </span>\r\n {{ approver.member_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n <button\r\n class=\"edit\"\r\n type=\"button\"\r\n (click)=\"\r\n activateSelector('approvers', true, level.name);\r\n approversListIndex = i\r\n \"\r\n >\r\n <i class=\"icons\"></i>Edit\r\n </button>\r\n <button\r\n class=\"close-btn\"\r\n (click)=\"remove('workflowLevel', level, i)\"\r\n >\r\n <i class=\"icons\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <p\r\n *ngIf=\"\r\n submitted &&\r\n policyForm?.selectedApprovers?.length == 0 &&\r\n policyApprovalFlag === 0\r\n \"\r\n [appScrollInView]=\"true\"\r\n class=\"error-message\"\r\n >\r\n Select or create an approval workflow for this policy.\r\n </p>\r\n\r\n <label\r\n class=\"vx-control-panel\"\r\n *ngIf=\"policyForm.selectedApprovers[0]?.approvers?.length > 0\"\r\n ><button\r\n class=\"button\"\r\n (click)=\"\r\n activateSelector('approvers', true);\r\n addMoreLevels = true;\r\n workflowType = 'SEQUENTIAL'\r\n \"\r\n >\r\n + Add More Levels\r\n </button></label\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Who / now Attestation -->\r\n <div\r\n class=\"form-group-row\"\r\n [class.active]=\"activeSelector === 'assignees'\"\r\n [class.disabled]=\"\r\n activeSelector &&\r\n activeSelector !== 'assignees' &&\r\n sideSelectorElements.includes(activeSelector)\r\n \"\r\n >\r\n <div\r\n class=\"left\"\r\n [class.checked]=\"policyForm?.selectedAssignees?.length > 0\"\r\n >\r\n <img\r\n *ngIf=\"\r\n policyForm?.selectedAssignees?.length == 0 ||\r\n activeSelector === 'assignees'\r\n \"\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/who.svg\"\r\n alt=\"im\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"\r\n policyForm?.selectedAssignees?.length > 0 &&\r\n activeSelector !== 'assignees'\r\n \"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Attestation?</label>\r\n <div\r\n class=\"select\"\r\n *ngIf=\"\r\n (policyForm?.selectedAssignees?.length == 0 && !groupEnabled) ||\r\n (policyForm?.selectedAssignees?.length == 0 &&\r\n groupEnabled &&\r\n policyForm?.selectedGroupAssignee.length == 0)\r\n \"\r\n >\r\n <input\r\n type=\"text\"\r\n (click)=\"activateSelector('assignees', true)\"\r\n placeholder=\"Select the persons responsible for attesting this policy.\"\r\n readonly\r\n />\r\n </div>\r\n <div\r\n class=\"selected\"\r\n *ngIf=\"\r\n policyForm?.selectedAssignees?.length > 0 ||\r\n policyForm?.selectedGroupAssignee?.length > 0\r\n \"\r\n >\r\n <div class=\"chip-container\" *ngIf=\"!groupEnabled\">\r\n <span\r\n class=\"chip\"\r\n *ngFor=\"\r\n let assignee of policyForm?.selectedAssignees?.slice(0, 2)\r\n \"\r\n ><i class=\"icons\" (click)=\"remove('assignees', assignee)\"\r\n ></i\r\n >\r\n {{ assignee.employee_name }}</span\r\n >\r\n <button\r\n class=\"count\"\r\n *ngIf=\"policyForm?.selectedAssignees?.length > 2\"\r\n type=\"button\"\r\n appPopover\r\n (click)=\"assigneePopover.popover()\"\r\n placement=\"right\"\r\n >\r\n + {{ policyForm?.selectedAssignees?.slice(2).length }}\r\n </button>\r\n </div>\r\n <div class=\"chip-container\" *ngIf=\"groupEnabled\">\r\n <div\r\n class=\"chip-inner\"\r\n *ngIf=\"groupEnabled && policyForm?.selectedAssignees.length > 0\"\r\n >\r\n <i\r\n class=\"icons cross vx-mr-1\"\r\n (click)=\"\r\n remove('assignees', policyForm?.selectedAssignees[0])\r\n \"\r\n ></i\r\n >\r\n <span\r\n class=\"chip\"\r\n [appTooltip]=\"policyForm?.selectedAssignees[0]?.employee_name\"\r\n placement=\"bottom-left\"\r\n type=\"black\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n <span\r\n class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\"\r\n >\r\n {{ policyForm?.selectedAssignees[0]?.employee_name }}\r\n </span>\r\n </span>\r\n <button\r\n *ngIf=\"policyForm?.selectedAssignees.length > 1\"\r\n class=\"count user\"\r\n appPopover\r\n (click)=\"UserPopover.popover()\"\r\n placement=\"right\"\r\n >\r\n +{{ policyForm?.selectedAssignees.length - 1 }}\r\n </button>\r\n </div>\r\n <span\r\n class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\"\r\n *ngIf=\"\r\n policyForm?.selectedAssignees.length > 0 &&\r\n policyForm?.selectedGroupAssignee.length > 0\r\n \"\r\n >&</span\r\n >\r\n <div\r\n class=\"chip-inner\"\r\n *ngIf=\"policyForm?.selectedGroupAssignee.length > 0\"\r\n >\r\n <i\r\n class=\"icons cross vx-mr-1\"\r\n (click)=\"\r\n remove(\r\n 'groupAssignees',\r\n policyForm?.selectedGroupAssignee[0]\r\n )\r\n \"\r\n ></i\r\n >\r\n <span class=\"chip\"\r\n ><span\r\n class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\"\r\n >{{\r\n policyForm?.selectedGroupAssignee[0]?.group_name\r\n }}</span\r\n ></span\r\n >\r\n <button\r\n *ngIf=\"policyForm?.selectedGroupAssignee.length > 1\"\r\n class=\"count\"\r\n appPopover\r\n (click)=\"group.popover()\"\r\n placement=\"right\"\r\n >\r\n +{{ policyForm?.selectedGroupAssignee.length - 1 }}\r\n </button>\r\n </div>\r\n </div>\r\n <button\r\n class=\"edit\"\r\n type=\"button\"\r\n (click)=\"activateSelector('assignees', true)\"\r\n >\r\n <i class=\"icons\"></i> Edit\r\n </button>\r\n </div>\r\n <p\r\n *ngIf=\"\r\n submitted &&\r\n ((policyForm?.selectedAssignees?.length == 0 &&\r\n policyForm?.frequency_details &&\r\n !groupEnabled) ||\r\n (policyForm?.selectedAssignees?.length == 0 &&\r\n policyForm.selectedGroupAssignee.length == 0 &&\r\n policyForm?.frequency_details &&\r\n groupEnabled))\r\n \"\r\n id=\"whovalidatemsg\"\r\n class=\"error-message\"\r\n [appScrollInView]=\"true\"\r\n >\r\n Select the persons required to attest to this Policy.\r\n </p>\r\n <app-cs-switch\r\n [(ngValue)]=\"policyForm.requiresSignatureForAttestation\"\r\n [class.disabled]=\"policyForm?.selectedAssignees?.length == 0\"\r\n class=\"who-toggle\"\r\n >THIS POLICY REQUIRES E-SIGNATURE FOR ATTESTATION\r\n <i\r\n class=\"icons\"\r\n [appTooltip]=\"\r\n 'If selected, the readers will be required to attest this policy using their electronic signature.'\r\n \"\r\n placement=\"bottom-right\"\r\n type=\"white\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"true\"\r\n ></i\r\n ></app-cs-switch\r\n >\r\n <app-popover #assigneePopover [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let assignee of policyForm?.selectedAssignees | slice : 2;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"remove('assignees', assignee)\"\r\n ></i\r\n >\r\n {{ assignee.employee_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <app-popover #UserPopover [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let assignee of policyForm?.selectedAssignees | slice : 1;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"remove('assignees', assignee)\"\r\n ></i\r\n >\r\n {{ assignee.employee_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=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let data of policyForm?.selectedGroupAssignee | slice : 1;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"remove('groupAssignees', data)\"\r\n ></i\r\n >\r\n {{ data.group_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n\r\n <!-- overseer -->\r\n <app-popover #overseerPopover [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let overseer of policyForm?.CCEmail | slice : 1;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"remove('ccEmail', overseer)\"\r\n ></i\r\n >\r\n {{ overseer?.employee_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=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let data of policyForm?.CCGroupEmail | slice : 1;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"remove('ccGroupEmail', data)\"\r\n ></i\r\n >\r\n {{ data?.group_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <!-- overseer end -->\r\n\r\n <!-- overseer fail start -->\r\n <app-popover #overseerFailPopover [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let overseer of policyForm?.CCFailEmail | slice : 1;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"remove('ccFail', overseer)\"\r\n ></i\r\n >\r\n {{ overseer?.employee_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <app-popover #overseerFailGroup [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let data of policyForm?.CCFailEmailGroup | slice : 1;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i\r\n class=\"icons\"\r\n (click)=\"remove('ccGroupFailEmail', data)\"\r\n ></i\r\n >\r\n {{ data?.group_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <!-- overseer fail end -->\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- When -->\r\n <div\r\n class=\"form-group-row\"\r\n [class.active]=\"activeSelector === 'frequency'\"\r\n [class.disabled]=\"\r\n activeSelector &&\r\n activeSelector !== 'frequency' &&\r\n sideSelectorElements.includes(activeSelector)\r\n \"\r\n >\r\n <div class=\"left\" [class.checked]=\"policyForm?.frequency_details\">\r\n <img\r\n *ngIf=\"\r\n !policyForm?.frequency_details || activeSelector === 'frequency'\r\n \"\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/when.svg\"\r\n alt=\"im\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"\r\n policyForm?.frequency_details && activeSelector !== 'frequency'\r\n \"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">When?</label>\r\n\r\n <div\r\n *ngIf=\"policyForm?.frequency_details == ''\"\r\n class=\"select button-sec\"\r\n >\r\n <div\r\n class=\"custom-input frequency-custom-input\"\r\n (click)=\"activateSelector('frequency', true)\"\r\n >\r\n {{ frequencyPlaceholder }}\r\n </div>\r\n\r\n <button (click)=\"activateSelector('frequency', true)\" type=\"button\">\r\n Set A frequency\r\n </button>\r\n </div>\r\n <div\r\n *ngIf=\"policyForm?.frequency_details != ''\"\r\n class=\"selected button-sec\"\r\n >\r\n <span class=\"chip\">{{ frequencyPlaceholder }}</span>\r\n <button\r\n *ngIf=\"activeSelector !== 'frequency'\"\r\n type=\"button\"\r\n class=\"edit\"\r\n (click)=\"activateSelector('frequency', true)\"\r\n >\r\n <i class=\"icons\"></i>Edit\r\n </button>\r\n </div>\r\n <p\r\n *ngIf=\"\r\n submitted &&\r\n ((policyForm?.selectedAssignees?.length > 0 &&\r\n !policyForm?.frequency_details &&\r\n !groupEnabled) ||\r\n ((policyForm?.selectedAssignees?.length > 0 ||\r\n policyForm?.selectedGroupAssignee?.length > 0) &&\r\n !policyForm?.frequency_details &&\r\n groupEnabled))\r\n \"\r\n class=\"error-message\"\r\n [appScrollInView]=\"true\"\r\n >\r\n Select an attestation schedule for this policy.\r\n </p>\r\n\r\n <!-- <label class=\"vx-control-panel\">Effective Date</label>\r\n <div class=\"date-time-picker\">\r\n <div class=\"picker-group\">\r\n <input type=\"text\" readonly placeholder=\"Select the date from which this policy goes into effect.\"\r\n [value]=\"policyForm.policyDueDate | date: 'dd MMM yyyy'\" (click)=\"openDatePicker();\">\r\n <i class=\"icons\"></i>\r\n <dp-date-picker #datePicker (onSelect)=\"datePickerOverlay = false;closeDatePicker($event)\"\r\n [config]=\"dateConfig\" [(ngModel)]=\"policyForm.policyDueDate\">\r\n </dp-date-picker>\r\n <div class=\"vx-overlay\" (click)=\"closeDatePicker($event)\" *ngIf=\"datePickerOverlay\"></div>\r\n </div>\r\n </div> -->\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Checkpoints / Assessment of Understanding -->\r\n <div\r\n class=\"form-group-row\"\r\n [appScrollInView]=\"scrollToBottom\"\r\n *ngIf=\"true\"\r\n [class.active]=\"activeSelector === 'checkpoints'\"\r\n [class.disabled]=\"\r\n activeSelector &&\r\n activeSelector !== 'checkpoints' &&\r\n sideSelectorElements.includes(activeSelector)\r\n \"\r\n >\r\n <div\r\n class=\"left\"\r\n [class.checked]=\"policyForm?.checkpointDetails?.length > 0\"\r\n >\r\n <img\r\n *ngIf=\"\r\n policyForm?.checkpointDetails?.length == 0 ||\r\n activeSelector === 'checkpoints'\r\n \"\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/checkpoints.svg\"\r\n alt=\"im\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"\r\n policyForm?.checkpointDetails?.length > 0 &&\r\n activeSelector !== 'checkpoints'\r\n \"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">\r\n Assessment of Understanding\r\n <!-- <button *ngIf=\"policyForm?.checkpointDetails?.length===0\" class=\"button\" (click)=\"activateSelector('checkpoints',true)\">+ Add Checkpoints</button> -->\r\n </label>\r\n <div\r\n class=\"select\"\r\n *ngIf=\"policyForm?.checkpointDetails?.length === 0\"\r\n (click)=\"activateSelector('checkpoints', true)\"\r\n >\r\n <!-- <input type=\"text\" placeholder=\"Set up a questionnaire to confirm the reader\u2019s understanding of the policy.\" readonly> -->\r\n <div class=\"custom-input\">\r\n Set up a questionnaire to confirm the reader\u2019s<br />understanding\r\n of the policy.\r\n </div>\r\n </div>\r\n <div\r\n class=\"selected\"\r\n *ngIf=\"policyForm?.checkpointDetails?.length > 0\"\r\n >\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\">{{policyForm?.checkpointDetails?.length + (policyForm?.checkpointDetails?.length > 1 ?' Checkpoints':' Checkpoint')}}</span>\r\n\r\n <span class=\"checkpoint-point-text first\">TOTAL POINTS: <span class=\"no\">{{policyForm?.totalQuestion}}</span><br><em>Each question carries 1 point</em></span>\r\n\r\n <span class=\"checkpoint-point-text\">POINTS REQUIRED TO ATTEST : <span class=\"no\">{{policyForm?.passingMarks}}</span></span>\r\n\r\n </div> -->\r\n <div\r\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\r\n >\r\n <span class=\"chipName vx-fs-11 vx-label-txt\">{{\r\n policyForm?.checkpointDetails?.length +\r\n (policyForm?.checkpointDetails?.length > 1\r\n ? \" Questions\"\r\n : \" Question\")\r\n }}</span>\r\n </div>\r\n <button\r\n class=\"edit\"\r\n type=\"button\"\r\n (click)=\"activateSelector('checkpoints', true)\"\r\n >\r\n <i class=\"icons\"></i> Edit\r\n </button>\r\n </div>\r\n <!-- <app-popover #checkpointPopOver [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let checkpoint of policyForm?.checkpointDetails | slice: 1; let j = index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"remove('checkpoints',checkpoint,j+1)\"></i>\r\n {{ checkpoint?.question }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover> -->\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Risk Classification -->\r\n <div\r\n class=\"form-group-row\"\r\n *ngIf=\"showRiskClassification && false\"\r\n [class.disabled]=\"activeSelector && activeSelector !== 'name'\"\r\n >\r\n <div class=\"left\" [class.checked]=\"policyForm.riskRating\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/risks.svg\"\r\n alt=\"im\"\r\n *ngIf=\"!policyForm?.riskRating\"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"policyForm?.riskRating\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Risk Classification</label>\r\n <div class=\"classification\">\r\n <label\r\n class=\"low\"\r\n *ngFor=\"let class of riskClassification\"\r\n [ngClass]=\"[class.class]\"\r\n >\r\n <input\r\n type=\"radio\"\r\n name=\"classification\"\r\n [value]=\"class.value\"\r\n [checked]=\"policyForm?.riskRating === class.value\"\r\n [(ngModel)]=\"policyForm.riskRating\"\r\n />\r\n <span>{{ class.name }}</span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Responsibility Center -->\r\n <div\r\n class=\"form-group-row\"\r\n [appScrollInView]=\"scrollToBottom\"\r\n *ngIf=\"policyForm.addResponsibilityCenters\"\r\n [class.active]=\"activeSelector === 'rc'\"\r\n [class.disabled]=\"\r\n activeSelector &&\r\n activeSelector !== 'rc' &&\r\n sideSelectorElements.includes(activeSelector)\r\n \"\r\n >\r\n <div class=\"left\" [class.checked]=\"policyForm?.selectedRCs?.length > 0\">\r\n <img\r\n *ngIf=\"\r\n policyForm?.selectedRCs?.length == 0 || activeSelector === 'rc'\r\n \"\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/responsibility-center.svg\"\r\n alt=\"\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"policyForm?.selectedRCs?.length > 0 && activeSelector !== 'rc'\"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Responsibility Center</label>\r\n <div class=\"select\" *ngIf=\"policyForm?.selectedRCs?.length == 0\">\r\n <input\r\n type=\"text\"\r\n (click)=\"activateSelector('rc', true)\"\r\n placeholder=\"Select Responsibility Center(s) that this policy relates to.\"\r\n readonly\r\n />\r\n </div>\r\n <div class=\"selected\" *ngIf=\"policyForm?.selectedRCs?.length > 0\">\r\n <div class=\"chip-container\">\r\n <span\r\n class=\"chip\"\r\n *ngFor=\"let rc of policyForm?.selectedRCs?.slice(0, 2)\"\r\n ><i class=\"icons\" (click)=\"remove('rc', rc)\"></i>\r\n {{ rc.item_name }}</span\r\n >\r\n <button\r\n class=\"count\"\r\n *ngIf=\"policyForm?.selectedRCs?.length > 2\"\r\n type=\"button\"\r\n appPopover\r\n (click)=\"rcPopover.popover()\"\r\n placement=\"right\"\r\n >\r\n + {{ policyForm?.selectedRCs?.slice(2).length }}\r\n </button>\r\n </div>\r\n <button\r\n class=\"edit\"\r\n type=\"button\"\r\n (click)=\"activateSelector('rc', true)\"\r\n >\r\n <i class=\"icons\"></i> Edit\r\n </button>\r\n </div>\r\n <app-popover #rcPopover [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let rc of policyForm?.selectedRCs | slice : 2;\r\n let j = index\r\n \"\r\n >\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 </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Version -->\r\n <div\r\n *ngIf=\"policyForm.addVersion\"\r\n class=\"form-group-row\"\r\n [class.disabled]=\"false\"\r\n >\r\n <div class=\"left\" [class.checked]=\"false\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/associated-risks.svg\"\r\n alt=\"name\"\r\n *ngIf=\"true\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"false\"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">VERSION</label>\r\n <input\r\n [(ngModel)]=\"policyForm.policy_version\"\r\n (change)=\"onVersion($event)\"\r\n type=\"text\"\r\n placeholder=\"Specify the policy version.\"\r\n />\r\n <p\r\n *ngIf=\"!isVersionValid\"\r\n class=\"error-message\"\r\n [appScrollInView]=\"true\"\r\n >\r\n {{ versionErrorMessage }}\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Reviewer -->\r\n <div\r\n class=\"form-group-row\"\r\n [appScrollInView]=\"scrollToBottom\"\r\n *ngIf=\"policyForm.addReviewers && false\"\r\n [class.active]=\"activeSelector === 'reviewer'\"\r\n [class.disabled]=\"\r\n activeSelector &&\r\n activeSelector !== 'reviewer' &&\r\n activeSelector !== 'reviewerFrequency' &&\r\n sideSelectorElements.includes(activeSelector)\r\n \"\r\n >\r\n <div\r\n class=\"left\"\r\n [class.checked]=\"policyForm?.selectedReviewers?.length > 0\"\r\n >\r\n <img\r\n *ngIf=\"\r\n policyForm?.selectedReviewers?.length == 0 ||\r\n activeSelector === 'reviewer'\r\n \"\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/reviewer.svg\"\r\n alt=\"\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"\r\n policyForm?.selectedReviewers?.length > 0 &&\r\n activeSelector !== 'reviewer'\r\n \"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Reviewer </label>\r\n <div\r\n class=\"select\"\r\n *ngIf=\"policyForm?.selectedReviewers?.length == 0\"\r\n >\r\n <input\r\n type=\"text\"\r\n (click)=\"activateSelector('reviewer', true)\"\r\n placeholder=\"Select the person responsible for reviewing this policy\"\r\n readonly\r\n />\r\n </div>\r\n\r\n <div\r\n class=\"selected\"\r\n *ngIf=\"policyForm?.selectedReviewers?.length > 0\"\r\n >\r\n <div class=\"chip-container\">\r\n <span\r\n class=\"chip\"\r\n *ngFor=\"let reviewer of policyForm?.selectedReviewers\"\r\n ><i class=\"icons\" (click)=\"remove('reviewer', reviewer)\"\r\n ></i\r\n >\r\n {{ reviewer.member_name }}</span\r\n >\r\n </div>\r\n <button\r\n class=\"edit\"\r\n type=\"button\"\r\n (click)=\"activateSelector('reviewer', true)\"\r\n >\r\n <i class=\"icons\"></i> Edit\r\n </button>\r\n </div>\r\n <p\r\n *ngIf=\"\r\n submitted &&\r\n policyForm?.selectedReviewers?.length == 0 &&\r\n policyForm?.review_frequency_details\r\n \"\r\n class=\"error-message\"\r\n [appScrollInView]=\"true\"\r\n >\r\n Select a reviewer for this policy.\r\n </p>\r\n\r\n <label class=\"vx-control-panel\">When? </label>\r\n\r\n <div\r\n *ngIf=\"policyForm?.review_frequency_details == ''\"\r\n class=\"select button-sec\"\r\n >\r\n <input\r\n type=\"text\"\r\n (click)=\"activateSelector('reviewerFrequency', true)\"\r\n [placeholder]=\"reviewerFrequencyPlaceholder\"\r\n readonly\r\n />\r\n <button\r\n (click)=\"activateSelector('reviewerFrequency', true)\"\r\n type=\"button\"\r\n >\r\n Set A frequency\r\n </button>\r\n </div>\r\n <div\r\n *ngIf=\"policyForm?.review_frequency_details != ''\"\r\n class=\"selected button-sec\"\r\n >\r\n <span class=\"chip\">{{ reviewerFrequencyPlaceholder }}</span>\r\n <button\r\n *ngIf=\"activeSelector !== 'reviewerFrequency'\"\r\n type=\"button\"\r\n class=\"edit\"\r\n (click)=\"activateSelector('reviewerFrequency', true)\"\r\n >\r\n <i class=\"icons\"></i>Edit\r\n </button>\r\n </div>\r\n <p\r\n *ngIf=\"\r\n submitted &&\r\n policyForm?.selectedReviewers?.length > 0 &&\r\n !policyForm?.review_frequency_details\r\n \"\r\n class=\"error-message\"\r\n [appScrollInView]=\"true\"\r\n >\r\n Select the review schedule for this policy.\r\n </p>\r\n\r\n <app-format-and-evidence\r\n (updateFiles)=\"saveSelectedList('reviewer_attachments', $event)\"\r\n #formatEvidence\r\n [mode]=\"'policyReviewer'\"\r\n [organization_id]=\"organization_id\"\r\n [formatEvidanceData]=\"policyForm?.documentsAndLinks\"\r\n >\r\n </app-format-and-evidence>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Overseer -->\r\n <div\r\n class=\"form-group-row\"\r\n [appScrollInView]=\"scrollToBottom\"\r\n *ngIf=\"policyForm.addOverseers\"\r\n [class.active]=\"\r\n activeSelector === 'ccEmail' || activeSelector === 'ccFail'\r\n \"\r\n [class.disabled]=\"\r\n activeSelector &&\r\n activeSelector !== 'ccEmail' &&\r\n activeSelector !== 'ccFail' &&\r\n sideSelectorElements.includes(activeSelector)\r\n \"\r\n >\r\n <div\r\n class=\"left\"\r\n [class.checked]=\"\r\n policyForm?.CCEmail?.length > 0 || policyForm?.CCFailEmail?.length > 0\r\n \"\r\n >\r\n <img\r\n *ngIf=\"\r\n (policyForm?.CCFailEmail?.length == 0 &&\r\n policyForm?.CCEmail?.length == 0) ||\r\n activeSelector === 'ccEmail' ||\r\n activeSelector === 'ccFail'\r\n \"\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/oversight.svg\"\r\n alt=\"im\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"\r\n (policyForm?.CCFailEmail?.length > 0 ||\r\n policyForm?.CCEmail?.length > 0) &&\r\n activeSelector !== 'ccEmail' &&\r\n activeSelector !== 'ccFail'\r\n \"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Overseer </label>\r\n <div\r\n class=\"select\"\r\n *ngIf=\"\r\n policyForm?.CCEmail?.length == 0 &&\r\n policyForm?.CCGroupEmail.length == 0\r\n \"\r\n >\r\n <input\r\n type=\"text\"\r\n (click)=\"activateSelector('ccEmail', true)\"\r\n placeholder=\"Who should have oversight of this policy?\"\r\n readonly\r\n />\r\n </div>\r\n <div\r\n class=\"selected\"\r\n *ngIf=\"\r\n policyForm?.CCEmail?.length > 0 ||\r\n policyForm?.CCGroupEmail.length > 0\r\n \"\r\n >\r\n <div *ngIf=\"!groupEnabled\" class=\"chip-container\">\r\n <span\r\n class=\"chip\"\r\n *ngFor=\"let ccEmail of policyForm?.CCEmail?.slice(0, 2)\"\r\n ><i class=\"icons\" (click)=\"remove('ccEmail', ccEmail)\"\r\n ></i\r\n >\r\n {{ ccEmail.employee_name }}</span\r\n >\r\n <button\r\n class=\"count\"\r\n *ngIf=\"policyForm?.CCEmail?.length > 2\"\r\n type=\"button\"\r\n appPopover\r\n (click)=\"ccEmailPopover.popover()\"\r\n placement=\"right\"\r\n >\r\n + {{ policyForm?.CCEmail?.slice(2).length }}\r\n </button>\r\n </div>\r\n <div *ngIf=\"groupEnabled\" class=\"chip-container\">\r\n <div\r\n class=\"chip-inner\"\r\n *ngIf=\"groupEnabled && policyForm?.CCEmail?.length > 0\"\r\n >\r\n <i\r\n class=\"icons cross vx-mr-1\"\r\n (click)=\"remove('ccEmail', policyForm?.CCEmail[0])\"\r\n ></i\r\n >\r\n <span\r\n class=\"chip\"\r\n [appTooltip]=\"policyForm?.CCEmail[0].employee_name\"\r\n placement=\"bottom-left\"\r\n type=\"black\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"false\"\r\n ><span\r\n class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\"\r\n >{{ policyForm?.CCEmail[0].employee_name }}</span\r\n ></span\r\n >\r\n <button\r\n *ngIf=\"policyForm?.CCEmail?.length > 1\"\r\n class=\"count user\"\r\n appPopover\r\n (click)=\"overseerPopover.popover()\"\r\n placement=\"right\"\r\n >\r\n +{{ policyForm?.CCEmail?.length - 1 }}\r\n </button>\r\n </div>\r\n <span\r\n class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\"\r\n *ngIf=\"\r\n policyForm?.CCEmail.length > 0 &&\r\n policyForm?.CCGroupEmail?.length > 0\r\n \"\r\n >&</span\r\n >\r\n\r\n <div\r\n class=\"chip-inner\"\r\n *ngIf=\"policyForm?.CCGroupEmail.length > 0\"\r\n >\r\n <i\r\n class=\"icons cross vx-mr-1\"\r\n (click)=\"remove('ccGroupEmail', policyForm?.CCGroupEmail[0])\"\r\n ></i\r\n >\r\n <span\r\n class=\"chip\"\r\n [appTooltip]=\"policyForm?.CCGroupEmail[0]?.group_name\"\r\n placement=\"bottom-left\"\r\n type=\"black\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"false\"\r\n ><span\r\n class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\"\r\n >{{ policyForm?.CCGroupEmail[0]?.group_name }}</span\r\n ></span\r\n >\r\n <button\r\n *ngIf=\"policyForm?.CCGroupEmail?.length > 1\"\r\n class=\"count\"\r\n appPopover\r\n (click)=\"overseerGroup.popover()\"\r\n placement=\"right\"\r\n >\r\n +{{ policyForm?.CCGroupEmail?.length - 1 }}\r\n </button>\r\n </div>\r\n </div>\r\n <button\r\n class=\"edit\"\r\n type=\"button\"\r\n (click)=\"activateSelector('ccEmail', true)\"\r\n >\r\n <i class=\"icons\"></i> Edit\r\n </button>\r\n </div>\r\n\r\n <div\r\n class=\"select\"\r\n *ngIf=\"\r\n policyForm?.CCFailEmail?.length == 0 &&\r\n policyForm?.CCFailEmailGroup?.length == 0\r\n \"\r\n >\r\n <input\r\n type=\"text\"\r\n (click)=\"activateSelector('ccFail', true)\"\r\n placeholder=\"Who should be notified if the policy is not attested on time?\"\r\n readonly\r\n />\r\n </div>\r\n <div\r\n class=\"selected\"\r\n *ngIf=\"\r\n policyForm?.CCFailEmail?.length > 0 ||\r\n policyForm?.CCFailEmailGroup?.length > 0\r\n \"\r\n >\r\n <div *ngIf=\"!groupEnabled\" class=\"chip-container\">\r\n <span\r\n class=\"chip\"\r\n *ngFor=\"let ccFail of policyForm?.CCFailEmail?.slice(0, 2)\"\r\n ><i class=\"icons\" (click)=\"remove('ccFail', ccFail)\"\r\n ></i\r\n >\r\n {{ ccFail.employee_name }}</span\r\n >\r\n <button\r\n class=\"count\"\r\n *ngIf=\"policyForm?.CCFailEmail?.length > 2\"\r\n type=\"button\"\r\n appPopover\r\n (click)=\"ccFailPopover.popover()\"\r\n placement=\"right\"\r\n >\r\n + {{ policyForm?.CCFailEmail?.slice(2).length }}\r\n </button>\r\n </div>\r\n <div *ngIf=\"groupEnabled\" class=\"chip-container\">\r\n <div\r\n class=\"chip-inner\"\r\n *ngIf=\"groupEnabled && policyForm?.CCFailEmail.length > 0\"\r\n >\r\n <i\r\n class=\"icons cross vx-mr-1\"\r\n (click)=\"remove('ccFail', policyForm?.CCFailEmail[0])\"\r\n ></i\r\n >\r\n <span\r\n class=\"chip\"\r\n [appTooltip]=\"policyForm?.CCFailEmail[0]?.employee_name\"\r\n placement=\"bottom-left\"\r\n type=\"black\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n <span\r\n class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\"\r\n >{{ policyForm?.CCFailEmail[0]?.employee_name }}</span\r\n ></span\r\n >\r\n <button\r\n *ngIf=\"policyForm?.CCFailEmail?.length > 1\"\r\n class=\"count user\"\r\n appPopover\r\n (click)=\"overseerFailPopover.popover()\"\r\n placement=\"right\"\r\n >\r\n +{{ policyForm?.CCFailEmail?.length - 1 }}\r\n </button>\r\n </div>\r\n <span\r\n class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\"\r\n *ngIf=\"\r\n policyForm?.CCFailEmail?.length > 0 &&\r\n policyForm?.CCFailEmailGroup?.length > 0\r\n \"\r\n >&</span\r\n >\r\n <div\r\n class=\"chip-inner\"\r\n *ngIf=\"policyForm?.CCFailEmailGroup?.length > 0\"\r\n >\r\n <i\r\n class=\"icons cross vx-mr-1\"\r\n (click)=\"\r\n remove('ccGroupFailEmail', policyForm?.CCFailEmailGroup[0])\r\n \"\r\n ></i\r\n >\r\n <span\r\n class=\"chip\"\r\n [appTooltip]=\"policyForm?.CCFailEmailGroup[0]?.group_name\"\r\n placement=\"bottom-left\"\r\n type=\"black\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n <span\r\n class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\"\r\n >{{ policyForm?.CCFailEmailGroup[0]?.group_name }}</span\r\n ></span\r\n >\r\n <button\r\n *ngIf=\"policyForm?.CCFailEmailGroup?.length > 1\"\r\n class=\"count\"\r\n appPopover\r\n (click)=\"overseerFailGroup.popover()\"\r\n placement=\"right\"\r\n >\r\n +{{ policyForm?.CCFailEmailGroup?.length - 1 }}\r\n </button>\r\n </div>\r\n </div>\r\n <button\r\n class=\"edit\"\r\n type=\"button\"\r\n (click)=\"activateSelector('ccFail', true)\"\r\n >\r\n <i class=\"icons\"></i> Edit\r\n </button>\r\n </div>\r\n <app-popover #ccEmailPopover [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let ccEmail of policyForm?.CCEmail | slice : 2;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"remove('ccEmail', ccEmail)\"\r\n ></i\r\n >\r\n {{ ccEmail.employee_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <app-popover #ccFailPopover [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let ccFail of policyForm?.CCFailEmail | slice : 2;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"remove('ccFail', ccFail)\"\r\n ></i\r\n >\r\n {{ ccFail.employee_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Related Documents -->\r\n <div\r\n class=\"form-group-row\"\r\n [appScrollInView]=\"scrollToBottom\"\r\n *ngIf=\"policyForm.addAssociatedDocuments\"\r\n [class.disabled]=\"activeSelector && activeSelector !== 'name'\"\r\n >\r\n <div class=\"left\">\r\n <img\r\n *ngIf=\"policyForm.associatedDocuments.formatFiles?.length == 0\"\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/format-evidence.svg\"\r\n alt=\"im\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"policyForm.associatedDocuments.formatFiles?.length > 0\"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">RELATED DOCUMENTS</label>\r\n <app-format-and-evidence\r\n (updateFiles)=\"saveSelectedList('associatedDocuments', $event)\"\r\n [mode]=\"'policy'\"\r\n [organization_id]=\"organization_id\"\r\n [formatEvidanceData]=\"policyForm?.associatedDocuments\"\r\n ></app-format-and-evidence>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Link Programs & Responsibilities -->\r\n <div\r\n *ngIf=\"policyForm.addLinkProgram\"\r\n class=\"form-group-row\"\r\n [class.active]=\"activeSelector === 'linkProgram'\"\r\n [class.disabled]=\"\r\n activeSelector &&\r\n activeSelector !== 'linkProgram' &&\r\n sideSelectorElements.includes(activeSelector)\r\n \"\r\n >\r\n <div class=\"left\" [class.checked]=\"false\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/link-items.svg\"\r\n alt=\"\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"false\"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\"\r\n >LINK PROGRAMS & RESPONSIBILITIES</label\r\n >\r\n <div\r\n *ngIf=\"!policyForm?.programSelectedValues?.program?.category_id\"\r\n (click)=\"activateSelector('linkProgram', true)\"\r\n class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\"\r\n [class.disabled]=\"false\"\r\n >\r\n <div class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\">\r\n Select Programs & responsibilities that are<br />associated with\r\n this policy.\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\"\r\n *ngIf=\"policyForm?.programSelectedValues?.program?.category_id\"\r\n >\r\n <div\r\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\r\n >\r\n <i\r\n (click)=\"\r\n remove('linkProgram', policyForm?.programSelectedValues)\r\n \"\r\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"policyForm?.programSelectedValues?.program?.name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ policyForm?.programSelectedValues?.program?.name }}</span\r\n >\r\n <!-- <button\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\r\n appPopover\r\n (click)=\"programResponsibilityPopover.popover()\"\r\n placement=\"right\"\r\n >\r\n +4\r\n </button> -->\r\n </div>\r\n <app-popover\r\n #programResponsibilityPopover\r\n [dontCloseonClick]=\"true\"\r\n >\r\n <div class=\"wf-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\r\n class=\"value\"\r\n [appTooltip]=\"\r\n 'Reporting information security weaknesses'\r\n \"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n <i class=\"icons\"></i>\r\n Reporting information security weaknesses\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <button\r\n class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\r\n (click)=\"activateSelector('linkProgram', true)\"\r\n >\r\n <i class=\"icons vx-mr-1\"></i> EDIT\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Link Assessment -->\r\n <div\r\n *ngIf=\"policyForm.addLinkAssessment\"\r\n class=\"form-group-row\"\r\n [class.active]=\"false\"\r\n [class.disabled]=\"false\"\r\n >\r\n <div class=\"left\" [class.checked]=\"false\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/assessments.svg\"\r\n alt=\"\"\r\n />\r\n\r\n <svg\r\n *ngIf=\"false\"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">LINK ASSESSMENTS</label>\r\n <div\r\n *ngIf=\"policyForm?.assessment?.length === 0\"\r\n (click)=\"activateSelector('isAssessment', true)\"\r\n class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\"\r\n [class.disabled]=\"false\"\r\n >\r\n <div class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\">\r\n Select assessments that are associated with this<br />policy.\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"policyForm?.assessment?.length > 0\"\r\n class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\"\r\n >\r\n <div\r\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\r\n >\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"\r\n policyForm.assessment[0]?.assessmentDetails?.assessment_name\r\n \"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{\r\n policyForm.assessment[0]?.assessmentDetails?.assessment_name\r\n }}</span\r\n >\r\n </div>\r\n <app-popover\r\n #programResponsibilityPopover\r\n [dontCloseonClick]=\"true\"\r\n >\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"let assessment of policyForm.assessment | slice : 1\"\r\n >\r\n <div class=\"avatar-card\">\r\n <span\r\n class=\"value\"\r\n [appTooltip]=\"\r\n assessment?.assessmentDetails?.assessment_name\r\n \"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n <i class=\"icons\"></i>\r\n {{ assessment?.assessmentDetails?.assessment_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <button\r\n (click)=\"activateSelector('isAssessment', true)\"\r\n class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\r\n >\r\n <i class=\"icons vx-mr-1\"></i> EDIT\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <app-checkbox-list\r\n [config]=\"categoryConfig\"\r\n [twoColumn]=\"false\"\r\n [itemsList]=\"categoryList\"\r\n [selectedItems]=\"policyForm.selectedCategories\"\r\n [identifierKey]=\"'_id'\"\r\n [displayKey]=\"'item_name'\"\r\n [tooltipKey]=\"'item_name'\"\r\n *ngIf=\"activeSelector === 'category'\"\r\n (saveList)=\"saveSelectedList('category', $event)\"\r\n (closeList)=\"disableSelector()\"\r\n >\r\n </app-checkbox-list>\r\n <!-- <app-checkbox-list [config]=\"approvalWorkflowConfig\" [twoColumn]=\"true\"\r\n [itemsList]=\"\"\r\n [selectedItems]=\"policyForm.issueCCUsers\" [identifierKey]=\"'employee_email'\" [displayKey]=\"'employee_name'\" [tooltipKey]=\"'employee_email'\"\r\n *ngIf=\"activeSelector==='ISSUE_CC'\" (saveList)=\"selectorAction($event,'ISSUE_CC')\"\r\n (closeList)=\"fieldDeselector('ISSUE_CC')\">\r\n</app-checkbox-list> -->\r\n\r\n <app-responsibility-centers-list\r\n *ngIf=\"activeSelector === 'rc'\"\r\n [responsibilityCentersList]=\"rcList\"\r\n [selectedResponsibilityCenters]=\"policyForm.selectedRCs\"\r\n [rcIdKey]=\"'item_id'\"\r\n (saveSelectedList)=\"saveSelectedList('rc', $event)\"\r\n (closeRcList)=\"disableSelector()\"\r\n >\r\n </app-responsibility-centers-list>\r\n\r\n <app-users-radio-list\r\n *ngIf=\"activeSelector === 'reviewer'\"\r\n [itemEmailKey]=\"'member_email'\"\r\n [usersList]=\"allReviewers\"\r\n [selectedUsers]=\"policyForm.selectedReviewers\"\r\n [userIdKey]=\"'member_id'\"\r\n [itemNameKey]=\"'member_name'\"\r\n (saveSelectedList)=\"saveSelectedList('reviewer', $event)\"\r\n (closeUsersList)=\"disableSelector()\"\r\n >\r\n </app-users-radio-list>\r\n\r\n <app-owner-list\r\n *ngIf=\"activeSelector === 'ccEmail' && !groupEnabled\"\r\n [usersList]=\"overseersList\"\r\n [singularText]=\"'User selected'\"\r\n [pluralText]=\"'Users selected'\"\r\n [selectedUsers]=\"policyForm.CCEmail\"\r\n [userIdKey]=\"'employee_id'\"\r\n [itemNameKey]=\"'employee_name'\"\r\n (saveSelectedList)=\"saveSelectedList('ccEmail', $event)\"\r\n (closeUsersList)=\"disableSelector()\"\r\n >\r\n </app-owner-list>\r\n\r\n <user-group-list\r\n *ngIf=\"activeSelector === 'ccEmail' && groupEnabled\"\r\n [groupEnabled]=\"true\"\r\n [userlist]=\"overseersList\"\r\n [groupList]=\"overseerGroupsList\"\r\n [selectedUsers]=\"policyForm.CCEmail\"\r\n [selectedGroups]=\"policyForm.CCGroupEmail\"\r\n (save)=\"saveSelectedList('ccEmail', $event)\"\r\n (cancel)=\"disableSelector()\"\r\n [featureflag]=\"groupEnabled\"\r\n >\r\n </user-group-list>\r\n\r\n <app-owner-list\r\n *ngIf=\"activeSelector === 'ccFail' && !groupEnabled\"\r\n [usersList]=\"overseersList\"\r\n [singularText]=\"'User selected'\"\r\n [pluralText]=\"'Users selected'\"\r\n [selectedUsers]=\"policyForm.CCFailEmail\"\r\n [userIdKey]=\"'employee_id'\"\r\n [itemNameKey]=\"'employee_name'\"\r\n (saveSelectedList)=\"saveSelectedList('ccFail', $event)\"\r\n (closeUsersList)=\"disableSelector()\"\r\n >\r\n </app-owner-list>\r\n\r\n <user-group-list\r\n *ngIf=\"activeSelector === 'ccFail' && groupEnabled\"\r\n [groupEnabled]=\"true\"\r\n [userlist]=\"overseersList\"\r\n [groupList]=\"overseerGroupsList\"\r\n [selectedUsers]=\"policyForm.CCFailEmail\"\r\n [selectedGroups]=\"policyForm.CCFailEmailGroup\"\r\n (save)=\"saveSelectedList('ccFail', $event)\"\r\n (cancel)=\"disableSelector()\"\r\n [featureflag]=\"groupEnabled\"\r\n >\r\n </user-group-list>\r\n\r\n <app-group-users-list\r\n *ngIf=\"activeSelector === 'assignees' && !groupEnabled\"\r\n [usersList]=\"assigneesList\"\r\n [groupsList]=\"groupsList\"\r\n [selectedUsers]=\"policyForm.selectedAssignees\"\r\n [userIdKey]=\"'my_member_id'\"\r\n (saveSelectedList)=\"saveSelectedList('assignees', $event)\"\r\n (closeUsersList)=\"disableSelector()\"\r\n >\r\n </app-group-users-list>\r\n\r\n <user-group-list\r\n *ngIf=\"activeSelector === 'assignees' && groupEnabled\"\r\n [groupEnabled]=\"true\"\r\n [userlist]=\"ownerlist\"\r\n [groupList]=\"groupsList\"\r\n (save)=\"saveSelectedList('assignees', $event)\"\r\n (cancel)=\"disableSelector()\"\r\n [selectedGroups]=\"policyForm.selectedGroupAssignee\"\r\n [selectedUsers]=\"policyForm.selectedAssignees\"\r\n [featureflag]=\"groupEnabled\"\r\n >\r\n </user-group-list>\r\n\r\n <app-owner-list\r\n *ngIf=\"activeSelector === 'approvers'\"\r\n [listHeading]=\"'Select Approvers'\"\r\n [singularText]=\"'User selected'\"\r\n [pluralText]=\"'Users selected'\"\r\n [usersList]=\"allApprovers\"\r\n [showWorkflow]=\"true\"\r\n [selectedUsers]=\"\r\n addMoreLevels\r\n ? []\r\n : policyForm.selectedApprovers[approversListIndex].approvers\r\n \"\r\n [userIdKey]=\"'member_id'\"\r\n [itemEmailKey]=\"'member_email'\"\r\n [itemNameKey]=\"'member_name'\"\r\n (saveSelectedList)=\"saveSelectedList('approvers', $event)\"\r\n (closeUsersList)=\"disableSelector()\"\r\n [mode]=\"mode\"\r\n [reviewerWorkflowType]=\"workflowType\"\r\n (reviewerWorkflowTypeChange)=\"reviewerTypeChange($event)\"\r\n [workflowList]=\"workflowList\"\r\n [workflowText]=\"'Approval Workflow'\"\r\n >\r\n </app-owner-list>\r\n\r\n <app-frequency-container\r\n *ngIf=\"activeSelector === 'frequency'\"\r\n [mode]=\"'policy'\"\r\n [frequencyDetails]=\"frequencyDetails\"\r\n (selectedFrequency)=\"frequencyData($event)\"\r\n [feature]=\"feature\"\r\n [pageType]=\"'policy'\"\r\n (closeFrequency)=\"disableSelector()\"\r\n ></app-frequency-container>\r\n\r\n <app-frequency-container\r\n *ngIf=\"activeSelector === 'reviewerFrequency'\"\r\n [mode]=\"'reviewerFrequency'\"\r\n [frequencyDetails]=\"reviewerFrequencyDetails\"\r\n (selectedFrequency)=\"reviewerFrequencyData($event)\"\r\n [feature]=\"feature\"\r\n [pageType]=\"'policy'\"\r\n (closeFrequency)=\"disableSelector()\"\r\n ></app-frequency-container>\r\n\r\n <vc-link-program\r\n *ngIf=\"activeSelector === 'linkProgram'\"\r\n (close)=\"disableSelector()\"\r\n [selectedProgram]=\"policyForm.programSelectedValues\"\r\n [policy]=\"data\"\r\n [mode]=\"mode\"\r\n (changeTab)=\"changeTab('linkedPrograms')\"\r\n (updatedProgramDetails)=\"updatedProgramDetails($event)\"\r\n >\r\n </vc-link-program>\r\n\r\n <app-checkpoints-policy-container\r\n (closeCheckPoint)=\"disableSelector()\"\r\n [checkpointData]=\"policyForm?.checkpointDetails\"\r\n [requiredPoint]=\"policyForm?.passingMarks\"\r\n *ngIf=\"activeSelector === 'checkpoints'\"\r\n (saveCheckPoint)=\"saveSelectedList('checkpoints', $event)\"\r\n ></app-checkpoints-policy-container>\r\n <app-loader-inline *ngIf=\"loader\"></app-loader-inline>\r\n\r\n <!-- <app-approval-workflow></app-approval-workflow> -->\r\n <!-- <app-select-approvers></app-select-approvers> -->\r\n\r\n <!-- <app-policy-access></app-policy-access> -->\r\n</ng-container>\r\n<ng-container *ngIf=\"showCreateDocuments\">\r\n <!-- <app-create-documents *ngIf=\"showCreateDocuments\"\r\n [organization_id]=\"organization_id\"\r\n [member_obj_id]=\"member_obj_id\"\r\n [userInfo]=\"userInfo\"\r\n [policyId]=\"policyId\"\r\n [policyName]=\"policyForm.policyName\"\r\n (disconnectRefresh)=\"disconnectRefresh.emit(false)\"\r\n (editPolicy)=\"editPolicyFromDocuments()\"\r\n ></app-create-documents> -->\r\n <lib-document-section\r\n *ngIf=\"showCreateDocuments\"\r\n [organization_id]=\"organization_id\"\r\n [member_obj_id]=\"member_obj_id\"\r\n [userInfo]=\"userInfo\"\r\n [policyId]=\"policyId\"\r\n [policyName]=\"policyForm.policyName\"\r\n (disconnectRefresh)=\"disconnectRefresh.emit(false)\"\r\n (editPolicy)=\"editPolicyFromDocuments()\"\r\n ></lib-document-section>\r\n</ng-container>\r\n\r\n<app-assessment-list\r\n *ngIf=\"activeSelector === 'isAssessment'\"\r\n [program_ids]=\"''\"\r\n [isEdit]=\"policyForm?.assessment?.length\"\r\n (cancelAssessment)=\"saveSelectedList('isAssessment', false)\"\r\n [selectedAssessment]=\"policyForm?.assessment[0]\"\r\n (onAssessmentSelect)=\"\r\n onAssessmentSelect($event); saveSelectedList('isAssessment', false)\r\n \"\r\n></app-assessment-list>\r\n\r\n<app-owner-list\r\n *ngIf=\"activeSelector === 'approvers'\"\r\n [listHeading]=\"'Select Approvers'\"\r\n [singularText]=\"'User selected'\"\r\n [pluralText]=\"'Users selected'\"\r\n [usersList]=\"allApprovers\"\r\n [showWorkflow]=\"true\"\r\n [selectedUsers]=\"\r\n addMoreLevels\r\n ? []\r\n : policyForm.selectedApprovers[approversListIndex].approvers\r\n \"\r\n [userIdKey]=\"'member_id'\"\r\n [itemEmailKey]=\"'member_email'\"\r\n [itemNameKey]=\"'member_name'\"\r\n (saveSelectedList)=\"saveSelectedList('approvers', $event)\"\r\n (closeUsersList)=\"disableSelector()\"\r\n [mode]=\"mode\"\r\n [reviewerWorkflowType]=\"workflowType\"\r\n (reviewerWorkflowTypeChange)=\"reviewerTypeChange($event)\"\r\n [workflowList]=\"workflowList\"\r\n [workflowText]=\"'Approval Workflow'\"\r\n>\r\n</app-owner-list>\r\n\r\n<app-owner-list\r\n *ngIf=\"activeSelector === 'owners'\"\r\n [listHeading]=\"'Select User(s)'\"\r\n [singularText]=\"'User selected'\"\r\n [pluralText]=\"'Users selected'\"\r\n [usersList]=\"allApprovers\"\r\n [showWorkflow]=\"false\"\r\n [userIdKey]=\"'member_id'\"\r\n [itemEmailKey]=\"'member_email'\"\r\n [itemNameKey]=\"'member_name'\"\r\n (saveSelectedList)=\"saveSelectedList('owners', $event)\"\r\n (closeUsersList)=\"disableSelector()\"\r\n [mode]=\"mode\"\r\n [selectedUsers]=\"policyForm?.policy_owners ?? []\"\r\n>\r\n</app-owner-list>\r\n",
|
|
8263
8311
|
styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";::ng-deep .workflow-policy{position:relative}::ng-deep .workflow-policy app-cs-switch{display:block}::ng-deep .workflow-policy app-cs-switch label.cs-switch span.value{color:#747576!important;font-size:11px!important;font-weight:500!important;justify-content:flex-end!important;line-height:16px;width:100%!important}::ng-deep .workflow-policy app-cs-switch label.cs-switch span.value i{display:inline-flex;font-size:12px;cursor:pointer;color:#1e5dd3;align-items:center;line-height:16px;margin:0 8px 0 4px}::ng-deep .workflow-policy .form-group-row .right .approval-workflow .selected{height:56px;padding:4px 12px 8px;display:block}::ng-deep .workflow-policy .form-group-row .right .approval-workflow .selected .workflow-label{min-width:auto;padding:0;text-align:left;margin:0 0 4px;border-right:none;width:100%;display:flex;align-items:center}::ng-deep .workflow-policy .form-group-row .right .approval-workflow .selected .workflow-label p.description{font-size:10px;margin-left:6px}::ng-deep .workflow-policy .form-group-row .right .approval-workflow cs-select .selection-wrap .input-group:before{display:none!important}.disabled{opacity:.5;pointer-events:none}\n", "@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.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-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}button{font-family:\"Poppins\",sans-serif}::ng-deep input.textField{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;padding:8px 12px;position:relative;height:2.5rem;width:100%;transition:all .2s ease-in-out}::ng-deep input.textField:hover,::ng-deep input.textField:focus{outline:none;border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectBoxEnable:after{border-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#747576;content:\"\";display:inline-block;right:12px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .selectBoxEnable:hover,::ng-deep .selectBoxEnable:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable.disabled{background:#f1f1f1;pointer-events:none;opacity:1}::ng-deep .selectBoxSuccess{background:#f8f8f8;border-radius:.25rem;border:1px solid #f1f1f1;min-height:2.5rem;position:relative}::ng-deep .selectBoxSuccess .selectBoxText{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:22rem}::ng-deep .selectBoxSuccess button{background:transparent;border-radius:0;border:none}::ng-deep .selectBoxSuccess button.deleteBtn{color:#d93b41}::ng-deep .selectBoxSuccess .level-left{border-right:1px solid #f1f1f1;height:2.375rem;width:5rem}::ng-deep .selectBoxSuccess .level-left .level-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:4.5rem}::ng-deep .chipContainer{background:#fff;border-radius:.125rem;box-shadow:0 0 2px #1e5dd340;height:1.5rem}::ng-deep .chipContainer .cross{cursor:pointer;min-width:16px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;background:transparent;border-radius:2px;margin-left:-4px}::ng-deep .chipContainer .cross:hover{background:#f1f1f1}::ng-deep .chipContainer .chipName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:6rem}::ng-deep .chipContainer button.countBtn{background:#1e5dd3;border-radius:1.25rem;border:none;min-width:1.5rem;height:1rem;margin:0 0 0 .5rem;padding:0 .25rem}::ng-deep .chipContainer button.countBtn.greenBg{background:#34AA44}::ng-deep .workflowLavel{background:#f1f1f1;border-radius:.125rem;color:#042e7d;min-width:1rem;height:1rem}::ng-deep .reviewSelection{border-radius:.25rem;border:1px solid #dbdbdb;transition:all .2s ease-in-out}::ng-deep .reviewSelection:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectButton{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectButton:hover,::ng-deep .selectButton:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep button.createNewBtn{background:transparent;border-radius:0;border:none}::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-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#707070;content:\"\";display:inline-block;right:12px;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:#FFFFFF;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 #1e5dd345}::ng-deep .vx-form-group .select .custom-input.frequency-custom-input{padding-right:108px;display:flex;align-items:center}::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;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;transition:all .2s ease-in-out}::ng-deep .vx-form-group .tab-group:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group .tab-group .upload-file{padding:16px 62px 16px 24px;display:flex;align-items:center;justify-content:space-between}::ng-deep .vx-form-group .tab-group .upload-file .image{width:80px}::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:8px 0!important;text-align:center}::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%;text-align:center}::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:#FFFFFF}::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;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:14px;font-weight:500;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[type=text],::ng-deep .vx-form-group .input{height:40px;border-radius:4px;border:1px solid #DBDBDB;background:#FFFFFF;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[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{color:#747576;font-weight:400}::ng-deep .vx-form-group input[type=text]:focus,::ng-deep .vx-form-group .input:focus,::ng-deep .vx-form-group input[type=text]:hover,::ng-deep .vx-form-group .input:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group input[type=text].error,::ng-deep .vx-form-group .input.error{border-color:#eb2424;color:#eb2424;margin-bottom:4px}::ng-deep .vx-form-group input[type=text].error:focus,::ng-deep .vx-form-group .input.error:focus{box-shadow:0 0 5px #d31e1e45}::ng-deep .vx-form-group input[type=text]:disabled,::ng-deep .vx-form-group .input:disabled{background:#F1F1F1;cursor:not-allowed;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group input[type=text]:disabled:hover,::ng-deep .vx-form-group .input:disabled:hover{border-color:#dbdbdb;box-shadow:none}::ng-deep .vx-form-group input[type=text] span.text,::ng-deep .vx-form-group .input span.text{font-size:13px;color:#747576;font-weight:400;display:block;width:100%}::ng-deep .vx-form-group input[type=text] .input-group,::ng-deep .vx-form-group .input .input-group{display:flex;align-items:center}::ng-deep .vx-form-group input[type=text] .input-group.counter,::ng-deep .vx-form-group .input .input-group.counter{min-width:96px;width:96px}::ng-deep .vx-form-group input[type=text] .input-group.counter button,::ng-deep .vx-form-group .input .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[type=text] .input-group.counter input,::ng-deep .vx-form-group .input .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[type=text] .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-outer-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}::ng-deep .vx-form-group input[type=text]+.file-list,::ng-deep .vx-form-group .input+.file-list{margin-top:8px}::ng-deep .vx-form-group input[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]:-ms-input-placeholder,::ng-deep .vx-form-group .input:-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]::-ms-input-placeholder,::ng-deep .vx-form-group .input::-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group .classification{height:40px;border-radius:4px;border:1px solid #DBDBDB;background:#FFFFFF;padding:8px 12px;display:flex;justify-content:space-between}::ng-deep .vx-form-group .classification label{margin:0 4px 0 0;width:100%;position:relative;z-index:1}::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:#FFFFFF;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;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:100px}::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;position:relative;top:1px;font-size:8px}::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:none;border-radius:0;background:transparent;outline:none;cursor:pointer;display:block;font-size:11px;font-weight:600;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:#FFFFFF;box-shadow:0 0 5px #1e5dd345;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:12px}::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;box-shadow:0 3px 6px #1e5dd31a}::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;box-shadow:0 3px 6px #1e5dd31a}::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 #1e5dd345}::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:#FFFFFF;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::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:12px;position:absolute;left:12px;top:0;color:#747576;font-size:12px;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 app-cs-radio.disabled{pointer-events:none;opacity:.5;filter:grayscale(1);background:#f1f1f1}::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;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:26px;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:#ffffff;border-radius:50%;stroke-width:4;stroke:#34aa44;stroke-miterlimit:10;box-shadow:inset 0 0 #34aa44;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;animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards}.left .checkIcon__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;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;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:#FFFFFF;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 input,.form-group-row.active .right .vx-form-group .custom-input{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}.form-group-row.active .right .vx-form-group .selectBoxEnable{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::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}@keyframes strokeCheck{to{stroke-dashoffset:0}}@keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}::ng-deep .wf-action-list{width:220px}::ng-deep .wf-action-list ul{padding:0;margin:0;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#ffffff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}::ng-deep .wf-action-list ul.action-item{display:block}::ng-deep .wf-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}::ng-deep .wf-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}::ng-deep .wf-action-list ul.action-item li button i{font-size:16px;margin-right:10px;color:#1e5dd3}::ng-deep .wf-action-list ul.action-item li button:hover{background:#f3f3f3}::ng-deep .wf-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.within-con{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;overflow:hidden;background:#1E5DD3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar img{width:100%}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}::ng-deep .wf-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;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}::ng-deep .wf-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}::ng-deep .wf-action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}::ng-deep .wf-action-list ul.action-item li .chip-item i{color:#747576;margin-right:7px;font-size:10px;cursor:pointer;display:inline-flex}::ng-deep .wf-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}::ng-deep .wf-action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}::ng-deep .wf-action-list ul.action-item li .chip-item span.id{font-size:9px}::ng-deep .wf-action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}::ng-deep .wf-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}::ng-deep .wf-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}::ng-deep .wf-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@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{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;animation:dash 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@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:#FFFFFF;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;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-current-location-btn,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left,dp-date-picker .dp-popup dp-month-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-month-calendar button.dp-calendar-nav-right{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-current-location-btn:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:hover,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,dp-date-picker .dp-popup dp-month-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-month-calendar button.dp-calendar-nav-right: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:#000000;display:inline-flex}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week .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-weekdays button,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week 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-weekdays button:hover,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button:hover,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button:hover,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week 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-month-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-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)}@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;border:1px solid transparent;border-color:#747576;position:relative;margin-right:5px;border-top:none;margin-top:5px;background:#ffffff}::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 0%,#747576 1%,#747576 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);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;background:#ffffff}::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 0%,#f31c39 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);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.xlsx,::ng-deep span.file.xls,::ng-deep span.file.css,::ng-deep span.file.scss,::ng-deep span.file.less{border-color:#34aa44}::ng-deep span.file.xlsx:before,::ng-deep span.file.xls:before,::ng-deep span.file.css:before,::ng-deep span.file.scss:before,::ng-deep span.file.less:before{background:linear-gradient(45deg,#34aa44 0%,#34aa44 1%,#34aa44 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.xlsx:after,::ng-deep span.file.xls:after,::ng-deep span.file.css:after,::ng-deep span.file.scss:after,::ng-deep span.file.less:after{border-color:#34aa44;color:#34aa44}::ng-deep span.file.xlsx .format,::ng-deep span.file.xls .format,::ng-deep span.file.css .format,::ng-deep span.file.scss .format,::ng-deep span.file.less .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 0%,#1e5dd3 1%,#1e5dd3 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);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.ppt,::ng-deep span.file.ai,::ng-deep span.file.html,::ng-deep span.file.jpg,::ng-deep span.file.jpeg,::ng-deep span.file.png{border-color:#f6882f}::ng-deep span.file.ppt:before,::ng-deep span.file.ai:before,::ng-deep span.file.html:before,::ng-deep span.file.jpg:before,::ng-deep span.file.jpeg:before,::ng-deep span.file.png:before{background:linear-gradient(45deg,#f6882f 0%,#f6882f 1%,#f6882f 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.ppt:after,::ng-deep span.file.ai:after,::ng-deep span.file.html:after,::ng-deep span.file.jpg:after,::ng-deep span.file.jpeg:after,::ng-deep span.file.png:after{border-color:#f6882f}::ng-deep span.file.ppt .format,::ng-deep span.file.ai .format,::ng-deep span.file.html .format,::ng-deep span.file.jpg .format,::ng-deep span.file.jpeg .format,::ng-deep span.file.png .format{color:#f6882f}::ng-deep span.file.php{border-color:#7aa6f7}::ng-deep span.file.php:before{background:linear-gradient(45deg,#7aa6f7 0%,#7aa6f7 1%,#7aa6f7 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);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:#0000000d!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:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px 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:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px 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\"}::ng-deep marx-editor{display:block}::ng-deep marx-editor .editor-container{border-radius:4px;border:1px solid #DBDBDB;transition:all .2s ease-in-out}::ng-deep marx-editor .editor-container:hover,::ng-deep marx-editor .editor-container:focus-within{border:1px solid #1E5DD3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep marx-editor .editor-container mention-list ul li a{font-size:16px!important}::ng-deep marx-editor .editor-container .editable-block{background:#fff;min-height:60px;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}::ng-deep marx-editor .editor-container .editable-block:before{color:#747576!important}::ng-deep marx-editor .editor-container .editor-tools{border-top:1px solid #DBDBDB;border-radius:0 0 3px 3px}::ng-deep marx-editor .editor-container .editor-tools:hover{border-color:#1e5dd3}::ng-deep marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep 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 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 marx-modal .popup-modal-background{background-color:#161b2fcc!important}::ng-deep .within-box{background:#F1F1F1;border-radius:.125rem;color:#042e7d}::ng-deep .within-value{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-word}\n"]
|
|
8264
8312
|
},] }
|
|
8265
8313
|
];
|
|
@@ -8309,9 +8357,9 @@
|
|
|
8309
8357
|
CAR: 'Select what additional information you would like to include in the responsibility.',
|
|
8310
8358
|
CAS: 'Select what additional information you would like to include in the survey.',
|
|
8311
8359
|
LAI: 'Select what additional information you would like to include in the issue.',
|
|
8312
|
-
CAPR: 'Select what additional information you would like to include in the scope.'
|
|
8360
|
+
CAPR: 'Select what additional information you would like to include in the scope.',
|
|
8313
8361
|
};
|
|
8314
|
-
this.businessCycle = JSON.parse((_a = localStorage.getItem(
|
|
8362
|
+
this.businessCycle = JSON.parse((_a = localStorage.getItem('businessCycle')) !== null && _a !== void 0 ? _a : '{}');
|
|
8315
8363
|
this.moreOptionsList = {
|
|
8316
8364
|
AAR: [
|
|
8317
8365
|
{
|
|
@@ -8321,7 +8369,7 @@
|
|
|
8321
8369
|
tooltipMessage: 'Overseer enables you to designate persons to oversee the risk management process.',
|
|
8322
8370
|
checked: false,
|
|
8323
8371
|
hidden: false,
|
|
8324
|
-
code: 'OVERSEER'
|
|
8372
|
+
code: 'OVERSEER',
|
|
8325
8373
|
},
|
|
8326
8374
|
{
|
|
8327
8375
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/priority.svg',
|
|
@@ -8330,7 +8378,7 @@
|
|
|
8330
8378
|
tooltipMessage: 'This sets the priority level for the mitigation of each risk.',
|
|
8331
8379
|
checked: false,
|
|
8332
8380
|
hidden: false,
|
|
8333
|
-
code: 'MITIGATION'
|
|
8381
|
+
code: 'MITIGATION',
|
|
8334
8382
|
},
|
|
8335
8383
|
{
|
|
8336
8384
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/objectives.svg',
|
|
@@ -8339,7 +8387,7 @@
|
|
|
8339
8387
|
tooltipMessage: 'Specify the mitigation plan that can be undertaken to mitigate the risk.',
|
|
8340
8388
|
checked: false,
|
|
8341
8389
|
hidden: false,
|
|
8342
|
-
code: 'MITIGATION_PLAN'
|
|
8390
|
+
code: 'MITIGATION_PLAN',
|
|
8343
8391
|
},
|
|
8344
8392
|
{
|
|
8345
8393
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/oversight.svg',
|
|
@@ -8348,7 +8396,7 @@
|
|
|
8348
8396
|
tooltipMessage: 'This option lets you specify if this is a newly identified risk or it is a rapidly changing risk.',
|
|
8349
8397
|
checked: false,
|
|
8350
8398
|
hidden: false,
|
|
8351
|
-
code: 'RISK_LABEL'
|
|
8399
|
+
code: 'RISK_LABEL',
|
|
8352
8400
|
},
|
|
8353
8401
|
],
|
|
8354
8402
|
CAP: [
|
|
@@ -8359,7 +8407,7 @@
|
|
|
8359
8407
|
tooltipMessage: "Responsibility Centers represent your organizational and\n operational infrastructure. You can attribute a policy to one or more Responsibility Centers.\n Where you attribute a policy to a Responsibility Center, that policy will be shown as a policy\n that is required to be attested by all the persons associated with that Responsibility Center.\n The performance of a policy assigned to a Responsibility Center will also contribute to the\n overall performance of the Responsibility Center.",
|
|
8360
8408
|
checked: false,
|
|
8361
8409
|
hidden: false,
|
|
8362
|
-
code: 'RESPONSIBILITY_CENTER'
|
|
8410
|
+
code: 'RESPONSIBILITY_CENTER',
|
|
8363
8411
|
},
|
|
8364
8412
|
{
|
|
8365
8413
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/reviewer.svg',
|
|
@@ -8368,7 +8416,7 @@
|
|
|
8368
8416
|
tooltipMessage: "This options lets you specify a review lifecycle for the policy document.\n You can select a reviewer and determine how often the policy needs to be reviewed.",
|
|
8369
8417
|
checked: false,
|
|
8370
8418
|
hidden: true,
|
|
8371
|
-
code: 'REVIEWER'
|
|
8419
|
+
code: 'REVIEWER',
|
|
8372
8420
|
},
|
|
8373
8421
|
{
|
|
8374
8422
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/checkpoints.svg',
|
|
@@ -8377,7 +8425,7 @@
|
|
|
8377
8425
|
tooltipMessage: "Checkpoints enable you to confirm a person\u2019s understanding of the policy document.\n You can create questions based on the policy content and require that the reader of the policy\n answers these questions correctly before proceeding to complete the attestation.\n ",
|
|
8378
8426
|
checked: false,
|
|
8379
8427
|
hidden: true,
|
|
8380
|
-
code: 'CHECKPOINTS'
|
|
8428
|
+
code: 'CHECKPOINTS',
|
|
8381
8429
|
},
|
|
8382
8430
|
{
|
|
8383
8431
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/oversight.svg',
|
|
@@ -8386,7 +8434,7 @@
|
|
|
8386
8434
|
tooltipMessage: "Overseers are persons who oversee the policy.\n These persons will receive email notifications about the performance of the policy.\n As the person creating the policy, you will automatically receive email notifications about the performance of the policy.\n ",
|
|
8387
8435
|
checked: false,
|
|
8388
8436
|
hidden: false,
|
|
8389
|
-
code: 'OVERSEER'
|
|
8437
|
+
code: 'OVERSEER',
|
|
8390
8438
|
},
|
|
8391
8439
|
{
|
|
8392
8440
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/format-evidence.svg',
|
|
@@ -8395,8 +8443,35 @@
|
|
|
8395
8443
|
tooltipMessage: "Related documents are files that might be related to the policy. These could be documents which are related\n to the policy or are a subset of the policy that is being created.",
|
|
8396
8444
|
checked: false,
|
|
8397
8445
|
hidden: false,
|
|
8398
|
-
code: 'RELATED_DOCUMENTS'
|
|
8399
|
-
}
|
|
8446
|
+
code: 'RELATED_DOCUMENTS',
|
|
8447
|
+
},
|
|
8448
|
+
{
|
|
8449
|
+
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/associated-risks.svg',
|
|
8450
|
+
name: 'VERSION',
|
|
8451
|
+
tooltipTitle: 'Version',
|
|
8452
|
+
tooltipMessage: "Related documents are files that might be related to the policy. These could be documents which are related\n to the policy or are a subset of the policy that is being created.",
|
|
8453
|
+
checked: false,
|
|
8454
|
+
hidden: false,
|
|
8455
|
+
code: 'VERSION',
|
|
8456
|
+
},
|
|
8457
|
+
{
|
|
8458
|
+
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/link-items.svg',
|
|
8459
|
+
name: 'LINK PROGRAMS & RESPONSIBILITIES',
|
|
8460
|
+
tooltipTitle: 'LINK PROGRAMS & RESPONSIBILITIES',
|
|
8461
|
+
tooltipMessage: "Related documents are files that might be related to the policy. These could be documents which are related\n to the policy or are a subset of the policy that is being created.",
|
|
8462
|
+
checked: false,
|
|
8463
|
+
hidden: false,
|
|
8464
|
+
code: 'LINK_PROGRAM_RESPONSIBILITIES',
|
|
8465
|
+
},
|
|
8466
|
+
{
|
|
8467
|
+
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/assessments.svg',
|
|
8468
|
+
name: 'LINK ASSESSMENTS',
|
|
8469
|
+
tooltipTitle: 'LINK ASSESSMENTS',
|
|
8470
|
+
tooltipMessage: "Related documents are files that might be related to the policy. These could be documents which are related\n to the policy or are a subset of the policy that is being created.",
|
|
8471
|
+
checked: false,
|
|
8472
|
+
hidden: false,
|
|
8473
|
+
code: 'LINK_ASSESSMENTS',
|
|
8474
|
+
},
|
|
8400
8475
|
],
|
|
8401
8476
|
CAR: [
|
|
8402
8477
|
{
|
|
@@ -8455,7 +8530,7 @@
|
|
|
8455
8530
|
checked: false,
|
|
8456
8531
|
hidden: false,
|
|
8457
8532
|
isDisabled: false,
|
|
8458
|
-
disabledMessage: 'An assessment can be linked with a responsibility only after removing the associated checkpoints.'
|
|
8533
|
+
disabledMessage: 'An assessment can be linked with a responsibility only after removing the associated checkpoints.',
|
|
8459
8534
|
},
|
|
8460
8535
|
{
|
|
8461
8536
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/checkpoints.svg',
|
|
@@ -8467,7 +8542,7 @@
|
|
|
8467
8542
|
checked: false,
|
|
8468
8543
|
hidden: false,
|
|
8469
8544
|
isDisabled: false,
|
|
8470
|
-
disabledMessage: 'The checkpoints feature is replaced with the new & enhanced assessment functionality. Select the <strong>Assessments</strong> option below to create interactive outcome-based or self-assessment questionnaires.'
|
|
8545
|
+
disabledMessage: 'The checkpoints feature is replaced with the new & enhanced assessment functionality. Select the <strong>Assessments</strong> option below to create interactive outcome-based or self-assessment questionnaires.',
|
|
8471
8546
|
},
|
|
8472
8547
|
{
|
|
8473
8548
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/checkpoints.svg',
|
|
@@ -8478,7 +8553,7 @@
|
|
|
8478
8553
|
checked: false,
|
|
8479
8554
|
hidden: false,
|
|
8480
8555
|
isDisabled: false,
|
|
8481
|
-
disabledMessage: 'New Checkpoints can be linked with a responsibility only after removing the out-of-date version of the Checkpoints.'
|
|
8556
|
+
disabledMessage: 'New Checkpoints can be linked with a responsibility only after removing the out-of-date version of the Checkpoints.',
|
|
8482
8557
|
},
|
|
8483
8558
|
{
|
|
8484
8559
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/risks.svg',
|
|
@@ -8487,7 +8562,7 @@
|
|
|
8487
8562
|
tooltipMessage: 'You can specify the level of risk that the organization will be exposed to if the responsibility is not completed.',
|
|
8488
8563
|
checked: false,
|
|
8489
8564
|
hidden: false,
|
|
8490
|
-
code: 'RISK_CLASSIFICATION'
|
|
8565
|
+
code: 'RISK_CLASSIFICATION',
|
|
8491
8566
|
},
|
|
8492
8567
|
{
|
|
8493
8568
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/reviewer.svg',
|
|
@@ -8496,7 +8571,7 @@
|
|
|
8496
8571
|
tooltipMessage: 'A Reviewer is a person that is tasked with reviewing the completed responsibility.',
|
|
8497
8572
|
checked: false,
|
|
8498
8573
|
hidden: false,
|
|
8499
|
-
code: 'REVIEWER'
|
|
8574
|
+
code: 'REVIEWER',
|
|
8500
8575
|
},
|
|
8501
8576
|
{
|
|
8502
8577
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/oversight.svg',
|
|
@@ -8505,7 +8580,7 @@
|
|
|
8505
8580
|
tooltipMessage: "Oversight enables you to designate persons to oversee the responsibility.\n These persons will receive email notifications about the performance of the responsibility.<br>\n As the person creating the responsibility, you will automatically receive email notifications about the performance of the responsibility.",
|
|
8506
8581
|
checked: false,
|
|
8507
8582
|
hidden: false,
|
|
8508
|
-
code: 'OVERSEER'
|
|
8583
|
+
code: 'OVERSEER',
|
|
8509
8584
|
},
|
|
8510
8585
|
// {
|
|
8511
8586
|
// imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/audit.svg',
|
|
@@ -8525,7 +8600,7 @@
|
|
|
8525
8600
|
tooltipMessage: 'Select the test plan categories that you would like to add this responsibility to.',
|
|
8526
8601
|
checked: false,
|
|
8527
8602
|
hidden: false,
|
|
8528
|
-
code: 'ASSURANCE'
|
|
8603
|
+
code: 'ASSURANCE',
|
|
8529
8604
|
},
|
|
8530
8605
|
{
|
|
8531
8606
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/audit.svg',
|
|
@@ -8536,7 +8611,7 @@
|
|
|
8536
8611
|
hidden: false,
|
|
8537
8612
|
code: 'REQUIRES_AUDIT',
|
|
8538
8613
|
isDisabled: true,
|
|
8539
|
-
disabledMessage: 'This responsibility can be scheduled for an audit only after the Responsibility Center is selected.'
|
|
8614
|
+
disabledMessage: 'This responsibility can be scheduled for an audit only after the Responsibility Center is selected.',
|
|
8540
8615
|
},
|
|
8541
8616
|
// {
|
|
8542
8617
|
// imageUrl: 'https://cdn.v-comply.com/risk-mitigation-priority.svg',
|
|
@@ -8572,7 +8647,7 @@
|
|
|
8572
8647
|
tooltipMessage: '',
|
|
8573
8648
|
checked: false,
|
|
8574
8649
|
hidden: false,
|
|
8575
|
-
}
|
|
8650
|
+
},
|
|
8576
8651
|
],
|
|
8577
8652
|
LAI: [
|
|
8578
8653
|
{
|
|
@@ -8582,7 +8657,7 @@
|
|
|
8582
8657
|
tooltipMessage: 'Exception type lets you specify whether there is a design or an operational effectiveness problem.',
|
|
8583
8658
|
checked: false,
|
|
8584
8659
|
hidden: false,
|
|
8585
|
-
code: 'EXCEPTION_TYPE'
|
|
8660
|
+
code: 'EXCEPTION_TYPE',
|
|
8586
8661
|
},
|
|
8587
8662
|
// {
|
|
8588
8663
|
// imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/issue-type.svg',
|
|
@@ -8609,7 +8684,7 @@
|
|
|
8609
8684
|
tooltipMessage: 'Associated risks lets you specify the risks that are related to this issue.',
|
|
8610
8685
|
checked: false,
|
|
8611
8686
|
hidden: false,
|
|
8612
|
-
code: 'ASSOCIATED_RISKS'
|
|
8687
|
+
code: 'ASSOCIATED_RISKS',
|
|
8613
8688
|
},
|
|
8614
8689
|
{
|
|
8615
8690
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/oversight.svg',
|
|
@@ -8618,7 +8693,7 @@
|
|
|
8618
8693
|
tooltipMessage: 'Overseers are the persons responsible for overseeing an issue. These persons will receive email notifications about the issue status. As the person reporting this issue, you will automatically receive such email notifications.',
|
|
8619
8694
|
checked: false,
|
|
8620
8695
|
hidden: false,
|
|
8621
|
-
code: 'OVERSIGHT'
|
|
8696
|
+
code: 'OVERSIGHT',
|
|
8622
8697
|
},
|
|
8623
8698
|
{
|
|
8624
8699
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/format-evidence.svg',
|
|
@@ -8627,8 +8702,8 @@
|
|
|
8627
8702
|
tooltipMessage: 'You can require that the person resolving the issue uploads evidence to confirm',
|
|
8628
8703
|
checked: false,
|
|
8629
8704
|
hidden: false,
|
|
8630
|
-
code: 'EVIDENCE'
|
|
8631
|
-
}
|
|
8705
|
+
code: 'EVIDENCE',
|
|
8706
|
+
},
|
|
8632
8707
|
],
|
|
8633
8708
|
CAPR: [
|
|
8634
8709
|
{
|
|
@@ -8638,7 +8713,7 @@
|
|
|
8638
8713
|
tooltipMessage: "Role(s) let you specify the users that can be \u201COwners\u201D of a Program.",
|
|
8639
8714
|
checked: false,
|
|
8640
8715
|
hidden: false,
|
|
8641
|
-
code: 'ROLES'
|
|
8716
|
+
code: 'ROLES',
|
|
8642
8717
|
},
|
|
8643
8718
|
{
|
|
8644
8719
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/owner.svg',
|
|
@@ -8647,7 +8722,7 @@
|
|
|
8647
8722
|
tooltipMessage: "Owners are responsible for managing a Program. Only Owners can make changes to a Program and the responsibilities that are linked with the Program.<br>\n The <b>Key Admin</b> and all <b>Admin</b> users will be selected as the Owners of a Program by default.\n ",
|
|
8648
8723
|
checked: false,
|
|
8649
8724
|
hidden: false,
|
|
8650
|
-
code: 'OWNERS'
|
|
8725
|
+
code: 'OWNERS',
|
|
8651
8726
|
},
|
|
8652
8727
|
{
|
|
8653
8728
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/approval.svg',
|
|
@@ -8656,16 +8731,18 @@
|
|
|
8656
8731
|
tooltipMessage: "An Approver is responsible for approving a Program. Where an Approver is selected, the Program and all responsibilities linked with that Program will only commence once the Program has been approved.",
|
|
8657
8732
|
checked: false,
|
|
8658
8733
|
hidden: true,
|
|
8659
|
-
code: 'APPROVER'
|
|
8734
|
+
code: 'APPROVER',
|
|
8660
8735
|
},
|
|
8661
8736
|
{
|
|
8662
8737
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/recurring.svg',
|
|
8663
8738
|
name: 'Program Duration',
|
|
8664
8739
|
tooltipTitle: 'Program Duration',
|
|
8665
|
-
tooltipMessage: 'Program Duration refers to the duration of the Program. A Program can occur in perpetuity, or it can occur until the end of the current business cycle that has been specified in ' +
|
|
8740
|
+
tooltipMessage: 'Program Duration refers to the duration of the Program. A Program can occur in perpetuity, or it can occur until the end of the current business cycle that has been specified in ' +
|
|
8741
|
+
((_c = (_b = this.businessCycle) === null || _b === void 0 ? void 0 : _b.selectedCycle) === null || _c === void 0 ? void 0 : _c.business_cycle) +
|
|
8742
|
+
'. All responsibilities linked with that Program will also have the same Program Duration.',
|
|
8666
8743
|
checked: false,
|
|
8667
8744
|
hidden: true,
|
|
8668
|
-
code: 'PROGRAM_FREQUENCY'
|
|
8745
|
+
code: 'PROGRAM_FREQUENCY',
|
|
8669
8746
|
},
|
|
8670
8747
|
{
|
|
8671
8748
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/lock-scope.svg',
|
|
@@ -8674,7 +8751,7 @@
|
|
|
8674
8751
|
tooltipMessage: "If the Program Scope is locked, neither the Program nor the responsibilities linked with the Program can be edited once the Program begins. In order to edit the Program or the linked responsibilities, the Program details will need to be edited.",
|
|
8675
8752
|
checked: false,
|
|
8676
8753
|
hidden: true,
|
|
8677
|
-
code: 'SCOPE_CHANGES'
|
|
8754
|
+
code: 'SCOPE_CHANGES',
|
|
8678
8755
|
},
|
|
8679
8756
|
{
|
|
8680
8757
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/responsibility-center.svg',
|
|
@@ -8683,7 +8760,7 @@
|
|
|
8683
8760
|
tooltipMessage: "Responsibility Centers represent your organizational and operational infrastructure. Where Responsibility Centers are selected when creating a Program, only those Responsibilities Centers will be available for selection when creating a responsibility linked with the Program.",
|
|
8684
8761
|
checked: false,
|
|
8685
8762
|
hidden: true,
|
|
8686
|
-
code: 'RC'
|
|
8763
|
+
code: 'RC',
|
|
8687
8764
|
},
|
|
8688
8765
|
{
|
|
8689
8766
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/who.svg',
|
|
@@ -8692,7 +8769,7 @@
|
|
|
8692
8769
|
tooltipMessage: "Assignees are required to complete the responsibilities that have been assigned to them. Where Assignees are selected when creating a Program, only those Assignees will be available for selection when creating a responsibility linked with the Program.",
|
|
8693
8770
|
checked: false,
|
|
8694
8771
|
hidden: true,
|
|
8695
|
-
code: 'ASSIGNEES'
|
|
8772
|
+
code: 'ASSIGNEES',
|
|
8696
8773
|
},
|
|
8697
8774
|
{
|
|
8698
8775
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/reviewer.svg',
|
|
@@ -8701,7 +8778,7 @@
|
|
|
8701
8778
|
tooltipMessage: "Reviewers are required to review responsibilities after they have been completed. Where Reviewers are selected when creating a Program, only those Reviewers will be available for selection when creating a responsibility linked with the Program.",
|
|
8702
8779
|
checked: false,
|
|
8703
8780
|
hidden: true,
|
|
8704
|
-
code: 'REVIEWER'
|
|
8781
|
+
code: 'REVIEWER',
|
|
8705
8782
|
},
|
|
8706
8783
|
{
|
|
8707
8784
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/oversight.svg',
|
|
@@ -8710,7 +8787,7 @@
|
|
|
8710
8787
|
tooltipMessage: 'Overseers receive updates when a responsibility is completed, completed with delay or not completed. Where Overseers are selected when creating a Program, only those Overseers will be available for selection when creating a responsibility linked with the Program.',
|
|
8711
8788
|
checked: false,
|
|
8712
8789
|
hidden: true,
|
|
8713
|
-
code: 'OVERSEER'
|
|
8790
|
+
code: 'OVERSEER',
|
|
8714
8791
|
},
|
|
8715
8792
|
{
|
|
8716
8793
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/assessments.svg',
|
|
@@ -8721,7 +8798,7 @@
|
|
|
8721
8798
|
checked: false,
|
|
8722
8799
|
hidden: true,
|
|
8723
8800
|
isDisabled: false,
|
|
8724
|
-
disabledMessage: 'An assessment can be linked with a responsibility only after removing the associated checkpoints.'
|
|
8801
|
+
disabledMessage: 'An assessment can be linked with a responsibility only after removing the associated checkpoints.',
|
|
8725
8802
|
},
|
|
8726
8803
|
{
|
|
8727
8804
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/format-evidence.svg',
|
|
@@ -8741,7 +8818,7 @@
|
|
|
8741
8818
|
checked: false,
|
|
8742
8819
|
hidden: false,
|
|
8743
8820
|
},
|
|
8744
|
-
]
|
|
8821
|
+
],
|
|
8745
8822
|
};
|
|
8746
8823
|
}
|
|
8747
8824
|
Object.defineProperty(MoreOptionComponent.prototype, "getOrganizationDetails", {
|
|
@@ -8755,10 +8832,10 @@
|
|
|
8755
8832
|
enumerable: false,
|
|
8756
8833
|
configurable: true
|
|
8757
8834
|
});
|
|
8758
|
-
;
|
|
8759
8835
|
MoreOptionComponent.prototype.ngOnChanges = function (changes) {
|
|
8760
8836
|
var _a, _b;
|
|
8761
|
-
if (((_a = changes === null || changes === void 0 ? void 0 : changes.isProgramSelected) === null || _a === void 0 ? void 0 : _a.currentValue) !==
|
|
8837
|
+
if (((_a = changes === null || changes === void 0 ? void 0 : changes.isProgramSelected) === null || _a === void 0 ? void 0 : _a.currentValue) !==
|
|
8838
|
+
((_b = changes === null || changes === void 0 ? void 0 : changes.isProgramSelected) === null || _b === void 0 ? void 0 : _b.previousValue)) {
|
|
8762
8839
|
this.isProgramSelected = changes.isProgramSelected.currentValue;
|
|
8763
8840
|
}
|
|
8764
8841
|
if (!this.isRCSelected) {
|
|
@@ -8786,10 +8863,14 @@
|
|
|
8786
8863
|
var _a, _b, _c, _d;
|
|
8787
8864
|
this.featureflagrole = (_a = this.allowedFeature) === null || _a === void 0 ? void 0 : _a.isFeatureEnabled('ff_role_improvements');
|
|
8788
8865
|
this.ff_rc_listing = this.allowedFeature.isFeatureEnabled('ff_rc_listing');
|
|
8789
|
-
this.ff_rc_listing
|
|
8866
|
+
this.ff_rc_listing
|
|
8867
|
+
? (this.permissionText = 'Permissions')
|
|
8868
|
+
: (this.permissionText = 'Permission Group(S)');
|
|
8790
8869
|
this.moreOptionsList.CAPR[0].name = this.permissionText;
|
|
8791
8870
|
this.moreOptionsList.CAPR[0].tooltipTitle = this.permissionText;
|
|
8792
|
-
this.moreOptionsList.CAPR[1].tooltipMessage = this.featureflagrole
|
|
8871
|
+
this.moreOptionsList.CAPR[1].tooltipMessage = this.featureflagrole
|
|
8872
|
+
? "Owners are responsible for managing a Program. Only Owners can make changes to a Program and the responsibilities that are linked with the Program.<br>\n The <b>Key Power User </b> and all <b>Power Users</b> will be selected as the Owners of a Program by default.\n "
|
|
8873
|
+
: "Owners are responsible for managing a Program. Only Owners can make changes to a Program and the responsibilities that are linked with the Program.<br>\n The <b>Key Admin</b> and all <b>Admin</b> users will be selected as the Owners of a Program by default.\n ";
|
|
8793
8874
|
if ((_b = this.allowedFeature) === null || _b === void 0 ? void 0 : _b.isFeatureEnabled('ff_program_simplify')) {
|
|
8794
8875
|
this.moreOptionsList.CAPR[0].tooltipMessage = this.permissionText + " let you specify the users that can be \u201COwners\u201D of a Program.";
|
|
8795
8876
|
}
|
|
@@ -8797,29 +8878,34 @@
|
|
|
8797
8878
|
this.moreOptionsList.CAPR[0].tooltipMessage = this.permissionText + " let you specify the users that can be \u201COwners\u201D and \u201CApprovers\u201D of a Program.";
|
|
8798
8879
|
}
|
|
8799
8880
|
var index = this.moreOptionsList.CAR.findIndex(function (ele) { return ele.code === 'CHECKPOINTS'; });
|
|
8800
|
-
this.moreOptionsList.CAR[index].hidden =
|
|
8881
|
+
this.moreOptionsList.CAR[index].hidden =
|
|
8882
|
+
this.isEditMode === false ? true : false;
|
|
8801
8883
|
var ProgramIndex = this.moreOptionsList.CAR.findIndex(function (ele) { return ele.code === 'PROGRAM'; });
|
|
8802
8884
|
if (ProgramIndex > -1) {
|
|
8803
8885
|
this.moreOptionsList.CAR[ProgramIndex].isDisabled = this.isEditMode;
|
|
8804
8886
|
}
|
|
8805
|
-
this.programSimplifyFlag =
|
|
8887
|
+
this.programSimplifyFlag =
|
|
8888
|
+
(_d = (_c = this.allowedFeature) === null || _c === void 0 ? void 0 : _c.isFeatureEnabled('ff_program_simplify')) !== null && _d !== void 0 ? _d : true;
|
|
8806
8889
|
};
|
|
8807
8890
|
MoreOptionComponent.prototype.selectMoreOption = function (event, index) {
|
|
8808
|
-
console.log(
|
|
8809
|
-
if (this.currentWorkflow === 'CAR' &&
|
|
8891
|
+
console.log('event ==>', event, this.currentWorkflow, this.moreOptionsList[this.currentWorkflow][index]);
|
|
8892
|
+
if (this.currentWorkflow === 'CAR' &&
|
|
8893
|
+
event.code === 'CHECKPOINTS_NEW' &&
|
|
8894
|
+
this.moreOptionsList[this.currentWorkflow][index].checked) {
|
|
8810
8895
|
event['checkpoint_new'] = true;
|
|
8811
8896
|
this.selectedOption.emit(event);
|
|
8812
8897
|
}
|
|
8813
8898
|
else {
|
|
8814
8899
|
event['checkpoint_new'] = false;
|
|
8815
|
-
this.moreOptionsList[this.currentWorkflow][index].checked =
|
|
8816
|
-
|
|
8900
|
+
this.moreOptionsList[this.currentWorkflow][index].checked =
|
|
8901
|
+
!event.checked;
|
|
8902
|
+
console.log('this.moreOptionsList[this.currentWorkflow][index] ===>', this.moreOptionsList[this.currentWorkflow][index], event.checked);
|
|
8817
8903
|
this.selectedOption.emit(event);
|
|
8818
8904
|
}
|
|
8819
8905
|
};
|
|
8820
8906
|
MoreOptionComponent.prototype.populate = function (evt) {
|
|
8821
8907
|
var _this = this;
|
|
8822
|
-
console.log(
|
|
8908
|
+
console.log('event ===>', evt);
|
|
8823
8909
|
if (this.currentWorkflow) {
|
|
8824
8910
|
this.moreOptionsList[this.currentWorkflow].forEach(function (element) {
|
|
8825
8911
|
if (evt.includes(element.code)) {
|
|
@@ -8828,7 +8914,7 @@
|
|
|
8828
8914
|
else {
|
|
8829
8915
|
element.checked = false;
|
|
8830
8916
|
}
|
|
8831
|
-
if (evt.includes(
|
|
8917
|
+
if (evt.includes('CHECKPOINTS_NEW')) {
|
|
8832
8918
|
if (element.code === 'CHECKPOINTS') {
|
|
8833
8919
|
element.isDisabled = true;
|
|
8834
8920
|
}
|
|
@@ -8836,7 +8922,7 @@
|
|
|
8836
8922
|
element.isDisabled = true;
|
|
8837
8923
|
}
|
|
8838
8924
|
}
|
|
8839
|
-
if (evt.includes(
|
|
8925
|
+
if (evt.includes('ASSESSMENT')) {
|
|
8840
8926
|
if (element.code === 'CHECKPOINTS_NEW') {
|
|
8841
8927
|
element.isDisabled = true;
|
|
8842
8928
|
}
|
|
@@ -8844,7 +8930,7 @@
|
|
|
8844
8930
|
element.isDisabled = false;
|
|
8845
8931
|
}
|
|
8846
8932
|
}
|
|
8847
|
-
if (evt.includes(
|
|
8933
|
+
if (evt.includes('CHECKPOINTS')) {
|
|
8848
8934
|
if (element.code === 'CHECKPOINTS_NEW') {
|
|
8849
8935
|
element.isDisabled = true;
|
|
8850
8936
|
}
|
|
@@ -8852,7 +8938,7 @@
|
|
|
8852
8938
|
element.isDisabled = true;
|
|
8853
8939
|
}
|
|
8854
8940
|
}
|
|
8855
|
-
if (evt.includes(
|
|
8941
|
+
if (evt.includes('PROGRAM')) {
|
|
8856
8942
|
if (element.code === 'PROGRAM' && _this.isProgramSelected) {
|
|
8857
8943
|
element.isDisabled = true;
|
|
8858
8944
|
}
|
|
@@ -8881,8 +8967,18 @@
|
|
|
8881
8967
|
};
|
|
8882
8968
|
MoreOptionComponent.prototype.updateProgramMoreOptions = function () {
|
|
8883
8969
|
var _a, _b, _c, _d, _e;
|
|
8884
|
-
var code = [
|
|
8885
|
-
|
|
8970
|
+
var code = [
|
|
8971
|
+
'PROGRAM_FREQUENCY',
|
|
8972
|
+
'SCOPE_CHANGES',
|
|
8973
|
+
'RC',
|
|
8974
|
+
'ASSIGNEES',
|
|
8975
|
+
'REVIEWER',
|
|
8976
|
+
'OVERSEER',
|
|
8977
|
+
'ASSESSMENT',
|
|
8978
|
+
'FORMATE_EVIDENCE',
|
|
8979
|
+
];
|
|
8980
|
+
if (((_a = this.orgDetails) === null || _a === void 0 ? void 0 : _a.hasProgramFullPermission) &&
|
|
8981
|
+
this.allowedFeature.isFeatureEnabled('ff_program_simplify')) {
|
|
8886
8982
|
(_c = (_b = this.moreOptionsList) === null || _b === void 0 ? void 0 : _b.CAPR) === null || _c === void 0 ? void 0 : _c.forEach(function (option) {
|
|
8887
8983
|
if (code === null || code === void 0 ? void 0 : code.includes(option.code)) {
|
|
8888
8984
|
option.hidden = false;
|
|
@@ -8903,7 +8999,7 @@
|
|
|
8903
8999
|
MoreOptionComponent.decorators = [
|
|
8904
9000
|
{ type: i0.Component, args: [{
|
|
8905
9001
|
selector: 'app-more-option',
|
|
8906
|
-
template: "<!-- <p>more-option works!</p> -->\r\n<div class=\"more-option\">\r\n
|
|
9002
|
+
template: "<!-- <p>more-option works!</p> -->\r\n<div class=\"more-option\">\r\n <div class=\"message-container\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/add-risk-more-option.svg\"\r\n alt=\"\"\r\n />\r\n <p *ngIf=\"currentWorkflow\">{{ placeholderTexts[currentWorkflow] }}</p>\r\n </div>\r\n <div class=\"more-options\">\r\n <ul>\r\n <!-- <div class=\"more-options-heading\" *ngIf=\"currentWorkflow ==='CAPR'\">PROGRAM SCOPE OPTIONS</div> -->\r\n <ng-container\r\n *ngFor=\"let data of moreOptionsList[currentWorkflow]; let i = index\"\r\n >\r\n <!-- <li *ngIf=\"!data.hidden\" [appTooltip]=\"data.isDisabled && !isRcSelected? 'This responsibility can be scheduled for an audit only after the Responsibility Center is selected.' : ''\" placement=\"right\" delay=\"0\" [tooltipMandatory]=\"data.isDisabled && !isRcSelected\">\r\n <button [class.active]=\"data.checked\" [disabled]=\"data.code === 'RC' && openedFrom === 'RISK_TREATMENT' && currentWorkflow === 'CAR' || (data.isDisabled && !isRCSelected)\" [class.disabled]=\"data.isDisabled && !isRCSelected\" (click)=\"data.checked = !data.checked; selectMoreOption(data)\"> -->\r\n\r\n <li\r\n *ngIf=\"!data.hidden\"\r\n [appTooltip]=\"\r\n data.isDisabled ||\r\n (data.code === 'RC' && !isRcSelected && data.isDisabled)\r\n ? data?.disabledMessage\r\n : ''\r\n \"\r\n placement=\"right\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"data.isDisabled\"\r\n id=\"listdata\"\r\n >\r\n <button\r\n [class.active]=\"data.checked\"\r\n [disabled]=\"\r\n (data.code === 'RC' &&\r\n openedFrom === 'RISK_TREATMENT' &&\r\n currentWorkflow === 'CAR') ||\r\n data.isDisabled ||\r\n (data.isDisabled && !isRCSelected)\r\n \"\r\n (click)=\"selectMoreOption(data, i)\"\r\n >\r\n <span *ngIf=\"!data.checked\" class=\"more-icon\">\r\n <img [src]=\"data.imageUrl\" alt=\"\" />\r\n </span>\r\n <svg\r\n *ngIf=\"data.checked\"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n <span class=\"value\" [innerHTML]=\"data?.name\"></span>\r\n <!-- <span *ngIf=\"data.code ==='CHECKPOINTS_NEW'\" class=\"checkpoint-version\"> V2.0</span> -->\r\n </button>\r\n <span\r\n class=\"icon\"\r\n *ngIf=\"data.tooltipMessage !== ''\"\r\n libPopoverHover\r\n (mouseover)=\"dataTooltip.popover()\"\r\n (mouseleave)=\"dataTooltip.closePopover()\"\r\n placement=\"right\"\r\n ><i class=\"icons\"></i></span\r\n >\r\n <popover-hover #dataTooltip>\r\n <div class=\"vx-info-card\">\r\n <div\r\n class=\"vx-info-card-head\"\r\n [innerHTML]=\"data.tooltipTitle\"\r\n ></div>\r\n <div\r\n class=\"vx-info-card-body\"\r\n [innerHTML]=\"data.tooltipMessage\"\r\n ></div>\r\n </div>\r\n </popover-hover>\r\n </li>\r\n <div\r\n class=\"more-options-heading vx-mt-2\"\r\n *ngIf=\"currentWorkflow === 'CAPR' && i === 2\"\r\n >\r\n PROGRAM SCOPE OPTIONS\r\n </div>\r\n </ng-container>\r\n <!--\r\n <li>\r\n <button>\r\n <span class=\"more-icon\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/associated-risks.svg\" alt=\"\" />\r\n </span>\r\n <span class=\"value\">VERSION</span>\r\n </button>\r\n <span class=\"icon\"><i class=\"icons\"></i></span>\r\n <popover-hover #dataTooltip>\r\n <div class=\"vx-info-card\">\r\n <div class=\"vx-info-card-head\">Version</div>\r\n <div class=\"vx-info-card-body\">Version text here</div>\r\n </div>\r\n </popover-hover>\r\n </li>\r\n <li>\r\n <button>\r\n <span class=\"more-icon\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/link-items.svg\" alt=\"\" />\r\n </span>\r\n <span class=\"value\">LINK PROGRAMS & RESPONSIBILITIES</span>\r\n </button>\r\n <span class=\"icon\"><i class=\"icons\"></i></span>\r\n <popover-hover #dataTooltip>\r\n <div class=\"vx-info-card\">\r\n <div class=\"vx-info-card-head\">Link Programs & Responsibilities</div>\r\n <div class=\"vx-info-card-body\">Link Programs & Responsibilities text here</div>\r\n </div>\r\n </popover-hover>\r\n </li>\r\n <li>\r\n <button>\r\n <span class=\"more-icon\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/assessments.svg\" alt=\"\" />\r\n </span>\r\n <span class=\"value\">LINK ASSESSMENTS</span>\r\n </button>\r\n <span class=\"icon\"><i class=\"icons\"></i></span>\r\n <popover-hover #dataTooltip>\r\n <div class=\"vx-info-card\">\r\n <div class=\"vx-info-card-head\">Link Assessment</div>\r\n <div class=\"vx-info-card-body\">Link Assessment text here</div>\r\n </div>\r\n </popover-hover>\r\n </li> -->\r\n </ul>\r\n </div>\r\n</div>\r\n",
|
|
8907
9003
|
styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";::ng-deep .more-option{align-items:center;position:relative;padding:0;display:block;height:auto}::ng-deep .more-option .message-container{text-align:center;position:static;padding:0 0 20px;top:0;left:0;right:0}::ng-deep .more-option .message-container img{width:163px;margin-bottom:13px;display:inline-block}@media screen and (max-height: 900px){::ng-deep .more-option .message-container img{width:120px;margin-bottom:8px}}::ng-deep .more-option .message-container p{font-size:12px;font-weight:300;font-style:italic;color:#707070;margin:0;padding:0;line-height:18px}::ng-deep .more-option .more-options{display:block;background:#ffffff;margin-left:-38px;padding:20px 0 20px 16px;position:relative;width:calc(100% + 60px);border-radius:16px 0 0 16px}::ng-deep .more-option .more-options:before{content:\"\";position:absolute;left:0px;top:-35px;width:16px;height:41px;border-right:26px solid #FFFFFF;border-bottom:8px solid transparent;border-bottom-right-radius:46px}::ng-deep .more-option .more-options:after{content:\"\";position:absolute;left:0px;bottom:-35px;width:16px;height:41px;border-right:26px solid #FFFFFF;border-top:8px solid transparent;border-top-right-radius:46px}@media screen and (max-width: 2550px){::ng-deep .more-option .more-options{margin-top:0}}@media screen and (max-width: 1920px){::ng-deep .more-option .more-options{margin-top:0}}@media screen and (max-width: 1600px){::ng-deep .more-option .more-options{margin-top:0}}@media screen and (max-width: 1440px){::ng-deep .more-option .more-options{margin-top:0}}@media screen and (max-width: 1366px){::ng-deep .more-option .more-options{margin-top:0}}::ng-deep .more-option .more-options ul{padding:0 32px 0 0;margin:0;overflow-y:auto}::ng-deep .more-option .more-options ul::-webkit-scrollbar{width:0;background-color:transparent}::ng-deep .more-option .more-options ul::-webkit-scrollbar-thumb{border-radius:1px;background-color:#dbdbdb}::ng-deep .more-option .more-options ul .more-options-heading{color:#747576;font-size:11px;font-weight:500;text-transform:uppercase;margin-bottom:8px}::ng-deep .more-option .more-options ul li{position:relative;list-style:none;display:flex;align-items:center}::ng-deep .more-option .more-options ul li button{display:flex;outline:none;background:transparent;cursor:pointer;align-items:center;justify-content:flex-start;margin:0;width:100%;border:none;padding:4px 11px 4px 4px;border:1px solid #F1F1F1;border-radius:4px}::ng-deep .more-option .more-options ul li button.active{background:#FBFBFB}::ng-deep .more-option .more-options ul li button span.more-icon{height:32px;width:32px;display:flex;margin-right:12px;align-items:center;justify-content:center}::ng-deep .more-option .more-options ul li button img{width:100%}::ng-deep .more-option .more-options ul li button .checkIcon{width:24px;height:24px;background:#ffffff;border-radius:50%;stroke-width:4;stroke:#34aa44;stroke-miterlimit:10;box-shadow:inset 0 0 #34aa44;animation:fillCheck .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;margin:4px 16px 4px 4px}::ng-deep .more-option .more-options ul li button .checkIcon__circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#34aa44;fill:none;animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards}::ng-deep .more-option .more-options ul li button .checkIcon__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;animation:strokeCheck .3s cubic-bezier(.65,0,.45,1) .8s forwards}::ng-deep .more-option .more-options ul li button span.value{line-height:18px;color:#161b2f;font-size:11px;font-weight:500;text-transform:uppercase;width:calc(100% - 72px);text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:inline-block;text-align:left}::ng-deep .more-option .more-options ul li button span.value i.depreciation-icon{color:#e4b700}::ng-deep .more-option .more-options ul li button .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 .more-option .more-options ul li button:disabled{background:#f8f8f8;pointer-events:none}::ng-deep .more-option .more-options ul li button:disabled span{opacity:.3}::ng-deep .more-option .more-options ul li+li{margin-top:8px}::ng-deep .more-option .more-options ul li .vx-info-card{width:280px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#ffffff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;position:static;display:block}::ng-deep .more-option .more-options ul li .vx-info-card-head{font-size:13px;border-bottom:1px solid #dcdcdc;padding:8px 12px;font-weight:500;text-transform:none;color:#161b2f}::ng-deep .more-option .more-options ul li .vx-info-card-body{font-size:11px;padding:8px 12px;margin:0;font-weight:400;text-transform:none;color:#747576}::ng-deep .more-option .more-options ul li span.icon{color:#1e5dd3;font-size:12px;line-height:12px;cursor:pointer;position:absolute;top:calc(50% - 6px);right:12px;height:12px;width:12px}@keyframes strokeCheck{to{stroke-dashoffset:0}}@keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}@keyframes animate{0%{transform:translate(281px)}to{transform:translate(0)}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}\n"]
|
|
8908
9004
|
},] }
|
|
8909
9005
|
];
|
|
@@ -36240,6 +36336,597 @@
|
|
|
36240
36336
|
];
|
|
36241
36337
|
PolicyAccessComponent.ctorParameters = function () { return []; };
|
|
36242
36338
|
|
|
36339
|
+
var RestApiService = /** @class */ (function () {
|
|
36340
|
+
function RestApiService(httpClient, authService, config) {
|
|
36341
|
+
this.httpClient = httpClient;
|
|
36342
|
+
this.authService = authService;
|
|
36343
|
+
if (config) {
|
|
36344
|
+
this.env = config.envConfig;
|
|
36345
|
+
}
|
|
36346
|
+
}
|
|
36347
|
+
/**
|
|
36348
|
+
* Interceptor where will intercept any thing has to be intercept in header like token or business cycle
|
|
36349
|
+
* anything related to common which needs to pass in each api
|
|
36350
|
+
*/
|
|
36351
|
+
RestApiService.prototype.intercept = function (request, next) {
|
|
36352
|
+
return next.handle(request);
|
|
36353
|
+
};
|
|
36354
|
+
/**
|
|
36355
|
+
* This Handler contains REST_URL which is used to host the server.
|
|
36356
|
+
*/
|
|
36357
|
+
/**
|
|
36358
|
+
* This displays the error message when the server is not taking the data.
|
|
36359
|
+
* There are Two types errors.
|
|
36360
|
+
* Client-side errors.
|
|
36361
|
+
* Server-side errors
|
|
36362
|
+
*/
|
|
36363
|
+
RestApiService.prototype.handleError = function (error) {
|
|
36364
|
+
var errorMessage = 'Unknown error!';
|
|
36365
|
+
if (error.error instanceof ErrorEvent) {
|
|
36366
|
+
// Client-side errors
|
|
36367
|
+
errorMessage = "Error: " + error.error.message;
|
|
36368
|
+
}
|
|
36369
|
+
else {
|
|
36370
|
+
// Server-side errors
|
|
36371
|
+
if (error.status === 401) {
|
|
36372
|
+
// auto logout if 401 response returned from api
|
|
36373
|
+
localStorage.clear();
|
|
36374
|
+
location.reload();
|
|
36375
|
+
}
|
|
36376
|
+
errorMessage = "Error Code: " + error.status + "\nMessage: " + error.message;
|
|
36377
|
+
}
|
|
36378
|
+
return rxjs.throwError(errorMessage);
|
|
36379
|
+
};
|
|
36380
|
+
//business cycle code added
|
|
36381
|
+
RestApiService.prototype.getBusinessCycle = function () {
|
|
36382
|
+
// let businessCycle = JSON.parse({"userId":15,"selectedCycle":{"start_date":"01-01-2022","end_date":"31-12-2022","selected":true,"business_cycle":"01 Jan 2022 - 31 Dec 2022","future_cycle":false,"selected_cycle_arr":["01-01-2022-31-12-2022"]}} ?? '');
|
|
36383
|
+
var currentBusinessCycle = {
|
|
36384
|
+
selected_cycle: "01-01-2022-31-12-2022",
|
|
36385
|
+
start_date: "01-01-2022",
|
|
36386
|
+
end_date: "31-12-2022",
|
|
36387
|
+
selected_cycle_arr: ["01-01-2022-31-12-2022"],
|
|
36388
|
+
};
|
|
36389
|
+
return currentBusinessCycle;
|
|
36390
|
+
};
|
|
36391
|
+
RestApiService.prototype.apiDelegate = function (req) {
|
|
36392
|
+
var httpOptions = {};
|
|
36393
|
+
var headers = new i1.HttpHeaders();
|
|
36394
|
+
httpOptions.headers = headers.append('token', this.authService.getAuthorizationToken());
|
|
36395
|
+
if (req === null || req === void 0 ? void 0 : req.params) {
|
|
36396
|
+
httpOptions.params = req.params;
|
|
36397
|
+
}
|
|
36398
|
+
if (req === null || req === void 0 ? void 0 : req.payloadObject) {
|
|
36399
|
+
httpOptions.headers = httpOptions.headers.append('payload-object', JSON.stringify(req.payloadObject));
|
|
36400
|
+
}
|
|
36401
|
+
if (req === null || req === void 0 ? void 0 : req.businessCycle) {
|
|
36402
|
+
httpOptions.headers = httpOptions.headers.append('x-business-cycle', JSON.stringify(req.businessCycle));
|
|
36403
|
+
}
|
|
36404
|
+
var url = this.env.baseEndpoint;
|
|
36405
|
+
console.log("=============>", this.env, req);
|
|
36406
|
+
switch (req.method.toLowerCase()) {
|
|
36407
|
+
case 'get':
|
|
36408
|
+
return this.httpClient.get(url + req.action, httpOptions).pipe(operators.retry(2), operators.catchError(this.handleError));
|
|
36409
|
+
case 'post':
|
|
36410
|
+
return this.httpClient.post(url + req.action, req.data, httpOptions);
|
|
36411
|
+
case 'put':
|
|
36412
|
+
return this.httpClient.put(url + req.action, req.data).pipe(operators.retry(2), operators.catchError(this.handleError));
|
|
36413
|
+
case 'patch':
|
|
36414
|
+
return this.httpClient.patch(url + req.action, req.data).pipe(operators.retry(2), operators.catchError(this.handleError));
|
|
36415
|
+
case 'delete':
|
|
36416
|
+
return this.httpClient.delete(url + req.action, httpOptions).pipe(operators.retry(2), operators.catchError(this.handleError));
|
|
36417
|
+
default:
|
|
36418
|
+
return rxjs.of('invalid req');
|
|
36419
|
+
}
|
|
36420
|
+
};
|
|
36421
|
+
// don't use this
|
|
36422
|
+
RestApiService.prototype.apiTestDelegate = function (req) {
|
|
36423
|
+
var httpOptions = {};
|
|
36424
|
+
var headers = new i1.HttpHeaders();
|
|
36425
|
+
httpOptions.headers = headers.append('token', this.authService.getAuthorizationToken());
|
|
36426
|
+
if (req === null || req === void 0 ? void 0 : req.params) {
|
|
36427
|
+
httpOptions.params = req.params;
|
|
36428
|
+
}
|
|
36429
|
+
if (req === null || req === void 0 ? void 0 : req.payloadObject) {
|
|
36430
|
+
httpOptions.headers = httpOptions.headers.append('payload-object', JSON.stringify(req.payloadObject));
|
|
36431
|
+
}
|
|
36432
|
+
if (req === null || req === void 0 ? void 0 : req.businessCycle) {
|
|
36433
|
+
httpOptions.headers = httpOptions.headers.append('x-business-cycle', JSON.stringify(req.businessCycle));
|
|
36434
|
+
}
|
|
36435
|
+
var url = 'http://localhost:3000/dev';
|
|
36436
|
+
switch (req.method.toLowerCase()) {
|
|
36437
|
+
case 'get':
|
|
36438
|
+
return this.httpClient.get(url + req.action, httpOptions).pipe(operators.retry(2), operators.catchError(this.handleError));
|
|
36439
|
+
case 'post':
|
|
36440
|
+
return this.httpClient.post(url + req.action, req.data, httpOptions);
|
|
36441
|
+
case 'put':
|
|
36442
|
+
return this.httpClient.put(url + req.action, req.data).pipe(operators.retry(2), operators.catchError(this.handleError));
|
|
36443
|
+
case 'patch':
|
|
36444
|
+
return this.httpClient.patch(url + req.action, req.data).pipe(operators.retry(2), operators.catchError(this.handleError));
|
|
36445
|
+
case 'delete':
|
|
36446
|
+
return this.httpClient.delete(url + req.action, httpOptions).pipe(operators.retry(2), operators.catchError(this.handleError));
|
|
36447
|
+
default:
|
|
36448
|
+
return rxjs.of('invalid req');
|
|
36449
|
+
}
|
|
36450
|
+
};
|
|
36451
|
+
return RestApiService;
|
|
36452
|
+
}());
|
|
36453
|
+
RestApiService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function RestApiService_Factory() { return new RestApiService(i0__namespace.ɵɵinject(i1__namespace.HttpClient), i0__namespace.ɵɵinject(AuthService), i0__namespace.ɵɵinject(Configurations, 8)); }, token: RestApiService, providedIn: "root" });
|
|
36454
|
+
RestApiService.decorators = [
|
|
36455
|
+
{ type: i0.Injectable, args: [{
|
|
36456
|
+
providedIn: 'root'
|
|
36457
|
+
},] }
|
|
36458
|
+
];
|
|
36459
|
+
RestApiService.ctorParameters = function () { return [
|
|
36460
|
+
{ type: i1.HttpClient },
|
|
36461
|
+
{ type: AuthService },
|
|
36462
|
+
{ type: Configurations, decorators: [{ type: i0.Optional }] }
|
|
36463
|
+
]; };
|
|
36464
|
+
|
|
36465
|
+
var LinkProgramComponent = /** @class */ (function () {
|
|
36466
|
+
//program
|
|
36467
|
+
function LinkProgramComponent(restApiService, snackbar) {
|
|
36468
|
+
this.restApiService = restApiService;
|
|
36469
|
+
this.snackbar = snackbar;
|
|
36470
|
+
this.animation = false;
|
|
36471
|
+
this.subCategoriesList = {
|
|
36472
|
+
from: 1,
|
|
36473
|
+
to: 0,
|
|
36474
|
+
currentPage: 1,
|
|
36475
|
+
totalPage: 0,
|
|
36476
|
+
totalRecords: 0,
|
|
36477
|
+
data: [],
|
|
36478
|
+
};
|
|
36479
|
+
this.responsibilitiesList = {
|
|
36480
|
+
from: 1,
|
|
36481
|
+
to: 0,
|
|
36482
|
+
currentPage: 1,
|
|
36483
|
+
totalPage: 0,
|
|
36484
|
+
totalRecords: 0,
|
|
36485
|
+
data: [],
|
|
36486
|
+
};
|
|
36487
|
+
this.searchText = {
|
|
36488
|
+
program: '',
|
|
36489
|
+
category: '',
|
|
36490
|
+
responsibility: '',
|
|
36491
|
+
};
|
|
36492
|
+
this.selectedValues = {
|
|
36493
|
+
program: {},
|
|
36494
|
+
categories: [],
|
|
36495
|
+
responsibilities: []
|
|
36496
|
+
};
|
|
36497
|
+
this.selectedIds = {
|
|
36498
|
+
categories: [],
|
|
36499
|
+
responsibilities: []
|
|
36500
|
+
};
|
|
36501
|
+
this.submissionLoader = false;
|
|
36502
|
+
this.currentCategory = {};
|
|
36503
|
+
this.policy = {};
|
|
36504
|
+
this.mode = '';
|
|
36505
|
+
this.changeTab = new i0.EventEmitter();
|
|
36506
|
+
this.updatedProgramDetails = new i0.EventEmitter();
|
|
36507
|
+
this.loader = false;
|
|
36508
|
+
this.programSortBy = 'desc';
|
|
36509
|
+
this.currentList = 'programs';
|
|
36510
|
+
this.unsubscribe = new rxjs.Subject();
|
|
36511
|
+
this.save = new i0.EventEmitter();
|
|
36512
|
+
this.close = new i0.EventEmitter();
|
|
36513
|
+
this.refreshLinkedPolicies = new i0.EventEmitter();
|
|
36514
|
+
//program
|
|
36515
|
+
this.subList = false;
|
|
36516
|
+
this.selectedCategories = [];
|
|
36517
|
+
this.previousSelectedValues = {
|
|
36518
|
+
program: {},
|
|
36519
|
+
categories: []
|
|
36520
|
+
};
|
|
36521
|
+
this.programData = {
|
|
36522
|
+
data: [],
|
|
36523
|
+
from: 0,
|
|
36524
|
+
to: 0,
|
|
36525
|
+
totalPages: 0,
|
|
36526
|
+
totalRecords: 0,
|
|
36527
|
+
currentPage: 1,
|
|
36528
|
+
AllInternalControlsProgramsCount: 0,
|
|
36529
|
+
AllOthersProgramsCount: 0,
|
|
36530
|
+
AllRegulationProgramsCount: 0,
|
|
36531
|
+
AllStandardProgramsCount: 0,
|
|
36532
|
+
SelectedInternalControlsProgramsCount: 0,
|
|
36533
|
+
SelectedOthersProgramsCount: 0,
|
|
36534
|
+
SelectedRegulationProgramsCount: 0,
|
|
36535
|
+
SelectedStandardProgramsCount: 0
|
|
36536
|
+
};
|
|
36537
|
+
this.programTypeObject = {
|
|
36538
|
+
regulations: 1,
|
|
36539
|
+
standards: 2,
|
|
36540
|
+
internal_controls: 3,
|
|
36541
|
+
others: 0,
|
|
36542
|
+
};
|
|
36543
|
+
this.displayConfirmationMessage = false;
|
|
36544
|
+
this.activeTab = 'regulations';
|
|
36545
|
+
this.getPrograms();
|
|
36546
|
+
}
|
|
36547
|
+
Object.defineProperty(LinkProgramComponent.prototype, "getSelectedProgram", {
|
|
36548
|
+
// @Input() allPrograms: any[] = [];
|
|
36549
|
+
set: function (program) {
|
|
36550
|
+
this.selectedValues = program !== null && program !== void 0 ? program : {
|
|
36551
|
+
program: {},
|
|
36552
|
+
categories: [],
|
|
36553
|
+
responsibilities: []
|
|
36554
|
+
};
|
|
36555
|
+
},
|
|
36556
|
+
enumerable: false,
|
|
36557
|
+
configurable: true
|
|
36558
|
+
});
|
|
36559
|
+
LinkProgramComponent.prototype.ngOnInit = function () {
|
|
36560
|
+
var _this = this;
|
|
36561
|
+
this.animation = true;
|
|
36562
|
+
setTimeout(function () {
|
|
36563
|
+
_this.animation = false;
|
|
36564
|
+
}, 300);
|
|
36565
|
+
this.currentBusinessCycle = this.restApiService.getBusinessCycle();
|
|
36566
|
+
};
|
|
36567
|
+
LinkProgramComponent.prototype.getPrograms = function (data) {
|
|
36568
|
+
var _this = this;
|
|
36569
|
+
this.loader = true;
|
|
36570
|
+
var params = new i1.HttpParams();
|
|
36571
|
+
params = params.append('mode', 'complianceCategory/programList');
|
|
36572
|
+
params = params.append('programType', this.programTypeObject[this.activeTab]);
|
|
36573
|
+
params = params.append('pageName', "policyWorkroom");
|
|
36574
|
+
if ((data === null || data === void 0 ? void 0 : data.search) || this.searchText.program) {
|
|
36575
|
+
params = params.append('searchText', this.searchText.program);
|
|
36576
|
+
}
|
|
36577
|
+
else {
|
|
36578
|
+
params = params.append('pageNo', this.programData.currentPage);
|
|
36579
|
+
}
|
|
36580
|
+
var request = {
|
|
36581
|
+
method: 'get',
|
|
36582
|
+
action: '/compliance/',
|
|
36583
|
+
params: params
|
|
36584
|
+
};
|
|
36585
|
+
this.restApiService.apiDelegate(request).pipe(operators.takeUntil(this.unsubscribe)).subscribe({
|
|
36586
|
+
next: function (res) {
|
|
36587
|
+
_this.programData.data = res.data;
|
|
36588
|
+
_this.programData.from = res.from;
|
|
36589
|
+
_this.programData.to = res.to;
|
|
36590
|
+
_this.programData.totalPages = res.totalPages;
|
|
36591
|
+
_this.programData.totalRecords = res.totalRecords;
|
|
36592
|
+
_this.programData.AllInternalControlsProgramsCount = res.AllInternalControlsProgramsCount;
|
|
36593
|
+
_this.programData.AllOthersProgramsCount = res.AllOthersProgramsCount;
|
|
36594
|
+
_this.programData.AllRegulationProgramsCount = res.AllRegulationProgramsCount;
|
|
36595
|
+
_this.programData.AllStandardProgramsCount = res.AllStandardProgramsCount;
|
|
36596
|
+
_this.loader = false;
|
|
36597
|
+
},
|
|
36598
|
+
error: function (err) {
|
|
36599
|
+
_this.loader = false;
|
|
36600
|
+
},
|
|
36601
|
+
});
|
|
36602
|
+
};
|
|
36603
|
+
LinkProgramComponent.prototype.getCategories = function (data) {
|
|
36604
|
+
var _this = this;
|
|
36605
|
+
var _a;
|
|
36606
|
+
this.loader = true;
|
|
36607
|
+
var params = new i1.HttpParams();
|
|
36608
|
+
params = params.append('parentId', (_a = this.selectedValues.program) === null || _a === void 0 ? void 0 : _a._id);
|
|
36609
|
+
if (data === null || data === void 0 ? void 0 : data.search) {
|
|
36610
|
+
params = params.append('q', this.searchText.category);
|
|
36611
|
+
}
|
|
36612
|
+
var request = {
|
|
36613
|
+
method: 'get',
|
|
36614
|
+
action: '/program/subCategories',
|
|
36615
|
+
params: params
|
|
36616
|
+
};
|
|
36617
|
+
this.restApiService.apiDelegate(request).pipe(operators.takeUntil(this.unsubscribe)).subscribe({
|
|
36618
|
+
next: function (res) {
|
|
36619
|
+
var _a, _b, _c, _d, _e;
|
|
36620
|
+
_this.subCategoriesList.from = (_a = res.items_from) !== null && _a !== void 0 ? _a : 1;
|
|
36621
|
+
_this.subCategoriesList.to = (_b = res.items_to) !== null && _b !== void 0 ? _b : 0;
|
|
36622
|
+
_this.subCategoriesList.totalPage = (_c = res.total_pages) !== null && _c !== void 0 ? _c : 0;
|
|
36623
|
+
_this.subCategoriesList.totalRecords = (_d = res.total_items) !== null && _d !== void 0 ? _d : 0;
|
|
36624
|
+
_this.subCategoriesList.data = (_e = res.data) !== null && _e !== void 0 ? _e : [];
|
|
36625
|
+
_this.loader = false;
|
|
36626
|
+
},
|
|
36627
|
+
error: function (err) {
|
|
36628
|
+
_this.loader = false;
|
|
36629
|
+
},
|
|
36630
|
+
});
|
|
36631
|
+
};
|
|
36632
|
+
LinkProgramComponent.prototype.changeTabProgram = function (type) {
|
|
36633
|
+
this.activeTab = type;
|
|
36634
|
+
this.programData.currentPage = 1;
|
|
36635
|
+
this.searchText.program = '';
|
|
36636
|
+
this.searchProgram.nativeElement.value = '';
|
|
36637
|
+
this.getPrograms();
|
|
36638
|
+
};
|
|
36639
|
+
LinkProgramComponent.prototype.getResponsibilities = function (data) {
|
|
36640
|
+
var _this = this;
|
|
36641
|
+
var _a, _b, _c, _d;
|
|
36642
|
+
this.loader = true;
|
|
36643
|
+
var request = {
|
|
36644
|
+
method: 'get',
|
|
36645
|
+
action: '/program/categoryResponsibilities',
|
|
36646
|
+
payloadObject: {
|
|
36647
|
+
"start_date": (_a = this.currentBusinessCycle) === null || _a === void 0 ? void 0 : _a.start_date,
|
|
36648
|
+
"end_date": (_b = this.currentBusinessCycle) === null || _b === void 0 ? void 0 : _b.end_date,
|
|
36649
|
+
"selected_cycle_arr": (_c = this.currentBusinessCycle) === null || _c === void 0 ? void 0 : _c.selected_cycle_arr,
|
|
36650
|
+
"selected_cycle": (_d = this.currentBusinessCycle) === null || _d === void 0 ? void 0 : _d.selected_cycle,
|
|
36651
|
+
'categoryIds': this.selectedIds.categories,
|
|
36652
|
+
'pageNo': this.responsibilitiesList.currentPage,
|
|
36653
|
+
'searchText': (data === null || data === void 0 ? void 0 : data.search) ? this.searchText.responsibility : ''
|
|
36654
|
+
}
|
|
36655
|
+
};
|
|
36656
|
+
this.restApiService.apiDelegate(request).pipe(operators.takeUntil(this.unsubscribe)).subscribe({
|
|
36657
|
+
next: function (res) {
|
|
36658
|
+
var _a, _b, _c, _d, _e;
|
|
36659
|
+
_this.loader = false;
|
|
36660
|
+
_this.responsibilitiesList.from = (_a = res.items_from) !== null && _a !== void 0 ? _a : 1;
|
|
36661
|
+
_this.responsibilitiesList.to = (_b = res.items_to) !== null && _b !== void 0 ? _b : 0;
|
|
36662
|
+
_this.responsibilitiesList.totalPage = (_c = res.total_pages) !== null && _c !== void 0 ? _c : 1;
|
|
36663
|
+
_this.responsibilitiesList.totalRecords = (_d = res.total_items) !== null && _d !== void 0 ? _d : 0;
|
|
36664
|
+
_this.responsibilitiesList.data = (_e = res.data) !== null && _e !== void 0 ? _e : [];
|
|
36665
|
+
},
|
|
36666
|
+
error: function (err) {
|
|
36667
|
+
_this.loader = false;
|
|
36668
|
+
},
|
|
36669
|
+
});
|
|
36670
|
+
};
|
|
36671
|
+
LinkProgramComponent.prototype.changePage = function (event, type) {
|
|
36672
|
+
switch (type) {
|
|
36673
|
+
case 'programs':
|
|
36674
|
+
this.programData.currentPage = event;
|
|
36675
|
+
this.getPrograms();
|
|
36676
|
+
break;
|
|
36677
|
+
case 'categories':
|
|
36678
|
+
this.subCategoriesList.currentPage = event;
|
|
36679
|
+
this.getCategories();
|
|
36680
|
+
break;
|
|
36681
|
+
case 'responsibilities':
|
|
36682
|
+
this.responsibilitiesList.currentPage = event;
|
|
36683
|
+
this.getResponsibilities();
|
|
36684
|
+
break;
|
|
36685
|
+
}
|
|
36686
|
+
};
|
|
36687
|
+
LinkProgramComponent.prototype.searchBy = function (event, type) {
|
|
36688
|
+
switch (type) {
|
|
36689
|
+
case 'programs':
|
|
36690
|
+
if (this.searchText.program != event) {
|
|
36691
|
+
this.searchText.program = event;
|
|
36692
|
+
this.getPrograms({ search: true });
|
|
36693
|
+
}
|
|
36694
|
+
break;
|
|
36695
|
+
case 'categories':
|
|
36696
|
+
if (this.searchText.category != event) {
|
|
36697
|
+
this.searchText.category = event;
|
|
36698
|
+
this.getCategories({ search: true });
|
|
36699
|
+
}
|
|
36700
|
+
break;
|
|
36701
|
+
case 'responsibilities':
|
|
36702
|
+
if (this.searchText.responsibility != event) {
|
|
36703
|
+
this.searchText.responsibility = event;
|
|
36704
|
+
this.getResponsibilities({ search: true });
|
|
36705
|
+
}
|
|
36706
|
+
break;
|
|
36707
|
+
}
|
|
36708
|
+
};
|
|
36709
|
+
LinkProgramComponent.prototype.selectProgram = function (event, data) {
|
|
36710
|
+
if (event) {
|
|
36711
|
+
this.selectedValues.program = data;
|
|
36712
|
+
this.selectedIds.categories = [];
|
|
36713
|
+
this.selectedValues.categories = [];
|
|
36714
|
+
this.selectedIds.responsibilities = [];
|
|
36715
|
+
this.selectedValues.responsibilities = [];
|
|
36716
|
+
}
|
|
36717
|
+
console.log("=============>", data);
|
|
36718
|
+
};
|
|
36719
|
+
LinkProgramComponent.prototype.selectCategory = function (event, category) {
|
|
36720
|
+
if (event) {
|
|
36721
|
+
this.selectedIds.categories.push(category.category_id);
|
|
36722
|
+
this.selectedValues.categories.push(category);
|
|
36723
|
+
}
|
|
36724
|
+
else {
|
|
36725
|
+
var index = this.selectedIds.categories.findIndex(function (element) { return element == category.category_id; });
|
|
36726
|
+
this.selectedIds.categories.splice(index, 1);
|
|
36727
|
+
var categoryIndex = this.selectedValues.categories.findIndex(function (ele) { return ele.category_id == category.category_id; });
|
|
36728
|
+
this.selectedValues.categories.splice(categoryIndex, 1);
|
|
36729
|
+
}
|
|
36730
|
+
};
|
|
36731
|
+
LinkProgramComponent.prototype.selectResponsibility = function (event, data) {
|
|
36732
|
+
if (event) {
|
|
36733
|
+
this.selectedIds.responsibilities.push(data.ReportId);
|
|
36734
|
+
this.selectedValues.responsibilities.push(data);
|
|
36735
|
+
}
|
|
36736
|
+
else {
|
|
36737
|
+
var index = this.selectedIds.responsibilities.findIndex(function (element) { return element == data.ReportId; });
|
|
36738
|
+
this.selectedIds.responsibilities.splice(index, 1);
|
|
36739
|
+
var reportIndex = this.selectedValues.responsibilities.findIndex(function (ele) { return ele.ReportId == data.ReportId; });
|
|
36740
|
+
this.selectedValues.responsibilities.splice(reportIndex, 1);
|
|
36741
|
+
}
|
|
36742
|
+
};
|
|
36743
|
+
LinkProgramComponent.prototype.goBack = function (from) {
|
|
36744
|
+
if (from) {
|
|
36745
|
+
switch (from) {
|
|
36746
|
+
case 'categories':
|
|
36747
|
+
this.currentList = 'programs';
|
|
36748
|
+
this.selectedIds.categories = [];
|
|
36749
|
+
break;
|
|
36750
|
+
case 'responsibilities':
|
|
36751
|
+
this.currentList = 'categories';
|
|
36752
|
+
this.selectedIds.responsibilities = [];
|
|
36753
|
+
break;
|
|
36754
|
+
}
|
|
36755
|
+
}
|
|
36756
|
+
else {
|
|
36757
|
+
this.close.emit();
|
|
36758
|
+
}
|
|
36759
|
+
};
|
|
36760
|
+
LinkProgramComponent.prototype.remove = function (type, item) {
|
|
36761
|
+
switch (type) {
|
|
36762
|
+
case 'programs':
|
|
36763
|
+
this.selectedValues.program = {};
|
|
36764
|
+
this.selectedValues.categories = [];
|
|
36765
|
+
this.selectedValues.responsibilities = [];
|
|
36766
|
+
break;
|
|
36767
|
+
case 'categories':
|
|
36768
|
+
var categoryIndex = this.selectedValues.categories.findIndex(function (ele) { return ele.category_id == item.category_id; });
|
|
36769
|
+
if (categoryIndex != -1) {
|
|
36770
|
+
this.selectedValues.categories.splice(categoryIndex, 1);
|
|
36771
|
+
this.selectedValues.responsibilities = [];
|
|
36772
|
+
}
|
|
36773
|
+
var categoryIdIndex = this.selectedIds.categories.findIndex(function (element) { return element == item.category_id; });
|
|
36774
|
+
if (categoryIdIndex != -1) {
|
|
36775
|
+
this.selectedIds.categories.splice(categoryIdIndex, 1);
|
|
36776
|
+
}
|
|
36777
|
+
break;
|
|
36778
|
+
case 'responsibilities':
|
|
36779
|
+
var respIndex = this.selectedValues.responsibilities.findIndex(function (ele) { return ele.ReportId == item.ReportId; });
|
|
36780
|
+
if (respIndex != -1) {
|
|
36781
|
+
this.selectedValues.responsibilities.splice(respIndex, 1);
|
|
36782
|
+
}
|
|
36783
|
+
var index = this.selectedIds.responsibilities.findIndex(function (element) { return element == item.ReportId; });
|
|
36784
|
+
if (index != -1) {
|
|
36785
|
+
this.selectedIds.responsibilities.splice(index, 1);
|
|
36786
|
+
}
|
|
36787
|
+
break;
|
|
36788
|
+
}
|
|
36789
|
+
};
|
|
36790
|
+
LinkProgramComponent.prototype.saveChanges = function (type) {
|
|
36791
|
+
switch (type) {
|
|
36792
|
+
case 'programs':
|
|
36793
|
+
this.currentList = 'categories';
|
|
36794
|
+
this.selectedValues.categories = [];
|
|
36795
|
+
this.selectedValues.responsibilities = [];
|
|
36796
|
+
this.getCategories();
|
|
36797
|
+
break;
|
|
36798
|
+
case 'categories':
|
|
36799
|
+
this.currentList = 'responsibilities';
|
|
36800
|
+
this.selectedValues.responsibilities = [];
|
|
36801
|
+
this.getResponsibilities();
|
|
36802
|
+
break;
|
|
36803
|
+
case 'responsibilities':
|
|
36804
|
+
this.submitprogramIntegration();
|
|
36805
|
+
break;
|
|
36806
|
+
case 'programsOnly':
|
|
36807
|
+
this.displayConfirmationMessage = true;
|
|
36808
|
+
break;
|
|
36809
|
+
}
|
|
36810
|
+
};
|
|
36811
|
+
LinkProgramComponent.prototype.saveChangesFromProgram = function (event) {
|
|
36812
|
+
if (event) {
|
|
36813
|
+
this.displayConfirmationMessage = false;
|
|
36814
|
+
this.submitprogramIntegration();
|
|
36815
|
+
}
|
|
36816
|
+
else {
|
|
36817
|
+
this.displayConfirmationMessage = false;
|
|
36818
|
+
}
|
|
36819
|
+
};
|
|
36820
|
+
LinkProgramComponent.prototype.submitprogramIntegration = function () {
|
|
36821
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
36822
|
+
// this.submissionLoader = true;
|
|
36823
|
+
var params = new i1.HttpParams();
|
|
36824
|
+
params = params.append('mode', 'programPolicyUpdate/update');
|
|
36825
|
+
var categoryArray = (_a = this.selectedIds) === null || _a === void 0 ? void 0 : _a.categories;
|
|
36826
|
+
var payload = {
|
|
36827
|
+
policyId: (_c = (_b = this.policy) === null || _b === void 0 ? void 0 : _b.contract_id) !== null && _c !== void 0 ? _c : 0,
|
|
36828
|
+
report_ids: (_e = (_d = this.selectedIds) === null || _d === void 0 ? void 0 : _d.responsibilities) !== null && _e !== void 0 ? _e : 0,
|
|
36829
|
+
category_id: __spreadArray([], __read(new Set(categoryArray))),
|
|
36830
|
+
parentId: (_g = (_f = this.selectedValues) === null || _f === void 0 ? void 0 : _f.program) === null || _g === void 0 ? void 0 : _g.category_id
|
|
36831
|
+
};
|
|
36832
|
+
var currentBusinessCycle = {
|
|
36833
|
+
"start_date": (_h = this.currentBusinessCycle) === null || _h === void 0 ? void 0 : _h.start_date,
|
|
36834
|
+
"end_date": (_j = this.currentBusinessCycle) === null || _j === void 0 ? void 0 : _j.end_date,
|
|
36835
|
+
"selected_cycle_arr": (_k = this.currentBusinessCycle) === null || _k === void 0 ? void 0 : _k.selected_cycle_arr,
|
|
36836
|
+
"selected_cycle": (_l = this.currentBusinessCycle) === null || _l === void 0 ? void 0 : _l.selected_cycle,
|
|
36837
|
+
};
|
|
36838
|
+
var linkProgram = {
|
|
36839
|
+
added: [payload],
|
|
36840
|
+
removed: []
|
|
36841
|
+
};
|
|
36842
|
+
var selectedProgram = {
|
|
36843
|
+
selectedValues: this.selectedValues,
|
|
36844
|
+
linkProgram: linkProgram,
|
|
36845
|
+
};
|
|
36846
|
+
console.log("link Program Payload =>", payload);
|
|
36847
|
+
this.updatedProgramDetails.emit(selectedProgram);
|
|
36848
|
+
this.submissionLoader = false;
|
|
36849
|
+
var request = {
|
|
36850
|
+
method: 'post',
|
|
36851
|
+
action: '/compliance_post',
|
|
36852
|
+
params: params,
|
|
36853
|
+
data: payload,
|
|
36854
|
+
businessCycle: currentBusinessCycle
|
|
36855
|
+
};
|
|
36856
|
+
// this.restApiService.apiDelegate(request).pipe(takeUntil(this.unsubscribe)).subscribe({
|
|
36857
|
+
// next: (res: any) => {
|
|
36858
|
+
// this.submissionLoader = false;
|
|
36859
|
+
// this.snackbar.show('The program has been linked with this Policy.', 'success');
|
|
36860
|
+
// setTimeout(() => {
|
|
36861
|
+
// if(this.currentTab != 'linked_programs'){
|
|
36862
|
+
// this.refreshLinkedPolicies.emit();
|
|
36863
|
+
// // this.changeTab.emit();
|
|
36864
|
+
// }
|
|
36865
|
+
// this.close.emit();
|
|
36866
|
+
// }, 1000);
|
|
36867
|
+
// },
|
|
36868
|
+
// error: (err: any) => {
|
|
36869
|
+
// this.submissionLoader = false;
|
|
36870
|
+
// this.snackbar.show("Oops Something went wrong and we were unable to complete this action. Let's give it another try shall we ?");
|
|
36871
|
+
// },
|
|
36872
|
+
// });
|
|
36873
|
+
};
|
|
36874
|
+
return LinkProgramComponent;
|
|
36875
|
+
}());
|
|
36876
|
+
LinkProgramComponent.decorators = [
|
|
36877
|
+
{ type: i0.Component, args: [{
|
|
36878
|
+
selector: 'vc-link-program',
|
|
36879
|
+
template: "<div class=\"link-policy\" [class.animate]=\"animation\">\r\n <ng-container *ngIf=\"currentList =='programs'\">\r\n <div class=\"program-listing-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\">\r\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select a Program</div>\r\n <!-- <button (click)=\"goBack()\" class=\"back-btn vx-fs-12 vx-fw-500 vx-lable-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"><i class=\"icons vx-mr-1\"></i> Back</button> -->\r\n </div>\r\n <div class=\"program-listing-body\">\r\n <div class=\"filter-card-row vx-d-flex vx-mb-2\">\r\n <div class=\"filter-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\" [class.active]=\"activeTab == 'regulations'\" (click)=\"changeTabProgram('regulations')\">\r\n <div class=\"left vx-d-block vx-w-100\">\r\n <div class=\"label vx-d-flex vx-align-center\">\r\n <div class=\"vx-d-block vx-lh-3\">\r\n <label class=\"vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\">REGULATIONS</label>\r\n <span class=\"vx-fs-10 vx-fw-600 vx-label-txt vx-lh-4\" *ngIf=\"programData?.SelectedRegulationProgramsCount> 0\">{{programData?.SelectedRegulationProgramsCount}}\r\n {{(programData?.SelectedRegulationProgramsCount==1)?'Program':'Programs'}} selected</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"right vx-d-flex vx-justify-end vx-w-100\">\r\n <span class=\"counter vx-txt-white vx-fw-500 vx-d-inline-block vx-text-center\">{{programData?.AllRegulationProgramsCount}}</span>\r\n </div>\r\n </div>\r\n <div class=\"filter-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\" [class.active]=\"activeTab == 'standards'\" (click)=\"changeTabProgram('standards')\">\r\n <div class=\"left vx-d-block vx-w-100\">\r\n <div class=\"label vx-d-flex vx-align-center\">\r\n <div class=\"vx-d-block vx-lh-3\">\r\n <label class=\"vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\">STANDARDS</label>\r\n <span class=\"vx-fs-10 vx-fw-600 vx-label-txt vx-lh-4\" *ngIf=\"programData?.SelectedStandardProgramsCount> 0\">{{programData?.SelectedStandardProgramsCount}}\r\n {{(programData?.SelectedStandardProgramsCount==1)?'Program':'Programs'}} selected</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"right vx-d-flex vx-justify-end vx-w-100\">\r\n <span class=\"counter vx-txt-white vx-fw-500 vx-d-inline-block vx-text-center\">{{programData?.AllStandardProgramsCount}}</span>\r\n </div>\r\n </div>\r\n <div class=\"filter-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\" [class.active]=\"activeTab == 'internal_controls'\" (click)=\"changeTabProgram('internal_controls')\">\r\n <div class=\"left vx-d-block vx-w-100\">\r\n <div class=\"label vx-d-flex vx-align-center\">\r\n <div class=\"vx-d-block vx-lh-3\">\r\n <label class=\"vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\">INTERNAL CONTROLS</label>\r\n <span class=\"vx-fs-10 vx-fw-600 vx-label-txt vx-lh-4\" *ngIf=\"programData?.SelectedInternalControlsProgramsCount> 0\">{{programData?.SelectedInternalControlsProgramsCount}}\r\n {{(programData?.SelectedInternalControlsProgramsCount==1)?'Program':'Programs'}} selected</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"right vx-d-flex vx-justify-end vx-w-100\">\r\n <span class=\"counter vx-txt-white vx-fw-500 vx-d-inline-block vx-text-center\">{{programData?.AllInternalControlsProgramsCount}}</span>\r\n </div>\r\n </div>\r\n <div class=\"filter-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\" [class.active]=\"activeTab == 'others'\" (click)=\"changeTabProgram('others')\">\r\n <div class=\"left vx-d-block vx-w-100\">\r\n <div class=\"label vx-d-flex vx-align-center\">\r\n <div class=\"vx-d-block vx-lh-3\">\r\n <label class=\"vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\">OTHERS</label>\r\n <span class=\"vx-fs-10 vx-fw-600 vx-label-txt vx-lh-4\" *ngIf=\"programData?.SelectedOthersProgramsCount> 0\">{{programData?.SelectedOthersProgramsCount}}\r\n {{(programData?.SelectedOthersProgramsCount==1)?'Program':'Programs'}} selected</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"right vx-d-flex vx-justify-end vx-w-100\">\r\n <span class=\"counter vx-txt-white vx-fw-500 vx-d-inline-block vx-text-center\">{{programData?.AllOthersProgramsCount}}</span>\r\n </div>\r\n </div>\r\n\r\n\r\n <!-- <div class=\"filter-card\" [class.active]=\"activeTab == 'regulations'\" (click)=\"changeTabProgram('regulations')\">\r\n <div class=\"left\">\r\n <label>REGULATIONS</label>\r\n <p *ngIf=\"programData?.SelectedRegulationProgramsCount> 0\">\r\n {{programData?.SelectedRegulationProgramsCount}}\r\n {{(programData?.SelectedRegulationProgramsCount==1)?'Program':'Programs'}} selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{programData?.AllRegulationProgramsCount}}</span>\r\n </div> -->\r\n <!-- <div class=\"filter-card\" [class.active]=\"activeTab == 'standards'\" (click)=\"changeTabProgram('standards')\">\r\n <div class=\"left\">\r\n <label>STANDARDS</label>\r\n <p *ngIf=\"programData?.SelectedStandardProgramsCount> 0\">\r\n {{programData?.SelectedStandardProgramsCount}}\r\n {{(programData?.SelectedStandardProgramsCount==1)?'Program':'Programs'}} selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{programData?.AllStandardProgramsCount}}</span>\r\n </div> -->\r\n <!-- <div class=\"filter-card\" [class.active]=\"activeTab == 'internal_controls'\" (click)=\"changeTabProgram('internal_controls')\">\r\n <div class=\"left\">\r\n <label>INTERNAL CONTROLS</label>\r\n <p *ngIf=\"programData?.SelectedInternalControlsProgramsCount> 0\">\r\n {{programData?.SelectedInternalControlsProgramsCount}}\r\n {{(programData?.SelectedInternalControlsProgramsCount==1)?'Program':'Programs'}} selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{programData?.AllInternalControlsProgramsCount}}</span>\r\n </div> -->\r\n <!-- <div class=\"filter-card\" [class.active]=\"activeTab == 'others'\" (click)=\"changeTabProgram('others')\">\r\n <div class=\"left\">\r\n <label>OTHERS</label>\r\n <p *ngIf=\"programData?.SelectedOthersProgramsCount> 0\">\r\n {{programData?.SelectedOthersProgramsCount}}\r\n {{(programData?.SelectedOthersProgramsCount==1)?'Program':'Programs'}} selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{programData?.AllOthersProgramsCount}}</span>\r\n </div> -->\r\n </div>\r\n <div class=\"link-policy-search vx-mb-2\">\r\n <i class=\"icons vx-fs-12\"></i>\r\n <input type=\"text\" placeholder=\"Search Programs\" #searchProgram\r\n (keyup.enter)=\"searchBy($event.target.value,'programs')\" />\r\n </div>\r\n <vui-pagination *ngIf=\"(!loader) && programData.totalPages>1\" [from]=\"programData.from\"\r\n [to]=\"programData.to\" [total]=\"programData.totalRecords\" [showPageDetail]=\"true\"\r\n [totalPage]=\"programData.totalPages\" [currentPage]=\"programData.currentPage\" [pageInSingleView]=\"5\"\r\n (pageChanged)=\"changePage($event,'programs')\">\r\n </vui-pagination>\r\n <div class=\"program-listing-part vx-mb-4\" [class.with-pagination]=\"(!loader) && programData.totalPages>1\">\r\n <app-no-data *ngIf=\"programData?.data?.length==0 && !loader\"\r\n [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"'No data to display'\"></app-no-data>\r\n\r\n <div class=\"program-listing-item\" [class.active]=\"selectedValues?.program?.category_id == program?.category_id\"\r\n *ngFor=\"let program of programData.data;let i = index\">\r\n <div class=\"table-row main-list\" [class.active]=\"selectedValues?.program?.category_id == program?.category_id\"\r\n [class.disabled]=\"program?.programReportExists==0\" (click)=\"selectProgram(true,program)\">\r\n <div class=\"table-column serial\">\r\n <div class=\"sr-no\" [appTooltip]=\"i+programData.from\" placement=\"bottom\" delay=\"0\" type=\"black\"\r\n [tooltipMandatory]=\"true\">{{i+programData.from}}</div>\r\n\r\n <app-cs-radio [name]=\"'policyName'\"\r\n [checked]=\"selectedValues?.program?.category_id == program?.category_id\"\r\n (checkedEvent)=\"selectProgram($event.target.checked,program)\"></app-cs-radio>\r\n </div>\r\n <div class=\"table-column name\">\r\n <div class=\"name-inner\">\r\n <div class=\"name-with-count\">\r\n <div class=\"value\" appTooltip=\"{{program?.name | tooltipValidation}}\" placement=\"bottom-left\" delay=\"0\"\r\n type=\"black\" [tooltipMandatory]=\"false\">{{program?.name}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <div class=\"link-policy-floating-bar vx-d-flex vx-align-center vx-justify-between vx-p-3\">\r\n <div class=\"link-policy-floating-bar-left vx-d-flex vx-align-center\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\" *ngIf=\"selectedValues?.program?.name\">\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"remove('programs','')\"></i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"selectedValues?.program?.name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{selectedValues?.program?.name}}</span>\r\n </div>\r\n\r\n <!-- <div class=\"chip vx-pl-2 vx-pr-2 vx-txt-blue vx-fs-12 vx-lh-6 vx-mr-1\" *ngIf=\"selectedValues?.program?.name\"><i class=\"icons vx-mr-1\" (click)=\"remove('programs','')\"></i>{{selectedValues?.program?.name}}</div> -->\r\n <!-- <div class=\"vx-fs-12 vx-fw-500 vx-paragraph-txt vx-ml-2\">Policy selected</div> -->\r\n\r\n </div>\r\n <div class=\"link-policy-floating-bar-right vx-d-flex vx-align-center\">\r\n <button (click)=\"goBack()\" class=\"cancel-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-m-0 vx-mr-2 vx-d-flex vx-align-center vx-justify-center vx-txt-red\">CANCEL</button>\r\n <button (click)=\"saveChanges('programs')\" [class.disabled]=\"!selectedValues?.program?.name\" class=\"white-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-m-0 vx-mr-1 vx-d-flex vx-align-center vx-justify-center vx-txt-blue\">\r\n LINK CATEGORIES AND RESPONSIBILITIES</button>\r\n <button (click)=\"saveChanges('programsOnly')\" [class.disabled]=\"!selectedValues?.program?.name\" class=\"next-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-m-0 vx-d-flex vx-align-center vx-justify-center vx-txt-white\">Link\r\n <i class=\"icons vx-ml-2\"></i></button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"program-listing-confirmation\" *ngIf=\"displayConfirmationMessage\">\r\n <div class=\"confirmation-top\">\r\n <div class=\"icon-block\"><i class=\"icons\"></i></div>\r\n <div class=\"text\">You have opted to link all the responsibilities under the selected program \"{{selectedValues?.program?.name }}\" and it's sub-categories.</div>\r\n </div>\r\n <div class=\"confirmation-bottom\">\r\n <div class=\"message\">Are you sure you would like to proceed?</div>\r\n <div class=\"button-group\">\r\n <button class=\"no-btn\" (click)=\"saveChangesFromProgram(false)\">NO</button>\r\n <button class=\"yes-btn\" (click)=\"saveChangesFromProgram(true)\">YES</button>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"currentList=='categories'\">\r\n <div class=\"link-policy-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\">\r\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt vx-d-flex vx-align-center\"><button (click)=\"goBack('categories')\" class=\"back-btn vx-fs-14 vx-fw-500 vx-lable-txt vx-p-0 vx-mr-2 vx-d-flex vx-align-center\"><i class=\"icons\"></i></button> Select Categories to link with this policy</div>\r\n </div>\r\n <div class=\"link-policy-body\">\r\n <div class=\"link-policy-search vx-mb-2\">\r\n <i class=\"icons vx-fs-12\"></i>\r\n <input type=\"text\" placeholder=\"Search categories\" #searchCategory\r\n (keyup.enter)=\"searchBy($event.target.value,'categories')\" />\r\n </div>\r\n <vui-pagination *ngIf=\"(!loader) && subCategoriesList.totalPage>1\" [from]=\"subCategoriesList.from\"\r\n [to]=\"subCategoriesList.to\" [total]=\"subCategoriesList.totalRecords\" [showPageDetail]=\"true\"\r\n [totalPage]=\"subCategoriesList.totalPage\" [currentPage]=\"subCategoriesList.currentPage\" [pageInSingleView]=\"5\"\r\n (pageChanged)=\"changePage($event,'programs')\">\r\n </vui-pagination>\r\n\r\n <div class=\"link-policy-table vx-mb-4\" [class.with-pagination]=\"(!loader) && subCategoriesList.totalPage>1\">\r\n <ng-container *ngIf=\"!loader && subCategoriesList.data?.length>0\">\r\n <div class=\"table-header\">\r\n <div class=\"table-row\">\r\n <div\r\n class=\"table-column vx-fs-10 vx-fw-500 vx-label-txt vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\r\n #</div>\r\n <div\r\n class=\"table-column vx-fs-10 vx-fw-500 vx-label-txt vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center category-name\">\r\n CATEGORIES</div>\r\n </div>\r\n </div>\r\n <div class=\"table-body\">\r\n <!-- when checkbox was checked then active class was true -->\r\n <div class=\"table-row\" [class.active]=\"selectedIds.categories.includes(category.category_id)\"\r\n *ngFor=\"let category of subCategoriesList.data; let i = index;\">\r\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\r\n <div class=\"sr-no\" [appTooltip]=\"i+subCategoriesList.from\" placement=\"bottom\" delay=\"0\"\r\n type=\"black\" [tooltipMandatory]=\"true\">{{i+subCategoriesList.from}}</div>\r\n <vui-checkbox [checked]=\"selectedIds.categories.includes(category.category_id)\"\r\n (change)=\"selectCategory($event.target.checked,category)\"></vui-checkbox>\r\n </div>\r\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center category-name\">\r\n <div class=\"vx-d-block vx-w-100\">\r\n\r\n <div class=\"value vx-fs-12 vx-label-txt\" [appTooltip]=\"category?.item_name | tooltipValidation\"\r\n placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\r\n {{category?.item_name}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <app-no-data *ngIf=\"!loader && subCategoriesList.data?.length==0\"\r\n [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"'No data to display'\"></app-no-data>\r\n </div>\r\n\r\n <div class=\"link-policy-floating-bar vx-d-flex vx-align-center vx-justify-between vx-p-3\">\r\n <div class=\"link-policy-floating-bar-left vx-d-flex vx-align-center\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\" *ngIf=\"selectedValues?.categories?.length>0\">\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"remove('categories',selectedValues?.categories[0])\"></i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"selectedValues?.categories[0]?.item_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{selectedValues?.categories[0]?.item_name}}</span>\r\n <button class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\" appPopover (click)=\"programCount.popover()\" placement=\"left\" *ngIf=\"selectedValues?.categories?.length>1\">+{{selectedValues?.categories?.slice(1).length}}</button>\r\n </div>\r\n <app-popover #programCount>\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let selectedCategory of selectedValues?.categories?.slice(1)\">\r\n <div class=\"avatar-card\">\r\n <i class=\"icons cross-btn vx-fs-12 vx-paragaph-txt vx-mr-2\" (click)=\"remove('categories',selectedCategory)\"></i>\r\n <span class=\"value\">{{selectedCategory?.item_name}}</span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n\r\n\r\n <!-- <div class=\"chip vx-pl-2 vx-pr-2 vx-txt-blue vx-fs-12 vx-lh-6 vx-mr-1\" *ngIf=\"selectedValues.categories.length>0\"><i (click)=\"remove('categories',selectedValues?.categories[0])\" class=\"icons vx-mr-1\"></i> {{selectedValues?.categories[0]?.item_name}}</div>\r\n <ng-container *ngIf=\"selectedValues.categories.length>1\">\r\n <button class=\"count vx-fs-12 vx-fw-500 vx-txt-white vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\" vcPopover (click)=\"programCount.popover()\" position=\"left\">+{{selectedValues?.categories?.slice(1).length}}</button>\r\n <div class=\"vx-fs-12 vx-fw-500 vx-paragraph-txt vx-ml-2\">{{(selectedValues?.categories?.slice(1)?.length==1)?'Category selected':'Categories selected'}}</div>\r\n <app-popover #programCount>\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let selectedCategory of selectedValues?.categories?.slice(1)\">\r\n <div class=\"avatar-card\">\r\n <i class=\"icons cross-btn vx-fs-12 vx-txt-blue vx-mr-2\" (click)=\"remove('categories',selectedCategory)\"></i>\r\n <span class=\"value\">{{selectedCategory?.item_name}}</span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </ng-container> -->\r\n </div>\r\n <div class=\"link-policy-floating-bar-right vx-d-flex vx-align-center\">\r\n <button (click)=\"goBack('categories')\" class=\"cancel-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center vx-txt-red\">CANCEL</button>\r\n <button (click)=\"saveChanges('categories')\" [class.disabled]=\"!selectedValues?.categories?.length\" class=\"next-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center vx-txt-white\">Add <i class=\"icons vx-ml-2\"></i></button>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"currentList=='responsibilities'\">\r\n <div class=\"link-policy-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\">\r\n <div class=\"page-title vx-fs-14 vx-fw-500 vx-label-txt\">Select Responsibilities to link with this policy </div>\r\n <!-- <button (click)=\"goBack('responsibilities')\"\r\n class=\"back-btn vx-fs-14 vx-fw-500 vx-label-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"><i\r\n class=\"icons vx-mr-1\"></i> BACK</button> -->\r\n </div>\r\n <div class=\"link-policy-body vx-p-4 vx-pb-3\">\r\n <div class=\"link-policy-search vx-mb-2\">\r\n <i class=\"icons vx-fs-12\"></i>\r\n <input type=\"text\" placeholder=\"Search Responsibilities\" (keyup.enter)=\"searchBy($event.target.value,'responsibilities')\" />\r\n </div>\r\n <vui-pagination *ngIf=\"(!loader) && responsibilitiesList.totalPage>1\" [from]=\"responsibilitiesList.from\"\r\n [to]=\"responsibilitiesList.to\" [total]=\"responsibilitiesList.totalRecords\" [showPageDetail]=\"true\"\r\n [totalPage]=\"responsibilitiesList.totalPage\" [currentPage]=\"responsibilitiesList.currentPage\" [pageInSingleView]=\"5\"\r\n (pageChanged)=\"changePage($event,'responsibilities')\">\r\n </vui-pagination>\r\n\r\n <div class=\"link-policy-table\" [class.with-pagination]=\"(!loader) && subCategoriesList.totalPage>1\">\r\n <ng-container *ngIf=\"!loader && responsibilitiesList.data?.length>0\">\r\n <div class=\"table-header\">\r\n <div class=\"table-row\">\r\n <div\r\n class=\"table-column vx-fs-10 vx-fw-500 vx-label-txt vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\r\n #</div>\r\n <div\r\n class=\"table-column vx-fs-10 vx-fw-500 vx-label-txt vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center category-name\">\r\n RESPONSIBLITIES</div>\r\n </div>\r\n </div>\r\n <div class=\"table-body\">\r\n <!-- when checkbox was checked then active class was true -->\r\n\r\n <div class=\"table-row\"\r\n [class.active]=\"selectedIds.responsibilities.includes(responsibility.ReportId)\"\r\n *ngFor=\"let responsibility of responsibilitiesList.data; let i = index;\">\r\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\r\n <div class=\"sr-no\" [appTooltip]=\"i+responsibilitiesList.from\" placement=\"bottom\" delay=\"0\"\r\n type=\"black\" [tooltipMandatory]=\"true\">{{i+responsibilitiesList.from}}</div>\r\n <vui-checkbox\r\n [checked]=\"selectedIds.responsibilities.includes(responsibility.ReportId)\"\r\n (change)=\"selectResponsibility($event.target.checked,responsibility)\">\r\n </vui-checkbox>\r\n </div>\r\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center category-name\">\r\n\r\n <div class=\"value vx-fs-12 vx-label-txt\" [appTooltip]=\"responsibility?.control_id + responsibility?.ReportName | tooltipValidation\"\r\n placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\r\n <span class=\"vx-fs-10 vx-fw-500 vx-tt-uppercase vx-mr-1\">{{responsibility?.control_id}}</span> {{responsibility?.ReportName}}</div>\r\n </div>\r\n <!-- <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center category-name\">\r\n <div class=\"value vx-fs-12 vx-label-txt\"\r\n [appTooltip]=\"'[CID-20210005] A.8.1.3 Acceptable Use of Assets'\" placement=\"bottom-left\"\r\n delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\"><span\r\n class=\"vx-fs-10 vx-fw-500 vx-tt-uppercase vx-mr-1\">[CID-20210005]</span> A.8.1.3\r\n Acceptable Use of Assets</div>\r\n </div> -->\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <app-no-data *ngIf=\"!loader && responsibilitiesList.data?.length==0\"\r\n [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"'No data to display'\"></app-no-data>\r\n </div>\r\n <div class=\"link-policy-floating-bar vx-d-flex vx-align-center vx-justify-between vx-p-3 vx-mt-1\">\r\n <div class=\"link-policy-floating-bar-left vx-d-flex vx-align-center\">\r\n <div class=\"chip vx-pl-2 vx-pr-2 vx-txt-blue vx-fs-12 vx-lh-6 vx-mr-1\"\r\n *ngIf=\"selectedValues.responsibilities.length>0\"><i\r\n (click)=\"remove('responsibilities',selectedValues?.responsibilities[0])\"\r\n class=\"icons vx-mr-1\"></i> {{selectedValues?.responsibilities[0]?.ReportName}}</div>\r\n <ng-container *ngIf=\"selectedValues.responsibilities.length>1\">\r\n <button\r\n class=\"count vx-fs-12 vx-fw-500 vx-txt-white vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\"\r\n vcPopover (click)=\"responsibilitiesPopover.popover()\"\r\n position=\"left\">+{{selectedValues?.responsibilities?.slice(1).length}}</button>\r\n <div class=\"vx-fs-12 vx-fw-500 vx-paragraph-txt vx-ml-2\">\r\n {{(selectedValues?.responsibilities?.slice(1)?.length==1)?'Responsibility\r\n selected':'Responsibilities selected'}}</div>\r\n <app-popover #responsibilitiesPopover>\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let selectedres of selectedValues?.responsibilities?.slice(1)\">\r\n <div class=\"avatar-card\">\r\n <i class=\"icons cross-btn vx-fs-12 vx-txt-blue vx-mr-2\" (click)=\"remove('responsibilities',selectedres)\"></i>\r\n <span class=\"value\">{{selectedres?.ReportName}}</span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </ng-container>\r\n\r\n </div>\r\n <div class=\"link-policy-floating-bar-right vx-d-flex vx-align-center\">\r\n <button (click)=\"goBack('responsibilities')\"\r\n class=\"cancel-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center vx-txt-red\">CANCEL</button>\r\n <button (click)=\"saveChanges('responsibilities')\" [class.disabled]=\"!selectedValues?.responsibilities?.length\"\r\n class=\"next-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center vx-txt-white\">ADD\r\n <i class=\"icons vx-ml-2\"></i></button>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <app-loader *ngIf=\"loader || submissionLoader\"></app-loader>\r\n\r\n\r\n</div>\r\n",
|
|
36880
|
+
styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .link-policy{position:fixed;top:0;right:500px;bottom:0;left:0}::ng-deep .link-policy:before{background:#1E5DD3;content:\"\";position:absolute;top:0;left:0;right:0;width:100%;height:3px}::ng-deep .link-policy.animate{animation:.5s cubic-bezier(.25,.46,.45,.94) both animate-right}::ng-deep .link-policy-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .link-policy-head button.back-btn{background:transparent;border-radius:0;border:none}::ng-deep .link-policy-body{background:#fff;height:calc(100vh - 2.75rem);padding:2rem}::ng-deep .link-policy-search{position:relative}::ng-deep .link-policy-search input{height:2.75rem;line-height:1.5rem;padding:.5rem 1rem .5rem 2.5rem;outline:none;border:1px solid #7475763f;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .link-policy-search input::placeholder{color:#747576;opacity:1}::ng-deep .link-policy-search i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1;font-size:12px}::ng-deep .link-policy-table{overflow:hidden;overflow-y:auto;height:calc(100vh - 14rem)}::ng-deep .link-policy-table::-webkit-scrollbar-track{background-color:transparent}::ng-deep .link-policy-table .table-header{background:#fff;position:sticky;top:0;z-index:1}::ng-deep .link-policy-table .table-header .table-row{border:none!important;border-radius:0!important}::ng-deep .link-policy-table .table-header .table-row .table-column{line-height:1rem!important;min-height:1.5rem!important}::ng-deep .link-policy-table .table-row{border:1px solid #f1f1f1;border-radius:.25rem;display:flex;justify-content:space-between;position:relative;margin-bottom:.25rem}::ng-deep .link-policy-table .table-row:hover .table-column.serial .sr-no,::ng-deep .link-policy-table .table-row.active .table-column.serial .sr-no{opacity:0}::ng-deep .link-policy-table .table-row:hover .table-column.serial vui-cs-radio,::ng-deep .link-policy-table .table-row.active .table-column.serial vui-cs-radio,::ng-deep .link-policy-table .table-row:hover .table-column.serial vui-checkbox,::ng-deep .link-policy-table .table-row.active .table-column.serial vui-checkbox{opacity:1}::ng-deep .link-policy-table .table-row .table-column{min-height:2.5rem;position:relative;width:100%}::ng-deep .link-policy-table .table-row .table-column.serial{width:2rem;max-width:2rem;justify-content:center}::ng-deep .link-policy-table .table-row .table-column.serial .sr-no{width:1.25rem;background:#f8f8f8;writing-mode:vertical-lr;color:#747576;font-size:.625rem;font-weight:500;display:flex;height:2.5rem;align-items:center;justify-content:center;position:relative;transition:all .2s ease-in-out}::ng-deep .link-policy-table .table-row .table-column.serial vui-cs-radio{background:#fff;border-radius:50%;position:absolute;top:.75rem;left:.5rem;width:1rem;height:1rem;opacity:0;transition:all .2s ease-in-out}::ng-deep .link-policy-table .table-row .table-column.serial vui-cs-radio .radio-item .radio,::ng-deep .link-policy-table .table-row .table-column.serial vui-cs-radio .radio-item .radiomark{position:absolute;top:0}::ng-deep .link-policy-table .table-row .table-column.serial vui-checkbox{background:#fff;border-radius:.125rem;position:absolute;top:.75rem;left:.5rem;width:1rem;height:1rem;opacity:0;transition:all .2s ease-in-out}::ng-deep .link-policy-table .table-row .table-column.serial vui-checkbox .checkbox-item{position:absolute!important}::ng-deep .link-policy-table .table-row .table-column.serial vui-checkbox .checkbox-item .checkbox,::ng-deep .link-policy-table .table-row .table-column.serial vui-checkbox .checkbox-item .checkmark{position:absolute;top:0}::ng-deep .link-policy-table .table-row .table-column.policies{width:calc(100% - 28rem);min-width:calc(100% - 28rem)}::ng-deep .link-policy-table .table-row .table-column.policies .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:calc(100% - 5rem)}::ng-deep .link-policy-table .table-row .table-column.categories{width:26rem;min-width:26rem}::ng-deep .link-policy-table .table-row .table-column.categories .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:calc(100% - 1rem)}::ng-deep .link-policy-table .table-row .table-column.categories button.count{background:#1e5dd3;border:none;border-radius:.125rem;height:1.5rem}::ng-deep .link-policy-table .table-row .table-column.category-name{width:calc(100% - 2rem);min-width:calc(100% - 2rem)}::ng-deep .link-policy-table .table-row .table-column.category-name .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:calc(100% - 5rem)}::ng-deep .link-policy .with-pagination{height:calc(100vh - 16rem)}::ng-deep .link-policy-floating-bar{background:#fff;border-radius:.25rem;box-shadow:0 2px 12px #4681ef40}::ng-deep .link-policy-floating-bar-left .counter{background:#34aa44;border-radius:.125rem;min-width:1.75rem}::ng-deep .link-policy-floating-bar-left .chip{background:#fff;border-radius:.125rem;box-shadow:0 2px 4px #1e5dd31a;height:1.5rem;display:block;max-width:13rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .link-policy-floating-bar-left .chip i{position:relative;top:.0625rem;cursor:pointer}::ng-deep .link-policy-floating-bar-left button.count{background:#34aa44;border:none;border-radius:.125rem;height:1.5rem}::ng-deep .link-policy-floating-bar-right button{background:transparent;border:none;border-radius:.125rem;padding:0 .5rem;height:1.5rem}::ng-deep .link-policy-floating-bar-right button.white-btn{background:#fff;border:1px solid #f1f1f1}::ng-deep .link-policy-floating-bar-right button.white-btn.disabled{background:#f1f1f1!important;color:#747576!important;pointer-events:none!important}::ng-deep .link-policy-floating-bar-right button.next-btn{background:#1e5dd3}::ng-deep .link-policy-floating-bar-right button.next-btn.disabled{background:#f1f1f1!important;color:#747576!important;pointer-events:none!important}::ng-deep app-popover .wf-action-list ul.action-item li .avatar-card .cross-btn{cursor:pointer}::ng-deep .program-listing{position:fixed;top:0;right:500px;bottom:0;left:0}::ng-deep .program-listing:before{background:#1E5DD3;content:\"\";position:absolute;top:0;left:0;right:0;width:100%;height:3px}::ng-deep .program-listing-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .program-listing-head button.back-btn{background:transparent;border:none;border-radius:0}::ng-deep .program-listing-body{background:#fff;height:calc(100vh - 2.75rem);padding:2rem}::ng-deep .program-listing-body .filter-card{box-shadow:0 0 2px #00000029;border-radius:.125rem;height:55px;cursor:pointer}::ng-deep .program-listing-body .filter-card.active{box-shadow:0 3px 12px #1e5dd340;border:none;pointer-events:none}::ng-deep .program-listing-body .filter-card.active span.counter{background:#F1F1F1;color:#042e7d}::ng-deep .program-listing-body .filter-card label{font-weight:500;text-transform:uppercase;color:#747576;line-height:16px;margin-left:0;font-size:11px;width:100%;pointer-events:none}::ng-deep .program-listing-body .filter-card p{line-height:16px;font-size:11px;color:#161b2f;font-weight:600;margin:0}::ng-deep .program-listing-body .filter-card span.counter{display:flex;height:28px;min-width:28px;border-radius:2px;background:#042E7D;color:#fff;font-size:11px;font-weight:600;justify-content:center;align-items:center;padding:0 4px;line-height:28px}::ng-deep .program-listing-body .filter-card .left{display:flex;flex-wrap:wrap}::ng-deep .program-listing-body .filter-card+.filter-card{margin-left:10px}::ng-deep .program-listing-body .filter-card-row .vx-table-card.active{box-shadow:0 3px 12px #1e5dd340!important}::ng-deep .program-listing-body .search-block{position:relative}::ng-deep .program-listing-body .search-block input{height:2.75rem;line-height:1.5rem;padding:.5rem 1rem .5rem 2.5rem;outline:none;border:1px solid #7475763f;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .program-listing-body .search-block input::placeholder{font-weight:400}::ng-deep .program-listing-body .search-block input:focus{border-color:#1e5dd3}::ng-deep .program-listing-body .search-block i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1;font-size:12px}::ng-deep .program-listing-body .program-listing-part{height:calc(100vh - 288px);overflow:auto;padding:0 12px 0 0;width:calc(100% + 12px)}::ng-deep .program-listing-body .program-listing-part::-webkit-scrollbar-track{background-color:#fff;position:absolute}::ng-deep .program-listing-body .program-listing-part::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::ng-deep .program-listing-body .program-listing-part::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}::ng-deep .program-listing-body .program-listing-part.with-pagination{height:calc(100vh - 320px)}::ng-deep .program-listing-body .program-listing-part .selected-area{background:#fff;height:32px;position:sticky;top:0;z-index:1}::ng-deep .program-listing-body .program-listing-part .selected-area app-cs-checkbox,::ng-deep .program-listing-body .program-listing-part .selected-area app-cs-checkbox-indeterminate{background:#fff;border-radius:2px;width:100%;height:16px}::ng-deep .program-listing-body .program-listing-part .selected-area app-cs-checkbox .checkbox-item,::ng-deep .program-listing-body .program-listing-part .selected-area app-cs-checkbox-indeterminate .checkbox-item{width:100%;position:relative}::ng-deep .program-listing-body .program-listing-part .selected-area app-cs-checkbox .checkbox-item .checkbox,::ng-deep .program-listing-body .program-listing-part .selected-area app-cs-checkbox-indeterminate .checkbox-item .checkbox,::ng-deep .program-listing-body .program-listing-part .selected-area app-cs-checkbox .checkbox-item .checkmark,::ng-deep .program-listing-body .program-listing-part .selected-area app-cs-checkbox-indeterminate .checkbox-item .checkmark{position:absolute;top:0;left:0}::ng-deep .program-listing-body .program-listing-part .selected-area app-cs-checkbox .checkbox-item .value,::ng-deep .program-listing-body .program-listing-part .selected-area app-cs-checkbox-indeterminate .checkbox-item .value{color:#161b2f;font-size:12px;font-weight:500;margin-left:24px}::ng-deep .program-listing-body .program-listing-part .table-head .table-row{display:flex;align-items:center;justify-content:space-between}::ng-deep .program-listing-body .program-listing-part .table-head .table-row .table-column{color:#747576;font-size:11px;font-weight:500;height:28px;position:relative;width:100%;display:flex;align-items:center;padding:0 4px;text-transform:uppercase}::ng-deep .program-listing-body .program-listing-part .table-head .table-row .table-column.serial{width:32px;max-width:32px;justify-content:center}::ng-deep .program-listing-body .program-listing-part .table-head .table-row .table-column.name{width:calc(100% - 64px);min-width:calc(100% - 64px)}::ng-deep .program-listing-body .program-listing-part .table-head .table-row .table-column.action{width:32px;max-width:32px;justify-content:center}::ng-deep .program-listing-body .program-listing-part .program-listing-item{border:1px solid #f1f1f1;border-radius:2px;margin-bottom:4px}::ng-deep .program-listing-body .program-listing-part .program-listing-item .main-list{cursor:pointer}::ng-deep .program-listing-body .program-listing-part .program-listing-item:hover .table-row .serial .sr-no{opacity:0}::ng-deep .program-listing-body .program-listing-part .program-listing-item.active{border-color:#1e5dd3;box-shadow:0 3px 6px #4681ef26}::ng-deep .program-listing-body .program-listing-part .program-listing-item.active .table-row .serial .sr-no{opacity:0}::ng-deep .program-listing-body .program-listing-part .program-listing-item .table-row{display:flex;align-items:center;justify-content:space-between}::ng-deep .program-listing-body .program-listing-part .program-listing-item .table-row.disabled{pointer-events:none}::ng-deep .program-listing-body .program-listing-part .program-listing-item .table-row .table-column{color:#747576;height:48px;position:relative;width:100%;display:flex;align-items:center;padding:0 4px}::ng-deep .program-listing-body .program-listing-part .program-listing-item .table-row .table-column.serial{width:32px;max-width:32px;justify-content:center}::ng-deep .program-listing-body .program-listing-part .program-listing-item .table-row .table-column.serial .sr-no{width:16px;background:#f8f8f8;writing-mode:vertical-lr;color:#747576;font-size:10px;font-weight:500;display:flex;height:100%;align-items:center;justify-content:center;position:relative;transition:all .2s ease-in-out}::ng-deep .program-listing-body .program-listing-part .program-listing-item .table-row .table-column.serial app-cs-radio,::ng-deep .program-listing-body .program-listing-part .program-listing-item .table-row .table-column.serial app-cs-checkbox,::ng-deep .program-listing-body .program-listing-part .program-listing-item .table-row .table-column.serial app-cs-checkbox-indeterminate{position:absolute;top:14px;left:8px;opacity:0;transition:all .2s ease-in-out}::ng-deep .program-listing-body .program-listing-part .program-listing-item .table-row .table-column.serial app-cs-checkbox,::ng-deep .program-listing-body .program-listing-part .program-listing-item .table-row .table-column.serial app-cs-checkbox-indeterminate{background:#fff;border-radius:2px;width:16px;height:16px;top:16px}::ng-deep .program-listing-body .program-listing-part .program-listing-item .table-row .table-column.serial app-cs-checkbox .checkbox-item .checkbox,::ng-deep .program-listing-body .program-listing-part .program-listing-item .table-row .table-column.serial app-cs-checkbox-indeterminate .checkbox-item .checkbox,::ng-deep .program-listing-body .program-listing-part .program-listing-item .table-row .table-column.serial app-cs-checkbox .checkbox-item .checkmark,::ng-deep .program-listing-body .program-listing-part .program-listing-item .table-row .table-column.serial app-cs-checkbox-indeterminate .checkbox-item .checkmark{position:absolute;top:0;left:0}::ng-deep .program-listing-body .program-listing-part .program-listing-item .table-row .table-column.name{width:calc(100% - 32px);min-width:calc(100% - 32px)}::ng-deep .program-listing-body .program-listing-part .program-listing-item .table-row .table-column.name .name-inner{width:100%}::ng-deep .program-listing-body .program-listing-part .program-listing-item .table-row .table-column.name .name-inner .value{color:#161b2f;font-size:12px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding-right:8px}::ng-deep .program-listing-body .program-listing-part .program-listing-item .table-row .table-column.name .name-inner .count{background:#1E5DD3;border-radius:20px;color:#fff;font-size:9px;font-weight:500;line-height:16px;min-width:24px;display:inline-block;text-align:center;padding:0 4px}::ng-deep .program-listing-body .program-listing-part .program-listing-item .table-row .table-column.name .name-inner .name-with-count{display:flex;align-items:center;width:100%}::ng-deep .program-listing-body .program-listing-part .program-listing-item .table-row .table-column.action{width:32px;max-width:32px;justify-content:center}::ng-deep .program-listing-body .program-listing-part .program-listing-item .table-row .table-column.action button.arrow{background:transparent;border:none;border-radius:0;color:#747576;font-size:12px;padding:0;margin:0;display:flex;align-items:center;justify-content:center;height:100%;width:100%}::ng-deep .program-listing-body .program-listing-part .program-listing-item .table-row .table-column.action button.disabled{opacity:.5!important;pointer-events:none}::ng-deep .program-listing-body .program-listing-part .program-listing-item .table-row:hover .table-column.serial app-cs-radio,::ng-deep .program-listing-body .program-listing-part .program-listing-item .table-row.active .table-column.serial app-cs-radio,::ng-deep .program-listing-body .program-listing-part .program-listing-item .table-row:hover .table-column.serial app-cs-checkbox,::ng-deep .program-listing-body .program-listing-part .program-listing-item .table-row.active .table-column.serial app-cs-checkbox,::ng-deep .program-listing-body .program-listing-part .program-listing-item .table-row:hover .table-column.serial app-cs-checkbox-indeterminate,::ng-deep .program-listing-body .program-listing-part .program-listing-item .table-row.active .table-column.serial app-cs-checkbox-indeterminate{opacity:1}::ng-deep .program-listing-body .program-listing-part .program-listing-item .sub-list .table-row{border-top:1px solid #f1f1f1}::ng-deep .program-listing-body .program-listing-part .program-listing-item .sub-list .table-row:hover .table-column.serial .sr-no,::ng-deep .program-listing-body .program-listing-part .program-listing-item .sub-list .table-row.active .table-column.serial .sr-no{color:#f8f8f8}::ng-deep .program-listing-body .program-listing-part .program-listing-item .sub-list .table-row:hover .table-column.serial .sr-no vui-checkbox,::ng-deep .program-listing-body .program-listing-part .program-listing-item .sub-list .table-row.active .table-column.serial .sr-no vui-checkbox{opacity:1}::ng-deep .program-listing-body .program-listing-part .program-listing-item .sub-list .table-row .table-column.name .name-inner .value{color:#747576;font-size:12px}::ng-deep .program-listing-body .program-listing-part .program-listing-item.active .table-row .table-column.serial app-cs-radio,::ng-deep .program-listing-body .program-listing-part .program-listing-item.active .table-row .table-column.serial app-cs-checkbox,::ng-deep .program-listing-body .program-listing-part .program-listing-item.active .table-row .table-column.serial app-cs-checkbox-indeterminate{opacity:1}::ng-deep .program-listing-confirmation{background:#161B2F;border-radius:.25rem;position:absolute;left:2rem;right:2rem;bottom:2rem;z-index:1}::ng-deep .program-listing-confirmation .confirmation-top{display:flex;align-items:center;justify-content:flex-start;padding:1.25rem}::ng-deep .program-listing-confirmation .confirmation-top .icon-block{height:2.25rem;width:2.25rem;min-width:2.25rem;border-radius:50%;background:#fff;border:1px solid #dbdbdb;display:flex;justify-content:center;align-items:center;margin-right:1rem}::ng-deep .program-listing-confirmation .confirmation-top .icon-block i{color:#eb2424;font-size:12px}::ng-deep .program-listing-confirmation .confirmation-top .text{color:#fff;font-size:14px;font-weight:300}::ng-deep .program-listing-confirmation .confirmation-bottom{background:#282E48;border-radius:0 0 .25rem .25rem;padding:.75rem .75rem .75rem 1.25rem;display:flex;align-items:center;justify-content:space-between}::ng-deep .program-listing-confirmation .confirmation-bottom .message{font-size:14px;font-weight:500;line-height:20px;color:#fff}::ng-deep .program-listing-confirmation .confirmation-bottom .button-group{display:flex}::ng-deep .program-listing-confirmation .confirmation-bottom .button-group button{height:1.5rem;width:4rem;border:1px solid #fff;border-radius:.125rem;display:flex;align-items:center;justify-content:center;line-height:22px;cursor:pointer;font-size:11px;text-transform:uppercase;font-weight:500;padding:0}::ng-deep .program-listing-confirmation .confirmation-bottom .button-group button.no-btn{background:transparent;color:#fff}::ng-deep .program-listing-confirmation .confirmation-bottom .button-group button.yes-btn{background:#fff;color:#1e5dd3;margin-left:.25rem}@keyframes animate-right{0%{transform:translate(100%)}to{transform:translate(0)}}\n"]
|
|
36881
|
+
},] }
|
|
36882
|
+
];
|
|
36883
|
+
LinkProgramComponent.ctorParameters = function () { return [
|
|
36884
|
+
{ type: RestApiService },
|
|
36885
|
+
{ type: SnackBarService }
|
|
36886
|
+
]; };
|
|
36887
|
+
LinkProgramComponent.propDecorators = {
|
|
36888
|
+
policy: [{ type: i0.Input }],
|
|
36889
|
+
currentTab: [{ type: i0.Input }],
|
|
36890
|
+
mode: [{ type: i0.Input }],
|
|
36891
|
+
changeTab: [{ type: i0.Output }],
|
|
36892
|
+
updatedProgramDetails: [{ type: i0.Output }],
|
|
36893
|
+
save: [{ type: i0.Output }],
|
|
36894
|
+
close: [{ type: i0.Output }],
|
|
36895
|
+
refreshLinkedPolicies: [{ type: i0.Output }],
|
|
36896
|
+
programsList: [{ type: i0.Input }],
|
|
36897
|
+
getSelectedProgram: [{ type: i0.Input, args: ['selectedProgram',] }],
|
|
36898
|
+
selectedCategories: [{ type: i0.Input }],
|
|
36899
|
+
hideProgramsList: [{ type: i0.Input }],
|
|
36900
|
+
searchProgram: [{ type: i0.ViewChild, args: ['searchProgram',] }]
|
|
36901
|
+
};
|
|
36902
|
+
|
|
36903
|
+
var TooltipValidationPipe = /** @class */ (function () {
|
|
36904
|
+
function TooltipValidationPipe() {
|
|
36905
|
+
}
|
|
36906
|
+
TooltipValidationPipe.prototype.transform = function (value, program) {
|
|
36907
|
+
var _a, _b;
|
|
36908
|
+
value = value === null || value === void 0 ? void 0 : value.toString();
|
|
36909
|
+
var index = value === null || value === void 0 ? void 0 : value.indexOf('<br>');
|
|
36910
|
+
if (index == -1) {
|
|
36911
|
+
var newVal = value === null || value === void 0 ? void 0 : value.replaceAll(/<\/?span[^>]*>/g, "");
|
|
36912
|
+
newVal = newVal === null || newVal === void 0 ? void 0 : newVal.replaceAll("<", "<");
|
|
36913
|
+
if ((_a = program === null || program === void 0 ? void 0 : program.name) === null || _a === void 0 ? void 0 : _a.length) {
|
|
36914
|
+
newVal = newVal + ("<span class='small-text'>WITHIN: " + ((_b = program === null || program === void 0 ? void 0 : program.name) === null || _b === void 0 ? void 0 : _b.join(' < ')) + "</span>");
|
|
36915
|
+
}
|
|
36916
|
+
return newVal;
|
|
36917
|
+
}
|
|
36918
|
+
else {
|
|
36919
|
+
return value;
|
|
36920
|
+
}
|
|
36921
|
+
};
|
|
36922
|
+
return TooltipValidationPipe;
|
|
36923
|
+
}());
|
|
36924
|
+
TooltipValidationPipe.decorators = [
|
|
36925
|
+
{ type: i0.Pipe, args: [{
|
|
36926
|
+
name: 'tooltipValidation'
|
|
36927
|
+
},] }
|
|
36928
|
+
];
|
|
36929
|
+
|
|
36243
36930
|
var VComplyWorkflowEngineModule = /** @class */ (function () {
|
|
36244
36931
|
function VComplyWorkflowEngineModule() {
|
|
36245
36932
|
}
|
|
@@ -36361,7 +37048,9 @@
|
|
|
36361
37048
|
FrequencyResponsibilityListComponent,
|
|
36362
37049
|
ApprovalWorkflowComponent,
|
|
36363
37050
|
SelectApproversComponent,
|
|
36364
|
-
PolicyAccessComponent
|
|
37051
|
+
PolicyAccessComponent,
|
|
37052
|
+
LinkProgramComponent,
|
|
37053
|
+
TooltipValidationPipe
|
|
36365
37054
|
],
|
|
36366
37055
|
imports: [
|
|
36367
37056
|
forms.ReactiveFormsModule,
|
|
@@ -36388,7 +37077,8 @@
|
|
|
36388
37077
|
CreateAssessmentModule,
|
|
36389
37078
|
ActionDialogModule,
|
|
36390
37079
|
AssessmentPreviewModule,
|
|
36391
|
-
CreateProgramUiModule
|
|
37080
|
+
CreateProgramUiModule,
|
|
37081
|
+
// LinkProgramModule
|
|
36392
37082
|
],
|
|
36393
37083
|
exports: [
|
|
36394
37084
|
WorkflowEngineContainerComponent,
|
|
@@ -36504,202 +37194,205 @@
|
|
|
36504
37194
|
exports["ɵel"] = ApprovalWorkflowComponent;
|
|
36505
37195
|
exports["ɵem"] = SelectApproversComponent;
|
|
36506
37196
|
exports["ɵen"] = PolicyAccessComponent;
|
|
36507
|
-
exports["ɵeo"] =
|
|
36508
|
-
exports["ɵep"] =
|
|
36509
|
-
exports["ɵeq"] =
|
|
36510
|
-
exports["ɵer"] =
|
|
36511
|
-
exports["ɵes"] =
|
|
36512
|
-
exports["ɵet"] =
|
|
36513
|
-
exports["ɵeu"] =
|
|
36514
|
-
exports["ɵev"] =
|
|
36515
|
-
exports["ɵew"] =
|
|
36516
|
-
exports["ɵex"] =
|
|
36517
|
-
exports["ɵey"] =
|
|
36518
|
-
exports["ɵez"] =
|
|
37197
|
+
exports["ɵeo"] = LinkProgramComponent;
|
|
37198
|
+
exports["ɵep"] = RestApiService;
|
|
37199
|
+
exports["ɵeq"] = TooltipValidationPipe;
|
|
37200
|
+
exports["ɵer"] = CreateAssessmentModule;
|
|
37201
|
+
exports["ɵes"] = CreateAssessmentContainerComponent;
|
|
37202
|
+
exports["ɵet"] = EditorService;
|
|
37203
|
+
exports["ɵeu"] = DialogService;
|
|
37204
|
+
exports["ɵev"] = DialogModule;
|
|
37205
|
+
exports["ɵew"] = DialogComponent;
|
|
37206
|
+
exports["ɵex"] = InsertionDirective;
|
|
37207
|
+
exports["ɵey"] = DialogRef;
|
|
37208
|
+
exports["ɵez"] = DialogConfig;
|
|
36519
37209
|
exports["ɵf"] = WorkflowRiskComponent;
|
|
36520
|
-
exports["ɵfa"] =
|
|
36521
|
-
exports["ɵfb"] =
|
|
36522
|
-
exports["ɵfc"] =
|
|
36523
|
-
exports["ɵfd"] =
|
|
36524
|
-
exports["ɵfe"] =
|
|
36525
|
-
exports["ɵff"] =
|
|
36526
|
-
exports["ɵfg"] =
|
|
36527
|
-
exports["ɵfh"] =
|
|
36528
|
-
exports["ɵfi"] =
|
|
36529
|
-
exports["ɵfj"] =
|
|
36530
|
-
exports["ɵfk"] =
|
|
36531
|
-
exports["ɵfl"] =
|
|
36532
|
-
exports["ɵfm"] =
|
|
36533
|
-
exports["ɵfn"] =
|
|
36534
|
-
exports["ɵfo"] =
|
|
36535
|
-
exports["ɵfp"] =
|
|
36536
|
-
exports["ɵfq"] =
|
|
36537
|
-
exports["ɵfr"] =
|
|
36538
|
-
exports["ɵfs"] =
|
|
36539
|
-
exports["ɵft"] =
|
|
36540
|
-
exports["ɵfu"] =
|
|
36541
|
-
exports["ɵfv"] =
|
|
36542
|
-
exports["ɵfw"] =
|
|
36543
|
-
exports["ɵfx"] =
|
|
36544
|
-
exports["ɵfy"] =
|
|
36545
|
-
exports["ɵfz"] =
|
|
37210
|
+
exports["ɵfa"] = QuestionTypeComponent;
|
|
37211
|
+
exports["ɵfb"] = AddPageDetailsComponent;
|
|
37212
|
+
exports["ɵfc"] = AssessmentSettingsComponent;
|
|
37213
|
+
exports["ɵfd"] = ResultCriteriaService;
|
|
37214
|
+
exports["ɵfe"] = AddSegmentPopupComponent;
|
|
37215
|
+
exports["ɵff"] = AddResponseSetPopupComponent;
|
|
37216
|
+
exports["ɵfg"] = EditorWrapperComponent;
|
|
37217
|
+
exports["ɵfh"] = ValidatorService;
|
|
37218
|
+
exports["ɵfi"] = QuickSettingsComponent;
|
|
37219
|
+
exports["ɵfj"] = SingleLineEditorComponent;
|
|
37220
|
+
exports["ɵfk"] = ResponseSelectorComponent;
|
|
37221
|
+
exports["ɵfl"] = MoveComponent;
|
|
37222
|
+
exports["ɵfm"] = LogicComponent;
|
|
37223
|
+
exports["ɵfn"] = AddLogicComponent;
|
|
37224
|
+
exports["ɵfo"] = ToolkitComponent;
|
|
37225
|
+
exports["ɵfp"] = ErrorMessagePipe;
|
|
37226
|
+
exports["ɵfq"] = QuestionFilterPipe;
|
|
37227
|
+
exports["ɵfr"] = QuestionParserPipe;
|
|
37228
|
+
exports["ɵfs"] = FormatterPipe;
|
|
37229
|
+
exports["ɵft"] = SettingAnonymousComponent;
|
|
37230
|
+
exports["ɵfu"] = SettingResponseSegmentComponent;
|
|
37231
|
+
exports["ɵfv"] = PageHeaderComponent;
|
|
37232
|
+
exports["ɵfw"] = WelcomeThankyouComponent;
|
|
37233
|
+
exports["ɵfx"] = CurrentPageQuestionPipe;
|
|
37234
|
+
exports["ɵfy"] = QuestionPageFilterPipe;
|
|
37235
|
+
exports["ɵfz"] = TypeOfPipe;
|
|
36546
37236
|
exports["ɵg"] = AddRiskService;
|
|
36547
|
-
exports["ɵga"] =
|
|
36548
|
-
exports["ɵgb"] =
|
|
36549
|
-
exports["ɵgc"] =
|
|
36550
|
-
exports["ɵgd"] =
|
|
36551
|
-
exports["ɵge"] =
|
|
36552
|
-
exports["ɵgf"] =
|
|
36553
|
-
exports["ɵgg"] =
|
|
36554
|
-
exports["ɵgh"] =
|
|
36555
|
-
exports["ɵgi"] =
|
|
36556
|
-
exports["ɵgj"] =
|
|
36557
|
-
exports["ɵgk"] =
|
|
36558
|
-
exports["ɵgl"] =
|
|
36559
|
-
exports["ɵgm"] =
|
|
36560
|
-
exports["ɵgn"] =
|
|
36561
|
-
exports["ɵgo"] =
|
|
36562
|
-
exports["ɵgp"] =
|
|
36563
|
-
exports["ɵgq"] =
|
|
36564
|
-
exports["ɵgr"] =
|
|
36565
|
-
exports["ɵgs"] =
|
|
36566
|
-
exports["ɵgt"] =
|
|
36567
|
-
exports["ɵgu"] =
|
|
36568
|
-
exports["ɵgv"] =
|
|
36569
|
-
exports["ɵgw"] =
|
|
36570
|
-
exports["ɵgx"] =
|
|
36571
|
-
exports["ɵgy"] =
|
|
36572
|
-
exports["ɵgz"] =
|
|
37237
|
+
exports["ɵga"] = TooltipModule;
|
|
37238
|
+
exports["ɵgb"] = ToolTipDirective;
|
|
37239
|
+
exports["ɵgc"] = PopoverModule;
|
|
37240
|
+
exports["ɵgd"] = PopoverComponent;
|
|
37241
|
+
exports["ɵge"] = PopoverService;
|
|
37242
|
+
exports["ɵgf"] = PopoverDirective;
|
|
37243
|
+
exports["ɵgg"] = PopoverEventDirective;
|
|
37244
|
+
exports["ɵgh"] = PopoverLongpressDirective;
|
|
37245
|
+
exports["ɵgi"] = FormgroupModule$1;
|
|
37246
|
+
exports["ɵgj"] = CsCheckboxComponent$1;
|
|
37247
|
+
exports["ɵgk"] = CsRadioComponent$1;
|
|
37248
|
+
exports["ɵgl"] = CsSwitchComponent$1;
|
|
37249
|
+
exports["ɵgm"] = CsRadioGroupComponent$1;
|
|
37250
|
+
exports["ɵgn"] = CsSelectComponent$2;
|
|
37251
|
+
exports["ɵgo"] = PascalPipe$1;
|
|
37252
|
+
exports["ɵgp"] = CsCheckboxIndeterminateComponent$1;
|
|
37253
|
+
exports["ɵgq"] = NoDataModule$1;
|
|
37254
|
+
exports["ɵgr"] = NoDataComponent$1;
|
|
37255
|
+
exports["ɵgs"] = BuildModule;
|
|
37256
|
+
exports["ɵgt"] = MultipleChoiceComponent;
|
|
37257
|
+
exports["ɵgu"] = CheckboxComponent$1;
|
|
37258
|
+
exports["ɵgv"] = ImageChoiceComponent;
|
|
37259
|
+
exports["ɵgw"] = StarRatingComponent;
|
|
37260
|
+
exports["ɵgx"] = MatrixDropdownComponent;
|
|
37261
|
+
exports["ɵgy"] = DropdownComponent;
|
|
37262
|
+
exports["ɵgz"] = MatrixRatingScaleComponent;
|
|
36573
37263
|
exports["ɵh"] = FrequencyService;
|
|
36574
|
-
exports["ɵha"] =
|
|
36575
|
-
exports["ɵhb"] =
|
|
36576
|
-
exports["ɵhc"] =
|
|
36577
|
-
exports["ɵhd"] =
|
|
36578
|
-
exports["ɵhe"] =
|
|
36579
|
-
exports["ɵhf"] =
|
|
36580
|
-
exports["ɵhg"] =
|
|
36581
|
-
exports["ɵhh"] =
|
|
36582
|
-
exports["ɵhi"] =
|
|
36583
|
-
exports["ɵhj"] =
|
|
36584
|
-
exports["ɵhk"] =
|
|
36585
|
-
exports["ɵhl"] =
|
|
36586
|
-
exports["ɵhm"] =
|
|
36587
|
-
exports["ɵhn"] =
|
|
36588
|
-
exports["ɵho"] =
|
|
36589
|
-
exports["ɵhp"] =
|
|
36590
|
-
exports["ɵhq"] =
|
|
36591
|
-
exports["ɵhr"] =
|
|
36592
|
-
exports["ɵhs"] =
|
|
36593
|
-
exports["ɵht"] =
|
|
36594
|
-
exports["ɵhu"] =
|
|
36595
|
-
exports["ɵhv"] =
|
|
36596
|
-
exports["ɵhw"] =
|
|
36597
|
-
exports["ɵhx"] =
|
|
36598
|
-
exports["ɵhy"] =
|
|
36599
|
-
exports["ɵhz"] =
|
|
37264
|
+
exports["ɵha"] = RankingComponent;
|
|
37265
|
+
exports["ɵhb"] = SliderComponent;
|
|
37266
|
+
exports["ɵhc"] = MultipleTextboxComponent;
|
|
37267
|
+
exports["ɵhd"] = DateTimeComponent;
|
|
37268
|
+
exports["ɵhe"] = ChoiceSettingsPanelComponent;
|
|
37269
|
+
exports["ɵhf"] = WelcomeComponent$1;
|
|
37270
|
+
exports["ɵhg"] = ThankYouComponent$1;
|
|
37271
|
+
exports["ɵhh"] = WeightageSelectorComponent;
|
|
37272
|
+
exports["ɵhi"] = FormgroupModule;
|
|
37273
|
+
exports["ɵhj"] = CsCheckboxComponent;
|
|
37274
|
+
exports["ɵhk"] = CsRadioComponent;
|
|
37275
|
+
exports["ɵhl"] = CsSwitchComponent;
|
|
37276
|
+
exports["ɵhm"] = CsRadioGroupComponent;
|
|
37277
|
+
exports["ɵhn"] = CsSelectComponent;
|
|
37278
|
+
exports["ɵho"] = PascalPipe;
|
|
37279
|
+
exports["ɵhp"] = SearchMultiSelectPipe;
|
|
37280
|
+
exports["ɵhq"] = ClickOutsideDirective;
|
|
37281
|
+
exports["ɵhr"] = CsCheckboxIndeterminateComponent;
|
|
37282
|
+
exports["ɵhs"] = PreviewModule;
|
|
37283
|
+
exports["ɵht"] = PreviewWrapperComponent;
|
|
37284
|
+
exports["ɵhu"] = PreviewMultipleChoiceComponent;
|
|
37285
|
+
exports["ɵhv"] = PreviewCheckboxComponent;
|
|
37286
|
+
exports["ɵhw"] = PreviewImageChoiceComponent;
|
|
37287
|
+
exports["ɵhx"] = PreviewStarRatingComponent;
|
|
37288
|
+
exports["ɵhy"] = PreviewSingleTextboxComponent;
|
|
37289
|
+
exports["ɵhz"] = PreviewCommentBoxComponent;
|
|
36600
37290
|
exports["ɵi"] = WorkflowComplianceComponent;
|
|
36601
|
-
exports["ɵia"] =
|
|
36602
|
-
exports["ɵib"] =
|
|
36603
|
-
exports["ɵic"] =
|
|
36604
|
-
exports["ɵid"] =
|
|
36605
|
-
exports["ɵie"] =
|
|
36606
|
-
exports["ɵif"] =
|
|
36607
|
-
exports["ɵig"] =
|
|
36608
|
-
exports["ɵih"] =
|
|
36609
|
-
exports["ɵii"] =
|
|
36610
|
-
exports["ɵij"] =
|
|
36611
|
-
exports["ɵik"] =
|
|
36612
|
-
exports["ɵil"] =
|
|
36613
|
-
exports["ɵim"] =
|
|
36614
|
-
exports["ɵin"] =
|
|
36615
|
-
exports["ɵio"] =
|
|
36616
|
-
exports["ɵip"] =
|
|
36617
|
-
exports["ɵiq"] =
|
|
36618
|
-
exports["ɵir"] =
|
|
36619
|
-
exports["ɵis"] =
|
|
36620
|
-
exports["ɵit"] =
|
|
36621
|
-
exports["ɵiu"] =
|
|
36622
|
-
exports["ɵiv"] =
|
|
36623
|
-
exports["ɵiw"] =
|
|
36624
|
-
exports["ɵix"] =
|
|
36625
|
-
exports["ɵiy"] =
|
|
36626
|
-
exports["ɵiz"] =
|
|
37291
|
+
exports["ɵia"] = PreviewMatrixDropdownComponent;
|
|
37292
|
+
exports["ɵib"] = PreviewDropdownComponent;
|
|
37293
|
+
exports["ɵic"] = PreviewMatrixRatingScaleComponent;
|
|
37294
|
+
exports["ɵid"] = PreviewRankingComponent;
|
|
37295
|
+
exports["ɵie"] = PreviewSliderComponent;
|
|
37296
|
+
exports["ɵif"] = PreviewMultipleTextboxComponent;
|
|
37297
|
+
exports["ɵig"] = PreviewDateTimeComponent;
|
|
37298
|
+
exports["ɵih"] = PreviewFileUploadComponent;
|
|
37299
|
+
exports["ɵii"] = WelcomeComponent;
|
|
37300
|
+
exports["ɵij"] = ThankYouComponent;
|
|
37301
|
+
exports["ɵik"] = SelectModule;
|
|
37302
|
+
exports["ɵil"] = CsSelectComponent$1;
|
|
37303
|
+
exports["ɵim"] = SelectService;
|
|
37304
|
+
exports["ɵin"] = CsOptionComponent;
|
|
37305
|
+
exports["ɵio"] = AssessmentPreviewModule;
|
|
37306
|
+
exports["ɵip"] = CheckboxQuestionComponent;
|
|
37307
|
+
exports["ɵiq"] = DateTimeComponent$1;
|
|
37308
|
+
exports["ɵir"] = DeviceComponent;
|
|
37309
|
+
exports["ɵis"] = FileUploadComponent;
|
|
37310
|
+
exports["ɵit"] = PreviewComponent;
|
|
37311
|
+
exports["ɵiu"] = PreviewContainerComponent;
|
|
37312
|
+
exports["ɵiv"] = QuickSettingsComponent$1;
|
|
37313
|
+
exports["ɵiw"] = RadioQuestionComponent;
|
|
37314
|
+
exports["ɵix"] = SelectQuestionComponent;
|
|
37315
|
+
exports["ɵiy"] = SingleTextboxComponent;
|
|
37316
|
+
exports["ɵiz"] = PageHeaderComponent$1;
|
|
36627
37317
|
exports["ɵj"] = ResponsibilityService;
|
|
36628
|
-
exports["ɵja"] =
|
|
36629
|
-
exports["ɵjb"] =
|
|
36630
|
-
exports["ɵjc"] =
|
|
36631
|
-
exports["ɵjd"] =
|
|
36632
|
-
exports["ɵje"] =
|
|
36633
|
-
exports["ɵjf"] =
|
|
36634
|
-
exports["ɵjg"] =
|
|
36635
|
-
exports["ɵjh"] =
|
|
36636
|
-
exports["ɵji"] =
|
|
36637
|
-
exports["ɵjj"] =
|
|
36638
|
-
exports["ɵjk"] =
|
|
36639
|
-
exports["ɵjl"] =
|
|
36640
|
-
exports["ɵjm"] =
|
|
36641
|
-
exports["ɵjn"] =
|
|
36642
|
-
exports["ɵjo"] =
|
|
36643
|
-
exports["ɵjp"] =
|
|
36644
|
-
exports["ɵjq"] =
|
|
36645
|
-
exports["ɵjr"] =
|
|
36646
|
-
exports["ɵjs"] =
|
|
36647
|
-
exports["ɵjt"] =
|
|
36648
|
-
exports["ɵju"] =
|
|
36649
|
-
exports["ɵjv"] =
|
|
36650
|
-
exports["ɵjw"] =
|
|
36651
|
-
exports["ɵjx"] =
|
|
36652
|
-
exports["ɵjy"] =
|
|
36653
|
-
exports["ɵjz"] =
|
|
37318
|
+
exports["ɵja"] = WelcomeComponent$2;
|
|
37319
|
+
exports["ɵjb"] = LogicQuestionsModule;
|
|
37320
|
+
exports["ɵjc"] = LogicMultipleChoiceComponent;
|
|
37321
|
+
exports["ɵjd"] = LogicCheckboxComponent;
|
|
37322
|
+
exports["ɵje"] = LogicImageChoiceComponent;
|
|
37323
|
+
exports["ɵjf"] = LogicStarRatingComponent;
|
|
37324
|
+
exports["ɵjg"] = LogicSingleTextboxComponent;
|
|
37325
|
+
exports["ɵjh"] = LogicCommentBoxComponent;
|
|
37326
|
+
exports["ɵji"] = LogicDropdownComponent;
|
|
37327
|
+
exports["ɵjj"] = LogicRankingComponent;
|
|
37328
|
+
exports["ɵjk"] = LogicSliderComponent;
|
|
37329
|
+
exports["ɵjl"] = LogicMultipleTextboxComponent;
|
|
37330
|
+
exports["ɵjm"] = LogicDateTimeComponent;
|
|
37331
|
+
exports["ɵjn"] = EditorLoaderModule;
|
|
37332
|
+
exports["ɵjo"] = EditorLoaderComponent;
|
|
37333
|
+
exports["ɵjp"] = LineLoaderModule;
|
|
37334
|
+
exports["ɵjq"] = LineLoaderComponent;
|
|
37335
|
+
exports["ɵjr"] = VLoaderModule;
|
|
37336
|
+
exports["ɵjs"] = LoaderComponent$1;
|
|
37337
|
+
exports["ɵjt"] = LoaderInlineComponent;
|
|
37338
|
+
exports["ɵju"] = SmileyDialogModule;
|
|
37339
|
+
exports["ɵjv"] = SmileyDialogComponent;
|
|
37340
|
+
exports["ɵjw"] = SnackBarModule;
|
|
37341
|
+
exports["ɵjx"] = SnackBarComponent;
|
|
37342
|
+
exports["ɵjy"] = SmileyDialogInlineModule;
|
|
37343
|
+
exports["ɵjz"] = SmileyDialogInlineComponent;
|
|
36654
37344
|
exports["ɵk"] = ProgramsService;
|
|
36655
|
-
exports["ɵka"] =
|
|
36656
|
-
exports["ɵkb"] =
|
|
36657
|
-
exports["ɵkc"] =
|
|
36658
|
-
exports["ɵkd"] =
|
|
36659
|
-
exports["ɵke"] =
|
|
36660
|
-
exports["ɵkf"] =
|
|
36661
|
-
exports["ɵkg"] =
|
|
36662
|
-
exports["ɵkh"] =
|
|
36663
|
-
exports["ɵki"] =
|
|
36664
|
-
exports["ɵkj"] =
|
|
36665
|
-
exports["ɵkk"] =
|
|
36666
|
-
exports["ɵkl"] =
|
|
36667
|
-
exports["ɵkm"] =
|
|
36668
|
-
exports["ɵkn"] =
|
|
36669
|
-
exports["ɵko"] =
|
|
36670
|
-
exports["ɵkp"] =
|
|
36671
|
-
exports["ɵkq"] =
|
|
36672
|
-
exports["ɵkr"] =
|
|
36673
|
-
exports["ɵks"] =
|
|
36674
|
-
exports["ɵkt"] =
|
|
36675
|
-
exports["ɵku"] =
|
|
36676
|
-
exports["ɵkv"] =
|
|
36677
|
-
exports["ɵkw"] =
|
|
36678
|
-
exports["ɵkx"] =
|
|
36679
|
-
exports["ɵky"] =
|
|
36680
|
-
exports["ɵkz"] =
|
|
37345
|
+
exports["ɵka"] = ClickOutsideModule;
|
|
37346
|
+
exports["ɵkb"] = ClickOutsideDirective$1;
|
|
37347
|
+
exports["ɵkc"] = PopoverHoverModule;
|
|
37348
|
+
exports["ɵkd"] = PopoverHoverComponent;
|
|
37349
|
+
exports["ɵke"] = PopoverHoverService;
|
|
37350
|
+
exports["ɵkf"] = PopoverHoverDirective;
|
|
37351
|
+
exports["ɵkg"] = PaginationModule$1;
|
|
37352
|
+
exports["ɵkh"] = PaginationComponent$1;
|
|
37353
|
+
exports["ɵki"] = ActionDialogModule;
|
|
37354
|
+
exports["ɵkj"] = DeleteComponent;
|
|
37355
|
+
exports["ɵkk"] = DeactivateComponent;
|
|
37356
|
+
exports["ɵkl"] = ActiveComponent;
|
|
37357
|
+
exports["ɵkm"] = DuplicateComponent;
|
|
37358
|
+
exports["ɵkn"] = CreateProgramUiModule;
|
|
37359
|
+
exports["ɵko"] = TabSelector;
|
|
37360
|
+
exports["ɵkp"] = TickMarkComponent;
|
|
37361
|
+
exports["ɵkq"] = FormFieldComponent;
|
|
37362
|
+
exports["ɵkr"] = FilePillComponent;
|
|
37363
|
+
exports["ɵks"] = InputWithPillComponent;
|
|
37364
|
+
exports["ɵkt"] = SwitchComponent;
|
|
37365
|
+
exports["ɵku"] = InputTrimDirective;
|
|
37366
|
+
exports["ɵkv"] = RoleListComponent;
|
|
37367
|
+
exports["ɵkw"] = CheckboxComponent;
|
|
37368
|
+
exports["ɵkx"] = VuiFloatingBarComponent;
|
|
37369
|
+
exports["ɵky"] = SearchPipe;
|
|
37370
|
+
exports["ɵkz"] = UserGroupListComponent;
|
|
36681
37371
|
exports["ɵl"] = WorkflowPolicyComponent;
|
|
36682
|
-
exports["ɵla"] =
|
|
36683
|
-
exports["ɵlb"] =
|
|
36684
|
-
exports["ɵlc"] =
|
|
36685
|
-
exports["ɵld"] =
|
|
36686
|
-
exports["ɵle"] =
|
|
36687
|
-
exports["ɵlf"] =
|
|
36688
|
-
exports["ɵlg"] =
|
|
36689
|
-
exports["ɵlh"] =
|
|
36690
|
-
exports["ɵli"] =
|
|
36691
|
-
exports["ɵlj"] =
|
|
36692
|
-
exports["ɵlk"] =
|
|
36693
|
-
exports["ɵll"] =
|
|
36694
|
-
exports["ɵlm"] =
|
|
36695
|
-
exports["ɵln"] =
|
|
36696
|
-
exports["ɵlo"] =
|
|
36697
|
-
exports["ɵlp"] =
|
|
36698
|
-
exports["ɵlq"] =
|
|
36699
|
-
exports["ɵlr"] =
|
|
36700
|
-
exports["ɵls"] =
|
|
36701
|
-
exports["ɵlt"] =
|
|
36702
|
-
exports["ɵlu"] =
|
|
37372
|
+
exports["ɵla"] = ListToIdPipe;
|
|
37373
|
+
exports["ɵlb"] = RefDisconnectPipe;
|
|
37374
|
+
exports["ɵlc"] = AssessmentPickerComponent;
|
|
37375
|
+
exports["ɵld"] = AssessmentService;
|
|
37376
|
+
exports["ɵle"] = AssessmentLoaderComponent;
|
|
37377
|
+
exports["ɵlf"] = AssessmentSubLoaderComponent;
|
|
37378
|
+
exports["ɵlg"] = Pagination;
|
|
37379
|
+
exports["ɵlh"] = DefineFrameworkListingComponent;
|
|
37380
|
+
exports["ɵli"] = FrameworkService;
|
|
37381
|
+
exports["ɵlj"] = CustomFieldComponent;
|
|
37382
|
+
exports["ɵlk"] = LoaderComponent;
|
|
37383
|
+
exports["ɵll"] = LoaderFrameworkComponent;
|
|
37384
|
+
exports["ɵlm"] = PagerPipe;
|
|
37385
|
+
exports["ɵln"] = CategoryAllSelectPipe;
|
|
37386
|
+
exports["ɵlo"] = SubCatIndeterPipe;
|
|
37387
|
+
exports["ɵlp"] = SearchNewPipe;
|
|
37388
|
+
exports["ɵlq"] = SelectedAssessmentPipe;
|
|
37389
|
+
exports["ɵlr"] = AssessmentResolverPipe;
|
|
37390
|
+
exports["ɵls"] = FilterPipe;
|
|
37391
|
+
exports["ɵlt"] = TooltipMessagePipe;
|
|
37392
|
+
exports["ɵlu"] = PaginationModule;
|
|
37393
|
+
exports["ɵlv"] = PaginationComponent;
|
|
37394
|
+
exports["ɵlw"] = NoDataModule;
|
|
37395
|
+
exports["ɵlx"] = NoDataComponent;
|
|
36703
37396
|
exports["ɵm"] = PolicyService;
|
|
36704
37397
|
exports["ɵn"] = MoreOptionComponent;
|
|
36705
37398
|
exports["ɵo"] = OwnerListComponent;
|