vc-create-dashboard 2.9.5 → 2.9.6

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 (152) hide show
  1. package/esm2022/lib/configurations.mjs +7 -0
  2. package/esm2022/lib/create-dashboard-container/categories/categories.component.mjs +210 -0
  3. package/esm2022/lib/create-dashboard-container/configure-widgets/configure-widgets/configure-widgets.component.mjs +549 -0
  4. package/{esm2020 → esm2022}/lib/create-dashboard-container/configure-widgets/configure-widgets.module.mjs +15 -15
  5. package/esm2022/lib/create-dashboard-container/create-dashboard.component.mjs +1080 -0
  6. package/{esm2020 → esm2022}/lib/create-dashboard-container/create-dashboard.module.mjs +49 -49
  7. package/{esm2020 → esm2022}/lib/create-dashboard-container/directives/directives.module.mjs +5 -5
  8. package/esm2022/lib/create-dashboard-container/directives/scroll-in-view.directive.mjs +36 -0
  9. package/esm2022/lib/create-dashboard-container/form-group/form-group.component.mjs +152 -0
  10. package/esm2022/lib/create-dashboard-container/frequency/frequency.component.mjs +309 -0
  11. package/{esm2020 → esm2022}/lib/create-dashboard-container/pipes/filter.pipe.mjs +4 -4
  12. package/{esm2020 → esm2022}/lib/create-dashboard-container/pipes/search.pipe.mjs +4 -4
  13. package/{esm2020 → esm2022}/lib/create-dashboard-container/pipes/text-count.pipe.mjs +4 -4
  14. package/esm2022/lib/create-dashboard-container/responsibility-center/responsibility-center.component.mjs +145 -0
  15. package/esm2022/lib/create-dashboard-container/risk-categories/risk-categories.component.mjs +195 -0
  16. package/esm2022/lib/create-dashboard-container/services/auth.service.mjs +31 -0
  17. package/esm2022/lib/create-dashboard-container/services/configure-widgets.service.mjs +227 -0
  18. package/esm2022/lib/create-dashboard-container/services/create-dashboard.service.mjs +126 -0
  19. package/esm2022/lib/create-dashboard-container/services/pagination.service.mjs +28 -0
  20. package/esm2022/lib/create-dashboard-container/user-list/user-list.component.mjs +421 -0
  21. package/{esm2020 → esm2022}/lib/create-dashboard.service.mjs +4 -4
  22. package/esm2022/lib/ui-kit/dashboard-footer/dashboard-footer/dashboard-footer.component.mjs +52 -0
  23. package/{esm2020 → esm2022}/lib/ui-kit/dashboard-footer/dashboard-footer.module.mjs +9 -9
  24. package/esm2022/lib/ui-kit/dialog/dialog-config.mjs +7 -0
  25. package/{esm2020 → esm2022}/lib/ui-kit/dialog/dialog-injector.mjs +4 -2
  26. package/esm2022/lib/ui-kit/dialog/dialog-ref.mjs +11 -0
  27. package/esm2022/lib/ui-kit/dialog/dialog.component.mjs +96 -0
  28. package/{esm2020 → esm2022}/lib/ui-kit/dialog/dialog.module.mjs +5 -5
  29. package/esm2022/lib/ui-kit/dialog/dialog.service.mjs +56 -0
  30. package/esm2022/lib/ui-kit/dialog/insertion.directive.mjs +17 -0
  31. package/esm2022/lib/ui-kit/floating-bar/floating-bar.component.mjs +57 -0
  32. package/{esm2020 → esm2022}/lib/ui-kit/floating-bar/floating-bar.module.mjs +9 -9
  33. package/esm2022/lib/ui-kit/formgroup/click-outside.directive.mjs +30 -0
  34. package/esm2022/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.mjs +29 -0
  35. package/esm2022/lib/ui-kit/formgroup/cs-radio/cs-radio.component.mjs +34 -0
  36. package/{esm2020 → esm2022}/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.mjs +4 -4
  37. package/esm2022/lib/ui-kit/formgroup/cs-select/cs-select.component.mjs +119 -0
  38. package/esm2022/lib/ui-kit/formgroup/cs-switch/cs-switch.component.mjs +39 -0
  39. package/{esm2020 → esm2022}/lib/ui-kit/formgroup/formgroup.module.mjs +17 -17
  40. package/{esm2020 → esm2022}/lib/ui-kit/formgroup/pipes/pascal.pipe.mjs +4 -4
  41. package/{esm2020 → esm2022}/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.mjs +4 -4
  42. package/esm2022/lib/ui-kit/no-data/no-data.component.mjs +47 -0
  43. package/{esm2020 → esm2022}/lib/ui-kit/no-data/no-data.module.mjs +5 -5
  44. package/esm2022/lib/ui-kit/pagination/pagination.component.mjs +130 -0
  45. package/{esm2020 → esm2022}/lib/ui-kit/pagination/pagination.module.mjs +5 -5
  46. package/esm2022/lib/ui-kit/popover/popover.component.mjs +142 -0
  47. package/esm2022/lib/ui-kit/popover/popover.directive.mjs +93 -0
  48. package/{esm2020 → esm2022}/lib/ui-kit/popover/popover.module.mjs +5 -5
  49. package/esm2022/lib/ui-kit/popover/popover.service.mjs +23 -0
  50. package/esm2022/lib/ui-kit/select/cs-option/cs-option.component.mjs +41 -0
  51. package/esm2022/lib/ui-kit/select/cs-select/cs-select.component.mjs +105 -0
  52. package/esm2022/lib/ui-kit/select/safe-html.pipe.mjs +21 -0
  53. package/{esm2020 → esm2022}/lib/ui-kit/select/select.module.mjs +5 -5
  54. package/esm2022/lib/ui-kit/services/cs-select.service.mjs +16 -0
  55. package/{esm2020 → esm2022}/lib/ui-kit/smiley-dialog/smiley-dialog.component.mjs +10 -8
  56. package/{esm2020 → esm2022}/lib/ui-kit/smiley-dialog/smiley-dialog.module.mjs +5 -5
  57. package/esm2022/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.mjs +46 -0
  58. package/{esm2020 → esm2022}/lib/ui-kit/snack-bar/snack-bar.module.mjs +5 -5
  59. package/{esm2020 → esm2022}/lib/ui-kit/snack-bar/snack-bar.service.mjs +6 -7
  60. package/esm2022/lib/ui-kit/tooltip/tooltip.directive.mjs +161 -0
  61. package/{esm2020 → esm2022}/lib/ui-kit/tooltip/tooltip.module.mjs +5 -5
  62. package/esm2022/lib/ui-kit/v-loader/loader/loader.component.mjs +23 -0
  63. package/esm2022/lib/ui-kit/v-loader/loader-inline/loader-inline.component.mjs +23 -0
  64. package/{esm2020 → esm2022}/lib/ui-kit/v-loader/v-loader.module.mjs +5 -5
  65. package/esm2022/vc-create-dashboard.mjs +5 -0
  66. package/fesm2022/vc-create-dashboard.mjs +5338 -0
  67. package/fesm2022/vc-create-dashboard.mjs.map +1 -0
  68. package/index.d.ts +1 -1
  69. package/lib/create-dashboard-container/categories/categories.component.d.ts +1 -1
  70. package/lib/create-dashboard-container/configure-widgets/configure-widgets/configure-widgets.component.d.ts +1 -1
  71. package/lib/create-dashboard-container/create-dashboard.component.d.ts +1 -1
  72. package/lib/create-dashboard-container/directives/scroll-in-view.directive.d.ts +1 -1
  73. package/lib/create-dashboard-container/form-group/form-group.component.d.ts +1 -1
  74. package/lib/create-dashboard-container/frequency/frequency.component.d.ts +1 -1
  75. package/lib/create-dashboard-container/responsibility-center/responsibility-center.component.d.ts +1 -1
  76. package/lib/create-dashboard-container/risk-categories/risk-categories.component.d.ts +1 -1
  77. package/lib/create-dashboard-container/user-list/user-list.component.d.ts +1 -1
  78. package/lib/ui-kit/dashboard-footer/dashboard-footer/dashboard-footer.component.d.ts +1 -1
  79. package/lib/ui-kit/dialog/dialog-injector.d.ts +2 -2
  80. package/lib/ui-kit/dialog/dialog.component.d.ts +1 -1
  81. package/lib/ui-kit/dialog/insertion.directive.d.ts +1 -1
  82. package/lib/ui-kit/floating-bar/floating-bar.component.d.ts +1 -1
  83. package/lib/ui-kit/formgroup/click-outside.directive.d.ts +1 -1
  84. package/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.d.ts +1 -1
  85. package/lib/ui-kit/formgroup/cs-radio/cs-radio.component.d.ts +1 -1
  86. package/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.d.ts +1 -1
  87. package/lib/ui-kit/formgroup/cs-select/cs-select.component.d.ts +1 -1
  88. package/lib/ui-kit/formgroup/cs-switch/cs-switch.component.d.ts +1 -1
  89. package/lib/ui-kit/no-data/no-data.component.d.ts +1 -1
  90. package/lib/ui-kit/pagination/pagination.component.d.ts +1 -1
  91. package/lib/ui-kit/popover/popover.component.d.ts +1 -1
  92. package/lib/ui-kit/popover/popover.directive.d.ts +1 -1
  93. package/lib/ui-kit/select/cs-option/cs-option.component.d.ts +1 -1
  94. package/lib/ui-kit/select/cs-select/cs-select.component.d.ts +1 -1
  95. package/lib/ui-kit/smiley-dialog/smiley-dialog.component.d.ts +1 -1
  96. package/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.d.ts +1 -1
  97. package/lib/ui-kit/tooltip/tooltip.directive.d.ts +1 -1
  98. package/lib/ui-kit/v-loader/loader/loader.component.d.ts +1 -1
  99. package/lib/ui-kit/v-loader/loader-inline/loader-inline.component.d.ts +1 -1
  100. package/package.json +6 -12
  101. package/esm2020/create-dashboard.mjs +0 -5
  102. package/esm2020/lib/configurations.mjs +0 -6
  103. package/esm2020/lib/create-dashboard-container/categories/categories.component.mjs +0 -209
  104. package/esm2020/lib/create-dashboard-container/configure-widgets/configure-widgets/configure-widgets.component.mjs +0 -545
  105. package/esm2020/lib/create-dashboard-container/create-dashboard.component.mjs +0 -1067
  106. package/esm2020/lib/create-dashboard-container/directives/scroll-in-view.directive.mjs +0 -35
  107. package/esm2020/lib/create-dashboard-container/form-group/form-group.component.mjs +0 -141
  108. package/esm2020/lib/create-dashboard-container/frequency/frequency.component.mjs +0 -305
  109. package/esm2020/lib/create-dashboard-container/responsibility-center/responsibility-center.component.mjs +0 -146
  110. package/esm2020/lib/create-dashboard-container/risk-categories/risk-categories.component.mjs +0 -194
  111. package/esm2020/lib/create-dashboard-container/services/auth.service.mjs +0 -29
  112. package/esm2020/lib/create-dashboard-container/services/configure-widgets.service.mjs +0 -224
  113. package/esm2020/lib/create-dashboard-container/services/create-dashboard.service.mjs +0 -123
  114. package/esm2020/lib/create-dashboard-container/services/pagination.service.mjs +0 -29
  115. package/esm2020/lib/create-dashboard-container/user-list/user-list.component.mjs +0 -414
  116. package/esm2020/lib/ui-kit/dashboard-footer/dashboard-footer/dashboard-footer.component.mjs +0 -53
  117. package/esm2020/lib/ui-kit/dialog/dialog-config.mjs +0 -3
  118. package/esm2020/lib/ui-kit/dialog/dialog-ref.mjs +0 -12
  119. package/esm2020/lib/ui-kit/dialog/dialog.component.mjs +0 -85
  120. package/esm2020/lib/ui-kit/dialog/dialog.service.mjs +0 -52
  121. package/esm2020/lib/ui-kit/dialog/insertion.directive.mjs +0 -16
  122. package/esm2020/lib/ui-kit/floating-bar/floating-bar.component.mjs +0 -52
  123. package/esm2020/lib/ui-kit/formgroup/click-outside.directive.mjs +0 -29
  124. package/esm2020/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.mjs +0 -27
  125. package/esm2020/lib/ui-kit/formgroup/cs-radio/cs-radio.component.mjs +0 -30
  126. package/esm2020/lib/ui-kit/formgroup/cs-select/cs-select.component.mjs +0 -100
  127. package/esm2020/lib/ui-kit/formgroup/cs-switch/cs-switch.component.mjs +0 -35
  128. package/esm2020/lib/ui-kit/no-data/no-data.component.mjs +0 -40
  129. package/esm2020/lib/ui-kit/pagination/pagination.component.mjs +0 -127
  130. package/esm2020/lib/ui-kit/popover/popover.component.mjs +0 -133
  131. package/esm2020/lib/ui-kit/popover/popover.directive.mjs +0 -86
  132. package/esm2020/lib/ui-kit/popover/popover.service.mjs +0 -17
  133. package/esm2020/lib/ui-kit/select/cs-option/cs-option.component.mjs +0 -36
  134. package/esm2020/lib/ui-kit/select/cs-select/cs-select.component.mjs +0 -89
  135. package/esm2020/lib/ui-kit/select/safe-html.pipe.mjs +0 -20
  136. package/esm2020/lib/ui-kit/services/cs-select.service.mjs +0 -15
  137. package/esm2020/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.mjs +0 -45
  138. package/esm2020/lib/ui-kit/tooltip/tooltip.directive.mjs +0 -153
  139. package/esm2020/lib/ui-kit/v-loader/loader/loader.component.mjs +0 -21
  140. package/esm2020/lib/ui-kit/v-loader/loader-inline/loader-inline.component.mjs +0 -21
  141. package/fesm2015/create-dashboard.mjs +0 -5195
  142. package/fesm2015/create-dashboard.mjs.map +0 -1
  143. package/fesm2020/create-dashboard.mjs +0 -5162
  144. package/fesm2020/create-dashboard.mjs.map +0 -1
  145. /package/{esm2020 → esm2022}/lib/create-dashboard-container/categories/categories-config.mjs +0 -0
  146. /package/{esm2020 → esm2022}/lib/create-dashboard-container/configure-widgets/configure-widgets/widget.interface.mjs +0 -0
  147. /package/{esm2020 → esm2022}/lib/create-dashboard-container/create-dashboard-config.mjs +0 -0
  148. /package/{esm2020 → esm2022}/lib/create-dashboard-container/interfaces/widget-data-model.mjs +0 -0
  149. /package/{esm2020 → esm2022}/lib/create-dashboard-container/risk-categories/risk-categories-config.mjs +0 -0
  150. /package/{esm2020 → esm2022}/lib/create-dashboard-container/user-list/user-list.config.mjs +0 -0
  151. /package/{esm2020 → esm2022}/lib/ui-kit/dashboard-footer/dashboard-footer-config.mjs +0 -0
  152. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
