vc-create-dashboard 3.1.1 → 3.1.2

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.
Files changed (176) hide show
  1. package/esm2022/lib/configurations.mjs +7 -0
  2. package/esm2022/lib/create-dashboard-container/categories/categories-config.mjs +2 -0
  3. package/esm2022/lib/create-dashboard-container/categories/categories.component.mjs +212 -0
  4. package/esm2022/lib/create-dashboard-container/configure-widgets/configure-widgets/configure-widgets.component.mjs +350 -0
  5. package/esm2022/lib/create-dashboard-container/configure-widgets/configure-widgets/widget.interface.mjs +2 -0
  6. package/esm2022/lib/create-dashboard-container/configure-widgets/configure-widgets.module.mjs +47 -0
  7. package/esm2022/lib/create-dashboard-container/constants/assets.constant.mjs +37 -0
  8. package/esm2022/lib/create-dashboard-container/create-dashboard-config.mjs +2 -0
  9. package/esm2022/lib/create-dashboard-container/create-dashboard.component.mjs +1601 -0
  10. package/esm2022/lib/create-dashboard-container/create-dashboard.module.mjs +127 -0
  11. package/esm2022/lib/create-dashboard-container/directives/directives.module.mjs +24 -0
  12. package/esm2022/lib/create-dashboard-container/directives/scroll-in-view.directive.mjs +36 -0
  13. package/esm2022/lib/create-dashboard-container/form-group/form-group.component.mjs +153 -0
  14. package/esm2022/lib/create-dashboard-container/frequency/frequency.component.mjs +309 -0
  15. package/esm2022/lib/create-dashboard-container/interfaces/widget-data-model.mjs +2 -0
  16. package/esm2022/lib/create-dashboard-container/pipes/filter.pipe.mjs +30 -0
  17. package/esm2022/lib/create-dashboard-container/pipes/search-program.pipe.mjs +37 -0
  18. package/esm2022/lib/create-dashboard-container/pipes/search.pipe.mjs +25 -0
  19. package/esm2022/lib/create-dashboard-container/pipes/text-count.pipe.mjs +18 -0
  20. package/esm2022/lib/create-dashboard-container/program-list/constant.mjs +31 -0
  21. package/esm2022/lib/create-dashboard-container/program-list/information-block/information-block.component.mjs +13 -0
  22. package/esm2022/lib/create-dashboard-container/program-list/interfaces/list-item.interface.mjs +2 -0
  23. package/esm2022/lib/create-dashboard-container/program-list/list-container/list-container.component.mjs +50 -0
  24. package/esm2022/lib/create-dashboard-container/program-list/pipes/check-selected-items.pipes.mjs +23 -0
  25. package/esm2022/lib/create-dashboard-container/program-list/program-list/program-list.component.mjs +294 -0
  26. package/esm2022/lib/create-dashboard-container/program-list/program-list.module.mjs +60 -0
  27. package/esm2022/lib/create-dashboard-container/program-list/services/list-utils.service.mjs +27 -0
  28. package/esm2022/lib/create-dashboard-container/program-list/services/program-list-api.service.mjs +28 -0
  29. package/esm2022/lib/create-dashboard-container/responsibility-center/responsibility-center.component.mjs +239 -0
  30. package/esm2022/lib/create-dashboard-container/risk-categories/risk-categories-config.mjs +2 -0
  31. package/esm2022/lib/create-dashboard-container/risk-categories/risk-categories.component.mjs +206 -0
  32. package/esm2022/lib/create-dashboard-container/services/configure-widgets.service.mjs +233 -0
  33. package/esm2022/lib/create-dashboard-container/services/create-dashboard.service.mjs +222 -0
  34. package/esm2022/lib/create-dashboard-container/services/pagination.service.mjs +28 -0
  35. package/esm2022/lib/create-dashboard-container/user-list/user-list.component.mjs +440 -0
  36. package/esm2022/lib/create-dashboard-container/user-list/user-list.config.mjs +2 -0
  37. package/esm2022/lib/create-dashboard-container/utils/dashboard-edit.utils.mjs +181 -0
  38. package/esm2022/lib/create-dashboard.service.mjs +14 -0
  39. package/esm2022/lib/ui-kit/dashboard-footer/dashboard-footer/dashboard-footer.component.mjs +52 -0
  40. package/esm2022/lib/ui-kit/dashboard-footer/dashboard-footer-config.mjs +2 -0
  41. package/esm2022/lib/ui-kit/dashboard-footer/dashboard-footer.module.mjs +32 -0
  42. package/esm2022/lib/ui-kit/dialog/dialog-config.mjs +7 -0
  43. package/esm2022/lib/ui-kit/dialog/dialog-injector.mjs +17 -0
  44. package/esm2022/lib/ui-kit/dialog/dialog-ref.mjs +11 -0
  45. package/esm2022/lib/ui-kit/dialog/dialog.component.mjs +96 -0
  46. package/esm2022/lib/ui-kit/dialog/dialog.module.mjs +20 -0
  47. package/esm2022/lib/ui-kit/dialog/dialog.service.mjs +56 -0
  48. package/esm2022/lib/ui-kit/dialog/insertion.directive.mjs +17 -0
  49. package/esm2022/lib/ui-kit/floating-bar/floating-bar.component.mjs +57 -0
  50. package/esm2022/lib/ui-kit/floating-bar/floating-bar.module.mjs +32 -0
  51. package/esm2022/lib/ui-kit/formgroup/click-outside.directive.mjs +30 -0
  52. package/esm2022/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.mjs +29 -0
  53. package/esm2022/lib/ui-kit/formgroup/cs-radio/cs-radio.component.mjs +34 -0
  54. package/esm2022/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.mjs +14 -0
  55. package/esm2022/lib/ui-kit/formgroup/cs-select/cs-select.component.mjs +119 -0
  56. package/esm2022/lib/ui-kit/formgroup/cs-switch/cs-switch.component.mjs +39 -0
  57. package/esm2022/lib/ui-kit/formgroup/formgroup.module.mjs +55 -0
  58. package/esm2022/lib/ui-kit/formgroup/pipes/pascal.pipe.mjs +19 -0
  59. package/esm2022/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.mjs +24 -0
  60. package/esm2022/lib/ui-kit/loaders/loaders.module.mjs +24 -0
  61. package/esm2022/lib/ui-kit/loaders/table-loader/table-loader.component.mjs +18 -0
  62. package/esm2022/lib/ui-kit/no-data/no-data.component.mjs +47 -0
  63. package/esm2022/lib/ui-kit/no-data/no-data.module.mjs +18 -0
  64. package/esm2022/lib/ui-kit/pagination/pagination.component.mjs +130 -0
  65. package/esm2022/lib/ui-kit/pagination/pagination.module.mjs +18 -0
  66. package/esm2022/lib/ui-kit/popover/popover.component.mjs +129 -0
  67. package/esm2022/lib/ui-kit/popover/popover.directive.mjs +93 -0
  68. package/esm2022/lib/ui-kit/popover/popover.module.mjs +21 -0
  69. package/esm2022/lib/ui-kit/popover/popover.service.mjs +23 -0
  70. package/esm2022/lib/ui-kit/select/cs-option/cs-option.component.mjs +41 -0
  71. package/esm2022/lib/ui-kit/select/cs-select/cs-select.component.mjs +107 -0
  72. package/esm2022/lib/ui-kit/select/safe-html.pipe.mjs +21 -0
  73. package/esm2022/lib/ui-kit/select/select.module.mjs +21 -0
  74. package/esm2022/lib/ui-kit/services/cs-select.service.mjs +16 -0
  75. package/esm2022/lib/ui-kit/smiley-dialog/smiley-dialog.component.mjs +52 -0
  76. package/esm2022/lib/ui-kit/smiley-dialog/smiley-dialog.module.mjs +18 -0
  77. package/esm2022/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.mjs +46 -0
  78. package/esm2022/lib/ui-kit/snack-bar/snack-bar.module.mjs +18 -0
  79. package/esm2022/lib/ui-kit/snack-bar/snack-bar.service.mjs +23 -0
  80. package/esm2022/lib/ui-kit/tooltip/tooltip.directive.mjs +168 -0
  81. package/esm2022/lib/ui-kit/tooltip/tooltip.module.mjs +18 -0
  82. package/esm2022/lib/ui-kit/v-loader/loader/loader.component.mjs +24 -0
  83. package/esm2022/lib/ui-kit/v-loader/loader-inline/loader-inline.component.mjs +24 -0
  84. package/esm2022/lib/ui-kit/v-loader/v-loader.module.mjs +19 -0
  85. package/esm2022/public-api.mjs +10 -0
  86. package/esm2022/vc-create-dashboard.mjs +5 -0
  87. package/fesm2022/vc-create-dashboard.mjs +319 -331
  88. package/fesm2022/vc-create-dashboard.mjs.map +1 -1
  89. package/index.d.ts +5 -0
  90. package/lib/configurations.d.ts +4 -0
  91. package/lib/create-dashboard-container/categories/categories-config.d.ts +18 -0
  92. package/lib/create-dashboard-container/categories/categories.component.d.ts +66 -0
  93. package/lib/create-dashboard-container/configure-widgets/configure-widgets/configure-widgets.component.d.ts +113 -0
  94. package/lib/create-dashboard-container/configure-widgets/configure-widgets/widget.interface.d.ts +9 -0
  95. package/lib/create-dashboard-container/configure-widgets/configure-widgets.module.d.ts +14 -0
  96. package/lib/create-dashboard-container/constants/assets.constant.d.ts +35 -0
  97. package/lib/create-dashboard-container/create-dashboard-config.d.ts +18 -0
  98. package/lib/create-dashboard-container/create-dashboard.component.d.ts +219 -0
  99. package/lib/create-dashboard-container/create-dashboard.module.d.ts +37 -0
  100. package/lib/create-dashboard-container/directives/directives.module.d.ts +8 -0
  101. package/lib/create-dashboard-container/directives/scroll-in-view.directive.d.ts +12 -0
  102. package/lib/create-dashboard-container/form-group/form-group.component.d.ts +48 -0
  103. package/lib/create-dashboard-container/frequency/frequency.component.d.ts +39 -0
  104. package/lib/create-dashboard-container/interfaces/widget-data-model.d.ts +8 -0
  105. package/lib/create-dashboard-container/pipes/filter.pipe.d.ts +7 -0
  106. package/lib/create-dashboard-container/pipes/search-program.pipe.d.ts +7 -0
  107. package/lib/create-dashboard-container/pipes/search.pipe.d.ts +7 -0
  108. package/lib/create-dashboard-container/pipes/text-count.pipe.d.ts +7 -0
  109. package/lib/create-dashboard-container/program-list/constant.d.ts +24 -0
  110. package/lib/create-dashboard-container/program-list/information-block/information-block.component.d.ts +6 -0
  111. package/lib/create-dashboard-container/program-list/interfaces/list-item.interface.d.ts +5 -0
  112. package/lib/create-dashboard-container/program-list/list-container/list-container.component.d.ts +9 -0
  113. package/lib/create-dashboard-container/program-list/pipes/check-selected-items.pipes.d.ts +7 -0
  114. package/lib/create-dashboard-container/program-list/program-list/program-list.component.d.ts +119 -0
  115. package/lib/create-dashboard-container/program-list/program-list.module.d.ts +17 -0
  116. package/lib/create-dashboard-container/program-list/services/list-utils.service.d.ts +7 -0
  117. package/lib/create-dashboard-container/program-list/services/program-list-api.service.d.ts +12 -0
  118. package/lib/create-dashboard-container/responsibility-center/responsibility-center.component.d.ts +72 -0
  119. package/lib/create-dashboard-container/risk-categories/risk-categories-config.d.ts +18 -0
  120. package/lib/create-dashboard-container/risk-categories/risk-categories.component.d.ts +66 -0
  121. package/lib/create-dashboard-container/services/configure-widgets.service.d.ts +21 -0
  122. package/lib/create-dashboard-container/services/create-dashboard.service.d.ts +80 -0
  123. package/lib/create-dashboard-container/services/pagination.service.d.ts +12 -0
  124. package/lib/create-dashboard-container/user-list/user-list.component.d.ts +123 -0
  125. package/lib/create-dashboard-container/user-list/user-list.config.d.ts +13 -0
  126. package/lib/create-dashboard-container/utils/dashboard-edit.utils.d.ts +16 -0
  127. package/lib/create-dashboard.service.d.ts +6 -0
  128. package/lib/ui-kit/dashboard-footer/dashboard-footer/dashboard-footer.component.d.ts +17 -0
  129. package/lib/ui-kit/dashboard-footer/dashboard-footer-config.d.ts +11 -0
  130. package/lib/ui-kit/dashboard-footer/dashboard-footer.module.d.ts +10 -0
  131. package/lib/ui-kit/dialog/dialog-config.d.ts +6 -0
  132. package/lib/ui-kit/dialog/dialog-injector.d.ts +7 -0
  133. package/lib/ui-kit/dialog/dialog-ref.d.ts +7 -0
  134. package/lib/ui-kit/dialog/dialog.component.d.ts +33 -0
  135. package/lib/ui-kit/dialog/dialog.module.d.ts +9 -0
  136. package/lib/ui-kit/dialog/dialog.service.d.ts +17 -0
  137. package/lib/ui-kit/dialog/insertion.directive.d.ts +8 -0
  138. package/lib/ui-kit/floating-bar/floating-bar.component.d.ts +20 -0
  139. package/lib/ui-kit/floating-bar/floating-bar.module.d.ts +10 -0
  140. package/lib/ui-kit/formgroup/click-outside.directive.d.ts +10 -0
  141. package/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.d.ts +13 -0
  142. package/lib/ui-kit/formgroup/cs-radio/cs-radio.component.d.ts +15 -0
  143. package/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.d.ts +8 -0
  144. package/lib/ui-kit/formgroup/cs-select/cs-select.component.d.ts +36 -0
  145. package/lib/ui-kit/formgroup/cs-switch/cs-switch.component.d.ts +15 -0
  146. package/lib/ui-kit/formgroup/formgroup.module.d.ts +17 -0
  147. package/lib/ui-kit/formgroup/pipes/pascal.pipe.d.ts +7 -0
  148. package/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.d.ts +7 -0
  149. package/lib/ui-kit/loaders/loaders.module.d.ts +8 -0
  150. package/lib/ui-kit/loaders/table-loader/table-loader.component.d.ts +9 -0
  151. package/lib/ui-kit/no-data/no-data.component.d.ts +19 -0
  152. package/lib/ui-kit/no-data/no-data.module.d.ts +8 -0
  153. package/lib/ui-kit/pagination/pagination.component.d.ts +21 -0
  154. package/lib/ui-kit/pagination/pagination.module.d.ts +8 -0
  155. package/lib/ui-kit/popover/popover.component.d.ts +28 -0
  156. package/lib/ui-kit/popover/popover.directive.d.ts +17 -0
  157. package/lib/ui-kit/popover/popover.module.d.ts +9 -0
  158. package/lib/ui-kit/popover/popover.service.d.ts +13 -0
  159. package/lib/ui-kit/select/cs-option/cs-option.component.d.ts +16 -0
  160. package/lib/ui-kit/select/cs-select/cs-select.component.d.ts +32 -0
  161. package/lib/ui-kit/select/safe-html.pipe.d.ts +10 -0
  162. package/lib/ui-kit/select/select.module.d.ts +11 -0
  163. package/lib/ui-kit/services/cs-select.service.d.ts +7 -0
  164. package/lib/ui-kit/smiley-dialog/smiley-dialog.component.d.ts +17 -0
  165. package/lib/ui-kit/smiley-dialog/smiley-dialog.module.d.ts +8 -0
  166. package/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.d.ts +17 -0
  167. package/lib/ui-kit/snack-bar/snack-bar.module.d.ts +8 -0
  168. package/lib/ui-kit/snack-bar/snack-bar.service.d.ts +9 -0
  169. package/lib/ui-kit/tooltip/tooltip.directive.d.ts +28 -0
  170. package/lib/ui-kit/tooltip/tooltip.module.d.ts +8 -0
  171. package/lib/ui-kit/v-loader/loader/loader.component.d.ts +11 -0
  172. package/lib/ui-kit/v-loader/loader-inline/loader-inline.component.d.ts +11 -0
  173. package/lib/ui-kit/v-loader/v-loader.module.d.ts +9 -0
  174. package/package.json +6 -5
  175. package/public-api.d.ts +3 -0
  176. package/types/vc-create-dashboard.d.ts +0 -1680
