vcomply-workflow-engine 3.9.94 → 3.9.96

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 (53) hide show
  1. package/esm2022/lib/add-multiple-risk/add-multiple-risk.component.mjs +62 -8
  2. package/esm2022/lib/constants/template.constant.mjs +6 -0
  3. package/esm2022/lib/link-related-policies/constants.mjs +3 -2
  4. package/esm2022/lib/link-related-policies/link-related-policies.component.mjs +4 -8
  5. package/esm2022/lib/more-option/more-option.component.mjs +2 -2
  6. package/esm2022/lib/services/auth.service.mjs +172 -0
  7. package/esm2022/lib/services/common.service.mjs +8 -6
  8. package/esm2022/lib/sharedComponents/bulk-view/bulk-view.component.mjs +7 -3
  9. package/esm2022/lib/sharedComponents/document-section/document-section.component.mjs +71 -26
  10. package/esm2022/lib/sharedComponents/policy-template/constants/template.constant.mjs +3 -0
  11. package/esm2022/lib/sharedComponents/policy-template/policy-template.module.mjs +65 -0
  12. package/esm2022/lib/sharedComponents/policy-template/select-template-list/select-template-list.component.mjs +208 -0
  13. package/esm2022/lib/sharedComponents/policy-template/services/template.service.mjs +67 -0
  14. package/esm2022/lib/sharedComponents/policy-template/template-list-table/template-list-table.component.mjs +42 -0
  15. package/esm2022/lib/sharedComponents/policy-template/template-pipes/get-template-category.pipe.mjs +19 -0
  16. package/esm2022/lib/sharedComponents/policy-template/template-pipes/search-template.pipe.mjs +59 -0
  17. package/esm2022/lib/sharedComponents/policy-template/template-pipes/template-pipes.module.mjs +19 -0
  18. package/esm2022/lib/sharedComponents/policy-template/view-policy/view-policy/view-policy.component.mjs +93 -0
  19. package/esm2022/lib/sharedComponents/policy-template/view-policy/view-policy.module.mjs +19 -0
  20. package/esm2022/lib/ui-kit/multi-select/cs-multiselect/cs-multiselect.component.mjs +203 -0
  21. package/esm2022/lib/ui-kit/multi-select/cs-multiselect-option/cs-multiselect-option.component.mjs +31 -0
  22. package/esm2022/lib/ui-kit/multi-select/multi-select.module.mjs +37 -0
  23. package/esm2022/lib/ui-kit/multi-select/multi-select.service.mjs +16 -0
  24. package/esm2022/lib/workflow-engine-container/workflow-engine-container.component.mjs +6 -3
  25. package/esm2022/lib/workflow-engine.module.mjs +11 -3
  26. package/esm2022/lib/workflow-policy/workflow-policy.component.mjs +68 -21
  27. package/fesm2022/vcomply-workflow-engine.mjs +1018 -58
  28. package/fesm2022/vcomply-workflow-engine.mjs.map +1 -1
  29. package/lib/add-multiple-risk/add-multiple-risk.component.d.ts +4 -1
  30. package/lib/constants/template.constant.d.ts +5 -0
  31. package/lib/link-related-policies/constants.d.ts +1 -0
  32. package/lib/link-related-policies/link-related-policies.component.d.ts +0 -1
  33. package/lib/services/auth.service.d.ts +39 -0
  34. package/lib/sharedComponents/bulk-view/bulk-view.component.d.ts +2 -1
  35. package/lib/sharedComponents/document-section/document-section.component.d.ts +9 -3
  36. package/lib/sharedComponents/policy-template/constants/template.constant.d.ts +2 -0
  37. package/lib/sharedComponents/policy-template/policy-template.module.d.ts +20 -0
  38. package/lib/sharedComponents/policy-template/select-template-list/select-template-list.component.d.ts +49 -0
  39. package/lib/sharedComponents/policy-template/services/template.service.d.ts +19 -0
  40. package/lib/sharedComponents/policy-template/template-list-table/template-list-table.component.d.ts +14 -0
  41. package/lib/sharedComponents/policy-template/template-pipes/get-template-category.pipe.d.ts +7 -0
  42. package/lib/sharedComponents/policy-template/template-pipes/search-template.pipe.d.ts +37 -0
  43. package/lib/sharedComponents/policy-template/template-pipes/template-pipes.module.d.ts +9 -0
  44. package/lib/sharedComponents/policy-template/view-policy/view-policy/view-policy.component.d.ts +25 -0
  45. package/lib/sharedComponents/policy-template/view-policy/view-policy.module.d.ts +9 -0
  46. package/lib/ui-kit/multi-select/cs-multiselect/cs-multiselect.component.d.ts +69 -0
  47. package/lib/ui-kit/multi-select/cs-multiselect-option/cs-multiselect-option.component.d.ts +12 -0
  48. package/lib/ui-kit/multi-select/multi-select.module.d.ts +11 -0
  49. package/lib/ui-kit/multi-select/multi-select.service.d.ts +7 -0
  50. package/lib/workflow-engine-container/workflow-engine-container.component.d.ts +2 -1
  51. package/lib/workflow-engine.module.d.ts +3 -1
  52. package/lib/workflow-policy/workflow-policy.component.d.ts +8 -1
  53. package/package.json +1 -1