@@ -0,0 +1,145 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "../../ui-kit/formgroup/cs-checkbox/cs-checkbox.component";
5
+ import * as i3 from "@angular/forms";
6
+ import * as i4 from "../../ui-kit/tooltip/tooltip.directive";
7
+ import * as i5 from "../../ui-kit/dashboard-footer/dashboard-footer/dashboard-footer.component";
8
+ import * as i6 from "../../ui-kit/no-data/no-data.component";
9
+ import * as i7 from "../pipes/filter.pipe";
10
+ export class ResponsibilityCenterComponent {
11
+ saveSelectedList = new EventEmitter();
12
+ closeRcList = new EventEmitter();
13
+ responsibilityCentersList = [];
14
+ selectedResponsibilityCenters = [];
15
+ rcIdKey = '';
16
+ radioSelection = false;
17
+ selectedIds = [];
18
+ animation = false;
19
+ search = '';
20
+ footerDetails = {
21
+ selectedData: [],
22
+ nonRemovableList: [],
23
+ displayElementKey: 'item_name',
24
+ elementId: 'item_id',
25
+ singularText: 'Responsibility Center selected',
26
+ pluralText: 'Responsibility Centers selected',
27
+ showFrequency: false,
28
+ frequencyText: '',
29
+ isDisabled: false
30
+ };
31
+ constructor() { }
32
+ ngOnChanges() {
33
+ this.footerDetails.selectedData = this.selectedResponsibilityCenters;
34
+ this.selectedIds = this.selectedResponsibilityCenters.map((ele) => { if (ele[this.rcIdKey]) {
35
+ return ele[this.rcIdKey];
36
+ } });
37
+ }
38
+ ngOnInit() {
39
+ this.animation = true;
40
+ setTimeout(() => {
41
+ this.animation = false;
42
+ }, 300);
43
+ }
44
+ selectRc(rc, mode) {
45
+ if (this.radioSelection) {
46
+ if (mode) {
47
+ this.selectedIds = [];
48
+ this.selectedIds.push(rc);
49
+ }
50
+ this.setList();
51
+ }
52
+ else {
53
+ if (mode) {
54
+ this.selectedIds.push(rc);
55
+ const rcElement = this.responsibilityCentersList.findIndex((ele) => ele.item_id == rc);
56
+ if (rcElement !== -1) {
57
+ const parentRc = this.responsibilityCentersList[rcElement];
58
+ if (parentRc?.item_child_ids?.length > 0) {
59
+ parentRc.item_child_ids.forEach((childElement) => {
60
+ if (!this.selectedIds.includes(childElement)) {
61
+ this.selectedIds.push(childElement);
62
+ }
63
+ });
64
+ }
65
+ }
66
+ }
67
+ else {
68
+ const index = this.selectedIds.findIndex((element) => element == rc);
69
+ this.selectedIds.splice(index, 1);
70
+ const rcElement = this.responsibilityCentersList.findIndex((ele) => ele.item_id == rc);
71
+ if (rcElement !== -1) {
72
+ const parentRc = this.responsibilityCentersList[rcElement];
73
+ if (parentRc?.item_child_ids?.length > 0) {
74
+ parentRc.item_child_ids.forEach((childElement) => {
75
+ const removeIndex = this.selectedIds.findIndex((removeElement) => removeElement == childElement);
76
+ this.selectedIds.splice(removeIndex, 1);
77
+ });
78
+ }
79
+ }
80
+ }
81
+ this.setList();
82
+ }
83
+ }
84
+ deleteEvent(event) {
85
+ const index = this.selectedIds.findIndex((element) => element == event[this.rcIdKey]);
86
+ this.selectedIds.splice(index, 1);
87
+ this.setList();
88
+ }
89
+ selectAll(mode) {
90
+ if (mode) {
91
+ const list = [...this.responsibilityCentersList];
92
+ this.selectedIds = [];
93
+ list.forEach(element => {
94
+ this.selectedIds.push(element[this.rcIdKey]);
95
+ });
96
+ }
97
+ else {
98
+ this.selectedIds = [];
99
+ }
100
+ this.setList();
101
+ }
102
+ setList() {
103
+ const data = [];
104
+ const rcList = [...new Set(this.responsibilityCentersList)];
105
+ // cloneDeep(this.responsibilityCentersList);
106
+ const selectedIds = [...new Set(this.selectedIds)];
107
+ // cloneDeep(this.selectedIds);
108
+ rcList.forEach((element) => {
109
+ if (selectedIds.includes(element[this.rcIdKey])) {
110
+ data.push(element);
111
+ }
112
+ });
113
+ this.selectedResponsibilityCenters = data;
114
+ this.footerDetails.selectedData = this.selectedResponsibilityCenters;
115
+ }
116
+ checkSelectAll() {
117
+ const data = this.responsibilityCentersList.every((rc) => this.selectedIds.includes(rc[this.rcIdKey]));
118
+ return data;
119
+ }
120
+ save() {
121
+ this.saveSelectedList.emit(this.selectedIds);
122
+ }
123
+ closeResponsibilityCenterList() {
124
+ this.closeRcList.emit();
125
+ }
126
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResponsibilityCenterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
127
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ResponsibilityCenterComponent, selector: "app-responsibility-center", inputs: { responsibilityCentersList: "responsibilityCentersList", selectedResponsibilityCenters: "selectedResponsibilityCenters", rcIdKey: "rcIdKey", radioSelection: "radioSelection" }, outputs: { saveSelectedList: "saveSelectedList", closeRcList: "closeRcList" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"responsibility-center\" [class.animate-slideInRight]=\"animation\">\r\n <div class=\"responsibility-center-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\">\r\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select Responsibility Center(s)</div>\r\n </div>\r\n <div class=\"responsibility-center-body\">\r\n <div class=\"responsibility-center-search vx-mb-2\">\r\n <i class=\"icons\">&#xe90b;</i>\r\n <input type=\"text\" [(ngModel)]=\"search\" placeholder=\"Search Responsibility Center\">\r\n </div>\r\n\r\n <ng-container *ngIf=\"(responsibilityCentersList | filter:search) as searchList\">\r\n <div class=\"select-all\" *ngIf=\"searchList.length>1\">\r\n <app-cs-checkbox [ngValue]=\"checkSelectAll()\" (ngValueChange)=\"selectAll($event)\">\r\n <strong>{{checkSelectAll() ? 'Deselect All' : 'Select All'}}</strong>\r\n </app-cs-checkbox>\r\n </div>\r\n <ul class=\"responsibility-center-list\" *ngIf=\"searchList.length > 0\">\r\n <li *ngFor=\"let rc of searchList; let i = index\">\r\n <app-cs-checkbox [ngValue]=\"selectedIds.includes(rc.item_id)\" (ngValueChange)=\"selectRc(rc.item_id,$event)\">\r\n <ul class=\"responsibility-center-list-name\">\r\n <li *ngFor=\"let entity of rc.rc_name; let j = index\" [arTooltip]=\"entity\" placement=\"bottom-left\" delay=\"0\">\r\n <i class=\"icons\" *ngIf=\"j !== 0\">&#xe910;</i>\r\n {{entity}}\r\n <!-- <span class=\"name\">{{entity}}</span> -->\r\n </li> \r\n </ul>\r\n </app-cs-checkbox>\r\n </li>\r\n </ul>\r\n <app-no-data *ngIf=\"searchList.length == 0\"\r\n [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"'No data to display'\">\r\n </app-no-data>\r\n </ng-container>\r\n\r\n <div class=\"responsibility-center-footer\">\r\n <app-dashboard-footer \r\n [footerDetails] =\"footerDetails\"\r\n (cancelEvent)=\"closeRcList.emit()\"\r\n (deleteEvent) =\"selectRc($event.item_id,false)\"\r\n (submitEvent)=\"save()\"\r\n ></app-dashboard-footer>\r\n </div>\r\n </div>\r\n</div>", 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 .responsibility-center{background:#fff;border-right:1px solid #F1F1F1;position:fixed;inset:0 500px 0 0}::ng-deep .responsibility-center-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .responsibility-center-body{height:calc(100vh - 2.75rem);padding:2rem;position:relative}::ng-deep .responsibility-center-body .select-all{display:flex;padding-bottom:1rem}::ng-deep .responsibility-center-body .select-all app-cs-checkbox{display:flex}::ng-deep .responsibility-center-body .select-all app-cs-checkbox label span.value{font-weight:600!important;max-width:unset!important;font-size:12px!important}::ng-deep .responsibility-center-body .select-all app-cs-checkbox label span.value strong{color:#161b2f!important;font-weight:600!important}::ng-deep .responsibility-center-body ul{padding:0;margin:0}::ng-deep .responsibility-center-body ul.responsibility-center-list{display:block;height:calc(100vh - 256px);margin-bottom:16px;overflow:hidden;overflow-y:auto}::ng-deep .responsibility-center-body ul.responsibility-center-list::-webkit-scrollbar-track{background:transparent}::ng-deep .responsibility-center-body ul.responsibility-center-list li{width:100%;padding:0 0 1rem;list-style:none}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio{display:flex}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox label,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio label{width:100%}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox label span.value,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio label span.value{width:auto;justify-content:flex-start;line-height:18px!important}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox ul.responsibility-center-list-name,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio ul.responsibility-center-list-name{display:flex;justify-content:flex-start;width:auto;max-width:100%}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox ul.responsibility-center-list-name li,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio ul.responsibility-center-list-name li{list-style:none;color:#747576;font-size:12px;font-weight:400;width:auto;padding:0 8px 0 0;max-width:100%;display:block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox ul.responsibility-center-list-name li i,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio ul.responsibility-center-list-name li i{font-size:8px;padding-right:4px;color:#747576;position:relative}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox ul.responsibility-center-list-name li span.name,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio ul.responsibility-center-list-name li span.name{list-style:none;color:#747576;font-size:12px;font-weight:400;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;width:auto;min-width:calc(100% - 20px);padding:0}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox ul.responsibility-center-list-name li:first-child,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio ul.responsibility-center-list-name li:first-child{color:#1e5dd3;max-width:100%}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox ul.responsibility-center-list-name li:last-of-type,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio ul.responsibility-center-list-name li:last-of-type{color:#34aa44}::ng-deep .responsibility-center-search{position:relative}::ng-deep .responsibility-center-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 .responsibility-center-search input:focus{border-color:#1e5dd3}::ng-deep .responsibility-center-search i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1;font-size:12px}\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" }] });
128
+ }
129
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResponsibilityCenterComponent, decorators: [{
130
+ type: Component,
131
+ args: [{ selector: 'app-responsibility-center', template: "<div class=\"responsibility-center\" [class.animate-slideInRight]=\"animation\">\r\n <div class=\"responsibility-center-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\">\r\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select Responsibility Center(s)</div>\r\n </div>\r\n <div class=\"responsibility-center-body\">\r\n <div class=\"responsibility-center-search vx-mb-2\">\r\n <i class=\"icons\">&#xe90b;</i>\r\n <input type=\"text\" [(ngModel)]=\"search\" placeholder=\"Search Responsibility Center\">\r\n </div>\r\n\r\n <ng-container *ngIf=\"(responsibilityCentersList | filter:search) as searchList\">\r\n <div class=\"select-all\" *ngIf=\"searchList.length>1\">\r\n <app-cs-checkbox [ngValue]=\"checkSelectAll()\" (ngValueChange)=\"selectAll($event)\">\r\n <strong>{{checkSelectAll() ? 'Deselect All' : 'Select All'}}</strong>\r\n </app-cs-checkbox>\r\n </div>\r\n <ul class=\"responsibility-center-list\" *ngIf=\"searchList.length > 0\">\r\n <li *ngFor=\"let rc of searchList; let i = index\">\r\n <app-cs-checkbox [ngValue]=\"selectedIds.includes(rc.item_id)\" (ngValueChange)=\"selectRc(rc.item_id,$event)\">\r\n <ul class=\"responsibility-center-list-name\">\r\n <li *ngFor=\"let entity of rc.rc_name; let j = index\" [arTooltip]=\"entity\" placement=\"bottom-left\" delay=\"0\">\r\n <i class=\"icons\" *ngIf=\"j !== 0\">&#xe910;</i>\r\n {{entity}}\r\n <!-- <span class=\"name\">{{entity}}</span> -->\r\n </li> \r\n </ul>\r\n </app-cs-checkbox>\r\n </li>\r\n </ul>\r\n <app-no-data *ngIf=\"searchList.length == 0\"\r\n [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"'No data to display'\">\r\n </app-no-data>\r\n </ng-container>\r\n\r\n <div class=\"responsibility-center-footer\">\r\n <app-dashboard-footer \r\n [footerDetails] =\"footerDetails\"\r\n (cancelEvent)=\"closeRcList.emit()\"\r\n (deleteEvent) =\"selectRc($event.item_id,false)\"\r\n (submitEvent)=\"save()\"\r\n ></app-dashboard-footer>\r\n </div>\r\n </div>\r\n</div>", 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 .responsibility-center{background:#fff;border-right:1px solid #F1F1F1;position:fixed;inset:0 500px 0 0}::ng-deep .responsibility-center-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .responsibility-center-body{height:calc(100vh - 2.75rem);padding:2rem;position:relative}::ng-deep .responsibility-center-body .select-all{display:flex;padding-bottom:1rem}::ng-deep .responsibility-center-body .select-all app-cs-checkbox{display:flex}::ng-deep .responsibility-center-body .select-all app-cs-checkbox label span.value{font-weight:600!important;max-width:unset!important;font-size:12px!important}::ng-deep .responsibility-center-body .select-all app-cs-checkbox label span.value strong{color:#161b2f!important;font-weight:600!important}::ng-deep .responsibility-center-body ul{padding:0;margin:0}::ng-deep .responsibility-center-body ul.responsibility-center-list{display:block;height:calc(100vh - 256px);margin-bottom:16px;overflow:hidden;overflow-y:auto}::ng-deep .responsibility-center-body ul.responsibility-center-list::-webkit-scrollbar-track{background:transparent}::ng-deep .responsibility-center-body ul.responsibility-center-list li{width:100%;padding:0 0 1rem;list-style:none}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio{display:flex}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox label,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio label{width:100%}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox label span.value,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio label span.value{width:auto;justify-content:flex-start;line-height:18px!important}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox ul.responsibility-center-list-name,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio ul.responsibility-center-list-name{display:flex;justify-content:flex-start;width:auto;max-width:100%}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox ul.responsibility-center-list-name li,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio ul.responsibility-center-list-name li{list-style:none;color:#747576;font-size:12px;font-weight:400;width:auto;padding:0 8px 0 0;max-width:100%;display:block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox ul.responsibility-center-list-name li i,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio ul.responsibility-center-list-name li i{font-size:8px;padding-right:4px;color:#747576;position:relative}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox ul.responsibility-center-list-name li span.name,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio ul.responsibility-center-list-name li span.name{list-style:none;color:#747576;font-size:12px;font-weight:400;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;width:auto;min-width:calc(100% - 20px);padding:0}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox ul.responsibility-center-list-name li:first-child,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio ul.responsibility-center-list-name li:first-child{color:#1e5dd3;max-width:100%}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox ul.responsibility-center-list-name li:last-of-type,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio ul.responsibility-center-list-name li:last-of-type{color:#34aa44}::ng-deep .responsibility-center-search{position:relative}::ng-deep .responsibility-center-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 .responsibility-center-search input:focus{border-color:#1e5dd3}::ng-deep .responsibility-center-search i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1;font-size:12px}\n"] }]
132
+ }], ctorParameters: function () { return []; }, propDecorators: { saveSelectedList: [{
133
+ type: Output
134
+ }], closeRcList: [{
135
+ type: Output
136
+ }], responsibilityCentersList: [{
137
+ type: Input
138
+ }], selectedResponsibilityCenters: [{
139
+ type: Input
140
+ }], rcIdKey: [{
141
+ type: Input
142
+ }], radioSelection: [{
143
+ type: Input
144
+ }] } });
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2liaWxpdHktY2VudGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi9jcmVhdGUtZGFzaGJvYXJkLWNvbnRhaW5lci9yZXNwb25zaWJpbGl0eS1jZW50ZXIvcmVzcG9uc2liaWxpdHktY2VudGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi9jcmVhdGUtZGFzaGJvYXJkLWNvbnRhaW5lci9yZXNwb25zaWJpbGl0eS1jZW50ZXIvcmVzcG9uc2liaWxpdHktY2VudGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7QUFRMUYsTUFBTSxPQUFPLDZCQUE2QjtJQUM5QixnQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ3RDLFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ2xDLHlCQUF5QixHQUFHLEVBQUUsQ0FBQztJQUMvQiw2QkFBNkIsR0FBRyxFQUFFLENBQUM7SUFDbkMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNiLGNBQWMsR0FBRyxLQUFLLENBQUM7SUFHaEMsV0FBVyxHQUFVLEVBQUUsQ0FBQztJQUN4QixTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFDWixhQUFhLEdBQTBCO1FBQ3JDLFlBQVksRUFBRSxFQUFFO1FBQ2hCLGdCQUFnQixFQUFDLEVBQUU7UUFDbkIsaUJBQWlCLEVBQUUsV0FBVztRQUM5QixTQUFTLEVBQUUsU0FBUztRQUNwQixZQUFZLEVBQUUsZ0NBQWdDO1FBQzlDLFVBQVUsRUFBRSxpQ0FBaUM7UUFD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QUFwQixNQUFNO2dCQUNFLHlCQUF5QjtzQkFBakMsS0FBSztnQkFDRyw2QkFBNkI7c0JBQXJDLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGFzaGJvYXJkRm9vdGVyQ29uZmlnIH0gZnJvbSAnLi4vLi4vdWkta2l0L2Rhc2hib2FyZC1mb290ZXIvZGFzaGJvYXJkLWZvb3Rlci1jb25maWcnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtcmVzcG9uc2liaWxpdHktY2VudGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcmVzcG9uc2liaWxpdHktY2VudGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9yZXNwb25zaWJpbGl0eS1jZW50ZXIuY29tcG9uZW50Lmxlc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVzcG9uc2liaWxpdHlDZW50ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgQE91dHB1dCgpIHNhdmVTZWxlY3RlZExpc3QgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNsb3NlUmNMaXN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBJbnB1dCgpIHJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3QgPSBbXTtcclxuICBASW5wdXQoKSBzZWxlY3RlZFJlc3BvbnNpYmlsaXR5Q2VudGVycyA9IFtdO1xyXG4gIEBJbnB1dCgpIHJjSWRLZXkgPSAnJztcclxuICBASW5wdXQoKSByYWRpb1NlbGVjdGlvbiA9IGZhbHNlO1xyXG5cclxuXHJcbiAgc2VsZWN0ZWRJZHM6IGFueVtdID0gW107XHJcbiAgYW5pbWF0aW9uID0gZmFsc2U7XHJcbiAgc2VhcmNoID0gJyc7XHJcbiAgZm9vdGVyRGV0YWlsczogRGFzaGJvYXJkRm9vdGVyQ29uZmlnID0ge1xyXG4gICAgc2VsZWN0ZWREYXRhOiBbXSxcclxuICAgIG5vblJlbW92YWJsZUxpc3Q6W10sXHJcbiAgICBkaXNwbGF5RWxlbWVudEtleTogJ2l0ZW1fbmFtZScsXHJcbiAgICBlbGVtZW50SWQ6ICdpdGVtX2lkJyxcclxuICAgIHNpbmd1bGFyVGV4dDogJ1Jlc3BvbnNpYmlsaXR5IENlbnRlciBzZWxlY3RlZCcsXHJcbiAgICBwbHVyYWxUZXh0OiAnUmVzcG9uc2liaWxpdHkgQ2VudGVycyBzZWxlY3RlZCcsXHJcbiAgICBzaG93RnJlcXVlbmN5OiBmYWxzZSxcclxuICAgIGZyZXF1ZW5jeVRleHQ6ICcnLFxyXG4gICAgaXNEaXNhYmxlZDogZmFsc2VcclxuXHJcbiAgfTtcclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9vdGVyRGV0YWlscy5zZWxlY3RlZERhdGEgPSB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlDZW50ZXJzO1xyXG4gICAgdGhpcy5zZWxlY3RlZElkcyA9IHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNlbnRlcnMubWFwKChlbGU6IGFueSkgPT4geyBpZiAoZWxlW3RoaXMucmNJZEtleV0pIHsgcmV0dXJuIGVsZVt0aGlzLnJjSWRLZXldOyB9IH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmFuaW1hdGlvbiA9IHRydWU7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5hbmltYXRpb24gPSBmYWxzZTtcclxuICAgIH0sIDMwMCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RSYyhyYzogYW55LCBtb2RlOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLnJhZGlvU2VsZWN0aW9uKSB7XHJcbiAgICAgIGlmIChtb2RlKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZElkcyA9IFtdO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMucHVzaChyYyk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zZXRMaXN0KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAobW9kZSkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMucHVzaChyYyk7XHJcbiAgICAgICAgY29uc3QgcmNFbGVtZW50ID0gdGhpcy5yZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0LmZpbmRJbmRleCgoZWxlOiBhbnkpID0+IGVsZS5pdGVtX2lkID09IHJjKTtcclxuICAgICAgICBpZiAocmNFbGVtZW50ICE9PSAtMSkge1xyXG4gICAgICAgICAgY29uc3QgcGFyZW50UmM6IGFueSA9IHRoaXMucmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdFtyY0VsZW1lbnRdO1xyXG4gICAgICAgICAgaWYgKHBhcmVudFJjPy5pdGVtX2NoaWxkX2lkcz8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBwYXJlbnRSYy5pdGVtX2NoaWxkX2lkcy5mb3JFYWNoKChjaGlsZEVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmKCF0aGlzLnNlbGVjdGVkSWRzLmluY2x1ZGVzKGNoaWxkRWxlbWVudCkpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZElkcy5wdXNoKGNoaWxkRWxlbWVudCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZElkcy5maW5kSW5kZXgoKGVsZW1lbnQ6IGFueSkgPT4gZWxlbWVudCA9PSByYyk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZElkcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIGNvbnN0IHJjRWxlbWVudCA9IHRoaXMucmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdC5maW5kSW5kZXgoKGVsZTogYW55KSA9PiBlbGUuaXRlbV9pZCA9PSByYyk7XHJcbiAgICAgICAgaWYgKHJjRWxlbWVudCAhPT0gLTEpIHtcclxuICAgICAgICAgIGNvbnN0IHBhcmVudFJjOiBhbnkgPSB0aGlzLnJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3RbcmNFbGVtZW50XTtcclxuICAgICAgICAgIGlmIChwYXJlbnRSYz8uaXRlbV9jaGlsZF9pZHM/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgcGFyZW50UmMuaXRlbV9jaGlsZF9pZHMuZm9yRWFjaCgoY2hpbGRFbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCByZW1vdmVJbmRleCA9IHRoaXMuc2VsZWN0ZWRJZHMuZmluZEluZGV4KChyZW1vdmVFbGVtZW50OiBhbnkpID0+IHJlbW92ZUVsZW1lbnQgPT0gY2hpbGRFbGVtZW50KTtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSWRzLnNwbGljZShyZW1vdmVJbmRleCwgMSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zZXRMaXN0KCk7XHJcbiAgICB9XHJcblxyXG5cclxuICB9XHJcbiAgZGVsZXRlRXZlbnQoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGVkSWRzLmZpbmRJbmRleCgoZWxlbWVudDogYW55KSA9PiBlbGVtZW50ID09IGV2ZW50W3RoaXMucmNJZEtleV0pO1xyXG4gICAgdGhpcy5zZWxlY3RlZElkcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgdGhpcy5zZXRMaXN0KCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RBbGwobW9kZTogYW55KSB7XHJcbiAgICBpZiAobW9kZSkge1xyXG4gICAgICBjb25zdCBsaXN0ID0gWy4uLnRoaXMucmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdF07XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJZHMgPSBbXTtcclxuICAgICAgbGlzdC5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMucHVzaChlbGVtZW50W3RoaXMucmNJZEtleV0pO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJZHMgPSBbXTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0TGlzdCgpO1xyXG4gIH1cclxuXHJcblxyXG4gIHNldExpc3QoKSB7XHJcbiAgICBjb25zdCBkYXRhOiBhbnkgPSBbXTtcclxuICAgIGNvbnN0IHJjTGlzdCA9IFsuLi5uZXcgU2V0KHRoaXMucmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdCldXHJcbiAgICAvLyBjbG9uZURlZXAodGhpcy5yZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0KTtcclxuICAgIGNvbnN0IHNlbGVjdGVkSWRzID0gWy4uLm5ldyBTZXQodGhpcy5zZWxlY3RlZElkcyldXHJcbiAgICAvLyBjbG9uZURlZXAodGhpcy5zZWxlY3RlZElkcyk7XHJcbiAgICByY0xpc3QuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgIGlmIChzZWxlY3RlZElkcy5pbmNsdWRlcyhlbGVtZW50W3RoaXMucmNJZEtleV0pKSB7XHJcbiAgICAgICAgZGF0YS5wdXNoKGVsZW1lbnQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNlbnRlcnMgPSBkYXRhO1xyXG4gICAgdGhpcy5mb290ZXJEZXRhaWxzLnNlbGVjdGVkRGF0YSA9IHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNlbnRlcnM7XHJcbiAgfVxyXG5cclxuICBjaGVja1NlbGVjdEFsbCgpIHtcclxuICAgIGNvbnN0IGRhdGEgPSB0aGlzLnJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3QuZXZlcnkoKHJjOiBhbnkpID0+IHRoaXMuc2VsZWN0ZWRJZHMuaW5jbHVkZXMocmNbdGhpcy5yY0lkS2V5XSkpO1xyXG4gICAgcmV0dXJuIGRhdGE7XHJcbiAgfVxyXG5cclxuICBzYXZlKCkge1xyXG4gICAgdGhpcy5zYXZlU2VsZWN0ZWRMaXN0LmVtaXQodGhpcy5zZWxlY3RlZElkcyk7XHJcbiAgfVxyXG5cclxuICBjbG9zZVJlc3BvbnNpYmlsaXR5Q2VudGVyTGlzdCgpIHtcclxuICAgIHRoaXMuY2xvc2VSY0xpc3QuZW1pdCgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicmVzcG9uc2liaWxpdHktY2VudGVyXCIgW2NsYXNzLmFuaW1hdGUtc2xpZGVJblJpZ2h0XT1cImFuaW1hdGlvblwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJlc3BvbnNpYmlsaXR5LWNlbnRlci1oZWFkIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuIHZ4LXBsLTQgdngtcHItNFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xNCB2eC1mdy01MDAgdngtbGFiZWwtdHh0XCI+U2VsZWN0IFJlc3BvbnNpYmlsaXR5IENlbnRlcihzKTwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmVzcG9uc2liaWxpdHktY2VudGVyLWJvZHlcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicmVzcG9uc2liaWxpdHktY2VudGVyLXNlYXJjaCB2eC1tYi0yXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBiOzwvaT5cclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJzZWFyY2hcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaCBSZXNwb25zaWJpbGl0eSBDZW50ZXJcIj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihyZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0IHwgZmlsdGVyOnNlYXJjaCkgYXMgc2VhcmNoTGlzdFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0LWFsbFwiICpuZ0lmPVwic2VhcmNoTGlzdC5sZW5ndGg+MVwiPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1jcy1jaGVja2JveCBbbmdWYWx1ZV09XCJjaGVja1NlbGVjdEFsbCgpXCIgKG5nVmFsdWVDaGFuZ2UpPVwic2VsZWN0QWxsKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPnt7Y2hlY2tTZWxlY3RBbGwoKSA/ICdEZXNlbGVjdCBBbGwnIDogJ1NlbGVjdCBBbGwnfX08L3N0cm9uZz5cclxuICAgICAgICAgICAgICAgIDwvYXBwLWNzLWNoZWNrYm94PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPHVsIGNsYXNzPVwicmVzcG9uc2liaWxpdHktY2VudGVyLWxpc3RcIiAqbmdJZj1cInNlYXJjaExpc3QubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCByYyBvZiBzZWFyY2hMaXN0OyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGFwcC1jcy1jaGVja2JveCBbbmdWYWx1ZV09XCJzZWxlY3RlZElkcy5pbmNsdWRlcyhyYy5pdGVtX2lkKVwiIChuZ1ZhbHVlQ2hhbmdlKT1cInNlbGVjdFJjKHJjLml0ZW1faWQsJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJyZXNwb25zaWJpbGl0eS1jZW50ZXItbGlzdC1uYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGVudGl0eSBvZiByYy5yY19uYW1lOyBsZXQgaiA9IGluZGV4XCIgW2FyVG9vbHRpcF09XCJlbnRpdHlcIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIGRlbGF5PVwiMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAgKm5nSWY9XCJqICE9PSAwXCI+JiN4ZTkxMDs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tlbnRpdHl9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJuYW1lXCI+e3tlbnRpdHl9fTwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICA8L2FwcC1jcy1jaGVja2JveD5cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgIDxhcHAtbm8tZGF0YSAgKm5nSWY9XCJzZWFyY2hMaXN0Lmxlbmd0aCA9PSAwXCJcclxuICAgICAgICAgICAgW25vRGF0YUltYWdlXT1cIidodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvc2VhcmNoLWRhdGEuc3ZnJ1wiIFtub0RhdGFUZXh0XT1cIidObyBkYXRhIHRvIGRpc3BsYXknXCI+XHJcbiAgICAgICAgICAgIDwvYXBwLW5vLWRhdGE+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZXNwb25zaWJpbGl0eS1jZW50ZXItZm9vdGVyXCI+XHJcbiAgICAgICAgICAgIDxhcHAtZGFzaGJvYXJkLWZvb3RlciBcclxuICAgICAgICAgICAgW2Zvb3RlckRldGFpbHNdID1cImZvb3RlckRldGFpbHNcIlxyXG4gICAgICAgICAgICAoY2FuY2VsRXZlbnQpPVwiY2xvc2VSY0xpc3QuZW1pdCgpXCJcclxuICAgICAgICAgICAgKGRlbGV0ZUV2ZW50KSA9XCJzZWxlY3RSYygkZXZlbnQuaXRlbV9pZCxmYWxzZSlcIlxyXG4gICAgICAgICAgICAoc3VibWl0RXZlbnQpPVwic2F2ZSgpXCJcclxuICAgICAgICAgICAgPjwvYXBwLWRhc2hib2FyZC1mb290ZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
@@ -0,0 +1,195 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "../../ui-kit/formgroup/cs-checkbox/cs-checkbox.component";
5
+ import * as i3 from "@angular/forms";
6
+ import * as i4 from "../../ui-kit/tooltip/tooltip.directive";
7
+ import * as i5 from "../../ui-kit/dashboard-footer/dashboard-footer/dashboard-footer.component";
8
+ import * as i6 from "../../ui-kit/no-data/no-data.component";
9
+ import * as i7 from "../pipes/filter.pipe";
10
+ export class RiskCategoriesComponent {
11
+ categoryList = {
12
+ strategic: {
13
+ list: [],
14
+ selectedList: [],
15
+ },
16
+ operational: {
17
+ list: [],
18
+ selectedList: [],
19
+ },
20
+ compliance: {
21
+ list: [],
22
+ selectedList: [],
23
+ },
24
+ others: {
25
+ list: [],
26
+ selectedList: [],
27
+ }
28
+ };
29
+ allCategories = [];
30
+ categoryIdKey;
31
+ selectedCategories = [];
32
+ search = '';
33
+ activeTab = "strategic";
34
+ selectedIds = [];
35
+ animation = false;
36
+ blockWidth;
37
+ footerDetails = {
38
+ selectedData: [],
39
+ nonRemovableList: [],
40
+ displayElementKey: 'category_name',
41
+ elementId: 'category_id',
42
+ singularText: 'Risk Category selected',
43
+ pluralText: 'Risk Categories selected',
44
+ showFrequency: false,
45
+ frequencyText: '',
46
+ isDisabled: false
47
+ };
48
+ saveSelectedCategory = new EventEmitter();
49
+ closeList = new EventEmitter();
50
+ closeCategoriesList = new EventEmitter();
51
+ constructor() { }
52
+ ngOnInit() {
53
+ this.animation = true;
54
+ setTimeout(() => {
55
+ this.animation = false;
56
+ }, 300);
57
+ this.selectedIds = [];
58
+ if (this.selectedCategories) {
59
+ this.selectedCategories.forEach(element => {
60
+ this.selectedIds.push(element[this.categoryIdKey]);
61
+ });
62
+ }
63
+ this.setList();
64
+ }
65
+ selectCategory(mode, activeTab, category) {
66
+ if (mode) {
67
+ this.selectedIds.push(category[this.categoryIdKey]);
68
+ }
69
+ else {
70
+ const index = this.selectedIds.findIndex((element) => element == category[this.categoryIdKey]);
71
+ this.selectedIds.splice(index, 1);
72
+ }
73
+ this.setList();
74
+ }
75
+ deleteEvent(event) {
76
+ const index = this.selectedIds.findIndex((element) => element == event[this.categoryIdKey]);
77
+ this.selectedIds.splice(index, 1);
78
+ this.setList();
79
+ }
80
+ selectAll(mode, activeTab) {
81
+ if (mode) {
82
+ if (activeTab === "strategic" || activeTab === "operational" || activeTab === "compliance" || activeTab === "others") {
83
+ const list = this.categoryList[activeTab].list;
84
+ list.forEach(element => {
85
+ if (!this.selectedIds.includes(element[this.categoryIdKey])) {
86
+ this.selectedIds.push(element[this.categoryIdKey]);
87
+ }
88
+ });
89
+ }
90
+ }
91
+ else {
92
+ if (activeTab === "strategic" || activeTab === "operational" || activeTab === "compliance" || activeTab === "others") {
93
+ const list = [...this.categoryList[activeTab].list];
94
+ list.forEach(element => {
95
+ if (this.selectedIds.includes(element[this.categoryIdKey])) {
96
+ let idIndex = this.selectedIds.findIndex((id) => id == element[this.categoryIdKey]);
97
+ this.selectedIds.splice(idIndex, 1);
98
+ }
99
+ });
100
+ }
101
+ }
102
+ this.setList();
103
+ }
104
+ setList() {
105
+ const data = [];
106
+ const categoryList = [...new Set(this.allCategories)];
107
+ // cloneDeep(this.allCategories)
108
+ const selectedIds = [...new Set(this.selectedIds)];
109
+ // cloneDeep(this.selectedIds);
110
+ this.categoryList.strategic.selectedList = [];
111
+ this.categoryList.operational.selectedList = [];
112
+ this.categoryList.compliance.selectedList = [];
113
+ this.categoryList.others.selectedList = [];
114
+ categoryList.forEach((element) => {
115
+ if (selectedIds.includes(element[this.categoryIdKey])) {
116
+ data.push(element);
117
+ }
118
+ });
119
+ this.selectedCategories = data;
120
+ this.footerDetails.selectedData = data;
121
+ this.categoryList.strategic.list.forEach((category) => {
122
+ if (selectedIds.includes(category[this.categoryIdKey])) {
123
+ this.categoryList.strategic.selectedList.push(category);
124
+ }
125
+ });
126
+ this.categoryList.operational.list.forEach((category) => {
127
+ if (selectedIds.includes(category[this.categoryIdKey])) {
128
+ this.categoryList.operational.selectedList.push(category);
129
+ }
130
+ });
131
+ this.categoryList.compliance.list.forEach((category) => {
132
+ if (selectedIds.includes(category[this.categoryIdKey])) {
133
+ this.categoryList.compliance.selectedList.push(category);
134
+ }
135
+ });
136
+ this.categoryList.others.list.forEach((category) => {
137
+ if (selectedIds.includes(category[this.categoryIdKey])) {
138
+ this.categoryList.others.selectedList.push(category);
139
+ }
140
+ });
141
+ if (!this.activeTab) {
142
+ this.setActiveTab();
143
+ }
144
+ }
145
+ setActiveTab() {
146
+ if (this.categoryList.strategic.selectedList.length > 0) {
147
+ this.activeTab = 'strategic';
148
+ }
149
+ else if (this.categoryList.operational.selectedList.length > 0) {
150
+ this.activeTab = 'operational';
151
+ }
152
+ else if (this.categoryList.compliance.selectedList.length > 0) {
153
+ this.activeTab = 'compliance';
154
+ }
155
+ else if (this.categoryList.others.selectedList.length > 0) {
156
+ this.activeTab = 'others';
157
+ }
158
+ else {
159
+ this.activeTab = 'strategic';
160
+ }
161
+ }
162
+ checkSelectAll(activeTab) {
163
+ if (activeTab === "strategic" || activeTab === "operational" || activeTab === "compliance" || activeTab === "others") {
164
+ const data = this.categoryList[activeTab].list.every((user) => this.selectedIds.includes(user[this.categoryIdKey]));
165
+ return data;
166
+ }
167
+ }
168
+ save() {
169
+ this.saveSelectedCategory.emit(this.selectedCategories);
170
+ }
171
+ close() {
172
+ this.closeCategoriesList.emit();
173
+ }
174
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RiskCategoriesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
175
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RiskCategoriesComponent, selector: "app-risk-categories", inputs: { categoryList: "categoryList", allCategories: "allCategories", categoryIdKey: "categoryIdKey", selectedCategories: "selectedCategories" }, outputs: { saveSelectedCategory: "saveSelectedCategory", closeList: "closeList", closeCategoriesList: "closeCategoriesList" }, ngImport: i0, template: "<div class=\"risk-category-list\" [class.animate-slideInRight]=\"animation\">\r\n <div class=\"risk-category-list-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\">\r\n <span class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select Risk Category(s)</span>\r\n </div>\r\n <div class=\"risk-category-list-mid\">\r\n <div class=\"vx-d-flex vx-mb-2\">\r\n <div class=\"risk-category-list-card\" [class.active]=\"activeTab == 'strategic'\" (click)=\"activeTab = 'strategic'\">\r\n <div class=\"left\">\r\n <label>strategic</label>\r\n <p *ngIf=\"categoryList?.strategic?.selectedList?.length != 0\">\r\n {{categoryList?.strategic?.selectedList?.length}}\r\n {{(categoryList?.strategic?.selectedList?.length==1)?'Category':'Categories'}} selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{categoryList?.strategic?.list?.length}}</span>\r\n </div>\r\n <div class=\"risk-category-list-card\" [class.active]=\"activeTab == 'operational'\" (click)=\"activeTab = 'operational'\">\r\n <div class=\"left\">\r\n <label>operational</label>\r\n <p *ngIf=\"categoryList?.operational?.selectedList?.length != 0\">\r\n {{categoryList?.operational?.selectedList?.length}}\r\n {{(categoryList?.operational?.selectedList?.length==1)?'Category':'Categories'}} selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{categoryList?.operational?.list?.length}}</span>\r\n </div>\r\n <div class=\"risk-category-list-card\" [class.active]=\"activeTab == 'compliance'\" (click)=\"activeTab = 'compliance'\">\r\n <div class=\"left\">\r\n <label>compliance</label>\r\n <p *ngIf=\"categoryList?.compliance?.selectedList?.length != 0\">\r\n {{categoryList?.compliance?.selectedList?.length}}\r\n {{(categoryList?.compliance?.selectedList?.length==1)?'Category':'Categories'}} selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{categoryList?.compliance?.list?.length}}</span>\r\n </div>\r\n <div class=\"risk-category-list-card\" [class.active]=\"activeTab == 'others'\" (click)=\"activeTab = 'others'\">\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 {{(categoryList?.others?.selectedList?.length==1)?'Category':'Categories'}} selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{categoryList?.others?.list?.length}}</span>\r\n </div>\r\n </div>\r\n \r\n <div class=\"risk-category-list-search vx-mb-2\">\r\n <i class=\"icons\">&#xe90b;</i>\r\n <input type=\"text\" [(ngModel)]=\"search\" placeholder=\"Search Risk Category\" />\r\n </div>\r\n\r\n <ng-container *ngIf=\"(categoryList[activeTab]?.list | filter: search) as searchList\">\r\n <div class=\"select-all\" *ngIf=\"searchList.length > 1\">\r\n <app-cs-checkbox [ngValue]=\"checkSelectAll(activeTab)\" (ngValueChange)=\"selectAll($event,activeTab)\">\r\n <strong>{{checkSelectAll(activeTab) ? 'Deselect All' : 'Select All'}}</strong>\r\n </app-cs-checkbox>\r\n </div>\r\n <div class=\"risk-category-list-item vx-mb-4\" [class.with-selectAll]=\"searchList.length > 1\" *ngIf=\"searchList.length > 0\">\r\n <ul class=\"risk-category-list-item-ul vx-m-0 vx-p-0\">\r\n <li class=\"vx-mb-4\" *ngFor=\"let category of searchList\" >\r\n <app-cs-checkbox [ngValue]=\"selectedIds.includes(category[categoryIdKey])\"\r\n (ngValueChange)=\"selectCategory($event,activeTab,category)\">\r\n <ul class=\"categories\">\r\n <li [arTooltip]=\"category.category_name\" placement=\"bottom-left\" delay=\"0\">{{category.category_name}}</li>\r\n </ul>\r\n </app-cs-checkbox>\r\n </li>\r\n </ul>\r\n </div>\r\n <app-no-data *ngIf=\"searchList.length == 0\" [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"'No data to display'\">\r\n </app-no-data>\r\n </ng-container>\r\n\r\n <app-dashboard-footer \r\n [footerDetails] =\"footerDetails\"\r\n (cancelEvent)=\"close()\"\r\n (deleteEvent) =\"deleteEvent($event)\"\r\n (submitEvent)=\"save()\"\r\n ></app-dashboard-footer>\r\n </div>\r\n</div>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .risk-category-list{background:#fff;border-right:1px solid #F1F1F1;position:fixed;inset:0 500px 0 0}::ng-deep .risk-category-list-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .risk-category-list-card{box-shadow:0 0 2px #00000029;border-radius:2px;height:56px;padding:12px;width:100%;display:flex;align-items:center;justify-content:space-between;cursor:pointer;position:relative}::ng-deep .risk-category-list-card .left{display:flex;flex-wrap:wrap;pointer-events:none}::ng-deep .risk-category-list-card .left label{color:#747576;font-size:11px;font-weight:600;line-height:16px;text-transform:uppercase;width:100%}::ng-deep .risk-category-list-card .left p{color:#161b2f;font-size:11px;font-weight:600;line-height:16px;margin:0}::ng-deep .risk-category-list-card span.counter{display:flex;height:32px;min-width:32px;border-radius:2px;background:#042e7d;color:#fff;font-size:11px;font-weight:500;line-height:32px;justify-content:center;align-items:center;padding:0 4px;pointer-events:none}::ng-deep .risk-category-list-card.active{box-shadow:0 3px 12px #1e5dd326;z-index:1;pointer-events:none}::ng-deep .risk-category-list-card.active span.counter{background:#f1f1f1;color:#042e7d}::ng-deep .risk-category-list-card+.risk-category-list-card{margin-left:4px}::ng-deep .risk-category-list-mid{height:calc(100vh - 2.75rem);padding:2rem;position:relative}::ng-deep .risk-category-list-mid::-webkit-scrollbar-track{background:transparent}::ng-deep .risk-category-list-mid .select-all{display:flex;padding-bottom:1rem}::ng-deep .risk-category-list-mid .select-all app-cs-checkbox{display:flex}::ng-deep .risk-category-list-mid .select-all app-cs-checkbox .checkbox-item .value{max-width:unset!important;font-size:12px!important}::ng-deep .risk-category-list-mid .select-all app-cs-checkbox .checkbox-item .value strong{font-weight:600;color:#161b2f}::ng-deep .risk-category-list-mid app-no-data .no-data-wrapper{height:calc(100vh - 260px)}::ng-deep .risk-category-list-search{position:relative}::ng-deep .risk-category-list-search input{height:2.75rem;line-height:1.5rem;padding:.5rem 1rem .5rem 2.5rem;outline:none;border:1px solid #7475763f;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .risk-category-list-search input:focus{border-color:#1e5dd3}::ng-deep .risk-category-list-search i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1;font-size:12px}::ng-deep .risk-category-list-item{list-style-type:none;display:block;height:calc(100vh - 288px);overflow:hidden;overflow-y:auto}::ng-deep .risk-category-list-item::-webkit-scrollbar-track{background:transparent}::ng-deep .risk-category-list-item.with-selectAll{height:calc(100vh - 320px)}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul{padding:0;margin:0}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li{list-style:none}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox{display:flex}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label{width:100%}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label.radio-item span.value,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label.radio-item span.value,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label.checkbox-item span.value,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label.checkbox-item span.value{width:auto;justify-content:flex-start}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories{display:flex;max-width:100%;padding:0;margin:0;justify-content:flex-start;width:auto}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories li,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories li,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories li,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories li{display:block;padding:0 16px 0 0;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;color:#161b2f}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.CsCheckboxComponent, selector: "app-cs-checkbox", inputs: ["disabled", "ngValue", "value"], outputs: ["ngValueChange"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.ToolTipDirective, selector: "[arTooltip]", inputs: ["arTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i5.DashboardFooterComponent, selector: "app-dashboard-footer", inputs: ["footerDetails", "userButtonColor"], outputs: ["cancelEvent", "submitEvent", "deleteEvent"] }, { kind: "component", type: i6.NoDataComponent, selector: "app-no-data", inputs: ["action", "noDataImage", "noDataText", "noDataButton", "noDataSecButton", "altText", "smallButton", "buttonIcon", "iconClass"], outputs: ["buttonAction"] }, { kind: "pipe", type: i7.FilterPipe, name: "filter" }] });
176
+ }
177
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RiskCategoriesComponent, decorators: [{
178
+ type: Component,
179
+ args: [{ selector: 'app-risk-categories', template: "<div class=\"risk-category-list\" [class.animate-slideInRight]=\"animation\">\r\n <div class=\"risk-category-list-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\">\r\n <span class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select Risk Category(s)</span>\r\n </div>\r\n <div class=\"risk-category-list-mid\">\r\n <div class=\"vx-d-flex vx-mb-2\">\r\n <div class=\"risk-category-list-card\" [class.active]=\"activeTab == 'strategic'\" (click)=\"activeTab = 'strategic'\">\r\n <div class=\"left\">\r\n <label>strategic</label>\r\n <p *ngIf=\"categoryList?.strategic?.selectedList?.length != 0\">\r\n {{categoryList?.strategic?.selectedList?.length}}\r\n {{(categoryList?.strategic?.selectedList?.length==1)?'Category':'Categories'}} selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{categoryList?.strategic?.list?.length}}</span>\r\n </div>\r\n <div class=\"risk-category-list-card\" [class.active]=\"activeTab == 'operational'\" (click)=\"activeTab = 'operational'\">\r\n <div class=\"left\">\r\n <label>operational</label>\r\n <p *ngIf=\"categoryList?.operational?.selectedList?.length != 0\">\r\n {{categoryList?.operational?.selectedList?.length}}\r\n {{(categoryList?.operational?.selectedList?.length==1)?'Category':'Categories'}} selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{categoryList?.operational?.list?.length}}</span>\r\n </div>\r\n <div class=\"risk-category-list-card\" [class.active]=\"activeTab == 'compliance'\" (click)=\"activeTab = 'compliance'\">\r\n <div class=\"left\">\r\n <label>compliance</label>\r\n <p *ngIf=\"categoryList?.compliance?.selectedList?.length != 0\">\r\n {{categoryList?.compliance?.selectedList?.length}}\r\n {{(categoryList?.compliance?.selectedList?.length==1)?'Category':'Categories'}} selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{categoryList?.compliance?.list?.length}}</span>\r\n </div>\r\n <div class=\"risk-category-list-card\" [class.active]=\"activeTab == 'others'\" (click)=\"activeTab = 'others'\">\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 {{(categoryList?.others?.selectedList?.length==1)?'Category':'Categories'}} selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{categoryList?.others?.list?.length}}</span>\r\n </div>\r\n </div>\r\n \r\n <div class=\"risk-category-list-search vx-mb-2\">\r\n <i class=\"icons\">&#xe90b;</i>\r\n <input type=\"text\" [(ngModel)]=\"search\" placeholder=\"Search Risk Category\" />\r\n </div>\r\n\r\n <ng-container *ngIf=\"(categoryList[activeTab]?.list | filter: search) as searchList\">\r\n <div class=\"select-all\" *ngIf=\"searchList.length > 1\">\r\n <app-cs-checkbox [ngValue]=\"checkSelectAll(activeTab)\" (ngValueChange)=\"selectAll($event,activeTab)\">\r\n <strong>{{checkSelectAll(activeTab) ? 'Deselect All' : 'Select All'}}</strong>\r\n </app-cs-checkbox>\r\n </div>\r\n <div class=\"risk-category-list-item vx-mb-4\" [class.with-selectAll]=\"searchList.length > 1\" *ngIf=\"searchList.length > 0\">\r\n <ul class=\"risk-category-list-item-ul vx-m-0 vx-p-0\">\r\n <li class=\"vx-mb-4\" *ngFor=\"let category of searchList\" >\r\n <app-cs-checkbox [ngValue]=\"selectedIds.includes(category[categoryIdKey])\"\r\n (ngValueChange)=\"selectCategory($event,activeTab,category)\">\r\n <ul class=\"categories\">\r\n <li [arTooltip]=\"category.category_name\" placement=\"bottom-left\" delay=\"0\">{{category.category_name}}</li>\r\n </ul>\r\n </app-cs-checkbox>\r\n </li>\r\n </ul>\r\n </div>\r\n <app-no-data *ngIf=\"searchList.length == 0\" [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"'No data to display'\">\r\n </app-no-data>\r\n </ng-container>\r\n\r\n <app-dashboard-footer \r\n [footerDetails] =\"footerDetails\"\r\n (cancelEvent)=\"close()\"\r\n (deleteEvent) =\"deleteEvent($event)\"\r\n (submitEvent)=\"save()\"\r\n ></app-dashboard-footer>\r\n </div>\r\n</div>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .risk-category-list{background:#fff;border-right:1px solid #F1F1F1;position:fixed;inset:0 500px 0 0}::ng-deep .risk-category-list-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .risk-category-list-card{box-shadow:0 0 2px #00000029;border-radius:2px;height:56px;padding:12px;width:100%;display:flex;align-items:center;justify-content:space-between;cursor:pointer;position:relative}::ng-deep .risk-category-list-card .left{display:flex;flex-wrap:wrap;pointer-events:none}::ng-deep .risk-category-list-card .left label{color:#747576;font-size:11px;font-weight:600;line-height:16px;text-transform:uppercase;width:100%}::ng-deep .risk-category-list-card .left p{color:#161b2f;font-size:11px;font-weight:600;line-height:16px;margin:0}::ng-deep .risk-category-list-card span.counter{display:flex;height:32px;min-width:32px;border-radius:2px;background:#042e7d;color:#fff;font-size:11px;font-weight:500;line-height:32px;justify-content:center;align-items:center;padding:0 4px;pointer-events:none}::ng-deep .risk-category-list-card.active{box-shadow:0 3px 12px #1e5dd326;z-index:1;pointer-events:none}::ng-deep .risk-category-list-card.active span.counter{background:#f1f1f1;color:#042e7d}::ng-deep .risk-category-list-card+.risk-category-list-card{margin-left:4px}::ng-deep .risk-category-list-mid{height:calc(100vh - 2.75rem);padding:2rem;position:relative}::ng-deep .risk-category-list-mid::-webkit-scrollbar-track{background:transparent}::ng-deep .risk-category-list-mid .select-all{display:flex;padding-bottom:1rem}::ng-deep .risk-category-list-mid .select-all app-cs-checkbox{display:flex}::ng-deep .risk-category-list-mid .select-all app-cs-checkbox .checkbox-item .value{max-width:unset!important;font-size:12px!important}::ng-deep .risk-category-list-mid .select-all app-cs-checkbox .checkbox-item .value strong{font-weight:600;color:#161b2f}::ng-deep .risk-category-list-mid app-no-data .no-data-wrapper{height:calc(100vh - 260px)}::ng-deep .risk-category-list-search{position:relative}::ng-deep .risk-category-list-search input{height:2.75rem;line-height:1.5rem;padding:.5rem 1rem .5rem 2.5rem;outline:none;border:1px solid #7475763f;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .risk-category-list-search input:focus{border-color:#1e5dd3}::ng-deep .risk-category-list-search i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1;font-size:12px}::ng-deep .risk-category-list-item{list-style-type:none;display:block;height:calc(100vh - 288px);overflow:hidden;overflow-y:auto}::ng-deep .risk-category-list-item::-webkit-scrollbar-track{background:transparent}::ng-deep .risk-category-list-item.with-selectAll{height:calc(100vh - 320px)}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul{padding:0;margin:0}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li{list-style:none}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox{display:flex}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label{width:100%}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label.radio-item span.value,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label.radio-item span.value,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label.checkbox-item span.value,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label.checkbox-item span.value{width:auto;justify-content:flex-start}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories{display:flex;max-width:100%;padding:0;margin:0;justify-content:flex-start;width:auto}::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories li,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories li,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories li,::ng-deep .risk-category-list-item ul.risk-category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories li{display:block;padding:0 16px 0 0;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;color:#161b2f}\n"] }]
180
+ }], ctorParameters: function () { return []; }, propDecorators: { categoryList: [{
181
+ type: Input
182
+ }], allCategories: [{
183
+ type: Input
184
+ }], categoryIdKey: [{
185
+ type: Input
186
+ }], selectedCategories: [{
187
+ type: Input
188
+ }], saveSelectedCategory: [{
189
+ type: Output
190
+ }], closeList: [{
191
+ type: Output
192
+ }], closeCategoriesList: [{
193
+ type: Output
194
+ }] } });
195
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlzay1jYXRlZ29yaWVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi9jcmVhdGUtZGFzaGJvYXJkLWNvbnRhaW5lci9yaXNrLWNhdGVnb3JpZXMvcmlzay1jYXRlZ29yaWVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi9jcmVhdGUtZGFzaGJvYXJkLWNvbnRhaW5lci9yaXNrLWNhdGVnb3JpZXMvcmlzay1jYXRlZ29yaWVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7OztBQVMvRSxNQUFNLE9BQU8sdUJBQXVCO0lBR3pCLFlBQVksR0FBeUI7UUFDNUMsU0FBUyxFQUFFO1lBQ1QsSUFBSSxFQUFFLEVBQUU7WUFDUixZQUFZLEVBQUUsRUFBRTtTQUNqQjtRQUNELFdBQVcsRUFBRTtZQUNYLElBQUksRUFBRSxFQUFFO1lBQ1IsWUFBWSxFQUFFLEVBQUU7U0FDakI7UUFDRCxVQUFVLEVBQUU7WUFDVixJQUFJLEVBQUUsRUFBRTtZQUNSLFlBQVksRUFBRSxFQUFFO1NBQ2pCO1FBQ0QsTUFBTSxFQUFFO1lBQ04sSUFBSSxFQUFFLEVBQUU7WUFDUixZQUFZLEVBQUUsRUFBRTtTQUNqQjtLQUNGLENBQUE7SUFDUSxhQUFhLEdBQVUsRUFBRSxDQUFDO0lBRTFCLGFBQWEsQ0FBTTtJQUNuQixrQkFBa0IsR0FBVSxFQUFFLENBQUM7SUFFeEMsTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUNaLFNBQVMsR0FBd0QsV0FBVyxDQUFDO0lBQzdFLFdBQVcsR0FBVSxFQUFFLENBQUM7SUFDeEIsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUNsQixVQUFVLENBQU07SUFDaEIsYUFBYSxHQUEwQjtRQUNyQyxZQUFZLEVBQUUsRUFBRTtRQUNoQixnQkFBZ0IsRUFBQyxFQUFFO1FBQ25CLGlCQUFpQixFQUFFLGVBQWU7UUFDbEMsU0FBUyxFQUFFLGFBQWE7UUFDeEIsWUFBWSxFQUFFLHdCQUF3QjtRQUN0QyxVQUFVLEVBQUUsMEJBQTBCO1FBQ3RDLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLGFBQWEsRUFBRSxFQUFFO1FBQ2pCLFVBQVUsRUFBRSxLQUFLO0tBRWxCLENBQUM7SUFFUSxvQkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzFDLFNBQVMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQy9CLG1CQUFtQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFFbkQsZ0JBQWdCLENBQUM7SUFFakIsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN6QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDUixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUMzQixJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUN4QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7WUFDckQsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUVoQixDQUFDO0lBRUQsY0FBYyxDQUFDLElBQVMsRUFBRSxTQUFjLEVBQUUsUUFBYTtRQUNyRCxJQUFJLElBQUksRUFBRTtZQUNSLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztTQUNyRDthQUFNO1lBQ0wsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFZLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7WUFDcEcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ25DO1FBQ0QsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBRWpCLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBVTtRQUNwQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQVksRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUNqRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCxTQUFTLENBQUMsSUFBUyxFQUFFLFNBQWlCO1FBRXBDLElBQUksSUFBSSxFQUFFO1lBQ1IsSUFBSSxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsS0FBSyxhQUFhLElBQUksU0FBUyxLQUFLLFlBQVksSUFBSSxTQUFTLEtBQUssUUFBUSxFQUFFO2dCQUNwSCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDL0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtvQkFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRTt3QkFDM0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO3FCQUNwRDtnQkFDSCxDQUFDLENBQUMsQ0FBQzthQUNKO1NBRUY7YUFBTTtZQUNMLElBQUksU0FBUyxLQUFLLFdBQVcsSUFBSSxTQUFTLEtBQUssYUFBYSxJQUFJLFNBQVMsS0FBSyxZQUFZLElBQUksU0FBUyxLQUFLLFFBQVEsRUFBRTtnQkFDcEgsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3BELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ3JCLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFO3dCQUMxRCxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQzt3QkFDekYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO3FCQUNyQztnQkFDSCxDQUFDLENBQUMsQ0FBQzthQUNKO1NBRUY7UUFDRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELE9BQU87UUFDTCxNQUFNLElBQUksR0FBUSxFQUFFLENBQUM7UUFDbEIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFBO1FBQ3hELGdDQUFnQztRQUNoQyxNQUFNLFdBQVcsR0FBRSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUE7UUFDakQsZ0NBQWdDO1FBQ2hDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUNoRCxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQy9DLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFFM0MsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQVksRUFBRSxFQUFFO1lBQ3BDLElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3JELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDcEI7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDL0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBRXZDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUN6RCxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFO2dCQUN0RCxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO2FBQ3hEO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDM0QsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRTtnQkFDdEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTthQUMxRDtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQzFELElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3RELElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7YUFDekQ7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUN0RCxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFO2dCQUN0RCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO2FBQ3JEO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNuQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDckI7SUFDSCxDQUFDO0lBQ0QsWUFBWTtRQUNWLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdkQsSUFBSSxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUE7U0FDN0I7YUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2hFLElBQUksQ0FBQyxTQUFTLEdBQUcsYUFBYSxDQUFBO1NBQy9CO2FBQU0sSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMvRCxJQUFJLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQTtTQUM5QjthQUFNLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDM0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUE7U0FDMUI7YUFBTTtZQUNMLElBQUksQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFBO1NBQzdCO0lBQ0gsQ0FBQztJQUdELGNBQWMsQ0FBQyxTQUFpQjtRQUM5QixJQUFJLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxLQUFLLGFBQWEsSUFBSSxTQUFTLEtBQUssWUFBWSxJQUFJLFNBQVMsS0FBSyxRQUFRLEVBQUU7WUFDcEgsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6SCxPQUFPLElBQUksQ0FBQztTQUNiO0lBQ0gsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2xDLENBQUM7d0dBcExVLHVCQUF1Qjs0RkFBdkIsdUJBQXVCLDhVQ1RwQywyOUlBbUZBOzs0RkQxRWEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHFCQUFxQjswRUFPdEIsWUFBWTtzQkFBcEIsS0FBSztnQkFrQkcsYUFBYTtzQkFBckIsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFvQkksb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csbUJBQW1CO3NCQUE1QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXNoYm9hcmRGb290ZXJDb25maWcgfSBmcm9tICcuLi8uLi91aS1raXQvZGFzaGJvYXJkLWZvb3Rlci9kYXNoYm9hcmQtZm9vdGVyLWNvbmZpZyc7XHJcbmltcG9ydCB7IFJpc2tDYXRlZ29yaWVzQ29uZmlnIH0gZnJvbSAnLi9yaXNrLWNhdGVnb3JpZXMtY29uZmlnJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXJpc2stY2F0ZWdvcmllcycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Jpc2stY2F0ZWdvcmllcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcmlzay1jYXRlZ29yaWVzLmNvbXBvbmVudC5sZXNzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFJpc2tDYXRlZ29yaWVzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcblxyXG4gIEBJbnB1dCgpIGNhdGVnb3J5TGlzdDogUmlza0NhdGVnb3JpZXNDb25maWcgPSB7XHJcbiAgICBzdHJhdGVnaWM6IHtcclxuICAgICAgbGlzdDogW10sXHJcbiAgICAgIHNlbGVjdGVkTGlzdDogW10sXHJcbiAgICB9LFxyXG4gICAgb3BlcmF0aW9uYWw6IHtcclxuICAgICAgbGlzdDogW10sXHJcbiAgICAgIHNlbGVjdGVkTGlzdDogW10sXHJcbiAgICB9LFxyXG4gICAgY29tcGxpYW5jZToge1xyXG4gICAgICBsaXN0OiBbXSxcclxuICAgICAgc2VsZWN0ZWRMaXN0OiBbXSxcclxuICAgIH0sXHJcbiAgICBvdGhlcnM6IHtcclxuICAgICAgbGlzdDogW10sXHJcbiAgICAgIHNlbGVjdGVkTGlzdDogW10sXHJcbiAgICB9XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGFsbENhdGVnb3JpZXM6IGFueVtdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIGNhdGVnb3J5SWRLZXk6IGFueTtcclxuICBASW5wdXQoKSBzZWxlY3RlZENhdGVnb3JpZXM6IGFueVtdID0gW107XHJcblxyXG4gIHNlYXJjaCA9ICcnO1xyXG4gIGFjdGl2ZVRhYjogXCJzdHJhdGVnaWNcIiB8IFwib3BlcmF0aW9uYWxcIiB8IFwiY29tcGxpYW5jZVwiIHwgXCJvdGhlcnNcIj1cInN0cmF0ZWdpY1wiO1xyXG4gIHNlbGVjdGVkSWRzOiBhbnlbXSA9IFtdO1xyXG4gIGFuaW1hdGlvbiA9IGZhbHNlO1xyXG4gIGJsb2NrV2lkdGg6IGFueTtcclxuICBmb290ZXJEZXRhaWxzOiBEYXNoYm9hcmRGb290ZXJDb25maWcgPSB7XHJcbiAgICBzZWxlY3RlZERhdGE6IFtdLFxyXG4gICAgbm9uUmVtb3ZhYmxlTGlzdDpbXSxcclxuICAgIGRpc3BsYXlFbGVtZW50S2V5OiAnY2F0ZWdvcnlfbmFtZScsXHJcbiAgICBlbGVtZW50SWQ6ICdjYXRlZ29yeV9pZCcsXHJcbiAgICBzaW5ndWxhclRleHQ6ICdSaXNrIENhdGVnb3J5IHNlbGVjdGVkJyxcclxuICAgIHBsdXJhbFRleHQ6ICdSaXNrIENhdGVnb3JpZXMgc2VsZWN0ZWQnLFxyXG4gICAgc2hvd0ZyZXF1ZW5jeTogZmFsc2UsXHJcbiAgICBmcmVxdWVuY3lUZXh0OiAnJyxcclxuICAgIGlzRGlzYWJsZWQ6IGZhbHNlXHJcblxyXG4gIH07XHJcblxyXG4gIEBPdXRwdXQoKSBzYXZlU2VsZWN0ZWRDYXRlZ29yeSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2xvc2VMaXN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjbG9zZUNhdGVnb3JpZXNMaXN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYW5pbWF0aW9uID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xyXG4gICAgfSwgMzAwKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRJZHMgPSBbXTtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkQ2F0ZWdvcmllcykge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcmllcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMucHVzaChlbGVtZW50W3RoaXMuY2F0ZWdvcnlJZEtleV0pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0TGlzdCgpXHJcbiBcclxuICB9XHJcblxyXG4gIHNlbGVjdENhdGVnb3J5KG1vZGU6IGFueSwgYWN0aXZlVGFiOiBhbnksIGNhdGVnb3J5OiBhbnkpIHtcclxuICAgIGlmIChtb2RlKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJZHMucHVzaChjYXRlZ29yeVt0aGlzLmNhdGVnb3J5SWRLZXldKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZElkcy5maW5kSW5kZXgoKGVsZW1lbnQ6IGFueSkgPT4gZWxlbWVudCA9PSBjYXRlZ29yeVt0aGlzLmNhdGVnb3J5SWRLZXldKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZElkcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRMaXN0KCk7XHJcblxyXG4gIH1cclxuXHJcbiAgZGVsZXRlRXZlbnQoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGVkSWRzLmZpbmRJbmRleCgoZWxlbWVudDogYW55KSA9PiBlbGVtZW50ID09IGV2ZW50W3RoaXMuY2F0ZWdvcnlJZEtleV0pO1xyXG4gICAgdGhpcy5zZWxlY3RlZElkcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgdGhpcy5zZXRMaXN0KCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RBbGwobW9kZTogYW55LCBhY3RpdmVUYWI6IHN0cmluZykge1xyXG5cclxuICAgIGlmIChtb2RlKSB7XHJcbiAgICAgIGlmIChhY3RpdmVUYWIgPT09IFwic3RyYXRlZ2ljXCIgfHwgYWN0aXZlVGFiID09PSBcIm9wZXJhdGlvbmFsXCIgfHwgYWN0aXZlVGFiID09PSBcImNvbXBsaWFuY2VcIiB8fCBhY3RpdmVUYWIgPT09IFwib3RoZXJzXCIpIHtcclxuICAgICAgICBjb25zdCBsaXN0ID0gdGhpcy5jYXRlZ29yeUxpc3RbYWN0aXZlVGFiXS5saXN0O1xyXG4gICAgICAgIGxpc3QuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICAgIGlmICghdGhpcy5zZWxlY3RlZElkcy5pbmNsdWRlcyhlbGVtZW50W3RoaXMuY2F0ZWdvcnlJZEtleV0pKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMucHVzaChlbGVtZW50W3RoaXMuY2F0ZWdvcnlJZEtleV0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKGFjdGl2ZVRhYiA9PT0gXCJzdHJhdGVnaWNcIiB8fCBhY3RpdmVUYWIgPT09IFwib3BlcmF0aW9uYWxcIiB8fCBhY3RpdmVUYWIgPT09IFwiY29tcGxpYW5jZVwiIHx8IGFjdGl2ZVRhYiA9PT0gXCJvdGhlcnNcIikge1xyXG4gICAgICAgIGNvbnN0IGxpc3QgPSBbLi4udGhpcy5jYXRlZ29yeUxpc3RbYWN0aXZlVGFiXS5saXN0XTtcclxuICAgICAgICBsaXN0LmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZElkcy5pbmNsdWRlcyhlbGVtZW50W3RoaXMuY2F0ZWdvcnlJZEtleV0pKSB7XHJcbiAgICAgICAgICAgIGxldCBpZEluZGV4ID0gdGhpcy5zZWxlY3RlZElkcy5maW5kSW5kZXgoKGlkOiBhbnkpID0+IGlkID09IGVsZW1lbnRbdGhpcy5jYXRlZ29yeUlkS2V5XSk7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMuc3BsaWNlKGlkSW5kZXgsIDEpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRMaXN0KCk7XHJcbiAgfVxyXG5cclxuICBzZXRMaXN0KCkge1xyXG4gICAgY29uc3QgZGF0YTogYW55ID0gW107XHJcbiAgICAgICBjb25zdCBjYXRlZ29yeUxpc3QgPSBbLi4ubmV3IFNldCh0aGlzLmFsbENhdGVnb3JpZXMpXSBcclxuICAgIC8vIGNsb25lRGVlcCh0aGlzLmFsbENhdGVnb3JpZXMpXHJcbiAgICBjb25zdCBzZWxlY3RlZElkcyA9Wy4uLm5ldyBTZXQodGhpcy5zZWxlY3RlZElkcyldIFxyXG4gICAgLy8gIGNsb25lRGVlcCh0aGlzLnNlbGVjdGVkSWRzKTtcclxuICAgIHRoaXMuY2F0ZWdvcnlMaXN0LnN0cmF0ZWdpYy5zZWxlY3RlZExpc3QgPSBbXTtcclxuICAgIHRoaXMuY2F0ZWdvcnlMaXN0Lm9wZXJhdGlvbmFsLnNlbGVjdGVkTGlzdCA9IFtdO1xyXG4gICAgdGhpcy5jYXRlZ29yeUxpc3QuY29tcGxpYW5jZS5zZWxlY3RlZExpc3QgPSBbXTtcclxuICAgIHRoaXMuY2F0ZWdvcnlMaXN0Lm90aGVycy5zZWxlY3RlZExpc3QgPSBbXTtcclxuXHJcbiAgICBjYXRlZ29yeUxpc3QuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgIGlmIChzZWxlY3RlZElkcy5pbmNsdWRlcyhlbGVtZW50W3RoaXMuY2F0ZWdvcnlJZEtleV0pKSB7XHJcbiAgICAgICAgZGF0YS5wdXNoKGVsZW1lbnQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yaWVzID0gZGF0YTtcclxuICAgIHRoaXMuZm9vdGVyRGV0YWlscy5zZWxlY3RlZERhdGEgPSBkYXRhO1xyXG5cclxuICAgIHRoaXMuY2F0ZWdvcnlMaXN0LnN0cmF0ZWdpYy5saXN0LmZvckVhY2goKGNhdGVnb3J5OiBhbnkpID0+IHtcclxuICAgICAgaWYgKHNlbGVjdGVkSWRzLmluY2x1ZGVzKGNhdGVnb3J5W3RoaXMuY2F0ZWdvcnlJZEtleV0pKSB7XHJcbiAgICAgICAgdGhpcy5jYXRlZ29yeUxpc3Quc3RyYXRlZ2ljLnNlbGVjdGVkTGlzdC5wdXNoKGNhdGVnb3J5KVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuY2F0ZWdvcnlMaXN0Lm9wZXJhdGlvbmFsLmxpc3QuZm9yRWFjaCgoY2F0ZWdvcnk6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoc2VsZWN0ZWRJZHMuaW5jbHVkZXMoY2F0ZWdvcnlbdGhpcy5jYXRlZ29yeUlkS2V5XSkpIHtcclxuICAgICAgICB0aGlzLmNhdGVnb3J5TGlzdC5vcGVyYXRpb25hbC5zZWxlY3RlZExpc3QucHVzaChjYXRlZ29yeSlcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmNhdGVnb3J5TGlzdC5jb21wbGlhbmNlLmxpc3QuZm9yRWFjaCgoY2F0ZWdvcnk6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoc2VsZWN0ZWRJZHMuaW5jbHVkZXMoY2F0ZWdvcnlbdGhpcy5jYXRlZ29yeUlkS2V5XSkpIHtcclxuICAgICAgICB0aGlzLmNhdGVnb3J5TGlzdC5jb21wbGlhbmNlLnNlbGVjdGVkTGlzdC5wdXNoKGNhdGVnb3J5KVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuY2F0ZWdvcnlMaXN0Lm90aGVycy5saXN0LmZvckVhY2goKGNhdGVnb3J5OiBhbnkpID0+IHtcclxuICAgICAgaWYgKHNlbGVjdGVkSWRzLmluY2x1ZGVzKGNhdGVnb3J5W3RoaXMuY2F0ZWdvcnlJZEtleV0pKSB7XHJcbiAgICAgICAgdGhpcy5jYXRlZ29yeUxpc3Qub3RoZXJzLnNlbGVjdGVkTGlzdC5wdXNoKGNhdGVnb3J5KVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGlmICghdGhpcy5hY3RpdmVUYWIpIHtcclxuICAgICAgdGhpcy5zZXRBY3RpdmVUYWIoKTtcclxuICAgIH1cclxuICB9XHJcbiAgc2V0QWN0aXZlVGFiKCkge1xyXG4gICAgaWYgKHRoaXMuY2F0ZWdvcnlMaXN0LnN0cmF0ZWdpYy5zZWxlY3RlZExpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmFjdGl2ZVRhYiA9ICdzdHJhdGVnaWMnXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY2F0ZWdvcnlMaXN0Lm9wZXJhdGlvbmFsLnNlbGVjdGVkTGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlVGFiID0gJ29wZXJhdGlvbmFsJ1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmNhdGVnb3J5TGlzdC5jb21wbGlhbmNlLnNlbGVjdGVkTGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlVGFiID0gJ2NvbXBsaWFuY2UnXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY2F0ZWdvcnlMaXN0Lm90aGVycy5zZWxlY3RlZExpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmFjdGl2ZVRhYiA9ICdvdGhlcnMnXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmFjdGl2ZVRhYiA9ICdzdHJhdGVnaWMnXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgY2hlY2tTZWxlY3RBbGwoYWN0aXZlVGFiOiBzdHJpbmcpIHtcclxuICAgIGlmIChhY3RpdmVUYWIgPT09IFwic3RyYXRlZ2ljXCIgfHwgYWN0aXZlVGFiID09PSBcIm9wZXJhdGlvbmFsXCIgfHwgYWN0aXZlVGFiID09PSBcImNvbXBsaWFuY2VcIiB8fCBhY3RpdmVUYWIgPT09IFwib3RoZXJzXCIpIHtcclxuICAgICAgY29uc3QgZGF0YSA9IHRoaXMuY2F0ZWdvcnlMaXN0W2FjdGl2ZVRhYl0ubGlzdC5ldmVyeSgodXNlcjogYW55KSA9PiB0aGlzLnNlbGVjdGVkSWRzLmluY2x1ZGVzKHVzZXJbdGhpcy5jYXRlZ29yeUlkS2V5XSkpO1xyXG4gICAgICByZXR1cm4gZGF0YTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNhdmUoKSB7XHJcbiAgICB0aGlzLnNhdmVTZWxlY3RlZENhdGVnb3J5LmVtaXQodGhpcy5zZWxlY3RlZENhdGVnb3JpZXMpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2UoKSB7XHJcbiAgICB0aGlzLmNsb3NlQ2F0ZWdvcmllc0xpc3QuZW1pdCgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicmlzay1jYXRlZ29yeS1saXN0XCIgW2NsYXNzLmFuaW1hdGUtc2xpZGVJblJpZ2h0XT1cImFuaW1hdGlvblwiPlxyXG4gIDxkaXYgY2xhc3M9XCJyaXNrLWNhdGVnb3J5LWxpc3QtaGVhZCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1wbC00IHZ4LXByLTRcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJ2eC1mcy0xNCB2eC1mdy01MDAgdngtbGFiZWwtdHh0XCI+U2VsZWN0IFJpc2sgQ2F0ZWdvcnkocyk8L3NwYW4+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cInJpc2stY2F0ZWdvcnktbGlzdC1taWRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ2eC1kLWZsZXggdngtbWItMlwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicmlzay1jYXRlZ29yeS1saXN0LWNhcmRcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYiA9PSAnc3RyYXRlZ2ljJ1wiIChjbGljayk9XCJhY3RpdmVUYWIgPSAnc3RyYXRlZ2ljJ1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XHJcbiAgICAgICAgICA8bGFiZWw+c3RyYXRlZ2ljPC9sYWJlbD5cclxuICAgICAgICAgIDxwICpuZ0lmPVwiY2F0ZWdvcnlMaXN0Py5zdHJhdGVnaWM/LnNlbGVjdGVkTGlzdD8ubGVuZ3RoICE9IDBcIj5cclxuICAgICAgICAgICAge3tjYXRlZ29yeUxpc3Q/LnN0cmF0ZWdpYz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGh9fVxyXG4gICAgICAgICAgICB7eyhjYXRlZ29yeUxpc3Q/LnN0cmF0ZWdpYz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGg9PTEpPydDYXRlZ29yeSc6J0NhdGVnb3JpZXMnfX0gc2VsZWN0ZWRcclxuICAgICAgICAgIDwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXJcIj57e2NhdGVnb3J5TGlzdD8uc3RyYXRlZ2ljPy5saXN0Py5sZW5ndGh9fTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyaXNrLWNhdGVnb3J5LWxpc3QtY2FyZFwiIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlVGFiID09ICdvcGVyYXRpb25hbCdcIiAoY2xpY2spPVwiYWN0aXZlVGFiID0gJ29wZXJhdGlvbmFsJ1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XHJcbiAgICAgICAgICA8bGFiZWw+b3BlcmF0aW9uYWw8L2xhYmVsPlxyXG4gICAgICAgICAgPHAgKm5nSWY9XCJjYXRlZ29yeUxpc3Q/Lm9wZXJhdGlvbmFsPy5zZWxlY3RlZExpc3Q/Lmxlbmd0aCAhPSAwXCI+XHJcbiAgICAgICAgICAgIHt7Y2F0ZWdvcnlMaXN0Py5vcGVyYXRpb25hbD8uc2VsZWN0ZWRMaXN0Py5sZW5ndGh9fVxyXG4gICAgICAgICAgICB7eyhjYXRlZ29yeUxpc3Q/Lm9wZXJhdGlvbmFsPy5zZWxlY3RlZExpc3Q/Lmxlbmd0aD09MSk/J0NhdGVnb3J5JzonQ2F0ZWdvcmllcyd9fSBzZWxlY3RlZFxyXG4gICAgICAgICAgPC9wPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlclwiPnt7Y2F0ZWdvcnlMaXN0Py5vcGVyYXRpb25hbD8ubGlzdD8ubGVuZ3RofX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicmlzay1jYXRlZ29yeS1saXN0LWNhcmRcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYiA9PSAnY29tcGxpYW5jZSdcIiAoY2xpY2spPVwiYWN0aXZlVGFiID0gJ2NvbXBsaWFuY2UnXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj5cclxuICAgICAgICAgIDxsYWJlbD5jb21wbGlhbmNlPC9sYWJlbD5cclxuICAgICAgICAgIDxwICpuZ0lmPVwiY2F0ZWdvcnlMaXN0Py5jb21wbGlhbmNlPy5zZWxlY3RlZExpc3Q/Lmxlbmd0aCAhPSAwXCI+XHJcbiAgICAgICAgICAgIHt7Y2F0ZWdvcnlMaXN0Py5jb21wbGlhbmNlPy5zZWxlY3RlZExpc3Q/Lmxlbmd0aH19XHJcbiAgICAgICAgICAgIHt7KGNhdGVnb3J5TGlzdD8uY29tcGxpYW5jZT8uc2VsZWN0ZWRMaXN0Py5sZW5ndGg9PTEpPydDYXRlZ29yeSc6J0NhdGVnb3JpZXMnfX0gc2VsZWN0ZWRcclxuICAgICAgICAgIDwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXJcIj57e2NhdGVnb3J5TGlzdD8uY29tcGxpYW5jZT8ubGlzdD8ubGVuZ3RofX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicmlzay1jYXRlZ29yeS1saXN0LWNhcmRcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYiA9PSAnb3RoZXJzJ1wiIChjbGljayk9XCJhY3RpdmVUYWIgPSAnb3RoZXJzJ1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XHJcbiAgICAgICAgICA8bGFiZWw+T1RIRVJTPC9sYWJlbD5cclxuICAgICAgICAgIDxwICpuZ0lmPVwiY2F0ZWdvcnlMaXN0Py5vdGhlcnM/LnNlbGVjdGVkTGlzdD8ubGVuZ3RoICE9IDBcIj5cclxuICAgICAgICAgICAge3tjYXRlZ29yeUxpc3Q/Lm90aGVycz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGh9fVxyXG4gICAgICAgICAgICB7eyhjYXRlZ29yeUxpc3Q/Lm90aGVycz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGg9PTEpPydDYXRlZ29yeSc6J0NhdGVnb3JpZXMnfX0gc2VsZWN0ZWRcclxuICAgICAgICAgIDwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXJcIj57e2NhdGVnb3J5TGlzdD8ub3RoZXJzPy5saXN0Py5sZW5ndGh9fTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgIDxkaXYgY2xhc3M9XCJyaXNrLWNhdGVnb3J5LWxpc3Qtc2VhcmNoIHZ4LW1iLTJcIj5cclxuICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGI7PC9pPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoIFJpc2sgQ2F0ZWdvcnlcIiAvPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihjYXRlZ29yeUxpc3RbYWN0aXZlVGFiXT8ubGlzdCB8IGZpbHRlcjogc2VhcmNoKSBhcyBzZWFyY2hMaXN0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3QtYWxsXCIgKm5nSWY9XCJzZWFyY2hMaXN0Lmxlbmd0aCA+IDFcIj5cclxuICAgICAgICA8YXBwLWNzLWNoZWNrYm94IFtuZ1ZhbHVlXT1cImNoZWNrU2VsZWN0QWxsKGFjdGl2ZVRhYilcIiAobmdWYWx1ZUNoYW5nZSk9XCJzZWxlY3RBbGwoJGV2ZW50LGFjdGl2ZVRhYilcIj5cclxuICAgICAgICAgIDxzdHJvbmc+e3tjaGVja1NlbGVjdEFsbChhY3RpdmVUYWIpID8gJ0Rlc2VsZWN0IEFsbCcgOiAnU2VsZWN0IEFsbCd9fTwvc3Ryb25nPlxyXG4gICAgICAgIDwvYXBwLWNzLWNoZWNrYm94PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJpc2stY2F0ZWdvcnktbGlzdC1pdGVtIHZ4LW1iLTRcIiBbY2xhc3Mud2l0aC1zZWxlY3RBbGxdPVwic2VhcmNoTGlzdC5sZW5ndGggPiAxXCIgKm5nSWY9XCJzZWFyY2hMaXN0Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgICA8dWwgY2xhc3M9XCJyaXNrLWNhdGVnb3J5LWxpc3QtaXRlbS11bCB2eC1tLTAgdngtcC0wXCI+XHJcbiAgICAgICAgICA8bGkgY2xhc3M9XCJ2eC1tYi00XCIgKm5nRm9yPVwibGV0IGNhdGVnb3J5IG9mIHNlYXJjaExpc3RcIiA+XHJcbiAgICAgICAgICAgIDxhcHAtY3MtY2hlY2tib3ggW25nVmFsdWVdPVwic2VsZWN0ZWRJZHMuaW5jbHVkZXMoY2F0ZWdvcnlbY2F0ZWdvcnlJZEtleV0pXCJcclxuICAgICAgICAgICAgKG5nVmFsdWVDaGFuZ2UpPVwic2VsZWN0Q2F0ZWdvcnkoJGV2ZW50LGFjdGl2ZVRhYixjYXRlZ29yeSlcIj5cclxuICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJjYXRlZ29yaWVzXCI+XHJcbiAgICAgICAgICAgICAgICA8bGkgW2FyVG9vbHRpcF09XCJjYXRlZ29yeS5jYXRlZ29yeV9uYW1lXCIgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIiBkZWxheT1cIjBcIj57e2NhdGVnb3J5LmNhdGVnb3J5X25hbWV9fTwvbGk+XHJcbiAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgPC9hcHAtY3MtY2hlY2tib3g+XHJcbiAgICAgICAgICA8L2xpPlxyXG4gICAgICAgIDwvdWw+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8YXBwLW5vLWRhdGEgICpuZ0lmPVwic2VhcmNoTGlzdC5sZW5ndGggPT0gMFwiIFtub0RhdGFJbWFnZV09XCInaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3NlYXJjaC1kYXRhLnN2ZydcIiBbbm9EYXRhVGV4dF09XCInTm8gZGF0YSB0byBkaXNwbGF5J1wiPlxyXG4gICAgICA8L2FwcC1uby1kYXRhPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPGFwcC1kYXNoYm9hcmQtZm9vdGVyIFxyXG4gICAgW2Zvb3RlckRldGFpbHNdID1cImZvb3RlckRldGFpbHNcIlxyXG4gICAgKGNhbmNlbEV2ZW50KT1cImNsb3NlKClcIlxyXG4gICAgKGRlbGV0ZUV2ZW50KSA9XCJkZWxldGVFdmVudCgkZXZlbnQpXCJcclxuICAgIChzdWJtaXRFdmVudCk9XCJzYXZlKClcIlxyXG4gICAgPjwvYXBwLWRhc2hib2FyZC1mb290ZXI+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -0,0 +1,31 @@
1
+ import { Injectable, Optional } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common/http";
4
+ import * as i2 from "../../configurations";
5
+ export class AuthService {
6
+ http;
7
+ env;
8
+ constructor(http, config) {
9
+ this.http = http;
10
+ if (config) {
11
+ this.env = config.envConfig;
12
+ }
13
+ }
14
+ getAuthorizationToken() {
15
+ if (localStorage.getItem('currentUser')) {
16
+ const currentUser = JSON.parse(localStorage.getItem('currentUser') || '{}');
17
+ return currentUser.token;
18
+ }
19
+ }
20
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthService, deps: [{ token: i1.HttpClient }, { token: i2.Configurations, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
21
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthService, providedIn: 'root' });
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthService, decorators: [{
24
+ type: Injectable,
25
+ args: [{
26
+ providedIn: 'root'
27
+ }]
28
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.Configurations, decorators: [{
29
+ type: Optional
30
+ }] }]; } });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JlYXRlLWRhc2hib2FyZC9zcmMvbGliL2NyZWF0ZS1kYXNoYm9hcmQtY29udGFpbmVyL3NlcnZpY2VzL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVVyRCxNQUFNLE9BQU8sV0FBVztJQUdGO0lBRmIsR0FBRyxDQUFRO0lBRWxCLFlBQW9CLElBQWdCLEVBQWMsTUFBdUI7UUFBckQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNsQyxJQUFJLE1BQU0sRUFBRTtZQUNWLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztTQUM3QjtJQUNILENBQUM7SUFDRCxxQkFBcUI7UUFDbkIsSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQ3ZDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztZQUM1RSxPQUFPLFdBQVcsQ0FBQyxLQUFLLENBQUM7U0FDMUI7SUFDSCxDQUFDO3dHQWJVLFdBQVc7NEdBQVgsV0FBVyxjQUZWLE1BQU07OzRGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFJd0MsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEp3dEhlbHBlclNlcnZpY2UgfSBmcm9tICdAYXV0aDAvYW5ndWxhci1qd3QnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IG9mLCBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCBzaGFyZVJlcGxheSwgY2F0Y2hFcnJvciwgZGVsYXl9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29uZmlndXJhdGlvbnMgfSBmcm9tICcuLi8uLi9jb25maWd1cmF0aW9ucyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRoU2VydmljZSB7XHJcbiAgcHVibGljIGVudiAhOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgQE9wdGlvbmFsKCkgY29uZmlnPzogQ29uZmlndXJhdGlvbnMpIHsgXHJcbiAgICBpZiAoY29uZmlnKSB7XHJcbiAgICAgIHRoaXMuZW52ID0gY29uZmlnLmVudkNvbmZpZztcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0QXV0aG9yaXphdGlvblRva2VuKCkge1xyXG4gICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjdXJyZW50VXNlcicpKSB7XHJcbiAgICAgIGNvbnN0IGN1cnJlbnRVc2VyID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnY3VycmVudFVzZXInKSB8fCAne30nKTtcclxuICAgICAgcmV0dXJuIGN1cnJlbnRVc2VyLnRva2VuO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgXHJcbn1cclxuIl19