@@ -0,0 +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\">&#xe90b;</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\">&#xe90b;</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
@@ -0,0 +1,233 @@
1
+ import { Injectable, Optional } from '@angular/core';
2
+ import { retry } from 'rxjs/operators';
3
+ import { ASSETS } from '../constants/assets.constant';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common/http";
6
+ import * as i2 from "../../configurations";
7
+ export class ConfigureWidgetsService {
8
+ http;
9
+ env;
10
+ constructor(http, config) {
11
+ this.http = http;
12
+ if (config) {
13
+ this.env = config.envConfig;
14
+ }
15
+ }
16
+ // complianceWidgetsData = [
17
+ // {
18
+ // title: 'Overview',
19
+ // id: 'overview_flag',
20
+ // description:
21
+ // 'Displays all responsibilities that have been assigned to you.',
22
+ // widgetImage: ASSETS.overviewWidget,
23
+ // value: 0,
24
+ // },
25
+ // {
26
+ // title: 'Responsibility Calendar',
27
+ // id: 'compliance_calendar_flag',
28
+ // description:
29
+ // 'Displays all responsibilities that are due on a particular day.',
30
+ // widgetImage: ASSETS.responsibilityCalenderWidget,
31
+ // value: 0,
32
+ // },
33
+ // {
34
+ // title: 'Responsibility Center Overview',
35
+ // id: 'responsibility_center_overview_flag',
36
+ // description:
37
+ // 'Displays all responsibilities that have been assigned to you.',
38
+ // widgetImage: ASSETS.overviewWidget,
39
+ // value: 0,
40
+ // },
41
+ // {
42
+ // title: 'My Responsibilities',
43
+ // id: 'my_responsibilities',
44
+ // description:
45
+ // 'Displays all responsibilities that have been assigned to you.',
46
+ // widgetImage: ASSETS.myResponsibilitiesWidget,
47
+ // tabOption: true,
48
+ // value: 0,
49
+ // },
50
+ // {
51
+ // title: 'Key Responsibilities',
52
+ // id: 'key_responsibilities',
53
+ // description:
54
+ // 'Displays all responsibilities that are due on a particular day.',
55
+ // widgetImage: ASSETS.keyResponsibilitiesWidget,
56
+ // tabOption: true,
57
+ // value: 0,
58
+ // },
59
+ // {
60
+ // title: 'Trend Analysis',
61
+ // id: 'trend_analysis_flag',
62
+ // description:
63
+ // 'Displays all responsibilities that have been assigned to you.',
64
+ // widgetImage: ASSETS.trendAnalysisWidget,
65
+ // value: 0,
66
+ // },
67
+ // {
68
+ // title: 'Workroom Updates',
69
+ // id: 'workroom_alert_flag',
70
+ // description:
71
+ // 'Displays all responsibilities that have been assigned to you.',
72
+ // widgetImage: ASSETS.workroomUpdatesWidget,
73
+ // value: 0,
74
+ // },
75
+ // {
76
+ // title: 'Recent Activities',
77
+ // id: 'recent_activity_flag',
78
+ // description:
79
+ // 'Displays all responsibilities that have been assigned to you.',
80
+ // widgetImage: ASSETS.recentActivitiesWidget,
81
+ // value: 0,
82
+ // },
83
+ // {
84
+ // title: 'Exception Summary',
85
+ // id: 'exception_summary_flag',
86
+ // description:
87
+ // 'Displays all responsibilities that have been assigned to you.',
88
+ // widgetImage: ASSETS.exceptionSummaryWidget,
89
+ // value: 0,
90
+ // },
91
+ // ];
92
+ riskWidgetsData = [
93
+ {
94
+ title: 'Risk Overview',
95
+ id: 'risk_overview',
96
+ description: 'description',
97
+ // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/risk-overview.png',
98
+ widgetImage: ASSETS.riskOverviewWidget,
99
+ value: 0,
100
+ },
101
+ {
102
+ title: 'Risk Appetite & Tolerance',
103
+ id: 'risk_appetite_tolerance',
104
+ description: 'description',
105
+ // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/appetite-tolerance.png',
106
+ widgetImage: ASSETS.appetiteToleranceWidget,
107
+ value: 0,
108
+ },
109
+ {
110
+ title: 'Risk Ratings',
111
+ id: 'risk_ratings',
112
+ description: 'Description.',
113
+ widgetImage: ASSETS.appetite_tolerance,
114
+ value: 0,
115
+ },
116
+ {
117
+ title: 'Risks Without Controls',
118
+ id: 'risks_without_controls',
119
+ description: 'Description',
120
+ widgetImage: ASSETS.appetite_tolerance,
121
+ value: 0,
122
+ },
123
+ {
124
+ title: 'Risks Exceeding Risk Tolerance',
125
+ id: 'exceeds_risk_tolerance',
126
+ description: 'description',
127
+ widgetImage: ASSETS.appetite_tolerance,
128
+ value: 0,
129
+ },
130
+ {
131
+ title: 'Inherent Risk Rating by Responsibility Centers ',
132
+ id: 'inherent_risk_rating_by_responsibility_centers',
133
+ description: 'Description.',
134
+ // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/inherent-RC.png',
135
+ widgetImage: ASSETS.inherentRCWidget,
136
+ value: 0,
137
+ },
138
+ {
139
+ title: 'Residual Risk Rating by Responsibility Centers ',
140
+ id: 'residual_risk_rating_by_responsibility_centers',
141
+ description: 'Description.',
142
+ // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/residual-RC.png',
143
+ widgetImage: ASSETS.residualRCWidget,
144
+ value: 0,
145
+ },
146
+ {
147
+ title: 'Risk Category Overview',
148
+ id: 'risk_category_overview',
149
+ description: 'description',
150
+ // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/risk-category-overview.png',
151
+ widgetImage: ASSETS.riskCategoryOverviewWidget,
152
+ value: 0,
153
+ },
154
+ {
155
+ title: 'Risk Heatmap',
156
+ id: 'risk_heatmap',
157
+ description: 'Description.',
158
+ widgetImage: ASSETS.riskHeatmapWidget,
159
+ value: 0,
160
+ },
161
+ {
162
+ title: 'Inherent Risk Rating by Categories',
163
+ id: 'inherent_risk_rating_by_categories',
164
+ description: 'Description.',
165
+ // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/inherent-categories.png',
166
+ widgetImage: ASSETS.inherentCategoriesWidget,
167
+ value: 0,
168
+ },
169
+ {
170
+ title: 'Residual Risk Rating by Categories',
171
+ id: 'residual_risk_rating_by_categories',
172
+ description: 'description',
173
+ // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/residual-categories.png',
174
+ widgetImage: ASSETS.residualCategoriesWidget,
175
+ value: 0,
176
+ },
177
+ {
178
+ title: 'Inherent Risk Rating Trend by Responsibility Centers',
179
+ id: 'inherent_risk_rating_trend_by_responsibility_centers',
180
+ description: 'Description.',
181
+ widgetImage: ASSETS.inherent_trend,
182
+ value: 0,
183
+ },
184
+ {
185
+ title: 'Residual Risk Rating Trend by Responsibility Centers',
186
+ id: 'residual_risk_rating_trend_by_responsibility_centers',
187
+ description: 'Description.',
188
+ widgetImage: ASSETS.residual_trend,
189
+ value: 0,
190
+ },
191
+ {
192
+ title: 'Risk Rating Trend by Categories',
193
+ id: 'risk_rating_trend_by_categories',
194
+ description: 'Description.',
195
+ widgetImage: ASSETS.risk_trend,
196
+ value: 0,
197
+ },
198
+ {
199
+ title: 'Top 5 Risk Ratings',
200
+ id: 'top_5_residual_risk_ratings',
201
+ description: 'Description.',
202
+ // widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/5-risk-ratings.png',
203
+ widgetImage: ASSETS.tenRiskRatingsWidget,
204
+ value: 0,
205
+ },
206
+ ];
207
+ auditWidgetsData = [];
208
+ policyWidgetsData = [];
209
+ // For dashboard view
210
+ dashBoardWidgetUpdate(widGetJson) {
211
+ return this.http
212
+ .put(this.env.OrganizationPut + 'dashboardWidgets', widGetJson)
213
+ .pipe(retry(2));
214
+ }
215
+ moduleType(identifier) {
216
+ if (JSON.stringify(this.riskWidgetsData).includes(identifier)) {
217
+ return 'RISK';
218
+ // } else if (JSON.stringify(this.complianceWidgetsData).includes(identifier)) {
219
+ // return 'COMPLIANCE';
220
+ }
221
+ }
222
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigureWidgetsService, deps: [{ token: i1.HttpClient }, { token: i2.Configurations, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
223
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigureWidgetsService, providedIn: 'root' });
224
+ }
225
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigureWidgetsService, decorators: [{
226
+ type: Injectable,
227
+ args: [{
228
+ providedIn: 'root',
229
+ }]
230
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.Configurations, decorators: [{
231
+ type: Optional
232
+ }] }]; } });
233
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJlLXdpZGdldHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi9jcmVhdGUtZGFzaGJvYXJkLWNvbnRhaW5lci9zZXJ2aWNlcy9jb25maWd1cmUtd2lkZ2V0cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3JELE9BQU8sRUFBbUIsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJeEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7O0FBS3RELE1BQU0sT0FBTyx1QkFBdUI7SUFJeEI7SUFISCxHQUFHLENBQU87SUFFakIsWUFDVSxJQUFnQixFQUNaLE1BQXVCO1FBRDNCLFNBQUksR0FBSixJQUFJLENBQVk7UUFHeEIsSUFBSSxNQUFNLEVBQUU7WUFDVixJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7U0FDN0I7SUFDSCxDQUFDO0lBRUQsNEJBQTRCO0lBQzVCLE1BQU07SUFDTix5QkFBeUI7SUFDekIsMkJBQTJCO0lBQzNCLG1CQUFtQjtJQUNuQix5RUFBeUU7SUFDekUsMENBQTBDO0lBQzFDLGdCQUFnQjtJQUNoQixPQUFPO0lBQ1AsTUFBTTtJQUNOLHdDQUF3QztJQUN4QyxzQ0FBc0M7SUFDdEMsbUJBQW1CO0lBQ25CLDJFQUEyRTtJQUMzRSx3REFBd0Q7SUFDeEQsZ0JBQWdCO0lBQ2hCLE9BQU87SUFDUCxNQUFNO0lBQ04sK0NBQStDO0lBQy9DLGlEQUFpRDtJQUNqRCxtQkFBbUI7SUFDbkIseUVBQXlFO0lBQ3pFLDBDQUEwQztJQUMxQyxnQkFBZ0I7SUFDaEIsT0FBTztJQUNQLE1BQU07SUFDTixvQ0FBb0M7SUFDcEMsaUNBQWlDO0lBQ2pDLG1CQUFtQjtJQUNu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QjtJQUNyQixxQkFBcUIsQ0FBQyxVQUFlO1FBQ25DLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEdBQUcsa0JBQWtCLEVBQUUsVUFBVSxDQUFDO2FBQzlELElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRUQsVUFBVSxDQUFDLFVBQWtCO1FBQzNCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQzdELE9BQU8sTUFBTSxDQUFDO1lBQ2hCLGdGQUFnRjtZQUNoRix5QkFBeUI7U0FDeEI7SUFDSCxDQUFDO3dHQTdOVSx1QkFBdUI7NEdBQXZCLHVCQUF1QixjQUZ0QixNQUFNOzs0RkFFUCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFNSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHdpZGdldERhdGFNb2RlbCB9IGZyb20gJy4uL2ludGVyZmFjZXMvd2lkZ2V0LWRhdGEtbW9kZWwnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgcmV0cnkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBKd3RIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnQGF1dGgwL2FuZ3VsYXItand0JztcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9ucyB9IGZyb20gJy4uLy4uL2NvbmZpZ3VyYXRpb25zJztcbmltcG9ydCB7IEFTU0VUUyB9IGZyb20gJy4uL2NvbnN0YW50cy9hc3NldHMuY29uc3RhbnQnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ29uZmlndXJlV2lkZ2V0c1NlcnZpY2Uge1xuICBwdWJsaWMgZW52ITogYW55O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBAT3B0aW9uYWwoKSBjb25maWc/OiBDb25maWd1cmF0aW9uc1xuICApIHtcbiAgICBpZiAoY29uZmlnKSB7XG4gICAgICB0aGlzLmVudiA9IGNvbmZpZy5lbnZDb25maWc7XG4gICAgfVxuICB9XG5cbiAgLy8gY29tcGxpYW5jZVdpZGdldHNEYXRhID0gW1xuICAvLyAgIHtcbiAgLy8gICAgIHRpdGxlOiAnT3ZlcnZpZXcnLFxuICAvLyAgICAgaWQ6ICdvdmVydmlld19mbGFnJyxcbiAgLy8gICAgIGRlc2NyaXB0aW9uOlxuICAvLyAgICAgICAnRGlzcGxheXMgYWxsIHJlc3BvbnNpYmlsaXRpZXMgdGhhdCBoYXZlIGJlZW4gYXNzaWduZWQgdG8geW91LicsXG4gIC8vICAgICB3aWRnZXRJbWFnZTogQVNTRVRTLm92ZXJ2aWV3V2lkZ2V0LFxuICAvLyAgICAgdmFsdWU6IDAsXG4gIC8vICAgfSxcbiAgLy8gICB7XG4gIC8vICAgICB0aXRsZTogJ1Jlc3BvbnNpYmlsaXR5IENhbGVuZGFyJyxcbiAgLy8gICAgIGlkOiAnY29tcGxpYW5jZV9jYWxlbmRhcl9mbGFnJyxcbiAgLy8gICAgIGRlc2NyaXB0aW9uOlxuICAvLyAgICAgICAnRGlzcGxheXMgYWxsIHJlc3BvbnNpYmlsaXRpZXMgdGhhdCBhcmUgZHVlIG9uIGEgcGFydGljdWxhciBkYXkuJyxcbiAgLy8gICAgIHdpZGdldEltYWdlOiBBU1NFVFMucmVzcG9uc2liaWxpdHlDYWxlbmRlcldpZGdldCxcbiAgLy8gICAgIHZhbHVlOiAwLFxuICAvLyAgIH0sXG4gIC8vICAge1xuICAvLyAgICAgdGl0bGU6ICdSZXNwb25zaWJpbGl0eSBDZW50ZXIgT3ZlcnZpZXcnLFxuICAvLyAgICAgaWQ6ICdyZXNwb25zaWJpbGl0eV9jZW50ZXJfb3ZlcnZpZXdfZmxhZycsXG4gIC8vICAgICBkZXNjcmlwdGlvbjpcbiAgLy8gICAgICAgJ0Rpc3BsYXlzIGFsbCByZXNwb25zaWJpbGl0aWVzIHRoYXQgaGF2ZSBiZWVuIGFzc2lnbmVkIHRvIHlvdS4nLFxuICAvLyAgICAgd2lkZ2V0SW1hZ2U6IEFTU0VUUy5vdmVydmlld1dpZGdldCxcbiAgLy8gICAgIHZhbHVlOiAwLFxuICAvLyAgIH0sXG4gIC8vICAge1xuICAvLyAgICAgdGl0bGU6ICdNeSBSZXNwb25zaWJpbGl0aWVzJyxcbiAgLy8gICAgIGlkOiAnbXlfcmVzcG9uc2liaWxpdGllcycsXG4gIC8vICAgICBkZXNjcmlwdGlvbjpcbiAgLy8gICAgICAgJ0Rpc3BsYXlzIGFsbCByZXNwb25zaWJpbGl0aWVzIHRoYXQgaGF2ZSBiZWVuIGFzc2lnbmVkIHRvIHlvdS4nLFxuICAvLyAgICAgd2lkZ2V0SW1hZ2U6IEFTU0VUUy5teVJlc3BvbnNpYmlsaXRpZXNXaWRnZXQsXG4gIC8vICAgICB0YWJPcHRpb246IHRydWUsXG4gIC8vICAgICB2YWx1ZTogMCxcbiAgLy8gICB9LFxuICAvLyAgIHtcbiAgLy8gICAgIHRpdGxlOiAnS2V5IFJlc3BvbnNpYmlsaXRpZXMnLFxuICAvLyAgICAgaWQ6ICdrZXlfcmVzcG9uc2liaWxpdGllcycsXG4gIC8vICAgICBkZXNjcmlwdGlvbjpcbiAgLy8gICAgICAgJ0Rpc3BsYXlzIGFsbCByZXNwb25zaWJpbGl0aWVzIHRoYXQgYXJlIGR1ZSBvbiBhIHBhcnRpY3VsYXIgZGF5LicsXG4gIC8vICAgICB3aWRnZXRJbWFnZTogQVNTRVRTLmtleVJlc3BvbnNpYmlsaXRpZXNXaWRnZXQsXG4gIC8vICAgICB0YWJPcHRpb246IHRydWUsXG4gIC8vICAgICB2YWx1ZTogMCxcbiAgLy8gICB9LFxuICAvLyAgIHtcbiAgLy8gICAgIHRpdGxlOiAnVHJlbmQgQW5hbHlzaXMnLFxuICAvLyAgICAgaWQ6ICd0cmVuZF9hbmFseXNpc19mbGFnJyxcbiAgLy8gICAgIGRlc2NyaXB0aW9uOlxuICAvLyAgICAgICAnRGlzcGxheXMgYWxsIHJlc3BvbnNpYmlsaXRpZXMgdGhhdCBoYXZlIGJlZW4gYXNzaWduZWQgdG8geW91LicsXG4gIC8vICAgICB3aWRnZXRJbWFnZTogQVNTRVRTLnRyZW5kQW5hbHlzaXNXaWRnZXQsXG4gIC8vICAgICB2YWx1ZTogMCxcbiAgLy8gICB9LFxuICAvLyAgIHtcbiAgLy8gICAgIHRpdGxlOiAnV29ya3Jvb20gVXBkYXRlcycsXG4gIC8vICAgICBpZDogJ3dvcmtyb29tX2FsZXJ0X2ZsYWcnLFxuICAvLyAgICAgZGVzY3JpcHRpb246XG4gIC8vICAgICAgICdEaXNwbGF5cyBhbGwgcmVzcG9uc2liaWxpdGllcyB0aGF0IGhhdmUgYmVlbiBhc3NpZ25lZCB0byB5b3UuJyxcbiAgLy8gICAgIHdpZGdldEltYWdlOiBBU1NFVFMud29ya3Jvb21VcGRhdGVzV2lkZ2V0LFxuICAvLyAgICAgdmFsdWU6IDAsXG4gIC8vICAgfSxcbiAgLy8gICB7XG4gIC8vICAgICB0aXRsZTogJ1JlY2VudCBBY3Rpdml0aWVzJyxcbiAgLy8gICAgIGlkOiAncmVjZW50X2FjdGl2aXR5X2ZsYWcnLFxuICAvLyAgICAgZGVzY3JpcHRpb246XG4gIC8vICAgICAgICdEaXNwbGF5cyBhbGwgcmVzcG9uc2liaWxpdGllcyB0aGF0IGhhdmUgYmVlbiBhc3NpZ25lZCB0byB5b3UuJyxcbiAgLy8gICAgIHdpZGdldEltYWdlOiBBU1NFVFMucmVjZW50QWN0aXZpdGllc1dpZGdldCxcbiAgLy8gICAgIHZhbHVlOiAwLFxuICAvLyAgIH0sXG4gIC8vICAge1xuICAvLyAgICAgdGl0bGU6ICdFeGNlcHRpb24gU3VtbWFyeScsXG4gIC8vICAgICBpZDogJ2V4Y2VwdGlvbl9zdW1tYXJ5X2ZsYWcnLFxuICAvLyAgICAgZGVzY3JpcHRpb246XG4gIC8vICAgICAgICdEaXNwbGF5cyBhbGwgcmVzcG9uc2liaWxpdGllcyB0aGF0IGhhdmUgYmVlbiBhc3NpZ25lZCB0byB5b3UuJyxcbiAgLy8gICAgIHdpZGdldEltYWdlOiBBU1NFVFMuZXhjZXB0aW9uU3VtbWFyeVdpZGdldCxcbiAgLy8gICAgIHZhbHVlOiAwLFxuICAvLyAgIH0sXG4gIC8vIF07XG5cbiAgcmlza1dpZGdldHNEYXRhID0gW1xuICAgIHtcbiAgICAgIHRpdGxlOiAnUmlzayBPdmVydmlldycsXG4gICAgICBpZDogJ3Jpc2tfb3ZlcnZpZXcnLFxuICAgICAgZGVzY3JpcHRpb246ICdkZXNjcmlwdGlvbicsXG4gICAgICAvLyB3aWRnZXRJbWFnZTogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvY29uZmlndXJlLXdpZGdldC9hc3NldHMvaW1hZ2VzL3Jpc2stb3ZlcnZpZXcucG5nJyxcbiAgICAgIHdpZGdldEltYWdlOiBBU1NFVFMucmlza092ZXJ2aWV3V2lkZ2V0LFxuICAgICAgdmFsdWU6IDAsXG4gICAgfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ1Jpc2sgQXBwZXRpdGUgJiBUb2xlcmFuY2UnLFxuICAgICAgaWQ6ICdyaXNrX2FwcGV0aXRlX3RvbGVyYW5jZScsXG4gICAgICBkZXNjcmlwdGlvbjogJ2Rlc2NyaXB0aW9uJyxcbiAgICAgIC8vIHdpZGdldEltYWdlOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy9jb25maWd1cmUtd2lkZ2V0L2Fzc2V0cy9pbWFnZXMvYXBwZXRpdGUtdG9sZXJhbmNlLnBuZycsXG4gICAgICB3aWRnZXRJbWFnZTogQVNTRVRTLmFwcGV0aXRlVG9sZXJhbmNlV2lkZ2V0LFxuICAgICAgdmFsdWU6IDAsXG4gICAgfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ1Jpc2sgUmF0aW5ncycsXG4gICAgICBpZDogJ3Jpc2tfcmF0aW5ncycsXG4gICAgICBkZXNjcmlwdGlvbjogJ0Rlc2NyaXB0aW9uLicsXG4gICAgICB3aWRnZXRJbWFnZTogQVNTRVRTLmFwcGV0aXRlX3RvbGVyYW5jZSxcbiAgICAgIHZhbHVlOiAwLFxuICAgIH0sXG4gICAge1xuICAgICAgdGl0bGU6ICdSaXNrcyBXaXRob3V0IENvbnRyb2xzJyxcbiAgICAgIGlkOiAncmlza3Nfd2l0aG91dF9jb250cm9scycsXG4gICAgICBkZXNjcmlwdGlvbjogJ0Rlc2NyaXB0aW9uJyxcbiAgICAgIHdpZGdldEltYWdlOiBBU1NFVFMuYXBwZXRpdGVfdG9sZXJhbmNlLFxuICAgICAgdmFsdWU6IDAsXG4gICAgfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ1Jpc2tzIEV4Y2VlZGluZyBSaXNrIFRvbGVyYW5jZScsXG4gICAgICBpZDogJ2V4Y2VlZHNfcmlza190b2xlcmFuY2UnLFxuICAgICAgZGVzY3JpcHRpb246ICdkZXNjcmlwdGlvbicsXG4gICAgICB3aWRnZXRJbWFnZTogQVNTRVRTLmFwcGV0aXRlX3RvbGVyYW5jZSxcbiAgICAgIHZhbHVlOiAwLFxuICAgIH0sXG4gICAge1xuICAgICAgdGl0bGU6ICdJbmhlcmVudCBSaXNrIFJhdGluZyBieSBSZXNwb25zaWJpbGl0eSBDZW50ZXJzICcsXG4gICAgICBpZDogJ2luaGVyZW50X3Jpc2tfcmF0aW5nX2J5X3Jlc3BvbnNpYmlsaXR5X2NlbnRlcnMnLFxuICAgICAgZGVzY3JpcHRpb246ICdEZXNjcmlwdGlvbi4nLFxuICAgICAgLy8gd2lkZ2V0SW1hZ2U6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL2NvbmZpZ3VyZS13aWRnZXQvYXNzZXRzL2ltYWdlcy9pbmhlcmVudC1SQy5wbmcnLFxuICAgICAgd2lkZ2V0SW1hZ2U6IEFTU0VUUy5pbmhlcmVudFJDV2lkZ2V0LFxuICAgICAgdmFsdWU6IDAsXG4gICAgfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ1Jlc2lkdWFsIFJpc2sgUmF0aW5nIGJ5IFJlc3BvbnNpYmlsaXR5IENlbnRlcnMgJyxcbiAgICAgIGlkOiAncmVzaWR1YWxfcmlza19yYXRpbmdfYnlfcmVzcG9uc2liaWxpdHlfY2VudGVycycsXG4gICAgICBkZXNjcmlwdGlvbjogJ0Rlc2NyaXB0aW9uLicsXG4gICAgICAvLyB3aWRnZXRJbWFnZTogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvY29uZmlndXJlLXdpZGdldC9hc3NldHMvaW1hZ2VzL3Jlc2lkdWFsLVJDLnBuZycsXG4gICAgICB3aWRnZXRJbWFnZTogQVNTRVRTLnJlc2lkdWFsUkNXaWRnZXQsXG4gICAgICB2YWx1ZTogMCxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRpdGxlOiAnUmlzayBDYXRlZ29yeSBPdmVydmlldycsXG4gICAgICBpZDogJ3Jpc2tfY2F0ZWdvcnlfb3ZlcnZpZXcnLFxuICAgICAgZGVzY3JpcHRpb246ICdkZXNjcmlwdGlvbicsXG4gICAgICAvLyB3aWRnZXRJbWFnZTogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvY29uZmlndXJlLXdpZGdldC9hc3NldHMvaW1hZ2VzL3Jpc2stY2F0ZWdvcnktb3ZlcnZpZXcucG5nJyxcbiAgICAgIHdpZGdldEltYWdlOiBBU1NFVFMucmlza0NhdGVnb3J5T3ZlcnZpZXdXaWRnZXQsXG4gICAgICB2YWx1ZTogMCxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRpdGxlOiAnUmlzayBIZWF0bWFwJyxcbiAgICAgIGlkOiAncmlza19oZWF0bWFwJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnRGVzY3JpcHRpb24uJyxcbiAgICAgIHdpZGdldEltYWdlOiBBU1NFVFMucmlza0hlYXRtYXBXaWRnZXQsXG4gICAgICB2YWx1ZTogMCxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRpdGxlOiAnSW5oZXJlbnQgUmlzayBSYXRpbmcgYnkgQ2F0ZWdvcmllcycsXG4gICAgICBpZDogJ2luaGVyZW50X3Jpc2tfcmF0aW5nX2J5X2NhdGVnb3JpZXMnLFxuICAgICAgZGVzY3JpcHRpb246ICdEZXNjcmlwdGlvbi4nLFxuICAgICAgLy8gd2lkZ2V0SW1hZ2U6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL2NvbmZpZ3VyZS13aWRnZXQvYXNzZXRzL2ltYWdlcy9pbmhlcmVudC1jYXRlZ29yaWVzLnBuZycsXG4gICAgICB3aWRnZXRJbWFnZTogQVNTRVRTLmluaGVyZW50Q2F0ZWdvcmllc1dpZGdldCxcbiAgICAgIHZhbHVlOiAwLFxuICAgIH0sXG5cbiAgICB7XG4gICAgICB0aXRsZTogJ1Jlc2lkdWFsIFJpc2sgUmF0aW5nIGJ5IENhdGVnb3JpZXMnLFxuICAgICAgaWQ6ICdyZXNpZHVhbF9yaXNrX3JhdGluZ19ieV9jYXRlZ29yaWVzJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnZGVzY3JpcHRpb24nLFxuICAgICAgLy8gd2lkZ2V0SW1hZ2U6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL2NvbmZpZ3VyZS13aWRnZXQvYXNzZXRzL2ltYWdlcy9yZXNpZHVhbC1jYXRlZ29yaWVzLnBuZycsXG4gICAgICB3aWRnZXRJbWFnZTogQVNTRVRTLnJlc2lkdWFsQ2F0ZWdvcmllc1dpZGdldCxcbiAgICAgIHZhbHVlOiAwLFxuICAgIH0sXG4gICAge1xuICAgICAgdGl0bGU6ICdJbmhlcmVudCBSaXNrIFJhdGluZyBUcmVuZCBieSBSZXNwb25zaWJpbGl0eSBDZW50ZXJzJyxcbiAgICAgIGlkOiAnaW5oZXJlbnRfcmlza19yYXRpbmdfdHJlbmRfYnlfcmVzcG9uc2liaWxpdHlfY2VudGVycycsXG4gICAgICBkZXNjcmlwdGlvbjogJ0Rlc2NyaXB0aW9uLicsXG4gICAgICB3aWRnZXRJbWFnZTogQVNTRVRTLmluaGVyZW50X3RyZW5kLFxuICAgICAgdmFsdWU6IDAsXG4gICAgfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ1Jlc2lkdWFsIFJpc2sgUmF0aW5nIFRyZW5kIGJ5IFJlc3BvbnNpYmlsaXR5IENlbnRlcnMnLFxuICAgICAgaWQ6ICdyZXNpZHVhbF9yaXNrX3JhdGluZ190cmVuZF9ieV9yZXNwb25zaWJpbGl0eV9jZW50ZXJzJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnRGVzY3JpcHRpb24uJyxcbiAgICAgIHdpZGdldEltYWdlOiBBU1NFVFMucmVzaWR1YWxfdHJlbmQsXG4gICAgICB2YWx1ZTogMCxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRpdGxlOiAnUmlzayBSYXRpbmcgVHJlbmQgYnkgQ2F0ZWdvcmllcycsXG4gICAgICBpZDogJ3Jpc2tfcmF0aW5nX3RyZW5kX2J5X2NhdGVnb3JpZXMnLFxuICAgICAgZGVzY3JpcHRpb246ICdEZXNjcmlwdGlvbi4nLFxuICAgICAgd2lkZ2V0SW1hZ2U6IEFTU0VUUy5yaXNrX3RyZW5kLFxuICAgICAgdmFsdWU6IDAsXG4gICAgfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ1RvcCA1IFJpc2sgUmF0aW5ncycsXG4gICAgICBpZDogJ3RvcF81X3Jlc2lkdWFsX3Jpc2tfcmF0aW5ncycsXG4gICAgICBkZXNjcmlwdGlvbjogJ0Rlc2NyaXB0aW9uLicsXG4gICAgICAvLyB3aWRnZXRJbWFnZTogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvY29uZmlndXJlLXdpZGdldC9hc3NldHMvaW1hZ2VzLzUtcmlzay1yYXRpbmdzLnBuZycsXG4gICAgICB3aWRnZXRJbWFnZTogQVNTRVRTLnRlblJpc2tSYXRpbmdzV2lkZ2V0LFxuICAgICAgdmFsdWU6IDAsXG4gICAgfSxcbiAgXTtcbiAgYXVkaXRXaWRnZXRzRGF0YSA9IFtdO1xuICBwb2xpY3lXaWRnZXRzRGF0YSA9IFtdO1xuXG4gIC8vIEZvciBkYXNoYm9hcmQgdmlld1xuICBkYXNoQm9hcmRXaWRnZXRVcGRhdGUod2lkR2V0SnNvbjogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnB1dCh0aGlzLmVudi5Pcmdhbml6YXRpb25QdXQgKyAnZGFzaGJvYXJkV2lkZ2V0cycsIHdpZEdldEpzb24pXG4gICAgICAucGlwZShyZXRyeSgyKSk7XG4gIH1cblxuICBtb2R1bGVUeXBlKGlkZW50aWZpZXI6IHN0cmluZykge1xuICAgIGlmIChKU09OLnN0cmluZ2lmeSh0aGlzLnJpc2tXaWRnZXRzRGF0YSkuaW5jbHVkZXMoaWRlbnRpZmllcikpIHtcbiAgICAgIHJldHVybiAnUklTSyc7XG4gICAgLy8gfSBlbHNlIGlmIChKU09OLnN0cmluZ2lmeSh0aGlzLmNvbXBsaWFuY2VXaWRnZXRzRGF0YSkuaW5jbHVkZXMoaWRlbnRpZmllcikpIHtcbiAgICAvLyAgIHJldHVybiAnQ09NUExJQU5DRSc7XG4gICAgfVxuICB9XG59XG4iXX0=