@@ -0,0 +1,172 @@
1
+ import { Injectable, Optional } from '@angular/core';
2
+ import { BehaviorSubject, map, retry, shareReplay } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common/http";
5
+ import * as i2 from "@vcomply/authorizer";
6
+ import * as i3 from "../workflow-services/common-workflow-services/organization-common.service";
7
+ import * as i4 from "../configurations";
8
+ export class AuthService {
9
+ constructor(http, authorizer, organizationCommonService, config) {
10
+ this.http = http;
11
+ this.authorizer = authorizer;
12
+ this.organizationCommonService = organizationCommonService;
13
+ this.subscriptionDetails = new BehaviorSubject([]);
14
+ this.userDetails = new BehaviorSubject({});
15
+ this.permissions = [];
16
+ this.getSubscriptionDetails();
17
+ this.env = config?.envConfig;
18
+ }
19
+ setPermission() {
20
+ const assessmentPermission = this.roleBasedPermission.filter((ele) => ele.moduleName === 'assessment');
21
+ if (assessmentPermission?.length > 0) {
22
+ const permission = assessmentPermission[0];
23
+ const allowedFlows = [];
24
+ permission.subModule.forEach((ele) => {
25
+ ele.permissions.forEach((subModule) => {
26
+ switch (subModule?.code) {
27
+ case 'AALVAL': {
28
+ if (subModule?.defaultPermission == 1 || subModule?.enable == 1) {
29
+ allowedFlows.push('VIEW_ASSESSMENT_LIBRARY');
30
+ }
31
+ ;
32
+ break;
33
+ }
34
+ case 'AALMAL': {
35
+ if (subModule?.defaultPermission || subModule?.enable) {
36
+ allowedFlows.push('MANAGE_ASSESSMENT_LIBRARY');
37
+ }
38
+ ;
39
+ break;
40
+ }
41
+ case 'AAVA': {
42
+ if (subModule?.defaultPermission || subModule?.enable) {
43
+ allowedFlows.push('VIEW_ASSESSMENTS');
44
+ }
45
+ ;
46
+ break;
47
+ }
48
+ case 'AAMA': {
49
+ if (subModule?.defaultPermission || subModule?.enable) {
50
+ allowedFlows.push('MANAGE_ASSESSMENTS');
51
+ }
52
+ ;
53
+ break;
54
+ }
55
+ }
56
+ });
57
+ });
58
+ this.permissions = allowedFlows;
59
+ }
60
+ }
61
+ /**
62
+ * Returns weather the user data loaded or not
63
+ * @returns
64
+ */
65
+ startApp() {
66
+ return new Promise((resolve, reject) => {
67
+ this.getUser().subscribe((res) => {
68
+ resolve(true);
69
+ });
70
+ });
71
+ }
72
+ /**
73
+ * Gets user details
74
+ * @returns
75
+ */
76
+ getUser() {
77
+ return this.http.get(this.env.organizationGet + 'memberFindbyId&id=' + this.authorizer.getMemberId() ?? '')
78
+ .pipe(map((res) => {
79
+ this.userDetails.next(res);
80
+ this.roleBasedPermission = res?.roleActions;
81
+ this.setPermission();
82
+ }), shareReplay(1)).pipe(retry(2));
83
+ }
84
+ getSubscriptionDetails() {
85
+ return this.organizationCommonService
86
+ ?.getSubscriptionDetailsInfo()
87
+ ?.subscribe({
88
+ next: (res) => {
89
+ this.subscriptionDetails?.next(res);
90
+ },
91
+ error: (error) => {
92
+ console.error(error);
93
+ },
94
+ });
95
+ }
96
+ getUserRole() {
97
+ if (this.authorizer.isKeyAdmin()) {
98
+ return 'KEY_ADMIN';
99
+ }
100
+ else if (this.authorizer.isAdmin()) {
101
+ return 'ADMIN';
102
+ }
103
+ else if (this.authorizer.isManager()) {
104
+ return 'MANAGER';
105
+ }
106
+ else {
107
+ return 'EXECUTIVE';
108
+ }
109
+ }
110
+ logout() {
111
+ this.authorizer.logout();
112
+ }
113
+ convertUtcToLocalDateTime(timestamp) {
114
+ if (typeof timestamp !== 'string') {
115
+ let TimeZone = this.authorizer.getUserTimezone() ?? '';
116
+ const monthNames = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
117
+ const dayName = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
118
+ if (TimeZone === '' || parseInt(timestamp.toString(), 10) <= 0) {
119
+ return '0';
120
+ }
121
+ else {
122
+ const UTC_TIME = new Intl.DateTimeFormat('en', {
123
+ timeZone: TimeZone,
124
+ hour: 'numeric',
125
+ minute: 'numeric',
126
+ });
127
+ const GET_TIME = UTC_TIME.format(new Date(timestamp * 1000));
128
+ const UTC_DATE = new Intl.DateTimeFormat('en', {
129
+ timeZone: TimeZone,
130
+ });
131
+ const MY_DATE = UTC_DATE.format(new Date(timestamp * 1000));
132
+ const date = new Date(MY_DATE);
133
+ const DAY_NAME = dayName[date.getDay()];
134
+ let day = date.getDate().toString();
135
+ day = day.length === 1 ? '0' + day : day;
136
+ const monthIndex = date.getMonth();
137
+ const year = date.getFullYear();
138
+ const GET_DATE = day + '-' + monthNames[monthIndex] + '-' + year;
139
+ // const DATE_TIME = GET_DATE + ' ' + GET_TIME ;
140
+ return GET_DATE;
141
+ }
142
+ }
143
+ return '';
144
+ }
145
+ getNotificationDetails() {
146
+ return this.http.get(this.env.complianceGet + 'complianceReport/TotalResponsibilityQueue').pipe(retry(2));
147
+ }
148
+ userId() {
149
+ return this.authorizer.getUserId() ?? '';
150
+ }
151
+ getBussinessCycle() {
152
+ return this.http.get(this.env.organizationGet + 'orgDetails&id=' + this.getOrgId()).pipe(retry(2));
153
+ }
154
+ getOrgId() {
155
+ const userInfo = this.authorizer.getUser();
156
+ return userInfo?.organisation_id ? userInfo.organisation_id : null;
157
+ }
158
+ resetBusinessCycle() {
159
+ localStorage.removeItem('businessCycle');
160
+ }
161
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthService, deps: [{ token: i1.HttpClient }, { token: i2.AuthorizerService }, { token: i3.OrganizationCommonService }, { token: i4.Configurations, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
162
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthService, providedIn: 'root' }); }
163
+ }
164
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthService, decorators: [{
165
+ type: Injectable,
166
+ args: [{
167
+ providedIn: 'root',
168
+ }]
169
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.AuthorizerService }, { type: i3.OrganizationCommonService }, { type: i4.Configurations, decorators: [{
170
+ type: Optional
171
+ }] }]; } });
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2VydmljZXMvYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQWMsR0FBRyxFQUF5QixLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFPbkcsTUFBTSxPQUFPLFdBQVc7SUFnQnRCLFlBQ1UsSUFBZ0IsRUFDaEIsVUFBNkIsRUFDN0IseUJBQW9ELEVBQ2hELE1BQXVCO1FBSDNCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFDN0IsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEyQjtRQWxCdkQsd0JBQW1CLEdBQTJCLElBQUksZUFBZSxDQUV0RSxFQUFFLENBQUMsQ0FBQztRQUNDLGdCQUFXLEdBQXlCLElBQUksZUFBZSxDQUFNLEVBQUUsQ0FBQyxDQUFDO1FBRXhFLGdCQUFXLEdBQU0sRUFBRSxDQUFDO1FBZ0JsQixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sRUFBRSxTQUFTLENBQUM7SUFDL0IsQ0FBQztJQUNELGFBQWE7UUFDWCxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFPLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEtBQUssWUFBWSxDQUFDLENBQUE7UUFDMUcsSUFBRyxvQkFBb0IsRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFDO1lBQ2xDLE1BQU0sVUFBVSxHQUFHLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNDLE1BQU0sWUFBWSxHQUFPLEVBQUUsQ0FBQTtZQUMzQixVQUFVLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQU8sRUFBQyxFQUFFO2dCQUV0QyxHQUFHLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQWEsRUFBQyxFQUFFO29CQUd2QyxRQUFPLFNBQVMsRUFBRSxJQUFJLEVBQUM7d0JBQ3JCLEtBQUssUUFBUyxDQUFDLENBQUM7NEJBR0MsSUFBRyxTQUFTLEVBQUUsaUJBQWlCLElBQUUsQ0FBQyxJQUFJLFNBQVMsRUFBRSxNQUFNLElBQUUsQ0FBQyxFQUFDO2dDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQTs2QkFBQzs0QkFBQSxDQUFDOzRCQUMxRyxNQUFNO3lCQUNOO3dCQUNqQixLQUFLLFFBQVMsQ0FBQyxDQUFDOzRCQUNBLElBQUksU0FBUyxFQUFFLGlCQUFpQixJQUFJLFNBQVMsRUFBRSxNQUFNLEVBQUM7Z0NBQUUsWUFBWSxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxDQUFBOzZCQUFDOzRCQUFBLENBQUM7NEJBQ3ZHLE1BQU07eUJBQ047d0JBQ2pCLEtBQUssTUFBTyxDQUFDLENBQUM7NEJBQ0ksSUFBRyxTQUFTLEVBQUUsaUJBQWlCLElBQUksU0FBUyxFQUFFLE1BQU0sRUFBQztnQ0FBRSxZQUFZLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUE7NkJBQUM7NEJBQUEsQ0FBQzs0QkFDOUYsTUFBTTt5QkFDTjt3QkFDbEIsS0FBSyxNQUFRLENBQUMsQ0FBQTs0QkFDRSxJQUFHLFNBQVMsRUFBRSxpQkFBaUIsSUFBSSxTQUFTLEVBQUUsTUFBTSxFQUFDO2dDQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQTs2QkFBQzs0QkFBQSxDQUFDOzRCQUNoRyxNQUFNO3lCQUNOO3FCQUVqQjtnQkFDSCxDQUFDLENBQUMsQ0FBQTtZQUNKLENBQUMsQ0FBQyxDQUFBO1lBRUYsSUFBSSxDQUFDLFdBQVcsR0FBRyxZQUFZLENBQUM7U0FDakM7SUFDSCxDQUFDO0lBRUQ7OztNQUdFO0lBQ0YsUUFBUTtRQUNOLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNwQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7O01BR0U7SUFDRixPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsR0FBRyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQzthQUN4RyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBTyxFQUFFLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBVSxDQUFDLENBQUM7WUFFbEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEdBQUcsRUFBRSxXQUFXLENBQUU7WUFDN0MsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDakIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixPQUFPLElBQUksQ0FBQyx5QkFBeUI7WUFDbkMsRUFBRSwwQkFBMEIsRUFBRTtZQUM5QixFQUFFLFNBQVMsQ0FBQztZQUNWLElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNqQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLEdBQVUsQ0FBQyxDQUFDO1lBQzdDLENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxLQUFZLEVBQUUsRUFBRTtnQkFDdEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDaEMsT0FBTyxXQUFXLENBQUM7U0FDcEI7YUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDcEMsT0FBTyxPQUFPLENBQUM7U0FDaEI7YUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDdEMsT0FBTyxTQUFTLENBQUM7U0FDbEI7YUFBTTtZQUNMLE9BQU8sV0FBVyxDQUFDO1NBQ3BCO0lBQ0gsQ0FBQztJQUNELE1BQU07UUFDSixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFBO0lBQzFCLENBQUM7SUFDRCx5QkFBeUIsQ0FBQyxTQUEwQjtRQUNsRCxJQUFJLE9BQU8sU0FBUyxLQUFLLFFBQVEsRUFBRTtZQUNqQyxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsRUFBRSxJQUFFLEVBQUUsQ0FBQztZQUNyRCxNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDeEcsTUFBTSxPQUFPLEdBQUcsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUMvRixJQUFJLFFBQVEsS0FBSyxFQUFFLElBQUksUUFBUSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzlELE9BQU8sR0FBRyxDQUFDO2FBQ1o7aUJBQU07Z0JBQ0wsTUFBTSxRQUFRLEdBQUcsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRTtvQkFDN0MsUUFBUSxFQUFFLFFBQVE7b0JBQ2xCLElBQUksRUFBRSxTQUFTO29CQUNmLE1BQU0sRUFBRSxTQUFTO2lCQUNsQixDQUFDLENBQUM7Z0JBQ0gsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFFN0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRTtvQkFDN0MsUUFBUSxFQUFFLFFBQVE7aUJBQ25CLENBQUMsQ0FBQztnQkFFSCxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUM1RCxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDL0IsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2dCQUN4QyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3BDLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO2dCQUN6QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ25DLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFFaEMsTUFBTSxRQUFRLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQztnQkFFakUsZ0RBQWdEO2dCQUNoRCxPQUFPLFFBQVEsQ0FBQzthQUNqQjtTQUNGO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBQ0Qsc0JBQXNCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQVMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEdBQUcsMkNBQTJDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEgsQ0FBQztJQUVBLE1BQU07UUFDTCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLElBQUUsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxpQkFBaUI7UUFDaEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsR0FBRyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckcsQ0FBQztJQUVELFFBQVE7UUFDTixNQUFNLFFBQVEsR0FBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzVDLE9BQU8sUUFBUSxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDO0lBQ3BFLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsWUFBWSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMzQyxDQUFDOytHQTNLVSxXQUFXO21IQUFYLFdBQVcsY0FGVixNQUFNOzs0RkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBcUJJLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNhdGNoRXJyb3IsIG1hcCwgT2JzZXJ2YWJsZSwgb2YsIHBsdWNrLCByZXRyeSwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQXV0aG9yaXplclNlcnZpY2UgfSBmcm9tICdAdmNvbXBseS9hdXRob3JpemVyJztcclxuaW1wb3J0IHsgQ29uZmlndXJhdGlvbnMgfSBmcm9tICcuLi9jb25maWd1cmF0aW9ucyc7XHJcbmltcG9ydCB7IE9yZ2FuaXphdGlvbkNvbW1vblNlcnZpY2UgfSBmcm9tICcuLi93b3JrZmxvdy1zZXJ2aWNlcy9jb21tb24td29ya2Zsb3ctc2VydmljZXMvb3JnYW5pemF0aW9uLWNvbW1vbi5zZXJ2aWNlJztcclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhTZXJ2aWNlIHtcclxuICBwdWJsaWMgc3Vic2NyaXB0aW9uRGV0YWlsczogQmVoYXZpb3JTdWJqZWN0PGFueVtdPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XHJcbiAgICBhbnlbXVxyXG4gID4oW10pO1xyXG4gIHB1YmxpYyB1c2VyRGV0YWlsczogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4oe30pO1xyXG4gIGVudjogYW55O1xyXG4gIHBlcm1pc3Npb25zOmFueSA9W107XHJcblxyXG5cclxuICAvL1ZJRVdfQVNTRVNTTUVOVF9MSUJSQVJZXHJcbiAgLy9NQU5BR0VfQVNTRVNTTUVOVF9MSUJSQVJZXHJcbiAgLy9WSUVXX0FTU0VTU01FTlRTXHJcbiAgLy9WSUVXX0FTU0VTU01FTlRTXHJcblxyXG4gIHJvbGVCYXNlZFBlcm1pc3Npb24gITphbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBhdXRob3JpemVyOiBBdXRob3JpemVyU2VydmljZSxcclxuICAgIHByaXZhdGUgb3JnYW5pemF0aW9uQ29tbW9uU2VydmljZTogT3JnYW5pemF0aW9uQ29tbW9uU2VydmljZSxcclxuICAgIEBPcHRpb25hbCgpIGNvbmZpZz86IENvbmZpZ3VyYXRpb25zXHJcbiAgKSB7XHJcbiAgICB0aGlzLmdldFN1YnNjcmlwdGlvbkRldGFpbHMoKTtcclxuICAgIHRoaXMuZW52ID0gY29uZmlnPy5lbnZDb25maWc7XHJcbiAgfVxyXG4gIHNldFBlcm1pc3Npb24oKXtcclxuICAgIGNvbnN0IGFzc2Vzc21lbnRQZXJtaXNzaW9uID0gdGhpcy5yb2xlQmFzZWRQZXJtaXNzaW9uLmZpbHRlcigoZWxlOmFueSkgPT4gZWxlLm1vZHVsZU5hbWUgPT09ICdhc3Nlc3NtZW50JylcclxuICAgIGlmKGFzc2Vzc21lbnRQZXJtaXNzaW9uPy5sZW5ndGggPiAwKXtcclxuICAgICAgY29uc3QgcGVybWlzc2lvbiA9IGFzc2Vzc21lbnRQZXJtaXNzaW9uWzBdO1xyXG4gICAgICBjb25zdCBhbGxvd2VkRmxvd3M6YW55ID0gW11cclxuICAgICAgcGVybWlzc2lvbi5zdWJNb2R1bGUuZm9yRWFjaCgoZWxlOmFueSk9PntcclxuXHJcbiAgICAgICAgZWxlLnBlcm1pc3Npb25zLmZvckVhY2goKHN1Yk1vZHVsZTphbnkpPT57XHJcblxyXG5cclxuICAgICAgICAgIHN3aXRjaChzdWJNb2R1bGU/LmNvZGUpe1xyXG4gICAgICAgICAgICBjYXNlICdBQUxWQUwnIDoge1xyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoc3ViTW9kdWxlPy5kZWZhdWx0UGVybWlzc2lvbj09MSB8fCBzdWJNb2R1bGU/LmVuYWJsZT09MSl7YWxsb3dlZEZsb3dzLnB1c2goJ1ZJRVdfQVNTRVNTTUVOVF9MSUJSQVJZJyl9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXNlICdBQUxNQUwnIDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN1Yk1vZHVsZT8uZGVmYXVsdFBlcm1pc3Npb24gfHwgc3ViTW9kdWxlPy5lbmFibGUpeyBhbGxvd2VkRmxvd3MucHVzaCgnTUFOQUdFX0FTU0VTU01FTlRfTElCUkFSWScpfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FzZSAnQUFWQScgOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHN1Yk1vZHVsZT8uZGVmYXVsdFBlcm1pc3Npb24gfHwgc3ViTW9kdWxlPy5lbmFibGUpeyBhbGxvd2VkRmxvd3MucHVzaCgnVklFV19BU1NFU1NNRU5UUycpfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXNlICdBQU1BJyAgOntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHN1Yk1vZHVsZT8uZGVmYXVsdFBlcm1pc3Npb24gfHwgc3ViTW9kdWxlPy5lbmFibGUpeyBhbGxvd2VkRmxvd3MucHVzaCgnTUFOQUdFX0FTU0VTU01FTlRTJyl9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgfSlcclxuXHJcbiAgICAgIHRoaXMucGVybWlzc2lvbnMgPSBhbGxvd2VkRmxvd3M7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAqIFJldHVybnMgd2VhdGhlciB0aGUgdXNlciBkYXRhIGxvYWRlZCBvciBub3RcclxuICAqIEByZXR1cm5zXHJcbiAgKi9cclxuICBzdGFydEFwcCgpIHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIHRoaXMuZ2V0VXNlcigpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgICByZXNvbHZlKHRydWUpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgKiBHZXRzIHVzZXIgZGV0YWlsc1xyXG4gICogQHJldHVybnNcclxuICAqL1xyXG4gIGdldFVzZXIoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmVudi5vcmdhbml6YXRpb25HZXQgKyAnbWVtYmVyRmluZGJ5SWQmaWQ9JyArIHRoaXMuYXV0aG9yaXplci5nZXRNZW1iZXJJZCgpID8/ICcnKVxyXG4gICAgICAucGlwZShtYXAoKHJlczphbnkpID0+IHtcclxuICAgICAgICB0aGlzLnVzZXJEZXRhaWxzLm5leHQocmVzIGFzIGFueSk7XHJcblxyXG4gICAgICAgIHRoaXMucm9sZUJhc2VkUGVybWlzc2lvbiA9IHJlcz8ucm9sZUFjdGlvbnMgO1xyXG4gICAgICAgIHRoaXMuc2V0UGVybWlzc2lvbigpO1xyXG4gICAgICB9KSwgc2hhcmVSZXBsYXkoMSlcclxuICAgICAgKS5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIGdldFN1YnNjcmlwdGlvbkRldGFpbHMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5vcmdhbml6YXRpb25Db21tb25TZXJ2aWNlXHJcbiAgICAgID8uZ2V0U3Vic2NyaXB0aW9uRGV0YWlsc0luZm8oKVxyXG4gICAgICA/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbkRldGFpbHM/Lm5leHQocmVzIGFzIGFueSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycm9yOiBFcnJvcikgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRVc2VyUm9sZSgpOiAnS0VZX0FETUlOJyB8ICdBRE1JTicgfCAnTUFOQUdFUicgfCAnRVhFQ1VUSVZFJyB7XHJcbiAgICBpZiAodGhpcy5hdXRob3JpemVyLmlzS2V5QWRtaW4oKSkge1xyXG4gICAgICByZXR1cm4gJ0tFWV9BRE1JTic7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuYXV0aG9yaXplci5pc0FkbWluKCkpIHtcclxuICAgICAgcmV0dXJuICdBRE1JTic7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuYXV0aG9yaXplci5pc01hbmFnZXIoKSkge1xyXG4gICAgICByZXR1cm4gJ01BTkFHRVInO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuICdFWEVDVVRJVkUnO1xyXG4gICAgfVxyXG4gIH1cclxuICBsb2dvdXQoKXtcclxuICAgIHRoaXMuYXV0aG9yaXplci5sb2dvdXQoKVxyXG4gIH1cclxuICBjb252ZXJ0VXRjVG9Mb2NhbERhdGVUaW1lKHRpbWVzdGFtcDogc3RyaW5nIHwgbnVtYmVyKSB7XHJcbiAgICBpZiAodHlwZW9mIHRpbWVzdGFtcCAhPT0gJ3N0cmluZycpIHtcclxuICAgICAgbGV0IFRpbWVab25lID0gdGhpcy5hdXRob3JpemVyLmdldFVzZXJUaW1lem9uZSgpPz8nJztcclxuICAgICAgY29uc3QgbW9udGhOYW1lcyA9IFsnSmFuJywgJ0ZlYicsICdNYXInLCAnQXByJywgJ01heScsICdKdW4nLCAnSnVsJywgJ0F1ZycsICdTZXAnLCAnT2N0JywgJ05vdicsICdEZWMnXTtcclxuICAgICAgY29uc3QgZGF5TmFtZSA9IFsnU3VuZGF5JywgJ01vbmRheScsICdUdWVzZGF5JywgJ1dlZG5lc2RheScsICdUaHVyc2RheScsICdGcmlkYXknLCAnU2F0dXJkYXknXTtcclxuICAgICAgaWYgKFRpbWVab25lID09PSAnJyB8fCBwYXJzZUludCh0aW1lc3RhbXAudG9TdHJpbmcoKSwgMTApIDw9IDApIHtcclxuICAgICAgICByZXR1cm4gJzAnO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IFVUQ19USU1FID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoJ2VuJywge1xyXG4gICAgICAgICAgdGltZVpvbmU6IFRpbWVab25lLFxyXG4gICAgICAgICAgaG91cjogJ251bWVyaWMnLFxyXG4gICAgICAgICAgbWludXRlOiAnbnVtZXJpYycsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3QgR0VUX1RJTUUgPSBVVENfVElNRS5mb3JtYXQobmV3IERhdGUodGltZXN0YW1wICogMTAwMCkpO1xyXG5cclxuICAgICAgICBjb25zdCBVVENfREFURSA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCdlbicsIHtcclxuICAgICAgICAgIHRpbWVab25lOiBUaW1lWm9uZSxcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgY29uc3QgTVlfREFURSA9IFVUQ19EQVRFLmZvcm1hdChuZXcgRGF0ZSh0aW1lc3RhbXAgKiAxMDAwKSk7XHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKE1ZX0RBVEUpO1xyXG4gICAgICAgIGNvbnN0IERBWV9OQU1FID0gZGF5TmFtZVtkYXRlLmdldERheSgpXTtcclxuICAgICAgICBsZXQgZGF5ID0gZGF0ZS5nZXREYXRlKCkudG9TdHJpbmcoKTtcclxuICAgICAgICBkYXkgPSBkYXkubGVuZ3RoID09PSAxID8gJzAnICsgZGF5IDogZGF5O1xyXG4gICAgICAgIGNvbnN0IG1vbnRoSW5kZXggPSBkYXRlLmdldE1vbnRoKCk7XHJcbiAgICAgICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcclxuXHJcbiAgICAgICAgY29uc3QgR0VUX0RBVEUgPSBkYXkgKyAnLScgKyBtb250aE5hbWVzW21vbnRoSW5kZXhdICsgJy0nICsgeWVhcjtcclxuXHJcbiAgICAgICAgLy8gY29uc3QgREFURV9USU1FID0gR0VUX0RBVEUgKyAnICcgKyBHRVRfVElNRSA7XHJcbiAgICAgICAgcmV0dXJuIEdFVF9EQVRFO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG4gIGdldE5vdGlmaWNhdGlvbkRldGFpbHMoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PG51bWJlcj4odGhpcy5lbnYuY29tcGxpYW5jZUdldCArICdjb21wbGlhbmNlUmVwb3J0L1RvdGFsUmVzcG9uc2liaWxpdHlRdWV1ZScpLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiAgIHVzZXJJZCgpe1xyXG4gICAgcmV0dXJuIHRoaXMuYXV0aG9yaXplci5nZXRVc2VySWQoKT8/Jyc7XHJcbiAgIH1cclxuXHJcbiAgIGdldEJ1c3NpbmVzc0N5Y2xlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5lbnYub3JnYW5pemF0aW9uR2V0ICsgJ29yZ0RldGFpbHMmaWQ9JyArIHRoaXMuZ2V0T3JnSWQoKSkucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuICBnZXRPcmdJZCgpe1xyXG4gICAgY29uc3QgdXNlckluZm8gID0gdGhpcy5hdXRob3JpemVyLmdldFVzZXIoKTtcclxuICAgIHJldHVybiB1c2VySW5mbz8ub3JnYW5pc2F0aW9uX2lkID8gdXNlckluZm8ub3JnYW5pc2F0aW9uX2lkIDpudWxsO1xyXG4gIH1cclxuXHJcbiAgcmVzZXRCdXNpbmVzc0N5Y2xlKCkge1xyXG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2J1c2luZXNzQ3ljbGUnKTtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG59XHJcbiJdfQ==
@@ -15,15 +15,17 @@ export class CommonService {
15
15
  const targetElement = event?.target;
16
16
  if (!targetElement)
17
17
  return false;
18
- const dateInputElement = document.getElementById(className);
19
- const datePickerCalendarContainer = document.querySelector(".dp-day-calendar-container");
20
- const monthYearElement = document.querySelector(".dp-month-calendar-container");
18
+ const dateInputElement = document?.getElementById(className);
19
+ const datePickerCalendarContainer = document?.querySelector('.dp-day-calendar-container');
20
+ const monthYearElement = document?.querySelector('.dp-month-calendar-container');
21
21
  const isNotMonthYearElement = !monthYearElement?.contains(targetElement);
22
22
  const isOutsidePopup = !popup?.nativeElement?.contains(targetElement);
23
- const isOutsidePopup2 = !popup?.nativeElement?.className.includes("dp-calendar-month");
23
+ const isOutsidePopup2 = !popup?.nativeElement?.className.includes('dp-calendar-month');
24
24
  const isNotDateInputElement = targetElement !== dateInputElement;
25
25
  const isNotInsideCalendar = !datePickerCalendarContainer?.contains(targetElement);
26
- const isNotCalendarMonth = !targetElement.className.includes("dp-calendar-month");
26
+ const isNotCalendarMonth = !targetElement ||
27
+ typeof targetElement?.className !== 'string' ||
28
+ !targetElement?.className?.includes('dp-calendar-month');
27
29
  if (datePickerCalendarContainer &&
28
30
  isNotMonthYearElement &&
29
31
  isOutsidePopup &&
@@ -52,4 +54,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
52
54
  providedIn: 'root',
53
55
  }]
