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.
Files changed (178) hide show
  1. package/README.md +24 -24
  2. package/esm2022/lib/configurations.mjs +7 -7
  3. package/esm2022/lib/create-dashboard-container/categories/categories-config.mjs +2 -2
  4. package/esm2022/lib/create-dashboard-container/categories/categories.component.mjs +212 -212
  5. package/esm2022/lib/create-dashboard-container/configure-widgets/configure-widgets/configure-widgets.component.mjs +350 -350
  6. package/esm2022/lib/create-dashboard-container/configure-widgets/configure-widgets/widget.interface.mjs +2 -2
  7. package/esm2022/lib/create-dashboard-container/configure-widgets/configure-widgets.module.mjs +47 -47
  8. package/esm2022/lib/create-dashboard-container/constants/assets.constant.mjs +37 -37
  9. package/esm2022/lib/create-dashboard-container/create-dashboard-config.mjs +2 -2
  10. package/esm2022/lib/create-dashboard-container/create-dashboard.component.mjs +1601 -1520
  11. package/esm2022/lib/create-dashboard-container/create-dashboard.module.mjs +127 -127
  12. package/esm2022/lib/create-dashboard-container/directives/directives.module.mjs +24 -24
  13. package/esm2022/lib/create-dashboard-container/directives/scroll-in-view.directive.mjs +36 -36
  14. package/esm2022/lib/create-dashboard-container/form-group/form-group.component.mjs +153 -153
  15. package/esm2022/lib/create-dashboard-container/frequency/frequency.component.mjs +309 -309
  16. package/esm2022/lib/create-dashboard-container/interfaces/widget-data-model.mjs +2 -2
  17. package/esm2022/lib/create-dashboard-container/pipes/filter.pipe.mjs +30 -30
  18. package/esm2022/lib/create-dashboard-container/pipes/search-program.pipe.mjs +37 -37
  19. package/esm2022/lib/create-dashboard-container/pipes/search.pipe.mjs +25 -25
  20. package/esm2022/lib/create-dashboard-container/pipes/text-count.pipe.mjs +18 -19
  21. package/esm2022/lib/create-dashboard-container/program-list/constant.mjs +31 -31
  22. package/esm2022/lib/create-dashboard-container/program-list/information-block/information-block.component.mjs +13 -13
  23. package/esm2022/lib/create-dashboard-container/program-list/interfaces/list-item.interface.mjs +2 -2
  24. package/esm2022/lib/create-dashboard-container/program-list/list-container/list-container.component.mjs +50 -50
  25. package/esm2022/lib/create-dashboard-container/program-list/pipes/check-selected-items.pipes.mjs +23 -23
  26. package/esm2022/lib/create-dashboard-container/program-list/program-list/program-list.component.mjs +294 -294
  27. package/esm2022/lib/create-dashboard-container/program-list/program-list.module.mjs +60 -60
  28. package/esm2022/lib/create-dashboard-container/program-list/services/list-utils.service.mjs +27 -27
  29. package/esm2022/lib/create-dashboard-container/program-list/services/program-list-api.service.mjs +28 -35
  30. package/esm2022/lib/create-dashboard-container/responsibility-center/responsibility-center.component.mjs +224 -149
  31. package/esm2022/lib/create-dashboard-container/risk-categories/risk-categories-config.mjs +2 -2
  32. package/esm2022/lib/create-dashboard-container/risk-categories/risk-categories.component.mjs +206 -206
  33. package/esm2022/lib/create-dashboard-container/services/configure-widgets.service.mjs +233 -238
  34. package/esm2022/lib/create-dashboard-container/services/create-dashboard.service.mjs +227 -243
  35. package/esm2022/lib/create-dashboard-container/services/pagination.service.mjs +28 -28
  36. package/esm2022/lib/create-dashboard-container/user-list/user-list.component.mjs +440 -440
  37. package/esm2022/lib/create-dashboard-container/user-list/user-list.config.mjs +2 -2
  38. package/esm2022/lib/create-dashboard-container/utils/dashboard-edit.utils.mjs +181 -181
  39. package/esm2022/lib/create-dashboard.service.mjs +14 -14
  40. package/esm2022/lib/ui-kit/dashboard-footer/dashboard-footer/dashboard-footer.component.mjs +52 -52
  41. package/esm2022/lib/ui-kit/dashboard-footer/dashboard-footer-config.mjs +2 -2
  42. package/esm2022/lib/ui-kit/dashboard-footer/dashboard-footer.module.mjs +32 -32
  43. package/esm2022/lib/ui-kit/dialog/dialog-config.mjs +7 -7
  44. package/esm2022/lib/ui-kit/dialog/dialog-injector.mjs +17 -17
  45. package/esm2022/lib/ui-kit/dialog/dialog-ref.mjs +11 -11
  46. package/esm2022/lib/ui-kit/dialog/dialog.component.mjs +96 -96
  47. package/esm2022/lib/ui-kit/dialog/dialog.module.mjs +20 -20
  48. package/esm2022/lib/ui-kit/dialog/dialog.service.mjs +56 -56
  49. package/esm2022/lib/ui-kit/dialog/insertion.directive.mjs +17 -17
  50. package/esm2022/lib/ui-kit/floating-bar/floating-bar.component.mjs +57 -57
  51. package/esm2022/lib/ui-kit/floating-bar/floating-bar.module.mjs +32 -32
  52. package/esm2022/lib/ui-kit/formgroup/click-outside.directive.mjs +30 -30
  53. package/esm2022/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.mjs +29 -29
  54. package/esm2022/lib/ui-kit/formgroup/cs-radio/cs-radio.component.mjs +34 -34
  55. package/esm2022/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.mjs +14 -14
  56. package/esm2022/lib/ui-kit/formgroup/cs-select/cs-select.component.mjs +119 -119
  57. package/esm2022/lib/ui-kit/formgroup/cs-switch/cs-switch.component.mjs +39 -39
  58. package/esm2022/lib/ui-kit/formgroup/formgroup.module.mjs +55 -55
  59. package/esm2022/lib/ui-kit/formgroup/pipes/pascal.pipe.mjs +19 -19
  60. package/esm2022/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.mjs +24 -24
  61. package/esm2022/lib/ui-kit/loaders/loaders.module.mjs +24 -24
  62. package/esm2022/lib/ui-kit/loaders/table-loader/table-loader.component.mjs +18 -18
  63. package/esm2022/lib/ui-kit/no-data/no-data.component.mjs +47 -47
  64. package/esm2022/lib/ui-kit/no-data/no-data.module.mjs +18 -18
  65. package/esm2022/lib/ui-kit/pagination/pagination.component.mjs +130 -130
  66. package/esm2022/lib/ui-kit/pagination/pagination.module.mjs +18 -18
  67. package/esm2022/lib/ui-kit/popover/popover.component.mjs +129 -129
  68. package/esm2022/lib/ui-kit/popover/popover.directive.mjs +93 -93
  69. package/esm2022/lib/ui-kit/popover/popover.module.mjs +21 -21
  70. package/esm2022/lib/ui-kit/popover/popover.service.mjs +23 -23
  71. package/esm2022/lib/ui-kit/select/cs-option/cs-option.component.mjs +41 -41
  72. package/esm2022/lib/ui-kit/select/cs-select/cs-select.component.mjs +107 -107
  73. package/esm2022/lib/ui-kit/select/safe-html.pipe.mjs +21 -21
  74. package/esm2022/lib/ui-kit/select/select.module.mjs +21 -21
  75. package/esm2022/lib/ui-kit/services/cs-select.service.mjs +16 -16
  76. package/esm2022/lib/ui-kit/smiley-dialog/smiley-dialog.component.mjs +52 -52
  77. package/esm2022/lib/ui-kit/smiley-dialog/smiley-dialog.module.mjs +18 -18
  78. package/esm2022/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.mjs +46 -46
  79. package/esm2022/lib/ui-kit/snack-bar/snack-bar.module.mjs +18 -18
  80. package/esm2022/lib/ui-kit/snack-bar/snack-bar.service.mjs +23 -23
  81. package/esm2022/lib/ui-kit/tooltip/tooltip.directive.mjs +168 -168
  82. package/esm2022/lib/ui-kit/tooltip/tooltip.module.mjs +18 -18
  83. package/esm2022/lib/ui-kit/v-loader/loader/loader.component.mjs +24 -24
  84. package/esm2022/lib/ui-kit/v-loader/loader-inline/loader-inline.component.mjs +24 -24
  85. package/esm2022/lib/ui-kit/v-loader/v-loader.module.mjs +19 -19
  86. package/esm2022/public-api.mjs +10 -10
  87. package/esm2022/vc-create-dashboard.mjs +4 -4
  88. package/fesm2022/vc-create-dashboard.mjs +6438 -6333
  89. package/fesm2022/vc-create-dashboard.mjs.map +1 -1
  90. package/index.d.ts +5 -5
  91. package/lib/configurations.d.ts +4 -4
  92. package/lib/create-dashboard-container/categories/categories-config.d.ts +18 -18
  93. package/lib/create-dashboard-container/categories/categories.component.d.ts +66 -66
  94. package/lib/create-dashboard-container/configure-widgets/configure-widgets/configure-widgets.component.d.ts +113 -113
  95. package/lib/create-dashboard-container/configure-widgets/configure-widgets/widget.interface.d.ts +9 -9
  96. package/lib/create-dashboard-container/configure-widgets/configure-widgets.module.d.ts +14 -14
  97. package/lib/create-dashboard-container/constants/assets.constant.d.ts +35 -35
  98. package/lib/create-dashboard-container/create-dashboard-config.d.ts +18 -18
  99. package/lib/create-dashboard-container/create-dashboard.component.d.ts +219 -216
  100. package/lib/create-dashboard-container/create-dashboard.module.d.ts +37 -37
  101. package/lib/create-dashboard-container/directives/directives.module.d.ts +8 -8
  102. package/lib/create-dashboard-container/directives/scroll-in-view.directive.d.ts +12 -12
  103. package/lib/create-dashboard-container/form-group/form-group.component.d.ts +48 -48
  104. package/lib/create-dashboard-container/frequency/frequency.component.d.ts +39 -39
  105. package/lib/create-dashboard-container/interfaces/widget-data-model.d.ts +8 -8
  106. package/lib/create-dashboard-container/pipes/filter.pipe.d.ts +7 -7
  107. package/lib/create-dashboard-container/pipes/search-program.pipe.d.ts +7 -7
  108. package/lib/create-dashboard-container/pipes/search.pipe.d.ts +7 -7
  109. package/lib/create-dashboard-container/pipes/text-count.pipe.d.ts +7 -7
  110. package/lib/create-dashboard-container/program-list/constant.d.ts +24 -24
  111. package/lib/create-dashboard-container/program-list/information-block/information-block.component.d.ts +6 -6
  112. package/lib/create-dashboard-container/program-list/interfaces/list-item.interface.d.ts +5 -5
  113. package/lib/create-dashboard-container/program-list/list-container/list-container.component.d.ts +9 -9
  114. package/lib/create-dashboard-container/program-list/pipes/check-selected-items.pipes.d.ts +7 -7
  115. package/lib/create-dashboard-container/program-list/program-list/program-list.component.d.ts +119 -119
  116. package/lib/create-dashboard-container/program-list/program-list.module.d.ts +17 -17
  117. package/lib/create-dashboard-container/program-list/services/list-utils.service.d.ts +7 -7
  118. package/lib/create-dashboard-container/program-list/services/program-list-api.service.d.ts +12 -14
  119. package/lib/create-dashboard-container/responsibility-center/responsibility-center.component.d.ts +70 -62
  120. package/lib/create-dashboard-container/risk-categories/risk-categories-config.d.ts +18 -18
  121. package/lib/create-dashboard-container/risk-categories/risk-categories.component.d.ts +66 -66
  122. package/lib/create-dashboard-container/services/configure-widgets.service.d.ts +21 -23
  123. package/lib/create-dashboard-container/services/create-dashboard.service.d.ts +80 -82
  124. package/lib/create-dashboard-container/services/pagination.service.d.ts +12 -12
  125. package/lib/create-dashboard-container/user-list/user-list.component.d.ts +123 -123
  126. package/lib/create-dashboard-container/user-list/user-list.config.d.ts +13 -13
  127. package/lib/create-dashboard-container/utils/dashboard-edit.utils.d.ts +16 -16
  128. package/lib/create-dashboard.service.d.ts +6 -6
  129. package/lib/ui-kit/dashboard-footer/dashboard-footer/dashboard-footer.component.d.ts +17 -17
  130. package/lib/ui-kit/dashboard-footer/dashboard-footer-config.d.ts +11 -11
  131. package/lib/ui-kit/dashboard-footer/dashboard-footer.module.d.ts +10 -10
  132. package/lib/ui-kit/dialog/dialog-config.d.ts +6 -6
  133. package/lib/ui-kit/dialog/dialog-injector.d.ts +7 -7
  134. package/lib/ui-kit/dialog/dialog-ref.d.ts +7 -7
  135. package/lib/ui-kit/dialog/dialog.component.d.ts +33 -33
  136. package/lib/ui-kit/dialog/dialog.module.d.ts +9 -9
  137. package/lib/ui-kit/dialog/dialog.service.d.ts +17 -17
  138. package/lib/ui-kit/dialog/insertion.directive.d.ts +8 -8
  139. package/lib/ui-kit/floating-bar/floating-bar.component.d.ts +20 -20
  140. package/lib/ui-kit/floating-bar/floating-bar.module.d.ts +10 -10
  141. package/lib/ui-kit/formgroup/click-outside.directive.d.ts +10 -10
  142. package/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.d.ts +13 -13
  143. package/lib/ui-kit/formgroup/cs-radio/cs-radio.component.d.ts +15 -15
  144. package/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.d.ts +8 -8
  145. package/lib/ui-kit/formgroup/cs-select/cs-select.component.d.ts +36 -36
  146. package/lib/ui-kit/formgroup/cs-switch/cs-switch.component.d.ts +15 -15
  147. package/lib/ui-kit/formgroup/formgroup.module.d.ts +17 -17
  148. package/lib/ui-kit/formgroup/pipes/pascal.pipe.d.ts +7 -7
  149. package/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.d.ts +7 -7
  150. package/lib/ui-kit/loaders/loaders.module.d.ts +8 -8
  151. package/lib/ui-kit/loaders/table-loader/table-loader.component.d.ts +9 -9
  152. package/lib/ui-kit/no-data/no-data.component.d.ts +19 -19
  153. package/lib/ui-kit/no-data/no-data.module.d.ts +8 -8
  154. package/lib/ui-kit/pagination/pagination.component.d.ts +21 -21
  155. package/lib/ui-kit/pagination/pagination.module.d.ts +8 -8
  156. package/lib/ui-kit/popover/popover.component.d.ts +28 -28
  157. package/lib/ui-kit/popover/popover.directive.d.ts +17 -17
  158. package/lib/ui-kit/popover/popover.module.d.ts +9 -9
  159. package/lib/ui-kit/popover/popover.service.d.ts +13 -13
  160. package/lib/ui-kit/select/cs-option/cs-option.component.d.ts +16 -16
  161. package/lib/ui-kit/select/cs-select/cs-select.component.d.ts +32 -32
  162. package/lib/ui-kit/select/safe-html.pipe.d.ts +10 -10
  163. package/lib/ui-kit/select/select.module.d.ts +11 -11
  164. package/lib/ui-kit/services/cs-select.service.d.ts +7 -7
  165. package/lib/ui-kit/smiley-dialog/smiley-dialog.component.d.ts +17 -17
  166. package/lib/ui-kit/smiley-dialog/smiley-dialog.module.d.ts +8 -8
  167. package/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.d.ts +17 -17
  168. package/lib/ui-kit/snack-bar/snack-bar.module.d.ts +8 -8
  169. package/lib/ui-kit/snack-bar/snack-bar.service.d.ts +9 -9
  170. package/lib/ui-kit/tooltip/tooltip.directive.d.ts +28 -28
  171. package/lib/ui-kit/tooltip/tooltip.module.d.ts +8 -8
  172. package/lib/ui-kit/v-loader/loader/loader.component.d.ts +11 -11
  173. package/lib/ui-kit/v-loader/loader-inline/loader-inline.component.d.ts +11 -11
  174. package/lib/ui-kit/v-loader/v-loader.module.d.ts +9 -9
  175. package/package.json +1 -1
  176. package/public-api.d.ts +3 -3
  177. package/esm2022/lib/create-dashboard-container/services/auth.service.mjs +0 -31
  178. package/lib/create-dashboard-container/services/auth.service.d.ts +0 -11
