vc-create-dashboard 3.0.83 → 3.0.85
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/README.md +24 -24
- package/esm2022/lib/configurations.mjs +7 -7
- package/esm2022/lib/create-dashboard-container/categories/categories-config.mjs +2 -2
- package/esm2022/lib/create-dashboard-container/categories/categories.component.mjs +212 -212
- package/esm2022/lib/create-dashboard-container/configure-widgets/configure-widgets/configure-widgets.component.mjs +350 -350
- package/esm2022/lib/create-dashboard-container/configure-widgets/configure-widgets/widget.interface.mjs +2 -2
- package/esm2022/lib/create-dashboard-container/configure-widgets/configure-widgets.module.mjs +47 -47
- package/esm2022/lib/create-dashboard-container/constants/assets.constant.mjs +37 -37
- package/esm2022/lib/create-dashboard-container/create-dashboard-config.mjs +2 -2
- package/esm2022/lib/create-dashboard-container/create-dashboard.component.mjs +1601 -1520
- package/esm2022/lib/create-dashboard-container/create-dashboard.module.mjs +127 -127
- package/esm2022/lib/create-dashboard-container/directives/directives.module.mjs +24 -24
- package/esm2022/lib/create-dashboard-container/directives/scroll-in-view.directive.mjs +36 -36
- package/esm2022/lib/create-dashboard-container/form-group/form-group.component.mjs +153 -153
- package/esm2022/lib/create-dashboard-container/frequency/frequency.component.mjs +309 -309
- package/esm2022/lib/create-dashboard-container/interfaces/widget-data-model.mjs +2 -2
- package/esm2022/lib/create-dashboard-container/pipes/filter.pipe.mjs +30 -30
- package/esm2022/lib/create-dashboard-container/pipes/search-program.pipe.mjs +37 -37
- package/esm2022/lib/create-dashboard-container/pipes/search.pipe.mjs +25 -25
- package/esm2022/lib/create-dashboard-container/pipes/text-count.pipe.mjs +18 -19
- package/esm2022/lib/create-dashboard-container/program-list/constant.mjs +31 -31
- package/esm2022/lib/create-dashboard-container/program-list/information-block/information-block.component.mjs +13 -13
- package/esm2022/lib/create-dashboard-container/program-list/interfaces/list-item.interface.mjs +2 -2
- package/esm2022/lib/create-dashboard-container/program-list/list-container/list-container.component.mjs +50 -50
- package/esm2022/lib/create-dashboard-container/program-list/pipes/check-selected-items.pipes.mjs +23 -23
- package/esm2022/lib/create-dashboard-container/program-list/program-list/program-list.component.mjs +294 -294
- package/esm2022/lib/create-dashboard-container/program-list/program-list.module.mjs +60 -60
- package/esm2022/lib/create-dashboard-container/program-list/services/list-utils.service.mjs +27 -27
- package/esm2022/lib/create-dashboard-container/program-list/services/program-list-api.service.mjs +28 -35
- package/esm2022/lib/create-dashboard-container/responsibility-center/responsibility-center.component.mjs +224 -149
- package/esm2022/lib/create-dashboard-container/risk-categories/risk-categories-config.mjs +2 -2
- package/esm2022/lib/create-dashboard-container/risk-categories/risk-categories.component.mjs +206 -206
- package/esm2022/lib/create-dashboard-container/services/configure-widgets.service.mjs +233 -238
- package/esm2022/lib/create-dashboard-container/services/create-dashboard.service.mjs +227 -243
- package/esm2022/lib/create-dashboard-container/services/pagination.service.mjs +28 -28
- package/esm2022/lib/create-dashboard-container/user-list/user-list.component.mjs +440 -440
- package/esm2022/lib/create-dashboard-container/user-list/user-list.config.mjs +2 -2
- package/esm2022/lib/create-dashboard-container/utils/dashboard-edit.utils.mjs +181 -181
- package/esm2022/lib/create-dashboard.service.mjs +14 -14
- package/esm2022/lib/ui-kit/dashboard-footer/dashboard-footer/dashboard-footer.component.mjs +52 -52
- package/esm2022/lib/ui-kit/dashboard-footer/dashboard-footer-config.mjs +2 -2
- package/esm2022/lib/ui-kit/dashboard-footer/dashboard-footer.module.mjs +32 -32
- package/esm2022/lib/ui-kit/dialog/dialog-config.mjs +7 -7
- package/esm2022/lib/ui-kit/dialog/dialog-injector.mjs +17 -17
- package/esm2022/lib/ui-kit/dialog/dialog-ref.mjs +11 -11
- package/esm2022/lib/ui-kit/dialog/dialog.component.mjs +96 -96
- package/esm2022/lib/ui-kit/dialog/dialog.module.mjs +20 -20
- package/esm2022/lib/ui-kit/dialog/dialog.service.mjs +56 -56
- package/esm2022/lib/ui-kit/dialog/insertion.directive.mjs +17 -17
- package/esm2022/lib/ui-kit/floating-bar/floating-bar.component.mjs +57 -57
- package/esm2022/lib/ui-kit/floating-bar/floating-bar.module.mjs +32 -32
- package/esm2022/lib/ui-kit/formgroup/click-outside.directive.mjs +30 -30
- package/esm2022/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.mjs +29 -29
- package/esm2022/lib/ui-kit/formgroup/cs-radio/cs-radio.component.mjs +34 -34
- package/esm2022/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.mjs +14 -14
- package/esm2022/lib/ui-kit/formgroup/cs-select/cs-select.component.mjs +119 -119
- package/esm2022/lib/ui-kit/formgroup/cs-switch/cs-switch.component.mjs +39 -39
- package/esm2022/lib/ui-kit/formgroup/formgroup.module.mjs +55 -55
- package/esm2022/lib/ui-kit/formgroup/pipes/pascal.pipe.mjs +19 -19
- package/esm2022/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.mjs +24 -24
- package/esm2022/lib/ui-kit/loaders/loaders.module.mjs +24 -24
- package/esm2022/lib/ui-kit/loaders/table-loader/table-loader.component.mjs +18 -18
- package/esm2022/lib/ui-kit/no-data/no-data.component.mjs +47 -47
- package/esm2022/lib/ui-kit/no-data/no-data.module.mjs +18 -18
- package/esm2022/lib/ui-kit/pagination/pagination.component.mjs +130 -130
- package/esm2022/lib/ui-kit/pagination/pagination.module.mjs +18 -18
- package/esm2022/lib/ui-kit/popover/popover.component.mjs +129 -129
- package/esm2022/lib/ui-kit/popover/popover.directive.mjs +93 -93
- package/esm2022/lib/ui-kit/popover/popover.module.mjs +21 -21
- package/esm2022/lib/ui-kit/popover/popover.service.mjs +23 -23
- package/esm2022/lib/ui-kit/select/cs-option/cs-option.component.mjs +41 -41
- package/esm2022/lib/ui-kit/select/cs-select/cs-select.component.mjs +107 -107
- package/esm2022/lib/ui-kit/select/safe-html.pipe.mjs +21 -21
- package/esm2022/lib/ui-kit/select/select.module.mjs +21 -21
- package/esm2022/lib/ui-kit/services/cs-select.service.mjs +16 -16
- package/esm2022/lib/ui-kit/smiley-dialog/smiley-dialog.component.mjs +52 -52
- package/esm2022/lib/ui-kit/smiley-dialog/smiley-dialog.module.mjs +18 -18
- package/esm2022/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.mjs +46 -46
- package/esm2022/lib/ui-kit/snack-bar/snack-bar.module.mjs +18 -18
- package/esm2022/lib/ui-kit/snack-bar/snack-bar.service.mjs +23 -23
- package/esm2022/lib/ui-kit/tooltip/tooltip.directive.mjs +168 -168
- package/esm2022/lib/ui-kit/tooltip/tooltip.module.mjs +18 -18
- package/esm2022/lib/ui-kit/v-loader/loader/loader.component.mjs +24 -24
- package/esm2022/lib/ui-kit/v-loader/loader-inline/loader-inline.component.mjs +24 -24
- package/esm2022/lib/ui-kit/v-loader/v-loader.module.mjs +19 -19
- package/esm2022/public-api.mjs +10 -10
- package/esm2022/vc-create-dashboard.mjs +4 -4
- package/fesm2022/vc-create-dashboard.mjs +6438 -6333
- package/fesm2022/vc-create-dashboard.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/configurations.d.ts +4 -4
- package/lib/create-dashboard-container/categories/categories-config.d.ts +18 -18
- package/lib/create-dashboard-container/categories/categories.component.d.ts +66 -66
- package/lib/create-dashboard-container/configure-widgets/configure-widgets/configure-widgets.component.d.ts +113 -113
- package/lib/create-dashboard-container/configure-widgets/configure-widgets/widget.interface.d.ts +9 -9
- package/lib/create-dashboard-container/configure-widgets/configure-widgets.module.d.ts +14 -14
- package/lib/create-dashboard-container/constants/assets.constant.d.ts +35 -35
- package/lib/create-dashboard-container/create-dashboard-config.d.ts +18 -18
- package/lib/create-dashboard-container/create-dashboard.component.d.ts +219 -216
- package/lib/create-dashboard-container/create-dashboard.module.d.ts +37 -37
- package/lib/create-dashboard-container/directives/directives.module.d.ts +8 -8
- package/lib/create-dashboard-container/directives/scroll-in-view.directive.d.ts +12 -12
- package/lib/create-dashboard-container/form-group/form-group.component.d.ts +48 -48
- package/lib/create-dashboard-container/frequency/frequency.component.d.ts +39 -39
- package/lib/create-dashboard-container/interfaces/widget-data-model.d.ts +8 -8
- package/lib/create-dashboard-container/pipes/filter.pipe.d.ts +7 -7
- package/lib/create-dashboard-container/pipes/search-program.pipe.d.ts +7 -7
- package/lib/create-dashboard-container/pipes/search.pipe.d.ts +7 -7
- package/lib/create-dashboard-container/pipes/text-count.pipe.d.ts +7 -7
- package/lib/create-dashboard-container/program-list/constant.d.ts +24 -24
- package/lib/create-dashboard-container/program-list/information-block/information-block.component.d.ts +6 -6
- package/lib/create-dashboard-container/program-list/interfaces/list-item.interface.d.ts +5 -5
- package/lib/create-dashboard-container/program-list/list-container/list-container.component.d.ts +9 -9
- package/lib/create-dashboard-container/program-list/pipes/check-selected-items.pipes.d.ts +7 -7
- package/lib/create-dashboard-container/program-list/program-list/program-list.component.d.ts +119 -119
- package/lib/create-dashboard-container/program-list/program-list.module.d.ts +17 -17
- package/lib/create-dashboard-container/program-list/services/list-utils.service.d.ts +7 -7
- package/lib/create-dashboard-container/program-list/services/program-list-api.service.d.ts +12 -14
- package/lib/create-dashboard-container/responsibility-center/responsibility-center.component.d.ts +70 -62
- package/lib/create-dashboard-container/risk-categories/risk-categories-config.d.ts +18 -18
- package/lib/create-dashboard-container/risk-categories/risk-categories.component.d.ts +66 -66
- package/lib/create-dashboard-container/services/configure-widgets.service.d.ts +21 -23
- package/lib/create-dashboard-container/services/create-dashboard.service.d.ts +80 -82
- package/lib/create-dashboard-container/services/pagination.service.d.ts +12 -12
- package/lib/create-dashboard-container/user-list/user-list.component.d.ts +123 -123
- package/lib/create-dashboard-container/user-list/user-list.config.d.ts +13 -13
- package/lib/create-dashboard-container/utils/dashboard-edit.utils.d.ts +16 -16
- package/lib/create-dashboard.service.d.ts +6 -6
- package/lib/ui-kit/dashboard-footer/dashboard-footer/dashboard-footer.component.d.ts +17 -17
- package/lib/ui-kit/dashboard-footer/dashboard-footer-config.d.ts +11 -11
- package/lib/ui-kit/dashboard-footer/dashboard-footer.module.d.ts +10 -10
- package/lib/ui-kit/dialog/dialog-config.d.ts +6 -6
- package/lib/ui-kit/dialog/dialog-injector.d.ts +7 -7
- package/lib/ui-kit/dialog/dialog-ref.d.ts +7 -7
- package/lib/ui-kit/dialog/dialog.component.d.ts +33 -33
- package/lib/ui-kit/dialog/dialog.module.d.ts +9 -9
- package/lib/ui-kit/dialog/dialog.service.d.ts +17 -17
- package/lib/ui-kit/dialog/insertion.directive.d.ts +8 -8
- package/lib/ui-kit/floating-bar/floating-bar.component.d.ts +20 -20
- package/lib/ui-kit/floating-bar/floating-bar.module.d.ts +10 -10
- package/lib/ui-kit/formgroup/click-outside.directive.d.ts +10 -10
- package/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.d.ts +13 -13
- package/lib/ui-kit/formgroup/cs-radio/cs-radio.component.d.ts +15 -15
- package/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.d.ts +8 -8
- package/lib/ui-kit/formgroup/cs-select/cs-select.component.d.ts +36 -36
- package/lib/ui-kit/formgroup/cs-switch/cs-switch.component.d.ts +15 -15
- package/lib/ui-kit/formgroup/formgroup.module.d.ts +17 -17
- package/lib/ui-kit/formgroup/pipes/pascal.pipe.d.ts +7 -7
- package/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.d.ts +7 -7
- package/lib/ui-kit/loaders/loaders.module.d.ts +8 -8
- package/lib/ui-kit/loaders/table-loader/table-loader.component.d.ts +9 -9
- package/lib/ui-kit/no-data/no-data.component.d.ts +19 -19
- package/lib/ui-kit/no-data/no-data.module.d.ts +8 -8
- package/lib/ui-kit/pagination/pagination.component.d.ts +21 -21
- package/lib/ui-kit/pagination/pagination.module.d.ts +8 -8
- package/lib/ui-kit/popover/popover.component.d.ts +28 -28
- package/lib/ui-kit/popover/popover.directive.d.ts +17 -17
- package/lib/ui-kit/popover/popover.module.d.ts +9 -9
- package/lib/ui-kit/popover/popover.service.d.ts +13 -13
- package/lib/ui-kit/select/cs-option/cs-option.component.d.ts +16 -16
- package/lib/ui-kit/select/cs-select/cs-select.component.d.ts +32 -32
- package/lib/ui-kit/select/safe-html.pipe.d.ts +10 -10
- package/lib/ui-kit/select/select.module.d.ts +11 -11
- package/lib/ui-kit/services/cs-select.service.d.ts +7 -7
- package/lib/ui-kit/smiley-dialog/smiley-dialog.component.d.ts +17 -17
- package/lib/ui-kit/smiley-dialog/smiley-dialog.module.d.ts +8 -8
- package/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.d.ts +17 -17
- package/lib/ui-kit/snack-bar/snack-bar.module.d.ts +8 -8
- package/lib/ui-kit/snack-bar/snack-bar.service.d.ts +9 -9
- package/lib/ui-kit/tooltip/tooltip.directive.d.ts +28 -28
- package/lib/ui-kit/tooltip/tooltip.module.d.ts +8 -8
- package/lib/ui-kit/v-loader/loader/loader.component.d.ts +11 -11
- package/lib/ui-kit/v-loader/loader-inline/loader-inline.component.d.ts +11 -11
- package/lib/ui-kit/v-loader/v-loader.module.d.ts +9 -9
- package/package.json +1 -1
- package/public-api.d.ts +3 -3
- package/esm2022/lib/create-dashboard-container/services/auth.service.mjs +0 -31
- package/lib/create-dashboard-container/services/auth.service.d.ts +0 -11
package/esm2022/lib/create-dashboard-container/risk-categories/risk-categories.component.mjs
CHANGED
|
@@ -1,206 +1,206 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { ASSETS } from '../constants/assets.constant';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common";
|
|
5
|
-
import * as i2 from "../../ui-kit/formgroup/cs-checkbox/cs-checkbox.component";
|
|
6
|
-
import * as i3 from "@angular/forms";
|
|
7
|
-
import * as i4 from "../../ui-kit/tooltip/tooltip.directive";
|
|
8
|
-
import * as i5 from "../../ui-kit/dashboard-footer/dashboard-footer/dashboard-footer.component";
|
|
9
|
-
import * as i6 from "../../ui-kit/no-data/no-data.component";
|
|
10
|
-
import * as i7 from "../pipes/filter.pipe";
|
|
11
|
-
export class RiskCategoriesComponent {
|
|
12
|
-
ASSETS = ASSETS;
|
|
13
|
-
categoryList = {
|
|
14
|
-
strategic: {
|
|
15
|
-
list: [],
|
|
16
|
-
selectedList: [],
|
|
17
|
-
},
|
|
18
|
-
operational: {
|
|
19
|
-
list: [],
|
|
20
|
-
selectedList: [],
|
|
21
|
-
},
|
|
22
|
-
compliance: {
|
|
23
|
-
list: [],
|
|
24
|
-
selectedList: [],
|
|
25
|
-
},
|
|
26
|
-
others: {
|
|
27
|
-
list: [],
|
|
28
|
-
selectedList: [],
|
|
29
|
-
},
|
|
30
|
-
};
|
|
31
|
-
allCategories = [];
|
|
32
|
-
categoryIdKey;
|
|
33
|
-
selectedCategories = [];
|
|
34
|
-
search = '';
|
|
35
|
-
activeTab = 'strategic';
|
|
36
|
-
selectedIds = [];
|
|
37
|
-
animation = false;
|
|
38
|
-
blockWidth;
|
|
39
|
-
footerDetails = {
|
|
40
|
-
selectedData: [],
|
|
41
|
-
nonRemovableList: [],
|
|
42
|
-
displayElementKey: 'category_name',
|
|
43
|
-
elementId: 'category_id',
|
|
44
|
-
singularText: 'Risk Category selected',
|
|
45
|
-
pluralText: 'Risk Categories selected',
|
|
46
|
-
showFrequency: false,
|
|
47
|
-
frequencyText: '',
|
|
48
|
-
isDisabled: false,
|
|
49
|
-
};
|
|
50
|
-
saveSelectedCategory = new EventEmitter();
|
|
51
|
-
closeList = new EventEmitter();
|
|
52
|
-
closeCategoriesList = new EventEmitter();
|
|
53
|
-
constructor() { }
|
|
54
|
-
ngOnInit() {
|
|
55
|
-
this.animation = true;
|
|
56
|
-
setTimeout(() => {
|
|
57
|
-
this.animation = false;
|
|
58
|
-
}, 300);
|
|
59
|
-
this.selectedIds = [];
|
|
60
|
-
if (this.selectedCategories) {
|
|
61
|
-
this.selectedCategories.forEach((element) => {
|
|
62
|
-
this.selectedIds.push(element[this.categoryIdKey]);
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
this.setList();
|
|
66
|
-
}
|
|
67
|
-
selectCategory(mode, activeTab, category) {
|
|
68
|
-
if (mode) {
|
|
69
|
-
this.selectedIds.push(category[this.categoryIdKey]);
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
const index = this.selectedIds.findIndex((element) => element == category[this.categoryIdKey]);
|
|
73
|
-
this.selectedIds.splice(index, 1);
|
|
74
|
-
}
|
|
75
|
-
this.setList();
|
|
76
|
-
}
|
|
77
|
-
deleteEvent(event) {
|
|
78
|
-
const index = this.selectedIds.findIndex((element) => element == event[this.categoryIdKey]);
|
|
79
|
-
this.selectedIds.splice(index, 1);
|
|
80
|
-
this.setList();
|
|
81
|
-
}
|
|
82
|
-
selectAll(mode, activeTab) {
|
|
83
|
-
if (mode) {
|
|
84
|
-
if (activeTab === 'strategic' ||
|
|
85
|
-
activeTab === 'operational' ||
|
|
86
|
-
activeTab === 'compliance' ||
|
|
87
|
-
activeTab === 'others') {
|
|
88
|
-
const list = this.categoryList[activeTab].list;
|
|
89
|
-
list.forEach((element) => {
|
|
90
|
-
if (!this.selectedIds.includes(element[this.categoryIdKey])) {
|
|
91
|
-
this.selectedIds.push(element[this.categoryIdKey]);
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
if (activeTab === 'strategic' ||
|
|
98
|
-
activeTab === 'operational' ||
|
|
99
|
-
activeTab === 'compliance' ||
|
|
100
|
-
activeTab === 'others') {
|
|
101
|
-
const list = [...this.categoryList[activeTab].list];
|
|
102
|
-
list.forEach((element) => {
|
|
103
|
-
if (this.selectedIds.includes(element[this.categoryIdKey])) {
|
|
104
|
-
let idIndex = this.selectedIds.findIndex((id) => id == element[this.categoryIdKey]);
|
|
105
|
-
this.selectedIds.splice(idIndex, 1);
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
this.setList();
|
|
111
|
-
}
|
|
112
|
-
setList() {
|
|
113
|
-
const data = [];
|
|
114
|
-
const categoryList = [...new Set(this.allCategories)];
|
|
115
|
-
// cloneDeep(this.allCategories)
|
|
116
|
-
const selectedIds = [...new Set(this.selectedIds)];
|
|
117
|
-
// cloneDeep(this.selectedIds);
|
|
118
|
-
this.categoryList.strategic.selectedList = [];
|
|
119
|
-
this.categoryList.operational.selectedList = [];
|
|
120
|
-
this.categoryList.compliance.selectedList = [];
|
|
121
|
-
this.categoryList.others.selectedList = [];
|
|
122
|
-
categoryList.forEach((element) => {
|
|
123
|
-
if (selectedIds.includes(element[this.categoryIdKey])) {
|
|
124
|
-
data.push(element);
|
|
125
|
-
}
|
|
126
|
-
});
|
|
127
|
-
this.selectedCategories = data;
|
|
128
|
-
this.footerDetails.selectedData = data;
|
|
129
|
-
this.categoryList.strategic.list.forEach((category) => {
|
|
130
|
-
if (selectedIds.includes(category[this.categoryIdKey])) {
|
|
131
|
-
this.categoryList.strategic.selectedList.push(category);
|
|
132
|
-
}
|
|
133
|
-
});
|
|
134
|
-
this.categoryList.operational.list.forEach((category) => {
|
|
135
|
-
if (selectedIds.includes(category[this.categoryIdKey])) {
|
|
136
|
-
this.categoryList.operational.selectedList.push(category);
|
|
137
|
-
}
|
|
138
|
-
});
|
|
139
|
-
this.categoryList.compliance.list.forEach((category) => {
|
|
140
|
-
if (selectedIds.includes(category[this.categoryIdKey])) {
|
|
141
|
-
this.categoryList.compliance.selectedList.push(category);
|
|
142
|
-
}
|
|
143
|
-
});
|
|
144
|
-
this.categoryList.others.list.forEach((category) => {
|
|
145
|
-
if (selectedIds.includes(category[this.categoryIdKey])) {
|
|
146
|
-
this.categoryList.others.selectedList.push(category);
|
|
147
|
-
}
|
|
148
|
-
});
|
|
149
|
-
if (!this.activeTab) {
|
|
150
|
-
this.setActiveTab();
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
setActiveTab() {
|
|
154
|
-
if (this.categoryList.strategic.selectedList.length > 0) {
|
|
155
|
-
this.activeTab = 'strategic';
|
|
156
|
-
}
|
|
157
|
-
else if (this.categoryList.operational.selectedList.length > 0) {
|
|
158
|
-
this.activeTab = 'operational';
|
|
159
|
-
}
|
|
160
|
-
else if (this.categoryList.compliance.selectedList.length > 0) {
|
|
161
|
-
this.activeTab = 'compliance';
|
|
162
|
-
}
|
|
163
|
-
else if (this.categoryList.others.selectedList.length > 0) {
|
|
164
|
-
this.activeTab = 'others';
|
|
165
|
-
}
|
|
166
|
-
else {
|
|
167
|
-
this.activeTab = 'strategic';
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
checkSelectAll(activeTab) {
|
|
171
|
-
if (activeTab === 'strategic' ||
|
|
172
|
-
activeTab === 'operational' ||
|
|
173
|
-
activeTab === 'compliance' ||
|
|
174
|
-
activeTab === 'others') {
|
|
175
|
-
const data = this.categoryList[activeTab].list.every((user) => this.selectedIds.includes(user[this.categoryIdKey]));
|
|
176
|
-
return data;
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
save() {
|
|
180
|
-
this.saveSelectedCategory.emit(this.selectedCategories);
|
|
181
|
-
}
|
|
182
|
-
close() {
|
|
183
|
-
this.closeCategoriesList.emit();
|
|
184
|
-
}
|
|
185
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RiskCategoriesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
186
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RiskCategoriesComponent, selector: "app-risk-categories", inputs: { categoryList: "categoryList", allCategories: "allCategories", categoryIdKey: "categoryIdKey", selectedCategories: "selectedCategories" }, outputs: { saveSelectedCategory: "saveSelectedCategory", closeList: "closeList", closeCategoriesList: "closeCategoriesList" }, ngImport: i0, template: "<div class=\"risk-category-list\" [class.animate-slideInRight]=\"animation\">\n <div\n class=\"risk-category-list-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n >\n <span class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select Risk Category(s)</span>\n </div>\n <div class=\"risk-category-list-mid\">\n <div class=\"vx-d-flex vx-mb-2\">\n <div\n class=\"risk-category-list-card\"\n [class.active]=\"activeTab == 'strategic'\"\n (click)=\"activeTab = 'strategic'\"\n >\n <div class=\"left\">\n <label>strategic</label>\n <p *ngIf=\"categoryList?.strategic?.selectedList?.length != 0\">\n {{ categoryList?.strategic?.selectedList?.length }}\n {{\n categoryList?.strategic?.selectedList?.length == 1\n ? \"Category\"\n : \"Categories\"\n }}\n selected\n </p>\n </div>\n <span class=\"counter\">{{ categoryList?.strategic?.list?.length }}</span>\n </div>\n <div\n class=\"risk-category-list-card\"\n [class.active]=\"activeTab == 'operational'\"\n (click)=\"activeTab = 'operational'\"\n >\n <div class=\"left\">\n <label>operational</label>\n <p *ngIf=\"categoryList?.operational?.selectedList?.length != 0\">\n {{ categoryList?.operational?.selectedList?.length }}\n {{\n categoryList?.operational?.selectedList?.length == 1\n ? \"Category\"\n : \"Categories\"\n }}\n selected\n </p>\n </div>\n <span class=\"counter\">{{\n categoryList?.operational?.list?.length\n }}</span>\n </div>\n <div\n class=\"risk-category-list-card\"\n [class.active]=\"activeTab == 'compliance'\"\n (click)=\"activeTab = 'compliance'\"\n >\n <div class=\"left\">\n <label>compliance</label>\n <p *ngIf=\"categoryList?.compliance?.selectedList?.length != 0\">\n {{ categoryList?.compliance?.selectedList?.length }}\n {{\n categoryList?.compliance?.selectedList?.length == 1\n ? \"Category\"\n : \"Categories\"\n }}\n selected\n </p>\n </div>\n <span class=\"counter\">{{\n categoryList?.compliance?.list?.length\n }}</span>\n </div>\n <div\n class=\"risk-category-list-card\"\n [class.active]=\"activeTab == 'others'\"\n (click)=\"activeTab = 'others'\"\n >\n <div class=\"left\">\n <label>OTHERS</label>\n <p *ngIf=\"categoryList?.others?.selectedList?.length != 0\">\n {{ categoryList?.others?.selectedList?.length }}\n {{\n categoryList?.others?.selectedList?.length == 1\n ? \"Category\"\n : \"Categories\"\n }}\n selected\n </p>\n </div>\n <span class=\"counter\">{{ categoryList?.others?.list?.length }}</span>\n </div>\n </div>\n\n <div class=\"risk-category-list-search vx-mb-2\">\n <i class=\"icons\"></i>\n <input\n type=\"text\"\n [(ngModel)]=\"search\"\n placeholder=\"Search Risk Category\"\n />\n </div>\n\n <ng-container\n *ngIf=\"categoryList[activeTab]?.list | filter : search as searchList\"\n >\n <div class=\"select-all\" *ngIf=\"searchList.length > 1\">\n <app-cs-checkbox\n [ngValue]=\"checkSelectAll(activeTab)\"\n (ngValueChange)=\"selectAll($event, activeTab)\"\n >\n <strong>{{\n checkSelectAll(activeTab) ? \"Deselect All\" : \"Select All\"\n }}</strong>\n </app-cs-checkbox>\n </div>\n <div\n class=\"risk-category-list-item vx-mb-4\"\n [class.with-selectAll]=\"searchList.length > 1\"\n *ngIf=\"searchList.length > 0\"\n >\n <ul class=\"risk-category-list-item-ul vx-m-0 vx-p-0\">\n <li class=\"vx-mb-4\" *ngFor=\"let category of searchList\">\n <app-cs-checkbox\n [ngValue]=\"selectedIds.includes(category[categoryIdKey])\"\n (ngValueChange)=\"selectCategory($event, activeTab, category)\"\n >\n <ul class=\"categories\">\n <li\n [arTooltip]=\"category.category_name\"\n placement=\"bottom-left\"\n delay=\"0\"\n >\n {{ category.category_name }}\n </li>\n </ul>\n </app-cs-checkbox>\n </li>\n </ul>\n </div>\n <app-no-data\n *ngIf=\"searchList.length == 0\"\n [noDataImage]=\"ASSETS.search_data\"\n [noDataText]=\"'No data to display'\"\n >\n </app-no-data>\n </ng-container>\n\n <app-dashboard-footer\n [footerDetails]=\"footerDetails\"\n (cancelEvent)=\"close()\"\n (deleteEvent)=\"deleteEvent($event)\"\n (submitEvent)=\"save()\"\n ></app-dashboard-footer>\n </div>\n</div>\n", 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 .risk-category-list{background:#fff;border-right:1px solid #F1F1F1;position:fixed;inset:0 500px 0 0}::ng-deep .risk-category-list-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .risk-category-list-card{box-shadow:0 0 2px #00000029;border-radius:2px;height:56px;padding:12px;width:100%;display:flex;align-items:center;justify-content:space-between;cursor:pointer;position:relative}::ng-deep .risk-category-list-card .left{display:flex;flex-wrap:wrap;pointer-events:none}::ng-deep .risk-category-list-card .left label{color:#747576;font-size:11px;font-weight:600;line-height:16px;text-transform:uppercase;width:100%}::ng-deep .risk-category-list-card .left p{color:#161b2f;font-size:11px;font-weight:600;line-height:16px;margin:0}::ng-deep .risk-category-list-card span.counter{display:flex;height:32px;min-width:32px;border-radius:2px;background:#042e7d;color:#fff;font-size:11px;font-weight:500;line-height:32px;justify-content:center;align-items:center;padding:0 4px;pointer-events:none}::ng-deep .risk-category-list-card.active{box-shadow:0 3px 12px #1e5dd326;z-index:1;pointer-events:none}::ng-deep .risk-category-list-card.active span.counter{background:#f1f1f1;color:#042e7d}::ng-deep .risk-category-list-card+.risk-category-list-card{margin-left:4px}::ng-deep .risk-category-list-mid{height:calc(100vh - 2.75rem);padding:2rem;position:relative}::ng-deep .risk-category-list-mid::-webkit-scrollbar-track{background:transparent}::ng-deep .risk-category-list-mid .select-all{display:flex;padding-bottom:1rem}::ng-deep .risk-category-list-mid .select-all app-cs-checkbox{display:flex}::ng-deep .risk-category-list-mid .select-all app-cs-checkbox .checkbox-item .value{max-width:unset!important;font-size:12px!important}::ng-deep .risk-category-list-mid .select-all app-cs-checkbox .checkbox-item .value strong{font-weight:600;color:#161b2f}::ng-deep .risk-category-list-mid app-no-data .no-data-wrapper{height:calc(100vh - 260px)}::ng-deep .risk-category-list-search{position:relative}::ng-deep .risk-category-list-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 .risk-category-list-search input:focus{border-color:#1e5dd3}::ng-deep .risk-category-list-search i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1;font-size:12px}::ng-deep .risk-category-list-item{list-style-type:none;display:block;height:calc(100vh - 288px);overflow:hidden;overflow-y:auto}::ng-deep .risk-category-list-item::-webkit-scrollbar-track{background:transparent}::ng-deep .risk-category-list-item.with-selectAll{height:calc(100vh - 320px)}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul{padding:0;margin:0}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li{list-style:none}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox{display:flex}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label{width:100%}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label.radio-item span.value,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label.radio-item span.value,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label.checkbox-item span.value,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label.checkbox-item span.value{width:auto;justify-content:flex-start}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories{display:flex;max-width:100%;padding:0;margin:0;justify-content:flex-start;width:auto}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories li,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories li,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories li,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories li{display:block;padding:0 16px 0 0;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;color:#161b2f}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.CsCheckboxComponent, selector: "app-cs-checkbox", inputs: ["disabled", "ngValue", "value"], outputs: ["ngValueChange"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.ToolTipDirective, selector: "[arTooltip]", inputs: ["arTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i5.DashboardFooterComponent, selector: "app-dashboard-footer", inputs: ["footerDetails", "userButtonColor"], outputs: ["cancelEvent", "submitEvent", "deleteEvent"] }, { kind: "component", type: i6.NoDataComponent, selector: "app-no-data", inputs: ["action", "noDataImage", "noDataText", "noDataButton", "noDataSecButton", "altText", "smallButton", "buttonIcon", "iconClass"], outputs: ["buttonAction"] }, { kind: "pipe", type: i7.FilterPipe, name: "filter" }] });
|
|
187
|
-
}
|
|
188
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RiskCategoriesComponent, decorators: [{
|
|
189
|
-
type: Component,
|
|
190
|
-
args: [{ selector: 'app-risk-categories', template: "<div class=\"risk-category-list\" [class.animate-slideInRight]=\"animation\">\n <div\n class=\"risk-category-list-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n >\n <span class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select Risk Category(s)</span>\n </div>\n <div class=\"risk-category-list-mid\">\n <div class=\"vx-d-flex vx-mb-2\">\n <div\n class=\"risk-category-list-card\"\n [class.active]=\"activeTab == 'strategic'\"\n (click)=\"activeTab = 'strategic'\"\n >\n <div class=\"left\">\n <label>strategic</label>\n <p *ngIf=\"categoryList?.strategic?.selectedList?.length != 0\">\n {{ categoryList?.strategic?.selectedList?.length }}\n {{\n categoryList?.strategic?.selectedList?.length == 1\n ? \"Category\"\n : \"Categories\"\n }}\n selected\n </p>\n </div>\n <span class=\"counter\">{{ categoryList?.strategic?.list?.length }}</span>\n </div>\n <div\n class=\"risk-category-list-card\"\n [class.active]=\"activeTab == 'operational'\"\n (click)=\"activeTab = 'operational'\"\n >\n <div class=\"left\">\n <label>operational</label>\n <p *ngIf=\"categoryList?.operational?.selectedList?.length != 0\">\n {{ categoryList?.operational?.selectedList?.length }}\n {{\n categoryList?.operational?.selectedList?.length == 1\n ? \"Category\"\n : \"Categories\"\n }}\n selected\n </p>\n </div>\n <span class=\"counter\">{{\n categoryList?.operational?.list?.length\n }}</span>\n </div>\n <div\n class=\"risk-category-list-card\"\n [class.active]=\"activeTab == 'compliance'\"\n (click)=\"activeTab = 'compliance'\"\n >\n <div class=\"left\">\n <label>compliance</label>\n <p *ngIf=\"categoryList?.compliance?.selectedList?.length != 0\">\n {{ categoryList?.compliance?.selectedList?.length }}\n {{\n categoryList?.compliance?.selectedList?.length == 1\n ? \"Category\"\n : \"Categories\"\n }}\n selected\n </p>\n </div>\n <span class=\"counter\">{{\n categoryList?.compliance?.list?.length\n }}</span>\n </div>\n <div\n class=\"risk-category-list-card\"\n [class.active]=\"activeTab == 'others'\"\n (click)=\"activeTab = 'others'\"\n >\n <div class=\"left\">\n <label>OTHERS</label>\n <p *ngIf=\"categoryList?.others?.selectedList?.length != 0\">\n {{ categoryList?.others?.selectedList?.length }}\n {{\n categoryList?.others?.selectedList?.length == 1\n ? \"Category\"\n : \"Categories\"\n }}\n selected\n </p>\n </div>\n <span class=\"counter\">{{ categoryList?.others?.list?.length }}</span>\n </div>\n </div>\n\n <div class=\"risk-category-list-search vx-mb-2\">\n <i class=\"icons\"></i>\n <input\n type=\"text\"\n [(ngModel)]=\"search\"\n placeholder=\"Search Risk Category\"\n />\n </div>\n\n <ng-container\n *ngIf=\"categoryList[activeTab]?.list | filter : search as searchList\"\n >\n <div class=\"select-all\" *ngIf=\"searchList.length > 1\">\n <app-cs-checkbox\n [ngValue]=\"checkSelectAll(activeTab)\"\n (ngValueChange)=\"selectAll($event, activeTab)\"\n >\n <strong>{{\n checkSelectAll(activeTab) ? \"Deselect All\" : \"Select All\"\n }}</strong>\n </app-cs-checkbox>\n </div>\n <div\n class=\"risk-category-list-item vx-mb-4\"\n [class.with-selectAll]=\"searchList.length > 1\"\n *ngIf=\"searchList.length > 0\"\n >\n <ul class=\"risk-category-list-item-ul vx-m-0 vx-p-0\">\n <li class=\"vx-mb-4\" *ngFor=\"let category of searchList\">\n <app-cs-checkbox\n [ngValue]=\"selectedIds.includes(category[categoryIdKey])\"\n (ngValueChange)=\"selectCategory($event, activeTab, category)\"\n >\n <ul class=\"categories\">\n <li\n [arTooltip]=\"category.category_name\"\n placement=\"bottom-left\"\n delay=\"0\"\n >\n {{ category.category_name }}\n </li>\n </ul>\n </app-cs-checkbox>\n </li>\n </ul>\n </div>\n <app-no-data\n *ngIf=\"searchList.length == 0\"\n [noDataImage]=\"ASSETS.search_data\"\n [noDataText]=\"'No data to display'\"\n >\n </app-no-data>\n </ng-container>\n\n <app-dashboard-footer\n [footerDetails]=\"footerDetails\"\n (cancelEvent)=\"close()\"\n (deleteEvent)=\"deleteEvent($event)\"\n (submitEvent)=\"save()\"\n ></app-dashboard-footer>\n </div>\n</div>\n", 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 .risk-category-list{background:#fff;border-right:1px solid #F1F1F1;position:fixed;inset:0 500px 0 0}::ng-deep .risk-category-list-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .risk-category-list-card{box-shadow:0 0 2px #00000029;border-radius:2px;height:56px;padding:12px;width:100%;display:flex;align-items:center;justify-content:space-between;cursor:pointer;position:relative}::ng-deep .risk-category-list-card .left{display:flex;flex-wrap:wrap;pointer-events:none}::ng-deep .risk-category-list-card .left label{color:#747576;font-size:11px;font-weight:600;line-height:16px;text-transform:uppercase;width:100%}::ng-deep .risk-category-list-card .left p{color:#161b2f;font-size:11px;font-weight:600;line-height:16px;margin:0}::ng-deep .risk-category-list-card span.counter{display:flex;height:32px;min-width:32px;border-radius:2px;background:#042e7d;color:#fff;font-size:11px;font-weight:500;line-height:32px;justify-content:center;align-items:center;padding:0 4px;pointer-events:none}::ng-deep .risk-category-list-card.active{box-shadow:0 3px 12px #1e5dd326;z-index:1;pointer-events:none}::ng-deep .risk-category-list-card.active span.counter{background:#f1f1f1;color:#042e7d}::ng-deep .risk-category-list-card+.risk-category-list-card{margin-left:4px}::ng-deep .risk-category-list-mid{height:calc(100vh - 2.75rem);padding:2rem;position:relative}::ng-deep .risk-category-list-mid::-webkit-scrollbar-track{background:transparent}::ng-deep .risk-category-list-mid .select-all{display:flex;padding-bottom:1rem}::ng-deep .risk-category-list-mid .select-all app-cs-checkbox{display:flex}::ng-deep .risk-category-list-mid .select-all app-cs-checkbox .checkbox-item .value{max-width:unset!important;font-size:12px!important}::ng-deep .risk-category-list-mid .select-all app-cs-checkbox .checkbox-item .value strong{font-weight:600;color:#161b2f}::ng-deep .risk-category-list-mid app-no-data .no-data-wrapper{height:calc(100vh - 260px)}::ng-deep .risk-category-list-search{position:relative}::ng-deep .risk-category-list-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 .risk-category-list-search input:focus{border-color:#1e5dd3}::ng-deep .risk-category-list-search i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1;font-size:12px}::ng-deep .risk-category-list-item{list-style-type:none;display:block;height:calc(100vh - 288px);overflow:hidden;overflow-y:auto}::ng-deep .risk-category-list-item::-webkit-scrollbar-track{background:transparent}::ng-deep .risk-category-list-item.with-selectAll{height:calc(100vh - 320px)}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul{padding:0;margin:0}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li{list-style:none}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox{display:flex}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label{width:100%}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label.radio-item span.value,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label.radio-item span.value,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label.checkbox-item span.value,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label.checkbox-item span.value{width:auto;justify-content:flex-start}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories{display:flex;max-width:100%;padding:0;margin:0;justify-content:flex-start;width:auto}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories li,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories li,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories li,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories li{display:block;padding:0 16px 0 0;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;color:#161b2f}\n"] }]
|
|
191
|
-
}], ctorParameters: function () { return []; }, propDecorators: { categoryList: [{
|
|
192
|
-
type: Input
|
|
193
|
-
}], allCategories: [{
|
|
194
|
-
type: Input
|
|
195
|
-
}], categoryIdKey: [{
|
|
196
|
-
type: Input
|
|
197
|
-
}], selectedCategories: [{
|
|
198
|
-
type: Input
|
|
199
|
-
}], saveSelectedCategory: [{
|
|
200
|
-
type: Output
|
|
201
|
-
}], closeList: [{
|
|
202
|
-
type: Output
|
|
203
|
-
}], closeCategoriesList: [{
|
|
204
|
-
type: Output
|
|
205
|
-
}] } });
|
|
206
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlzay1jYXRlZ29yaWVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi9jcmVhdGUtZGFzaGJvYXJkLWNvbnRhaW5lci9yaXNrLWNhdGVnb3JpZXMvcmlzay1jYXRlZ29yaWVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi9jcmVhdGUtZGFzaGJvYXJkLWNvbnRhaW5lci9yaXNrLWNhdGVnb3JpZXMvcmlzay1jYXRlZ29yaWVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7Ozs7QUFPdEQsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBRVAsWUFBWSxHQUF5QjtRQUM1QyxTQUFTLEVBQUU7WUFDVCxJQUFJLEVBQUUsRUFBRTtZQUNSLFlBQVksRUFBRSxFQUFFO1NBQ2pCO1FBQ0QsV0FBVyxFQUFFO1lBQ1gsSUFBSSxFQUFFLEVBQUU7WUFDUixZQUFZLEVBQUUsRUFBRTtTQUNqQjtRQUNELFVBQVUsRUFBRTtZQUNWLElBQUksRUFBRSxFQUFFO1lBQ1IsWUFBWSxFQUFFLEVBQUU7U0FDakI7UUFDRCxNQUFNLEVBQUU7WUFDTixJQUFJLEVBQUUsRUFBRTtZQUNSLFlBQVksRUFBRSxFQUFFO1NBQ2pCO0tBQ0YsQ0FBQztJQUNPLGFBQWEsR0FBVSxFQUFFLENBQUM7SUFFMUIsYUFBYSxDQUFNO0lBQ25CLGtCQUFrQixHQUFVLEVBQUUsQ0FBQztJQUV4QyxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ1osU0FB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QkFBckIsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFvQkksb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csbUJBQW1CO3NCQUE1QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGFzaGJvYXJkRm9vdGVyQ29uZmlnIH0gZnJvbSAnLi4vLi4vdWkta2l0L2Rhc2hib2FyZC1mb290ZXIvZGFzaGJvYXJkLWZvb3Rlci1jb25maWcnO1xuaW1wb3J0IHsgUmlza0NhdGVnb3JpZXNDb25maWcgfSBmcm9tICcuL3Jpc2stY2F0ZWdvcmllcy1jb25maWcnO1xuaW1wb3J0IHsgQVNTRVRTIH0gZnJvbSAnLi4vY29uc3RhbnRzL2Fzc2V0cy5jb25zdGFudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1yaXNrLWNhdGVnb3JpZXMnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmlzay1jYXRlZ29yaWVzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmlzay1jYXRlZ29yaWVzLmNvbXBvbmVudC5sZXNzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFJpc2tDYXRlZ29yaWVzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQVNTRVRTID0gQVNTRVRTO1xuXG4gIEBJbnB1dCgpIGNhdGVnb3J5TGlzdDogUmlza0NhdGVnb3JpZXNDb25maWcgPSB7XG4gICAgc3RyYXRlZ2ljOiB7XG4gICAgICBsaXN0OiBbXSxcbiAgICAgIHNlbGVjdGVkTGlzdDogW10sXG4gICAgfSxcbiAgICBvcGVyYXRpb25hbDoge1xuICAgICAgbGlzdDogW10sXG4gICAgICBzZWxlY3RlZExpc3Q6IFtdLFxuICAgIH0sXG4gICAgY29tcGxpYW5jZToge1xuICAgICAgbGlzdDogW10sXG4gICAgICBzZWxlY3RlZExpc3Q6IFtdLFxuICAgIH0sXG4gICAgb3RoZXJzOiB7XG4gICAgICBsaXN0OiBbXSxcbiAgICAgIHNlbGVjdGVkTGlzdDogW10sXG4gICAgfSxcbiAgfTtcbiAgQElucHV0KCkgYWxsQ2F0ZWdvcmllczogYW55W10gPSBbXTtcblxuICBASW5wdXQoKSBjYXRlZ29yeUlkS2V5OiBhbnk7XG4gIEBJbnB1dCgpIHNlbGVjdGVkQ2F0ZWdvcmllczogYW55W10gPSBbXTtcblxuICBzZWFyY2ggPSAnJztcbiAgYWN0aXZlVGFiOiAnc3RyYXRlZ2ljJyB8ICdvcGVyYXRpb25hbCcgfCAnY29tcGxpYW5jZScgfCAnb3RoZXJzJyA9XG4gICAgJ3N0cmF0ZWdpYyc7XG4gIHNlbGVjdGVkSWRzOiBhbnlbXSA9IFtdO1xuICBhbmltYXRpb24gPSBmYWxzZTtcbiAgYmxvY2tXaWR0aDogYW55O1xuICBmb290ZXJEZXRhaWxzOiBEYXNoYm9hcmRGb290ZXJDb25maWcgPSB7XG4gICAgc2VsZWN0ZWREYXRhOiBbXSxcbiAgICBub25SZW1vdmFibGVMaXN0OiBbXSxcbiAgICBkaXNwbGF5RWxlbWVudEtleTogJ2NhdGVnb3J5X25hbWUnLFxuICAgIGVsZW1lbnRJZDogJ2NhdGVnb3J5X2lkJyxcbiAgICBzaW5ndWxhclRleHQ6ICdSaXNrIENhdGVnb3J5IHNlbGVjdGVkJyxcbiAgICBwbHVyYWxUZXh0OiAnUmlzayBDYXRlZ29yaWVzIHNlbGVjdGVkJyxcbiAgICBzaG93RnJlcXVlbmN5OiBmYWxzZSxcbiAgICBmcmVxdWVuY3lUZXh0OiAnJyxcbiAgICBpc0Rpc2FibGVkOiBmYWxzZSxcbiAgfTtcblxuICBAT3V0cHV0KCkgc2F2ZVNlbGVjdGVkQ2F0ZWdvcnkgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBjbG9zZUxpc3QgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBjbG9zZUNhdGVnb3JpZXNMaXN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmFuaW1hdGlvbiA9IHRydWU7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xuICAgIH0sIDMwMCk7XG4gICAgdGhpcy5zZWxlY3RlZElkcyA9IFtdO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkQ2F0ZWdvcmllcykge1xuICAgICAgdGhpcy5zZWxlY3RlZENhdGVnb3JpZXMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSWRzLnB1c2goZWxlbWVudFt0aGlzLmNhdGVnb3J5SWRLZXldKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnNldExpc3QoKTtcbiAgfVxuXG4gIHNlbGVjdENhdGVnb3J5KG1vZGU6IGFueSwgYWN0aXZlVGFiOiBhbnksIGNhdGVnb3J5OiBhbnkpIHtcbiAgICBpZiAobW9kZSkge1xuICAgICAgdGhpcy5zZWxlY3RlZElkcy5wdXNoKGNhdGVnb3J5W3RoaXMuY2F0ZWdvcnlJZEtleV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRJZHMuZmluZEluZGV4KFxuICAgICAgICAoZWxlbWVudDogYW55KSA9PiBlbGVtZW50ID09IGNhdGVnb3J5W3RoaXMuY2F0ZWdvcnlJZEtleV1cbiAgICAgICk7XG4gICAgICB0aGlzLnNlbGVjdGVkSWRzLnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuICAgIHRoaXMuc2V0TGlzdCgpO1xuICB9XG5cbiAgZGVsZXRlRXZlbnQoZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZElkcy5maW5kSW5kZXgoXG4gICAgICAoZWxlbWVudDogYW55KSA9PiBlbGVtZW50ID09IGV2ZW50W3RoaXMuY2F0ZWdvcnlJZEtleV1cbiAgICApO1xuICAgIHRoaXMuc2VsZWN0ZWRJZHMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB0aGlzLnNldExpc3QoKTtcbiAgfVxuXG4gIHNlbGVjdEFsbChtb2RlOiBhbnksIGFjdGl2ZVRhYjogc3RyaW5nKSB7XG4gICAgaWYgKG1vZGUpIHtcbiAgICAgIGlmIChcbiAgICAgICAgYWN0aXZlVGFiID09PSAnc3RyYXRlZ2ljJyB8fFxuICAgICAgICBhY3RpdmVUYWIgPT09ICdvcGVyYXRpb25hbCcgfHxcbiAgICAgICAgYWN0aXZlVGFiID09PSAnY29tcGxpYW5jZScgfHxcbiAgICAgICAgYWN0aXZlVGFiID09PSAnb3RoZXJzJ1xuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IGxpc3QgPSB0aGlzLmNhdGVnb3J5TGlzdFthY3RpdmVUYWJdLmxpc3Q7XG4gICAgICAgIGxpc3QuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgICAgIGlmICghdGhpcy5zZWxlY3RlZElkcy5pbmNsdWRlcyhlbGVtZW50W3RoaXMuY2F0ZWdvcnlJZEtleV0pKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSWRzLnB1c2goZWxlbWVudFt0aGlzLmNhdGVnb3J5SWRLZXldKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoXG4gICAgICAgIGFjdGl2ZVRhYiA9PT0gJ3N0cmF0ZWdpYycgfHxcbiAgICAgICAgYWN0aXZlVGFiID09PSAnb3BlcmF0aW9uYWwnIHx8XG4gICAgICAgIGFjdGl2ZVRhYiA9PT0gJ2NvbXBsaWFuY2UnIHx8XG4gICAgICAgIGFjdGl2ZVRhYiA9PT0gJ290aGVycydcbiAgICAgICkge1xuICAgICAgICBjb25zdCBsaXN0ID0gWy4uLnRoaXMuY2F0ZWdvcnlMaXN0W2FjdGl2ZVRhYl0ubGlzdF07XG4gICAgICAgIGxpc3QuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkSWRzLmluY2x1ZGVzKGVsZW1lbnRbdGhpcy5jYXRlZ29yeUlkS2V5XSkpIHtcbiAgICAgICAgICAgIGxldCBpZEluZGV4ID0gdGhpcy5zZWxlY3RlZElkcy5maW5kSW5kZXgoXG4gICAgICAgICAgICAgIChpZDogYW55KSA9PiBpZCA9PSBlbGVtZW50W3RoaXMuY2F0ZWdvcnlJZEtleV1cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSWRzLnNwbGljZShpZEluZGV4LCAxKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnNldExpc3QoKTtcbiAgfVxuXG4gIHNldExpc3QoKSB7XG4gICAgY29uc3QgZGF0YTogYW55ID0gW107XG4gICAgY29uc3QgY2F0ZWdvcnlMaXN0ID0gWy4uLm5ldyBTZXQodGhpcy5hbGxDYXRlZ29yaWVzKV07XG4gICAgLy8gY2xvbmVEZWVwKHRoaXMuYWxsQ2F0ZWdvcmllcylcbiAgICBjb25zdCBzZWxlY3RlZElkcyA9IFsuLi5uZXcgU2V0KHRoaXMuc2VsZWN0ZWRJZHMpXTtcbiAgICAvLyAgY2xvbmVEZWVwKHRoaXMuc2VsZWN0ZWRJZHMpO1xuICAgIHRoaXMuY2F0ZWdvcnlMaXN0LnN0cmF0ZWdpYy5zZWxlY3RlZExpc3QgPSBbXTtcbiAgICB0aGlzLmNhdGVnb3J5TGlzdC5vcGVyYXRpb25hbC5zZWxlY3RlZExpc3QgPSBbXTtcbiAgICB0aGlzLmNhdGVnb3J5TGlzdC5jb21wbGlhbmNlLnNlbGVjdGVkTGlzdCA9IFtdO1xuICAgIHRoaXMuY2F0ZWdvcnlMaXN0Lm90aGVycy5zZWxlY3RlZExpc3QgPSBbXTtcblxuICAgIGNhdGVnb3J5TGlzdC5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcbiAgICAgIGlmIChzZWxlY3RlZElkcy5pbmNsdWRlcyhlbGVtZW50W3RoaXMuY2F0ZWdvcnlJZEtleV0pKSB7XG4gICAgICAgIGRhdGEucHVzaChlbGVtZW50KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcmllcyA9IGRhdGE7XG4gICAgdGhpcy5mb290ZXJEZXRhaWxzLnNlbGVjdGVkRGF0YSA9IGRhdGE7XG5cbiAgICB0aGlzLmNhdGVnb3J5TGlzdC5zdHJhdGVnaWMubGlzdC5mb3JFYWNoKChjYXRlZ29yeTogYW55KSA9PiB7XG4gICAgICBpZiAoc2VsZWN0ZWRJZHMuaW5jbHVkZXMoY2F0ZWdvcnlbdGhpcy5jYXRlZ29yeUlkS2V5XSkpIHtcbiAgICAgICAgdGhpcy5jYXRlZ29yeUxpc3Quc3RyYXRlZ2ljLnNlbGVjdGVkTGlzdC5wdXNoKGNhdGVnb3J5KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmNhdGVnb3J5TGlzdC5vcGVyYXRpb25hbC5saXN0LmZvckVhY2goKGNhdGVnb3J5OiBhbnkpID0+IHtcbiAgICAgIGlmIChzZWxlY3RlZElkcy5pbmNsdWRlcyhjYXRlZ29yeVt0aGlzLmNhdGVnb3J5SWRLZXldKSkge1xuICAgICAgICB0aGlzLmNhdGVnb3J5TGlzdC5vcGVyYXRpb25hbC5zZWxlY3RlZExpc3QucHVzaChjYXRlZ29yeSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5jYXRlZ29yeUxpc3QuY29tcGxpYW5jZS5saXN0LmZvckVhY2goKGNhdGVnb3J5OiBhbnkpID0+IHtcbiAgICAgIGlmIChzZWxlY3RlZElkcy5pbmNsdWRlcyhjYXRlZ29yeVt0aGlzLmNhdGVnb3J5SWRLZXldKSkge1xuICAgICAgICB0aGlzLmNhdGVnb3J5TGlzdC5jb21wbGlhbmNlLnNlbGVjdGVkTGlzdC5wdXNoKGNhdGVnb3J5KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmNhdGVnb3J5TGlzdC5vdGhlcnMubGlzdC5mb3JFYWNoKChjYXRlZ29yeTogYW55KSA9PiB7XG4gICAgICBpZiAoc2VsZWN0ZWRJZHMuaW5jbHVkZXMoY2F0ZWdvcnlbdGhpcy5jYXRlZ29yeUlkS2V5XSkpIHtcbiAgICAgICAgdGhpcy5jYXRlZ29yeUxpc3Qub3RoZXJzLnNlbGVjdGVkTGlzdC5wdXNoKGNhdGVnb3J5KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoIXRoaXMuYWN0aXZlVGFiKSB7XG4gICAgICB0aGlzLnNldEFjdGl2ZVRhYigpO1xuICAgIH1cbiAgfVxuICBzZXRBY3RpdmVUYWIoKSB7XG4gICAgaWYgKHRoaXMuY2F0ZWdvcnlMaXN0LnN0cmF0ZWdpYy5zZWxlY3RlZExpc3QubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5hY3RpdmVUYWIgPSAnc3RyYXRlZ2ljJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuY2F0ZWdvcnlMaXN0Lm9wZXJhdGlvbmFsLnNlbGVjdGVkTGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmFjdGl2ZVRhYiA9ICdvcGVyYXRpb25hbCc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNhdGVnb3J5TGlzdC5jb21wbGlhbmNlLnNlbGVjdGVkTGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmFjdGl2ZVRhYiA9ICdjb21wbGlhbmNlJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuY2F0ZWdvcnlMaXN0Lm90aGVycy5zZWxlY3RlZExpc3QubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5hY3RpdmVUYWIgPSAnb3RoZXJzJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hY3RpdmVUYWIgPSAnc3RyYXRlZ2ljJztcbiAgICB9XG4gIH1cblxuICBjaGVja1NlbGVjdEFsbChhY3RpdmVUYWI6IHN0cmluZykge1xuICAgIGlmIChcbiAgICAgIGFjdGl2ZVRhYiA9PT0gJ3N0cmF0ZWdpYycgfHxcbiAgICAgIGFjdGl2ZVRhYiA9PT0gJ29wZXJhdGlvbmFsJyB8fFxuICAgICAgYWN0aXZlVGFiID09PSAnY29tcGxpYW5jZScgfHxcbiAgICAgIGFjdGl2ZVRhYiA9PT0gJ290aGVycydcbiAgICApIHtcbiAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmNhdGVnb3J5TGlzdFthY3RpdmVUYWJdLmxpc3QuZXZlcnkoKHVzZXI6IGFueSkgPT5cbiAgICAgICAgdGhpcy5zZWxlY3RlZElkcy5pbmNsdWRlcyh1c2VyW3RoaXMuY2F0ZWdvcnlJZEtleV0pXG4gICAgICApO1xuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICB9XG5cbiAgc2F2ZSgpIHtcbiAgICB0aGlzLnNhdmVTZWxlY3RlZENhdGVnb3J5LmVtaXQodGhpcy5zZWxlY3RlZENhdGVnb3JpZXMpO1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5jbG9zZUNhdGVnb3JpZXNMaXN0LmVtaXQoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInJpc2stY2F0ZWdvcnktbGlzdFwiIFtjbGFzcy5hbmltYXRlLXNsaWRlSW5SaWdodF09XCJhbmltYXRpb25cIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwicmlzay1jYXRlZ29yeS1saXN0LWhlYWQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtcGwtNCB2eC1wci00XCJcbiAgPlxuICAgIDxzcGFuIGNsYXNzPVwidngtZnMtMTQgdngtZnctNTAwIHZ4LWxhYmVsLXR4dFwiPlNlbGVjdCBSaXNrIENhdGVnb3J5KHMpPC9zcGFuPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInJpc2stY2F0ZWdvcnktbGlzdC1taWRcIj5cbiAgICA8ZGl2IGNsYXNzPVwidngtZC1mbGV4IHZ4LW1iLTJcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJyaXNrLWNhdGVnb3J5LWxpc3QtY2FyZFwiXG4gICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlVGFiID09ICdzdHJhdGVnaWMnXCJcbiAgICAgICAgKGNsaWNrKT1cImFjdGl2ZVRhYiA9ICdzdHJhdGVnaWMnXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj5cbiAgICAgICAgICA8bGFiZWw+c3RyYXRlZ2ljPC9sYWJlbD5cbiAgICAgICAgICA8cCAqbmdJZj1cImNhdGVnb3J5TGlzdD8uc3RyYXRlZ2ljPy5zZWxlY3RlZExpc3Q/Lmxlbmd0aCAhPSAwXCI+XG4gICAgICAgICAgICB7eyBjYXRlZ29yeUxpc3Q/LnN0cmF0ZWdpYz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGggfX1cbiAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgIGNhdGVnb3J5TGlzdD8uc3RyYXRlZ2ljPy5zZWxlY3RlZExpc3Q/Lmxlbmd0aCA9PSAxXG4gICAgICAgICAgICAgICAgPyBcIkNhdGVnb3J5XCJcbiAgICAgICAgICAgICAgICA6IFwiQ2F0ZWdvcmllc1wiXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgc2VsZWN0ZWRcbiAgICAgICAgICA8L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXJcIj57eyBjYXRlZ29yeUxpc3Q/LnN0cmF0ZWdpYz8ubGlzdD8ubGVuZ3RoIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwicmlzay1jYXRlZ29yeS1saXN0LWNhcmRcIlxuICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYiA9PSAnb3BlcmF0aW9uYWwnXCJcbiAgICAgICAgKGNsaWNrKT1cImFjdGl2ZVRhYiA9ICdvcGVyYXRpb25hbCdcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxuICAgICAgICAgIDxsYWJlbD5vcGVyYXRpb25hbDwvbGFiZWw+XG4gICAgICAgICAgPHAgKm5nSWY9XCJjYXRlZ29yeUxpc3Q/Lm9wZXJhdGlvbmFsPy5zZWxlY3RlZExpc3Q/Lmxlbmd0aCAhPSAwXCI+XG4gICAgICAgICAgICB7eyBjYXRlZ29yeUxpc3Q/Lm9wZXJhdGlvbmFsPy5zZWxlY3RlZExpc3Q/Lmxlbmd0aCB9fVxuICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgY2F0ZWdvcnlMaXN0Py5vcGVyYXRpb25hbD8uc2VsZWN0ZWRMaXN0Py5sZW5ndGggPT0gMVxuICAgICAgICAgICAgICAgID8gXCJDYXRlZ29yeVwiXG4gICAgICAgICAgICAgICAgOiBcIkNhdGVnb3JpZXNcIlxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHNlbGVjdGVkXG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGVyXCI+e3tcbiAgICAgICAgICBjYXRlZ29yeUxpc3Q/Lm9wZXJhdGlvbmFsPy5saXN0Py5sZW5ndGhcbiAgICAgICAgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJyaXNrLWNhdGVnb3J5LWxpc3QtY2FyZFwiXG4gICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlVGFiID09ICdjb21wbGlhbmNlJ1wiXG4gICAgICAgIChjbGljayk9XCJhY3RpdmVUYWIgPSAnY29tcGxpYW5jZSdcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxuICAgICAgICAgIDxsYWJlbD5jb21wbGlhbmNlPC9sYWJlbD5cbiAgICAgICAgICA8cCAqbmdJZj1cImNhdGVnb3J5TGlzdD8uY29tcGxpYW5jZT8uc2VsZWN0ZWRMaXN0Py5sZW5ndGggIT0gMFwiPlxuICAgICAgICAgICAge3sgY2F0ZWdvcnlMaXN0Py5jb21wbGlhbmNlPy5zZWxlY3RlZExpc3Q/Lmxlbmd0aCB9fVxuICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgY2F0ZWdvcnlMaXN0Py5jb21wbGlhbmNlPy5zZWxlY3RlZExpc3Q/Lmxlbmd0aCA9PSAxXG4gICAgICAgICAgICAgICAgPyBcIkNhdGVnb3J5XCJcbiAgICAgICAgICAgICAgICA6IFwiQ2F0ZWdvcmllc1wiXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgc2VsZWN0ZWRcbiAgICAgICAgICA8L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXJcIj57e1xuICAgICAgICAgIGNhdGVnb3J5TGlzdD8uY29tcGxpYW5jZT8ubGlzdD8ubGVuZ3RoXG4gICAgICAgIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwicmlzay1jYXRlZ29yeS1saXN0LWNhcmRcIlxuICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYiA9PSAnb3RoZXJzJ1wiXG4gICAgICAgIChjbGljayk9XCJhY3RpdmVUYWIgPSAnb3RoZXJzJ1wiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XG4gICAgICAgICAgPGxhYmVsPk9USEVSUzwvbGFiZWw+XG4gICAgICAgICAgPHAgKm5nSWY9XCJjYXRlZ29yeUxpc3Q/Lm90aGVycz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGggIT0gMFwiPlxuICAgICAgICAgICAge3sgY2F0ZWdvcnlMaXN0Py5vdGhlcnM/LnNlbGVjdGVkTGlzdD8ubGVuZ3RoIH19XG4gICAgICAgICAgICB7e1xuICAgICAgICAgICAgICBjYXRlZ29yeUxpc3Q/Lm90aGVycz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGggPT0gMVxuICAgICAgICAgICAgICAgID8gXCJDYXRlZ29yeVwiXG4gICAgICAgICAgICAgICAgOiBcIkNhdGVnb3JpZXNcIlxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHNlbGVjdGVkXG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGVyXCI+e3sgY2F0ZWdvcnlMaXN0Py5vdGhlcnM/Lmxpc3Q/Lmxlbmd0aCB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInJpc2stY2F0ZWdvcnktbGlzdC1zZWFyY2ggdngtbWItMlwiPlxuICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGI7PC9pPlxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaCBSaXNrIENhdGVnb3J5XCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdJZj1cImNhdGVnb3J5TGlzdFthY3RpdmVUYWJdPy5saXN0IHwgZmlsdGVyIDogc2VhcmNoIGFzIHNlYXJjaExpc3RcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3QtYWxsXCIgKm5nSWY9XCJzZWFyY2hMaXN0Lmxlbmd0aCA+IDFcIj5cbiAgICAgICAgPGFwcC1jcy1jaGVja2JveFxuICAgICAgICAgIFtuZ1ZhbHVlXT1cImNoZWNrU2VsZWN0QWxsKGFjdGl2ZVRhYilcIlxuICAgICAgICAgIChuZ1ZhbHVlQ2hhbmdlKT1cInNlbGVjdEFsbCgkZXZlbnQsIGFjdGl2ZVRhYilcIlxuICAgICAgICA+XG4gICAgICAgICAgPHN0cm9uZz57e1xuICAgICAgICAgICAgY2hlY2tTZWxlY3RBbGwoYWN0aXZlVGFiKSA/IFwiRGVzZWxlY3QgQWxsXCIgOiBcIlNlbGVjdCBBbGxcIlxuICAgICAgICAgIH19PC9zdHJvbmc+XG4gICAgICAgIDwvYXBwLWNzLWNoZWNrYm94PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwicmlzay1jYXRlZ29yeS1saXN0LWl0ZW0gdngtbWItNFwiXG4gICAgICAgIFtjbGFzcy53aXRoLXNlbGVjdEFsbF09XCJzZWFyY2hMaXN0Lmxlbmd0aCA+IDFcIlxuICAgICAgICAqbmdJZj1cInNlYXJjaExpc3QubGVuZ3RoID4gMFwiXG4gICAgICA+XG4gICAgICAgIDx1bCBjbGFzcz1cInJpc2stY2F0ZWdvcnktbGlzdC1pdGVtLXVsIHZ4LW0tMCB2eC1wLTBcIj5cbiAgICAgICAgICA8bGkgY2xhc3M9XCJ2eC1tYi00XCIgKm5nRm9yPVwibGV0IGNhdGVnb3J5IG9mIHNlYXJjaExpc3RcIj5cbiAgICAgICAgICAgIDxhcHAtY3MtY2hlY2tib3hcbiAgICAgICAgICAgICAgW25nVmFsdWVdPVwic2VsZWN0ZWRJZHMuaW5jbHVkZXMoY2F0ZWdvcnlbY2F0ZWdvcnlJZEtleV0pXCJcbiAgICAgICAgICAgICAgKG5nVmFsdWVDaGFuZ2UpPVwic2VsZWN0Q2F0ZWdvcnkoJGV2ZW50LCBhY3RpdmVUYWIsIGNhdGVnb3J5KVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDx1bCBjbGFzcz1cImNhdGVnb3JpZXNcIj5cbiAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgIFthclRvb2x0aXBdPVwiY2F0ZWdvcnkuY2F0ZWdvcnlfbmFtZVwiXG4gICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7IGNhdGVnb3J5LmNhdGVnb3J5X25hbWUgfX1cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9hcHAtY3MtY2hlY2tib3g+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgPC91bD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGFwcC1uby1kYXRhXG4gICAgICAgICpuZ0lmPVwic2VhcmNoTGlzdC5sZW5ndGggPT0gMFwiXG4gICAgICAgIFtub0RhdGFJbWFnZV09XCJBU1NFVFMuc2VhcmNoX2RhdGFcIlxuICAgICAgICBbbm9EYXRhVGV4dF09XCInTm8gZGF0YSB0byBkaXNwbGF5J1wiXG4gICAgICA+XG4gICAgICA8L2FwcC1uby1kYXRhPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPGFwcC1kYXNoYm9hcmQtZm9vdGVyXG4gICAgICBbZm9vdGVyRGV0YWlsc109XCJmb290ZXJEZXRhaWxzXCJcbiAgICAgIChjYW5jZWxFdmVudCk9XCJjbG9zZSgpXCJcbiAgICAgIChkZWxldGVFdmVudCk9XCJkZWxldGVFdmVudCgkZXZlbnQpXCJcbiAgICAgIChzdWJtaXRFdmVudCk9XCJzYXZlKClcIlxuICAgID48L2FwcC1kYXNoYm9hcmQtZm9vdGVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { ASSETS } from '../constants/assets.constant';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "../../ui-kit/formgroup/cs-checkbox/cs-checkbox.component";
|
|
6
|
+
import * as i3 from "@angular/forms";
|
|
7
|
+
import * as i4 from "../../ui-kit/tooltip/tooltip.directive";
|
|
8
|
+
import * as i5 from "../../ui-kit/dashboard-footer/dashboard-footer/dashboard-footer.component";
|
|
9
|
+
import * as i6 from "../../ui-kit/no-data/no-data.component";
|
|
10
|
+
import * as i7 from "../pipes/filter.pipe";
|
|
11
|
+
export class RiskCategoriesComponent {
|
|
12
|
+
ASSETS = ASSETS;
|
|
13
|
+
categoryList = {
|
|
14
|
+
strategic: {
|
|
15
|
+
list: [],
|
|
16
|
+
selectedList: [],
|
|
17
|
+
},
|
|
18
|
+
operational: {
|
|
19
|
+
list: [],
|
|
20
|
+
selectedList: [],
|
|
21
|
+
},
|
|
22
|
+
compliance: {
|
|
23
|
+
list: [],
|
|
24
|
+
selectedList: [],
|
|
25
|
+
},
|
|
26
|
+
others: {
|
|
27
|
+
list: [],
|
|
28
|
+
selectedList: [],
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
allCategories = [];
|
|
32
|
+
categoryIdKey;
|
|
33
|
+
selectedCategories = [];
|
|
34
|
+
search = '';
|
|
35
|
+
activeTab = 'strategic';
|
|
36
|
+
selectedIds = [];
|
|
37
|
+
animation = false;
|
|
38
|
+
blockWidth;
|
|
39
|
+
footerDetails = {
|
|
40
|
+
selectedData: [],
|
|
41
|
+
nonRemovableList: [],
|
|
42
|
+
displayElementKey: 'category_name',
|
|
43
|
+
elementId: 'category_id',
|
|
44
|
+
singularText: 'Risk Category selected',
|
|
45
|
+
pluralText: 'Risk Categories selected',
|
|
46
|
+
showFrequency: false,
|
|
47
|
+
frequencyText: '',
|
|
48
|
+
isDisabled: false,
|
|
49
|
+
};
|
|
50
|
+
saveSelectedCategory = new EventEmitter();
|
|
51
|
+
closeList = new EventEmitter();
|
|
52
|
+
closeCategoriesList = new EventEmitter();
|
|
53
|
+
constructor() { }
|
|
54
|
+
ngOnInit() {
|
|
55
|
+
this.animation = true;
|
|
56
|
+
setTimeout(() => {
|
|
57
|
+
this.animation = false;
|
|
58
|
+
}, 300);
|
|
59
|
+
this.selectedIds = [];
|
|
60
|
+
if (this.selectedCategories) {
|
|
61
|
+
this.selectedCategories.forEach((element) => {
|
|
62
|
+
this.selectedIds.push(element[this.categoryIdKey]);
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
this.setList();
|
|
66
|
+
}
|
|
67
|
+
selectCategory(mode, activeTab, category) {
|
|
68
|
+
if (mode) {
|
|
69
|
+
this.selectedIds.push(category[this.categoryIdKey]);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
const index = this.selectedIds.findIndex((element) => element == category[this.categoryIdKey]);
|
|
73
|
+
this.selectedIds.splice(index, 1);
|
|
74
|
+
}
|
|
75
|
+
this.setList();
|
|
76
|
+
}
|
|
77
|
+
deleteEvent(event) {
|
|
78
|
+
const index = this.selectedIds.findIndex((element) => element == event[this.categoryIdKey]);
|
|
79
|
+
this.selectedIds.splice(index, 1);
|
|
80
|
+
this.setList();
|
|
81
|
+
}
|
|
82
|
+
selectAll(mode, activeTab) {
|
|
83
|
+
if (mode) {
|
|
84
|
+
if (activeTab === 'strategic' ||
|
|
85
|
+
activeTab === 'operational' ||
|
|
86
|
+
activeTab === 'compliance' ||
|
|
87
|
+
activeTab === 'others') {
|
|
88
|
+
const list = this.categoryList[activeTab].list;
|
|
89
|
+
list.forEach((element) => {
|
|
90
|
+
if (!this.selectedIds.includes(element[this.categoryIdKey])) {
|
|
91
|
+
this.selectedIds.push(element[this.categoryIdKey]);
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
if (activeTab === 'strategic' ||
|
|
98
|
+
activeTab === 'operational' ||
|
|
99
|
+
activeTab === 'compliance' ||
|
|
100
|
+
activeTab === 'others') {
|
|
101
|
+
const list = [...this.categoryList[activeTab].list];
|
|
102
|
+
list.forEach((element) => {
|
|
103
|
+
if (this.selectedIds.includes(element[this.categoryIdKey])) {
|
|
104
|
+
let idIndex = this.selectedIds.findIndex((id) => id == element[this.categoryIdKey]);
|
|
105
|
+
this.selectedIds.splice(idIndex, 1);
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
this.setList();
|
|
111
|
+
}
|
|
112
|
+
setList() {
|
|
113
|
+
const data = [];
|
|
114
|
+
const categoryList = [...new Set(this.allCategories)];
|
|
115
|
+
// cloneDeep(this.allCategories)
|
|
116
|
+
const selectedIds = [...new Set(this.selectedIds)];
|
|
117
|
+
// cloneDeep(this.selectedIds);
|
|
118
|
+
this.categoryList.strategic.selectedList = [];
|
|
119
|
+
this.categoryList.operational.selectedList = [];
|
|
120
|
+
this.categoryList.compliance.selectedList = [];
|
|
121
|
+
this.categoryList.others.selectedList = [];
|
|
122
|
+
categoryList.forEach((element) => {
|
|
123
|
+
if (selectedIds.includes(element[this.categoryIdKey])) {
|
|
124
|
+
data.push(element);
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
this.selectedCategories = data;
|
|
128
|
+
this.footerDetails.selectedData = data;
|
|
129
|
+
this.categoryList.strategic.list.forEach((category) => {
|
|
130
|
+
if (selectedIds.includes(category[this.categoryIdKey])) {
|
|
131
|
+
this.categoryList.strategic.selectedList.push(category);
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
this.categoryList.operational.list.forEach((category) => {
|
|
135
|
+
if (selectedIds.includes(category[this.categoryIdKey])) {
|
|
136
|
+
this.categoryList.operational.selectedList.push(category);
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
this.categoryList.compliance.list.forEach((category) => {
|
|
140
|
+
if (selectedIds.includes(category[this.categoryIdKey])) {
|
|
141
|
+
this.categoryList.compliance.selectedList.push(category);
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
this.categoryList.others.list.forEach((category) => {
|
|
145
|
+
if (selectedIds.includes(category[this.categoryIdKey])) {
|
|
146
|
+
this.categoryList.others.selectedList.push(category);
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
if (!this.activeTab) {
|
|
150
|
+
this.setActiveTab();
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
setActiveTab() {
|
|
154
|
+
if (this.categoryList.strategic.selectedList.length > 0) {
|
|
155
|
+
this.activeTab = 'strategic';
|
|
156
|
+
}
|
|
157
|
+
else if (this.categoryList.operational.selectedList.length > 0) {
|
|
158
|
+
this.activeTab = 'operational';
|
|
159
|
+
}
|
|
160
|
+
else if (this.categoryList.compliance.selectedList.length > 0) {
|
|
161
|
+
this.activeTab = 'compliance';
|
|
162
|
+
}
|
|
163
|
+
else if (this.categoryList.others.selectedList.length > 0) {
|
|
164
|
+
this.activeTab = 'others';
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
this.activeTab = 'strategic';
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
checkSelectAll(activeTab) {
|
|
171
|
+
if (activeTab === 'strategic' ||
|
|
172
|
+
activeTab === 'operational' ||
|
|
173
|
+
activeTab === 'compliance' ||
|
|
174
|
+
activeTab === 'others') {
|
|
175
|
+
const data = this.categoryList[activeTab].list.every((user) => this.selectedIds.includes(user[this.categoryIdKey]));
|
|
176
|
+
return data;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
save() {
|
|
180
|
+
this.saveSelectedCategory.emit(this.selectedCategories);
|
|
181
|
+
}
|
|
182
|
+
close() {
|
|
183
|
+
this.closeCategoriesList.emit();
|
|
184
|
+
}
|
|
185
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RiskCategoriesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
186
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RiskCategoriesComponent, selector: "app-risk-categories", inputs: { categoryList: "categoryList", allCategories: "allCategories", categoryIdKey: "categoryIdKey", selectedCategories: "selectedCategories" }, outputs: { saveSelectedCategory: "saveSelectedCategory", closeList: "closeList", closeCategoriesList: "closeCategoriesList" }, ngImport: i0, template: "<div class=\"risk-category-list\" [class.animate-slideInRight]=\"animation\">\r\n <div\r\n class=\"risk-category-list-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\r\n >\r\n <span class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select Risk Category(s)</span>\r\n </div>\r\n <div class=\"risk-category-list-mid\">\r\n <div class=\"vx-d-flex vx-mb-2\">\r\n <div\r\n class=\"risk-category-list-card\"\r\n [class.active]=\"activeTab == 'strategic'\"\r\n (click)=\"activeTab = 'strategic'\"\r\n >\r\n <div class=\"left\">\r\n <label>strategic</label>\r\n <p *ngIf=\"categoryList?.strategic?.selectedList?.length != 0\">\r\n {{ categoryList?.strategic?.selectedList?.length }}\r\n {{\r\n categoryList?.strategic?.selectedList?.length == 1\r\n ? \"Category\"\r\n : \"Categories\"\r\n }}\r\n selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{ categoryList?.strategic?.list?.length }}</span>\r\n </div>\r\n <div\r\n class=\"risk-category-list-card\"\r\n [class.active]=\"activeTab == 'operational'\"\r\n (click)=\"activeTab = 'operational'\"\r\n >\r\n <div class=\"left\">\r\n <label>operational</label>\r\n <p *ngIf=\"categoryList?.operational?.selectedList?.length != 0\">\r\n {{ categoryList?.operational?.selectedList?.length }}\r\n {{\r\n categoryList?.operational?.selectedList?.length == 1\r\n ? \"Category\"\r\n : \"Categories\"\r\n }}\r\n selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{\r\n categoryList?.operational?.list?.length\r\n }}</span>\r\n </div>\r\n <div\r\n class=\"risk-category-list-card\"\r\n [class.active]=\"activeTab == 'compliance'\"\r\n (click)=\"activeTab = 'compliance'\"\r\n >\r\n <div class=\"left\">\r\n <label>compliance</label>\r\n <p *ngIf=\"categoryList?.compliance?.selectedList?.length != 0\">\r\n {{ categoryList?.compliance?.selectedList?.length }}\r\n {{\r\n categoryList?.compliance?.selectedList?.length == 1\r\n ? \"Category\"\r\n : \"Categories\"\r\n }}\r\n selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{\r\n categoryList?.compliance?.list?.length\r\n }}</span>\r\n </div>\r\n <div\r\n class=\"risk-category-list-card\"\r\n [class.active]=\"activeTab == 'others'\"\r\n (click)=\"activeTab = 'others'\"\r\n >\r\n <div class=\"left\">\r\n <label>OTHERS</label>\r\n <p *ngIf=\"categoryList?.others?.selectedList?.length != 0\">\r\n {{ categoryList?.others?.selectedList?.length }}\r\n {{\r\n categoryList?.others?.selectedList?.length == 1\r\n ? \"Category\"\r\n : \"Categories\"\r\n }}\r\n selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{ categoryList?.others?.list?.length }}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"risk-category-list-search vx-mb-2\">\r\n <i class=\"icons\"></i>\r\n <input\r\n type=\"text\"\r\n [(ngModel)]=\"search\"\r\n placeholder=\"Search Risk Category\"\r\n />\r\n </div>\r\n\r\n <ng-container\r\n *ngIf=\"categoryList[activeTab]?.list | filter : search as searchList\"\r\n >\r\n <div class=\"select-all\" *ngIf=\"searchList.length > 1\">\r\n <app-cs-checkbox\r\n [ngValue]=\"checkSelectAll(activeTab)\"\r\n (ngValueChange)=\"selectAll($event, activeTab)\"\r\n >\r\n <strong>{{\r\n checkSelectAll(activeTab) ? \"Deselect All\" : \"Select All\"\r\n }}</strong>\r\n </app-cs-checkbox>\r\n </div>\r\n <div\r\n class=\"risk-category-list-item vx-mb-4\"\r\n [class.with-selectAll]=\"searchList.length > 1\"\r\n *ngIf=\"searchList.length > 0\"\r\n >\r\n <ul class=\"risk-category-list-item-ul vx-m-0 vx-p-0\">\r\n <li class=\"vx-mb-4\" *ngFor=\"let category of searchList\">\r\n <app-cs-checkbox\r\n [ngValue]=\"selectedIds.includes(category[categoryIdKey])\"\r\n (ngValueChange)=\"selectCategory($event, activeTab, category)\"\r\n >\r\n <ul class=\"categories\">\r\n <li\r\n [arTooltip]=\"category.category_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n >\r\n {{ category.category_name }}\r\n </li>\r\n </ul>\r\n </app-cs-checkbox>\r\n </li>\r\n </ul>\r\n </div>\r\n <app-no-data\r\n *ngIf=\"searchList.length == 0\"\r\n [noDataImage]=\"ASSETS.search_data\"\r\n [noDataText]=\"'No data to display'\"\r\n >\r\n </app-no-data>\r\n </ng-container>\r\n\r\n <app-dashboard-footer\r\n [footerDetails]=\"footerDetails\"\r\n (cancelEvent)=\"close()\"\r\n (deleteEvent)=\"deleteEvent($event)\"\r\n (submitEvent)=\"save()\"\r\n ></app-dashboard-footer>\r\n </div>\r\n</div>\r\n", 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 .risk-category-list{background:#fff;border-right:1px solid #F1F1F1;position:fixed;inset:0 500px 0 0}::ng-deep .risk-category-list-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .risk-category-list-card{box-shadow:0 0 2px #00000029;border-radius:2px;height:56px;padding:12px;width:100%;display:flex;align-items:center;justify-content:space-between;cursor:pointer;position:relative}::ng-deep .risk-category-list-card .left{display:flex;flex-wrap:wrap;pointer-events:none}::ng-deep .risk-category-list-card .left label{color:#747576;font-size:11px;font-weight:600;line-height:16px;text-transform:uppercase;width:100%}::ng-deep .risk-category-list-card .left p{color:#161b2f;font-size:11px;font-weight:600;line-height:16px;margin:0}::ng-deep .risk-category-list-card span.counter{display:flex;height:32px;min-width:32px;border-radius:2px;background:#042e7d;color:#fff;font-size:11px;font-weight:500;line-height:32px;justify-content:center;align-items:center;padding:0 4px;pointer-events:none}::ng-deep .risk-category-list-card.active{box-shadow:0 3px 12px #1e5dd326;z-index:1;pointer-events:none}::ng-deep .risk-category-list-card.active span.counter{background:#f1f1f1;color:#042e7d}::ng-deep .risk-category-list-card+.risk-category-list-card{margin-left:4px}::ng-deep .risk-category-list-mid{height:calc(100vh - 2.75rem);padding:2rem;position:relative}::ng-deep .risk-category-list-mid::-webkit-scrollbar-track{background:transparent}::ng-deep .risk-category-list-mid .select-all{display:flex;padding-bottom:1rem}::ng-deep .risk-category-list-mid .select-all app-cs-checkbox{display:flex}::ng-deep .risk-category-list-mid .select-all app-cs-checkbox .checkbox-item .value{max-width:unset!important;font-size:12px!important}::ng-deep .risk-category-list-mid .select-all app-cs-checkbox .checkbox-item .value strong{font-weight:600;color:#161b2f}::ng-deep .risk-category-list-mid app-no-data .no-data-wrapper{height:calc(100vh - 260px)}::ng-deep .risk-category-list-search{position:relative}::ng-deep .risk-category-list-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 .risk-category-list-search input:focus{border-color:#1e5dd3}::ng-deep .risk-category-list-search i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1;font-size:12px}::ng-deep .risk-category-list-item{list-style-type:none;display:block;height:calc(100vh - 288px);overflow:hidden;overflow-y:auto}::ng-deep .risk-category-list-item::-webkit-scrollbar-track{background:transparent}::ng-deep .risk-category-list-item.with-selectAll{height:calc(100vh - 320px)}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul{padding:0;margin:0}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li{list-style:none}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox{display:flex}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label{width:100%}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label.radio-item span.value,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label.radio-item span.value,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label.checkbox-item span.value,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label.checkbox-item span.value{width:auto;justify-content:flex-start}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories{display:flex;max-width:100%;padding:0;margin:0;justify-content:flex-start;width:auto}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories li,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories li,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories li,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories li{display:block;padding:0 16px 0 0;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;color:#161b2f}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.CsCheckboxComponent, selector: "app-cs-checkbox", inputs: ["disabled", "ngValue", "value"], outputs: ["ngValueChange"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.ToolTipDirective, selector: "[arTooltip]", inputs: ["arTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i5.DashboardFooterComponent, selector: "app-dashboard-footer", inputs: ["footerDetails", "userButtonColor"], outputs: ["cancelEvent", "submitEvent", "deleteEvent"] }, { kind: "component", type: i6.NoDataComponent, selector: "app-no-data", inputs: ["action", "noDataImage", "noDataText", "noDataButton", "noDataSecButton", "altText", "smallButton", "buttonIcon", "iconClass"], outputs: ["buttonAction"] }, { kind: "pipe", type: i7.FilterPipe, name: "filter" }] });
|
|
187
|
+
}
|
|
188
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RiskCategoriesComponent, decorators: [{
|
|
189
|
+
type: Component,
|
|
190
|
+
args: [{ selector: 'app-risk-categories', template: "<div class=\"risk-category-list\" [class.animate-slideInRight]=\"animation\">\r\n <div\r\n class=\"risk-category-list-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\r\n >\r\n <span class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select Risk Category(s)</span>\r\n </div>\r\n <div class=\"risk-category-list-mid\">\r\n <div class=\"vx-d-flex vx-mb-2\">\r\n <div\r\n class=\"risk-category-list-card\"\r\n [class.active]=\"activeTab == 'strategic'\"\r\n (click)=\"activeTab = 'strategic'\"\r\n >\r\n <div class=\"left\">\r\n <label>strategic</label>\r\n <p *ngIf=\"categoryList?.strategic?.selectedList?.length != 0\">\r\n {{ categoryList?.strategic?.selectedList?.length }}\r\n {{\r\n categoryList?.strategic?.selectedList?.length == 1\r\n ? \"Category\"\r\n : \"Categories\"\r\n }}\r\n selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{ categoryList?.strategic?.list?.length }}</span>\r\n </div>\r\n <div\r\n class=\"risk-category-list-card\"\r\n [class.active]=\"activeTab == 'operational'\"\r\n (click)=\"activeTab = 'operational'\"\r\n >\r\n <div class=\"left\">\r\n <label>operational</label>\r\n <p *ngIf=\"categoryList?.operational?.selectedList?.length != 0\">\r\n {{ categoryList?.operational?.selectedList?.length }}\r\n {{\r\n categoryList?.operational?.selectedList?.length == 1\r\n ? \"Category\"\r\n : \"Categories\"\r\n }}\r\n selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{\r\n categoryList?.operational?.list?.length\r\n }}</span>\r\n </div>\r\n <div\r\n class=\"risk-category-list-card\"\r\n [class.active]=\"activeTab == 'compliance'\"\r\n (click)=\"activeTab = 'compliance'\"\r\n >\r\n <div class=\"left\">\r\n <label>compliance</label>\r\n <p *ngIf=\"categoryList?.compliance?.selectedList?.length != 0\">\r\n {{ categoryList?.compliance?.selectedList?.length }}\r\n {{\r\n categoryList?.compliance?.selectedList?.length == 1\r\n ? \"Category\"\r\n : \"Categories\"\r\n }}\r\n selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{\r\n categoryList?.compliance?.list?.length\r\n }}</span>\r\n </div>\r\n <div\r\n class=\"risk-category-list-card\"\r\n [class.active]=\"activeTab == 'others'\"\r\n (click)=\"activeTab = 'others'\"\r\n >\r\n <div class=\"left\">\r\n <label>OTHERS</label>\r\n <p *ngIf=\"categoryList?.others?.selectedList?.length != 0\">\r\n {{ categoryList?.others?.selectedList?.length }}\r\n {{\r\n categoryList?.others?.selectedList?.length == 1\r\n ? \"Category\"\r\n : \"Categories\"\r\n }}\r\n selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{ categoryList?.others?.list?.length }}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"risk-category-list-search vx-mb-2\">\r\n <i class=\"icons\"></i>\r\n <input\r\n type=\"text\"\r\n [(ngModel)]=\"search\"\r\n placeholder=\"Search Risk Category\"\r\n />\r\n </div>\r\n\r\n <ng-container\r\n *ngIf=\"categoryList[activeTab]?.list | filter : search as searchList\"\r\n >\r\n <div class=\"select-all\" *ngIf=\"searchList.length > 1\">\r\n <app-cs-checkbox\r\n [ngValue]=\"checkSelectAll(activeTab)\"\r\n (ngValueChange)=\"selectAll($event, activeTab)\"\r\n >\r\n <strong>{{\r\n checkSelectAll(activeTab) ? \"Deselect All\" : \"Select All\"\r\n }}</strong>\r\n </app-cs-checkbox>\r\n </div>\r\n <div\r\n class=\"risk-category-list-item vx-mb-4\"\r\n [class.with-selectAll]=\"searchList.length > 1\"\r\n *ngIf=\"searchList.length > 0\"\r\n >\r\n <ul class=\"risk-category-list-item-ul vx-m-0 vx-p-0\">\r\n <li class=\"vx-mb-4\" *ngFor=\"let category of searchList\">\r\n <app-cs-checkbox\r\n [ngValue]=\"selectedIds.includes(category[categoryIdKey])\"\r\n (ngValueChange)=\"selectCategory($event, activeTab, category)\"\r\n >\r\n <ul class=\"categories\">\r\n <li\r\n [arTooltip]=\"category.category_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n >\r\n {{ category.category_name }}\r\n </li>\r\n </ul>\r\n </app-cs-checkbox>\r\n </li>\r\n </ul>\r\n </div>\r\n <app-no-data\r\n *ngIf=\"searchList.length == 0\"\r\n [noDataImage]=\"ASSETS.search_data\"\r\n [noDataText]=\"'No data to display'\"\r\n >\r\n </app-no-data>\r\n </ng-container>\r\n\r\n <app-dashboard-footer\r\n [footerDetails]=\"footerDetails\"\r\n (cancelEvent)=\"close()\"\r\n (deleteEvent)=\"deleteEvent($event)\"\r\n (submitEvent)=\"save()\"\r\n ></app-dashboard-footer>\r\n </div>\r\n</div>\r\n", 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 .risk-category-list{background:#fff;border-right:1px solid #F1F1F1;position:fixed;inset:0 500px 0 0}::ng-deep .risk-category-list-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .risk-category-list-card{box-shadow:0 0 2px #00000029;border-radius:2px;height:56px;padding:12px;width:100%;display:flex;align-items:center;justify-content:space-between;cursor:pointer;position:relative}::ng-deep .risk-category-list-card .left{display:flex;flex-wrap:wrap;pointer-events:none}::ng-deep .risk-category-list-card .left label{color:#747576;font-size:11px;font-weight:600;line-height:16px;text-transform:uppercase;width:100%}::ng-deep .risk-category-list-card .left p{color:#161b2f;font-size:11px;font-weight:600;line-height:16px;margin:0}::ng-deep .risk-category-list-card span.counter{display:flex;height:32px;min-width:32px;border-radius:2px;background:#042e7d;color:#fff;font-size:11px;font-weight:500;line-height:32px;justify-content:center;align-items:center;padding:0 4px;pointer-events:none}::ng-deep .risk-category-list-card.active{box-shadow:0 3px 12px #1e5dd326;z-index:1;pointer-events:none}::ng-deep .risk-category-list-card.active span.counter{background:#f1f1f1;color:#042e7d}::ng-deep .risk-category-list-card+.risk-category-list-card{margin-left:4px}::ng-deep .risk-category-list-mid{height:calc(100vh - 2.75rem);padding:2rem;position:relative}::ng-deep .risk-category-list-mid::-webkit-scrollbar-track{background:transparent}::ng-deep .risk-category-list-mid .select-all{display:flex;padding-bottom:1rem}::ng-deep .risk-category-list-mid .select-all app-cs-checkbox{display:flex}::ng-deep .risk-category-list-mid .select-all app-cs-checkbox .checkbox-item .value{max-width:unset!important;font-size:12px!important}::ng-deep .risk-category-list-mid .select-all app-cs-checkbox .checkbox-item .value strong{font-weight:600;color:#161b2f}::ng-deep .risk-category-list-mid app-no-data .no-data-wrapper{height:calc(100vh - 260px)}::ng-deep .risk-category-list-search{position:relative}::ng-deep .risk-category-list-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 .risk-category-list-search input:focus{border-color:#1e5dd3}::ng-deep .risk-category-list-search i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1;font-size:12px}::ng-deep .risk-category-list-item{list-style-type:none;display:block;height:calc(100vh - 288px);overflow:hidden;overflow-y:auto}::ng-deep .risk-category-list-item::-webkit-scrollbar-track{background:transparent}::ng-deep .risk-category-list-item.with-selectAll{height:calc(100vh - 320px)}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul{padding:0;margin:0}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li{list-style:none}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox{display:flex}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label{width:100%}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label.radio-item span.value,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label.radio-item span.value,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label.checkbox-item span.value,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label.checkbox-item span.value{width:auto;justify-content:flex-start}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories{display:flex;max-width:100%;padding:0;margin:0;justify-content:flex-start;width:auto}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories li,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories li,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories li,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories li{display:block;padding:0 16px 0 0;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;color:#161b2f}\n"] }]
|
|
191
|
+
}], ctorParameters: function () { return []; }, propDecorators: { categoryList: [{
|
|
192
|
+
type: Input
|
|
193
|
+
}], allCategories: [{
|
|
194
|
+
type: Input
|
|
195
|
+
}], categoryIdKey: [{
|
|
196
|
+
type: Input
|
|
197
|
+
}], selectedCategories: [{
|
|
198
|
+
type: Input
|
|
199
|
+
}], saveSelectedCategory: [{
|
|
200
|
+
type: Output
|
|
201
|
+
}], closeList: [{
|
|
202
|
+
type: Output
|
|
203
|
+
}], closeCategoriesList: [{
|
|
204
|
+
type: Output
|
|
205
|
+
}] } });
|
|
206
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlzay1jYXRlZ29yaWVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi9jcmVhdGUtZGFzaGJvYXJkLWNvbnRhaW5lci9yaXNrLWNhdGVnb3JpZXMvcmlzay1jYXRlZ29yaWVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi9jcmVhdGUtZGFzaGJvYXJkLWNvbnRhaW5lci9yaXNrLWNhdGVnb3JpZXMvcmlzay1jYXRlZ29yaWVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7Ozs7QUFPdEQsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBRVAsWUFBWSxHQUF5QjtRQUM1QyxTQUFTLEVBQUU7WUFDVCxJQUFJLEVBQUUsRUFBRTtZQUNSLFlBQVksRUFBRSxFQUFFO1NBQ2pCO1FBQ0QsV0FBVyxFQUFFO1lBQ1gsSUFBSSxFQUFFLEVBQUU7WUFDUixZQUFZLEVBQUUsRUFBRTtTQUNqQjtRQUNELFVBQVUsRUFBRTtZQUNWLElBQUksRUFBRSxFQUFFO1lBQ1IsWUFBWSxFQUFFLEVBQUU7U0FDakI7UUFDRCxNQUFNLEVBQUU7WUFDTixJQUFJLEVBQUUsRUFBRTtZQUNSLFlBQVksRUFBRSxFQUFFO1NBQ2pCO0tBQ0YsQ0FBQztJQUNPLGFBQWEsR0FBVSxFQUFFLENBQUM7SUFFMUIsYUFBYSxDQUFNO0lBQ25CLGtCQUFrQixHQUFVLEVBQUUsQ0FBQztJQUV4QyxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ1osU0FB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QkFBckIsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFvQkksb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csbUJBQW1CO3NCQUE1QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXNoYm9hcmRGb290ZXJDb25maWcgfSBmcm9tICcuLi8uLi91aS1raXQvZGFzaGJvYXJkLWZvb3Rlci9kYXNoYm9hcmQtZm9vdGVyLWNvbmZpZyc7XHJcbmltcG9ydCB7IFJpc2tDYXRlZ29yaWVzQ29uZmlnIH0gZnJvbSAnLi9yaXNrLWNhdGVnb3JpZXMtY29uZmlnJztcclxuaW1wb3J0IHsgQVNTRVRTIH0gZnJvbSAnLi4vY29uc3RhbnRzL2Fzc2V0cy5jb25zdGFudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1yaXNrLWNhdGVnb3JpZXMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yaXNrLWNhdGVnb3JpZXMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3Jpc2stY2F0ZWdvcmllcy5jb21wb25lbnQubGVzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmlza0NhdGVnb3JpZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEFTU0VUUyA9IEFTU0VUUztcclxuXHJcbiAgQElucHV0KCkgY2F0ZWdvcnlMaXN0OiBSaXNrQ2F0ZWdvcmllc0NvbmZpZyA9IHtcclxuICAgIHN0cmF0ZWdpYzoge1xyXG4gICAgICBsaXN0OiBbXSxcclxuICAgICAgc2VsZWN0ZWRMaXN0OiBbXSxcclxuICAgIH0sXHJcbiAgICBvcGVyYXRpb25hbDoge1xyXG4gICAgICBsaXN0OiBbXSxcclxuICAgICAgc2VsZWN0ZWRMaXN0OiBbXSxcclxuICAgIH0sXHJcbiAgICBjb21wbGlhbmNlOiB7XHJcbiAgICAgIGxpc3Q6IFtdLFxyXG4gICAgICBzZWxlY3RlZExpc3Q6IFtdLFxyXG4gICAgfSxcclxuICAgIG90aGVyczoge1xyXG4gICAgICBsaXN0OiBbXSxcclxuICAgICAgc2VsZWN0ZWRMaXN0OiBbXSxcclxuICAgIH0sXHJcbiAgfTtcclxuICBASW5wdXQoKSBhbGxDYXRlZ29yaWVzOiBhbnlbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKSBjYXRlZ29yeUlkS2V5OiBhbnk7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRDYXRlZ29yaWVzOiBhbnlbXSA9IFtdO1xyXG5cclxuICBzZWFyY2ggPSAnJztcclxuICBhY3RpdmVUYWI6ICdzdHJhdGVnaWMnIHwgJ29wZXJhdGlvbmFsJyB8ICdjb21wbGlhbmNlJyB8ICdvdGhlcnMnID1cclxuICAgICdzdHJhdGVnaWMnO1xyXG4gIHNlbGVjdGVkSWRzOiBhbnlbXSA9IFtdO1xyXG4gIGFuaW1hdGlvbiA9IGZhbHNlO1xyXG4gIGJsb2NrV2lkdGg6IGFueTtcclxuICBmb290ZXJEZXRhaWxzOiBEYXNoYm9hcmRGb290ZXJDb25maWcgPSB7XHJcbiAgICBzZWxlY3RlZERhdGE6IFtdLFxyXG4gICAgbm9uUmVtb3ZhYmxlTGlzdDogW10sXHJcbiAgICBkaXNwbGF5RWxlbWVudEtleTogJ2NhdGVnb3J5X25hbWUnLFxyXG4gICAgZWxlbWVudElkOiAnY2F0ZWdvcnlfaWQnLFxyXG4gICAgc2luZ3VsYXJUZXh0OiAnUmlzayBDYXRlZ29yeSBzZWxlY3RlZCcsXHJcbiAgICBwbHVyYWxUZXh0OiAnUmlzayBDYXRlZ29yaWVzIHNlbGVjdGVkJyxcclxuICAgIHNob3dGcmVxdWVuY3k6IGZhbHNlLFxyXG4gICAgZnJlcXVlbmN5VGV4dDogJycsXHJcbiAgICBpc0Rpc2FibGVkOiBmYWxzZSxcclxuICB9O1xyXG5cclxuICBAT3V0cHV0KCkgc2F2ZVNlbGVjdGVkQ2F0ZWdvcnkgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNsb3NlTGlzdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2xvc2VDYXRlZ29yaWVzTGlzdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYW5pbWF0aW9uID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xyXG4gICAgfSwgMzAwKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRJZHMgPSBbXTtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkQ2F0ZWdvcmllcykge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcmllcy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZElkcy5wdXNoKGVsZW1lbnRbdGhpcy5jYXRlZ29yeUlkS2V5XSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRMaXN0KCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RDYXRlZ29yeShtb2RlOiBhbnksIGFjdGl2ZVRhYjogYW55LCBjYXRlZ29yeTogYW55KSB7XHJcbiAgICBpZiAobW9kZSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSWRzLnB1c2goY2F0ZWdvcnlbdGhpcy5jYXRlZ29yeUlkS2V5XSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRJZHMuZmluZEluZGV4KFxyXG4gICAgICAgIChlbGVtZW50OiBhbnkpID0+IGVsZW1lbnQgPT0gY2F0ZWdvcnlbdGhpcy5jYXRlZ29yeUlkS2V5XVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSWRzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldExpc3QoKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZUV2ZW50KGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZElkcy5maW5kSW5kZXgoXHJcbiAgICAgIChlbGVtZW50OiBhbnkpID0+IGVsZW1lbnQgPT0gZXZlbnRbdGhpcy5jYXRlZ29yeUlkS2V5XVxyXG4gICAgKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRJZHMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIHRoaXMuc2V0TGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0QWxsKG1vZGU6IGFueSwgYWN0aXZlVGFiOiBzdHJpbmcpIHtcclxuICAgIGlmIChtb2RlKSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBhY3RpdmVUYWIgPT09ICdzdHJhdGVnaWMnIHx8XHJcbiAgICAgICAgYWN0aXZlVGFiID09PSAnb3BlcmF0aW9uYWwnIHx8XHJcbiAgICAgICAgYWN0aXZlVGFiID09PSAnY29tcGxpYW5jZScgfHxcclxuICAgICAgICBhY3RpdmVUYWIgPT09ICdvdGhlcnMnXHJcbiAgICAgICkge1xyXG4gICAgICAgIGNvbnN0IGxpc3QgPSB0aGlzLmNhdGVnb3J5TGlzdFthY3RpdmVUYWJdLmxpc3Q7XHJcbiAgICAgICAgbGlzdC5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRJZHMuaW5jbHVkZXMoZWxlbWVudFt0aGlzLmNhdGVnb3J5SWRLZXldKSkge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSWRzLnB1c2goZWxlbWVudFt0aGlzLmNhdGVnb3J5SWRLZXldKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGFjdGl2ZVRhYiA9PT0gJ3N0cmF0ZWdpYycgfHxcclxuICAgICAgICBhY3RpdmVUYWIgPT09ICdvcGVyYXRpb25hbCcgfHxcclxuICAgICAgICBhY3RpdmVUYWIgPT09ICdjb21wbGlhbmNlJyB8fFxyXG4gICAgICAgIGFjdGl2ZVRhYiA9PT0gJ290aGVycydcclxuICAgICAgKSB7XHJcbiAgICAgICAgY29uc3QgbGlzdCA9IFsuLi50aGlzLmNhdGVnb3J5TGlzdFthY3RpdmVUYWJdLmxpc3RdO1xyXG4gICAgICAgIGxpc3QuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJZHMuaW5jbHVkZXMoZWxlbWVudFt0aGlzLmNhdGVnb3J5SWRLZXldKSkge1xyXG4gICAgICAgICAgICBsZXQgaWRJbmRleCA9IHRoaXMuc2VsZWN0ZWRJZHMuZmluZEluZGV4KFxyXG4gICAgICAgICAgICAgIChpZDogYW55KSA9PiBpZCA9PSBlbGVtZW50W3RoaXMuY2F0ZWdvcnlJZEtleV1cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZElkcy5zcGxpY2UoaWRJbmRleCwgMSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuc2V0TGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgc2V0TGlzdCgpIHtcclxuICAgIGNvbnN0IGRhdGE6IGFueSA9IFtdO1xyXG4gICAgY29uc3QgY2F0ZWdvcnlMaXN0ID0gWy4uLm5ldyBTZXQodGhpcy5hbGxDYXRlZ29yaWVzKV07XHJcbiAgICAvLyBjbG9uZURlZXAodGhpcy5hbGxDYXRlZ29yaWVzKVxyXG4gICAgY29uc3Qgc2VsZWN0ZWRJZHMgPSBbLi4ubmV3IFNldCh0aGlzLnNlbGVjdGVkSWRzKV07XHJcbiAgICAvLyAgY2xvbmVEZWVwKHRoaXMuc2VsZWN0ZWRJZHMpO1xyXG4gICAgdGhpcy5jYXRlZ29yeUxpc3Quc3RyYXRlZ2ljLnNlbGVjdGVkTGlzdCA9IFtdO1xyXG4gICAgdGhpcy5jYXRlZ29yeUxpc3Qub3BlcmF0aW9uYWwuc2VsZWN0ZWRMaXN0ID0gW107XHJcbiAgICB0aGlzLmNhdGVnb3J5TGlzdC5jb21wbGlhbmNlLnNlbGVjdGVkTGlzdCA9IFtdO1xyXG4gICAgdGhpcy5jYXRlZ29yeUxpc3Qub3RoZXJzLnNlbGVjdGVkTGlzdCA9IFtdO1xyXG5cclxuICAgIGNhdGVnb3J5TGlzdC5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgaWYgKHNlbGVjdGVkSWRzLmluY2x1ZGVzKGVsZW1lbnRbdGhpcy5jYXRlZ29yeUlkS2V5XSkpIHtcclxuICAgICAgICBkYXRhLnB1c2goZWxlbWVudCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZWxlY3RlZENhdGVnb3JpZXMgPSBkYXRhO1xyXG4gICAgdGhpcy5mb290ZXJEZXRhaWxzLnNlbGVjdGVkRGF0YSA9IGRhdGE7XHJcblxyXG4gICAgdGhpcy5jYXRlZ29yeUxpc3Quc3RyYXRlZ2ljLmxpc3QuZm9yRWFjaCgoY2F0ZWdvcnk6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoc2VsZWN0ZWRJZHMuaW5jbHVkZXMoY2F0ZWdvcnlbdGhpcy5jYXRlZ29yeUlkS2V5XSkpIHtcclxuICAgICAgICB0aGlzLmNhdGVnb3J5TGlzdC5zdHJhdGVnaWMuc2VsZWN0ZWRMaXN0LnB1c2goY2F0ZWdvcnkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuY2F0ZWdvcnlMaXN0Lm9wZXJhdGlvbmFsLmxpc3QuZm9yRWFjaCgoY2F0ZWdvcnk6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoc2VsZWN0ZWRJZHMuaW5jbHVkZXMoY2F0ZWdvcnlbdGhpcy5jYXRlZ29yeUlkS2V5XSkpIHtcclxuICAgICAgICB0aGlzLmNhdGVnb3J5TGlzdC5vcGVyYXRpb25hbC5zZWxlY3RlZExpc3QucHVzaChjYXRlZ29yeSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5jYXRlZ29yeUxpc3QuY29tcGxpYW5jZS5saXN0LmZvckVhY2goKGNhdGVnb3J5OiBhbnkpID0+IHtcclxuICAgICAgaWYgKHNlbGVjdGVkSWRzLmluY2x1ZGVzKGNhdGVnb3J5W3RoaXMuY2F0ZWdvcnlJZEtleV0pKSB7XHJcbiAgICAgICAgdGhpcy5jYXRlZ29yeUxpc3QuY29tcGxpYW5jZS5zZWxlY3RlZExpc3QucHVzaChjYXRlZ29yeSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5jYXRlZ29yeUxpc3Qub3RoZXJzLmxpc3QuZm9yRWFjaCgoY2F0ZWdvcnk6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoc2VsZWN0ZWRJZHMuaW5jbHVkZXMoY2F0ZWdvcnlbdGhpcy5jYXRlZ29yeUlkS2V5XSkpIHtcclxuICAgICAgICB0aGlzLmNhdGVnb3J5TGlzdC5vdGhlcnMuc2VsZWN0ZWRMaXN0LnB1c2goY2F0ZWdvcnkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGlmICghdGhpcy5hY3RpdmVUYWIpIHtcclxuICAgICAgdGhpcy5zZXRBY3RpdmVUYWIoKTtcclxuICAgIH1cclxuICB9XHJcbiAgc2V0QWN0aXZlVGFiKCkge1xyXG4gICAgaWYgKHRoaXMuY2F0ZWdvcnlMaXN0LnN0cmF0ZWdpYy5zZWxlY3RlZExpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmFjdGl2ZVRhYiA9ICdzdHJhdGVnaWMnO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmNhdGVnb3J5TGlzdC5vcGVyYXRpb25hbC5zZWxlY3RlZExpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmFjdGl2ZVRhYiA9ICdvcGVyYXRpb25hbCc7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY2F0ZWdvcnlMaXN0LmNvbXBsaWFuY2Uuc2VsZWN0ZWRMaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5hY3RpdmVUYWIgPSAnY29tcGxpYW5jZSc7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY2F0ZWdvcnlMaXN0Lm90aGVycy5zZWxlY3RlZExpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmFjdGl2ZVRhYiA9ICdvdGhlcnMnO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5hY3RpdmVUYWIgPSAnc3RyYXRlZ2ljJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNoZWNrU2VsZWN0QWxsKGFjdGl2ZVRhYjogc3RyaW5nKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIGFjdGl2ZVRhYiA9PT0gJ3N0cmF0ZWdpYycgfHxcclxuICAgICAgYWN0aXZlVGFiID09PSAnb3BlcmF0aW9uYWwnIHx8XHJcbiAgICAgIGFjdGl2ZVRhYiA9PT0gJ2NvbXBsaWFuY2UnIHx8XHJcbiAgICAgIGFjdGl2ZVRhYiA9PT0gJ290aGVycydcclxuICAgICkge1xyXG4gICAgICBjb25zdCBkYXRhID0gdGhpcy5jYXRlZ29yeUxpc3RbYWN0aXZlVGFiXS5saXN0LmV2ZXJ5KCh1c2VyOiBhbnkpID0+XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZElkcy5pbmNsdWRlcyh1c2VyW3RoaXMuY2F0ZWdvcnlJZEtleV0pXHJcbiAgICAgICk7XHJcbiAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2F2ZSgpIHtcclxuICAgIHRoaXMuc2F2ZVNlbGVjdGVkQ2F0ZWdvcnkuZW1pdCh0aGlzLnNlbGVjdGVkQ2F0ZWdvcmllcyk7XHJcbiAgfVxyXG5cclxuICBjbG9zZSgpIHtcclxuICAgIHRoaXMuY2xvc2VDYXRlZ29yaWVzTGlzdC5lbWl0KCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJyaXNrLWNhdGVnb3J5LWxpc3RcIiBbY2xhc3MuYW5pbWF0ZS1zbGlkZUluUmlnaHRdPVwiYW5pbWF0aW9uXCI+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJyaXNrLWNhdGVnb3J5LWxpc3QtaGVhZCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1wbC00IHZ4LXByLTRcIlxyXG4gID5cclxuICAgIDxzcGFuIGNsYXNzPVwidngtZnMtMTQgdngtZnctNTAwIHZ4LWxhYmVsLXR4dFwiPlNlbGVjdCBSaXNrIENhdGVnb3J5KHMpPC9zcGFuPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJyaXNrLWNhdGVnb3J5LWxpc3QtbWlkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidngtZC1mbGV4IHZ4LW1iLTJcIj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwicmlzay1jYXRlZ29yeS1saXN0LWNhcmRcIlxyXG4gICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlVGFiID09ICdzdHJhdGVnaWMnXCJcclxuICAgICAgICAoY2xpY2spPVwiYWN0aXZlVGFiID0gJ3N0cmF0ZWdpYydcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj5cclxuICAgICAgICAgIDxsYWJlbD5zdHJhdGVnaWM8L2xhYmVsPlxyXG4gICAgICAgICAgPHAgKm5nSWY9XCJjYXRlZ29yeUxpc3Q/LnN0cmF0ZWdpYz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGggIT0gMFwiPlxyXG4gICAgICAgICAgICB7eyBjYXRlZ29yeUxpc3Q/LnN0cmF0ZWdpYz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGggfX1cclxuICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICBjYXRlZ29yeUxpc3Q/LnN0cmF0ZWdpYz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGggPT0gMVxyXG4gICAgICAgICAgICAgICAgPyBcIkNhdGVnb3J5XCJcclxuICAgICAgICAgICAgICAgIDogXCJDYXRlZ29yaWVzXCJcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgc2VsZWN0ZWRcclxuICAgICAgICAgIDwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXJcIj57eyBjYXRlZ29yeUxpc3Q/LnN0cmF0ZWdpYz8ubGlzdD8ubGVuZ3RoIH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwicmlzay1jYXRlZ29yeS1saXN0LWNhcmRcIlxyXG4gICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlVGFiID09ICdvcGVyYXRpb25hbCdcIlxyXG4gICAgICAgIChjbGljayk9XCJhY3RpdmVUYWIgPSAnb3BlcmF0aW9uYWwnXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XHJcbiAgICAgICAgICA8bGFiZWw+b3BlcmF0aW9uYWw8L2xhYmVsPlxyXG4gICAgICAgICAgPHAgKm5nSWY9XCJjYXRlZ29yeUxpc3Q/Lm9wZXJhdGlvbmFsPy5zZWxlY3RlZExpc3Q/Lmxlbmd0aCAhPSAwXCI+XHJcbiAgICAgICAgICAgIHt7IGNhdGVnb3J5TGlzdD8ub3BlcmF0aW9uYWw/LnNlbGVjdGVkTGlzdD8ubGVuZ3RoIH19XHJcbiAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgY2F0ZWdvcnlMaXN0Py5vcGVyYXRpb25hbD8uc2VsZWN0ZWRMaXN0Py5sZW5ndGggPT0gMVxyXG4gICAgICAgICAgICAgICAgPyBcIkNhdGVnb3J5XCJcclxuICAgICAgICAgICAgICAgIDogXCJDYXRlZ29yaWVzXCJcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgc2VsZWN0ZWRcclxuICAgICAgICAgIDwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXJcIj57e1xyXG4gICAgICAgICAgY2F0ZWdvcnlMaXN0Py5vcGVyYXRpb25hbD8ubGlzdD8ubGVuZ3RoXHJcbiAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJyaXNrLWNhdGVnb3J5LWxpc3QtY2FyZFwiXHJcbiAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVUYWIgPT0gJ2NvbXBsaWFuY2UnXCJcclxuICAgICAgICAoY2xpY2spPVwiYWN0aXZlVGFiID0gJ2NvbXBsaWFuY2UnXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XHJcbiAgICAgICAgICA8bGFiZWw+Y29tcGxpYW5jZTwvbGFiZWw+XHJcbiAgICAgICAgICA8cCAqbmdJZj1cImNhdGVnb3J5TGlzdD8uY29tcGxpYW5jZT8uc2VsZWN0ZWRMaXN0Py5sZW5ndGggIT0gMFwiPlxyXG4gICAgICAgICAgICB7eyBjYXRlZ29yeUxpc3Q/LmNvbXBsaWFuY2U/LnNlbGVjdGVkTGlzdD8ubGVuZ3RoIH19XHJcbiAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgY2F0ZWdvcnlMaXN0Py5jb21wbGlhbmNlPy5zZWxlY3RlZExpc3Q/Lmxlbmd0aCA9PSAxXHJcbiAgICAgICAgICAgICAgICA/IFwiQ2F0ZWdvcnlcIlxyXG4gICAgICAgICAgICAgICAgOiBcIkNhdGVnb3JpZXNcIlxyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICBzZWxlY3RlZFxyXG4gICAgICAgICAgPC9wPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlclwiPnt7XHJcbiAgICAgICAgICBjYXRlZ29yeUxpc3Q/LmNvbXBsaWFuY2U/Lmxpc3Q/Lmxlbmd0aFxyXG4gICAgICAgIH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwicmlzay1jYXRlZ29yeS1saXN0LWNhcmRcIlxyXG4gICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlVGFiID09ICdvdGhlcnMnXCJcclxuICAgICAgICAoY2xpY2spPVwiYWN0aXZlVGFiID0gJ290aGVycydcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj5cclxuICAgICAgICAgIDxsYWJlbD5PVEhFUlM8L2xhYmVsPlxyXG4gICAgICAgICAgPHAgKm5nSWY9XCJjYXRlZ29yeUxpc3Q/Lm90aGVycz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGggIT0gMFwiPlxyXG4gICAgICAgICAgICB7eyBjYXRlZ29yeUxpc3Q/Lm90aGVycz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGggfX1cclxuICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICBjYXRlZ29yeUxpc3Q/Lm90aGVycz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGggPT0gMVxyXG4gICAgICAgICAgICAgICAgPyBcIkNhdGVnb3J5XCJcclxuICAgICAgICAgICAgICAgIDogXCJDYXRlZ29yaWVzXCJcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgc2VsZWN0ZWRcclxuICAgICAgICAgIDwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXJcIj57eyBjYXRlZ29yeUxpc3Q/Lm90aGVycz8ubGlzdD8ubGVuZ3RoIH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJyaXNrLWNhdGVnb3J5LWxpc3Qtc2VhcmNoIHZ4LW1iLTJcIj5cclxuICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGI7PC9pPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIFJpc2sgQ2F0ZWdvcnlcIlxyXG4gICAgICAvPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAqbmdJZj1cImNhdGVnb3J5TGlzdFthY3RpdmVUYWJdPy5saXN0IHwgZmlsdGVyIDogc2VhcmNoIGFzIHNlYXJjaExpc3RcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0LWFsbFwiICpuZ0lmPVwic2VhcmNoTGlzdC5sZW5ndGggPiAxXCI+XHJcbiAgICAgICAgPGFwcC1jcy1jaGVja2JveFxyXG4gICAgICAgICAgW25nVmFsdWVdPVwiY2hlY2tTZWxlY3RBbGwoYWN0aXZlVGFiKVwiXHJcbiAgICAgICAgICAobmdWYWx1ZUNoYW5nZSk9XCJzZWxlY3RBbGwoJGV2ZW50LCBhY3RpdmVUYWIpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8c3Ryb25nPnt7XHJcbiAgICAgICAgICAgIGNoZWNrU2VsZWN0QWxsKGFjdGl2ZVRhYikgPyBcIkRlc2VsZWN0IEFsbFwiIDogXCJTZWxlY3QgQWxsXCJcclxuICAgICAgICAgIH19PC9zdHJvbmc+XHJcbiAgICAgICAgPC9hcHAtY3MtY2hlY2tib3g+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJyaXNrLWNhdGVnb3J5LWxpc3QtaXRlbSB2eC1tYi00XCJcclxuICAgICAgICBbY2xhc3Mud2l0aC1zZWxlY3RBbGxdPVwic2VhcmNoTGlzdC5sZW5ndGggPiAxXCJcclxuICAgICAgICAqbmdJZj1cInNlYXJjaExpc3QubGVuZ3RoID4gMFwiXHJcbiAgICAgID5cclxuICAgICAgICA8dWwgY2xhc3M9XCJyaXNrLWNhdGVnb3J5LWxpc3QtaXRlbS11bCB2eC1tLTAgdngtcC0wXCI+XHJcbiAgICAgICAgICA8bGkgY2xhc3M9XCJ2eC1tYi00XCIgKm5nRm9yPVwibGV0IGNhdGVnb3J5IG9mIHNlYXJjaExpc3RcIj5cclxuICAgICAgICAgICAgPGFwcC1jcy1jaGVja2JveFxyXG4gICAgICAgICAgICAgIFtuZ1ZhbHVlXT1cInNlbGVjdGVkSWRzLmluY2x1ZGVzKGNhdGVnb3J5W2NhdGVnb3J5SWRLZXldKVwiXHJcbiAgICAgICAgICAgICAgKG5nVmFsdWVDaGFuZ2UpPVwic2VsZWN0Q2F0ZWdvcnkoJGV2ZW50LCBhY3RpdmVUYWIsIGNhdGVnb3J5KVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJjYXRlZ29yaWVzXCI+XHJcbiAgICAgICAgICAgICAgICA8bGlcclxuICAgICAgICAgICAgICAgICAgW2FyVG9vbHRpcF09XCJjYXRlZ29yeS5jYXRlZ29yeV9uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICB7eyBjYXRlZ29yeS5jYXRlZ29yeV9uYW1lIH19XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgIDwvYXBwLWNzLWNoZWNrYm94PlxyXG4gICAgICAgICAgPC9saT5cclxuICAgICAgICA8L3VsPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGFwcC1uby1kYXRhXHJcbiAgICAgICAgKm5nSWY9XCJzZWFyY2hMaXN0Lmxlbmd0aCA9PSAwXCJcclxuICAgICAgICBbbm9EYXRhSW1hZ2VdPVwiQVNTRVRTLnNlYXJjaF9kYXRhXCJcclxuICAgICAgICBbbm9EYXRhVGV4dF09XCInTm8gZGF0YSB0byBkaXNwbGF5J1wiXHJcbiAgICAgID5cclxuICAgICAgPC9hcHAtbm8tZGF0YT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxhcHAtZGFzaGJvYXJkLWZvb3RlclxyXG4gICAgICBbZm9vdGVyRGV0YWlsc109XCJmb290ZXJEZXRhaWxzXCJcclxuICAgICAgKGNhbmNlbEV2ZW50KT1cImNsb3NlKClcIlxyXG4gICAgICAoZGVsZXRlRXZlbnQpPVwiZGVsZXRlRXZlbnQoJGV2ZW50KVwiXHJcbiAgICAgIChzdWJtaXRFdmVudCk9XCJzYXZlKClcIlxyXG4gICAgPjwvYXBwLWRhc2hib2FyZC1mb290ZXI+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|