54
56
  }] });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zZXJ2aWNlcy9jb21tb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDOztBQUtqRSxNQUFNLE9BQU8sYUFBYTtJQUgxQjtRQUlJLHFCQUFnQixHQUFHO1lBQ2YsS0FBSyxFQUFFLElBQUk7WUFDWCxLQUFLLEVBQUUsRUFBRTtZQUNULEtBQUssRUFBRSxJQUFJO1lBQ1gsU0FBUyxFQUFFLElBQUk7WUFDZixPQUFPLEVBQUUsS0FBSztTQUNqQixDQUFBO0tBNERKO0lBM0RHLG1CQUFtQixDQUFDLGdCQUFxQjtRQUN2QyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsZ0JBQWdCLElBQUksRUFBRSxDQUFDO1FBQ2xFLE1BQU0sYUFBYSxHQUFHLEtBQUssRUFBRSxNQUFpQixDQUFDO1FBRS9DLElBQUksQ0FBQyxhQUFhO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFFakMsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzVELE1BQU0sMkJBQTJCLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FDeEQsNEJBQTRCLENBQzdCLENBQUM7UUFDRixNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQzdDLDhCQUE4QixDQUMvQixDQUFDO1FBRUYsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6RSxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sZUFBZSxHQUFHLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxTQUFTLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFFdkYsTUFBTSxxQkFBcUIsR0FBRyxhQUFhLEtBQUssZ0JBQWdCLENBQUM7UUFDakUsTUFBTSxtQkFBbUIsR0FDdkIsQ0FBQywyQkFBMkIsRUFBRSxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEQsTUFBTSxrQkFBa0IsR0FDdEIsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRXpELElBQ0UsMkJBQTJCO1lBQzNCLHFCQUFxQjtZQUNyQixjQUFjO1lBQ2QscUJBQXFCO1lBQ3JCLG1CQUFtQjtZQUNuQixrQkFBa0I7WUFDbEIsZUFBZSxFQUNmO1lBQ0EsSUFBSSxDQUFDLHFCQUFxQixDQUN4QixhQUFhLEVBQ2IsS0FBSyxFQUNMLGdCQUFnQixFQUFFLE9BQU8sRUFDekIsZ0JBQWdCLEVBQUUsU0FBUyxDQUM1QixDQUFDO1lBQ0YsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVLLHFCQUFxQixDQUMzQixNQUFXLEVBQ1gsYUFBeUIsRUFDekIsaUJBQTBCLEVBQzFCLFVBQWU7UUFFZixJQUNFLENBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQy9DLFVBQVUsRUFBRSxpQkFBaUIsRUFDN0I7WUFDQSxVQUFVLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ3pCLGlCQUFpQixHQUFHLEtBQUssQ0FBQztTQUMzQjtJQUNILENBQUM7K0dBbEVVLGFBQWE7bUhBQWIsYUFBYSxjQUZaLE1BQU07OzRGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb21tb25TZXJ2aWNlIHtcclxuICAgIGRhdGVQaWNrZXJPYmplY3QgPSB7XHJcbiAgICAgICAgZXZlbnQ6IG51bGwsXHJcbiAgICAgICAgY2xhc3M6ICcnLFxyXG4gICAgICAgIHBvcHVwOiBudWxsLFxyXG4gICAgICAgIGNvbXBvbmVudDogbnVsbCxcclxuICAgICAgICBvdmVybGF5OiBmYWxzZSxcclxuICAgIH1cclxuICAgIGhhbmRsZURvY3VtZW50Q2xpY2soZGF0ZVBpY2tlck9iamVjdDogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgIGNvbnN0IHsgZXZlbnQsIHBvcHVwLCBjbGFzczogY2xhc3NOYW1lIH0gPSBkYXRlUGlja2VyT2JqZWN0IHx8IHt9O1xyXG4gICAgICBjb25zdCB0YXJnZXRFbGVtZW50ID0gZXZlbnQ/LnRhcmdldCBhcyBFbGVtZW50O1xyXG4gIFxyXG4gICAgICBpZiAoIXRhcmdldEVsZW1lbnQpIHJldHVybiBmYWxzZTtcclxuICBcclxuICAgICAgY29uc3QgZGF0ZUlucHV0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNsYXNzTmFtZSk7XHJcbiAgICAgIGNvbnN0IGRhdGVQaWNrZXJDYWxlbmRhckNvbnRhaW5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXHJcbiAgICAgICAgXCIuZHAtZGF5LWNhbGVuZGFyLWNvbnRhaW5lclwiXHJcbiAgICAgICk7XHJcbiAgICAgIGNvbnN0IG1vbnRoWWVhckVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxyXG4gICAgICAgIFwiLmRwLW1vbnRoLWNhbGVuZGFyLWNvbnRhaW5lclwiXHJcbiAgICAgICk7XHJcbiAgXHJcbiAgICAgIGNvbnN0IGlzTm90TW9udGhZZWFyRWxlbWVudCA9ICFtb250aFllYXJFbGVtZW50Py5jb250YWlucyh0YXJnZXRFbGVtZW50KTtcclxuICAgICAgY29uc3QgaXNPdXRzaWRlUG9wdXAgPSAhcG9wdXA/Lm5hdGl2ZUVsZW1lbnQ/LmNvbnRhaW5zKHRhcmdldEVsZW1lbnQpO1xyXG4gICAgICBjb25zdCBpc091dHNpZGVQb3B1cDIgPSAhcG9wdXA/Lm5hdGl2ZUVsZW1lbnQ/LmNsYXNzTmFtZS5pbmNsdWRlcyhcImRwLWNhbGVuZGFyLW1vbnRoXCIpO1xyXG4gIFxyXG4gICAgICBjb25zdCBpc05vdERhdGVJbnB1dEVsZW1lbnQgPSB0YXJnZXRFbGVtZW50ICE9PSBkYXRlSW5wdXRFbGVtZW50O1xyXG4gICAgICBjb25zdCBpc05vdEluc2lkZUNhbGVuZGFyID1cclxuICAgICAgICAhZGF0ZVBpY2tlckNhbGVuZGFyQ29udGFpbmVyPy5jb250YWlucyh0YXJnZXRFbGVtZW50KTtcclxuICAgICAgY29uc3QgaXNOb3RDYWxlbmRhck1vbnRoID1cclxuICAgICAgICAhdGFyZ2V0RWxlbWVudC5jbGFzc05hbWUuaW5jbHVkZXMoXCJkcC1jYWxlbmRhci1tb250aFwiKTtcclxuICBcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGRhdGVQaWNrZXJDYWxlbmRhckNvbnRhaW5lciAmJlxyXG4gICAgICAgIGlzTm90TW9udGhZZWFyRWxlbWVudCAmJlxyXG4gICAgICAgIGlzT3V0c2lkZVBvcHVwICYmXHJcbiAgICAgICAgaXNOb3REYXRlSW5wdXRFbGVtZW50ICYmXHJcbiAgICAgICAgaXNOb3RJbnNpZGVDYWxlbmRhciAmJlxyXG4gICAgICAgIGlzTm90Q2FsZW5kYXJNb250aCAmJlxyXG4gICAgICAgIGlzT3V0c2lkZVBvcHVwMlxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmNsb3NlRGF0ZVBpY2tlcklmT3BlbihcclxuICAgICAgICAgIHRhcmdldEVsZW1lbnQsXHJcbiAgICAgICAgICBwb3B1cCxcclxuICAgICAgICAgIGRhdGVQaWNrZXJPYmplY3Q/Lm92ZXJsYXksXHJcbiAgICAgICAgICBkYXRlUGlja2VyT2JqZWN0Py5jb21wb25lbnRcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgXHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgcHJpdmF0ZSBjbG9zZURhdGVQaWNrZXJJZk9wZW4oXHJcbiAgICB0YXJnZXQ6IGFueSxcclxuICAgIG9wZW5lZEVsZW1lbnQ6IEVsZW1lbnRSZWYsXHJcbiAgICBkYXRlUGlja2VyT3ZlcmxheTogYm9vbGVhbixcclxuICAgIERhdGVQaWNrZXI6IGFueVxyXG4gICk6IHZvaWQge1xyXG4gICAgaWYgKFxyXG4gICAgICAhb3BlbmVkRWxlbWVudD8ubmF0aXZlRWxlbWVudD8uY29udGFpbnModGFyZ2V0KSAmJlxyXG4gICAgICBEYXRlUGlja2VyPy5hcmVDYWxlbmRhcnNTaG93blxyXG4gICAgKSB7XHJcbiAgICAgIERhdGVQaWNrZXI/LmFwaT8uY2xvc2UoKTtcclxuICAgICAgZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zZXJ2aWNlcy9jb21tb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDOztBQUtqRSxNQUFNLE9BQU8sYUFBYTtJQUgxQjtRQUlFLHFCQUFnQixHQUFHO1lBQ2pCLEtBQUssRUFBRSxJQUFJO1lBQ1gsS0FBSyxFQUFFLEVBQUU7WUFDVCxLQUFLLEVBQUUsSUFBSTtZQUNYLFNBQVMsRUFBRSxJQUFJO1lBQ2YsT0FBTyxFQUFFLEtBQUs7U0FDZixDQUFDO0tBK0RIO0lBOURDLG1CQUFtQixDQUFDLGdCQUFxQjtRQUN2QyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsZ0JBQWdCLElBQUksRUFBRSxDQUFDO1FBQ2xFLE1BQU0sYUFBYSxHQUFHLEtBQUssRUFBRSxNQUFpQixDQUFDO1FBRS9DLElBQUksQ0FBQyxhQUFhO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFFakMsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLEVBQUUsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdELE1BQU0sMkJBQTJCLEdBQUcsUUFBUSxFQUFFLGFBQWEsQ0FDekQsNEJBQTRCLENBQzdCLENBQUM7UUFDRixNQUFNLGdCQUFnQixHQUFHLFFBQVEsRUFBRSxhQUFhLENBQzlDLDhCQUE4QixDQUMvQixDQUFDO1FBRUYsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6RSxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sZUFBZSxHQUNuQixDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRWpFLE1BQU0scUJBQXFCLEdBQUcsYUFBYSxLQUFLLGdCQUFnQixDQUFDO1FBQ2pFLE1BQU0sbUJBQW1CLEdBQ3ZCLENBQUMsMkJBQTJCLEVBQUUsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sa0JBQWtCLEdBQ3RCLENBQUMsYUFBYTtZQUNkLE9BQU8sYUFBYSxFQUFFLFNBQVMsS0FBSyxRQUFRO1lBQzVDLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUUzRCxJQUNFLDJCQUEyQjtZQUMzQixxQkFBcUI7WUFDckIsY0FBYztZQUNkLHFCQUFxQjtZQUNyQixtQkFBbUI7WUFDbkIsa0JBQWtCO1lBQ2xCLGVBQWUsRUFDZjtZQUNBLElBQUksQ0FBQyxxQkFBcUIsQ0FDeEIsYUFBYSxFQUNiLEtBQUssRUFDTCxnQkFBZ0IsRUFBRSxPQUFPLEVBQ3pCLGdCQUFnQixFQUFFLFNBQVMsQ0FDNUIsQ0FBQztZQUNGLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxxQkFBcUIsQ0FDM0IsTUFBVyxFQUNYLGFBQXlCLEVBQ3pCLGlCQUEwQixFQUMxQixVQUFlO1FBRWYsSUFDRSxDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUMvQyxVQUFVLEVBQUUsaUJBQWlCLEVBQzdCO1lBQ0EsVUFBVSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUN6QixpQkFBaUIsR0FBRyxLQUFLLENBQUM7U0FDM0I7SUFDSCxDQUFDOytHQXJFVSxhQUFhO21IQUFiLGFBQWEsY0FGWixNQUFNOzs0RkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29tbW9uU2VydmljZSB7XHJcbiAgZGF0ZVBpY2tlck9iamVjdCA9IHtcclxuICAgIGV2ZW50OiBudWxsLFxyXG4gICAgY2xhc3M6ICcnLFxyXG4gICAgcG9wdXA6IG51bGwsXHJcbiAgICBjb21wb25lbnQ6IG51bGwsXHJcbiAgICBvdmVybGF5OiBmYWxzZSxcclxuICB9O1xyXG4gIGhhbmRsZURvY3VtZW50Q2xpY2soZGF0ZVBpY2tlck9iamVjdDogYW55KTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCB7IGV2ZW50LCBwb3B1cCwgY2xhc3M6IGNsYXNzTmFtZSB9ID0gZGF0ZVBpY2tlck9iamVjdCB8fCB7fTtcclxuICAgIGNvbnN0IHRhcmdldEVsZW1lbnQgPSBldmVudD8udGFyZ2V0IGFzIEVsZW1lbnQ7XHJcblxyXG4gICAgaWYgKCF0YXJnZXRFbGVtZW50KSByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgY29uc3QgZGF0ZUlucHV0RWxlbWVudCA9IGRvY3VtZW50Py5nZXRFbGVtZW50QnlJZChjbGFzc05hbWUpO1xyXG4gICAgY29uc3QgZGF0ZVBpY2tlckNhbGVuZGFyQ29udGFpbmVyID0gZG9jdW1lbnQ/LnF1ZXJ5U2VsZWN0b3IoXHJcbiAgICAgICcuZHAtZGF5LWNhbGVuZGFyLWNvbnRhaW5lcidcclxuICAgICk7XHJcbiAgICBjb25zdCBtb250aFllYXJFbGVtZW50ID0gZG9jdW1lbnQ/LnF1ZXJ5U2VsZWN0b3IoXHJcbiAgICAgICcuZHAtbW9udGgtY2FsZW5kYXItY29udGFpbmVyJ1xyXG4gICAgKTtcclxuXHJcbiAgICBjb25zdCBpc05vdE1vbnRoWWVhckVsZW1lbnQgPSAhbW9udGhZZWFyRWxlbWVudD8uY29udGFpbnModGFyZ2V0RWxlbWVudCk7XHJcbiAgICBjb25zdCBpc091dHNpZGVQb3B1cCA9ICFwb3B1cD8ubmF0aXZlRWxlbWVudD8uY29udGFpbnModGFyZ2V0RWxlbWVudCk7XHJcbiAgICBjb25zdCBpc091dHNpZGVQb3B1cDIgPVxyXG4gICAgICAhcG9wdXA/Lm5hdGl2ZUVsZW1lbnQ/LmNsYXNzTmFtZS5pbmNsdWRlcygnZHAtY2FsZW5kYXItbW9udGgnKTtcclxuXHJcbiAgICBjb25zdCBpc05vdERhdGVJbnB1dEVsZW1lbnQgPSB0YXJnZXRFbGVtZW50ICE9PSBkYXRlSW5wdXRFbGVtZW50O1xyXG4gICAgY29uc3QgaXNOb3RJbnNpZGVDYWxlbmRhciA9XHJcbiAgICAgICFkYXRlUGlja2VyQ2FsZW5kYXJDb250YWluZXI/LmNvbnRhaW5zKHRhcmdldEVsZW1lbnQpO1xyXG4gICAgY29uc3QgaXNOb3RDYWxlbmRhck1vbnRoID1cclxuICAgICAgIXRhcmdldEVsZW1lbnQgfHxcclxuICAgICAgdHlwZW9mIHRhcmdldEVsZW1lbnQ/LmNsYXNzTmFtZSAhPT0gJ3N0cmluZycgfHxcclxuICAgICAgIXRhcmdldEVsZW1lbnQ/LmNsYXNzTmFtZT8uaW5jbHVkZXMoJ2RwLWNhbGVuZGFyLW1vbnRoJyk7XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICBkYXRlUGlja2VyQ2FsZW5kYXJDb250YWluZXIgJiZcclxuICAgICAgaXNOb3RNb250aFllYXJFbGVtZW50ICYmXHJcbiAgICAgIGlzT3V0c2lkZVBvcHVwICYmXHJcbiAgICAgIGlzTm90RGF0ZUlucHV0RWxlbWVudCAmJlxyXG4gICAgICBpc05vdEluc2lkZUNhbGVuZGFyICYmXHJcbiAgICAgIGlzTm90Q2FsZW5kYXJNb250aCAmJlxyXG4gICAgICBpc091dHNpZGVQb3B1cDJcclxuICAgICkge1xyXG4gICAgICB0aGlzLmNsb3NlRGF0ZVBpY2tlcklmT3BlbihcclxuICAgICAgICB0YXJnZXRFbGVtZW50LFxyXG4gICAgICAgIHBvcHVwLFxyXG4gICAgICAgIGRhdGVQaWNrZXJPYmplY3Q/Lm92ZXJsYXksXHJcbiAgICAgICAgZGF0ZVBpY2tlck9iamVjdD8uY29tcG9uZW50XHJcbiAgICAgICk7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2xvc2VEYXRlUGlja2VySWZPcGVuKFxyXG4gICAgdGFyZ2V0OiBhbnksXHJcbiAgICBvcGVuZWRFbGVtZW50OiBFbGVtZW50UmVmLFxyXG4gICAgZGF0ZVBpY2tlck92ZXJsYXk6IGJvb2xlYW4sXHJcbiAgICBEYXRlUGlja2VyOiBhbnlcclxuICApOiB2b2lkIHtcclxuICAgIGlmIChcclxuICAgICAgIW9wZW5lZEVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ/LmNvbnRhaW5zKHRhcmdldCkgJiZcclxuICAgICAgRGF0ZVBpY2tlcj8uYXJlQ2FsZW5kYXJzU2hvd25cclxuICAgICkge1xyXG4gICAgICBEYXRlUGlja2VyPy5hcGk/LmNsb3NlKCk7XHJcbiAgICAgIGRhdGVQaWNrZXJPdmVybGF5ID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -6,12 +6,14 @@ import * as i3 from "../v-loader/loader-inline/loader-inline.component";