@@ -1,212 +1,212 @@
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 CategoriesComponent {
12
- ASSETS = ASSETS;
13
- categoryList = {
14
- regulations: {
15
- list: [],
16
- selectedList: [],
17
- },
18
- standards: {
19
- list: [],
20
- selectedList: [],
21
- },
22
- internalControls: {
23
- list: [],
24
- selectedList: [],
25
- },
26
- others: {
27
- list: [],
28
- selectedList: [],
29
- },
30
- };
31
- allCategories = [];
32
- categoryIdKey;
33
- selectedCategories = [];
34
- search = '';
35
- activeTab = 'regulations';
36
- selectedIds = [];
37
- animation = false;
38
- blockWidth;
39
- footerDetails = {
40
- selectedData: [],
41
- nonRemovableList: [],
42
- displayElementKey: 'item_name',
43
- elementId: 'item_id',
44
- singularText: 'Program selected',
45
- pluralText: 'Programs 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
- const rcElement = this.allCategories.findIndex((ele) => ele.category_id == category[this.categoryIdKey]);
71
- if (rcElement !== -1) {
72
- const parentRc = this.allCategories[rcElement];
73
- if (parentRc?.child_cat_ids?.length > 0) {
74
- parentRc.child_cat_ids.forEach((childElement) => {
75
- if (!this.selectedIds.includes(childElement)) {
76
- this.selectedIds.push(childElement);
77
- }
78
- });
79
- }
80
- }
81
- }
82
- else {
83
- const index = this.selectedIds.findIndex((element) => element == category[this.categoryIdKey]);
84
- this.selectedIds.splice(index, 1);
85
- const rcElement = this.allCategories.findIndex((ele) => ele.category_id == category[this.categoryIdKey]);
86
- if (rcElement !== -1) {
87
- const parentRc = this.allCategories[rcElement];
88
- if (parentRc?.child_cat_ids?.length > 0) {
89
- parentRc.child_cat_ids.forEach((childElement) => {
90
- const removeIndex = this.selectedIds.findIndex((removeElement) => removeElement == childElement);
91
- this.selectedIds.splice(removeIndex, 1);
92
- });
93
- }
94
- }
95
- }
96
- this.setList();
97
- }
98
- deleteEvent(event) {
99
- const index = this.selectedIds.findIndex((element) => element == event[this.categoryIdKey]);
100
- this.selectedIds.splice(index, 1);
101
- this.setList();
102
- }
103
- selectAll(mode, activeTab) {
104
- if (mode) {
105
- const list = [...this.categoryList[activeTab].list];
106
- list.forEach((element) => {
107
- if (!this.selectedIds.includes(element[this.categoryIdKey])) {
108
- this.selectedIds.push(element[this.categoryIdKey]);
109
- }
110
- });
111
- }
112
- else {
113
- const list = [...this.categoryList[activeTab].list];
114
- list.forEach((element) => {
115
- if (this.selectedIds.includes(element[this.categoryIdKey])) {
116
- let idIndex = this.selectedIds.findIndex((id) => id == element[this.categoryIdKey]);
117
- this.selectedIds.splice(idIndex, 1);
118
- }
119
- });
120
- }
121
- this.setList();
122
- }
123
- setList() {
124
- const data = [];
125
- const categoryList = [...new Set(this.allCategories)];
126
- // cloneDeep(this.allCategories)
127
- const selectedIds = [...new Set(this.selectedIds)];
128
- // cloneDeep(this.selectedIds);
129
- this.categoryList.regulations.selectedList = [];
130
- this.categoryList.standards.selectedList = [];
131
- this.categoryList.internalControls.selectedList = [];
132
- this.categoryList.others.selectedList = [];
133
- categoryList.forEach((element) => {
134
- if (selectedIds.includes(element[this.categoryIdKey])) {
135
- data.push(element);
136
- }
137
- });
138
- this.selectedCategories = data;
139
- this.footerDetails.selectedData = data;
140
- this.categoryList.regulations.list.forEach((category) => {
141
- if (selectedIds.includes(category[this.categoryIdKey])) {
142
- this.categoryList.regulations.selectedList.push(category);
143
- }
144
- });
145
- this.categoryList.standards.list.forEach((category) => {
146
- if (selectedIds.includes(category[this.categoryIdKey])) {
147
- this.categoryList.standards.selectedList.push(category);
148
- }
149
- });
150
- this.categoryList.internalControls.list.forEach((category) => {
151
- if (selectedIds.includes(category[this.categoryIdKey])) {
152
- this.categoryList.internalControls.selectedList.push(category);
153
- }
154
- });
155
- this.categoryList.others.list.forEach((category) => {
156
- if (selectedIds.includes(category[this.categoryIdKey])) {
157
- this.categoryList.others.selectedList.push(category);
158
- }
159
- });
160
- if (!this.activeTab) {
161
- this.setActiveTab();
162
- }
163
- }
164
- setActiveTab() {
165
- if (this.categoryList.regulations.selectedList.length > 0) {
166
- this.activeTab = 'regulations';
167
- }
168
- else if (this.categoryList.standards.selectedList.length > 0) {
169
- this.activeTab = 'standards';
170
- }
171
- else if (this.categoryList.internalControls.selectedList.length > 0) {
172
- this.activeTab = 'internalControls';
173
- }
174
- else if (this.categoryList.others.selectedList.length > 0) {
175
- this.activeTab = 'others';
176
- }
177
- else {
178
- this.activeTab = 'regulations';
179
- }
180
- }
181
- checkSelectAll(activeTab) {
182
- const data = this.categoryList[activeTab].list.every((user) => this.selectedIds.includes(user[this.categoryIdKey]));
183
- return data;
184
- }
185
- save() {
186
- this.saveSelectedCategory.emit(this.selectedCategories);
187
- }
188
- close() {
189
- this.closeCategoriesList.emit();
190
- }
191
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CategoriesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
192
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CategoriesComponent, selector: "app-categories", inputs: { categoryList: "categoryList", allCategories: "allCategories", categoryIdKey: "categoryIdKey", selectedCategories: "selectedCategories" }, outputs: { saveSelectedCategory: "saveSelectedCategory", closeList: "closeList", closeCategoriesList: "closeCategoriesList" }, ngImport: i0, template: "<div class=\"category-list\" [class.animate-slideInRight]=\"animation\">\n <div\n class=\"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 Program(s)</span>\n </div>\n <div class=\"category-list-mid\">\n <div class=\"vx-d-flex vx-mb-2\">\n <div\n class=\"category-list-card\"\n [class.active]=\"activeTab == 'regulations'\"\n (click)=\"activeTab = 'regulations'\"\n >\n <div class=\"left\">\n <label>REGULATIONS</label>\n <p *ngIf=\"categoryList?.regulations?.selectedList?.length != 0\">\n {{ categoryList?.regulations?.selectedList?.length }}\n {{\n categoryList?.regulations?.selectedList?.length == 1\n ? \"Program\"\n : \"Programs\"\n }}\n selected\n </p>\n </div>\n <span class=\"counter\">{{\n categoryList?.regulations?.list?.length\n }}</span>\n </div>\n <div\n class=\"category-list-card\"\n [class.active]=\"activeTab == 'standards'\"\n (click)=\"activeTab = 'standards'\"\n >\n <div class=\"left\">\n <label>STANDARDS</label>\n <p *ngIf=\"categoryList?.standards?.selectedList?.length != 0\">\n {{ categoryList?.standards?.selectedList?.length }}\n {{\n categoryList?.standards?.selectedList?.length == 1\n ? \"Program\"\n : \"Programs\"\n }}\n selected\n </p>\n </div>\n <span class=\"counter\">{{ categoryList?.standards?.list?.length }}</span>\n </div>\n <div\n class=\"category-list-card\"\n [class.active]=\"activeTab == 'internalControls'\"\n (click)=\"activeTab = 'internalControls'\"\n >\n <div class=\"left\">\n <label>INTERNAL CONTROLS</label>\n <p *ngIf=\"categoryList?.internalControls?.selectedList?.length != 0\">\n {{ categoryList?.internalControls?.selectedList?.length }}\n {{\n categoryList?.internalControls?.selectedList?.length == 1\n ? \"Program\"\n : \"programs\"\n }}\n selected\n </p>\n </div>\n <span class=\"counter\">{{\n categoryList?.internalControls?.list?.length\n }}</span>\n </div>\n <div\n class=\"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 ? \"Program\"\n : \"Programs\"\n }}\n selected\n </p>\n </div>\n <span class=\"counter\">{{ categoryList?.others?.list?.length }}</span>\n </div>\n </div>\n\n <div class=\"category-list-search vx-mb-2\">\n <i class=\"icons\">&#xe90b;</i>\n <input type=\"text\" [(ngModel)]=\"search\" placeholder=\"Search Program\" />\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=\"category-list-item vx-mb-4\"\n [class.with-selectAll]=\"searchList.length > 1\"\n *ngIf=\"searchList.length > 0\"\n >\n <ul class=\"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 *ngFor=\"let entity of category.category_name; let j = index\"\n [arTooltip]=\"entity\"\n placement=\"bottom-left\"\n delay=\"0\"\n >\n {{ entity }}\n </li>\n </ul>\n </app-cs-checkbox>\n </li>\n </ul>\n </div>\n\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 .category-list{background:#fff;border-right:1px solid #F1F1F1;position:fixed;inset:0 500px 0 0}::ng-deep .category-list-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .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 .category-list-card .left{display:flex;flex-wrap:wrap;pointer-events:none}::ng-deep .category-list-card .left label{color:#747576;font-size:11px;font-weight:600;line-height:16px;text-transform:uppercase;width:100%}::ng-deep .category-list-card .left p{color:#161b2f;font-size:11px;font-weight:600;line-height:16px;margin:0}::ng-deep .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 .category-list-card.active{box-shadow:0 3px 12px #1e5dd326;z-index:1;pointer-events:none}::ng-deep .category-list-card.active span.counter{background:#f1f1f1;color:#042e7d}::ng-deep .category-list-card+.category-list-card{margin-left:4px}::ng-deep .category-list-mid{height:calc(100vh - 2.75rem);padding:2rem;position:relative}::ng-deep .category-list-mid::-webkit-scrollbar-track{background:transparent}::ng-deep .category-list-mid .select-all{display:flex;padding-bottom:1rem}::ng-deep .category-list-mid .select-all app-cs-checkbox{display:flex}::ng-deep .category-list-mid .select-all app-cs-checkbox .checkbox-item .value{max-width:unset!important;font-size:12px!important}::ng-deep .category-list-mid .select-all app-cs-checkbox .checkbox-item .value strong{font-weight:600;color:#161b2f}::ng-deep .category-list-mid app-no-data .no-data-wrapper{height:calc(100vh - 260px)}::ng-deep .category-list-search{position:relative}::ng-deep .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 .category-list-search input:focus{border-color:#1e5dd3}::ng-deep .category-list-search i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1;font-size:12px}::ng-deep .category-list-item{list-style-type:none;display:block;height:calc(100vh - 288px);overflow:hidden;overflow-y:auto}::ng-deep .category-list-item::-webkit-scrollbar-track{background:transparent}::ng-deep .category-list-item.with-selectAll{height:calc(100vh - 320px)}::ng-deep .category-list-item ul.category-list-item-ul{padding:0;margin:0}::ng-deep .category-list-item ul.category-list-item-ul li{list-style:none}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox{display:flex}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label{width:100%}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.radio-item span.value,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.radio-item span.value,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.checkbox-item span.value,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.checkbox-item span.value{width:auto;justify-content:flex-start}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories,::ng-deep .category-list-item ul.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 .category-list-item ul.category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories li,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories li,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories li,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories li{display:block;padding:0 16px 0 8px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;color:#747576}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories li:after,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories li:after,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories li:after,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories li:after{content:\">\";position:absolute;top:0;right:0;color:#747576;font-size:12px}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories li:last-of-type,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories li:last-of-type,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories li:last-of-type,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories li:last-of-type{color:#34aa44}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories li:last-of-type:after,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories li:last-of-type:after,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories li:last-of-type:after,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories li:last-of-type:after{display:none}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories li:first-of-type,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories li:first-of-type,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories li:first-of-type,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories li:first-of-type{padding-left:0;color:#1e5dd3}\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" }] });
193
- }
194
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CategoriesComponent, decorators: [{
195
- type: Component,
196
- args: [{ selector: 'app-categories', template: "<div class=\"category-list\" [class.animate-slideInRight]=\"animation\">\n <div\n class=\"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 Program(s)</span>\n </div>\n <div class=\"category-list-mid\">\n <div class=\"vx-d-flex vx-mb-2\">\n <div\n class=\"category-list-card\"\n [class.active]=\"activeTab == 'regulations'\"\n (click)=\"activeTab = 'regulations'\"\n >\n <div class=\"left\">\n <label>REGULATIONS</label>\n <p *ngIf=\"categoryList?.regulations?.selectedList?.length != 0\">\n {{ categoryList?.regulations?.selectedList?.length }}\n {{\n categoryList?.regulations?.selectedList?.length == 1\n ? \"Program\"\n : \"Programs\"\n }}\n selected\n </p>\n </div>\n <span class=\"counter\">{{\n categoryList?.regulations?.list?.length\n }}</span>\n </div>\n <div\n class=\"category-list-card\"\n [class.active]=\"activeTab == 'standards'\"\n (click)=\"activeTab = 'standards'\"\n >\n <div class=\"left\">\n <label>STANDARDS</label>\n <p *ngIf=\"categoryList?.standards?.selectedList?.length != 0\">\n {{ categoryList?.standards?.selectedList?.length }}\n {{\n categoryList?.standards?.selectedList?.length == 1\n ? \"Program\"\n : \"Programs\"\n }}\n selected\n </p>\n </div>\n <span class=\"counter\">{{ categoryList?.standards?.list?.length }}</span>\n </div>\n <div\n class=\"category-list-card\"\n [class.active]=\"activeTab == 'internalControls'\"\n (click)=\"activeTab = 'internalControls'\"\n >\n <div class=\"left\">\n <label>INTERNAL CONTROLS</label>\n <p *ngIf=\"categoryList?.internalControls?.selectedList?.length != 0\">\n {{ categoryList?.internalControls?.selectedList?.length }}\n {{\n categoryList?.internalControls?.selectedList?.length == 1\n ? \"Program\"\n : \"programs\"\n }}\n selected\n </p>\n </div>\n <span class=\"counter\">{{\n categoryList?.internalControls?.list?.length\n }}</span>\n </div>\n <div\n class=\"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 ? \"Program\"\n : \"Programs\"\n }}\n selected\n </p>\n </div>\n <span class=\"counter\">{{ categoryList?.others?.list?.length }}</span>\n </div>\n </div>\n\n <div class=\"category-list-search vx-mb-2\">\n <i class=\"icons\">&#xe90b;</i>\n <input type=\"text\" [(ngModel)]=\"search\" placeholder=\"Search Program\" />\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=\"category-list-item vx-mb-4\"\n [class.with-selectAll]=\"searchList.length > 1\"\n *ngIf=\"searchList.length > 0\"\n >\n <ul class=\"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 *ngFor=\"let entity of category.category_name; let j = index\"\n [arTooltip]=\"entity\"\n placement=\"bottom-left\"\n delay=\"0\"\n >\n {{ entity }}\n </li>\n </ul>\n </app-cs-checkbox>\n </li>\n </ul>\n </div>\n\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 .category-list{background:#fff;border-right:1px solid #F1F1F1;position:fixed;inset:0 500px 0 0}::ng-deep .category-list-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .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 .category-list-card .left{display:flex;flex-wrap:wrap;pointer-events:none}::ng-deep .category-list-card .left label{color:#747576;font-size:11px;font-weight:600;line-height:16px;text-transform:uppercase;width:100%}::ng-deep .category-list-card .left p{color:#161b2f;font-size:11px;font-weight:600;line-height:16px;margin:0}::ng-deep .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 .category-list-card.active{box-shadow:0 3px 12px #1e5dd326;z-index:1;pointer-events:none}::ng-deep .category-list-card.active span.counter{background:#f1f1f1;color:#042e7d}::ng-deep .category-list-card+.category-list-card{margin-left:4px}::ng-deep .category-list-mid{height:calc(100vh - 2.75rem);padding:2rem;position:relative}::ng-deep .category-list-mid::-webkit-scrollbar-track{background:transparent}::ng-deep .category-list-mid .select-all{display:flex;padding-bottom:1rem}::ng-deep .category-list-mid .select-all app-cs-checkbox{display:flex}::ng-deep .category-list-mid .select-all app-cs-checkbox .checkbox-item .value{max-width:unset!important;font-size:12px!important}::ng-deep .category-list-mid .select-all app-cs-checkbox .checkbox-item .value strong{font-weight:600;color:#161b2f}::ng-deep .category-list-mid app-no-data .no-data-wrapper{height:calc(100vh - 260px)}::ng-deep .category-list-search{position:relative}::ng-deep .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 .category-list-search input:focus{border-color:#1e5dd3}::ng-deep .category-list-search i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1;font-size:12px}::ng-deep .category-list-item{list-style-type:none;display:block;height:calc(100vh - 288px);overflow:hidden;overflow-y:auto}::ng-deep .category-list-item::-webkit-scrollbar-track{background:transparent}::ng-deep .category-list-item.with-selectAll{height:calc(100vh - 320px)}::ng-deep .category-list-item ul.category-list-item-ul{padding:0;margin:0}::ng-deep .category-list-item ul.category-list-item-ul li{list-style:none}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox{display:flex}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label{width:100%}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.radio-item span.value,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.radio-item span.value,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.checkbox-item span.value,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.checkbox-item span.value{width:auto;justify-content:flex-start}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories,::ng-deep .category-list-item ul.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 .category-list-item ul.category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories li,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories li,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories li,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories li{display:block;padding:0 16px 0 8px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;color:#747576}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories li:after,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories li:after,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories li:after,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories li:after{content:\">\";position:absolute;top:0;right:0;color:#747576;font-size:12px}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories li:last-of-type,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories li:last-of-type,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories li:last-of-type,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories li:last-of-type{color:#34aa44}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories li:last-of-type:after,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories li:last-of-type:after,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories li:last-of-type:after,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories li:last-of-type:after{display:none}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories li:first-of-type,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories li:first-of-type,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories li:first-of-type,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories li:first-of-type{padding-left:0;color:#1e5dd3}\n"] }]
197
- }], ctorParameters: function () { return []; }, propDecorators: { categoryList: [{
198
- type: Input
199
- }], allCategories: [{
200
- type: Input
201
- }], categoryIdKey: [{
202
- type: Input
203
- }], selectedCategories: [{
204
- type: Input
205
- }], saveSelectedCategory: [{
206
- type: Output
207
- }], closeList: [{
208
- type: Output
209
- }], closeCategoriesList: [{
210
- type: Output
211
- }] } });
212
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcmllcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvY3JlYXRlLWRhc2hib2FyZC1jb250YWluZXIvY2F0ZWdvcmllcy9jYXRlZ29yaWVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi9jcmVhdGUtZGFzaGJvYXJkLWNvbnRhaW5lci9jYXRlZ29yaWVzL2NhdGVnb3JpZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7OztBQU90RCxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFFUCxZQUFZLEdBQXFCO1FBQ3hDLFdBQVcsRUFBRTtZQUNYLElBQUksRUFBRSxFQUFFO1lBQ1IsWUFBWSxFQUFFLEVBQUU7U0FDakI7UUFDRCxTQUFTLEVBQUU7WUFDVCxJQUFJLEVBQUUsRUFBRTtZQUNSLFlBQVksRUFBRSxFQUFFO1NBQ2pCO1FBQ0QsZ0JBQWdCLEVBQUU7WUFDaEIsSUFBSSxFQUFFLEVBQUU7WUFDUixZQUFZLEVBQUUsRUFBRTtTQUNqQjtRQUNELE1BQU0sRUFBRTtZQUNOLElBQUksRUFBRSxFQUFFO1lBQ1IsWUFBWSxFQUFFLEVBQUU7U0FDakI7S0FDRixDQUFDO0lBQ08sYUFBYSxHQUFVLEVBQUUsQ0FBQztJQUUxQixhQUFhLENBQU07SUFDbkIsa0JBQWtCLEdBQVUsRUFBRSxDQUFDO0lBRXhDLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFDWixTQUFTLEdBQ1AsYUFBYSxDQUFDO0lBQ2hC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ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXNoYm9hcmRGb290ZXJDb25maWcgfSBmcm9tICcuLi8uLi91aS1raXQvZGFzaGJvYXJkLWZvb3Rlci9kYXNoYm9hcmQtZm9vdGVyLWNvbmZpZyc7XG5pbXBvcnQgeyBDYXRlZ29yaWVzQ29uZmlnIH0gZnJvbSAnLi9jYXRlZ29yaWVzLWNvbmZpZyc7XG5pbXBvcnQgeyBBU1NFVFMgfSBmcm9tICcuLi9jb25zdGFudHMvYXNzZXRzLmNvbnN0YW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNhdGVnb3JpZXMnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2F0ZWdvcmllcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhdGVnb3JpZXMuY29tcG9uZW50Lmxlc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2F0ZWdvcmllc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEFTU0VUUyA9IEFTU0VUUztcblxuICBASW5wdXQoKSBjYXRlZ29yeUxpc3Q6IENhdGVnb3JpZXNDb25maWcgPSB7XG4gICAgcmVndWxhdGlvbnM6IHtcbiAgICAgIGxpc3Q6IFtdLFxuICAgICAgc2VsZWN0ZWRMaXN0OiBbXSxcbiAgICB9LFxuICAgIHN0YW5kYXJkczoge1xuICAgICAgbGlzdDogW10sXG4gICAgICBzZWxlY3RlZExpc3Q6IFtdLFxuICAgIH0sXG4gICAgaW50ZXJuYWxDb250cm9sczoge1xuICAgICAgbGlzdDogW10sXG4gICAgICBzZWxlY3RlZExpc3Q6IFtdLFxuICAgIH0sXG4gICAgb3RoZXJzOiB7XG4gICAgICBsaXN0OiBbXSxcbiAgICAgIHNlbGVjdGVkTGlzdDogW10sXG4gICAgfSxcbiAgfTtcbiAgQElucHV0KCkgYWxsQ2F0ZWdvcmllczogYW55W10gPSBbXTtcblxuICBASW5wdXQoKSBjYXRlZ29yeUlkS2V5OiBhbnk7XG4gIEBJbnB1dCgpIHNlbGVjdGVkQ2F0ZWdvcmllczogYW55W10gPSBbXTtcblxuICBzZWFyY2ggPSAnJztcbiAgYWN0aXZlVGFiOiAnc3RhbmRhcmRzJyB8ICdyZWd1bGF0aW9ucycgfCAnaW50ZXJuYWxDb250cm9scycgfCAnb3RoZXJzJyA9XG4gICAgJ3JlZ3VsYXRpb25zJztcbiAgc2VsZWN0ZWRJZHM6IGFueVtdID0gW107XG4gIGFuaW1hdGlvbiA9IGZhbHNlO1xuICBibG9ja1dpZHRoOiBhbnk7XG4gIGZvb3RlckRldGFpbHM6IERhc2hib2FyZEZvb3RlckNvbmZpZyA9IHtcbiAgICBzZWxlY3RlZERhdGE6IFtdLFxuICAgIG5vblJlbW92YWJsZUxpc3Q6IFtdLFxuICAgIGRpc3BsYXlFbGVtZW50S2V5OiAnaXRlbV9uYW1lJyxcbiAgICBlbGVtZW50SWQ6ICdpdGVtX2lkJyxcbiAgICBzaW5ndWxhclRleHQ6ICdQcm9ncmFtIHNlbGVjdGVkJyxcbiAgICBwbHVyYWxUZXh0OiAnUHJvZ3JhbXMgc2VsZWN0ZWQnLFxuICAgIHNob3dGcmVxdWVuY3k6IGZhbHNlLFxuICAgIGZyZXF1ZW5jeVRleHQ6ICcnLFxuICAgIGlzRGlzYWJsZWQ6IGZhbHNlLFxuICB9O1xuXG4gIEBPdXRwdXQoKSBzYXZlU2VsZWN0ZWRDYXRlZ29yeSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGNsb3NlTGlzdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGNsb3NlQ2F0ZWdvcmllc0xpc3QgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYW5pbWF0aW9uID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuYW5pbWF0aW9uID0gZmFsc2U7XG4gICAgfSwgMzAwKTtcbiAgICB0aGlzLnNlbGVjdGVkSWRzID0gW107XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRDYXRlZ29yaWVzKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcmllcy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMucHVzaChlbGVtZW50W3RoaXMuY2F0ZWdvcnlJZEtleV0pO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuc2V0TGlzdCgpO1xuICB9XG5cbiAgc2VsZWN0Q2F0ZWdvcnkobW9kZTogYW55LCBhY3RpdmVUYWI6IGFueSwgY2F0ZWdvcnk6IGFueSkge1xuICAgIGlmIChtb2RlKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSWRzLnB1c2goY2F0ZWdvcnlbdGhpcy5jYXRlZ29yeUlkS2V5XSk7XG4gICAgICBjb25zdCByY0VsZW1lbnQgPSB0aGlzLmFsbENhdGVnb3JpZXMuZmluZEluZGV4KFxuICAgICAgICAoZWxlOiBhbnkpID0+IGVsZS5jYXRlZ29yeV9pZCA9PSBjYXRlZ29yeVt0aGlzLmNhdGVnb3J5SWRLZXldXG4gICAgICApO1xuICAgICAgaWYgKHJjRWxlbWVudCAhPT0gLTEpIHtcbiAgICAgICAgY29uc3QgcGFyZW50UmM6IGFueSA9IHRoaXMuYWxsQ2F0ZWdvcmllc1tyY0VsZW1lbnRdO1xuICAgICAgICBpZiAocGFyZW50UmM/LmNoaWxkX2NhdF9pZHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBwYXJlbnRSYy5jaGlsZF9jYXRfaWRzLmZvckVhY2goKGNoaWxkRWxlbWVudDogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRJZHMuaW5jbHVkZXMoY2hpbGRFbGVtZW50KSkge1xuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSWRzLnB1c2goY2hpbGRFbGVtZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRJZHMuZmluZEluZGV4KFxuICAgICAgICAoZWxlbWVudDogYW55KSA9PiBlbGVtZW50ID09IGNhdGVnb3J5W3RoaXMuY2F0ZWdvcnlJZEtleV1cbiAgICAgICk7XG4gICAgICB0aGlzLnNlbGVjdGVkSWRzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICBjb25zdCByY0VsZW1lbnQgPSB0aGlzLmFsbENhdGVnb3JpZXMuZmluZEluZGV4KFxuICAgICAgICAoZWxlOiBhbnkpID0+IGVsZS5jYXRlZ29yeV9pZCA9PSBjYXRlZ29yeVt0aGlzLmNhdGVnb3J5SWRLZXldXG4gICAgICApO1xuICAgICAgaWYgKHJjRWxlbWVudCAhPT0gLTEpIHtcbiAgICAgICAgY29uc3QgcGFyZW50UmM6IGFueSA9IHRoaXMuYWxsQ2F0ZWdvcmllc1tyY0VsZW1lbnRdO1xuICAgICAgICBpZiAocGFyZW50UmM/LmNoaWxkX2NhdF9pZHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBwYXJlbnRSYy5jaGlsZF9jYXRfaWRzLmZvckVhY2goKGNoaWxkRWxlbWVudDogYW55KSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZW1vdmVJbmRleCA9IHRoaXMuc2VsZWN0ZWRJZHMuZmluZEluZGV4KFxuICAgICAgICAgICAgICAocmVtb3ZlRWxlbWVudDogYW55KSA9PiByZW1vdmVFbGVtZW50ID09IGNoaWxkRWxlbWVudFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMuc3BsaWNlKHJlbW92ZUluZGV4LCAxKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnNldExpc3QoKTtcbiAgfVxuXG4gIGRlbGV0ZUV2ZW50KGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRJZHMuZmluZEluZGV4KFxuICAgICAgKGVsZW1lbnQ6IGFueSkgPT4gZWxlbWVudCA9PSBldmVudFt0aGlzLmNhdGVnb3J5SWRLZXldXG4gICAgKTtcbiAgICB0aGlzLnNlbGVjdGVkSWRzLnNwbGljZShpbmRleCwgMSk7XG4gICAgdGhpcy5zZXRMaXN0KCk7XG4gIH1cblxuICBzZWxlY3RBbGwoXG4gICAgbW9kZTogYW55LFxuICAgIGFjdGl2ZVRhYjogJ3N0YW5kYXJkcycgfCAncmVndWxhdGlvbnMnIHwgJ2ludGVybmFsQ29udHJvbHMnIHwgJ290aGVycydcbiAgKSB7XG4gICAgaWYgKG1vZGUpIHtcbiAgICAgIGNvbnN0IGxpc3QgPSBbLi4udGhpcy5jYXRlZ29yeUxpc3RbYWN0aXZlVGFiXS5saXN0XTtcbiAgICAgIGxpc3QuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRJZHMuaW5jbHVkZXMoZWxlbWVudFt0aGlzLmNhdGVnb3J5SWRLZXldKSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMucHVzaChlbGVtZW50W3RoaXMuY2F0ZWdvcnlJZEtleV0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbGlzdCA9IFsuLi50aGlzLmNhdGVnb3J5TGlzdFthY3RpdmVUYWJdLmxpc3RdO1xuICAgICAgbGlzdC5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkSWRzLmluY2x1ZGVzKGVsZW1lbnRbdGhpcy5jYXRlZ29yeUlkS2V5XSkpIHtcbiAgICAgICAgICBsZXQgaWRJbmRleCA9IHRoaXMuc2VsZWN0ZWRJZHMuZmluZEluZGV4KFxuICAgICAgICAgICAgKGlkOiBhbnkpID0+IGlkID09IGVsZW1lbnRbdGhpcy5jYXRlZ29yeUlkS2V5XVxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZElkcy5zcGxpY2UoaWRJbmRleCwgMSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnNldExpc3QoKTtcbiAgfVxuXG4gIHNldExpc3QoKSB7XG4gICAgY29uc3QgZGF0YTogYW55ID0gW107XG4gICAgY29uc3QgY2F0ZWdvcnlMaXN0ID0gWy4uLm5ldyBTZXQodGhpcy5hbGxDYXRlZ29yaWVzKV07XG4gICAgLy8gY2xvbmVEZWVwKHRoaXMuYWxsQ2F0ZWdvcmllcylcbiAgICBjb25zdCBzZWxlY3RlZElkcyA9IFsuLi5uZXcgU2V0KHRoaXMuc2VsZWN0ZWRJZHMpXTtcbiAgICAvLyAgY2xvbmVEZWVwKHRoaXMuc2VsZWN0ZWRJZHMpO1xuICAgIHRoaXMuY2F0ZWdvcnlMaXN0LnJlZ3VsYXRpb25zLnNlbGVjdGVkTGlzdCA9IFtdO1xuICAgIHRoaXMuY2F0ZWdvcnlMaXN0LnN0YW5kYXJkcy5zZWxlY3RlZExpc3QgPSBbXTtcbiAgICB0aGlzLmNhdGVnb3J5TGlzdC5pbnRlcm5hbENvbnRyb2xzLnNlbGVjdGVkTGlzdCA9IFtdO1xuICAgIHRoaXMuY2F0ZWdvcnlMaXN0Lm90aGVycy5zZWxlY3RlZExpc3QgPSBbXTtcblxuICAgIGNhdGVnb3J5TGlzdC5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcbiAgICAgIGlmIChzZWxlY3RlZElkcy5pbmNsdWRlcyhlbGVtZW50W3RoaXMuY2F0ZWdvcnlJZEtleV0pKSB7XG4gICAgICAgIGRhdGEucHVzaChlbGVtZW50KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcmllcyA9IGRhdGE7XG4gICAgdGhpcy5mb290ZXJEZXRhaWxzLnNlbGVjdGVkRGF0YSA9IGRhdGE7XG5cbiAgICB0aGlzLmNhdGVnb3J5TGlzdC5yZWd1bGF0aW9ucy5saXN0LmZvckVhY2goKGNhdGVnb3J5OiBhbnkpID0+IHtcbiAgICAgIGlmIChzZWxlY3RlZElkcy5pbmNsdWRlcyhjYXRlZ29yeVt0aGlzLmNhdGVnb3J5SWRLZXldKSkge1xuICAgICAgICB0aGlzLmNhdGVnb3J5TGlzdC5yZWd1bGF0aW9ucy5zZWxlY3RlZExpc3QucHVzaChjYXRlZ29yeSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5jYXRlZ29yeUxpc3Quc3RhbmRhcmRzLmxpc3QuZm9yRWFjaCgoY2F0ZWdvcnk6IGFueSkgPT4ge1xuICAgICAgaWYgKHNlbGVjdGVkSWRzLmluY2x1ZGVzKGNhdGVnb3J5W3RoaXMuY2F0ZWdvcnlJZEtleV0pKSB7XG4gICAgICAgIHRoaXMuY2F0ZWdvcnlMaXN0LnN0YW5kYXJkcy5zZWxlY3RlZExpc3QucHVzaChjYXRlZ29yeSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5jYXRlZ29yeUxpc3QuaW50ZXJuYWxDb250cm9scy5saXN0LmZvckVhY2goKGNhdGVnb3J5OiBhbnkpID0+IHtcbiAgICAgIGlmIChzZWxlY3RlZElkcy5pbmNsdWRlcyhjYXRlZ29yeVt0aGlzLmNhdGVnb3J5SWRLZXldKSkge1xuICAgICAgICB0aGlzLmNhdGVnb3J5TGlzdC5pbnRlcm5hbENvbnRyb2xzLnNlbGVjdGVkTGlzdC5wdXNoKGNhdGVnb3J5KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmNhdGVnb3J5TGlzdC5vdGhlcnMubGlzdC5mb3JFYWNoKChjYXRlZ29yeTogYW55KSA9PiB7XG4gICAgICBpZiAoc2VsZWN0ZWRJZHMuaW5jbHVkZXMoY2F0ZWdvcnlbdGhpcy5jYXRlZ29yeUlkS2V5XSkpIHtcbiAgICAgICAgdGhpcy5jYXRlZ29yeUxpc3Qub3RoZXJzLnNlbGVjdGVkTGlzdC5wdXNoKGNhdGVnb3J5KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoIXRoaXMuYWN0aXZlVGFiKSB7XG4gICAgICB0aGlzLnNldEFjdGl2ZVRhYigpO1xuICAgIH1cbiAgfVxuICBzZXRBY3RpdmVUYWIoKSB7XG4gICAgaWYgKHRoaXMuY2F0ZWdvcnlMaXN0LnJlZ3VsYXRpb25zLnNlbGVjdGVkTGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmFjdGl2ZVRhYiA9ICdyZWd1bGF0aW9ucyc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNhdGVnb3J5TGlzdC5zdGFuZGFyZHMuc2VsZWN0ZWRMaXN0Lmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuYWN0aXZlVGFiID0gJ3N0YW5kYXJkcyc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNhdGVnb3J5TGlzdC5pbnRlcm5hbENvbnRyb2xzLnNlbGVjdGVkTGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmFjdGl2ZVRhYiA9ICdpbnRlcm5hbENvbnRyb2xzJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuY2F0ZWdvcnlMaXN0Lm90aGVycy5zZWxlY3RlZExpc3QubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5hY3RpdmVUYWIgPSAnb3RoZXJzJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hY3RpdmVUYWIgPSAncmVndWxhdGlvbnMnO1xuICAgIH1cbiAgfVxuXG4gIGNoZWNrU2VsZWN0QWxsKFxuICAgIGFjdGl2ZVRhYjogJ3N0YW5kYXJkcycgfCAncmVndWxhdGlvbnMnIHwgJ2ludGVybmFsQ29udHJvbHMnIHwgJ290aGVycydcbiAgKSB7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMuY2F0ZWdvcnlMaXN0W2FjdGl2ZVRhYl0ubGlzdC5ldmVyeSgodXNlcjogYW55KSA9PlxuICAgICAgdGhpcy5zZWxlY3RlZElkcy5pbmNsdWRlcyh1c2VyW3RoaXMuY2F0ZWdvcnlJZEtleV0pXG4gICAgKTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHNhdmUoKSB7XG4gICAgdGhpcy5zYXZlU2VsZWN0ZWRDYXRlZ29yeS5lbWl0KHRoaXMuc2VsZWN0ZWRDYXRlZ29yaWVzKTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuY2xvc2VDYXRlZ29yaWVzTGlzdC5lbWl0KCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjYXRlZ29yeS1saXN0XCIgW2NsYXNzLmFuaW1hdGUtc2xpZGVJblJpZ2h0XT1cImFuaW1hdGlvblwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJjYXRlZ29yeS1saXN0LWhlYWQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtcGwtNCB2eC1wci00XCJcbiAgPlxuICAgIDxzcGFuIGNsYXNzPVwidngtZnMtMTQgdngtZnctNTAwIHZ4LWxhYmVsLXR4dFwiPlNlbGVjdCBQcm9ncmFtKHMpPC9zcGFuPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNhdGVnb3J5LWxpc3QtbWlkXCI+XG4gICAgPGRpdiBjbGFzcz1cInZ4LWQtZmxleCB2eC1tYi0yXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiY2F0ZWdvcnktbGlzdC1jYXJkXCJcbiAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVUYWIgPT0gJ3JlZ3VsYXRpb25zJ1wiXG4gICAgICAgIChjbGljayk9XCJhY3RpdmVUYWIgPSAncmVndWxhdGlvbnMnXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj5cbiAgICAgICAgICA8bGFiZWw+UkVHVUxBVElPTlM8L2xhYmVsPlxuICAgICAgICAgIDxwICpuZ0lmPVwiY2F0ZWdvcnlMaXN0Py5yZWd1bGF0aW9ucz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGggIT0gMFwiPlxuICAgICAgICAgICAge3sgY2F0ZWdvcnlMaXN0Py5yZWd1bGF0aW9ucz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGggfX1cbiAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgIGNhdGVnb3J5TGlzdD8ucmVndWxhdGlvbnM/LnNlbGVjdGVkTGlzdD8ubGVuZ3RoID09IDFcbiAgICAgICAgICAgICAgICA/IFwiUHJvZ3JhbVwiXG4gICAgICAgICAgICAgICAgOiBcIlByb2dyYW1zXCJcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBzZWxlY3RlZFxuICAgICAgICAgIDwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlclwiPnt7XG4gICAgICAgICAgY2F0ZWdvcnlMaXN0Py5yZWd1bGF0aW9ucz8ubGlzdD8ubGVuZ3RoXG4gICAgICAgIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiY2F0ZWdvcnktbGlzdC1jYXJkXCJcbiAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVUYWIgPT0gJ3N0YW5kYXJkcydcIlxuICAgICAgICAoY2xpY2spPVwiYWN0aXZlVGFiID0gJ3N0YW5kYXJkcydcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxuICAgICAgICAgIDxsYWJlbD5TVEFOREFSRFM8L2xhYmVsPlxuICAgICAgICAgIDxwICpuZ0lmPVwiY2F0ZWdvcnlMaXN0Py5zdGFuZGFyZHM/LnNlbGVjdGVkTGlzdD8ubGVuZ3RoICE9IDBcIj5cbiAgICAgICAgICAgIHt7IGNhdGVnb3J5TGlzdD8uc3RhbmRhcmRzPy5zZWxlY3RlZExpc3Q/Lmxlbmd0aCB9fVxuICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgY2F0ZWdvcnlMaXN0Py5zdGFuZGFyZHM/LnNlbGVjdGVkTGlzdD8ubGVuZ3RoID09IDFcbiAgICAgICAgICAgICAgICA/IFwiUHJvZ3JhbVwiXG4gICAgICAgICAgICAgICAgOiBcIlByb2dyYW1zXCJcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBzZWxlY3RlZFxuICAgICAgICAgIDwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlclwiPnt7IGNhdGVnb3J5TGlzdD8uc3RhbmRhcmRzPy5saXN0Py5sZW5ndGggfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJjYXRlZ29yeS1saXN0LWNhcmRcIlxuICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYiA9PSAnaW50ZXJuYWxDb250cm9scydcIlxuICAgICAgICAoY2xpY2spPVwiYWN0aXZlVGFiID0gJ2ludGVybmFsQ29udHJvbHMnXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj5cbiAgICAgICAgICA8bGFiZWw+SU5URVJOQUwgQ09OVFJPTFM8L2xhYmVsPlxuICAgICAgICAgIDxwICpuZ0lmPVwiY2F0ZWdvcnlMaXN0Py5pbnRlcm5hbENvbnRyb2xzPy5zZWxlY3RlZExpc3Q/Lmxlbmd0aCAhPSAwXCI+XG4gICAgICAgICAgICB7eyBjYXRlZ29yeUxpc3Q/LmludGVybmFsQ29udHJvbHM/LnNlbGVjdGVkTGlzdD8ubGVuZ3RoIH19XG4gICAgICAgICAgICB7e1xuICAgICAgICAgICAgICBjYXRlZ29yeUxpc3Q/LmludGVybmFsQ29udHJvbHM/LnNlbGVjdGVkTGlzdD8ubGVuZ3RoID09IDFcbiAgICAgICAgICAgICAgICA/IFwiUHJvZ3JhbVwiXG4gICAgICAgICAgICAgICAgOiBcInByb2dyYW1zXCJcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBzZWxlY3RlZFxuICAgICAgICAgIDwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlclwiPnt7XG4gICAgICAgICAgY2F0ZWdvcnlMaXN0Py5pbnRlcm5hbENvbnRyb2xzPy5saXN0Py5sZW5ndGhcbiAgICAgICAgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJjYXRlZ29yeS1saXN0LWNhcmRcIlxuICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYiA9PSAnb3RoZXJzJ1wiXG4gICAgICAgIChjbGljayk9XCJhY3RpdmVUYWIgPSAnb3RoZXJzJ1wiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XG4gICAgICAgICAgPGxhYmVsPk9USEVSUzwvbGFiZWw+XG4gICAgICAgICAgPHAgKm5nSWY9XCJjYXRlZ29yeUxpc3Q/Lm90aGVycz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGggIT0gMFwiPlxuICAgICAgICAgICAge3sgY2F0ZWdvcnlMaXN0Py5vdGhlcnM/LnNlbGVjdGVkTGlzdD8ubGVuZ3RoIH19XG4gICAgICAgICAgICB7e1xuICAgICAgICAgICAgICBjYXRlZ29yeUxpc3Q/Lm90aGVycz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGggPT0gMVxuICAgICAgICAgICAgICAgID8gXCJQcm9ncmFtXCJcbiAgICAgICAgICAgICAgICA6IFwiUHJvZ3JhbXNcIlxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHNlbGVjdGVkXG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGVyXCI+e3sgY2F0ZWdvcnlMaXN0Py5vdGhlcnM/Lmxpc3Q/Lmxlbmd0aCB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImNhdGVnb3J5LWxpc3Qtc2VhcmNoIHZ4LW1iLTJcIj5cbiAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBiOzwvaT5cbiAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwic2VhcmNoXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggUHJvZ3JhbVwiIC8+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdJZj1cImNhdGVnb3J5TGlzdFthY3RpdmVUYWJdLmxpc3QgfCBmaWx0ZXIgOiBzZWFyY2ggYXMgc2VhcmNoTGlzdFwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdC1hbGxcIiAqbmdJZj1cInNlYXJjaExpc3QubGVuZ3RoID4gMVwiPlxuICAgICAgICA8YXBwLWNzLWNoZWNrYm94XG4gICAgICAgICAgW25nVmFsdWVdPVwiY2hlY2tTZWxlY3RBbGwoYWN0aXZlVGFiKVwiXG4gICAgICAgICAgKG5nVmFsdWVDaGFuZ2UpPVwic2VsZWN0QWxsKCRldmVudCwgYWN0aXZlVGFiKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3Ryb25nPnt7XG4gICAgICAgICAgICBjaGVja1NlbGVjdEFsbChhY3RpdmVUYWIpID8gXCJEZXNlbGVjdCBBbGxcIiA6IFwiU2VsZWN0IEFsbFwiXG4gICAgICAgICAgfX08L3N0cm9uZz5cbiAgICAgICAgPC9hcHAtY3MtY2hlY2tib3g+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJjYXRlZ29yeS1saXN0LWl0ZW0gdngtbWItNFwiXG4gICAgICAgIFtjbGFzcy53aXRoLXNlbGVjdEFsbF09XCJzZWFyY2hMaXN0Lmxlbmd0aCA+IDFcIlxuICAgICAgICAqbmdJZj1cInNlYXJjaExpc3QubGVuZ3RoID4gMFwiXG4gICAgICA+XG4gICAgICAgIDx1bCBjbGFzcz1cImNhdGVnb3J5LWxpc3QtaXRlbS11bCB2eC1tLTAgdngtcC0wXCI+XG4gICAgICAgICAgPGxpIGNsYXNzPVwidngtbWItNFwiICpuZ0Zvcj1cImxldCBjYXRlZ29yeSBvZiBzZWFyY2hMaXN0XCI+XG4gICAgICAgICAgICA8YXBwLWNzLWNoZWNrYm94XG4gICAgICAgICAgICAgIFtuZ1ZhbHVlXT1cInNlbGVjdGVkSWRzLmluY2x1ZGVzKGNhdGVnb3J5W2NhdGVnb3J5SWRLZXldKVwiXG4gICAgICAgICAgICAgIChuZ1ZhbHVlQ2hhbmdlKT1cInNlbGVjdENhdGVnb3J5KCRldmVudCwgYWN0aXZlVGFiLCBjYXRlZ29yeSlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJjYXRlZ29yaWVzXCI+XG4gICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZW50aXR5IG9mIGNhdGVnb3J5LmNhdGVnb3J5X25hbWU7IGxldCBqID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgW2FyVG9vbHRpcF09XCJlbnRpdHlcIlxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBlbnRpdHkgfX1cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9hcHAtY3MtY2hlY2tib3g+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgPC91bD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8YXBwLW5vLWRhdGFcbiAgICAgICAgKm5nSWY9XCJzZWFyY2hMaXN0Lmxlbmd0aCA9PSAwXCJcbiAgICAgICAgW25vRGF0YUltYWdlXT1cIkFTU0VUUy5zZWFyY2hfZGF0YVwiXG4gICAgICAgIFtub0RhdGFUZXh0XT1cIidObyBkYXRhIHRvIGRpc3BsYXknXCJcbiAgICAgID5cbiAgICAgIDwvYXBwLW5vLWRhdGE+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8YXBwLWRhc2hib2FyZC1mb290ZXJcbiAgICAgIFtmb290ZXJEZXRhaWxzXT1cImZvb3RlckRldGFpbHNcIlxuICAgICAgKGNhbmNlbEV2ZW50KT1cImNsb3NlKClcIlxuICAgICAgKGRlbGV0ZUV2ZW50KT1cImRlbGV0ZUV2ZW50KCRldmVudClcIlxuICAgICAgKHN1Ym1pdEV2ZW50KT1cInNhdmUoKVwiXG4gICAgPjwvYXBwLWRhc2hib2FyZC1mb290ZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
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 CategoriesComponent {
12
+ ASSETS = ASSETS;
13
+ categoryList = {
14
+ regulations: {
15
+ list: [],
16
+ selectedList: [],
17
+ },
18
+ standards: {
19
+ list: [],
20
+ selectedList: [],
21
+ },
22
+ internalControls: {
23
+ list: [],
24
+ selectedList: [],
25
+ },
26
+ others: {
27
+ list: [],
28
+ selectedList: [],
29
+ },
30
+ };
31
+ allCategories = [];
32
+ categoryIdKey;
33
+ selectedCategories = [];
34
+ search = '';
35
+ activeTab = 'regulations';
36
+ selectedIds = [];
37
+ animation = false;
38
+ blockWidth;
39
+ footerDetails = {
40
+ selectedData: [],
41
+ nonRemovableList: [],
42
+ displayElementKey: 'item_name',
43
+ elementId: 'item_id',
44
+ singularText: 'Program selected',
45
+ pluralText: 'Programs 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
+ const rcElement = this.allCategories.findIndex((ele) => ele.category_id == category[this.categoryIdKey]);
71
+ if (rcElement !== -1) {
72
+ const parentRc = this.allCategories[rcElement];
73
+ if (parentRc?.child_cat_ids?.length > 0) {
74
+ parentRc.child_cat_ids.forEach((childElement) => {
75
+ if (!this.selectedIds.includes(childElement)) {
76
+ this.selectedIds.push(childElement);
77
+ }
78
+ });
79
+ }
80
+ }
81
+ }
82
+ else {
83
+ const index = this.selectedIds.findIndex((element) => element == category[this.categoryIdKey]);
84
+ this.selectedIds.splice(index, 1);
85
+ const rcElement = this.allCategories.findIndex((ele) => ele.category_id == category[this.categoryIdKey]);
86
+ if (rcElement !== -1) {
87
+ const parentRc = this.allCategories[rcElement];
88
+ if (parentRc?.child_cat_ids?.length > 0) {
89
+ parentRc.child_cat_ids.forEach((childElement) => {
90
+ const removeIndex = this.selectedIds.findIndex((removeElement) => removeElement == childElement);
91
+ this.selectedIds.splice(removeIndex, 1);
92
+ });
93
+ }
94
+ }
95
+ }
96
+ this.setList();
97
+ }
98
+ deleteEvent(event) {
99
+ const index = this.selectedIds.findIndex((element) => element == event[this.categoryIdKey]);
100
+ this.selectedIds.splice(index, 1);
101
+ this.setList();
102
+ }
103
+ selectAll(mode, activeTab) {
104
+ if (mode) {
105
+ const list = [...this.categoryList[activeTab].list];
106
+ list.forEach((element) => {
107
+ if (!this.selectedIds.includes(element[this.categoryIdKey])) {
108
+ this.selectedIds.push(element[this.categoryIdKey]);
109
+ }
110
+ });
111
+ }
112
+ else {
113
+ const list = [...this.categoryList[activeTab].list];
114
+ list.forEach((element) => {
115
+ if (this.selectedIds.includes(element[this.categoryIdKey])) {
116
+ let idIndex = this.selectedIds.findIndex((id) => id == element[this.categoryIdKey]);
117
+ this.selectedIds.splice(idIndex, 1);
118
+ }
119
+ });
120
+ }
121
+ this.setList();
122
+ }
123
+ setList() {
124
+ const data = [];
125
+ const categoryList = [...new Set(this.allCategories)];
126
+ // cloneDeep(this.allCategories)
127
+ const selectedIds = [...new Set(this.selectedIds)];
128
+ // cloneDeep(this.selectedIds);
129
+ this.categoryList.regulations.selectedList = [];
130
+ this.categoryList.standards.selectedList = [];
131
+ this.categoryList.internalControls.selectedList = [];
132
+ this.categoryList.others.selectedList = [];
133
+ categoryList.forEach((element) => {
134
+ if (selectedIds.includes(element[this.categoryIdKey])) {
135
+ data.push(element);
136
+ }
137
+ });
138
+ this.selectedCategories = data;
139
+ this.footerDetails.selectedData = data;
140
+ this.categoryList.regulations.list.forEach((category) => {
141
+ if (selectedIds.includes(category[this.categoryIdKey])) {
142
+ this.categoryList.regulations.selectedList.push(category);
143
+ }
144
+ });
145
+ this.categoryList.standards.list.forEach((category) => {
146
+ if (selectedIds.includes(category[this.categoryIdKey])) {
147
+ this.categoryList.standards.selectedList.push(category);
148
+ }
149
+ });
150
+ this.categoryList.internalControls.list.forEach((category) => {
151
+ if (selectedIds.includes(category[this.categoryIdKey])) {
152
+ this.categoryList.internalControls.selectedList.push(category);
153
+ }
154
+ });
155
+ this.categoryList.others.list.forEach((category) => {
156
+ if (selectedIds.includes(category[this.categoryIdKey])) {
157
+ this.categoryList.others.selectedList.push(category);
158
+ }
159
+ });
160
+ if (!this.activeTab) {
161
+ this.setActiveTab();
162
+ }
163
+ }
164
+ setActiveTab() {
165
+ if (this.categoryList.regulations.selectedList.length > 0) {
166
+ this.activeTab = 'regulations';
167
+ }
168
+ else if (this.categoryList.standards.selectedList.length > 0) {
169
+ this.activeTab = 'standards';
170
+ }
171
+ else if (this.categoryList.internalControls.selectedList.length > 0) {
172
+ this.activeTab = 'internalControls';
173
+ }
174
+ else if (this.categoryList.others.selectedList.length > 0) {
175
+ this.activeTab = 'others';
176
+ }
177
+ else {
178
+ this.activeTab = 'regulations';
179
+ }
180
+ }
181
+ checkSelectAll(activeTab) {
182
+ const data = this.categoryList[activeTab].list.every((user) => this.selectedIds.includes(user[this.categoryIdKey]));
183
+ return data;
184
+ }
185
+ save() {
186
+ this.saveSelectedCategory.emit(this.selectedCategories);
187
+ }
188
+ close() {
189
+ this.closeCategoriesList.emit();
190
+ }
191
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CategoriesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
192
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CategoriesComponent, selector: "app-categories", inputs: { categoryList: "categoryList", allCategories: "allCategories", categoryIdKey: "categoryIdKey", selectedCategories: "selectedCategories" }, outputs: { saveSelectedCategory: "saveSelectedCategory", closeList: "closeList", closeCategoriesList: "closeCategoriesList" }, ngImport: i0, template: "<div class=\"category-list\" [class.animate-slideInRight]=\"animation\">\r\n <div\r\n class=\"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 Program(s)</span>\r\n </div>\r\n <div class=\"category-list-mid\">\r\n <div class=\"vx-d-flex vx-mb-2\">\r\n <div\r\n class=\"category-list-card\"\r\n [class.active]=\"activeTab == 'regulations'\"\r\n (click)=\"activeTab = 'regulations'\"\r\n >\r\n <div class=\"left\">\r\n <label>REGULATIONS</label>\r\n <p *ngIf=\"categoryList?.regulations?.selectedList?.length != 0\">\r\n {{ categoryList?.regulations?.selectedList?.length }}\r\n {{\r\n categoryList?.regulations?.selectedList?.length == 1\r\n ? \"Program\"\r\n : \"Programs\"\r\n }}\r\n selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{\r\n categoryList?.regulations?.list?.length\r\n }}</span>\r\n </div>\r\n <div\r\n class=\"category-list-card\"\r\n [class.active]=\"activeTab == 'standards'\"\r\n (click)=\"activeTab = 'standards'\"\r\n >\r\n <div class=\"left\">\r\n <label>STANDARDS</label>\r\n <p *ngIf=\"categoryList?.standards?.selectedList?.length != 0\">\r\n {{ categoryList?.standards?.selectedList?.length }}\r\n {{\r\n categoryList?.standards?.selectedList?.length == 1\r\n ? \"Program\"\r\n : \"Programs\"\r\n }}\r\n selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{ categoryList?.standards?.list?.length }}</span>\r\n </div>\r\n <div\r\n class=\"category-list-card\"\r\n [class.active]=\"activeTab == 'internalControls'\"\r\n (click)=\"activeTab = 'internalControls'\"\r\n >\r\n <div class=\"left\">\r\n <label>INTERNAL CONTROLS</label>\r\n <p *ngIf=\"categoryList?.internalControls?.selectedList?.length != 0\">\r\n {{ categoryList?.internalControls?.selectedList?.length }}\r\n {{\r\n categoryList?.internalControls?.selectedList?.length == 1\r\n ? \"Program\"\r\n : \"programs\"\r\n }}\r\n selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{\r\n categoryList?.internalControls?.list?.length\r\n }}</span>\r\n </div>\r\n <div\r\n class=\"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 ? \"Program\"\r\n : \"Programs\"\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=\"category-list-search vx-mb-2\">\r\n <i class=\"icons\">&#xe90b;</i>\r\n <input type=\"text\" [(ngModel)]=\"search\" placeholder=\"Search Program\" />\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=\"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=\"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 *ngFor=\"let entity of category.category_name; let j = index\"\r\n [arTooltip]=\"entity\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n >\r\n {{ entity }}\r\n </li>\r\n </ul>\r\n </app-cs-checkbox>\r\n </li>\r\n </ul>\r\n </div>\r\n\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 .category-list{background:#fff;border-right:1px solid #F1F1F1;position:fixed;inset:0 500px 0 0}::ng-deep .category-list-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .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 .category-list-card .left{display:flex;flex-wrap:wrap;pointer-events:none}::ng-deep .category-list-card .left label{color:#747576;font-size:11px;font-weight:600;line-height:16px;text-transform:uppercase;width:100%}::ng-deep .category-list-card .left p{color:#161b2f;font-size:11px;font-weight:600;line-height:16px;margin:0}::ng-deep .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 .category-list-card.active{box-shadow:0 3px 12px #1e5dd326;z-index:1;pointer-events:none}::ng-deep .category-list-card.active span.counter{background:#f1f1f1;color:#042e7d}::ng-deep .category-list-card+.category-list-card{margin-left:4px}::ng-deep .category-list-mid{height:calc(100vh - 2.75rem);padding:2rem;position:relative}::ng-deep .category-list-mid::-webkit-scrollbar-track{background:transparent}::ng-deep .category-list-mid .select-all{display:flex;padding-bottom:1rem}::ng-deep .category-list-mid .select-all app-cs-checkbox{display:flex}::ng-deep .category-list-mid .select-all app-cs-checkbox .checkbox-item .value{max-width:unset!important;font-size:12px!important}::ng-deep .category-list-mid .select-all app-cs-checkbox .checkbox-item .value strong{font-weight:600;color:#161b2f}::ng-deep .category-list-mid app-no-data .no-data-wrapper{height:calc(100vh - 260px)}::ng-deep .category-list-search{position:relative}::ng-deep .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 .category-list-search input:focus{border-color:#1e5dd3}::ng-deep .category-list-search i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1;font-size:12px}::ng-deep .category-list-item{list-style-type:none;display:block;height:calc(100vh - 288px);overflow:hidden;overflow-y:auto}::ng-deep .category-list-item::-webkit-scrollbar-track{background:transparent}::ng-deep .category-list-item.with-selectAll{height:calc(100vh - 320px)}::ng-deep .category-list-item ul.category-list-item-ul{padding:0;margin:0}::ng-deep .category-list-item ul.category-list-item-ul li{list-style:none}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox{display:flex}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label{width:100%}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.radio-item span.value,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.radio-item span.value,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.checkbox-item span.value,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.checkbox-item span.value{width:auto;justify-content:flex-start}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories,::ng-deep .category-list-item ul.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 .category-list-item ul.category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories li,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories li,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories li,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories li{display:block;padding:0 16px 0 8px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;color:#747576}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories li:after,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories li:after,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories li:after,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories li:after{content:\">\";position:absolute;top:0;right:0;color:#747576;font-size:12px}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories li:last-of-type,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories li:last-of-type,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories li:last-of-type,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories li:last-of-type{color:#34aa44}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories li:last-of-type:after,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories li:last-of-type:after,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories li:last-of-type:after,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories li:last-of-type:after{display:none}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories li:first-of-type,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories li:first-of-type,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories li:first-of-type,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories li:first-of-type{padding-left:0;color:#1e5dd3}\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" }] });
193
+ }
194
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CategoriesComponent, decorators: [{
195
+ type: Component,
196
+ args: [{ selector: 'app-categories', template: "<div class=\"category-list\" [class.animate-slideInRight]=\"animation\">\r\n <div\r\n class=\"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 Program(s)</span>\r\n </div>\r\n <div class=\"category-list-mid\">\r\n <div class=\"vx-d-flex vx-mb-2\">\r\n <div\r\n class=\"category-list-card\"\r\n [class.active]=\"activeTab == 'regulations'\"\r\n (click)=\"activeTab = 'regulations'\"\r\n >\r\n <div class=\"left\">\r\n <label>REGULATIONS</label>\r\n <p *ngIf=\"categoryList?.regulations?.selectedList?.length != 0\">\r\n {{ categoryList?.regulations?.selectedList?.length }}\r\n {{\r\n categoryList?.regulations?.selectedList?.length == 1\r\n ? \"Program\"\r\n : \"Programs\"\r\n }}\r\n selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{\r\n categoryList?.regulations?.list?.length\r\n }}</span>\r\n </div>\r\n <div\r\n class=\"category-list-card\"\r\n [class.active]=\"activeTab == 'standards'\"\r\n (click)=\"activeTab = 'standards'\"\r\n >\r\n <div class=\"left\">\r\n <label>STANDARDS</label>\r\n <p *ngIf=\"categoryList?.standards?.selectedList?.length != 0\">\r\n {{ categoryList?.standards?.selectedList?.length }}\r\n {{\r\n categoryList?.standards?.selectedList?.length == 1\r\n ? \"Program\"\r\n : \"Programs\"\r\n }}\r\n selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{ categoryList?.standards?.list?.length }}</span>\r\n </div>\r\n <div\r\n class=\"category-list-card\"\r\n [class.active]=\"activeTab == 'internalControls'\"\r\n (click)=\"activeTab = 'internalControls'\"\r\n >\r\n <div class=\"left\">\r\n <label>INTERNAL CONTROLS</label>\r\n <p *ngIf=\"categoryList?.internalControls?.selectedList?.length != 0\">\r\n {{ categoryList?.internalControls?.selectedList?.length }}\r\n {{\r\n categoryList?.internalControls?.selectedList?.length == 1\r\n ? \"Program\"\r\n : \"programs\"\r\n }}\r\n selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{\r\n categoryList?.internalControls?.list?.length\r\n }}</span>\r\n </div>\r\n <div\r\n class=\"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 ? \"Program\"\r\n : \"Programs\"\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=\"category-list-search vx-mb-2\">\r\n <i class=\"icons\">&#xe90b;</i>\r\n <input type=\"text\" [(ngModel)]=\"search\" placeholder=\"Search Program\" />\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=\"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=\"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 *ngFor=\"let entity of category.category_name; let j = index\"\r\n [arTooltip]=\"entity\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n >\r\n {{ entity }}\r\n </li>\r\n </ul>\r\n </app-cs-checkbox>\r\n </li>\r\n </ul>\r\n </div>\r\n\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 .category-list{background:#fff;border-right:1px solid #F1F1F1;position:fixed;inset:0 500px 0 0}::ng-deep .category-list-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .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 .category-list-card .left{display:flex;flex-wrap:wrap;pointer-events:none}::ng-deep .category-list-card .left label{color:#747576;font-size:11px;font-weight:600;line-height:16px;text-transform:uppercase;width:100%}::ng-deep .category-list-card .left p{color:#161b2f;font-size:11px;font-weight:600;line-height:16px;margin:0}::ng-deep .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 .category-list-card.active{box-shadow:0 3px 12px #1e5dd326;z-index:1;pointer-events:none}::ng-deep .category-list-card.active span.counter{background:#f1f1f1;color:#042e7d}::ng-deep .category-list-card+.category-list-card{margin-left:4px}::ng-deep .category-list-mid{height:calc(100vh - 2.75rem);padding:2rem;position:relative}::ng-deep .category-list-mid::-webkit-scrollbar-track{background:transparent}::ng-deep .category-list-mid .select-all{display:flex;padding-bottom:1rem}::ng-deep .category-list-mid .select-all app-cs-checkbox{display:flex}::ng-deep .category-list-mid .select-all app-cs-checkbox .checkbox-item .value{max-width:unset!important;font-size:12px!important}::ng-deep .category-list-mid .select-all app-cs-checkbox .checkbox-item .value strong{font-weight:600;color:#161b2f}::ng-deep .category-list-mid app-no-data .no-data-wrapper{height:calc(100vh - 260px)}::ng-deep .category-list-search{position:relative}::ng-deep .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 .category-list-search input:focus{border-color:#1e5dd3}::ng-deep .category-list-search i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1;font-size:12px}::ng-deep .category-list-item{list-style-type:none;display:block;height:calc(100vh - 288px);overflow:hidden;overflow-y:auto}::ng-deep .category-list-item::-webkit-scrollbar-track{background:transparent}::ng-deep .category-list-item.with-selectAll{height:calc(100vh - 320px)}::ng-deep .category-list-item ul.category-list-item-ul{padding:0;margin:0}::ng-deep .category-list-item ul.category-list-item-ul li{list-style:none}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox{display:flex}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label{width:100%}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.radio-item span.value,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.radio-item span.value,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.checkbox-item span.value,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.checkbox-item span.value{width:auto;justify-content:flex-start}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories,::ng-deep .category-list-item ul.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 .category-list-item ul.category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories li,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories li,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories li,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories li{display:block;padding:0 16px 0 8px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;color:#747576}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories li:after,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories li:after,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories li:after,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories li:after{content:\">\";position:absolute;top:0;right:0;color:#747576;font-size:12px}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories li:last-of-type,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories li:last-of-type,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories li:last-of-type,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories li:last-of-type{color:#34aa44}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories li:last-of-type:after,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories li:last-of-type:after,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories li:last-of-type:after,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories li:last-of-type:after{display:none}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories li:first-of-type,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories li:first-of-type,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories li:first-of-type,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories li:first-of-type{padding-left:0;color:#1e5dd3}\n"] }]
197
+ }], ctorParameters: function () { return []; }, propDecorators: { categoryList: [{
198
+ type: Input
199
+ }], allCategories: [{
200
+ type: Input
201
+ }], categoryIdKey: [{
202
+ type: Input
203
+ }], selectedCategories: [{
204
+ type: Input
205
+ }], saveSelectedCategory: [{
206
+ type: Output
207
+ }], closeList: [{
208
+ type: Output
209
+ }], closeCategoriesList: [{
210
+ type: Output
211
+ }] } });
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcmllcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvY3JlYXRlLWRhc2hib2FyZC1jb250YWluZXIvY2F0ZWdvcmllcy9jYXRlZ29yaWVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi9jcmVhdGUtZGFzaGJvYXJkLWNvbnRhaW5lci9jYXRlZ29yaWVzL2NhdGVnb3JpZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7OztBQU90RCxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFFUCxZQUFZLEdBQXFCO1FBQ3hDLFdBQVcsRUFBRTtZQUNYLElBQUksRUFBRSxFQUFFO1lBQ1IsWUFBWSxFQUFFLEVBQUU7U0FDakI7UUFDRCxTQUFTLEVBQUU7WUFDVCxJQUFJLEVBQUUsRUFBRTtZQUNSLFlBQVksRUFBRSxFQUFFO1NBQ2pCO1FBQ0QsZ0JBQWdCLEVBQUU7WUFDaEIsSUFBSSxFQUFFLEVBQUU7WUFDUixZQUFZLEVBQUUsRUFBRTtTQUNqQjtRQUNELE1BQU0sRUFBRTtZQUNOLElBQUksRUFBRSxFQUFFO1lBQ1IsWUFBWSxFQUFFLEVBQUU7U0FDakI7S0FDRixDQUFDO0lBQ08sYUFBYSxHQUFVLEVBQUUsQ0FBQztJQUUxQixhQUFhLENBQU07SUFDbkIsa0JBQWtCLEdBQVUsRUFBRSxDQUFDO0lBRXhDLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFDWixTQUFTLEdBQ1AsYUFBYSxDQUFDO0lBQ2hC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ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhc2hib2FyZEZvb3RlckNvbmZpZyB9IGZyb20gJy4uLy4uL3VpLWtpdC9kYXNoYm9hcmQtZm9vdGVyL2Rhc2hib2FyZC1mb290ZXItY29uZmlnJztcclxuaW1wb3J0IHsgQ2F0ZWdvcmllc0NvbmZpZyB9IGZyb20gJy4vY2F0ZWdvcmllcy1jb25maWcnO1xyXG5pbXBvcnQgeyBBU1NFVFMgfSBmcm9tICcuLi9jb25zdGFudHMvYXNzZXRzLmNvbnN0YW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWNhdGVnb3JpZXMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXRlZ29yaWVzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jYXRlZ29yaWVzLmNvbXBvbmVudC5sZXNzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYXRlZ29yaWVzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBBU1NFVFMgPSBBU1NFVFM7XHJcblxyXG4gIEBJbnB1dCgpIGNhdGVnb3J5TGlzdDogQ2F0ZWdvcmllc0NvbmZpZyA9IHtcclxuICAgIHJlZ3VsYXRpb25zOiB7XHJcbiAgICAgIGxpc3Q6IFtdLFxyXG4gICAgICBzZWxlY3RlZExpc3Q6IFtdLFxyXG4gICAgfSxcclxuICAgIHN0YW5kYXJkczoge1xyXG4gICAgICBsaXN0OiBbXSxcclxuICAgICAgc2VsZWN0ZWRMaXN0OiBbXSxcclxuICAgIH0sXHJcbiAgICBpbnRlcm5hbENvbnRyb2xzOiB7XHJcbiAgICAgIGxpc3Q6IFtdLFxyXG4gICAgICBzZWxlY3RlZExpc3Q6IFtdLFxyXG4gICAgfSxcclxuICAgIG90aGVyczoge1xyXG4gICAgICBsaXN0OiBbXSxcclxuICAgICAgc2VsZWN0ZWRMaXN0OiBbXSxcclxuICAgIH0sXHJcbiAgfTtcclxuICBASW5wdXQoKSBhbGxDYXRlZ29yaWVzOiBhbnlbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKSBjYXRlZ29yeUlkS2V5OiBhbnk7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRDYXRlZ29yaWVzOiBhbnlbXSA9IFtdO1xyXG5cclxuICBzZWFyY2ggPSAnJztcclxuICBhY3RpdmVUYWI6ICdzdGFuZGFyZHMnIHwgJ3JlZ3VsYXRpb25zJyB8ICdpbnRlcm5hbENvbnRyb2xzJyB8ICdvdGhlcnMnID1cclxuICAgICdyZWd1bGF0aW9ucyc7XHJcbiAgc2VsZWN0ZWRJZHM6IGFueVtdID0gW107XHJcbiAgYW5pbWF0aW9uID0gZmFsc2U7XHJcbiAgYmxvY2tXaWR0aDogYW55O1xyXG4gIGZvb3RlckRldGFpbHM6IERhc2hib2FyZEZvb3RlckNvbmZpZyA9IHtcclxuICAgIHNlbGVjdGVkRGF0YTogW10sXHJcbiAgICBub25SZW1vdmFibGVMaXN0OiBbXSxcclxuICAgIGRpc3BsYXlFbGVtZW50S2V5OiAnaXRlbV9uYW1lJyxcclxuICAgIGVsZW1lbnRJZDogJ2l0ZW1faWQnLFxyXG4gICAgc2luZ3VsYXJUZXh0OiAnUHJvZ3JhbSBzZWxlY3RlZCcsXHJcbiAgICBwbHVyYWxUZXh0OiAnUHJvZ3JhbXMgc2VsZWN0ZWQnLFxyXG4gICAgc2hvd0ZyZXF1ZW5jeTogZmFsc2UsXHJcbiAgICBmcmVxdWVuY3lUZXh0OiAnJyxcclxuICAgIGlzRGlzYWJsZWQ6IGZhbHNlLFxyXG4gIH07XHJcblxyXG4gIEBPdXRwdXQoKSBzYXZlU2VsZWN0ZWRDYXRlZ29yeSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2xvc2VMaXN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjbG9zZUNhdGVnb3JpZXNMaXN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5hbmltYXRpb24gPSB0cnVlO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uID0gZmFsc2U7XHJcbiAgICB9LCAzMDApO1xyXG4gICAgdGhpcy5zZWxlY3RlZElkcyA9IFtdO1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRDYXRlZ29yaWVzKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yaWVzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkSWRzLnB1c2goZWxlbWVudFt0aGlzLmNhdGVnb3J5SWRLZXldKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldExpc3QoKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdENhdGVnb3J5KG1vZGU6IGFueSwgYWN0aXZlVGFiOiBhbnksIGNhdGVnb3J5OiBhbnkpIHtcclxuICAgIGlmIChtb2RlKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJZHMucHVzaChjYXRlZ29yeVt0aGlzLmNhdGVnb3J5SWRLZXldKTtcclxuICAgICAgY29uc3QgcmNFbGVtZW50ID0gdGhpcy5hbGxDYXRlZ29yaWVzLmZpbmRJbmRleChcclxuICAgICAgICAoZWxlOiBhbnkpID0+IGVsZS5jYXRlZ29yeV9pZCA9PSBjYXRlZ29yeVt0aGlzLmNhdGVnb3J5SWRLZXldXHJcbiAgICAgICk7XHJcbiAgICAgIGlmIChyY0VsZW1lbnQgIT09IC0xKSB7XHJcbiAgICAgICAgY29uc3QgcGFyZW50UmM6IGFueSA9IHRoaXMuYWxsQ2F0ZWdvcmllc1tyY0VsZW1lbnRdO1xyXG4gICAgICAgIGlmIChwYXJlbnRSYz8uY2hpbGRfY2F0X2lkcz8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgcGFyZW50UmMuY2hpbGRfY2F0X2lkcy5mb3JFYWNoKChjaGlsZEVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRJZHMuaW5jbHVkZXMoY2hpbGRFbGVtZW50KSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMucHVzaChjaGlsZEVsZW1lbnQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZElkcy5maW5kSW5kZXgoXHJcbiAgICAgICAgKGVsZW1lbnQ6IGFueSkgPT4gZWxlbWVudCA9PSBjYXRlZ29yeVt0aGlzLmNhdGVnb3J5SWRLZXldXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJZHMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgY29uc3QgcmNFbGVtZW50ID0gdGhpcy5hbGxDYXRlZ29yaWVzLmZpbmRJbmRleChcclxuICAgICAgICAoZWxlOiBhbnkpID0+IGVsZS5jYXRlZ29yeV9pZCA9PSBjYXRlZ29yeVt0aGlzLmNhdGVnb3J5SWRLZXldXHJcbiAgICAgICk7XHJcbiAgICAgIGlmIChyY0VsZW1lbnQgIT09IC0xKSB7XHJcbiAgICAgICAgY29uc3QgcGFyZW50UmM6IGFueSA9IHRoaXMuYWxsQ2F0ZWdvcmllc1tyY0VsZW1lbnRdO1xyXG4gICAgICAgIGlmIChwYXJlbnRSYz8uY2hpbGRfY2F0X2lkcz8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgcGFyZW50UmMuY2hpbGRfY2F0X2lkcy5mb3JFYWNoKChjaGlsZEVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCByZW1vdmVJbmRleCA9IHRoaXMuc2VsZWN0ZWRJZHMuZmluZEluZGV4KFxyXG4gICAgICAgICAgICAgIChyZW1vdmVFbGVtZW50OiBhbnkpID0+IHJlbW92ZUVsZW1lbnQgPT0gY2hpbGRFbGVtZW50XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMuc3BsaWNlKHJlbW92ZUluZGV4LCAxKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRMaXN0KCk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVFdmVudChldmVudDogYW55KSB7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRJZHMuZmluZEluZGV4KFxyXG4gICAgICAoZWxlbWVudDogYW55KSA9PiBlbGVtZW50ID09IGV2ZW50W3RoaXMuY2F0ZWdvcnlJZEtleV1cclxuICAgICk7XHJcbiAgICB0aGlzLnNlbGVjdGVkSWRzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB0aGlzLnNldExpc3QoKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdEFsbChcclxuICAgIG1vZGU6IGFueSxcclxuICAgIGFjdGl2ZVRhYjogJ3N0YW5kYXJkcycgfCAncmVndWxhdGlvbnMnIHwgJ2ludGVybmFsQ29udHJvbHMnIHwgJ290aGVycydcclxuICApIHtcclxuICAgIGlmIChtb2RlKSB7XHJcbiAgICAgIGNvbnN0IGxpc3QgPSBbLi4udGhpcy5jYXRlZ29yeUxpc3RbYWN0aXZlVGFiXS5saXN0XTtcclxuICAgICAgbGlzdC5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkSWRzLmluY2x1ZGVzKGVsZW1lbnRbdGhpcy5jYXRlZ29yeUlkS2V5XSkpIHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMucHVzaChlbGVtZW50W3RoaXMuY2F0ZWdvcnlJZEtleV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBsaXN0ID0gWy4uLnRoaXMuY2F0ZWdvcnlMaXN0W2FjdGl2ZVRhYl0ubGlzdF07XHJcbiAgICAgIGxpc3QuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkSWRzLmluY2x1ZGVzKGVsZW1lbnRbdGhpcy5jYXRlZ29yeUlkS2V5XSkpIHtcclxuICAgICAgICAgIGxldCBpZEluZGV4ID0gdGhpcy5zZWxlY3RlZElkcy5maW5kSW5kZXgoXHJcbiAgICAgICAgICAgIChpZDogYW55KSA9PiBpZCA9PSBlbGVtZW50W3RoaXMuY2F0ZWdvcnlJZEtleV1cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSWRzLnNwbGljZShpZEluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRMaXN0KCk7XHJcbiAgfVxyXG5cclxuICBzZXRMaXN0KCkge1xyXG4gICAgY29uc3QgZGF0YTogYW55ID0gW107XHJcbiAgICBjb25zdCBjYXRlZ29yeUxpc3QgPSBbLi4ubmV3IFNldCh0aGlzLmFsbENhdGVnb3JpZXMpXTtcclxuICAgIC8vIGNsb25lRGVlcCh0aGlzLmFsbENhdGVnb3JpZXMpXHJcbiAgICBjb25zdCBzZWxlY3RlZElkcyA9IFsuLi5uZXcgU2V0KHRoaXMuc2VsZWN0ZWRJZHMpXTtcclxuICAgIC8vICBjbG9uZURlZXAodGhpcy5zZWxlY3RlZElkcyk7XHJcbiAgICB0aGlzLmNhdGVnb3J5TGlzdC5yZWd1bGF0aW9ucy5zZWxlY3RlZExpc3QgPSBbXTtcclxuICAgIHRoaXMuY2F0ZWdvcnlMaXN0LnN0YW5kYXJkcy5zZWxlY3RlZExpc3QgPSBbXTtcclxuICAgIHRoaXMuY2F0ZWdvcnlMaXN0LmludGVybmFsQ29udHJvbHMuc2VsZWN0ZWRMaXN0ID0gW107XHJcbiAgICB0aGlzLmNhdGVnb3J5TGlzdC5vdGhlcnMuc2VsZWN0ZWRMaXN0ID0gW107XHJcblxyXG4gICAgY2F0ZWdvcnlMaXN0LmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoc2VsZWN0ZWRJZHMuaW5jbHVkZXMoZWxlbWVudFt0aGlzLmNhdGVnb3J5SWRLZXldKSkge1xyXG4gICAgICAgIGRhdGEucHVzaChlbGVtZW50KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcmllcyA9IGRhdGE7XHJcbiAgICB0aGlzLmZvb3RlckRldGFpbHMuc2VsZWN0ZWREYXRhID0gZGF0YTtcclxuXHJcbiAgICB0aGlzLmNhdGVnb3J5TGlzdC5yZWd1bGF0aW9ucy5saXN0LmZvckVhY2goKGNhdGVnb3J5OiBhbnkpID0+IHtcclxuICAgICAgaWYgKHNlbGVjdGVkSWRzLmluY2x1ZGVzKGNhdGVnb3J5W3RoaXMuY2F0ZWdvcnlJZEtleV0pKSB7XHJcbiAgICAgICAgdGhpcy5jYXRlZ29yeUxpc3QucmVndWxhdGlvbnMuc2VsZWN0ZWRMaXN0LnB1c2goY2F0ZWdvcnkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuY2F0ZWdvcnlMaXN0LnN0YW5kYXJkcy5saXN0LmZvckVhY2goKGNhdGVnb3J5OiBhbnkpID0+IHtcclxuICAgICAgaWYgKHNlbGVjdGVkSWRzLmluY2x1ZGVzKGNhdGVnb3J5W3RoaXMuY2F0ZWdvcnlJZEtleV0pKSB7XHJcbiAgICAgICAgdGhpcy5jYXRlZ29yeUxpc3Quc3RhbmRhcmRzLnNlbGVjdGVkTGlzdC5wdXNoKGNhdGVnb3J5KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmNhdGVnb3J5TGlzdC5pbnRlcm5hbENvbnRyb2xzLmxpc3QuZm9yRWFjaCgoY2F0ZWdvcnk6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoc2VsZWN0ZWRJZHMuaW5jbHVkZXMoY2F0ZWdvcnlbdGhpcy5jYXRlZ29yeUlkS2V5XSkpIHtcclxuICAgICAgICB0aGlzLmNhdGVnb3J5TGlzdC5pbnRlcm5hbENvbnRyb2xzLnNlbGVjdGVkTGlzdC5wdXNoKGNhdGVnb3J5KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmNhdGVnb3J5TGlzdC5vdGhlcnMubGlzdC5mb3JFYWNoKChjYXRlZ29yeTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChzZWxlY3RlZElkcy5pbmNsdWRlcyhjYXRlZ29yeVt0aGlzLmNhdGVnb3J5SWRLZXldKSkge1xyXG4gICAgICAgIHRoaXMuY2F0ZWdvcnlMaXN0Lm90aGVycy5zZWxlY3RlZExpc3QucHVzaChjYXRlZ29yeSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgaWYgKCF0aGlzLmFjdGl2ZVRhYikge1xyXG4gICAgICB0aGlzLnNldEFjdGl2ZVRhYigpO1xyXG4gICAgfVxyXG4gIH1cclxuICBzZXRBY3RpdmVUYWIoKSB7XHJcbiAgICBpZiAodGhpcy5jYXRlZ29yeUxpc3QucmVndWxhdGlvbnMuc2VsZWN0ZWRMaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5hY3RpdmVUYWIgPSAncmVndWxhdGlvbnMnO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmNhdGVnb3J5TGlzdC5zdGFuZGFyZHMuc2VsZWN0ZWRMaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5hY3RpdmVUYWIgPSAnc3RhbmRhcmRzJztcclxuICAgIH0gZWxzZSBpZiAodGhpcy5jYXRlZ29yeUxpc3QuaW50ZXJuYWxDb250cm9scy5zZWxlY3RlZExpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmFjdGl2ZVRhYiA9ICdpbnRlcm5hbENvbnRyb2xzJztcclxuICAgIH0gZWxzZSBpZiAodGhpcy5jYXRlZ29yeUxpc3Qub3RoZXJzLnNlbGVjdGVkTGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlVGFiID0gJ290aGVycyc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmFjdGl2ZVRhYiA9ICdyZWd1bGF0aW9ucyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGVja1NlbGVjdEFsbChcclxuICAgIGFjdGl2ZVRhYjogJ3N0YW5kYXJkcycgfCAncmVndWxhdGlvbnMnIHwgJ2ludGVybmFsQ29udHJvbHMnIHwgJ290aGVycydcclxuICApIHtcclxuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmNhdGVnb3J5TGlzdFthY3RpdmVUYWJdLmxpc3QuZXZlcnkoKHVzZXI6IGFueSkgPT5cclxuICAgICAgdGhpcy5zZWxlY3RlZElkcy5pbmNsdWRlcyh1c2VyW3RoaXMuY2F0ZWdvcnlJZEtleV0pXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIGRhdGE7XHJcbiAgfVxyXG5cclxuICBzYXZlKCkge1xyXG4gICAgdGhpcy5zYXZlU2VsZWN0ZWRDYXRlZ29yeS5lbWl0KHRoaXMuc2VsZWN0ZWRDYXRlZ29yaWVzKTtcclxuICB9XHJcblxyXG4gIGNsb3NlKCkge1xyXG4gICAgdGhpcy5jbG9zZUNhdGVnb3JpZXNMaXN0LmVtaXQoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhdGVnb3J5LWxpc3RcIiBbY2xhc3MuYW5pbWF0ZS1zbGlkZUluUmlnaHRdPVwiYW5pbWF0aW9uXCI+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJjYXRlZ29yeS1saXN0LWhlYWQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtcGwtNCB2eC1wci00XCJcclxuICA+XHJcbiAgICA8c3BhbiBjbGFzcz1cInZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHRcIj5TZWxlY3QgUHJvZ3JhbShzKTwvc3Bhbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcnktbGlzdC1taWRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ2eC1kLWZsZXggdngtbWItMlwiPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJjYXRlZ29yeS1saXN0LWNhcmRcIlxyXG4gICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlVGFiID09ICdyZWd1bGF0aW9ucydcIlxyXG4gICAgICAgIChjbGljayk9XCJhY3RpdmVUYWIgPSAncmVndWxhdGlvbnMnXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XHJcbiAgICAgICAgICA8bGFiZWw+UkVHVUxBVElPTlM8L2xhYmVsPlxyXG4gICAgICAgICAgPHAgKm5nSWY9XCJjYXRlZ29yeUxpc3Q/LnJlZ3VsYXRpb25zPy5zZWxlY3RlZExpc3Q/Lmxlbmd0aCAhPSAwXCI+XHJcbiAgICAgICAgICAgIHt7IGNhdGVnb3J5TGlzdD8ucmVndWxhdGlvbnM/LnNlbGVjdGVkTGlzdD8ubGVuZ3RoIH19XHJcbiAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgY2F0ZWdvcnlMaXN0Py5yZWd1bGF0aW9ucz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGggPT0gMVxyXG4gICAgICAgICAgICAgICAgPyBcIlByb2dyYW1cIlxyXG4gICAgICAgICAgICAgICAgOiBcIlByb2dyYW1zXCJcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgc2VsZWN0ZWRcclxuICAgICAgICAgIDwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXJcIj57e1xyXG4gICAgICAgICAgY2F0ZWdvcnlMaXN0Py5yZWd1bGF0aW9ucz8ubGlzdD8ubGVuZ3RoXHJcbiAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJjYXRlZ29yeS1saXN0LWNhcmRcIlxyXG4gICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlVGFiID09ICdzdGFuZGFyZHMnXCJcclxuICAgICAgICAoY2xpY2spPVwiYWN0aXZlVGFiID0gJ3N0YW5kYXJkcydcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj5cclxuICAgICAgICAgIDxsYWJlbD5TVEFOREFSRFM8L2xhYmVsPlxyXG4gICAgICAgICAgPHAgKm5nSWY9XCJjYXRlZ29yeUxpc3Q/LnN0YW5kYXJkcz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGggIT0gMFwiPlxyXG4gICAgICAgICAgICB7eyBjYXRlZ29yeUxpc3Q/LnN0YW5kYXJkcz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGggfX1cclxuICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICBjYXRlZ29yeUxpc3Q/LnN0YW5kYXJkcz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGggPT0gMVxyXG4gICAgICAgICAgICAgICAgPyBcIlByb2dyYW1cIlxyXG4gICAgICAgICAgICAgICAgOiBcIlByb2dyYW1zXCJcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgc2VsZWN0ZWRcclxuICAgICAgICAgIDwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXJcIj57eyBjYXRlZ29yeUxpc3Q/LnN0YW5kYXJkcz8ubGlzdD8ubGVuZ3RoIH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwiY2F0ZWdvcnktbGlzdC1jYXJkXCJcclxuICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYiA9PSAnaW50ZXJuYWxDb250cm9scydcIlxyXG4gICAgICAgIChjbGljayk9XCJhY3RpdmVUYWIgPSAnaW50ZXJuYWxDb250cm9scydcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj5cclxuICAgICAgICAgIDxsYWJlbD5JTlRFUk5BTCBDT05UUk9MUzwvbGFiZWw+XHJcbiAgICAgICAgICA8cCAqbmdJZj1cImNhdGVnb3J5TGlzdD8uaW50ZXJuYWxDb250cm9scz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGggIT0gMFwiPlxyXG4gICAgICAgICAgICB7eyBjYXRlZ29yeUxpc3Q/LmludGVybmFsQ29udHJvbHM/LnNlbGVjdGVkTGlzdD8ubGVuZ3RoIH19XHJcbiAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgY2F0ZWdvcnlMaXN0Py5pbnRlcm5hbENvbnRyb2xzPy5zZWxlY3RlZExpc3Q/Lmxlbmd0aCA9PSAxXHJcbiAgICAgICAgICAgICAgICA/IFwiUHJvZ3JhbVwiXHJcbiAgICAgICAgICAgICAgICA6IFwicHJvZ3JhbXNcIlxyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICBzZWxlY3RlZFxyXG4gICAgICAgICAgPC9wPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlclwiPnt7XHJcbiAgICAgICAgICBjYXRlZ29yeUxpc3Q/LmludGVybmFsQ29udHJvbHM/Lmxpc3Q/Lmxlbmd0aFxyXG4gICAgICAgIH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwiY2F0ZWdvcnktbGlzdC1jYXJkXCJcclxuICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYiA9PSAnb3RoZXJzJ1wiXHJcbiAgICAgICAgKGNsaWNrKT1cImFjdGl2ZVRhYiA9ICdvdGhlcnMnXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XHJcbiAgICAgICAgICA8bGFiZWw+T1RIRVJTPC9sYWJlbD5cclxuICAgICAgICAgIDxwICpuZ0lmPVwiY2F0ZWdvcnlMaXN0Py5vdGhlcnM/LnNlbGVjdGVkTGlzdD8ubGVuZ3RoICE9IDBcIj5cclxuICAgICAgICAgICAge3sgY2F0ZWdvcnlMaXN0Py5vdGhlcnM/LnNlbGVjdGVkTGlzdD8ubGVuZ3RoIH19XHJcbiAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgY2F0ZWdvcnlMaXN0Py5vdGhlcnM/LnNlbGVjdGVkTGlzdD8ubGVuZ3RoID09IDFcclxuICAgICAgICAgICAgICAgID8gXCJQcm9ncmFtXCJcclxuICAgICAgICAgICAgICAgIDogXCJQcm9ncmFtc1wiXHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIHNlbGVjdGVkXHJcbiAgICAgICAgICA8L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGVyXCI+e3sgY2F0ZWdvcnlMaXN0Py5vdGhlcnM/Lmxpc3Q/Lmxlbmd0aCB9fTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcnktbGlzdC1zZWFyY2ggdngtbWItMlwiPlxyXG4gICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkwYjs8L2k+XHJcbiAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwic2VhcmNoXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggUHJvZ3JhbVwiIC8+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICpuZ0lmPVwiY2F0ZWdvcnlMaXN0W2FjdGl2ZVRhYl0ubGlzdCB8IGZpbHRlciA6IHNlYXJjaCBhcyBzZWFyY2hMaXN0XCJcclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdC1hbGxcIiAqbmdJZj1cInNlYXJjaExpc3QubGVuZ3RoID4gMVwiPlxyXG4gICAgICAgIDxhcHAtY3MtY2hlY2tib3hcclxuICAgICAgICAgIFtuZ1ZhbHVlXT1cImNoZWNrU2VsZWN0QWxsKGFjdGl2ZVRhYilcIlxyXG4gICAgICAgICAgKG5nVmFsdWVDaGFuZ2UpPVwic2VsZWN0QWxsKCRldmVudCwgYWN0aXZlVGFiKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPHN0cm9uZz57e1xyXG4gICAgICAgICAgICBjaGVja1NlbGVjdEFsbChhY3RpdmVUYWIpID8gXCJEZXNlbGVjdCBBbGxcIiA6IFwiU2VsZWN0IEFsbFwiXHJcbiAgICAgICAgICB9fTwvc3Ryb25nPlxyXG4gICAgICAgIDwvYXBwLWNzLWNoZWNrYm94PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwiY2F0ZWdvcnktbGlzdC1pdGVtIHZ4LW1iLTRcIlxyXG4gICAgICAgIFtjbGFzcy53aXRoLXNlbGVjdEFsbF09XCJzZWFyY2hMaXN0Lmxlbmd0aCA+IDFcIlxyXG4gICAgICAgICpuZ0lmPVwic2VhcmNoTGlzdC5sZW5ndGggPiAwXCJcclxuICAgICAgPlxyXG4gICAgICAgIDx1bCBjbGFzcz1cImNhdGVnb3J5LWxpc3QtaXRlbS11bCB2eC1tLTAgdngtcC0wXCI+XHJcbiAgICAgICAgICA8bGkgY2xhc3M9XCJ2eC1tYi00XCIgKm5nRm9yPVwibGV0IGNhdGVnb3J5IG9mIHNlYXJjaExpc3RcIj5cclxuICAgICAgICAgICAgPGFwcC1jcy1jaGVja2JveFxyXG4gICAgICAgICAgICAgIFtuZ1ZhbHVlXT1cInNlbGVjdGVkSWRzLmluY2x1ZGVzKGNhdGVnb3J5W2NhdGVnb3J5SWRLZXldKVwiXHJcbiAgICAgICAgICAgICAgKG5nVmFsdWVDaGFuZ2UpPVwic2VsZWN0Q2F0ZWdvcnkoJGV2ZW50LCBhY3RpdmVUYWIsIGNhdGVnb3J5KVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJjYXRlZ29yaWVzXCI+XHJcbiAgICAgICAgICAgICAgICA8bGlcclxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGVudGl0eSBvZiBjYXRlZ29yeS5jYXRlZ29yeV9uYW1lOyBsZXQgaiA9IGluZGV4XCJcclxuICAgICAgICAgICAgICAgICAgW2FyVG9vbHRpcF09XCJlbnRpdHlcIlxyXG4gICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXHJcbiAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHt7IGVudGl0eSB9fVxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICA8L2FwcC1jcy1jaGVja2JveD5cclxuICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgPC91bD5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8YXBwLW5vLWRhdGFcclxuICAgICAgICAqbmdJZj1cInNlYXJjaExpc3QubGVuZ3RoID09IDBcIlxyXG4gICAgICAgIFtub0RhdGFJbWFnZV09XCJBU1NFVFMuc2VhcmNoX2RhdGFcIlxyXG4gICAgICAgIFtub0RhdGFUZXh0XT1cIidObyBkYXRhIHRvIGRpc3BsYXknXCJcclxuICAgICAgPlxyXG4gICAgICA8L2FwcC1uby1kYXRhPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPGFwcC1kYXNoYm9hcmQtZm9vdGVyXHJcbiAgICAgIFtmb290ZXJEZXRhaWxzXT1cImZvb3RlckRldGFpbHNcIlxyXG4gICAgICAoY2FuY2VsRXZlbnQpPVwiY2xvc2UoKVwiXHJcbiAgICAgIChkZWxldGVFdmVudCk9XCJkZWxldGVFdmVudCgkZXZlbnQpXCJcclxuICAgICAgKHN1Ym1pdEV2ZW50KT1cInNhdmUoKVwiXHJcbiAgICA+PC9hcHAtZGFzaGJvYXJkLWZvb3Rlcj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==