6
6
  export class BulkViewComponent {
7
7
  constructor() {
8
8
  this.loader = false;
9
+ this.ffLinkedGrcObjects = false;
9
10
  this.submitRiskBulkUpload = new EventEmitter();
10
11
  this.cancel = new EventEmitter();
11
12
  this.finalRisks = 0;
12
13
  this.showCompleteAssessmentButton = false;
13
14
  }
14
15
  ngOnChanges() {
16
+ console.log(this.riskBulkUpload, 'risk');
15
17
  if (this.riskBulkUpload) {
16
18
  this.finalRisks = 0;
17
19
  this.riskBulkUpload.risks.forEach((risk) => {
@@ -50,11 +52,11 @@ export class BulkViewComponent {
50
52
  this.cancel.emit();
51
53
  }
52
54
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BulkViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
53
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BulkViewComponent, selector: "app-bulk-view", inputs: { riskBulkUpload: "riskBulkUpload", templateInfo: "templateInfo", fileName: "fileName", assessmentDaysEnable: "assessmentDaysEnable", defaultOwner: "defaultOwner", loader: "loader" }, outputs: { submitRiskBulkUpload: "submitRiskBulkUpload", cancel: "cancel" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"bulk-view\">\r\n <div class=\"bulk-view-head\">\r\n <h2 class=\"bulk-view-title\">\r\n {{ fileName }}\r\n </h2>\r\n </div>\r\n <div class=\"bulk-view-body\">\r\n <div class=\"exel-view\">\r\n <div class=\"exel-view-row head\">\r\n <div class=\"exel-view-column sl-no\">#</div>\r\n <div\r\n class=\"exel-view-column\"\r\n [class.two-column]=\"heading && i === 5\"\r\n *ngFor=\"let heading of riskBulkUpload?.header; let i = index\"\r\n [class.large]=\"heading && heading.startsWith('Inherent')\"\r\n >\r\n <ng-container\r\n *ngIf=\"heading && !heading.startsWith('Inherent') && !(i === 5)\"\r\n >\r\n {{ heading.includes(\"*\") ? heading.replace(\"*\", \"\") : heading }}\r\n <span *ngIf=\"heading.includes('*')\" class=\"required\">*</span>\r\n </ng-container>\r\n <ng-container *ngIf=\"heading && heading.startsWith('Inherent')\">\r\n <div class=\"exel-view-row\">\r\n <div class=\"exel-view-column large\">Inherent Risk Assessment</div>\r\n </div>\r\n <div class=\"exel-view-row multi-column\">\r\n <div\r\n class=\"exel-view-column\"\r\n *ngFor=\"\r\n let weightAgeFactor of riskBulkUpload.weightFactors\r\n | slice : 2\r\n \"\r\n >\r\n {{ weightAgeFactor }}\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"heading && i === 5\">\r\n <div class=\"exel-view-row\">\r\n <div class=\"exel-view-column large\">\r\n {{ heading.includes(\"*\") ? heading.replace(\"*\", \"\") : heading }}\r\n <span *ngIf=\"heading.includes('*')\" class=\"required\">*</span>\r\n </div>\r\n </div>\r\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\r\n <div\r\n class=\"exel-view-column\"\r\n *ngFor=\"\r\n let weightAgeFactor of riskBulkUpload?.weightFactors\r\n | slice : 0 : 2\r\n \"\r\n >\r\n {{\r\n weightAgeFactor.includes(\"*\")\r\n ? weightAgeFactor.replace(\"*\", \"\")\r\n : weightAgeFactor\r\n }}\r\n <span *ngIf=\"weightAgeFactor.includes('*')\" class=\"required\"\r\n >*</span\r\n >\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div\r\n class=\"exel-view-row\"\r\n *ngFor=\"let risk of riskBulkUpload.risks; let i = index\"\r\n >\r\n <div class=\"exel-view-column sl-no\" [class.error]=\"!risk.isValid\">\r\n {{ i + 1 }}\r\n </div>\r\n\r\n <div class=\"exel-view-column\" [class.error]=\"!risk?.riskName\">\r\n {{ risk?.riskName }}\r\n <i\r\n *ngIf=\"!risk?.riskName\"\r\n class=\"icons\"\r\n [appTooltip]=\"'Risk Name must be populated.'\"\r\n placement=\"bottom-right\"\r\n type=\"white\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"true\"\r\n >&#xe932;</i\r\n >\r\n </div>\r\n\r\n <div class=\"exel-view-column\">{{ risk?.description }}</div>\r\n\r\n <div class=\"exel-view-column\" [class.error]=\"!risk?.rcName\">\r\n {{ risk?.rcName }}\r\n <i\r\n *ngIf=\"!risk?.rcName\"\r\n class=\"icons\"\r\n [appTooltip]=\"'Assign this risk to a Responsibility Center.'\"\r\n placement=\"bottom-right\"\r\n type=\"white\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"true\"\r\n >&#xe932;</i\r\n >\r\n </div>\r\n <div class=\"exel-view-column\">{{ risk?.owner }}</div>\r\n <div class=\"exel-view-column\">{{ risk?.riskOwner }}</div>\r\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\r\n <div class=\"exel-view-column\" [class.error]=\"!risk?.isValidFrequency\">\r\n {{ risk?.frequency }}\r\n <i\r\n *ngIf=\"!risk?.isValidFrequency\"\r\n class=\"icons\"\r\n [appTooltip]=\"\r\n 'Set a frequency for the completion of the inherent risk assessment.'\r\n \"\r\n placement=\"bottom-right\"\r\n type=\"white\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"true\"\r\n >&#xe932;</i\r\n >\r\n </div>\r\n <div class=\"exel-view-column\" [class.error]=\"false\">\r\n {{ risk?.emailReminder }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"exel-view-column\"\r\n [class.error]=\"\r\n (risk?.owner && risk?.owner == risk?.overseer) ||\r\n (!risk?.owner && defaultOwner == risk?.overseer)\r\n \"\r\n >\r\n {{ risk?.overseer }}\r\n <i\r\n *ngIf=\"\r\n (risk?.owner && risk?.owner == risk?.overseer) ||\r\n (!risk?.owner && defaultOwner == risk?.overseer)\r\n \"\r\n class=\"icons\"\r\n [appTooltip]=\"\r\n (risk?.owner\r\n ? 'The Risk Owner cannot also be the'\r\n : 'You cannot be a') +\r\n ' Oversight of the risk. Select another user as the Oversight of this risk.'\r\n \"\r\n placement=\"bottom-right\"\r\n type=\"white\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"true\"\r\n >&#xe932;</i\r\n >\r\n </div>\r\n <div\r\n *ngIf=\"\r\n riskBulkUpload?.header &&\r\n riskBulkUpload?.header?.includes('Recommended Mitigation Priority')\r\n \"\r\n class=\"exel-view-column\"\r\n >\r\n {{ risk?.mitigationPriority }}\r\n </div>\r\n <div class=\"exel-view-column\">{{ risk?.mitigationPlans }}</div>\r\n <div class=\"exel-view-column\">{{ risk?.riskLabel }}</div>\r\n <!-- <div class=\"exel-view-column\" *ngIf=\"assessmentDaysEnable\" [class.error]=\"!risk?.assessmentDeadLine\">\r\n {{risk?.assessmentDeadLine}}\r\n <i *ngIf=\"!risk?.assessmentDeadLine\" class=\"icons\"\r\n [appTooltip]=\"'Set a deadline for the completion of the inherent risk assessment.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=\"true\">&#xe932;</i>\r\n </div> -->\r\n <div class=\"exel-view-row multi-column\">\r\n <div\r\n class=\"exel-view-column\"\r\n [class.error]=\"\r\n risk?.likelihood &&\r\n !templateInfo?.likelihood.includes(risk?.likelihood)\r\n \"\r\n >\r\n {{ risk?.likelihood }}\r\n </div>\r\n <div\r\n class=\"exel-view-column\"\r\n [class.error]=\"\r\n risk?.impact && !templateInfo?.impact.includes(risk?.impact)\r\n \"\r\n >\r\n {{ risk?.impact }}\r\n </div>\r\n <div\r\n class=\"exel-view-column\"\r\n [class.error]=\"\r\n risk?.velocity && !templateInfo?.velocity.includes(risk?.velocity)\r\n \"\r\n *ngIf=\"riskBulkUpload?.weightFactors?.includes('Velocity')\"\r\n >\r\n {{ risk?.velocity }}\r\n </div>\r\n <div\r\n class=\"exel-view-column\"\r\n [class.error]=\"\r\n risk?.vulnerability &&\r\n !templateInfo?.vulnerability.includes(risk?.vulnerability)\r\n \"\r\n *ngIf=\"riskBulkUpload?.weightFactors?.includes('Vulnerability')\"\r\n >\r\n {{ risk?.vulnerability }}\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"\r\n riskBulkUpload?.header &&\r\n riskBulkUpload?.header?.includes(\r\n 'Do you want to apply the same risk ratings for all Responsibility Centers?'\r\n )\r\n \"\r\n class=\"exel-view-column\"\r\n >\r\n {{ risk?.applySameRiskRating }}\r\n </div>\r\n <!-- <div class=\"exel-view-column\">{{risk?.customField1}}</div>\r\n <div class=\"exel-view-column\">{{risk?.customField2}}</div> -->\r\n\r\n <ng-container *ngIf=\"risk?.customTag\">\r\n <div class=\"exel-view-column\" *ngFor=\"let tag of risk?.customTag\">\r\n {{ tag?.custom_tag_value }}\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"bulk-view-footer\">\r\n <div class=\"left\">\r\n <p>\r\n {{ finalRisks }} out of {{ riskBulkUpload?.risks?.length }} risks will\r\n be added to the Risk Register.\r\n </p>\r\n </div>\r\n <div class=\"right\">\r\n <button (click)=\"close()\">Cancel</button>\r\n <button\r\n (click)=\"submit(false)\"\r\n [disabled]=\"finalRisks < 1\"\r\n class=\"blue\"\r\n >\r\n Add Risks\r\n </button>\r\n <button\r\n (click)=\"submit(true)\"\r\n *ngIf=\"showCompleteAssessmentButton\"\r\n [disabled]=\"finalRisks < 1\"\r\n class=\"blue\"\r\n >\r\n Add Risks And Complete Assessment\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <app-loader-inline *ngIf=\"loader\"></app-loader-inline>\r\n</div>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::-webkit-scrollbar-thumb,::-webkit-scrollbar-thumb:hover{background:#747576;border-radius:16px}::-webkit-scrollbar{height:15px}.bulk-view{position:fixed;inset:0;z-index:11}.bulk-view-head{height:60px;padding:20px 24px;background:#161b2f;display:flex;justify-content:flex-start}.bulk-view-title{font-size:16px;line-height:20px;font-weight:400;margin:0;color:#fff}.bulk-view-body{height:calc(100vh - 110px);overflow:auto;width:100%;background:#fff}.bulk-view-body .exel-view{display:block}.bulk-view-body .exel-view-row{display:flex;width:100%}.bulk-view-body .exel-view-row.head .exel-view-column{font-weight:500;font-size:14px;min-height:26px;background:#f1f1f1;padding:0}.bulk-view-body .exel-view-row.two-column .exel-view-column,.bulk-view-body .exel-view-row.three-column .exel-view-column,.bulk-view-body .exel-view-row.four-column .exel-view-column{min-width:250px!important}.bulk-view-body .exel-view-row.multi-column .exel-view-column{width:140px;min-width:140px}.bulk-view-body .exel-view-column{width:300px;min-width:300px;padding:0 10px;border-right:1px solid #dcdcdc;border-bottom:1px solid #dcdcdc;display:flex;align-items:center;justify-content:center;text-align:center;word-break:break-all;line-height:16px;font-size:12px;color:#161b2f;flex-wrap:wrap;position:relative}.bulk-view-body .exel-view-column.two-column{width:500px;min-width:500px!important}.bulk-view-body .exel-view-column.three-column{width:750px;min-width:750px!important}.bulk-view-body .exel-view-column.four-column{width:1000px;min-width:1000px!important}.bulk-view-body .exel-view-column i.icons{position:absolute;top:8px;right:10px;cursor:pointer;color:#d93b41}.bulk-view-body .exel-view-column.large{width:100%;min-width:auto}.bulk-view-body .exel-view-column.error{border:1px solid #eb2424}.bulk-view-body .exel-view-column span.required{color:#eb2424}.bulk-view-body .exel-view-column .exel-view-row .exel-view-column{width:100%}.bulk-view-body .exel-view-column.sl-no{background:#f1f1f1;width:60px;min-width:60px;min-height:30px;font-weight:400}.bulk-view-footer{height:50px;box-shadow:0 0 15px #1e5dd259;padding:10px 20px;position:fixed;width:100%;bottom:0;display:flex;align-items:center;justify-content:space-between;background:#fff}.bulk-view-footer .left p{color:#747576;font-size:13px;font-weight:500;margin:0}.bulk-view-footer .right button{font-size:12px;background:#fff;border:1px solid #dcdcdc;color:#747576;border-radius:2px;padding:8px 18px;cursor:pointer;text-transform:uppercase}.bulk-view-footer .right button+button{margin-left:4px}.bulk-view-footer .right button.blue{color:#fff;background:#1e5dd3}.bulk-view-footer .right button:disabled{background:#f1f1f1;border-color:#f1f1f1;pointer-events:none;cursor:not-allowed;color:#747576}\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: "directive", type: i2.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i3.LoaderInlineComponent, selector: "app-loader-inline" }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }] }); }
55
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BulkViewComponent, selector: "app-bulk-view", inputs: { riskBulkUpload: "riskBulkUpload", templateInfo: "templateInfo", fileName: "fileName", assessmentDaysEnable: "assessmentDaysEnable", defaultOwner: "defaultOwner", loader: "loader", ffLinkedGrcObjects: "ffLinkedGrcObjects" }, outputs: { submitRiskBulkUpload: "submitRiskBulkUpload", cancel: "cancel" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"bulk-view\">\r\n <div class=\"bulk-view-head\">\r\n <h2 class=\"bulk-view-title\">\r\n {{ fileName }}\r\n </h2>\r\n </div>\r\n <div class=\"bulk-view-body\">\r\n <div class=\"exel-view\">\r\n <div class=\"exel-view-row head\">\r\n <div class=\"exel-view-column sl-no\">#</div>\r\n <div\r\n class=\"exel-view-column\"\r\n [class.two-column]=\"heading && i === 5\"\r\n *ngFor=\"let heading of riskBulkUpload?.header; let i = index\"\r\n [class.large]=\"heading && heading.startsWith('Inherent')\"\r\n >\r\n <ng-container\r\n *ngIf=\"heading && !heading.startsWith('Inherent') && !(i === 5)\"\r\n >\r\n {{ heading.includes(\"*\") ? heading.replace(\"*\", \"\") : heading }}\r\n <span *ngIf=\"heading.includes('*')\" class=\"required\">*</span>\r\n </ng-container>\r\n <ng-container *ngIf=\"heading && heading.startsWith('Inherent')\">\r\n <div class=\"exel-view-row\">\r\n <div class=\"exel-view-column large\">Inherent Risk Assessment</div>\r\n </div>\r\n <div class=\"exel-view-row multi-column\">\r\n <div\r\n class=\"exel-view-column\"\r\n *ngFor=\"\r\n let weightAgeFactor of riskBulkUpload.weightFactors\r\n | slice : 2\r\n \"\r\n >\r\n {{ weightAgeFactor }}\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"heading && i === 5\">\r\n <div class=\"exel-view-row\">\r\n <div class=\"exel-view-column large\">\r\n {{ heading.includes(\"*\") ? heading.replace(\"*\", \"\") : heading }}\r\n <span *ngIf=\"heading.includes('*')\" class=\"required\">*</span>\r\n </div>\r\n </div>\r\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\r\n <div\r\n class=\"exel-view-column\"\r\n *ngFor=\"\r\n let weightAgeFactor of riskBulkUpload?.weightFactors\r\n | slice : 0 : 2\r\n \"\r\n >\r\n {{\r\n weightAgeFactor.includes(\"*\")\r\n ? weightAgeFactor.replace(\"*\", \"\")\r\n : weightAgeFactor\r\n }}\r\n <span *ngIf=\"weightAgeFactor.includes('*')\" class=\"required\"\r\n >*</span\r\n >\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div\r\n class=\"exel-view-row\"\r\n *ngFor=\"let risk of riskBulkUpload.risks; let i = index\"\r\n >\r\n <div class=\"exel-view-column sl-no\" [class.error]=\"!risk.isValid\">\r\n {{ i + 1 }}\r\n </div>\r\n\r\n <div class=\"exel-view-column\" [class.error]=\"!risk?.riskName\">\r\n {{ risk?.riskName }}\r\n <i\r\n *ngIf=\"!risk?.riskName\"\r\n class=\"icons\"\r\n [appTooltip]=\"'Risk Name must be populated.'\"\r\n placement=\"bottom-right\"\r\n type=\"white\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"true\"\r\n >&#xe932;</i\r\n >\r\n </div>\r\n\r\n <div class=\"exel-view-column\">{{ risk?.description }}</div>\r\n\r\n <div class=\"exel-view-column\" [class.error]=\"!risk?.rcName\">\r\n {{ risk?.rcName }}\r\n <i\r\n *ngIf=\"!risk?.rcName\"\r\n class=\"icons\"\r\n [appTooltip]=\"'Assign this risk to a Responsibility Center.'\"\r\n placement=\"bottom-right\"\r\n type=\"white\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"true\"\r\n >&#xe932;</i\r\n >\r\n </div>\r\n <div class=\"exel-view-column\">{{ risk?.owner }}</div>\r\n <div class=\"exel-view-column\">{{ risk?.riskOwner }}</div>\r\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\r\n <div class=\"exel-view-column\" [class.error]=\"!risk?.isValidFrequency\">\r\n {{ risk?.frequency }}\r\n <i\r\n *ngIf=\"!risk?.isValidFrequency\"\r\n class=\"icons\"\r\n [appTooltip]=\"\r\n 'Set a frequency for the completion of the inherent risk assessment.'\r\n \"\r\n placement=\"bottom-right\"\r\n type=\"white\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"true\"\r\n >&#xe932;</i\r\n >\r\n </div>\r\n <div class=\"exel-view-column\" [class.error]=\"false\">\r\n {{ risk?.emailReminder }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"exel-view-column\"\r\n [class.error]=\"\r\n (risk?.owner && risk?.owner == risk?.overseer) ||\r\n (!risk?.owner && defaultOwner == risk?.overseer)\r\n \"\r\n >\r\n {{ risk?.overseer }}\r\n <i\r\n *ngIf=\"\r\n (risk?.owner && risk?.owner == risk?.overseer) ||\r\n (!risk?.owner && defaultOwner == risk?.overseer)\r\n \"\r\n class=\"icons\"\r\n [appTooltip]=\"\r\n (risk?.owner\r\n ? 'The Risk Owner cannot also be the'\r\n : 'You cannot be a') +\r\n ' Oversight of the risk. Select another user as the Oversight of this risk.'\r\n \"\r\n placement=\"bottom-right\"\r\n type=\"white\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"true\"\r\n >&#xe932;</i\r\n >\r\n </div>\r\n <div\r\n *ngIf=\"\r\n riskBulkUpload?.header &&\r\n riskBulkUpload?.header?.includes('Recommended Mitigation Priority')\r\n \"\r\n class=\"exel-view-column\"\r\n >\r\n {{ risk?.mitigationPriority }}\r\n </div>\r\n <div class=\"exel-view-column\">{{ risk?.mitigationPlans }}</div>\r\n <div class=\"exel-view-column\">{{ risk?.riskLabel }}</div>\r\n <!-- <div class=\"exel-view-column\" *ngIf=\"assessmentDaysEnable\" [class.error]=\"!risk?.assessmentDeadLine\">\r\n {{risk?.assessmentDeadLine}}\r\n <i *ngIf=\"!risk?.assessmentDeadLine\" class=\"icons\"\r\n [appTooltip]=\"'Set a deadline for the completion of the inherent risk assessment.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=\"true\">&#xe932;</i>\r\n </div> -->\r\n <div class=\"exel-view-row multi-column\">\r\n <div\r\n class=\"exel-view-column\"\r\n [class.error]=\"\r\n risk?.likelihood &&\r\n !templateInfo?.likelihood.includes(risk?.likelihood)\r\n \"\r\n >\r\n {{ risk?.likelihood }}\r\n </div>\r\n <div\r\n class=\"exel-view-column\"\r\n [class.error]=\"\r\n risk?.impact && !templateInfo?.impact.includes(risk?.impact)\r\n \"\r\n >\r\n {{ risk?.impact }}\r\n </div>\r\n <div\r\n class=\"exel-view-column\"\r\n [class.error]=\"\r\n risk?.velocity && !templateInfo?.velocity.includes(risk?.velocity)\r\n \"\r\n *ngIf=\"riskBulkUpload?.weightFactors?.includes('Velocity')\"\r\n >\r\n {{ risk?.velocity }}\r\n </div>\r\n <div\r\n class=\"exel-view-column\"\r\n [class.error]=\"\r\n risk?.vulnerability &&\r\n !templateInfo?.vulnerability.includes(risk?.vulnerability)\r\n \"\r\n *ngIf=\"riskBulkUpload?.weightFactors?.includes('Vulnerability')\"\r\n >\r\n {{ risk?.vulnerability }}\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"\r\n riskBulkUpload?.header &&\r\n riskBulkUpload?.header?.includes(\r\n 'Do you want to apply the same risk ratings for all Responsibility Centers?'\r\n )\r\n \"\r\n class=\"exel-view-column\"\r\n >\r\n {{ risk?.applySameRiskRating }}\r\n </div>\r\n <div\r\n *ngIf=\"\r\n ffLinkedGrcObjects &&\r\n riskBulkUpload?.header &&\r\n riskBulkUpload?.header?.includes('Linked GRC Object(s)')\r\n \"\r\n class=\"exel-view-column\"\r\n >\r\n {{ risk?.linkedGrcObject }}\r\n </div>\r\n <!-- <div class=\"exel-view-column\">{{risk?.customField1}}</div>\r\n <div class=\"exel-view-column\">{{risk?.customField2}}</div> -->\r\n\r\n <ng-container *ngIf=\"risk?.customTag\">\r\n <div class=\"exel-view-column\" *ngFor=\"let tag of risk?.customTag\">\r\n {{ tag?.custom_tag_value }}\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"bulk-view-footer\">\r\n <div class=\"left\">\r\n <p>\r\n {{ finalRisks }} out of {{ riskBulkUpload?.risks?.length }} risks will\r\n be added to the Risk Register.\r\n </p>\r\n </div>\r\n <div class=\"right\">\r\n <button (click)=\"close()\">Cancel</button>\r\n <button\r\n (click)=\"submit(false)\"\r\n [disabled]=\"finalRisks < 1\"\r\n class=\"blue\"\r\n >\r\n Add Risks\r\n </button>\r\n <button\r\n (click)=\"submit(true)\"\r\n *ngIf=\"showCompleteAssessmentButton\"\r\n [disabled]=\"finalRisks < 1\"\r\n class=\"blue\"\r\n >\r\n Add Risks And Complete Assessment\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <app-loader-inline *ngIf=\"loader\"></app-loader-inline>\r\n</div>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::-webkit-scrollbar-thumb,::-webkit-scrollbar-thumb:hover{background:#747576;border-radius:16px}::-webkit-scrollbar{height:15px}.bulk-view{position:fixed;inset:0;z-index:11}.bulk-view-head{height:60px;padding:20px 24px;background:#161b2f;display:flex;justify-content:flex-start}.bulk-view-title{font-size:16px;line-height:20px;font-weight:400;margin:0;color:#fff}.bulk-view-body{height:calc(100vh - 110px);overflow:auto;width:100%;background:#fff}.bulk-view-body .exel-view{display:block}.bulk-view-body .exel-view-row{display:flex;width:100%}.bulk-view-body .exel-view-row.head .exel-view-column{font-weight:500;font-size:14px;min-height:26px;background:#f1f1f1;padding:0}.bulk-view-body .exel-view-row.two-column .exel-view-column,.bulk-view-body .exel-view-row.three-column .exel-view-column,.bulk-view-body .exel-view-row.four-column .exel-view-column{min-width:250px!important}.bulk-view-body .exel-view-row.multi-column .exel-view-column{width:140px;min-width:140px}.bulk-view-body .exel-view-column{width:300px;min-width:300px;padding:0 10px;border-right:1px solid #dcdcdc;border-bottom:1px solid #dcdcdc;display:flex;align-items:center;justify-content:center;text-align:center;word-break:break-all;line-height:16px;font-size:12px;color:#161b2f;flex-wrap:wrap;position:relative}.bulk-view-body .exel-view-column.two-column{width:500px;min-width:500px!important}.bulk-view-body .exel-view-column.three-column{width:750px;min-width:750px!important}.bulk-view-body .exel-view-column.four-column{width:1000px;min-width:1000px!important}.bulk-view-body .exel-view-column i.icons{position:absolute;top:8px;right:10px;cursor:pointer;color:#d93b41}.bulk-view-body .exel-view-column.large{width:100%;min-width:auto}.bulk-view-body .exel-view-column.error{border:1px solid #eb2424}.bulk-view-body .exel-view-column span.required{color:#eb2424}.bulk-view-body .exel-view-column .exel-view-row .exel-view-column{width:100%}.bulk-view-body .exel-view-column.sl-no{background:#f1f1f1;width:60px;min-width:60px;min-height:30px;font-weight:400}.bulk-view-footer{height:50px;box-shadow:0 0 15px #1e5dd259;padding:10px 20px;position:fixed;width:100%;bottom:0;display:flex;align-items:center;justify-content:space-between;background:#fff}.bulk-view-footer .left p{color:#747576;font-size:13px;font-weight:500;margin:0}.bulk-view-footer .right button{font-size:12px;background:#fff;border:1px solid #dcdcdc;color:#747576;border-radius:2px;padding:8px 18px;cursor:pointer;text-transform:uppercase}.bulk-view-footer .right button+button{margin-left:4px}.bulk-view-footer .right button.blue{color:#fff;background:#1e5dd3}.bulk-view-footer .right button:disabled{background:#f1f1f1;border-color:#f1f1f1;pointer-events:none;cursor:not-allowed;color:#747576}\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: "directive", type: i2.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i3.LoaderInlineComponent, selector: "app-loader-inline" }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }] }); }
54
56
  }
55
57
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BulkViewComponent, decorators: [{
56
58
  type: Component,
57
- args: [{ selector: 'app-bulk-view', template: "<div class=\"bulk-view\">\r\n <div class=\"bulk-view-head\">\r\n <h2 class=\"bulk-view-title\">\r\n {{ fileName }}\r\n </h2>\r\n </div>\r\n <div class=\"bulk-view-body\">\r\n <div class=\"exel-view\">\r\n <div class=\"exel-view-row head\">\r\n <div class=\"exel-view-column sl-no\">#</div>\r\n <div\r\n class=\"exel-view-column\"\r\n [class.two-column]=\"heading && i === 5\"\r\n *ngFor=\"let heading of riskBulkUpload?.header; let i = index\"\r\n [class.large]=\"heading && heading.startsWith('Inherent')\"\r\n >\r\n <ng-container\r\n *ngIf=\"heading && !heading.startsWith('Inherent') && !(i === 5)\"\r\n >\r\n {{ heading.includes(\"*\") ? heading.replace(\"*\", \"\") : heading }}\r\n <span *ngIf=\"heading.includes('*')\" class=\"required\">*</span>\r\n </ng-container>\r\n <ng-container *ngIf=\"heading && heading.startsWith('Inherent')\">\r\n <div class=\"exel-view-row\">\r\n <div class=\"exel-view-column large\">Inherent Risk Assessment</div>\r\n </div>\r\n <div class=\"exel-view-row multi-column\">\r\n <div\r\n class=\"exel-view-column\"\r\n *ngFor=\"\r\n let weightAgeFactor of riskBulkUpload.weightFactors\r\n | slice : 2\r\n \"\r\n >\r\n {{ weightAgeFactor }}\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"heading && i === 5\">\r\n <div class=\"exel-view-row\">\r\n <div class=\"exel-view-column large\">\r\n {{ heading.includes(\"*\") ? heading.replace(\"*\", \"\") : heading }}\r\n <span *ngIf=\"heading.includes('*')\" class=\"required\">*</span>\r\n </div>\r\n </div>\r\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\r\n <div\r\n class=\"exel-view-column\"\r\n *ngFor=\"\r\n let weightAgeFactor of riskBulkUpload?.weightFactors\r\n | slice : 0 : 2\r\n \"\r\n >\r\n {{\r\n weightAgeFactor.includes(\"*\")\r\n ? weightAgeFactor.replace(\"*\", \"\")\r\n : weightAgeFactor\r\n }}\r\n <span *ngIf=\"weightAgeFactor.includes('*')\" class=\"required\"\r\n >*</span\r\n >\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div\r\n class=\"exel-view-row\"\r\n *ngFor=\"let risk of riskBulkUpload.risks; let i = index\"\r\n >\r\n <div class=\"exel-view-column sl-no\" [class.error]=\"!risk.isValid\">\r\n {{ i + 1 }}\r\n </div>\r\n\r\n <div class=\"exel-view-column\" [class.error]=\"!risk?.riskName\">\r\n {{ risk?.riskName }}\r\n <i\r\n *ngIf=\"!risk?.riskName\"\r\n class=\"icons\"\r\n [appTooltip]=\"'Risk Name must be populated.'\"\r\n placement=\"bottom-right\"\r\n type=\"white\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"true\"\r\n >&#xe932;</i\r\n >\r\n </div>\r\n\r\n <div class=\"exel-view-column\">{{ risk?.description }}</div>\r\n\r\n <div class=\"exel-view-column\" [class.error]=\"!risk?.rcName\">\r\n {{ risk?.rcName }}\r\n <i\r\n *ngIf=\"!risk?.rcName\"\r\n class=\"icons\"\r\n [appTooltip]=\"'Assign this risk to a Responsibility Center.'\"\r\n placement=\"bottom-right\"\r\n type=\"white\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"true\"\r\n >&#xe932;</i\r\n >\r\n </div>\r\n <div class=\"exel-view-column\">{{ risk?.owner }}</div>\r\n <div class=\"exel-view-column\">{{ risk?.riskOwner }}</div>\r\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\r\n <div class=\"exel-view-column\" [class.error]=\"!risk?.isValidFrequency\">\r\n {{ risk?.frequency }}\r\n <i\r\n *ngIf=\"!risk?.isValidFrequency\"\r\n class=\"icons\"\r\n [appTooltip]=\"\r\n 'Set a frequency for the completion of the inherent risk assessment.'\r\n \"\r\n placement=\"bottom-right\"\r\n type=\"white\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"true\"\r\n >&#xe932;</i\r\n >\r\n </div>\r\n <div class=\"exel-view-column\" [class.error]=\"false\">\r\n {{ risk?.emailReminder }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"exel-view-column\"\r\n [class.error]=\"\r\n (risk?.owner && risk?.owner == risk?.overseer) ||\r\n (!risk?.owner && defaultOwner == risk?.overseer)\r\n \"\r\n >\r\n {{ risk?.overseer }}\r\n <i\r\n *ngIf=\"\r\n (risk?.owner && risk?.owner == risk?.overseer) ||\r\n (!risk?.owner && defaultOwner == risk?.overseer)\r\n \"\r\n class=\"icons\"\r\n [appTooltip]=\"\r\n (risk?.owner\r\n ? 'The Risk Owner cannot also be the'\r\n : 'You cannot be a') +\r\n ' Oversight of the risk. Select another user as the Oversight of this risk.'\r\n \"\r\n placement=\"bottom-right\"\r\n type=\"white\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"true\"\r\n >&#xe932;</i\r\n >\r\n </div>\r\n <div\r\n *ngIf=\"\r\n riskBulkUpload?.header &&\r\n riskBulkUpload?.header?.includes('Recommended Mitigation Priority')\r\n \"\r\n class=\"exel-view-column\"\r\n >\r\n {{ risk?.mitigationPriority }}\r\n </div>\r\n <div class=\"exel-view-column\">{{ risk?.mitigationPlans }}</div>\r\n <div class=\"exel-view-column\">{{ risk?.riskLabel }}</div>\r\n <!-- <div class=\"exel-view-column\" *ngIf=\"assessmentDaysEnable\" [class.error]=\"!risk?.assessmentDeadLine\">\r\n {{risk?.assessmentDeadLine}}\r\n <i *ngIf=\"!risk?.assessmentDeadLine\" class=\"icons\"\r\n [appTooltip]=\"'Set a deadline for the completion of the inherent risk assessment.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=\"true\">&#xe932;</i>\r\n </div> -->\r\n <div class=\"exel-view-row multi-column\">\r\n <div\r\n class=\"exel-view-column\"\r\n [class.error]=\"\r\n risk?.likelihood &&\r\n !templateInfo?.likelihood.includes(risk?.likelihood)\r\n \"\r\n >\r\n {{ risk?.likelihood }}\r\n </div>\r\n <div\r\n class=\"exel-view-column\"\r\n [class.error]=\"\r\n risk?.impact && !templateInfo?.impact.includes(risk?.impact)\r\n \"\r\n >\r\n {{ risk?.impact }}\r\n </div>\r\n <div\r\n class=\"exel-view-column\"\r\n [class.error]=\"\r\n risk?.velocity && !templateInfo?.velocity.includes(risk?.velocity)\r\n \"\r\n *ngIf=\"riskBulkUpload?.weightFactors?.includes('Velocity')\"\r\n >\r\n {{ risk?.velocity }}\r\n </div>\r\n <div\r\n class=\"exel-view-column\"\r\n [class.error]=\"\r\n risk?.vulnerability &&\r\n !templateInfo?.vulnerability.includes(risk?.vulnerability)\r\n \"\r\n *ngIf=\"riskBulkUpload?.weightFactors?.includes('Vulnerability')\"\r\n >\r\n {{ risk?.vulnerability }}\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"\r\n riskBulkUpload?.header &&\r\n riskBulkUpload?.header?.includes(\r\n 'Do you want to apply the same risk ratings for all Responsibility Centers?'\r\n )\r\n \"\r\n class=\"exel-view-column\"\r\n >\r\n {{ risk?.applySameRiskRating }}\r\n </div>\r\n <!-- <div class=\"exel-view-column\">{{risk?.customField1}}</div>\r\n <div class=\"exel-view-column\">{{risk?.customField2}}</div> -->\r\n\r\n <ng-container *ngIf=\"risk?.customTag\">\r\n <div class=\"exel-view-column\" *ngFor=\"let tag of risk?.customTag\">\r\n {{ tag?.custom_tag_value }}\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"bulk-view-footer\">\r\n <div class=\"left\">\r\n <p>\r\n {{ finalRisks }} out of {{ riskBulkUpload?.risks?.length }} risks will\r\n be added to the Risk Register.\r\n </p>\r\n </div>\r\n <div class=\"right\">\r\n <button (click)=\"close()\">Cancel</button>\r\n <button\r\n (click)=\"submit(false)\"\r\n [disabled]=\"finalRisks < 1\"\r\n class=\"blue\"\r\n >\r\n Add Risks\r\n </button>\r\n <button\r\n (click)=\"submit(true)\"\r\n *ngIf=\"showCompleteAssessmentButton\"\r\n [disabled]=\"finalRisks < 1\"\r\n class=\"blue\"\r\n >\r\n Add Risks And Complete Assessment\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <app-loader-inline *ngIf=\"loader\"></app-loader-inline>\r\n</div>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::-webkit-scrollbar-thumb,::-webkit-scrollbar-thumb:hover{background:#747576;border-radius:16px}::-webkit-scrollbar{height:15px}.bulk-view{position:fixed;inset:0;z-index:11}.bulk-view-head{height:60px;padding:20px 24px;background:#161b2f;display:flex;justify-content:flex-start}.bulk-view-title{font-size:16px;line-height:20px;font-weight:400;margin:0;color:#fff}.bulk-view-body{height:calc(100vh - 110px);overflow:auto;width:100%;background:#fff}.bulk-view-body .exel-view{display:block}.bulk-view-body .exel-view-row{display:flex;width:100%}.bulk-view-body .exel-view-row.head .exel-view-column{font-weight:500;font-size:14px;min-height:26px;background:#f1f1f1;padding:0}.bulk-view-body .exel-view-row.two-column .exel-view-column,.bulk-view-body .exel-view-row.three-column .exel-view-column,.bulk-view-body .exel-view-row.four-column .exel-view-column{min-width:250px!important}.bulk-view-body .exel-view-row.multi-column .exel-view-column{width:140px;min-width:140px}.bulk-view-body .exel-view-column{width:300px;min-width:300px;padding:0 10px;border-right:1px solid #dcdcdc;border-bottom:1px solid #dcdcdc;display:flex;align-items:center;justify-content:center;text-align:center;word-break:break-all;line-height:16px;font-size:12px;color:#161b2f;flex-wrap:wrap;position:relative}.bulk-view-body .exel-view-column.two-column{width:500px;min-width:500px!important}.bulk-view-body .exel-view-column.three-column{width:750px;min-width:750px!important}.bulk-view-body .exel-view-column.four-column{width:1000px;min-width:1000px!important}.bulk-view-body .exel-view-column i.icons{position:absolute;top:8px;right:10px;cursor:pointer;color:#d93b41}.bulk-view-body .exel-view-column.large{width:100%;min-width:auto}.bulk-view-body .exel-view-column.error{border:1px solid #eb2424}.bulk-view-body .exel-view-column span.required{color:#eb2424}.bulk-view-body .exel-view-column .exel-view-row .exel-view-column{width:100%}.bulk-view-body .exel-view-column.sl-no{background:#f1f1f1;width:60px;min-width:60px;min-height:30px;font-weight:400}.bulk-view-footer{height:50px;box-shadow:0 0 15px #1e5dd259;padding:10px 20px;position:fixed;width:100%;bottom:0;display:flex;align-items:center;justify-content:space-between;background:#fff}.bulk-view-footer .left p{color:#747576;font-size:13px;font-weight:500;margin:0}.bulk-view-footer .right button{font-size:12px;background:#fff;border:1px solid #dcdcdc;color:#747576;border-radius:2px;padding:8px 18px;cursor:pointer;text-transform:uppercase}.bulk-view-footer .right button+button{margin-left:4px}.bulk-view-footer .right button.blue{color:#fff;background:#1e5dd3}.bulk-view-footer .right button:disabled{background:#f1f1f1;border-color:#f1f1f1;pointer-events:none;cursor:not-allowed;color:#747576}\n"] }]
59
+ args: [{ selector: 'app-bulk-view', template: "<div class=\"bulk-view\">\r\n <div class=\"bulk-view-head\">\r\n <h2 class=\"bulk-view-title\">\r\n {{ fileName }}\r\n </h2>\r\n </div>\r\n <div class=\"bulk-view-body\">\r\n <div class=\"exel-view\">\r\n <div class=\"exel-view-row head\">\r\n <div class=\"exel-view-column sl-no\">#</div>\r\n <div\r\n class=\"exel-view-column\"\r\n [class.two-column]=\"heading && i === 5\"\r\n *ngFor=\"let heading of riskBulkUpload?.header; let i = index\"\r\n [class.large]=\"heading && heading.startsWith('Inherent')\"\r\n >\r\n <ng-container\r\n *ngIf=\"heading && !heading.startsWith('Inherent') && !(i === 5)\"\r\n >\r\n {{ heading.includes(\"*\") ? heading.replace(\"*\", \"\") : heading }}\r\n <span *ngIf=\"heading.includes('*')\" class=\"required\">*</span>\r\n </ng-container>\r\n <ng-container *ngIf=\"heading && heading.startsWith('Inherent')\">\r\n <div class=\"exel-view-row\">\r\n <div class=\"exel-view-column large\">Inherent Risk Assessment</div>\r\n </div>\r\n <div class=\"exel-view-row multi-column\">\r\n <div\r\n class=\"exel-view-column\"\r\n *ngFor=\"\r\n let weightAgeFactor of riskBulkUpload.weightFactors\r\n | slice : 2\r\n \"\r\n >\r\n {{ weightAgeFactor }}\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"heading && i === 5\">\r\n <div class=\"exel-view-row\">\r\n <div class=\"exel-view-column large\">\r\n {{ heading.includes(\"*\") ? heading.replace(\"*\", \"\") : heading }}\r\n <span *ngIf=\"heading.includes('*')\" class=\"required\">*</span>\r\n </div>\r\n </div>\r\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\r\n <div\r\n class=\"exel-view-column\"\r\n *ngFor=\"\r\n let weightAgeFactor of riskBulkUpload?.weightFactors\r\n | slice : 0 : 2\r\n \"\r\n >\r\n {{\r\n weightAgeFactor.includes(\"*\")\r\n ? weightAgeFactor.replace(\"*\", \"\")\r\n : weightAgeFactor\r\n }}\r\n <span *ngIf=\"weightAgeFactor.includes('*')\" class=\"required\"\r\n >*</span\r\n >\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div\r\n class=\"exel-view-row\"\r\n *ngFor=\"let risk of riskBulkUpload.risks; let i = index\"\r\n >\r\n <div class=\"exel-view-column sl-no\" [class.error]=\"!risk.isValid\">\r\n {{ i + 1 }}\r\n </div>\r\n\r\n <div class=\"exel-view-column\" [class.error]=\"!risk?.riskName\">\r\n {{ risk?.riskName }}\r\n <i\r\n *ngIf=\"!risk?.riskName\"\r\n class=\"icons\"\r\n [appTooltip]=\"'Risk Name must be populated.'\"\r\n placement=\"bottom-right\"\r\n type=\"white\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"true\"\r\n >&#xe932;</i\r\n >\r\n </div>\r\n\r\n <div class=\"exel-view-column\">{{ risk?.description }}</div>\r\n\r\n <div class=\"exel-view-column\" [class.error]=\"!risk?.rcName\">\r\n {{ risk?.rcName }}\r\n <i\r\n *ngIf=\"!risk?.rcName\"\r\n class=\"icons\"\r\n [appTooltip]=\"'Assign this risk to a Responsibility Center.'\"\r\n placement=\"bottom-right\"\r\n type=\"white\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"true\"\r\n >&#xe932;</i\r\n >\r\n </div>\r\n <div class=\"exel-view-column\">{{ risk?.owner }}</div>\r\n <div class=\"exel-view-column\">{{ risk?.riskOwner }}</div>\r\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\r\n <div class=\"exel-view-column\" [class.error]=\"!risk?.isValidFrequency\">\r\n {{ risk?.frequency }}\r\n <i\r\n *ngIf=\"!risk?.isValidFrequency\"\r\n class=\"icons\"\r\n [appTooltip]=\"\r\n 'Set a frequency for the completion of the inherent risk assessment.'\r\n \"\r\n placement=\"bottom-right\"\r\n type=\"white\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"true\"\r\n >&#xe932;</i\r\n >\r\n </div>\r\n <div class=\"exel-view-column\" [class.error]=\"false\">\r\n {{ risk?.emailReminder }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"exel-view-column\"\r\n [class.error]=\"\r\n (risk?.owner && risk?.owner == risk?.overseer) ||\r\n (!risk?.owner && defaultOwner == risk?.overseer)\r\n \"\r\n >\r\n {{ risk?.overseer }}\r\n <i\r\n *ngIf=\"\r\n (risk?.owner && risk?.owner == risk?.overseer) ||\r\n (!risk?.owner && defaultOwner == risk?.overseer)\r\n \"\r\n class=\"icons\"\r\n [appTooltip]=\"\r\n (risk?.owner\r\n ? 'The Risk Owner cannot also be the'\r\n : 'You cannot be a') +\r\n ' Oversight of the risk. Select another user as the Oversight of this risk.'\r\n \"\r\n placement=\"bottom-right\"\r\n type=\"white\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"true\"\r\n >&#xe932;</i\r\n >\r\n </div>\r\n <div\r\n *ngIf=\"\r\n riskBulkUpload?.header &&\r\n riskBulkUpload?.header?.includes('Recommended Mitigation Priority')\r\n \"\r\n class=\"exel-view-column\"\r\n >\r\n {{ risk?.mitigationPriority }}\r\n </div>\r\n <div class=\"exel-view-column\">{{ risk?.mitigationPlans }}</div>\r\n <div class=\"exel-view-column\">{{ risk?.riskLabel }}</div>\r\n <!-- <div class=\"exel-view-column\" *ngIf=\"assessmentDaysEnable\" [class.error]=\"!risk?.assessmentDeadLine\">\r\n {{risk?.assessmentDeadLine}}\r\n <i *ngIf=\"!risk?.assessmentDeadLine\" class=\"icons\"\r\n [appTooltip]=\"'Set a deadline for the completion of the inherent risk assessment.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=\"true\">&#xe932;</i>\r\n </div> -->\r\n <div class=\"exel-view-row multi-column\">\r\n <div\r\n class=\"exel-view-column\"\r\n [class.error]=\"\r\n risk?.likelihood &&\r\n !templateInfo?.likelihood.includes(risk?.likelihood)\r\n \"\r\n >\r\n {{ risk?.likelihood }}\r\n </div>\r\n <div\r\n class=\"exel-view-column\"\r\n [class.error]=\"\r\n risk?.impact && !templateInfo?.impact.includes(risk?.impact)\r\n \"\r\n >\r\n {{ risk?.impact }}\r\n </div>\r\n <div\r\n class=\"exel-view-column\"\r\n [class.error]=\"\r\n risk?.velocity && !templateInfo?.velocity.includes(risk?.velocity)\r\n \"\r\n *ngIf=\"riskBulkUpload?.weightFactors?.includes('Velocity')\"\r\n >\r\n {{ risk?.velocity }}\r\n </div>\r\n <div\r\n class=\"exel-view-column\"\r\n [class.error]=\"\r\n risk?.vulnerability &&\r\n !templateInfo?.vulnerability.includes(risk?.vulnerability)\r\n \"\r\n *ngIf=\"riskBulkUpload?.weightFactors?.includes('Vulnerability')\"\r\n >\r\n {{ risk?.vulnerability }}\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"\r\n riskBulkUpload?.header &&\r\n riskBulkUpload?.header?.includes(\r\n 'Do you want to apply the same risk ratings for all Responsibility Centers?'\r\n )\r\n \"\r\n class=\"exel-view-column\"\r\n >\r\n {{ risk?.applySameRiskRating }}\r\n </div>\r\n <div\r\n *ngIf=\"\r\n ffLinkedGrcObjects &&\r\n riskBulkUpload?.header &&\r\n riskBulkUpload?.header?.includes('Linked GRC Object(s)')\r\n \"\r\n class=\"exel-view-column\"\r\n >\r\n {{ risk?.linkedGrcObject }}\r\n </div>\r\n <!-- <div class=\"exel-view-column\">{{risk?.customField1}}</div>\r\n <div class=\"exel-view-column\">{{risk?.customField2}}</div> -->\r\n\r\n <ng-container *ngIf=\"risk?.customTag\">\r\n <div class=\"exel-view-column\" *ngFor=\"let tag of risk?.customTag\">\r\n {{ tag?.custom_tag_value }}\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"bulk-view-footer\">\r\n <div class=\"left\">\r\n <p>\r\n {{ finalRisks }} out of {{ riskBulkUpload?.risks?.length }} risks will\r\n be added to the Risk Register.\r\n </p>\r\n </div>\r\n <div class=\"right\">\r\n <button (click)=\"close()\">Cancel</button>\r\n <button\r\n (click)=\"submit(false)\"\r\n [disabled]=\"finalRisks < 1\"\r\n class=\"blue\"\r\n >\r\n Add Risks\r\n </button>\r\n <button\r\n (click)=\"submit(true)\"\r\n *ngIf=\"showCompleteAssessmentButton\"\r\n [disabled]=\"finalRisks < 1\"\r\n class=\"blue\"\r\n >\r\n Add Risks And Complete Assessment\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <app-loader-inline *ngIf=\"loader\"></app-loader-inline>\r\n</div>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::-webkit-scrollbar-thumb,::-webkit-scrollbar-thumb:hover{background:#747576;border-radius:16px}::-webkit-scrollbar{height:15px}.bulk-view{position:fixed;inset:0;z-index:11}.bulk-view-head{height:60px;padding:20px 24px;background:#161b2f;display:flex;justify-content:flex-start}.bulk-view-title{font-size:16px;line-height:20px;font-weight:400;margin:0;color:#fff}.bulk-view-body{height:calc(100vh - 110px);overflow:auto;width:100%;background:#fff}.bulk-view-body .exel-view{display:block}.bulk-view-body .exel-view-row{display:flex;width:100%}.bulk-view-body .exel-view-row.head .exel-view-column{font-weight:500;font-size:14px;min-height:26px;background:#f1f1f1;padding:0}.bulk-view-body .exel-view-row.two-column .exel-view-column,.bulk-view-body .exel-view-row.three-column .exel-view-column,.bulk-view-body .exel-view-row.four-column .exel-view-column{min-width:250px!important}.bulk-view-body .exel-view-row.multi-column .exel-view-column{width:140px;min-width:140px}.bulk-view-body .exel-view-column{width:300px;min-width:300px;padding:0 10px;border-right:1px solid #dcdcdc;border-bottom:1px solid #dcdcdc;display:flex;align-items:center;justify-content:center;text-align:center;word-break:break-all;line-height:16px;font-size:12px;color:#161b2f;flex-wrap:wrap;position:relative}.bulk-view-body .exel-view-column.two-column{width:500px;min-width:500px!important}.bulk-view-body .exel-view-column.three-column{width:750px;min-width:750px!important}.bulk-view-body .exel-view-column.four-column{width:1000px;min-width:1000px!important}.bulk-view-body .exel-view-column i.icons{position:absolute;top:8px;right:10px;cursor:pointer;color:#d93b41}.bulk-view-body .exel-view-column.large{width:100%;min-width:auto}.bulk-view-body .exel-view-column.error{border:1px solid #eb2424}.bulk-view-body .exel-view-column span.required{color:#eb2424}.bulk-view-body .exel-view-column .exel-view-row .exel-view-column{width:100%}.bulk-view-body .exel-view-column.sl-no{background:#f1f1f1;width:60px;min-width:60px;min-height:30px;font-weight:400}.bulk-view-footer{height:50px;box-shadow:0 0 15px #1e5dd259;padding:10px 20px;position:fixed;width:100%;bottom:0;display:flex;align-items:center;justify-content:space-between;background:#fff}.bulk-view-footer .left p{color:#747576;font-size:13px;font-weight:500;margin:0}.bulk-view-footer .right button{font-size:12px;background:#fff;border:1px solid #dcdcdc;color:#747576;border-radius:2px;padding:8px 18px;cursor:pointer;text-transform:uppercase}.bulk-view-footer .right button+button{margin-left:4px}.bulk-view-footer .right button.blue{color:#fff;background:#1e5dd3}.bulk-view-footer .right button:disabled{background:#f1f1f1;border-color:#f1f1f1;pointer-events:none;cursor:not-allowed;color:#747576}\n"] }]
58
60
  }], propDecorators: { riskBulkUpload: [{
59
61
  type: Input
60
62
  }], templateInfo: [{
@@ -67,9 +69,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
67
69
  type: Input
68
70
  }], loader: [{
69
71
  type: Input
72
+ }], ffLinkedGrcObjects: [{
73
+ type: Input
70
74
  }], submitRiskBulkUpload: [{
71
75
  type: Output
72
76
  }], cancel: [{
73
77
  type: Output
74
78
  }] } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVsay12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvYnVsay12aWV3L2J1bGstdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2J1bGstdmlldy9idWxrLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsWUFBWSxFQUNaLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFPdkIsTUFBTSxPQUFPLGlCQUFpQjtJQUw5QjtRQVdXLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFFZCx5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzFDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXRDLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFDZixpQ0FBNEIsR0FBRyxLQUFLLENBQUM7S0E0Q3RDO0lBMUNDLFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7WUFDcEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7Z0JBQzlDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtvQkFDaEIsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUM7aUJBQ3RCO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQzlDLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRTtnQkFDbkQsSUFBSSxJQUFJLEVBQUUsVUFBVSxJQUFJLElBQUksRUFBRSxNQUFNLEVBQUU7b0JBQ3BDLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxJQUFJLENBQUM7aUJBQzFDO2FBQ0Y7aUJBQU0sSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLGFBQWEsRUFBRSxNQUFNLElBQUksQ0FBQyxFQUFFO2dCQUMxRCxJQUNFLElBQUksRUFBRSxVQUFVO29CQUNoQixJQUFJLEVBQUUsTUFBTTtvQkFDWixDQUFDLElBQUksRUFBRSxRQUFRLElBQUksSUFBSSxFQUFFLGFBQWEsQ0FBQyxFQUN2QztvQkFDQSxJQUFJLENBQUMsNEJBQTRCLEdBQUcsSUFBSSxDQUFDO2lCQUMxQzthQUNGO2lCQUFNLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRTtnQkFDMUQsSUFDRSxJQUFJLEVBQUUsVUFBVTtvQkFDaEIsSUFBSSxFQUFFLE1BQU07b0JBQ1osSUFBSSxFQUFFLFFBQVE7b0JBQ2QsSUFBSSxFQUFFLGFBQWEsRUFDbkI7b0JBQ0EsSUFBSSxDQUFDLDRCQUE0QixHQUFHLElBQUksQ0FBQztpQkFDMUM7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxrQkFBdUI7UUFDNUIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyQixDQUFDOytHQXZEVSxpQkFBaUI7bUdBQWpCLGlCQUFpQix1VkNiOUIsZ3NUQWlRQTs7NEZEcFBhLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxlQUFlOzhCQUtoQixjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUksb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBPdXRwdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtYnVsay12aWV3JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYnVsay12aWV3LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9idWxrLXZpZXcuY29tcG9uZW50Lmxlc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEJ1bGtWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSByaXNrQnVsa1VwbG9hZCE6IGFueTtcclxuICBASW5wdXQoKSB0ZW1wbGF0ZUluZm8hOiBhbnk7XHJcbiAgQElucHV0KCkgZmlsZU5hbWUhOiBhbnk7XHJcbiAgQElucHV0KCkgYXNzZXNzbWVudERheXNFbmFibGUhOiBhbnk7XHJcbiAgQElucHV0KCkgZGVmYXVsdE93bmVyITogYW55O1xyXG4gIEBJbnB1dCgpIGxvYWRlciA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgc3VibWl0Umlza0J1bGtVcGxvYWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgZmluYWxSaXNrcyA9IDA7XHJcbiAgc2hvd0NvbXBsZXRlQXNzZXNzbWVudEJ1dHRvbiA9IGZhbHNlO1xyXG5cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgIGlmICh0aGlzLnJpc2tCdWxrVXBsb2FkKSB7XHJcbiAgICAgIHRoaXMuZmluYWxSaXNrcyA9IDA7XHJcbiAgICAgIHRoaXMucmlza0J1bGtVcGxvYWQucmlza3MuZm9yRWFjaCgocmlzazogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJpc2suaXNWYWxpZCkge1xyXG4gICAgICAgICAgdGhpcy5maW5hbFJpc2tzICs9IDE7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMucmlza0J1bGtVcGxvYWQucmlza3MuZm9yRWFjaCgocmlzazogYW55KSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLnJpc2tCdWxrVXBsb2FkPy53ZWlnaHRGYWN0b3JzPy5sZW5ndGggPT0gNCkge1xyXG4gICAgICAgIGlmIChyaXNrPy5saWtlbGlob29kICYmIHJpc2s/LmltcGFjdCkge1xyXG4gICAgICAgICAgdGhpcy5zaG93Q29tcGxldGVBc3Nlc3NtZW50QnV0dG9uID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5yaXNrQnVsa1VwbG9hZD8ud2VpZ2h0RmFjdG9ycz8ubGVuZ3RoID09IDUpIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICByaXNrPy5saWtlbGlob29kICYmXHJcbiAgICAgICAgICByaXNrPy5pbXBhY3QgJiZcclxuICAgICAgICAgIChyaXNrPy52ZWxvY2l0eSB8fCByaXNrPy52dWxuZXJhYmlsaXR5KVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdGhpcy5zaG93Q29tcGxldGVBc3Nlc3NtZW50QnV0dG9uID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5yaXNrQnVsa1VwbG9hZD8ud2VpZ2h0RmFjdG9ycz8ubGVuZ3RoID09IDYpIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICByaXNrPy5saWtlbGlob29kICYmXHJcbiAgICAgICAgICByaXNrPy5pbXBhY3QgJiZcclxuICAgICAgICAgIHJpc2s/LnZlbG9jaXR5ICYmXHJcbiAgICAgICAgICByaXNrPy52dWxuZXJhYmlsaXR5XHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLnNob3dDb21wbGV0ZUFzc2Vzc21lbnRCdXR0b24gPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzdWJtaXQoY29tcGxldGVBc3Nlc3NtZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc3VibWl0Umlza0J1bGtVcGxvYWQuZW1pdChjb21wbGV0ZUFzc2Vzc21lbnQpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2UoKSB7XHJcbiAgICB0aGlzLmNhbmNlbC5lbWl0KCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJidWxrLXZpZXdcIj5cclxuICA8ZGl2IGNsYXNzPVwiYnVsay12aWV3LWhlYWRcIj5cclxuICAgIDxoMiBjbGFzcz1cImJ1bGstdmlldy10aXRsZVwiPlxyXG4gICAgICB7eyBmaWxlTmFtZSB9fVxyXG4gICAgPC9oMj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiYnVsay12aWV3LWJvZHlcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXdcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3cgaGVhZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uIHNsLW5vXCI+IzwvZGl2PlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiXHJcbiAgICAgICAgICBbY2xhc3MudHdvLWNvbHVtbl09XCJoZWFkaW5nICYmIGkgPT09IDVcIlxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGhlYWRpbmcgb2Ygcmlza0J1bGtVcGxvYWQ/LmhlYWRlcjsgbGV0IGkgPSBpbmRleFwiXHJcbiAgICAgICAgICBbY2xhc3MubGFyZ2VdPVwiaGVhZGluZyAmJiBoZWFkaW5nLnN0YXJ0c1dpdGgoJ0luaGVyZW50JylcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgKm5nSWY9XCJoZWFkaW5nICYmICFoZWFkaW5nLnN0YXJ0c1dpdGgoJ0luaGVyZW50JykgJiYgIShpID09PSA1KVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IGhlYWRpbmcuaW5jbHVkZXMoXCIqXCIpID8gaGVhZGluZy5yZXBsYWNlKFwiKlwiLCBcIlwiKSA6IGhlYWRpbmcgfX1cclxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJoZWFkaW5nLmluY2x1ZGVzKCcqJylcIiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhlYWRpbmcgJiYgaGVhZGluZy5zdGFydHNXaXRoKCdJbmhlcmVudCcpXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW4gbGFyZ2VcIj5JbmhlcmVudCBSaXNrIEFzc2Vzc21lbnQ8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IG11bHRpLWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiXHJcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJcclxuICAgICAgICAgICAgICAgICAgbGV0IHdlaWdodEFnZUZhY3RvciBvZiByaXNrQnVsa1VwbG9hZC53ZWlnaHRGYWN0b3JzXHJcbiAgICAgICAgICAgICAgICAgICAgfCBzbGljZSA6IDJcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAge3sgd2VpZ2h0QWdlRmFjdG9yIH19XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGluZyAmJiBpID09PSA1XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW4gbGFyZ2VcIj5cclxuICAgICAgICAgICAgICAgIHt7IGhlYWRpbmcuaW5jbHVkZXMoXCIqXCIpID8gaGVhZGluZy5yZXBsYWNlKFwiKlwiLCBcIlwiKSA6IGhlYWRpbmcgfX1cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaGVhZGluZy5pbmNsdWRlcygnKicpXCIgY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvdyBtdWx0aS1jb2x1bW5cIiBbY2xhc3MudHdvLWNvbHVtbl09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCJcclxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cIlxyXG4gICAgICAgICAgICAgICAgICBsZXQgd2VpZ2h0QWdlRmFjdG9yIG9mIHJpc2tCdWxrVXBsb2FkPy53ZWlnaHRGYWN0b3JzXHJcbiAgICAgICAgICAgICAgICAgICAgfCBzbGljZSA6IDAgOiAyXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgIHdlaWdodEFnZUZhY3Rvci5pbmNsdWRlcyhcIipcIilcclxuICAgICAgICAgICAgICAgICAgICA/IHdlaWdodEFnZUZhY3Rvci5yZXBsYWNlKFwiKlwiLCBcIlwiKVxyXG4gICAgICAgICAgICAgICAgICAgIDogd2VpZ2h0QWdlRmFjdG9yXHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJ3ZWlnaHRBZ2VGYWN0b3IuaW5jbHVkZXMoJyonKVwiIGNsYXNzPVwicmVxdWlyZWRcIlxyXG4gICAgICAgICAgICAgICAgICA+Kjwvc3BhblxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwiZXhlbC12aWV3LXJvd1wiXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IHJpc2sgb2Ygcmlza0J1bGtVcGxvYWQucmlza3M7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW4gc2wtbm9cIiBbY2xhc3MuZXJyb3JdPVwiIXJpc2suaXNWYWxpZFwiPlxyXG4gICAgICAgICAge3sgaSArIDEgfX1cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZXJyb3JdPVwiIXJpc2s/LnJpc2tOYW1lXCI+XHJcbiAgICAgICAgICB7eyByaXNrPy5yaXNrTmFtZSB9fVxyXG4gICAgICAgICAgPGlcclxuICAgICAgICAgICAgKm5nSWY9XCIhcmlzaz8ucmlza05hbWVcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1Jpc2sgTmFtZSBtdXN0IGJlIHBvcHVsYXRlZC4nXCJcclxuICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCJcclxuICAgICAgICAgICAgdHlwZT1cIndoaXRlXCJcclxuICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgID4mI3hlOTMyOzwvaVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7IHJpc2s/LmRlc2NyaXB0aW9uIH19PC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLmVycm9yXT1cIiFyaXNrPy5yY05hbWVcIj5cclxuICAgICAgICAgIHt7IHJpc2s/LnJjTmFtZSB9fVxyXG4gICAgICAgICAgPGlcclxuICAgICAgICAgICAgKm5nSWY9XCIhcmlzaz8ucmNOYW1lXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIidBc3NpZ24gdGhpcyByaXNrIHRvIGEgUmVzcG9uc2liaWxpdHkgQ2VudGVyLidcIlxyXG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIlxyXG4gICAgICAgICAgICB0eXBlPVwid2hpdGVcIlxyXG4gICAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgPiYjeGU5MzI7PC9pXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57eyByaXNrPy5vd25lciB9fTwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3sgcmlzaz8ucmlza093bmVyIH19PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3cgbXVsdGktY29sdW1uXCIgW2NsYXNzLnR3by1jb2x1bW5dPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZXJyb3JdPVwiIXJpc2s/LmlzVmFsaWRGcmVxdWVuY3lcIj5cclxuICAgICAgICAgICAge3sgcmlzaz8uZnJlcXVlbmN5IH19XHJcbiAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhcmlzaz8uaXNWYWxpZEZyZXF1ZW5jeVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiXHJcbiAgICAgICAgICAgICAgICAnU2V0IGEgZnJlcXVlbmN5IGZvciB0aGUgY29tcGxldGlvbiBvZiB0aGUgaW5oZXJlbnQgcmlzayBhc3Nlc3NtZW50LidcclxuICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cIndoaXRlXCJcclxuICAgICAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgID4mI3hlOTMyOzwvaVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLmVycm9yXT1cImZhbHNlXCI+XHJcbiAgICAgICAgICAgIHt7IHJpc2s/LmVtYWlsUmVtaW5kZXIgfX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiXHJcbiAgICAgICAgICBbY2xhc3MuZXJyb3JdPVwiXHJcbiAgICAgICAgICAgIChyaXNrPy5vd25lciAmJiByaXNrPy5vd25lciA9PSByaXNrPy5vdmVyc2VlcikgfHxcclxuICAgICAgICAgICAgKCFyaXNrPy5vd25lciAmJiBkZWZhdWx0T3duZXIgPT0gcmlzaz8ub3ZlcnNlZXIpXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IHJpc2s/Lm92ZXJzZWVyIH19XHJcbiAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgIChyaXNrPy5vd25lciAmJiByaXNrPy5vd25lciA9PSByaXNrPy5vdmVyc2VlcikgfHxcclxuICAgICAgICAgICAgICAoIXJpc2s/Lm93bmVyICYmIGRlZmF1bHRPd25lciA9PSByaXNrPy5vdmVyc2VlcilcclxuICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxyXG4gICAgICAgICAgICAgIChyaXNrPy5vd25lclxyXG4gICAgICAgICAgICAgICAgPyAnVGhlIFJpc2sgT3duZXIgY2Fubm90IGFsc28gYmUgdGhlJ1xyXG4gICAgICAgICAgICAgICAgOiAnWW91IGNhbm5vdCBiZSBhJykgK1xyXG4gICAgICAgICAgICAgICcgT3ZlcnNpZ2h0IG9mIHRoZSByaXNrLiBTZWxlY3QgYW5vdGhlciB1c2VyIGFzIHRoZSBPdmVyc2lnaHQgb2YgdGhpcyByaXNrLidcclxuICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCJcclxuICAgICAgICAgICAgdHlwZT1cIndoaXRlXCJcclxuICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgID4mI3hlOTMyOzwvaVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgIHJpc2tCdWxrVXBsb2FkPy5oZWFkZXIgJiZcclxuICAgICAgICAgICAgcmlza0J1bGtVcGxvYWQ/LmhlYWRlcj8uaW5jbHVkZXMoJ1JlY29tbWVuZGVkIE1pdGlnYXRpb24gUHJpb3JpdHknKVxyXG4gICAgICAgICAgXCJcclxuICAgICAgICAgIGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3sgcmlzaz8ubWl0aWdhdGlvblByaW9yaXR5IH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57eyByaXNrPy5taXRpZ2F0aW9uUGxhbnMgfX08L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7IHJpc2s/LnJpc2tMYWJlbCB9fTwvZGl2PlxyXG4gICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiAqbmdJZj1cImFzc2Vzc21lbnREYXlzRW5hYmxlXCIgW2NsYXNzLmVycm9yXT1cIiFyaXNrPy5hc3Nlc3NtZW50RGVhZExpbmVcIj5cclxuICAgICAgICAgICAgICAgICAge3tyaXNrPy5hc3Nlc3NtZW50RGVhZExpbmV9fVxyXG4gICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFyaXNrPy5hc3Nlc3NtZW50RGVhZExpbmVcIiBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIidTZXQgYSBkZWFkbGluZSBmb3IgdGhlIGNvbXBsZXRpb24gb2YgdGhlIGluaGVyZW50IHJpc2sgYXNzZXNzbWVudC4nXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj4mI3hlOTMyOzwvaT5cclxuICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3cgbXVsdGktY29sdW1uXCI+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5lcnJvcl09XCJcclxuICAgICAgICAgICAgICByaXNrPy5saWtlbGlob29kICYmXHJcbiAgICAgICAgICAgICAgIXRlbXBsYXRlSW5mbz8ubGlrZWxpaG9vZC5pbmNsdWRlcyhyaXNrPy5saWtlbGlob29kKVxyXG4gICAgICAgICAgICBcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyByaXNrPy5saWtlbGlob29kIH19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCJcclxuICAgICAgICAgICAgW2NsYXNzLmVycm9yXT1cIlxyXG4gICAgICAgICAgICAgIHJpc2s/LmltcGFjdCAmJiAhdGVtcGxhdGVJbmZvPy5pbXBhY3QuaW5jbHVkZXMocmlzaz8uaW1wYWN0KVxyXG4gICAgICAgICAgICBcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyByaXNrPy5pbXBhY3QgfX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIlxyXG4gICAgICAgICAgICBbY2xhc3MuZXJyb3JdPVwiXHJcbiAgICAgICAgICAgICAgcmlzaz8udmVsb2NpdHkgJiYgIXRlbXBsYXRlSW5mbz8udmVsb2NpdHkuaW5jbHVkZXMocmlzaz8udmVsb2NpdHkpXHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwicmlza0J1bGtVcGxvYWQ/LndlaWdodEZhY3RvcnM/LmluY2x1ZGVzKCdWZWxvY2l0eScpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3sgcmlzaz8udmVsb2NpdHkgfX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIlxyXG4gICAgICAgICAgICBbY2xhc3MuZXJyb3JdPVwiXHJcbiAgICAgICAgICAgICAgcmlzaz8udnVsbmVyYWJpbGl0eSAmJlxyXG4gICAgICAgICAgICAgICF0ZW1wbGF0ZUluZm8/LnZ1bG5lcmFiaWxpdHkuaW5jbHVkZXMocmlzaz8udnVsbmVyYWJpbGl0eSlcclxuICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgKm5nSWY9XCJyaXNrQnVsa1VwbG9hZD8ud2VpZ2h0RmFjdG9ycz8uaW5jbHVkZXMoJ1Z1bG5lcmFiaWxpdHknKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IHJpc2s/LnZ1bG5lcmFiaWxpdHkgfX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgIHJpc2tCdWxrVXBsb2FkPy5oZWFkZXIgJiZcclxuICAgICAgICAgICAgcmlza0J1bGtVcGxvYWQ/LmhlYWRlcj8uaW5jbHVkZXMoXHJcbiAgICAgICAgICAgICAgJ0RvIHlvdSB3YW50IHRvIGFwcGx5IHRoZSBzYW1lIHJpc2sgcmF0aW5ncyBmb3IgYWxsIFJlc3BvbnNpYmlsaXR5IENlbnRlcnM/J1xyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgICAgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7eyByaXNrPy5hcHBseVNhbWVSaXNrUmF0aW5nIH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmlzaz8uY3VzdG9tRmllbGQxfX08L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmlzaz8uY3VzdG9tRmllbGQyfX08L2Rpdj4gLS0+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyaXNrPy5jdXN0b21UYWdcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgKm5nRm9yPVwibGV0IHRhZyBvZiByaXNrPy5jdXN0b21UYWdcIj5cclxuICAgICAgICAgICAge3sgdGFnPy5jdXN0b21fdGFnX3ZhbHVlIH19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJidWxrLXZpZXctZm9vdGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XHJcbiAgICAgICAgPHA+XHJcbiAgICAgICAgICB7eyBmaW5hbFJpc2tzIH19IG91dCBvZiB7eyByaXNrQnVsa1VwbG9hZD8ucmlza3M/Lmxlbmd0aCB9fSByaXNrcyB3aWxsXHJcbiAgICAgICAgICBiZSBhZGRlZCB0byB0aGUgUmlzayBSZWdpc3Rlci5cclxuICAgICAgICA8L3A+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJjbG9zZSgpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgKGNsaWNrKT1cInN1Ym1pdChmYWxzZSlcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImZpbmFsUmlza3MgPCAxXCJcclxuICAgICAgICAgIGNsYXNzPVwiYmx1ZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgQWRkIFJpc2tzXHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgKGNsaWNrKT1cInN1Ym1pdCh0cnVlKVwiXHJcbiAgICAgICAgICAqbmdJZj1cInNob3dDb21wbGV0ZUFzc2Vzc21lbnRCdXR0b25cIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImZpbmFsUmlza3MgPCAxXCJcclxuICAgICAgICAgIGNsYXNzPVwiYmx1ZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgQWRkIFJpc2tzIEFuZCBDb21wbGV0ZSBBc3Nlc3NtZW50XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGFwcC1sb2FkZXItaW5saW5lICpuZ0lmPVwibG9hZGVyXCI+PC9hcHAtbG9hZGVyLWlubGluZT5cclxuPC9kaXY+XHJcbiJdfQ==
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVsay12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvYnVsay12aWV3L2J1bGstdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2J1bGstdmlldy9idWxrLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsWUFBWSxFQUNaLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFPdkIsTUFBTSxPQUFPLGlCQUFpQjtJQUw5QjtRQVdXLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZix1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFFbkMseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMxQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV0QyxlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsaUNBQTRCLEdBQUcsS0FBSyxDQUFDO0tBNkN0QztJQTNDQyxXQUFXO1FBQ1QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3pDLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztZQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtnQkFDOUMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO29CQUNoQixJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQztpQkFDdEI7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDOUMsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLGFBQWEsRUFBRSxNQUFNLElBQUksQ0FBQyxFQUFFO2dCQUNuRCxJQUFJLElBQUksRUFBRSxVQUFVLElBQUksSUFBSSxFQUFFLE1BQU0sRUFBRTtvQkFDcEMsSUFBSSxDQUFDLDRCQUE0QixHQUFHLElBQUksQ0FBQztpQkFDMUM7YUFDRjtpQkFBTSxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sSUFBSSxDQUFDLEVBQUU7Z0JBQzFELElBQ0UsSUFBSSxFQUFFLFVBQVU7b0JBQ2hCLElBQUksRUFBRSxNQUFNO29CQUNaLENBQUMsSUFBSSxFQUFFLFFBQVEsSUFBSSxJQUFJLEVBQUUsYUFBYSxDQUFDLEVBQ3ZDO29CQUNBLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxJQUFJLENBQUM7aUJBQzFDO2FBQ0Y7aUJBQU0sSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLGFBQWEsRUFBRSxNQUFNLElBQUksQ0FBQyxFQUFFO2dCQUMxRCxJQUNFLElBQUksRUFBRSxVQUFVO29CQUNoQixJQUFJLEVBQUUsTUFBTTtvQkFDWixJQUFJLEVBQUUsUUFBUTtvQkFDZCxJQUFJLEVBQUUsYUFBYSxFQUNuQjtvQkFDQSxJQUFJLENBQUMsNEJBQTRCLEdBQUcsSUFBSSxDQUFDO2lCQUMxQzthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLGtCQUF1QjtRQUM1QixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUM7K0dBekRVLGlCQUFpQjttR0FBakIsaUJBQWlCLGlZQ2I5Qiw0L1RBMlFBOzs0RkQ5UGEsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLGVBQWU7OEJBS2hCLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBRUksb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBPdXRwdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtYnVsay12aWV3JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYnVsay12aWV3LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9idWxrLXZpZXcuY29tcG9uZW50Lmxlc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEJ1bGtWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSByaXNrQnVsa1VwbG9hZCE6IGFueTtcclxuICBASW5wdXQoKSB0ZW1wbGF0ZUluZm8hOiBhbnk7XHJcbiAgQElucHV0KCkgZmlsZU5hbWUhOiBhbnk7XHJcbiAgQElucHV0KCkgYXNzZXNzbWVudERheXNFbmFibGUhOiBhbnk7XHJcbiAgQElucHV0KCkgZGVmYXVsdE93bmVyITogYW55O1xyXG4gIEBJbnB1dCgpIGxvYWRlciA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGZmTGlua2VkR3JjT2JqZWN0czogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgc3VibWl0Umlza0J1bGtVcGxvYWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgZmluYWxSaXNrcyA9IDA7XHJcbiAgc2hvd0NvbXBsZXRlQXNzZXNzbWVudEJ1dHRvbiA9IGZhbHNlO1xyXG5cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMucmlza0J1bGtVcGxvYWQsICdyaXNrJyk7XHJcbiAgICBpZiAodGhpcy5yaXNrQnVsa1VwbG9hZCkge1xyXG4gICAgICB0aGlzLmZpbmFsUmlza3MgPSAwO1xyXG4gICAgICB0aGlzLnJpc2tCdWxrVXBsb2FkLnJpc2tzLmZvckVhY2goKHJpc2s6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyaXNrLmlzVmFsaWQpIHtcclxuICAgICAgICAgIHRoaXMuZmluYWxSaXNrcyArPSAxO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJpc2tCdWxrVXBsb2FkLnJpc2tzLmZvckVhY2goKHJpc2s6IGFueSkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5yaXNrQnVsa1VwbG9hZD8ud2VpZ2h0RmFjdG9ycz8ubGVuZ3RoID09IDQpIHtcclxuICAgICAgICBpZiAocmlzaz8ubGlrZWxpaG9vZCAmJiByaXNrPy5pbXBhY3QpIHtcclxuICAgICAgICAgIHRoaXMuc2hvd0NvbXBsZXRlQXNzZXNzbWVudEJ1dHRvbiA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMucmlza0J1bGtVcGxvYWQ/LndlaWdodEZhY3RvcnM/Lmxlbmd0aCA9PSA1KSB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgcmlzaz8ubGlrZWxpaG9vZCAmJlxyXG4gICAgICAgICAgcmlzaz8uaW1wYWN0ICYmXHJcbiAgICAgICAgICAocmlzaz8udmVsb2NpdHkgfHwgcmlzaz8udnVsbmVyYWJpbGl0eSlcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMuc2hvd0NvbXBsZXRlQXNzZXNzbWVudEJ1dHRvbiA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMucmlza0J1bGtVcGxvYWQ/LndlaWdodEZhY3RvcnM/Lmxlbmd0aCA9PSA2KSB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgcmlzaz8ubGlrZWxpaG9vZCAmJlxyXG4gICAgICAgICAgcmlzaz8uaW1wYWN0ICYmXHJcbiAgICAgICAgICByaXNrPy52ZWxvY2l0eSAmJlxyXG4gICAgICAgICAgcmlzaz8udnVsbmVyYWJpbGl0eVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdGhpcy5zaG93Q29tcGxldGVBc3Nlc3NtZW50QnV0dG9uID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc3VibWl0KGNvbXBsZXRlQXNzZXNzbWVudDogYW55KSB7XHJcbiAgICB0aGlzLnN1Ym1pdFJpc2tCdWxrVXBsb2FkLmVtaXQoY29tcGxldGVBc3Nlc3NtZW50KTtcclxuICB9XHJcblxyXG4gIGNsb3NlKCkge1xyXG4gICAgdGhpcy5jYW5jZWwuZW1pdCgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiYnVsay12aWV3XCI+XHJcbiAgPGRpdiBjbGFzcz1cImJ1bGstdmlldy1oZWFkXCI+XHJcbiAgICA8aDIgY2xhc3M9XCJidWxrLXZpZXctdGl0bGVcIj5cclxuICAgICAge3sgZmlsZU5hbWUgfX1cclxuICAgIDwvaDI+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImJ1bGstdmlldy1ib2R5XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IGhlYWRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtbiBzbC1ub1wiPiM8L2Rpdj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIlxyXG4gICAgICAgICAgW2NsYXNzLnR3by1jb2x1bW5dPVwiaGVhZGluZyAmJiBpID09PSA1XCJcclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBoZWFkaW5nIG9mIHJpc2tCdWxrVXBsb2FkPy5oZWFkZXI7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgICAgICAgW2NsYXNzLmxhcmdlXT1cImhlYWRpbmcgJiYgaGVhZGluZy5zdGFydHNXaXRoKCdJbmhlcmVudCcpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICpuZ0lmPVwiaGVhZGluZyAmJiAhaGVhZGluZy5zdGFydHNXaXRoKCdJbmhlcmVudCcpICYmICEoaSA9PT0gNSlcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyBoZWFkaW5nLmluY2x1ZGVzKFwiKlwiKSA/IGhlYWRpbmcucmVwbGFjZShcIipcIiwgXCJcIikgOiBoZWFkaW5nIH19XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaGVhZGluZy5pbmNsdWRlcygnKicpXCIgY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoZWFkaW5nICYmIGhlYWRpbmcuc3RhcnRzV2l0aCgnSW5oZXJlbnQnKVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvd1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uIGxhcmdlXCI+SW5oZXJlbnQgUmlzayBBc3Nlc3NtZW50PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvdyBtdWx0aS1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIlxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwiXHJcbiAgICAgICAgICAgICAgICAgIGxldCB3ZWlnaHRBZ2VGYWN0b3Igb2Ygcmlza0J1bGtVcGxvYWQud2VpZ2h0RmFjdG9yc1xyXG4gICAgICAgICAgICAgICAgICAgIHwgc2xpY2UgOiAyXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHt7IHdlaWdodEFnZUZhY3RvciB9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhlYWRpbmcgJiYgaSA9PT0gNVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvd1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uIGxhcmdlXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBoZWFkaW5nLmluY2x1ZGVzKFwiKlwiKSA/IGhlYWRpbmcucmVwbGFjZShcIipcIiwgXCJcIikgOiBoZWFkaW5nIH19XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImhlYWRpbmcuaW5jbHVkZXMoJyonKVwiIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3cgbXVsdGktY29sdW1uXCIgW2NsYXNzLnR3by1jb2x1bW5dPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiXHJcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJcclxuICAgICAgICAgICAgICAgICAgbGV0IHdlaWdodEFnZUZhY3RvciBvZiByaXNrQnVsa1VwbG9hZD8ud2VpZ2h0RmFjdG9yc1xyXG4gICAgICAgICAgICAgICAgICAgIHwgc2xpY2UgOiAwIDogMlxyXG4gICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgICB3ZWlnaHRBZ2VGYWN0b3IuaW5jbHVkZXMoXCIqXCIpXHJcbiAgICAgICAgICAgICAgICAgICAgPyB3ZWlnaHRBZ2VGYWN0b3IucmVwbGFjZShcIipcIiwgXCJcIilcclxuICAgICAgICAgICAgICAgICAgICA6IHdlaWdodEFnZUZhY3RvclxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwid2VpZ2h0QWdlRmFjdG9yLmluY2x1ZGVzKCcqJylcIiBjbGFzcz1cInJlcXVpcmVkXCJcclxuICAgICAgICAgICAgICAgICAgPio8L3NwYW5cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cImV4ZWwtdmlldy1yb3dcIlxyXG4gICAgICAgICpuZ0Zvcj1cImxldCByaXNrIG9mIHJpc2tCdWxrVXBsb2FkLnJpc2tzOyBsZXQgaSA9IGluZGV4XCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uIHNsLW5vXCIgW2NsYXNzLmVycm9yXT1cIiFyaXNrLmlzVmFsaWRcIj5cclxuICAgICAgICAgIHt7IGkgKyAxIH19XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLmVycm9yXT1cIiFyaXNrPy5yaXNrTmFtZVwiPlxyXG4gICAgICAgICAge3sgcmlzaz8ucmlza05hbWUgfX1cclxuICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICpuZ0lmPVwiIXJpc2s/LnJpc2tOYW1lXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIidSaXNrIE5hbWUgbXVzdCBiZSBwb3B1bGF0ZWQuJ1wiXHJcbiAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJ3aGl0ZVwiXHJcbiAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxyXG4gICAgICAgICAgICA+JiN4ZTkzMjs8L2lcclxuICAgICAgICAgID5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57eyByaXNrPy5kZXNjcmlwdGlvbiB9fTwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5lcnJvcl09XCIhcmlzaz8ucmNOYW1lXCI+XHJcbiAgICAgICAgICB7eyByaXNrPy5yY05hbWUgfX1cclxuICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICpuZ0lmPVwiIXJpc2s/LnJjTmFtZVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICBbYXBwVG9vbHRpcF09XCInQXNzaWduIHRoaXMgcmlzayB0byBhIFJlc3BvbnNpYmlsaXR5IENlbnRlci4nXCJcclxuICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCJcclxuICAgICAgICAgICAgdHlwZT1cIndoaXRlXCJcclxuICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgID4mI3hlOTMyOzwvaVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3sgcmlzaz8ub3duZXIgfX08L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7IHJpc2s/LnJpc2tPd25lciB9fTwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IG11bHRpLWNvbHVtblwiIFtjbGFzcy50d28tY29sdW1uXT1cInRydWVcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLmVycm9yXT1cIiFyaXNrPy5pc1ZhbGlkRnJlcXVlbmN5XCI+XHJcbiAgICAgICAgICAgIHt7IHJpc2s/LmZyZXF1ZW5jeSB9fVxyXG4gICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiIXJpc2s/LmlzVmFsaWRGcmVxdWVuY3lcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxyXG4gICAgICAgICAgICAgICAgJ1NldCBhIGZyZXF1ZW5jeSBmb3IgdGhlIGNvbXBsZXRpb24gb2YgdGhlIGluaGVyZW50IHJpc2sgYXNzZXNzbWVudC4nXHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIlxyXG4gICAgICAgICAgICAgIHR5cGU9XCJ3aGl0ZVwiXHJcbiAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICA+JiN4ZTkzMjs8L2lcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5lcnJvcl09XCJmYWxzZVwiPlxyXG4gICAgICAgICAgICB7eyByaXNrPy5lbWFpbFJlbWluZGVyIH19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIlxyXG4gICAgICAgICAgW2NsYXNzLmVycm9yXT1cIlxyXG4gICAgICAgICAgICAocmlzaz8ub3duZXIgJiYgcmlzaz8ub3duZXIgPT0gcmlzaz8ub3ZlcnNlZXIpIHx8XHJcbiAgICAgICAgICAgICghcmlzaz8ub3duZXIgJiYgZGVmYXVsdE93bmVyID09IHJpc2s/Lm92ZXJzZWVyKVxyXG4gICAgICAgICAgXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7eyByaXNrPy5vdmVyc2VlciB9fVxyXG4gICAgICAgICAgPGlcclxuICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAocmlzaz8ub3duZXIgJiYgcmlzaz8ub3duZXIgPT0gcmlzaz8ub3ZlcnNlZXIpIHx8XHJcbiAgICAgICAgICAgICAgKCFyaXNrPy5vd25lciAmJiBkZWZhdWx0T3duZXIgPT0gcmlzaz8ub3ZlcnNlZXIpXHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJcclxuICAgICAgICAgICAgICAocmlzaz8ub3duZXJcclxuICAgICAgICAgICAgICAgID8gJ1RoZSBSaXNrIE93bmVyIGNhbm5vdCBhbHNvIGJlIHRoZSdcclxuICAgICAgICAgICAgICAgIDogJ1lvdSBjYW5ub3QgYmUgYScpICtcclxuICAgICAgICAgICAgICAnIE92ZXJzaWdodCBvZiB0aGUgcmlzay4gU2VsZWN0IGFub3RoZXIgdXNlciBhcyB0aGUgT3ZlcnNpZ2h0IG9mIHRoaXMgcmlzay4nXHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJ3aGl0ZVwiXHJcbiAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxyXG4gICAgICAgICAgICA+JiN4ZTkzMjs8L2lcclxuICAgICAgICAgID5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICByaXNrQnVsa1VwbG9hZD8uaGVhZGVyICYmXHJcbiAgICAgICAgICAgIHJpc2tCdWxrVXBsb2FkPy5oZWFkZXI/LmluY2x1ZGVzKCdSZWNvbW1lbmRlZCBNaXRpZ2F0aW9uIFByaW9yaXR5JylcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgICBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IHJpc2s/Lm1pdGlnYXRpb25Qcmlvcml0eSB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3sgcmlzaz8ubWl0aWdhdGlvblBsYW5zIH19PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57eyByaXNrPy5yaXNrTGFiZWwgfX08L2Rpdj5cclxuICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgKm5nSWY9XCJhc3Nlc3NtZW50RGF5c0VuYWJsZVwiIFtjbGFzcy5lcnJvcl09XCIhcmlzaz8uYXNzZXNzbWVudERlYWRMaW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7cmlzaz8uYXNzZXNzbWVudERlYWRMaW5lfX1cclxuICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCIhcmlzaz8uYXNzZXNzbWVudERlYWRMaW5lXCIgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCInU2V0IGEgZGVhZGxpbmUgZm9yIHRoZSBjb21wbGV0aW9uIG9mIHRoZSBpbmhlcmVudCByaXNrIGFzc2Vzc21lbnQuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCI+JiN4ZTkzMjs8L2k+XHJcbiAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IG11bHRpLWNvbHVtblwiPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIlxyXG4gICAgICAgICAgICBbY2xhc3MuZXJyb3JdPVwiXHJcbiAgICAgICAgICAgICAgcmlzaz8ubGlrZWxpaG9vZCAmJlxyXG4gICAgICAgICAgICAgICF0ZW1wbGF0ZUluZm8/Lmxpa2VsaWhvb2QuaW5jbHVkZXMocmlzaz8ubGlrZWxpaG9vZClcclxuICAgICAgICAgICAgXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3sgcmlzaz8ubGlrZWxpaG9vZCB9fVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5lcnJvcl09XCJcclxuICAgICAgICAgICAgICByaXNrPy5pbXBhY3QgJiYgIXRlbXBsYXRlSW5mbz8uaW1wYWN0LmluY2x1ZGVzKHJpc2s/LmltcGFjdClcclxuICAgICAgICAgICAgXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3sgcmlzaz8uaW1wYWN0IH19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCJcclxuICAgICAgICAgICAgW2NsYXNzLmVycm9yXT1cIlxyXG4gICAgICAgICAgICAgIHJpc2s/LnZlbG9jaXR5ICYmICF0ZW1wbGF0ZUluZm8/LnZlbG9jaXR5LmluY2x1ZGVzKHJpc2s/LnZlbG9jaXR5KVxyXG4gICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAqbmdJZj1cInJpc2tCdWxrVXBsb2FkPy53ZWlnaHRGYWN0b3JzPy5pbmNsdWRlcygnVmVsb2NpdHknKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IHJpc2s/LnZlbG9jaXR5IH19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCJcclxuICAgICAgICAgICAgW2NsYXNzLmVycm9yXT1cIlxyXG4gICAgICAgICAgICAgIHJpc2s/LnZ1bG5lcmFiaWxpdHkgJiZcclxuICAgICAgICAgICAgICAhdGVtcGxhdGVJbmZvPy52dWxuZXJhYmlsaXR5LmluY2x1ZGVzKHJpc2s/LnZ1bG5lcmFiaWxpdHkpXHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwicmlza0J1bGtVcGxvYWQ/LndlaWdodEZhY3RvcnM/LmluY2x1ZGVzKCdWdWxuZXJhYmlsaXR5JylcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyByaXNrPy52dWxuZXJhYmlsaXR5IH19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICByaXNrQnVsa1VwbG9hZD8uaGVhZGVyICYmXHJcbiAgICAgICAgICAgIHJpc2tCdWxrVXBsb2FkPy5oZWFkZXI/LmluY2x1ZGVzKFxyXG4gICAgICAgICAgICAgICdEbyB5b3Ugd2FudCB0byBhcHBseSB0aGUgc2FtZSByaXNrIHJhdGluZ3MgZm9yIGFsbCBSZXNwb25zaWJpbGl0eSBDZW50ZXJzPydcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgXCJcclxuICAgICAgICAgIGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3sgcmlzaz8uYXBwbHlTYW1lUmlza1JhdGluZyB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgIGZmTGlua2VkR3JjT2JqZWN0cyAmJlxyXG4gICAgICAgICAgICByaXNrQnVsa1VwbG9hZD8uaGVhZGVyICYmXHJcbiAgICAgICAgICAgIHJpc2tCdWxrVXBsb2FkPy5oZWFkZXI/LmluY2x1ZGVzKCdMaW5rZWQgR1JDIE9iamVjdChzKScpXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgICAgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7eyByaXNrPy5saW5rZWRHcmNPYmplY3QgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyaXNrPy5jdXN0b21GaWVsZDF9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyaXNrPy5jdXN0b21GaWVsZDJ9fTwvZGl2PiAtLT5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJpc2s/LmN1c3RvbVRhZ1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiAqbmdGb3I9XCJsZXQgdGFnIG9mIHJpc2s/LmN1c3RvbVRhZ1wiPlxyXG4gICAgICAgICAgICB7eyB0YWc/LmN1c3RvbV90YWdfdmFsdWUgfX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImJ1bGstdmlldy1mb290ZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj5cclxuICAgICAgICA8cD5cclxuICAgICAgICAgIHt7IGZpbmFsUmlza3MgfX0gb3V0IG9mIHt7IHJpc2tCdWxrVXBsb2FkPy5yaXNrcz8ubGVuZ3RoIH19IHJpc2tzIHdpbGxcclxuICAgICAgICAgIGJlIGFkZGVkIHRvIHRoZSBSaXNrIFJlZ2lzdGVyLlxyXG4gICAgICAgIDwvcD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cImNsb3NlKClcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAoY2xpY2spPVwic3VibWl0KGZhbHNlKVwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZmluYWxSaXNrcyA8IDFcIlxyXG4gICAgICAgICAgY2xhc3M9XCJibHVlXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICBBZGQgUmlza3NcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAoY2xpY2spPVwic3VibWl0KHRydWUpXCJcclxuICAgICAgICAgICpuZ0lmPVwic2hvd0NvbXBsZXRlQXNzZXNzbWVudEJ1dHRvblwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZmluYWxSaXNrcyA8IDFcIlxyXG4gICAgICAgICAgY2xhc3M9XCJibHVlXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICBBZGQgUmlza3MgQW5kIENvbXBsZXRlIEFzc2Vzc21lbnRcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8YXBwLWxvYWRlci1pbmxpbmUgKm5nSWY9XCJsb2FkZXJcIj48L2FwcC1sb2FkZXItaW5saW5lPlxyXG48L2Rpdj5cclxuIl19