vc-layout 3.0.2 → 3.0.4

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 (75) hide show
  1. package/fesm2022/vc-layout.mjs +573 -356
  2. package/fesm2022/vc-layout.mjs.map +1 -1
  3. package/lib/components/ai-assistant/ai-assistant-container.component.d.ts +25 -0
  4. package/lib/components/ai-assistant/assistant-state.config.d.ts +11 -0
  5. package/lib/components/header/ai-assistant/ai-assistant.component.d.ts +12 -0
  6. package/lib/components/header/business-cycle/business-cycle.component.d.ts +1 -0
  7. package/lib/components/header/header-container/header-container.component.d.ts +5 -3
  8. package/lib/components/header/header.module.d.ts +11 -9
  9. package/lib/components/product-list/module-list/module-list.component.d.ts +0 -10
  10. package/lib/constants/assistant.constants.d.ts +2 -0
  11. package/lib/shared/pipe/pipes.module.d.ts +3 -2
  12. package/lib/shared/pipe/safe-url.pipe.d.ts +10 -0
  13. package/lib/shared/services/local-storage.service.d.ts +8 -0
  14. package/package.json +3 -5
  15. package/public-api.d.ts +1 -0
  16. package/esm2022/lib/components/global-alert/global-alert/global-alert.component.mjs +0 -191
  17. package/esm2022/lib/components/global-alert/global-alert.module.mjs +0 -18
  18. package/esm2022/lib/components/header/business-cycle/business-cycle.component.mjs +0 -275
  19. package/esm2022/lib/components/header/create-workflow/create-workflow.component.mjs +0 -21
  20. package/esm2022/lib/components/header/header-container/header-container.component.mjs +0 -129
  21. package/esm2022/lib/components/header/header.module.mjs +0 -71
  22. package/esm2022/lib/components/header/queue/queue.component.mjs +0 -59
  23. package/esm2022/lib/components/header/search/search.component.mjs +0 -136
  24. package/esm2022/lib/components/header/support/support.component.mjs +0 -31
  25. package/esm2022/lib/components/header/user-details/user-details.component.mjs +0 -34
  26. package/esm2022/lib/components/product-list/module-list/module-list.component.mjs +0 -255
  27. package/esm2022/lib/components/product-list/preference-list/preference-list.component.mjs +0 -97
  28. package/esm2022/lib/components/product-list/product-list-container/product-list-container.component.mjs +0 -42
  29. package/esm2022/lib/components/product-list/product-list.module.mjs +0 -31
  30. package/esm2022/lib/components/sub-menu/sub-menu-container/sub-menu-container.component.mjs +0 -106
  31. package/esm2022/lib/components/sub-menu/sub-menu.module.mjs +0 -19
  32. package/esm2022/lib/configurations.mjs +0 -6
  33. package/esm2022/lib/constants/alerts.constant.mjs +0 -7
  34. package/esm2022/lib/constants/api.constant.mjs +0 -7
  35. package/esm2022/lib/constants/app-url.constant.mjs +0 -23
  36. package/esm2022/lib/constants/assets.constants.mjs +0 -35
  37. package/esm2022/lib/constants/business-cycle.constant.mjs +0 -42
  38. package/esm2022/lib/constants/product-list.constant.mjs +0 -124
  39. package/esm2022/lib/shared/pipe/check-create-permission.pipe.mjs +0 -17
  40. package/esm2022/lib/shared/pipe/date-format.pipe.mjs +0 -35
  41. package/esm2022/lib/shared/pipe/get-file-url.pipe.mjs +0 -22
  42. package/esm2022/lib/shared/pipe/get-module-icon.pipe.mjs +0 -22
  43. package/esm2022/lib/shared/pipe/pipes.module.mjs +0 -37
  44. package/esm2022/lib/shared/services/RBAC.service.mjs +0 -57
  45. package/esm2022/lib/shared/services/api.service.mjs +0 -127
  46. package/esm2022/lib/shared/services/business-cycle.service.mjs +0 -123
  47. package/esm2022/lib/shared/services/layout.service.mjs +0 -41
  48. package/esm2022/lib/shared/services/product-list.service.mjs +0 -83
  49. package/esm2022/lib/shared/ui-kit/avatar/avatar/avatar.component.mjs +0 -43
  50. package/esm2022/lib/shared/ui-kit/avatar/avatar.module.mjs +0 -19
  51. package/esm2022/lib/shared/ui-kit/formgroup/checkbox/checkbox.component.mjs +0 -39
  52. package/esm2022/lib/shared/ui-kit/formgroup/click-outside.directive.mjs +0 -29
  53. package/esm2022/lib/shared/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.mjs +0 -28
  54. package/esm2022/lib/shared/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.mjs +0 -32
  55. package/esm2022/lib/shared/ui-kit/formgroup/cs-radio/cs-radio.component.mjs +0 -30
  56. package/esm2022/lib/shared/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.mjs +0 -14
  57. package/esm2022/lib/shared/ui-kit/formgroup/cs-select/cs-select.component.mjs +0 -102
  58. package/esm2022/lib/shared/ui-kit/formgroup/cs-switch/cs-switch.component.mjs +0 -35
  59. package/esm2022/lib/shared/ui-kit/formgroup/formgroup.module.mjs +0 -65
  60. package/esm2022/lib/shared/ui-kit/formgroup/pipes/pascal.pipe.mjs +0 -19
  61. package/esm2022/lib/shared/ui-kit/formgroup/pipes/searchMultiSelect.pipe.mjs +0 -24
  62. package/esm2022/lib/shared/ui-kit/page-loader/page-loader.component.mjs +0 -27
  63. package/esm2022/lib/shared/ui-kit/popover/popover-event.directive.mjs +0 -28
  64. package/esm2022/lib/shared/ui-kit/popover/popover-longpress.directive.mjs +0 -48
  65. package/esm2022/lib/shared/ui-kit/popover/popover.component.mjs +0 -141
  66. package/esm2022/lib/shared/ui-kit/popover/popover.directive.mjs +0 -82
  67. package/esm2022/lib/shared/ui-kit/popover/popover.module.mjs +0 -23
  68. package/esm2022/lib/shared/ui-kit/popover/popover.service.mjs +0 -15
  69. package/esm2022/lib/shared/ui-kit/tooltip/tooltip.directive.mjs +0 -156
  70. package/esm2022/lib/shared/ui-kit/tooltip/tooltip.module.mjs +0 -18
  71. package/esm2022/lib/vc-layout.component.mjs +0 -19
  72. package/esm2022/lib/vc-layout.module.mjs +0 -24
  73. package/esm2022/lib/vc-layout.service.mjs +0 -14
  74. package/esm2022/public-api.mjs +0 -14
  75. package/esm2022/vc-layout.mjs +0 -5
@@ -1,275 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { FUTURE_DATES } from '../../../constants/business-cycle.constant';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@vcomply/authorizer";
5
- import * as i2 from "../../../shared/services/business-cycle.service";
6
- import * as i3 from "../../../shared/services/api.service";
7
- import * as i4 from "@angular/common";
8
- import * as i5 from "../../../shared/ui-kit/tooltip/tooltip.directive";
9
- import * as i6 from "../../../shared/ui-kit/popover/popover.component";
10
- import * as i7 from "../../../shared/ui-kit/popover/popover.directive";
11
- import * as i8 from "../../../shared/ui-kit/formgroup/cs-checkbox/cs-checkbox.component";
12
- import * as i9 from "../../../shared/pipe/date-format.pipe";
13
- export class BusinessCycleComponent {
14
- constructor(authService, businessCycleService, apiService) {
15
- this.authService = authService;
16
- this.businessCycleService = businessCycleService;
17
- this.apiService = apiService;
18
- this.cycleToShow = 'Business Cycle';
19
- this.businessCycleArr = [];
20
- this.hiddenCycle = [];
21
- this.tempBusinessCycleArr = [];
22
- this.tempHiddenCycle = [0];
23
- this.businessCyclesList = [];
24
- this.tempSelectedCycle = [];
25
- this.userId = 0;
26
- this.businessCycleChange = new EventEmitter();
27
- this.userId = this.authService.getUserId() ?? 0;
28
- this.businessCycleService.isBusinessCycleAvailable();
29
- this.setSelectedBusinessCycle();
30
- this.getOrgDetails();
31
- }
32
- ngOnInit() { }
33
- getOrgDetails() {
34
- this.apiService.organizationDetail$.subscribe((res) => {
35
- if (res) {
36
- this.setBusinessCycleKey(res.business_cycles_arr);
37
- this.setBusinessCycle();
38
- this.setCycleEnableDisable();
39
- }
40
- });
41
- }
42
- setSelectedBusinessCycle() {
43
- this.businessCycleService.selectedBusinessCycle$.subscribe((res) => {
44
- if (res) {
45
- this.selectedBusinessCycle = res;
46
- this.setTempSelectedCycle(res);
47
- }
48
- });
49
- }
50
- /**
51
- * #### Description
52
- * it will set a new key in every cycle
53
- * key will use for disabled or enable the cycle from business cycle list.
54
- * @param businessCycle this the business cycle list
55
- */
56
- setBusinessCycleKey(businessCycle) {
57
- this.businessCycleList = businessCycle;
58
- if (this.businessCycleList.length)
59
- this.businessCycleList.map((cycle) => {
60
- cycle['isDisabled'] = false;
61
- });
62
- }
63
- /**
64
- * #### Description
65
- * it will check the cycle if it is not checked.
66
- * if it has checked then it will uncheck that cycle.
67
- * @param cycle checked or unchecked cycle from business cycle list.
68
- * @param index it give the index value of business cycle list which is selected.
69
- */
70
- selectCycle(cycle, index) {
71
- const isExist = this.tempSelectedCycle.findIndex((el) => el.start_date == cycle.start_date);
72
- if (isExist >= 0) {
73
- this.tempSelectedCycle.splice(isExist, 1);
74
- }
75
- else if (this.tempSelectedCycle?.length === 0) {
76
- this.tempSelectedCycle.push(cycle);
77
- }
78
- else {
79
- const selectedIndex = this.businessCycleList.findIndex((el) => el.start_date == this.tempSelectedCycle[0]?.start_date);
80
- if (selectedIndex < index) {
81
- this.tempSelectedCycle.unshift(cycle);
82
- }
83
- else {
84
- this.tempSelectedCycle.push(cycle);
85
- }
86
- }
87
- this.setCycleEnableDisable();
88
- }
89
- /**
90
- * #### Description
91
- *
92
- * need to check cycle includes in selected cycle array
93
- * Determines whether selected cycle is
94
- * @param selectedCycle selected Cycle which user checked or auto selected cycle.
95
- * @param cycle all indivisible cycle of business cycle of the organization.
96
- * @returns boolean value is cycle exist in selected cycle or not.
97
- */
98
- isSelectedCycle(selectedCycle, cycle) {
99
- let isSelected = false;
100
- selectedCycle.forEach((el) => {
101
- if (el.start_date == cycle.start_date) {
102
- isSelected = true;
103
- }
104
- });
105
- return isSelected;
106
- }
107
- /**
108
- * #### Description
109
- *
110
- * set selected businessCycle to temp business cycle indivisible if there is two selected cycle
111
- * Sets temp selected cycle
112
- * @param cycle selected business cycle from local storage
113
- */
114
- setTempSelectedCycle(cycle) {
115
- this.tempSelectedCycle = [];
116
- if (cycle?.selected_cycle_arr?.length === 1) {
117
- this.tempSelectedCycle.push(cycle);
118
- this.setCycleToShow(cycle);
119
- // this.cycleToShow = cycle.business_cycle;
120
- }
121
- else {
122
- cycle?.selected_cycle_arr?.forEach((el, i) => {
123
- let payload = {
124
- start_date: el.substring(0, 10),
125
- end_date: el.substring(el?.length - 10, el?.lenth),
126
- selected: true,
127
- business_cycle: cycle?.business_cycle[i],
128
- selected_cycle: cycle?.selected_cycle[i],
129
- selected_cycle_arr: [el],
130
- };
131
- this.tempSelectedCycle.push(payload);
132
- });
133
- // this.cycleToShow = cycle?.business_cycle[0]?.substring(0,11) + " - " + cycle?.business_cycle[1].substring(cycle?.business_cycle[1]?.length-11, cycle?.business_cycle[1]?.lenth);
134
- }
135
- // this.setCycleToShow(cycle);
136
- this.setCycleEnableDisable();
137
- }
138
- /**
139
- * #### Description
140
- * when user select one cycle then their besides cycles are enable and other are disabled.
141
- * if user select two cycles then all the cycles get disabled except selected cycles.
142
- *
143
- * In businessCycleList array we set a isDisabled key, we are set it true when need to disabled the cycle.
144
- */
145
- setCycleEnableDisable() {
146
- if (!this.tempSelectedCycle?.length) {
147
- if (this.businessCycleList?.length)
148
- this.businessCycleList.map((cycle) => {
149
- cycle['isDisabled'] = false;
150
- });
151
- }
152
- else if (this.tempSelectedCycle?.length === 1) {
153
- const index = this.businessCycleList?.findIndex((el) => el.start_date == this.tempSelectedCycle[0].start_date);
154
- this.businessCycleList?.forEach((cycle, i) => {
155
- if (index - 1 === i || index === i || index + 1 === i) {
156
- cycle.isDisabled = false;
157
- }
158
- else {
159
- cycle.isDisabled = true;
160
- }
161
- });
162
- }
163
- else {
164
- this.businessCycleList?.forEach((cycle) => {
165
- let isDisabled = true;
166
- this.tempSelectedCycle.forEach((el) => {
167
- if (cycle.start_date == el.start_date) {
168
- isDisabled = false;
169
- }
170
- });
171
- cycle.isDisabled = isDisabled;
172
- });
173
- }
174
- }
175
- /**
176
- * #### Description
177
- * When user click apply then selected cycle is set in local storage.
178
- *
179
- */
180
- setBusinessCycle() {
181
- const combinedDates = this.businessCycleService.convertNumericAlpha(this.businessCycleList[0]?.start_date +
182
- this.businessCycleList[0]?.end_date);
183
- const isFutureDates = (cycle) => cycle?.business_cycle === combinedDates &&
184
- this.businessCycleList[0]?.business_cycle === FUTURE_DATES;
185
- let businessCycleObject = {
186
- userId: this.userId,
187
- selectedCycle: {
188
- selected: true,
189
- business_cycle: [],
190
- selected_cycle_arr: [],
191
- },
192
- };
193
- if (this.tempSelectedCycle?.length === 1) {
194
- this.setSingleSelectedCycle(businessCycleObject, isFutureDates);
195
- }
196
- else {
197
- this.setMultipleSelectedCycles(businessCycleObject, isFutureDates);
198
- }
199
- this.setCycleToShow(businessCycleObject?.selectedCycle);
200
- localStorage.setItem('businessCycle', JSON.stringify(businessCycleObject));
201
- this.selectedBusinessCycle = businessCycleObject?.selectedCycle;
202
- this.businessCycleChange.emit(this.selectedBusinessCycle);
203
- this.businessCycleService.changeBusinessCycle$.next(true);
204
- }
205
- setSingleSelectedCycle(businessCycleObject, isFutureDates) {
206
- const cycle = this.tempSelectedCycle[0];
207
- if (isFutureDates(cycle)) {
208
- cycle.business_cycle = FUTURE_DATES;
209
- }
210
- Object.assign(businessCycleObject?.selectedCycle, {
211
- start_date: cycle?.start_date,
212
- end_date: cycle?.end_date,
213
- business_cycle: cycle?.business_cycle,
214
- selected_cycle: `${cycle?.start_date}-${cycle?.end_date}`,
215
- selected_cycle_arr: [`${cycle?.start_date}-${cycle?.end_date}`],
216
- });
217
- }
218
- setMultipleSelectedCycles(businessCycleObject, isFutureDates) {
219
- this.tempSelectedCycle?.forEach((cycle) => {
220
- businessCycleObject?.selectedCycle.business_cycle?.push(isFutureDates(cycle) ? FUTURE_DATES : cycle?.business_cycle);
221
- businessCycleObject?.selectedCycle.selected_cycle_arr?.push(`${cycle?.start_date}-${cycle?.end_date}`);
222
- });
223
- businessCycleObject.selectedCycle.start_date =
224
- this.tempSelectedCycle[0]?.start_date;
225
- businessCycleObject.selectedCycle.end_date =
226
- this.tempSelectedCycle[1]?.end_date;
227
- businessCycleObject.selectedCycle.selected_cycle = `${businessCycleObject?.selectedCycle?.start_date}-${businessCycleObject?.selectedCycle?.end_date}`;
228
- }
229
- /**
230
- * #### Description
231
- * when user click cancel then it will close the popover.
232
- * remove temp value from term selected array and set the previous selected cycle in it.
233
- */
234
- cancelBusinessCycle() {
235
- this.setTempSelectedCycle(this.selectedBusinessCycle);
236
- }
237
- /**
238
- * #### Description
239
- * this will set the string of business cycle which will display in the header.
240
- * @param cycle object which is selected and apply. the same object will store in local storage.
241
- */
242
- setCycleToShow(cycle) {
243
- if (cycle?.selected_cycle_arr?.length === 1) {
244
- if (cycle?.business_cycle?.toLowerCase() == 'show future due dates') {
245
- this.cycleToShow = 'Future Due Dates';
246
- }
247
- else {
248
- this.cycleToShow = cycle.business_cycle;
249
- }
250
- }
251
- else {
252
- if (cycle?.business_cycle?.length > 0 &&
253
- cycle?.business_cycle[1]?.toLowerCase() == 'show future due dates') {
254
- this.cycleToShow = cycle?.business_cycle[0]?.substring(0, 11);
255
- }
256
- else if (cycle?.business_cycle?.length) {
257
- this.cycleToShow =
258
- cycle?.business_cycle[0]?.substring(0, 11) +
259
- ' - ' +
260
- cycle?.business_cycle[1].substring(cycle?.business_cycle[1]?.length - 11, cycle?.business_cycle[1]?.lenth);
261
- }
262
- }
263
- }
264
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BusinessCycleComponent, deps: [{ token: i1.AuthorizerService }, { token: i2.BusinessCycleService }, { token: i3.ApiService }], target: i0.ɵɵFactoryTarget.Component }); }
265
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BusinessCycleComponent, selector: "vc-business-cycle", inputs: { orgDetails: "orgDetails" }, outputs: { businessCycleChange: "businessCycleChange" }, ngImport: i0, template: "<div\n class=\"vc-business-cycle vx-pt-2 vx-pb-2\"\n appPopover\n (click)=\"businessCyclePop.popover()\"\n position=\"left\"\n>\n <div class=\"heading vx-fs-9 vx-tt-uppercase vx-mb-1 vx-lh-3\">\n SHOWING DATA {{ cycleToShow === \"Show Future Due Dates\" ? \"For\" : \"From\" }}\n </div>\n <div class=\"vx-d-flex vx-align-center vx-justify-between vx-lh-4\">\n <div class=\"vx-d-flex vx-align-center\">\n <i class=\"icons calendar vx-fs-12 vx-mr-2\">&#xe996;</i>\n <span class=\"vx-fs-11 vx-txt-white vx-d-inline-block\">{{\n cycleToShow === \"Show Future Due Dates\"\n ? \"Future Due Dates\"\n : cycleToShow\n }}</span>\n </div>\n <i class=\"icons arrow vx-fs-10 vx-mr-2\">&#xe9e8;</i>\n </div>\n</div>\n\n<vui-popover #businessCyclePop [dontCloseonClick]=\"true\">\n <div class=\"vc-business-cycle-popover-container\">\n <div\n class=\"vc-business-cycle-popover-container-top vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3\"\n >\n <p class=\"vx-fs-11 vx-fw-400 vx-label-txt vx-p-0 vx-m-0\">\n You can select upto a max of two consecutive years\n </p>\n </div>\n <div class=\"vc-business-cycle-popover-container-body\">\n <ul class=\"vx-p-0 vx-m-0\">\n <ng-container\n *ngFor=\"let eachCycle of businessCycleList; let i = index\"\n >\n <li\n *ngIf=\"\n eachCycle?.business_cycle?.toLowerCase() ===\n 'show future due dates'\n \"\n class=\"vx-d-flex vx-align-center vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3\"\n [class.future-cycle]=\"true\"\n >\n <app-cs-checkbox\n [ngValue]=\"isSelectedCycle(tempSelectedCycle, eachCycle)\"\n (ngValueChange)=\"selectCycle(eachCycle, i)\"\n [disabled]=\"eachCycle?.isDisabled\"\n >Show Future Due Dates</app-cs-checkbox\n >\n <i\n class=\"icons info-icon vx-fs-12\"\n [arTooltip]=\"\n 'This option lets you view data that lies outside the current business cycle and are due in the future.'\n \"\n placement=\"bottom\"\n type=\"black\"\n delay=\"0\"\n [tooltipMandatory]=\"true\"\n >&#xe91f;</i\n >\n </li>\n <li\n *ngIf=\"\n eachCycle?.business_cycle?.toLowerCase() !==\n 'show future due dates'\n \"\n class=\"vx-d-flex vx-align-center vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3\"\n >\n <app-cs-checkbox\n [ngValue]=\"isSelectedCycle(tempSelectedCycle, eachCycle)\"\n (ngValueChange)=\"selectCycle(eachCycle, i)\"\n [disabled]=\"eachCycle?.isDisabled\"\n >{{ eachCycle?.start_date | dateFormat }} -\n <ng-container>\n {{ eachCycle?.end_date | dateFormat }}</ng-container\n >\n </app-cs-checkbox>\n </li>\n </ng-container>\n </ul>\n </div>\n <div\n class=\"vc-business-cycle-popover-container-footer vx-d-flex vx-justify-between vx-p-3\"\n >\n <button\n (click)=\"businessCyclePop.closePopover('top')\"\n class=\"white vx-fs-11 vx-fw-500 vx-d-flex vx-align-center vx-justify-center vx-tt-uppercase vx-p-0 vx-m-0 vx-txt-blue\"\n >\n CANCEL\n </button>\n <button\n (click)=\"setBusinessCycle(); businessCyclePop.closePopover('top')\"\n [class.disabled]=\"false\"\n class=\"blue vx-fs-11 vx-fw-500 vx-d-flex vx-align-center vx-justify-center vx-tt-uppercase vx-p-0 vx-m-0 vx-txt-white\"\n >\n APPLY\n </button>\n </div>\n </div>\n</vui-popover>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";::ng-deep .vc-business-cycle{position:relative;width:12.5rem;height:3rem;cursor:pointer;z-index:1}::ng-deep .vc-business-cycle .heading{color:#e3e3e9}::ng-deep .vc-business-cycle i.calendar{color:#e3e3e9}::ng-deep .vc-business-cycle i.arrow{color:#f1f1f1}::ng-deep .vc-business-cycle-popover-container{width:15.625rem;background:#fff;box-shadow:0 4px 8px #1e5dd326;border:1px solid #e3e3e9;border-radius:.25rem;z-index:4}::ng-deep .vc-business-cycle-popover-container-top{background:#f8f8f8}::ng-deep .vc-business-cycle-popover-container-top p{line-height:.875rem}::ng-deep .vc-business-cycle-popover-container-body{background:#fff;max-height:200px;overflow-y:auto}::ng-deep .vc-business-cycle-popover-container-body ul li{list-style:none;margin:0;position:relative}::ng-deep .vc-business-cycle-popover-container-body ul li:before{background:#f1f1f1;content:\"\";position:absolute;left:.75rem;right:.75rem;bottom:0;height:.0625rem;width:calc(100% - 1.5rem)}::ng-deep .vc-business-cycle-popover-container-body ul li:last-of-type:before{display:none}::ng-deep .vc-business-cycle-popover-container-body ul li.future-cycle{background:#fadd8a}::ng-deep .vc-business-cycle-popover-container-body ul li.future-cycle:before{display:none}::ng-deep .vc-business-cycle-popover-container-body ul li.future-cycle app-cs-checkbox label.checkbox-item span.checkbox{background:#fff}::ng-deep .vc-business-cycle-popover-container-body ul li.future-cycle app-cs-checkbox label.checkbox-item span.value i{margin-left:.375rem}::ng-deep .vc-business-cycle-popover-container-body ul li.future-cycle .info-icon{margin-left:.375rem;cursor:context-menu}::ng-deep .vc-business-cycle-popover-container-body ul li app-cs-checkbox{display:flex}::ng-deep .vc-business-cycle-popover-container-body ul li app-cs-checkbox label.checkbox-item span.value{font-size:12px!important;color:#161b2f!important;max-width:100%!important}::ng-deep .vc-business-cycle-popover-container-footer{background:#f8f8f8;border-radius:0 0 .25rem .25rem}::ng-deep .vc-business-cycle-popover-container-footer button{width:calc(50% - .125rem);height:1.5rem;border:1px solid transparent;text-transform:uppercase;border-radius:.125rem;line-height:1.375rem}::ng-deep .vc-business-cycle-popover-container-footer button.white{background:#fff;border-color:#dbdbdb}::ng-deep .vc-business-cycle-popover-container-footer button.blue{background:#1e5dd3;border-color:#1e5dd3}::ng-deep .vc-business-cycle-popover-container-footer button.disabled{background:#dbdbdb;color:#747576;border:none;pointer-events:none!important}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ToolTipDirective, selector: "[arTooltip]", inputs: ["arTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i6.PopoverComponent, selector: "vui-popover", inputs: ["dontCloseonClick"], outputs: ["closedOnOverlay"] }, { kind: "directive", type: i7.PopoverDirective, selector: "[appPopover]", inputs: ["refrence", "position"] }, { kind: "component", type: i8.CsCheckboxComponent, selector: "app-cs-checkbox", inputs: ["disabled", "ngValue", "value"], outputs: ["ngValueChange"] }, { kind: "pipe", type: i9.DateFormatPipe, name: "dateFormat" }] }); }
266
- }
267
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BusinessCycleComponent, decorators: [{
268
- type: Component,
269
- args: [{ selector: 'vc-business-cycle', template: "<div\n class=\"vc-business-cycle vx-pt-2 vx-pb-2\"\n appPopover\n (click)=\"businessCyclePop.popover()\"\n position=\"left\"\n>\n <div class=\"heading vx-fs-9 vx-tt-uppercase vx-mb-1 vx-lh-3\">\n SHOWING DATA {{ cycleToShow === \"Show Future Due Dates\" ? \"For\" : \"From\" }}\n </div>\n <div class=\"vx-d-flex vx-align-center vx-justify-between vx-lh-4\">\n <div class=\"vx-d-flex vx-align-center\">\n <i class=\"icons calendar vx-fs-12 vx-mr-2\">&#xe996;</i>\n <span class=\"vx-fs-11 vx-txt-white vx-d-inline-block\">{{\n cycleToShow === \"Show Future Due Dates\"\n ? \"Future Due Dates\"\n : cycleToShow\n }}</span>\n </div>\n <i class=\"icons arrow vx-fs-10 vx-mr-2\">&#xe9e8;</i>\n </div>\n</div>\n\n<vui-popover #businessCyclePop [dontCloseonClick]=\"true\">\n <div class=\"vc-business-cycle-popover-container\">\n <div\n class=\"vc-business-cycle-popover-container-top vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3\"\n >\n <p class=\"vx-fs-11 vx-fw-400 vx-label-txt vx-p-0 vx-m-0\">\n You can select upto a max of two consecutive years\n </p>\n </div>\n <div class=\"vc-business-cycle-popover-container-body\">\n <ul class=\"vx-p-0 vx-m-0\">\n <ng-container\n *ngFor=\"let eachCycle of businessCycleList; let i = index\"\n >\n <li\n *ngIf=\"\n eachCycle?.business_cycle?.toLowerCase() ===\n 'show future due dates'\n \"\n class=\"vx-d-flex vx-align-center vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3\"\n [class.future-cycle]=\"true\"\n >\n <app-cs-checkbox\n [ngValue]=\"isSelectedCycle(tempSelectedCycle, eachCycle)\"\n (ngValueChange)=\"selectCycle(eachCycle, i)\"\n [disabled]=\"eachCycle?.isDisabled\"\n >Show Future Due Dates</app-cs-checkbox\n >\n <i\n class=\"icons info-icon vx-fs-12\"\n [arTooltip]=\"\n 'This option lets you view data that lies outside the current business cycle and are due in the future.'\n \"\n placement=\"bottom\"\n type=\"black\"\n delay=\"0\"\n [tooltipMandatory]=\"true\"\n >&#xe91f;</i\n >\n </li>\n <li\n *ngIf=\"\n eachCycle?.business_cycle?.toLowerCase() !==\n 'show future due dates'\n \"\n class=\"vx-d-flex vx-align-center vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3\"\n >\n <app-cs-checkbox\n [ngValue]=\"isSelectedCycle(tempSelectedCycle, eachCycle)\"\n (ngValueChange)=\"selectCycle(eachCycle, i)\"\n [disabled]=\"eachCycle?.isDisabled\"\n >{{ eachCycle?.start_date | dateFormat }} -\n <ng-container>\n {{ eachCycle?.end_date | dateFormat }}</ng-container\n >\n </app-cs-checkbox>\n </li>\n </ng-container>\n </ul>\n </div>\n <div\n class=\"vc-business-cycle-popover-container-footer vx-d-flex vx-justify-between vx-p-3\"\n >\n <button\n (click)=\"businessCyclePop.closePopover('top')\"\n class=\"white vx-fs-11 vx-fw-500 vx-d-flex vx-align-center vx-justify-center vx-tt-uppercase vx-p-0 vx-m-0 vx-txt-blue\"\n >\n CANCEL\n </button>\n <button\n (click)=\"setBusinessCycle(); businessCyclePop.closePopover('top')\"\n [class.disabled]=\"false\"\n class=\"blue vx-fs-11 vx-fw-500 vx-d-flex vx-align-center vx-justify-center vx-tt-uppercase vx-p-0 vx-m-0 vx-txt-white\"\n >\n APPLY\n </button>\n </div>\n </div>\n</vui-popover>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";::ng-deep .vc-business-cycle{position:relative;width:12.5rem;height:3rem;cursor:pointer;z-index:1}::ng-deep .vc-business-cycle .heading{color:#e3e3e9}::ng-deep .vc-business-cycle i.calendar{color:#e3e3e9}::ng-deep .vc-business-cycle i.arrow{color:#f1f1f1}::ng-deep .vc-business-cycle-popover-container{width:15.625rem;background:#fff;box-shadow:0 4px 8px #1e5dd326;border:1px solid #e3e3e9;border-radius:.25rem;z-index:4}::ng-deep .vc-business-cycle-popover-container-top{background:#f8f8f8}::ng-deep .vc-business-cycle-popover-container-top p{line-height:.875rem}::ng-deep .vc-business-cycle-popover-container-body{background:#fff;max-height:200px;overflow-y:auto}::ng-deep .vc-business-cycle-popover-container-body ul li{list-style:none;margin:0;position:relative}::ng-deep .vc-business-cycle-popover-container-body ul li:before{background:#f1f1f1;content:\"\";position:absolute;left:.75rem;right:.75rem;bottom:0;height:.0625rem;width:calc(100% - 1.5rem)}::ng-deep .vc-business-cycle-popover-container-body ul li:last-of-type:before{display:none}::ng-deep .vc-business-cycle-popover-container-body ul li.future-cycle{background:#fadd8a}::ng-deep .vc-business-cycle-popover-container-body ul li.future-cycle:before{display:none}::ng-deep .vc-business-cycle-popover-container-body ul li.future-cycle app-cs-checkbox label.checkbox-item span.checkbox{background:#fff}::ng-deep .vc-business-cycle-popover-container-body ul li.future-cycle app-cs-checkbox label.checkbox-item span.value i{margin-left:.375rem}::ng-deep .vc-business-cycle-popover-container-body ul li.future-cycle .info-icon{margin-left:.375rem;cursor:context-menu}::ng-deep .vc-business-cycle-popover-container-body ul li app-cs-checkbox{display:flex}::ng-deep .vc-business-cycle-popover-container-body ul li app-cs-checkbox label.checkbox-item span.value{font-size:12px!important;color:#161b2f!important;max-width:100%!important}::ng-deep .vc-business-cycle-popover-container-footer{background:#f8f8f8;border-radius:0 0 .25rem .25rem}::ng-deep .vc-business-cycle-popover-container-footer button{width:calc(50% - .125rem);height:1.5rem;border:1px solid transparent;text-transform:uppercase;border-radius:.125rem;line-height:1.375rem}::ng-deep .vc-business-cycle-popover-container-footer button.white{background:#fff;border-color:#dbdbdb}::ng-deep .vc-business-cycle-popover-container-footer button.blue{background:#1e5dd3;border-color:#1e5dd3}::ng-deep .vc-business-cycle-popover-container-footer button.disabled{background:#dbdbdb;color:#747576;border:none;pointer-events:none!important}\n"] }]
270
- }], ctorParameters: function () { return [{ type: i1.AuthorizerService }, { type: i2.BusinessCycleService }, { type: i3.ApiService }]; }, propDecorators: { businessCycleChange: [{
271
- type: Output
272
- }], orgDetails: [{
273
- type: Input
274
- }] } });
275
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVzaW5lc3MtY3ljbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmMtbGF5b3V0L3NyYy9saWIvY29tcG9uZW50cy9oZWFkZXIvYnVzaW5lc3MtY3ljbGUvYnVzaW5lc3MtY3ljbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmMtbGF5b3V0L3NyYy9saWIvY29tcG9uZW50cy9oZWFkZXIvYnVzaW5lc3MtY3ljbGUvYnVzaW5lc3MtY3ljbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7Ozs7Ozs7O0FBTzFFLE1BQU0sT0FBTyxzQkFBc0I7SUFjakMsWUFDVSxXQUE4QixFQUM5QixvQkFBMEMsRUFDMUMsVUFBc0I7UUFGdEIsZ0JBQVcsR0FBWCxXQUFXLENBQW1CO1FBQzlCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQWhCaEMsZ0JBQVcsR0FBVyxnQkFBZ0IsQ0FBQztRQUN2QyxxQkFBZ0IsR0FBa0IsRUFBRSxDQUFDO1FBQ3JDLGdCQUFXLEdBQWtCLEVBQUUsQ0FBQztRQUNoQyx5QkFBb0IsR0FBa0IsRUFBRSxDQUFDO1FBQ3pDLG9CQUFlLEdBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckMsdUJBQWtCLEdBQWUsRUFBRSxDQUFDO1FBRXBDLHNCQUFpQixHQUFVLEVBQUUsQ0FBQztRQUM5QixXQUFNLEdBQVcsQ0FBQyxDQUFDO1FBRVQsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQVFqRCxJQUFJLENBQUMsTUFBTSxHQUFHLElB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QUFJLENBQUMsV0FBVyxHQUFHLEtBQUssRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQzthQUMvRDtpQkFBTSxJQUFJLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFO2dCQUN4QyxJQUFJLENBQUMsV0FBVztvQkFDZCxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO3dCQUMxQyxLQUFLO3dCQUNMLEtBQUssRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUNoQyxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sR0FBRyxFQUFFLEVBQ3JDLEtBQUssRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUNoQyxDQUFDO2FBQ0w7U0FDRjtJQUNILENBQUM7K0dBOVJVLHNCQUFzQjttR0FBdEIsc0JBQXNCLHdKQ1huQyw2c0hBcUdBOzs0RkQxRmEsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLG1CQUFtQjtvS0FlbkIsbUJBQW1CO3NCQUE1QixNQUFNO2dCQUVFLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBdXRob3JpemVyU2VydmljZSB9IGZyb20gJ0B2Y29tcGx5L2F1dGhvcml6ZXInO1xuaW1wb3J0IHsgQnVzaW5lc3NDeWNsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvc2VydmljZXMvYnVzaW5lc3MtY3ljbGUuc2VydmljZSc7XG5pbXBvcnQgeyBBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3NlcnZpY2VzL2FwaS5zZXJ2aWNlJztcbmltcG9ydCB7IEZVVFVSRV9EQVRFUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9idXNpbmVzcy1jeWNsZS5jb25zdGFudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZjLWJ1c2luZXNzLWN5Y2xlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2J1c2luZXNzLWN5Y2xlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYnVzaW5lc3MtY3ljbGUuY29tcG9uZW50Lmxlc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQnVzaW5lc3NDeWNsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGN5Y2xlVG9TaG93OiBzdHJpbmcgPSAnQnVzaW5lc3MgQ3ljbGUnO1xuICBidXNpbmVzc0N5Y2xlQXJyOiBBcnJheTxzdHJpbmc+ID0gW107XG4gIGhpZGRlbkN5Y2xlOiBBcnJheTxudW1iZXI+ID0gW107XG4gIHRlbXBCdXNpbmVzc0N5Y2xlQXJyOiBBcnJheTxzdHJpbmc+ID0gW107XG4gIHRlbXBIaWRkZW5DeWNsZTogQXJyYXk8bnVtYmVyPiA9IFswXTtcbiAgYnVzaW5lc3NDeWNsZXNMaXN0OiBBcnJheTxhbnk+ID0gW107XG4gIGJ1c2luZXNzQ3ljbGVMaXN0ITogQXJyYXk8YW55PjtcbiAgdGVtcFNlbGVjdGVkQ3ljbGU6IGFueVtdID0gW107XG4gIHVzZXJJZDogbnVtYmVyID0gMDtcbiAgc2VsZWN0ZWRCdXNpbmVzc0N5Y2xlITogYW55O1xuICBAT3V0cHV0KCkgYnVzaW5lc3NDeWNsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBASW5wdXQoKSBvcmdEZXRhaWxzOiBhbnk7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhvcml6ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgYnVzaW5lc3NDeWNsZVNlcnZpY2U6IEJ1c2luZXNzQ3ljbGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXBpU2VydmljZTogQXBpU2VydmljZVxuICApIHtcbiAgICB0aGlzLnVzZXJJZCA9IHRoaXMuYXV0aFNlcnZpY2UuZ2V0VXNlcklkKCkgPz8gMDtcbiAgICB0aGlzLmJ1c2luZXNzQ3ljbGVTZXJ2aWNlLmlzQnVzaW5lc3NDeWNsZUF2YWlsYWJsZSgpO1xuICAgIHRoaXMuc2V0U2VsZWN0ZWRCdXNpbmVzc0N5Y2xlKCk7XG4gICAgdGhpcy5nZXRPcmdEZXRhaWxzKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XG5cbiAgZ2V0T3JnRGV0YWlscygpIHtcbiAgICB0aGlzLmFwaVNlcnZpY2Uub3JnYW5pemF0aW9uRGV0YWlsJC5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICBpZiAocmVzKSB7XG4gICAgICAgIHRoaXMuc2V0QnVzaW5lc3NDeWNsZUtleShyZXMuYnVzaW5lc3NfY3ljbGVzX2Fycik7XG4gICAgICAgIHRoaXMuc2V0QnVzaW5lc3NDeWNsZSgpO1xuICAgICAgICB0aGlzLnNldEN5Y2xlRW5hYmxlRGlzYWJsZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgc2V0U2VsZWN0ZWRCdXNpbmVzc0N5Y2xlKCkge1xuICAgIHRoaXMuYnVzaW5lc3NDeWNsZVNlcnZpY2Uuc2VsZWN0ZWRCdXNpbmVzc0N5Y2xlJC5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICBpZiAocmVzKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRCdXNpbmVzc0N5Y2xlID0gcmVzO1xuICAgICAgICB0aGlzLnNldFRlbXBTZWxlY3RlZEN5Y2xlKHJlcyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogIyMjIyBEZXNjcmlwdGlvblxuICAgKiBpdCB3aWxsIHNldCBhIG5ldyBrZXkgaW4gZXZlcnkgY3ljbGVcbiAgICoga2V5IHdpbGwgdXNlIGZvciBkaXNhYmxlZCBvciBlbmFibGUgdGhlIGN5Y2xlIGZyb20gYnVzaW5lc3MgY3ljbGUgbGlzdC5cbiAgICogQHBhcmFtIGJ1c2luZXNzQ3ljbGUgdGhpcyB0aGUgYnVzaW5lc3MgY3ljbGUgbGlzdFxuICAgKi9cbiAgc2V0QnVzaW5lc3NDeWNsZUtleShidXNpbmVzc0N5Y2xlOiBhbnkpIHtcbiAgICB0aGlzLmJ1c2luZXNzQ3ljbGVMaXN0ID0gYnVzaW5lc3NDeWNsZTtcbiAgICBpZiAodGhpcy5idXNpbmVzc0N5Y2xlTGlzdC5sZW5ndGgpXG4gICAgICB0aGlzLmJ1c2luZXNzQ3ljbGVMaXN0Lm1hcCgoY3ljbGU6IGFueSkgPT4ge1xuICAgICAgICBjeWNsZVsnaXNEaXNhYmxlZCddID0gZmFsc2U7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiAjIyMjIERlc2NyaXB0aW9uXG4gICAqIGl0IHdpbGwgY2hlY2sgdGhlIGN5Y2xlIGlmIGl0IGlzIG5vdCBjaGVja2VkLlxuICAgKiBpZiBpdCBoYXMgY2hlY2tlZCB0aGVuIGl0IHdpbGwgdW5jaGVjayB0aGF0IGN5Y2xlLlxuICAgKiBAcGFyYW0gY3ljbGUgY2hlY2tlZCBvciB1bmNoZWNrZWQgY3ljbGUgZnJvbSBidXNpbmVzcyBjeWNsZSBsaXN0LlxuICAgKiBAcGFyYW0gaW5kZXggaXQgZ2l2ZSB0aGUgaW5kZXggdmFsdWUgb2YgYnVzaW5lc3MgY3ljbGUgbGlzdCB3aGljaCBpcyBzZWxlY3RlZC5cbiAgICovXG4gIHNlbGVjdEN5Y2xlKGN5Y2xlOiBhbnksIGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBpc0V4aXN0ID0gdGhpcy50ZW1wU2VsZWN0ZWRDeWNsZS5maW5kSW5kZXgoXG4gICAgICAoZWw6IGFueSkgPT4gZWwuc3RhcnRfZGF0ZSA9PSBjeWNsZS5zdGFydF9kYXRlXG4gICAgKTtcbiAgICBpZiAoaXNFeGlzdCA+PSAwKSB7XG4gICAgICB0aGlzLnRlbXBTZWxlY3RlZEN5Y2xlLnNwbGljZShpc0V4aXN0LCAxKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudGVtcFNlbGVjdGVkQ3ljbGU/Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy50ZW1wU2VsZWN0ZWRDeWNsZS5wdXNoKGN5Y2xlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRJbmRleCA9IHRoaXMuYnVzaW5lc3NDeWNsZUxpc3QuZmluZEluZGV4KFxuICAgICAgICAoZWw6IGFueSkgPT4gZWwuc3RhcnRfZGF0ZSA9PSB0aGlzLnRlbXBTZWxlY3RlZEN5Y2xlWzBdPy5zdGFydF9kYXRlXG4gICAgICApO1xuICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPCBpbmRleCkge1xuICAgICAgICB0aGlzLnRlbXBTZWxlY3RlZEN5Y2xlLnVuc2hpZnQoY3ljbGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy50ZW1wU2VsZWN0ZWRDeWNsZS5wdXNoKGN5Y2xlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zZXRDeWNsZUVuYWJsZURpc2FibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAjIyMjIERlc2NyaXB0aW9uXG4gICAqXG4gICAqIG5lZWQgdG8gY2hlY2sgY3ljbGUgaW5jbHVkZXMgaW4gc2VsZWN0ZWQgY3ljbGUgYXJyYXlcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHNlbGVjdGVkIGN5Y2xlIGlzXG4gICAqIEBwYXJhbSBzZWxlY3RlZEN5Y2xlIHNlbGVjdGVkIEN5Y2xlIHdoaWNoIHVzZXIgY2hlY2tlZCBvciBhdXRvIHNlbGVjdGVkIGN5Y2xlLlxuICAgKiBAcGFyYW0gY3ljbGUgYWxsIGluZGl2aXNpYmxlIGN5Y2xlIG9mIGJ1c2luZXNzIGN5Y2xlIG9mIHRoZSBvcmdhbml6YXRpb24uXG4gICAqIEByZXR1cm5zIGJvb2xlYW4gdmFsdWUgaXMgY3ljbGUgZXhpc3QgaW4gc2VsZWN0ZWQgY3ljbGUgb3Igbm90LlxuICAgKi9cblxuICBpc1NlbGVjdGVkQ3ljbGUoc2VsZWN0ZWRDeWNsZTogYW55LCBjeWNsZTogYW55KSB7XG4gICAgbGV0IGlzU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICBzZWxlY3RlZEN5Y2xlLmZvckVhY2goKGVsOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgaWYgKGVsLnN0YXJ0X2RhdGUgPT0gY3ljbGUuc3RhcnRfZGF0ZSkge1xuICAgICAgICBpc1NlbGVjdGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gaXNTZWxlY3RlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiAjIyMjIERlc2NyaXB0aW9uXG4gICAqXG4gICAqIHNldCBzZWxlY3RlZCBidXNpbmVzc0N5Y2xlIHRvIHRlbXAgYnVzaW5lc3MgY3ljbGUgaW5kaXZpc2libGUgaWYgdGhlcmUgaXMgdHdvIHNlbGVjdGVkIGN5Y2xlXG4gICAqIFNldHMgdGVtcCBzZWxlY3RlZCBjeWNsZVxuICAgKiBAcGFyYW0gY3ljbGUgc2VsZWN0ZWQgYnVzaW5lc3MgY3ljbGUgZnJvbSBsb2NhbCBzdG9yYWdlXG4gICAqL1xuICBzZXRUZW1wU2VsZWN0ZWRDeWNsZShjeWNsZTogYW55KSB7XG4gICAgdGhpcy50ZW1wU2VsZWN0ZWRDeWNsZSA9IFtdO1xuICAgIGlmIChjeWNsZT8uc2VsZWN0ZWRfY3ljbGVfYXJyPy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHRoaXMudGVtcFNlbGVjdGVkQ3ljbGUucHVzaChjeWNsZSk7XG4gICAgICB0aGlzLnNldEN5Y2xlVG9TaG93KGN5Y2xlKTtcbiAgICAgIC8vIHRoaXMuY3ljbGVUb1Nob3cgPSBjeWNsZS5idXNpbmVzc19jeWNsZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY3ljbGU/LnNlbGVjdGVkX2N5Y2xlX2Fycj8uZm9yRWFjaCgoZWw6IGFueSwgaTogbnVtYmVyKSA9PiB7XG4gICAgICAgIGxldCBwYXlsb2FkID0ge1xuICAgICAgICAgIHN0YXJ0X2RhdGU6IGVsLnN1YnN0cmluZygwLCAxMCksXG4gICAgICAgICAgZW5kX2RhdGU6IGVsLnN1YnN0cmluZyhlbD8ubGVuZ3RoIC0gMTAsIGVsPy5sZW50aCksXG4gICAgICAgICAgc2VsZWN0ZWQ6IHRydWUsXG4gICAgICAgICAgYnVzaW5lc3NfY3ljbGU6IGN5Y2xlPy5idXNpbmVzc19jeWNsZVtpXSxcbiAgICAgICAgICBzZWxlY3RlZF9jeWNsZTogY3ljbGU/LnNlbGVjdGVkX2N5Y2xlW2ldLFxuICAgICAgICAgIHNlbGVjdGVkX2N5Y2xlX2FycjogW2VsXSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy50ZW1wU2VsZWN0ZWRDeWNsZS5wdXNoKHBheWxvYWQpO1xuICAgICAgfSk7XG4gICAgICAvLyB0aGlzLmN5Y2xlVG9TaG93ID0gY3ljbGU/LmJ1c2luZXNzX2N5Y2xlWzBdPy5zdWJzdHJpbmcoMCwxMSkgKyBcIiAtIFwiICsgY3ljbGU/LmJ1c2luZXNzX2N5Y2xlWzFdLnN1YnN0cmluZyhjeWNsZT8uYnVzaW5lc3NfY3ljbGVbMV0/Lmxlbmd0aC0xMSwgY3ljbGU/LmJ1c2luZXNzX2N5Y2xlWzFdPy5sZW50aCk7XG4gICAgfVxuICAgIC8vIHRoaXMuc2V0Q3ljbGVUb1Nob3coY3ljbGUpO1xuICAgIHRoaXMuc2V0Q3ljbGVFbmFibGVEaXNhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogIyMjIyBEZXNjcmlwdGlvblxuICAgKiAgd2hlbiB1c2VyIHNlbGVjdCBvbmUgY3ljbGUgdGhlbiB0aGVpciBiZXNpZGVzIGN5Y2xlcyBhcmUgZW5hYmxlIGFuZCBvdGhlciBhcmUgZGlzYWJsZWQuXG4gICAqICBpZiB1c2VyIHNlbGVjdCB0d28gY3ljbGVzIHRoZW4gYWxsIHRoZSBjeWNsZXMgZ2V0IGRpc2FibGVkIGV4Y2VwdCBzZWxlY3RlZCBjeWNsZXMuXG4gICAqXG4gICAqICBJbiBidXNpbmVzc0N5Y2xlTGlzdCBhcnJheSB3ZSBzZXQgYSBpc0Rpc2FibGVkIGtleSwgd2UgYXJlIHNldCBpdCB0cnVlIHdoZW4gbmVlZCB0byBkaXNhYmxlZCB0aGUgY3ljbGUuXG4gICAqL1xuICBzZXRDeWNsZUVuYWJsZURpc2FibGUoKSB7XG4gICAgaWYgKCF0aGlzLnRlbXBTZWxlY3RlZEN5Y2xlPy5sZW5ndGgpIHtcbiAgICAgIGlmICh0aGlzLmJ1c2luZXNzQ3ljbGVMaXN0Py5sZW5ndGgpXG4gICAgICAgIHRoaXMuYnVzaW5lc3NDeWNsZUxpc3QubWFwKChjeWNsZTogYW55KSA9PiB7XG4gICAgICAgICAgY3ljbGVbJ2lzRGlzYWJsZWQnXSA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudGVtcFNlbGVjdGVkQ3ljbGU/Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmJ1c2luZXNzQ3ljbGVMaXN0Py5maW5kSW5kZXgoXG4gICAgICAgIChlbDogYW55KSA9PiBlbC5zdGFydF9kYXRlID09IHRoaXMudGVtcFNlbGVjdGVkQ3ljbGVbMF0uc3RhcnRfZGF0ZVxuICAgICAgKTtcbiAgICAgIHRoaXMuYnVzaW5lc3NDeWNsZUxpc3Q/LmZvckVhY2goKGN5Y2xlOiBhbnksIGk6IG51bWJlcikgPT4ge1xuICAgICAgICBpZiAoaW5kZXggLSAxID09PSBpIHx8IGluZGV4ID09PSBpIHx8IGluZGV4ICsgMSA9PT0gaSkge1xuICAgICAgICAgIGN5Y2xlLmlzRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjeWNsZS5pc0Rpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYnVzaW5lc3NDeWNsZUxpc3Q/LmZvckVhY2goKGN5Y2xlOiBhbnkpID0+IHtcbiAgICAgICAgbGV0IGlzRGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLnRlbXBTZWxlY3RlZEN5Y2xlLmZvckVhY2goKGVsOiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAoY3ljbGUuc3RhcnRfZGF0ZSA9PSBlbC5zdGFydF9kYXRlKSB7XG4gICAgICAgICAgICBpc0Rpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgY3ljbGUuaXNEaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogIyMjIyBEZXNjcmlwdGlvblxuICAgKiAgV2hlbiB1c2VyIGNsaWNrIGFwcGx5IHRoZW4gc2VsZWN0ZWQgY3ljbGUgaXMgc2V0IGluIGxvY2FsIHN0b3JhZ2UuXG4gICAqXG4gICAqL1xuICBzZXRCdXNpbmVzc0N5Y2xlKCkge1xuICAgIGNvbnN0IGNvbWJpbmVkRGF0ZXMgPSB0aGlzLmJ1c2luZXNzQ3ljbGVTZXJ2aWNlLmNvbnZlcnROdW1lcmljQWxwaGEoXG4gICAgICB0aGlzLmJ1c2luZXNzQ3ljbGVMaXN0WzBdPy5zdGFydF9kYXRlICtcbiAgICAgICAgdGhpcy5idXNpbmVzc0N5Y2xlTGlzdFswXT8uZW5kX2RhdGVcbiAgICApO1xuICAgIGNvbnN0IGlzRnV0dXJlRGF0ZXMgPSAoY3ljbGU6IGFueSkgPT5cbiAgICAgIGN5Y2xlPy5idXNpbmVzc19jeWNsZSA9PT0gY29tYmluZWREYXRlcyAmJlxuICAgICAgdGhpcy5idXNpbmVzc0N5Y2xlTGlzdFswXT8uYnVzaW5lc3NfY3ljbGUgPT09IEZVVFVSRV9EQVRFUztcblxuICAgIGxldCBidXNpbmVzc0N5Y2xlT2JqZWN0OiBhbnkgPSB7XG4gICAgICB1c2VySWQ6IHRoaXMudXNlcklkLFxuICAgICAgc2VsZWN0ZWRDeWNsZToge1xuICAgICAgICBzZWxlY3RlZDogdHJ1ZSxcbiAgICAgICAgYnVzaW5lc3NfY3ljbGU6IFtdLFxuICAgICAgICBzZWxlY3RlZF9jeWNsZV9hcnI6IFtdLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMudGVtcFNlbGVjdGVkQ3ljbGU/Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgdGhpcy5zZXRTaW5nbGVTZWxlY3RlZEN5Y2xlKGJ1c2luZXNzQ3ljbGVPYmplY3QsIGlzRnV0dXJlRGF0ZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldE11bHRpcGxlU2VsZWN0ZWRDeWNsZXMoYnVzaW5lc3NDeWNsZU9iamVjdCwgaXNGdXR1cmVEYXRlcyk7XG4gICAgfVxuXG4gICAgdGhpcy5zZXRDeWNsZVRvU2hvdyhidXNpbmVzc0N5Y2xlT2JqZWN0Py5zZWxlY3RlZEN5Y2xlKTtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnYnVzaW5lc3NDeWNsZScsIEpTT04uc3RyaW5naWZ5KGJ1c2luZXNzQ3ljbGVPYmplY3QpKTtcbiAgICB0aGlzLnNlbGVjdGVkQnVzaW5lc3NDeWNsZSA9IGJ1c2luZXNzQ3ljbGVPYmplY3Q/LnNlbGVjdGVkQ3ljbGU7XG4gICAgdGhpcy5idXNpbmVzc0N5Y2xlQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZEJ1c2luZXNzQ3ljbGUpO1xuICAgIHRoaXMuYnVzaW5lc3NDeWNsZVNlcnZpY2UuY2hhbmdlQnVzaW5lc3NDeWNsZSQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHNldFNpbmdsZVNlbGVjdGVkQ3ljbGUoXG4gICAgYnVzaW5lc3NDeWNsZU9iamVjdDogYW55LFxuICAgIGlzRnV0dXJlRGF0ZXM6IChjeWNsZTogYW55KSA9PiBib29sZWFuXG4gICkge1xuICAgIGNvbnN0IGN5Y2xlID0gdGhpcy50ZW1wU2VsZWN0ZWRDeWNsZVswXTtcbiAgICBpZiAoaXNGdXR1cmVEYXRlcyhjeWNsZSkpIHtcbiAgICAgIGN5Y2xlLmJ1c2luZXNzX2N5Y2xlID0gRlVUVVJFX0RBVEVTO1xuICAgIH1cbiAgICBPYmplY3QuYXNzaWduKGJ1c2luZXNzQ3ljbGVPYmplY3Q/LnNlbGVjdGVkQ3ljbGUsIHtcbiAgICAgIHN0YXJ0X2RhdGU6IGN5Y2xlPy5zdGFydF9kYXRlLFxuICAgICAgZW5kX2RhdGU6IGN5Y2xlPy5lbmRfZGF0ZSxcbiAgICAgIGJ1c2luZXNzX2N5Y2xlOiBjeWNsZT8uYnVzaW5lc3NfY3ljbGUsXG4gICAgICBzZWxlY3RlZF9jeWNsZTogYCR7Y3ljbGU/LnN0YXJ0X2RhdGV9LSR7Y3ljbGU/LmVuZF9kYXRlfWAsXG4gICAgICBzZWxlY3RlZF9jeWNsZV9hcnI6IFtgJHtjeWNsZT8uc3RhcnRfZGF0ZX0tJHtjeWNsZT8uZW5kX2RhdGV9YF0sXG4gICAgfSk7XG4gIH1cblxuICBzZXRNdWx0aXBsZVNlbGVjdGVkQ3ljbGVzKFxuICAgIGJ1c2luZXNzQ3ljbGVPYmplY3Q6IGFueSxcbiAgICBpc0Z1dHVyZURhdGVzOiAoY3ljbGU6IGFueSkgPT4gYm9vbGVhblxuICApIHtcbiAgICB0aGlzLnRlbXBTZWxlY3RlZEN5Y2xlPy5mb3JFYWNoKChjeWNsZTogYW55KSA9PiB7XG4gICAgICBidXNpbmVzc0N5Y2xlT2JqZWN0Py5zZWxlY3RlZEN5Y2xlLmJ1c2luZXNzX2N5Y2xlPy5wdXNoKFxuICAgICAgICBpc0Z1dHVyZURhdGVzKGN5Y2xlKSA/IEZVVFVSRV9EQVRFUyA6IGN5Y2xlPy5idXNpbmVzc19jeWNsZVxuICAgICAgKTtcbiAgICAgIGJ1c2luZXNzQ3ljbGVPYmplY3Q/LnNlbGVjdGVkQ3ljbGUuc2VsZWN0ZWRfY3ljbGVfYXJyPy5wdXNoKFxuICAgICAgICBgJHtjeWNsZT8uc3RhcnRfZGF0ZX0tJHtjeWNsZT8uZW5kX2RhdGV9YFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGJ1c2luZXNzQ3ljbGVPYmplY3Quc2VsZWN0ZWRDeWNsZS5zdGFydF9kYXRlID1cbiAgICAgIHRoaXMudGVtcFNlbGVjdGVkQ3ljbGVbMF0/LnN0YXJ0X2RhdGU7XG4gICAgYnVzaW5lc3NDeWNsZU9iamVjdC5zZWxlY3RlZEN5Y2xlLmVuZF9kYXRlID1cbiAgICAgIHRoaXMudGVtcFNlbGVjdGVkQ3ljbGVbMV0/LmVuZF9kYXRlO1xuICAgIGJ1c2luZXNzQ3ljbGVPYmplY3Quc2VsZWN0ZWRDeWNsZS5zZWxlY3RlZF9jeWNsZSA9IGAke2J1c2luZXNzQ3ljbGVPYmplY3Q/LnNlbGVjdGVkQ3ljbGU/LnN0YXJ0X2RhdGV9LSR7YnVzaW5lc3NDeWNsZU9iamVjdD8uc2VsZWN0ZWRDeWNsZT8uZW5kX2RhdGV9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiAjIyMjIERlc2NyaXB0aW9uXG4gICAqIHdoZW4gdXNlciBjbGljayBjYW5jZWwgdGhlbiBpdCB3aWxsIGNsb3NlIHRoZSBwb3BvdmVyLlxuICAgKiByZW1vdmUgdGVtcCB2YWx1ZSBmcm9tIHRlcm0gc2VsZWN0ZWQgYXJyYXkgYW5kIHNldCB0aGUgcHJldmlvdXMgc2VsZWN0ZWQgY3ljbGUgaW4gaXQuXG4gICAqL1xuICBjYW5jZWxCdXNpbmVzc0N5Y2xlKCkge1xuICAgIHRoaXMuc2V0VGVtcFNlbGVjdGVkQ3ljbGUodGhpcy5zZWxlY3RlZEJ1c2luZXNzQ3ljbGUpO1xuICB9XG5cbiAgLyoqXG4gICAqICMjIyMgRGVzY3JpcHRpb25cbiAgICogdGhpcyB3aWxsIHNldCB0aGUgc3RyaW5nIG9mIGJ1c2luZXNzIGN5Y2xlIHdoaWNoICB3aWxsIGRpc3BsYXkgaW4gdGhlIGhlYWRlci5cbiAgICogQHBhcmFtIGN5Y2xlIG9iamVjdCB3aGljaCBpcyBzZWxlY3RlZCBhbmQgYXBwbHkuIHRoZSBzYW1lIG9iamVjdCB3aWxsIHN0b3JlIGluIGxvY2FsIHN0b3JhZ2UuXG4gICAqL1xuICBzZXRDeWNsZVRvU2hvdyhjeWNsZTogYW55KSB7XG4gICAgaWYgKGN5Y2xlPy5zZWxlY3RlZF9jeWNsZV9hcnI/Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgaWYgKGN5Y2xlPy5idXNpbmVzc19jeWNsZT8udG9Mb3dlckNhc2UoKSA9PSAnc2hvdyBmdXR1cmUgZHVlIGRhdGVzJykge1xuICAgICAgICB0aGlzLmN5Y2xlVG9TaG93ID0gJ0Z1dHVyZSBEdWUgRGF0ZXMnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jeWNsZVRvU2hvdyA9IGN5Y2xlLmJ1c2luZXNzX2N5Y2xlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoXG4gICAgICAgIGN5Y2xlPy5idXNpbmVzc19jeWNsZT8ubGVuZ3RoID4gMCAmJlxuICAgICAgICBjeWNsZT8uYnVzaW5lc3NfY3ljbGVbMV0/LnRvTG93ZXJDYXNlKCkgPT0gJ3Nob3cgZnV0dXJlIGR1ZSBkYXRlcydcbiAgICAgICkge1xuICAgICAgICB0aGlzLmN5Y2xlVG9TaG93ID0gY3ljbGU/LmJ1c2luZXNzX2N5Y2xlWzBdPy5zdWJzdHJpbmcoMCwgMTEpO1xuICAgICAgfSBlbHNlIGlmIChjeWNsZT8uYnVzaW5lc3NfY3ljbGU/Lmxlbmd0aCkge1xuICAgICAgICB0aGlzLmN5Y2xlVG9TaG93ID1cbiAgICAgICAgICBjeWNsZT8uYnVzaW5lc3NfY3ljbGVbMF0/LnN1YnN0cmluZygwLCAxMSkgK1xuICAgICAgICAgICcgLSAnICtcbiAgICAgICAgICBjeWNsZT8uYnVzaW5lc3NfY3ljbGVbMV0uc3Vic3RyaW5nKFxuICAgICAgICAgICAgY3ljbGU/LmJ1c2luZXNzX2N5Y2xlWzFdPy5sZW5ndGggLSAxMSxcbiAgICAgICAgICAgIGN5Y2xlPy5idXNpbmVzc19jeWNsZVsxXT8ubGVudGhcbiAgICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cInZjLWJ1c2luZXNzLWN5Y2xlIHZ4LXB0LTIgdngtcGItMlwiXG4gIGFwcFBvcG92ZXJcbiAgKGNsaWNrKT1cImJ1c2luZXNzQ3ljbGVQb3AucG9wb3ZlcigpXCJcbiAgcG9zaXRpb249XCJsZWZ0XCJcbj5cbiAgPGRpdiBjbGFzcz1cImhlYWRpbmcgdngtZnMtOSB2eC10dC11cHBlcmNhc2UgdngtbWItMSB2eC1saC0zXCI+XG4gICAgU0hPV0lORyBEQVRBIHt7IGN5Y2xlVG9TaG93ID09PSBcIlNob3cgRnV0dXJlIER1ZSBEYXRlc1wiID8gXCJGb3JcIiA6IFwiRnJvbVwiIH19XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwidngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtbGgtNFwiPlxuICAgIDxkaXYgY2xhc3M9XCJ2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XG4gICAgICA8aSBjbGFzcz1cImljb25zIGNhbGVuZGFyIHZ4LWZzLTEyIHZ4LW1yLTJcIj4mI3hlOTk2OzwvaT5cbiAgICAgIDxzcGFuIGNsYXNzPVwidngtZnMtMTEgdngtdHh0LXdoaXRlIHZ4LWQtaW5saW5lLWJsb2NrXCI+e3tcbiAgICAgICAgY3ljbGVUb1Nob3cgPT09IFwiU2hvdyBGdXR1cmUgRHVlIERhdGVzXCJcbiAgICAgICAgICA/IFwiRnV0dXJlIER1ZSBEYXRlc1wiXG4gICAgICAgICAgOiBjeWNsZVRvU2hvd1xuICAgICAgfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGkgY2xhc3M9XCJpY29ucyBhcnJvdyB2eC1mcy0xMCB2eC1tci0yXCI+JiN4ZTllODs8L2k+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjx2dWktcG9wb3ZlciAjYnVzaW5lc3NDeWNsZVBvcCBbZG9udENsb3Nlb25DbGlja109XCJ0cnVlXCI+XG4gIDxkaXYgY2xhc3M9XCJ2Yy1idXNpbmVzcy1jeWNsZS1wb3BvdmVyLWNvbnRhaW5lclwiPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwidmMtYnVzaW5lc3MtY3ljbGUtcG9wb3Zlci1jb250YWluZXItdG9wIHZ4LXB0LTIgdngtcGItMiB2eC1wbC0zIHZ4LXByLTNcIlxuICAgID5cbiAgICAgIDxwIGNsYXNzPVwidngtZnMtMTEgdngtZnctNDAwIHZ4LWxhYmVsLXR4dCB2eC1wLTAgdngtbS0wXCI+XG4gICAgICAgIFlvdSBjYW4gc2VsZWN0IHVwdG8gYSBtYXggb2YgdHdvIGNvbnNlY3V0aXZlIHllYXJzXG4gICAgICA8L3A+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInZjLWJ1c2luZXNzLWN5Y2xlLXBvcG92ZXItY29udGFpbmVyLWJvZHlcIj5cbiAgICAgIDx1bCBjbGFzcz1cInZ4LXAtMCB2eC1tLTBcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBlYWNoQ3ljbGUgb2YgYnVzaW5lc3NDeWNsZUxpc3Q7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICA+XG4gICAgICAgICAgPGxpXG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICBlYWNoQ3ljbGU/LmJ1c2luZXNzX2N5Y2xlPy50b0xvd2VyQ2FzZSgpID09PVxuICAgICAgICAgICAgICAnc2hvdyBmdXR1cmUgZHVlIGRhdGVzJ1xuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIGNsYXNzPVwidngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wdC0yIHZ4LXBiLTIgdngtcGwtMyB2eC1wci0zXCJcbiAgICAgICAgICAgIFtjbGFzcy5mdXR1cmUtY3ljbGVdPVwidHJ1ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGFwcC1jcy1jaGVja2JveFxuICAgICAgICAgICAgICBbbmdWYWx1ZV09XCJpc1NlbGVjdGVkQ3ljbGUodGVtcFNlbGVjdGVkQ3ljbGUsIGVhY2hDeWNsZSlcIlxuICAgICAgICAgICAgICAobmdWYWx1ZUNoYW5nZSk9XCJzZWxlY3RDeWNsZShlYWNoQ3ljbGUsIGkpXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImVhY2hDeWNsZT8uaXNEaXNhYmxlZFwiXG4gICAgICAgICAgICAgID5TaG93IEZ1dHVyZSBEdWUgRGF0ZXM8L2FwcC1jcy1jaGVja2JveFxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBpbmZvLWljb24gdngtZnMtMTJcIlxuICAgICAgICAgICAgICBbYXJUb29sdGlwXT1cIlxuICAgICAgICAgICAgICAgICdUaGlzIG9wdGlvbiBsZXRzIHlvdSB2aWV3IGRhdGEgdGhhdCBsaWVzIG91dHNpZGUgdGhlIGN1cnJlbnQgYnVzaW5lc3MgY3ljbGUgYW5kIGFyZSBkdWUgaW4gdGhlIGZ1dHVyZS4nXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgICAgICA+JiN4ZTkxZjs8L2lcbiAgICAgICAgICAgID5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDxsaVxuICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgZWFjaEN5Y2xlPy5idXNpbmVzc19jeWNsZT8udG9Mb3dlckNhc2UoKSAhPT1cbiAgICAgICAgICAgICAgJ3Nob3cgZnV0dXJlIGR1ZSBkYXRlcydcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBjbGFzcz1cInZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcHQtMiB2eC1wYi0yIHZ4LXBsLTMgdngtcHItM1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGFwcC1jcy1jaGVja2JveFxuICAgICAgICAgICAgICBbbmdWYWx1ZV09XCJpc1NlbGVjdGVkQ3ljbGUodGVtcFNlbGVjdGVkQ3ljbGUsIGVhY2hDeWNsZSlcIlxuICAgICAgICAgICAgICAobmdWYWx1ZUNoYW5nZSk9XCJzZWxlY3RDeWNsZShlYWNoQ3ljbGUsIGkpXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImVhY2hDeWNsZT8uaXNEaXNhYmxlZFwiXG4gICAgICAgICAgICAgID57eyBlYWNoQ3ljbGU/LnN0YXJ0X2RhdGUgfCBkYXRlRm9ybWF0IH19IC1cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICB7eyBlYWNoQ3ljbGU/LmVuZF9kYXRlIHwgZGF0ZUZvcm1hdCB9fTwvbmctY29udGFpbmVyXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvYXBwLWNzLWNoZWNrYm94PlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC91bD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInZjLWJ1c2luZXNzLWN5Y2xlLXBvcG92ZXItY29udGFpbmVyLWZvb3RlciB2eC1kLWZsZXggdngtanVzdGlmeS1iZXR3ZWVuIHZ4LXAtM1wiXG4gICAgPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAoY2xpY2spPVwiYnVzaW5lc3NDeWNsZVBvcC5jbG9zZVBvcG92ZXIoJ3RvcCcpXCJcbiAgICAgICAgY2xhc3M9XCJ3aGl0ZSB2eC1mcy0xMSB2eC1mdy01MDAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC10dC11cHBlcmNhc2UgdngtcC0wIHZ4LW0tMCB2eC10eHQtYmx1ZVwiXG4gICAgICA+XG4gICAgICAgIENBTkNFTFxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIChjbGljayk9XCJzZXRCdXNpbmVzc0N5Y2xlKCk7IGJ1c2luZXNzQ3ljbGVQb3AuY2xvc2VQb3BvdmVyKCd0b3AnKVwiXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJmYWxzZVwiXG4gICAgICAgIGNsYXNzPVwiYmx1ZSB2eC1mcy0xMSB2eC1mdy01MDAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC10dC11cHBlcmNhc2UgdngtcC0wIHZ4LW0tMCB2eC10eHQtd2hpdGVcIlxuICAgICAgPlxuICAgICAgICBBUFBMWVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC92dWktcG9wb3Zlcj5cbiJdfQ==
@@ -1,21 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "../../../shared/ui-kit/tooltip/tooltip.directive";
4
- export class CreateWorkflowComponent {
5
- constructor() {
6
- this.iframeLoading = false;
7
- this.openWorkflow = new EventEmitter();
8
- }
9
- ngOnInit() { }
10
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateWorkflowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CreateWorkflowComponent, selector: "vc-create-workflow", inputs: { iframeLoading: "iframeLoading" }, outputs: { openWorkflow: "openWorkflow" }, ngImport: i0, template: "<div\n class=\"header-create-workflow vx-fs-16 vx-txt-white vx-d-flex vx-align-center vx-justify-center\"\n (click)=\"openWorkflow.emit()\"\n [class.disabled-workflow]=\"iframeLoading\"\n [arTooltip]=\"'Create'\"\n placement=\"bottom\"\n type=\"black\"\n delay=\"0\"\n [tooltipMandatory]=\"true\"\n>\n +\n</div>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";.header-create-workflow{background:#1e5dd3;border-radius:3rem;cursor:pointer;width:1.5rem;height:1.5rem;margin-left:1.75rem;transition:all .3s ease-in-out}.header-create-workflow.disabled-workflow{filter:grayscale(100%);pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i1.ToolTipDirective, selector: "[arTooltip]", inputs: ["arTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }] }); }
12
- }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateWorkflowComponent, decorators: [{
14
- type: Component,
15
- args: [{ selector: 'vc-create-workflow', template: "<div\n class=\"header-create-workflow vx-fs-16 vx-txt-white vx-d-flex vx-align-center vx-justify-center\"\n (click)=\"openWorkflow.emit()\"\n [class.disabled-workflow]=\"iframeLoading\"\n [arTooltip]=\"'Create'\"\n placement=\"bottom\"\n type=\"black\"\n delay=\"0\"\n [tooltipMandatory]=\"true\"\n>\n +\n</div>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";.header-create-workflow{background:#1e5dd3;border-radius:3rem;cursor:pointer;width:1.5rem;height:1.5rem;margin-left:1.75rem;transition:all .3s ease-in-out}.header-create-workflow.disabled-workflow{filter:grayscale(100%);pointer-events:none}\n"] }]
16
- }], ctorParameters: function () { return []; }, propDecorators: { iframeLoading: [{
17
- type: Input
18
- }], openWorkflow: [{
19
- type: Output
20
- }] } });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXdvcmtmbG93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZjLWxheW91dC9zcmMvbGliL2NvbXBvbmVudHMvaGVhZGVyL2NyZWF0ZS13b3JrZmxvdy9jcmVhdGUtd29ya2Zsb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmMtbGF5b3V0L3NyYy9saWIvY29tcG9uZW50cy9oZWFkZXIvY3JlYXRlLXdvcmtmbG93L2NyZWF0ZS13b3JrZmxvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPL0UsTUFBTSxPQUFPLHVCQUF1QjtJQUtsQztRQUpTLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBRTlCLGlCQUFZLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7SUFFckQsQ0FBQztJQUVoQixRQUFRLEtBQVUsQ0FBQzsrR0FQUix1QkFBdUI7bUdBQXZCLHVCQUF1QixpSkNQcEMsb1VBWUE7OzRGRExhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxvQkFBb0I7MEVBS3JCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUksWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmMtY3JlYXRlLXdvcmtmbG93JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS13b3JrZmxvdy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NyZWF0ZS13b3JrZmxvdy5jb21wb25lbnQubGVzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDcmVhdGVXb3JrZmxvd0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGlmcmFtZUxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgb3BlbldvcmtmbG93OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiaGVhZGVyLWNyZWF0ZS13b3JrZmxvdyB2eC1mcy0xNiB2eC10eHQtd2hpdGUgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlclwiXG4gIChjbGljayk9XCJvcGVuV29ya2Zsb3cuZW1pdCgpXCJcbiAgW2NsYXNzLmRpc2FibGVkLXdvcmtmbG93XT1cImlmcmFtZUxvYWRpbmdcIlxuICBbYXJUb29sdGlwXT1cIidDcmVhdGUnXCJcbiAgcGxhY2VtZW50PVwiYm90dG9tXCJcbiAgdHlwZT1cImJsYWNrXCJcbiAgZGVsYXk9XCIwXCJcbiAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXG4+XG4gICtcbjwvZGl2PlxuIl19
@@ -1,129 +0,0 @@
1
- import { Component, EventEmitter, Input, Output, } from '@angular/core';
2
- import { ASSETS } from '../../../constants/assets.constants';
3
- import { BUSINESS_CYCLE_URL } from '../../../constants/business-cycle.constant';
4
- import { IN_APP_URL } from '../../../constants/app-url.constant';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../../../shared/services/api.service";
7
- import * as i2 from "../../../shared/services/layout.service";
8
- import * as i3 from "@angular/router";
9
- import * as i4 from "@angular/common";
10
- import * as i5 from "../../global-alert/global-alert/global-alert.component";
11
- import * as i6 from "../business-cycle/business-cycle.component";
12
- import * as i7 from "../search/search.component";
13
- import * as i8 from "../create-workflow/create-workflow.component";
14
- import * as i9 from "../queue/queue.component";
15
- import * as i10 from "../user-details/user-details.component";
16
- import * as i11 from "../support/support.component";
17
- import * as i12 from "../../../shared/pipe/check-create-permission.pipe";
18
- export class HeaderContainerComponent {
19
- constructor(apiService, layoutService, router) {
20
- this.apiService = apiService;
21
- this.layoutService = layoutService;
22
- this.router = router;
23
- this.ASSETS = ASSETS;
24
- this.isXmasCapVisible = false;
25
- this.showAnimation = false;
26
- this.showBusinessCycle = BUSINESS_CYCLE_URL;
27
- this.currentUrl = '';
28
- this.defaultURL = '';
29
- this.showCreateWorkflow = true;
30
- this.showSearch = false;
31
- this.isAdvanceSearch = false;
32
- this.iframeLoading = false;
33
- this.businessCycleChange = new EventEmitter();
34
- this.openDialog = new EventEmitter();
35
- this.onSearchAction = new EventEmitter();
36
- this.currentUrl = window.location.pathname;
37
- this.defaultURL = this.layoutService.baseUrl + IN_APP_URL.DEFAULT;
38
- this.onRouterChange();
39
- }
40
- ngOnInit() {
41
- this.checkXmasCapVisibility();
42
- this.checkSnowFallVisibility();
43
- this.checkComplianceFlag();
44
- }
45
- ngOnDestroy() {
46
- // Clear interval to prevent memory leaks
47
- if (this.animationInterval) {
48
- clearInterval(this.animationInterval);
49
- }
50
- }
51
- businessCycleChangeHandler(event) {
52
- this.businessCycleChange.emit(event);
53
- }
54
- onRouterChange() {
55
- this.router.url.subscribe((url) => {
56
- console.log('url', url);
57
- this.currentUrl = window.location.pathname;
58
- });
59
- }
60
- get isBusinessCycleVisible() {
61
- const currentUrl = window.location.href;
62
- return this.showBusinessCycle.some((url) => {
63
- return currentUrl.includes(url);
64
- });
65
- }
66
- checkSnowFallVisibility() {
67
- // First-time display after 20 seconds
68
- setTimeout(() => {
69
- this.showAnimation = true;
70
- // Hide after 20 seconds
71
- setTimeout(() => {
72
- this.showAnimation = false;
73
- }, 20000);
74
- }, 0);
75
- // Repeated display every 5 minutes
76
- this.animationInterval = setInterval(() => {
77
- this.showAnimation = true;
78
- // Hide the animation after 20 seconds
79
- setTimeout(() => {
80
- this.showAnimation = false;
81
- }, 20000); // Show duration: 20 seconds
82
- }, 300000); // Repeat every 5 minutes (300,000 ms)
83
- }
84
- checkXmasCapVisibility() {
85
- const today = new Date();
86
- const currentYear = today.getFullYear();
87
- let startDate, endDate;
88
- // If today is after December 20, use January 7 of next year as the end date
89
- if (today.getMonth() === 11 && today.getDate() >= 20) {
90
- startDate = new Date(currentYear, 11, 20); // December 20 of current year
91
- endDate = new Date(currentYear + 1, 0, 3, 23, 59, 59); // January 7 of next year
92
- }
93
- else {
94
- // Otherwise, use December 20 of the previous year and January 7 of the current year
95
- startDate = new Date(currentYear - 1, 11, 20); // December 20 of previous year
96
- endDate = new Date(currentYear, 0, 3, 23, 59, 59); // January 7 of current year
97
- }
98
- // Check if today is within the range
99
- this.isXmasCapVisible = today >= startDate && today <= endDate;
100
- }
101
- checkComplianceFlag() {
102
- this.apiService.subscriptionDetail$.subscribe((subscriptionData) => {
103
- if (subscriptionData) {
104
- this.showCreateWorkflow = subscriptionData.compliance_flag === 1;
105
- }
106
- });
107
- }
108
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HeaderContainerComponent, deps: [{ token: i1.ApiService }, { token: i2.LayoutService }, { token: i3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
109
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: HeaderContainerComponent, selector: "vc-header-container", inputs: { showSearch: "showSearch", featureFlag: "featureFlag", isAdvanceSearch: "isAdvanceSearch", iframeLoading: "iframeLoading" }, outputs: { businessCycleChange: "businessCycleChange", openDialog: "openDialog", onSearchAction: "onSearchAction" }, ngImport: i0, template: "<vc-global-alert [feature]=\"featureFlag\"></vc-global-alert>\n<div\n class=\"header-container vx-d-flex vx-align-center vx-justify-between vx-pr-3\"\n>\n <div id=\"snowfall\" *ngIf=\"isXmasCapVisible\" [class.animate]=\"showAnimation\">\n <div class=\"snow\"></div>\n <div class=\"snow1\"></div>\n <div class=\"snow2\"></div>\n </div>\n <div class=\"header-container-left vx-d-flex vx-align-center\">\n <a\n class=\"product-logo vx-d-flex vx-align-center vx-justify-center vx-mr-3\"\n [href]=\"defaultURL\"\n >\n <img\n *ngIf=\"isXmasCapVisible\"\n class=\"xmas-cap\"\n [src]=\"ASSETS.xmas_cap\"\n alt=\"Santa Cap\"\n width=\"20\"\n height=\"20\" />\n <img [src]=\"ASSETS.v_icon\" alt=\"VComply\" width=\"24\" height=\"24\"\n /></a>\n <vc-business-cycle\n *ngIf=\"isBusinessCycleVisible\"\n (businessCycleChange)=\"businessCycleChangeHandler($event)\"\n ></vc-business-cycle>\n </div>\n <div class=\"search-area\">\n <vc-search\n *ngIf=\"showSearch\"\n [isAdvanceSearch]=\"isAdvanceSearch\"\n (onSearchAction)=\"onSearchAction.emit($event)\"\n ></vc-search>\n </div>\n <div class=\"vx-d-flex vx-align-center\">\n <vc-support (openSupport)=\"openDialog.emit('SUPPORT')\"></vc-support>\n <vc-create-workflow\n *ngIf=\"(apiService.loggedUserDetail$ | async | checkPermission) && showCreateWorkflow\"\n (openWorkflow)=\"openDialog.emit('WORKFLOW')\"\n [iframeLoading]=\"iframeLoading\"\n ></vc-create-workflow>\n <vc-queue></vc-queue>\n <vc-user-details\n [userDetails]=\"apiService.loggedUserDetail$ | async\"\n [subscriptionDetails]=\"apiService.subscriptionDetail$ | async\"\n ></vc-user-details>\n </div>\n</div>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";.header-container{height:3rem}.header-container-left{width:260px}.header-container .product-logo{width:3rem;height:3rem;position:relative}.header-container .product-logo img{pointer-events:none}.header-container .product-logo img.xmas-cap{position:absolute;top:.25rem;left:.375rem}#snowfall{position:absolute;width:100%;height:100px;z-index:-1}.animate .snow{position:absolute;border-radius:50%;filter:blur(1px);background-color:#fff;width:10px;height:10px;top:-1000px;box-shadow:20px 20px 1px #fff,60px 40px 1px #fff,160px 135px 1px #fff,260px 240px 1px #fff,360px 340px 1px #fff,460px 440px 1px #fff,560px 340px 1px #fff,660px 240px 1px #fff,760px 140px 1px #fff,260px 640px 1px #fff,160px 340px 1px #fff,260px 440px 1px #fff,760px 140px 1px #fff,860px 40px 1px #fff,760px 140px 1px #fff,1260px 120px 1px #fff,1460px 10px 1px #fff,1560px 30px 1px #fff,1590px 124px 1px #fff,1680px 415px 1px #fff,1720px 335px 1px #fff,1000px 212px 1px #fff,990px 311px 1px #fff,888px 122px 1px #fff,765px 10px 1px #fff,635px 15px 1px #fff,554px 111px 1px #fff,455px 222px 1px #fff,125px 105px 1px #fff,275px 96px 1px #fff,245px 40px 1px #fff,230px 70px 1px #fff,285px 17px 1px #fff,360px 340px 1px #fff,360px 340px 1px #fff,360px 340px 1px #fff,430px 210px 1px #fff,523px 23px 1px #fff,1650px 335px 1px #fff,1777px 123px 1px #fff,1800px 222px 1px #fff,1360px 140px 1px #fff;animation:snowfall 7s linear,fadeOut 7s ease-out forwards}.animate .snow:before{content:\"\";width:7px;height:7px;position:absolute;background-color:#fff;left:200px;top:-150px;border-radius:50%;box-shadow:20px 20px 1px #fff,60px 40px 1px #fff,160px 135px 1px #fff,260px 240px 1px #fff,360px 340px 1px #fff,460px 440px 1px #fff,560px 340px 1px #fff,660px 240px 1px #fff,760px 140px 1px #fff,260px 640px 1px #fff,160px 340px 1px #fff,260px 440px 1px #fff,760px 140px 1px #fff,860px 40px 1px #fff,760px 140px 1px #fff,1260px 120px 1px #fff,1460px 10px 1px #fff,1560px 30px 1px #fff,1590px 124px 1px #fff,1680px 415px 1px #fff,1720px 335px 1px #fff,1000px 212px 1px #fff,990px 311px 1px #fff,888px 122px 1px #fff,765px 10px 1px #fff,635px 15px 1px #fff,554px 111px 1px #fff,455px 222px 1px #fff,125px 105px 1px #fff,275px 96px 1px #fff,245px 40px 1px #fff,230px 70px 1px #fff,285px 17px 1px #fff,360px 340px 1px #fff,360px 340px 1px #fff,360px 340px 1px #fff,430px 210px 1px #fff,523px 23px 1px #fff,1650px 335px 1px #fff,1777px 123px 1px #fff,1800px 222px 1px #fff,1360px 140px 1px #fff}.animate .snow:after{content:\"\";width:5px;height:5px;position:absolute;background-color:#fff;left:300px;top:-250px;border-radius:50%;filter:blur(1px);box-shadow:20px 20px 1px #fff,60px 40px 1px #fff,160px 135px 1px #fff,260px 240px 1px #fff,360px 340px 1px #fff,460px 440px 1px #fff,560px 340px 1px #fff,660px 240px 1px #fff,760px 140px 1px #fff,260px 640px 1px #fff,160px 340px 1px #fff,260px 440px 1px #fff,760px 140px 1px #fff,860px 40px 1px #fff,760px 140px 1px #fff,1260px 120px 1px #fff,1460px 10px 1px #fff,1560px 30px 1px #fff,1590px 124px 1px #fff,1680px 415px 1px #fff,1720px 335px 1px #fff,1000px 212px 1px #fff,990px 311px 1px #fff,888px 122px 1px #fff,765px 10px 1px #fff,635px 15px 1px #fff,554px 111px 1px #fff,455px 222px 1px #fff,125px 105px 1px #fff,275px 96px 1px #fff,245px 40px 1px #fff,230px 70px 1px #fff,285px 17px 1px #fff,360px 340px 1px #fff,360px 340px 1px #fff,360px 340px 1px #fff,430px 210px 1px #fff,523px 23px 1px #fff,1650px 335px 1px #fff,1777px 123px 1px #fff,1800px 222px 1px #fff,1360px 140px 1px #fff}.animate .snow1{position:absolute;border-radius:50%;filter:blur(2px);background-color:#fff;width:9px;height:9px;top:-850px;left:123px;box-shadow:20px 20px 1px #fff,60px 40px 1px #fff,160px 135px 1px #fff,260px 240px 1px #fff,360px 340px 1px #fff,460px 440px 1px #fff,560px 340px 1px #fff,660px 240px 1px #fff,760px 140px 1px #fff,260px 640px 1px #fff,160px 340px 1px #fff,260px 440px 1px #fff,760px 140px 1px #fff,860px 40px 1px #fff,760px 140px 1px #fff,1260px 120px 1px #fff,1460px 10px 1px #fff,1560px 30px 1px #fff,1590px 124px 1px #fff,1680px 415px 1px #fff,1720px 335px 1px #fff,1000px 212px 1px #fff,990px 311px 1px #fff,888px 122px 1px #fff,765px 10px 1px #fff,635px 15px 1px #fff,554px 111px 1px #fff,455px 222px 1px #fff,125px 105px 1px #fff,275px 96px 1px #fff,245px 40px 1px #fff,230px 70px 1px #fff,285px 17px 1px #fff,360px 340px 1px #fff,360px 340px 1px #fff,360px 340px 1px #fff,430px 210px 1px #fff,523px 23px 1px #fff,1650px 335px 1px #fff,1777px 123px 1px #fff,1800px 222px 1px #fff,1360px 140px 1px #fff;animation-delay:-3s;animation:snowfall 9s linear,fadeOut 9s ease-out forwards}.animate .snow1:before{content:\"\";width:7px;height:7px;position:absolute;background-color:#fff;left:200px;top:-350px;border-radius:50%;box-shadow:20px 20px 1px #fff,60px 40px 1px #fff,160px 135px 1px #fff,260px 240px 1px #fff,360px 340px 1px #fff,460px 440px 1px #fff,560px 340px 1px #fff,660px 240px 1px #fff,760px 140px 1px #fff,260px 640px 1px #fff,160px 340px 1px #fff,260px 440px 1px #fff,760px 140px 1px #fff,860px 40px 1px #fff,760px 140px 1px #fff,1260px 120px 1px #fff,1460px 10px 1px #fff,1560px 30px 1px #fff,1590px 124px 1px #fff,1680px 415px 1px #fff,1720px 335px 1px #fff,1000px 212px 1px #fff,990px 311px 1px #fff,888px 122px 1px #fff,765px 10px 1px #fff,635px 15px 1px #fff,554px 111px 1px #fff,455px 222px 1px #fff,125px 105px 1px #fff,275px 96px 1px #fff,245px 40px 1px #fff,230px 70px 1px #fff,285px 17px 1px #fff,360px 340px 1px #fff,360px 340px 1px #fff,360px 340px 1px #fff,430px 210px 1px #fff,523px 23px 1px #fff,1650px 335px 1px #fff,1777px 123px 1px #fff,1800px 222px 1px #fff,1360px 140px 1px #fff}.animate .snow1:after{content:\"\";width:5px;height:5px;position:absolute;background-color:#fff;left:300px;top:-450px;border-radius:50%;filter:blur(1px);box-shadow:20px 20px 1px #fff,60px 40px 1px #fff,160px 135px 1px #fff,260px 240px 1px #fff,360px 340px 1px #fff,460px 440px 1px #fff,560px 340px 1px #fff,660px 240px 1px #fff,760px 140px 1px #fff,260px 640px 1px #fff,160px 340px 1px #fff,260px 440px 1px #fff,760px 140px 1px #fff,860px 40px 1px #fff,760px 140px 1px #fff,1260px 120px 1px #fff,1460px 10px 1px #fff,1560px 30px 1px #fff,1590px 124px 1px #fff,1680px 415px 1px #fff,1720px 335px 1px #fff,1000px 212px 1px #fff,990px 311px 1px #fff,888px 122px 1px #fff,765px 10px 1px #fff,635px 15px 1px #fff,554px 111px 1px #fff,455px 222px 1px #fff,125px 105px 1px #fff,275px 96px 1px #fff,245px 40px 1px #fff,230px 70px 1px #fff,285px 17px 1px #fff,360px 340px 1px #fff,360px 340px 1px #fff,360px 340px 1px #fff,430px 210px 1px #fff,523px 23px 1px #fff,1650px 335px 1px #fff,1777px 123px 1px #fff,1800px 222px 1px #fff,1360px 140px 1px #fff}.animate .snow2{position:absolute;border-radius:50%;filter:blur(1.5px);background-color:#fff;width:9px;height:9px;top:-900px;left:-50px;box-shadow:20px 20px 1px #fff,60px 40px 1px #fff,160px 135px 1px #fff,260px 240px 1px #fff,360px 340px 1px #fff,460px 440px 1px #fff,560px 340px 1px #fff,660px 240px 1px #fff,760px 140px 1px #fff,260px 640px 1px #fff,160px 340px 1px #fff,260px 440px 1px #fff,760px 140px 1px #fff,860px 40px 1px #fff,760px 140px 1px #fff,1260px 120px 1px #fff,1460px 10px 1px #fff,1560px 30px 1px #fff,1590px 124px 1px #fff,1680px 415px 1px #fff,1720px 335px 1px #fff,1000px 212px 1px #fff,990px 311px 1px #fff,888px 122px 1px #fff,765px 10px 1px #fff,635px 15px 1px #fff,554px 111px 1px #fff,455px 222px 1px #fff,125px 105px 1px #fff,275px 96px 1px #fff,245px 40px 1px #fff,230px 70px 1px #fff,285px 17px 1px #fff,360px 340px 1px #fff,360px 340px 1px #fff,360px 340px 1px #fff,430px 210px 1px #fff,523px 23px 1px #fff,1650px 335px 1px #fff,1777px 123px 1px #fff,1800px 222px 1px #fff,1360px 140px 1px #fff;animation-delay:-4s;animation:snowfall 14s linear,fadeOut 14s ease-out forwards}.animate .snow2:before{content:\"\";width:7px;height:7px;position:absolute;background-color:#fff;left:200px;top:-550px;border-radius:50%;box-shadow:20px 20px 1px #fff,60px 40px 1px #fff,160px 135px 1px #fff,260px 240px 1px #fff,360px 340px 1px #fff,460px 440px 1px #fff,560px 340px 1px #fff,660px 240px 1px #fff,760px 140px 1px #fff,260px 640px 1px #fff,160px 340px 1px #fff,260px 440px 1px #fff,760px 140px 1px #fff,860px 40px 1px #fff,760px 140px 1px #fff,1260px 120px 1px #fff,1460px 10px 1px #fff,1560px 30px 1px #fff,1590px 124px 1px #fff,1680px 415px 1px #fff,1720px 335px 1px #fff,1000px 212px 1px #fff,990px 311px 1px #fff,888px 122px 1px #fff,765px 10px 1px #fff,635px 15px 1px #fff,554px 111px 1px #fff,455px 222px 1px #fff,125px 105px 1px #fff,275px 96px 1px #fff,245px 40px 1px #fff,230px 70px 1px #fff,285px 17px 1px #fff,360px 340px 1px #fff,360px 340px 1px #fff,360px 340px 1px #fff,430px 210px 1px #fff,523px 23px 1px #fff,1650px 335px 1px #fff,1777px 123px 1px #fff,1800px 222px 1px #fff,1360px 140px 1px #fff}.animate .snow2:after{content:\"\";width:5px;height:5px;position:absolute;background-color:#fff;left:300px;top:-650px;border-radius:50%;filter:blur(1px);box-shadow:20px 20px 1px #fff,60px 40px 1px #fff,160px 135px 1px #fff,260px 240px 1px #fff,360px 340px 1px #fff,460px 440px 1px #fff,560px 340px 1px #fff,660px 240px 1px #fff,760px 140px 1px #fff,260px 640px 1px #fff,160px 340px 1px #fff,260px 440px 1px #fff,760px 140px 1px #fff,860px 40px 1px #fff,760px 140px 1px #fff,1260px 120px 1px #fff,1460px 10px 1px #fff,1560px 30px 1px #fff,1590px 124px 1px #fff,1680px 415px 1px #fff,1720px 335px 1px #fff,1000px 212px 1px #fff,990px 311px 1px #fff,888px 122px 1px #fff,765px 10px 1px #fff,635px 15px 1px #fff,554px 111px 1px #fff,455px 222px 1px #fff,125px 105px 1px #fff,275px 96px 1px #fff,245px 40px 1px #fff,230px 70px 1px #fff,285px 17px 1px #fff,360px 340px 1px #fff,360px 340px 1px #fff,360px 340px 1px #fff,430px 210px 1px #fff,523px 23px 1px #fff,1650px 335px 1px #fff,1777px 123px 1px #fff,1800px 222px 1px #fff,1360px 140px 1px #fff}@keyframes snowfall{to{transform:translateY(1500px)}}@keyframes fadeOut{0%{opacity:0}50%{opacity:1}to{opacity:0}}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.GlobalAlertComponent, selector: "vc-global-alert", inputs: ["feature"], outputs: ["subscriptionStatus"] }, { kind: "component", type: i6.BusinessCycleComponent, selector: "vc-business-cycle", inputs: ["orgDetails"], outputs: ["businessCycleChange"] }, { kind: "component", type: i7.SearchComponent, selector: "vc-search", inputs: ["isAdvanceSearch"], outputs: ["onSearchAction"] }, { kind: "component", type: i8.CreateWorkflowComponent, selector: "vc-create-workflow", inputs: ["iframeLoading"], outputs: ["openWorkflow"] }, { kind: "component", type: i9.QueueComponent, selector: "vc-queue" }, { kind: "component", type: i10.UserDetailsComponent, selector: "vc-user-details", inputs: ["userDetails", "subscriptionDetails"] }, { kind: "component", type: i11.SupportComponent, selector: "vc-support", outputs: ["openSupport"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i12.CreatePermissionPipe, name: "checkPermission" }] }); }
110
- }
111
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HeaderContainerComponent, decorators: [{
112
- type: Component,
113
- args: [{ selector: 'vc-header-container', template: "<vc-global-alert [feature]=\"featureFlag\"></vc-global-alert>\n<div\n class=\"header-container vx-d-flex vx-align-center vx-justify-between vx-pr-3\"\n>\n <div id=\"snowfall\" *ngIf=\"isXmasCapVisible\" [class.animate]=\"showAnimation\">\n <div class=\"snow\"></div>\n <div class=\"snow1\"></div>\n <div class=\"snow2\"></div>\n </div>\n <div class=\"header-container-left vx-d-flex vx-align-center\">\n <a\n class=\"product-logo vx-d-flex vx-align-center vx-justify-center vx-mr-3\"\n [href]=\"defaultURL\"\n >\n <img\n *ngIf=\"isXmasCapVisible\"\n class=\"xmas-cap\"\n [src]=\"ASSETS.xmas_cap\"\n alt=\"Santa Cap\"\n width=\"20\"\n height=\"20\" />\n <img [src]=\"ASSETS.v_icon\" alt=\"VComply\" width=\"24\" height=\"24\"\n /></a>\n <vc-business-cycle\n *ngIf=\"isBusinessCycleVisible\"\n (businessCycleChange)=\"businessCycleChangeHandler($event)\"\n ></vc-business-cycle>\n </div>\n <div class=\"search-area\">\n <vc-search\n *ngIf=\"showSearch\"\n [isAdvanceSearch]=\"isAdvanceSearch\"\n (onSearchAction)=\"onSearchAction.emit($event)\"\n ></vc-search>\n </div>\n <div class=\"vx-d-flex vx-align-center\">\n <vc-support (openSupport)=\"openDialog.emit('SUPPORT')\"></vc-support>\n <vc-create-workflow\n *ngIf=\"(apiService.loggedUserDetail$ | async | checkPermission) && showCreateWorkflow\"\n (openWorkflow)=\"openDialog.emit('WORKFLOW')\"\n [iframeLoading]=\"iframeLoading\"\n ></vc-create-workflow>\n <vc-queue></vc-queue>\n <vc-user-details\n [userDetails]=\"apiService.loggedUserDetail$ | async\"\n [subscriptionDetails]=\"apiService.subscriptionDetail$ | async\"\n ></vc-user-details>\n </div>\n</div>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";.header-container{height:3rem}.header-container-left{width:260px}.header-container .product-logo{width:3rem;height:3rem;position:relative}.header-container .product-logo img{pointer-events:none}.header-container .product-logo img.xmas-cap{position:absolute;top:.25rem;left:.375rem}#snowfall{position:absolute;width:100%;height:100px;z-index:-1}.animate .snow{position:absolute;border-radius:50%;filter:blur(1px);background-color:#fff;width:10px;height:10px;top:-1000px;box-shadow:20px 20px 1px #fff,60px 40px 1px #fff,160px 135px 1px #fff,260px 240px 1px #fff,360px 340px 1px #fff,460px 440px 1px #fff,560px 340px 1px #fff,660px 240px 1px #fff,760px 140px 1px #fff,260px 640px 1px #fff,160px 340px 1px #fff,260px 440px 1px #fff,760px 140px 1px #fff,860px 40px 1px #fff,760px 140px 1px #fff,1260px 120px 1px #fff,1460px 10px 1px #fff,1560px 30px 1px #fff,1590px 124px 1px #fff,1680px 415px 1px #fff,1720px 335px 1px #fff,1000px 212px 1px #fff,990px 311px 1px #fff,888px 122px 1px #fff,765px 10px 1px #fff,635px 15px 1px #fff,554px 111px 1px #fff,455px 222px 1px #fff,125px 105px 1px #fff,275px 96px 1px #fff,245px 40px 1px #fff,230px 70px 1px #fff,285px 17px 1px #fff,360px 340px 1px #fff,360px 340px 1px #fff,360px 340px 1px #fff,430px 210px 1px #fff,523px 23px 1px #fff,1650px 335px 1px #fff,1777px 123px 1px #fff,1800px 222px 1px #fff,1360px 140px 1px #fff;animation:snowfall 7s linear,fadeOut 7s ease-out forwards}.animate .snow:before{content:\"\";width:7px;height:7px;position:absolute;background-color:#fff;left:200px;top:-150px;border-radius:50%;box-shadow:20px 20px 1px #fff,60px 40px 1px #fff,160px 135px 1px #fff,260px 240px 1px #fff,360px 340px 1px #fff,460px 440px 1px #fff,560px 340px 1px #fff,660px 240px 1px #fff,760px 140px 1px #fff,260px 640px 1px #fff,160px 340px 1px #fff,260px 440px 1px #fff,760px 140px 1px #fff,860px 40px 1px #fff,760px 140px 1px #fff,1260px 120px 1px #fff,1460px 10px 1px #fff,1560px 30px 1px #fff,1590px 124px 1px #fff,1680px 415px 1px #fff,1720px 335px 1px #fff,1000px 212px 1px #fff,990px 311px 1px #fff,888px 122px 1px #fff,765px 10px 1px #fff,635px 15px 1px #fff,554px 111px 1px #fff,455px 222px 1px #fff,125px 105px 1px #fff,275px 96px 1px #fff,245px 40px 1px #fff,230px 70px 1px #fff,285px 17px 1px #fff,360px 340px 1px #fff,360px 340px 1px #fff,360px 340px 1px #fff,430px 210px 1px #fff,523px 23px 1px #fff,1650px 335px 1px #fff,1777px 123px 1px #fff,1800px 222px 1px #fff,1360px 140px 1px #fff}.animate .snow:after{content:\"\";width:5px;height:5px;position:absolute;background-color:#fff;left:300px;top:-250px;border-radius:50%;filter:blur(1px);box-shadow:20px 20px 1px #fff,60px 40px 1px #fff,160px 135px 1px #fff,260px 240px 1px #fff,360px 340px 1px #fff,460px 440px 1px #fff,560px 340px 1px #fff,660px 240px 1px #fff,760px 140px 1px #fff,260px 640px 1px #fff,160px 340px 1px #fff,260px 440px 1px #fff,760px 140px 1px #fff,860px 40px 1px #fff,760px 140px 1px #fff,1260px 120px 1px #fff,1460px 10px 1px #fff,1560px 30px 1px #fff,1590px 124px 1px #fff,1680px 415px 1px #fff,1720px 335px 1px #fff,1000px 212px 1px #fff,990px 311px 1px #fff,888px 122px 1px #fff,765px 10px 1px #fff,635px 15px 1px #fff,554px 111px 1px #fff,455px 222px 1px #fff,125px 105px 1px #fff,275px 96px 1px #fff,245px 40px 1px #fff,230px 70px 1px #fff,285px 17px 1px #fff,360px 340px 1px #fff,360px 340px 1px #fff,360px 340px 1px #fff,430px 210px 1px #fff,523px 23px 1px #fff,1650px 335px 1px #fff,1777px 123px 1px #fff,1800px 222px 1px #fff,1360px 140px 1px #fff}.animate .snow1{position:absolute;border-radius:50%;filter:blur(2px);background-color:#fff;width:9px;height:9px;top:-850px;left:123px;box-shadow:20px 20px 1px #fff,60px 40px 1px #fff,160px 135px 1px #fff,260px 240px 1px #fff,360px 340px 1px #fff,460px 440px 1px #fff,560px 340px 1px #fff,660px 240px 1px #fff,760px 140px 1px #fff,260px 640px 1px #fff,160px 340px 1px #fff,260px 440px 1px #fff,760px 140px 1px #fff,860px 40px 1px #fff,760px 140px 1px #fff,1260px 120px 1px #fff,1460px 10px 1px #fff,1560px 30px 1px #fff,1590px 124px 1px #fff,1680px 415px 1px #fff,1720px 335px 1px #fff,1000px 212px 1px #fff,990px 311px 1px #fff,888px 122px 1px #fff,765px 10px 1px #fff,635px 15px 1px #fff,554px 111px 1px #fff,455px 222px 1px #fff,125px 105px 1px #fff,275px 96px 1px #fff,245px 40px 1px #fff,230px 70px 1px #fff,285px 17px 1px #fff,360px 340px 1px #fff,360px 340px 1px #fff,360px 340px 1px #fff,430px 210px 1px #fff,523px 23px 1px #fff,1650px 335px 1px #fff,1777px 123px 1px #fff,1800px 222px 1px #fff,1360px 140px 1px #fff;animation-delay:-3s;animation:snowfall 9s linear,fadeOut 9s ease-out forwards}.animate .snow1:before{content:\"\";width:7px;height:7px;position:absolute;background-color:#fff;left:200px;top:-350px;border-radius:50%;box-shadow:20px 20px 1px #fff,60px 40px 1px #fff,160px 135px 1px #fff,260px 240px 1px #fff,360px 340px 1px #fff,460px 440px 1px #fff,560px 340px 1px #fff,660px 240px 1px #fff,760px 140px 1px #fff,260px 640px 1px #fff,160px 340px 1px #fff,260px 440px 1px #fff,760px 140px 1px #fff,860px 40px 1px #fff,760px 140px 1px #fff,1260px 120px 1px #fff,1460px 10px 1px #fff,1560px 30px 1px #fff,1590px 124px 1px #fff,1680px 415px 1px #fff,1720px 335px 1px #fff,1000px 212px 1px #fff,990px 311px 1px #fff,888px 122px 1px #fff,765px 10px 1px #fff,635px 15px 1px #fff,554px 111px 1px #fff,455px 222px 1px #fff,125px 105px 1px #fff,275px 96px 1px #fff,245px 40px 1px #fff,230px 70px 1px #fff,285px 17px 1px #fff,360px 340px 1px #fff,360px 340px 1px #fff,360px 340px 1px #fff,430px 210px 1px #fff,523px 23px 1px #fff,1650px 335px 1px #fff,1777px 123px 1px #fff,1800px 222px 1px #fff,1360px 140px 1px #fff}.animate .snow1:after{content:\"\";width:5px;height:5px;position:absolute;background-color:#fff;left:300px;top:-450px;border-radius:50%;filter:blur(1px);box-shadow:20px 20px 1px #fff,60px 40px 1px #fff,160px 135px 1px #fff,260px 240px 1px #fff,360px 340px 1px #fff,460px 440px 1px #fff,560px 340px 1px #fff,660px 240px 1px #fff,760px 140px 1px #fff,260px 640px 1px #fff,160px 340px 1px #fff,260px 440px 1px #fff,760px 140px 1px #fff,860px 40px 1px #fff,760px 140px 1px #fff,1260px 120px 1px #fff,1460px 10px 1px #fff,1560px 30px 1px #fff,1590px 124px 1px #fff,1680px 415px 1px #fff,1720px 335px 1px #fff,1000px 212px 1px #fff,990px 311px 1px #fff,888px 122px 1px #fff,765px 10px 1px #fff,635px 15px 1px #fff,554px 111px 1px #fff,455px 222px 1px #fff,125px 105px 1px #fff,275px 96px 1px #fff,245px 40px 1px #fff,230px 70px 1px #fff,285px 17px 1px #fff,360px 340px 1px #fff,360px 340px 1px #fff,360px 340px 1px #fff,430px 210px 1px #fff,523px 23px 1px #fff,1650px 335px 1px #fff,1777px 123px 1px #fff,1800px 222px 1px #fff,1360px 140px 1px #fff}.animate .snow2{position:absolute;border-radius:50%;filter:blur(1.5px);background-color:#fff;width:9px;height:9px;top:-900px;left:-50px;box-shadow:20px 20px 1px #fff,60px 40px 1px #fff,160px 135px 1px #fff,260px 240px 1px #fff,360px 340px 1px #fff,460px 440px 1px #fff,560px 340px 1px #fff,660px 240px 1px #fff,760px 140px 1px #fff,260px 640px 1px #fff,160px 340px 1px #fff,260px 440px 1px #fff,760px 140px 1px #fff,860px 40px 1px #fff,760px 140px 1px #fff,1260px 120px 1px #fff,1460px 10px 1px #fff,1560px 30px 1px #fff,1590px 124px 1px #fff,1680px 415px 1px #fff,1720px 335px 1px #fff,1000px 212px 1px #fff,990px 311px 1px #fff,888px 122px 1px #fff,765px 10px 1px #fff,635px 15px 1px #fff,554px 111px 1px #fff,455px 222px 1px #fff,125px 105px 1px #fff,275px 96px 1px #fff,245px 40px 1px #fff,230px 70px 1px #fff,285px 17px 1px #fff,360px 340px 1px #fff,360px 340px 1px #fff,360px 340px 1px #fff,430px 210px 1px #fff,523px 23px 1px #fff,1650px 335px 1px #fff,1777px 123px 1px #fff,1800px 222px 1px #fff,1360px 140px 1px #fff;animation-delay:-4s;animation:snowfall 14s linear,fadeOut 14s ease-out forwards}.animate .snow2:before{content:\"\";width:7px;height:7px;position:absolute;background-color:#fff;left:200px;top:-550px;border-radius:50%;box-shadow:20px 20px 1px #fff,60px 40px 1px #fff,160px 135px 1px #fff,260px 240px 1px #fff,360px 340px 1px #fff,460px 440px 1px #fff,560px 340px 1px #fff,660px 240px 1px #fff,760px 140px 1px #fff,260px 640px 1px #fff,160px 340px 1px #fff,260px 440px 1px #fff,760px 140px 1px #fff,860px 40px 1px #fff,760px 140px 1px #fff,1260px 120px 1px #fff,1460px 10px 1px #fff,1560px 30px 1px #fff,1590px 124px 1px #fff,1680px 415px 1px #fff,1720px 335px 1px #fff,1000px 212px 1px #fff,990px 311px 1px #fff,888px 122px 1px #fff,765px 10px 1px #fff,635px 15px 1px #fff,554px 111px 1px #fff,455px 222px 1px #fff,125px 105px 1px #fff,275px 96px 1px #fff,245px 40px 1px #fff,230px 70px 1px #fff,285px 17px 1px #fff,360px 340px 1px #fff,360px 340px 1px #fff,360px 340px 1px #fff,430px 210px 1px #fff,523px 23px 1px #fff,1650px 335px 1px #fff,1777px 123px 1px #fff,1800px 222px 1px #fff,1360px 140px 1px #fff}.animate .snow2:after{content:\"\";width:5px;height:5px;position:absolute;background-color:#fff;left:300px;top:-650px;border-radius:50%;filter:blur(1px);box-shadow:20px 20px 1px #fff,60px 40px 1px #fff,160px 135px 1px #fff,260px 240px 1px #fff,360px 340px 1px #fff,460px 440px 1px #fff,560px 340px 1px #fff,660px 240px 1px #fff,760px 140px 1px #fff,260px 640px 1px #fff,160px 340px 1px #fff,260px 440px 1px #fff,760px 140px 1px #fff,860px 40px 1px #fff,760px 140px 1px #fff,1260px 120px 1px #fff,1460px 10px 1px #fff,1560px 30px 1px #fff,1590px 124px 1px #fff,1680px 415px 1px #fff,1720px 335px 1px #fff,1000px 212px 1px #fff,990px 311px 1px #fff,888px 122px 1px #fff,765px 10px 1px #fff,635px 15px 1px #fff,554px 111px 1px #fff,455px 222px 1px #fff,125px 105px 1px #fff,275px 96px 1px #fff,245px 40px 1px #fff,230px 70px 1px #fff,285px 17px 1px #fff,360px 340px 1px #fff,360px 340px 1px #fff,360px 340px 1px #fff,430px 210px 1px #fff,523px 23px 1px #fff,1650px 335px 1px #fff,1777px 123px 1px #fff,1800px 222px 1px #fff,1360px 140px 1px #fff}@keyframes snowfall{to{transform:translateY(1500px)}}@keyframes fadeOut{0%{opacity:0}50%{opacity:1}to{opacity:0}}\n"] }]
114
- }], ctorParameters: function () { return [{ type: i1.ApiService }, { type: i2.LayoutService }, { type: i3.ActivatedRoute }]; }, propDecorators: { showSearch: [{
115
- type: Input
116
- }], featureFlag: [{
117
- type: Input
118
- }], isAdvanceSearch: [{
119
- type: Input
120
- }], iframeLoading: [{
121
- type: Input
122
- }], businessCycleChange: [{
123
- type: Output
124
- }], openDialog: [{
125
- type: Output
126
- }], onSearchAction: [{
127
- type: Output
128
- }] } });
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92Yy1sYXlvdXQvc3JjL2xpYi9jb21wb25lbnRzL2hlYWRlci9oZWFkZXItY29udGFpbmVyL2hlYWRlci1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmMtbGF5b3V0L3NyYy9saWIvY29tcG9uZW50cy9oZWFkZXIvaGVhZGVyLWNvbnRhaW5lci9oZWFkZXItY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRTdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRWhGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFRakUsTUFBTSxPQUFPLHdCQUF3QjtJQW1CbkMsWUFDUyxVQUFzQixFQUNyQixhQUE0QixFQUM1QixNQUFzQjtRQUZ2QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3JCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBckJoQyxXQUFNLEdBQVEsTUFBTSxDQUFDO1FBQ3JCLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUNsQyxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUUvQixzQkFBaUIsR0FBYSxrQkFBa0IsQ0FBQztRQUNqRCxlQUFVLEdBQVcsRUFBRSxDQUFDO1FBQ3hCLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFDeEIsdUJBQWtCLEdBQVksSUFBSSxDQUFDO1FBRTFCLGVBQVUsR0FB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QkFFSSxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFTU0VUUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9hc3NldHMuY29uc3RhbnRzJztcbmltcG9ydCB7IEFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvc2VydmljZXMvYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgQlVTSU5FU1NfQ1lDTEVfVVJMIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2J1c2luZXNzLWN5Y2xlLmNvbnN0YW50JztcbmltcG9ydCB7IExheW91dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvc2VydmljZXMvbGF5b3V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgSU5fQVBQX1VSTCB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9hcHAtdXJsLmNvbnN0YW50JztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmMtaGVhZGVyLWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9oZWFkZXItY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaGVhZGVyLWNvbnRhaW5lci5jb21wb25lbnQubGVzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBIZWFkZXJDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEFTU0VUUzogYW55ID0gQVNTRVRTO1xuICBpc1htYXNDYXBWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIHNob3dBbmltYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBhbmltYXRpb25JbnRlcnZhbDogYW55O1xuICBzaG93QnVzaW5lc3NDeWNsZTogc3RyaW5nW10gPSBCVVNJTkVTU19DWUNMRV9VUkw7XG4gIGN1cnJlbnRVcmw6IHN0cmluZyA9ICcnO1xuICBkZWZhdWx0VVJMOiBzdHJpbmcgPSAnJztcbiAgc2hvd0NyZWF0ZVdvcmtmbG93OiBib29sZWFuID0gdHJ1ZTsgXG5cbiAgQElucHV0KCkgc2hvd1NlYXJjaDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBmZWF0dXJlRmxhZzogYW55O1xuICBASW5wdXQoKSBpc0FkdmFuY2VTZWFyY2g6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgaWZyYW1lTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBidXNpbmVzc0N5Y2xlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9wZW5EaWFsb2c6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBvblNlYXJjaEFjdGlvbjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgYXBpU2VydmljZTogQXBpU2VydmljZSxcbiAgICBwcml2YXRlIGxheW91dFNlcnZpY2U6IExheW91dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IEFjdGl2YXRlZFJvdXRlXG4gICkge1xuICAgIHRoaXMuY3VycmVudFVybCA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTtcbiAgICB0aGlzLmRlZmF1bHRVUkwgPSB0aGlzLmxheW91dFNlcnZpY2UuYmFzZVVybCArIElOX0FQUF9VUkwuREVGQVVMVDtcbiAgICB0aGlzLm9uUm91dGVyQ2hhbmdlKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNoZWNrWG1hc0NhcFZpc2liaWxpdHkoKTtcbiAgICB0aGlzLmNoZWNrU25vd0ZhbGxWaXNpYmlsaXR5KCk7XG4gICAgdGhpcy5jaGVja0NvbXBsaWFuY2VGbGFnKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAvLyBDbGVhciBpbnRlcnZhbCB0byBwcmV2ZW50IG1lbW9yeSBsZWFrc1xuICAgIGlmICh0aGlzLmFuaW1hdGlvbkludGVydmFsKSB7XG4gICAgICBjbGVhckludGVydmFsKHRoaXMuYW5pbWF0aW9uSW50ZXJ2YWwpO1xuICAgIH1cbiAgfVxuXG4gIGJ1c2luZXNzQ3ljbGVDaGFuZ2VIYW5kbGVyKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmJ1c2luZXNzQ3ljbGVDaGFuZ2UuZW1pdChldmVudCk7XG4gIH1cblxuICBvblJvdXRlckNoYW5nZSgpIHtcbiAgICB0aGlzLnJvdXRlci51cmwuc3Vic2NyaWJlKCh1cmwpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKCd1cmwnLCB1cmwpO1xuICAgICAgdGhpcy5jdXJyZW50VXJsID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGlzQnVzaW5lc3NDeWNsZVZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgY3VycmVudFVybCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmO1xuICAgIHJldHVybiB0aGlzLnNob3dCdXNpbmVzc0N5Y2xlLnNvbWUoKHVybCkgPT4ge1xuICAgICAgcmV0dXJuIGN1cnJlbnRVcmwuaW5jbHVkZXModXJsKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNoZWNrU25vd0ZhbGxWaXNpYmlsaXR5KCk6IHZvaWQge1xuICAgIC8vIEZpcnN0LXRpbWUgZGlzcGxheSBhZnRlciAyMCBzZWNvbmRzXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNob3dBbmltYXRpb24gPSB0cnVlO1xuXG4gICAgICAvLyBIaWRlIGFmdGVyIDIwIHNlY29uZHNcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnNob3dBbmltYXRpb24gPSBmYWxzZTtcbiAgICAgIH0sIDIwMDAwKTtcbiAgICB9LCAwKTtcblxuICAgIC8vIFJlcGVhdGVkIGRpc3BsYXkgZXZlcnkgNSBtaW51dGVzXG4gICAgdGhpcy5hbmltYXRpb25JbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgIHRoaXMuc2hvd0FuaW1hdGlvbiA9IHRydWU7XG5cbiAgICAgIC8vIEhpZGUgdGhlIGFuaW1hdGlvbiBhZnRlciAyMCBzZWNvbmRzXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zaG93QW5pbWF0aW9uID0gZmFsc2U7XG4gICAgICB9LCAyMDAwMCk7IC8vIFNob3cgZHVyYXRpb246IDIwIHNlY29uZHNcbiAgICB9LCAzMDAwMDApOyAvLyBSZXBlYXQgZXZlcnkgNSBtaW51dGVzICgzMDAsMDAwIG1zKVxuICB9XG5cbiAgY2hlY2tYbWFzQ2FwVmlzaWJpbGl0eSgpOiB2b2lkIHtcbiAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XG4gICAgY29uc3QgY3VycmVudFllYXIgPSB0b2RheS5nZXRGdWxsWWVhcigpO1xuICAgIGxldCBzdGFydERhdGUsIGVuZERhdGU7XG5cbiAgICAvLyBJZiB0b2RheSBpcyBhZnRlciBEZWNlbWJlciAyMCwgdXNlIEphbnVhcnkgNyBvZiBuZXh0IHllYXIgYXMgdGhlIGVuZCBkYXRlXG4gICAgaWYgKHRvZGF5LmdldE1vbnRoKCkgPT09IDExICYmIHRvZGF5LmdldERhdGUoKSA+PSAyMCkge1xuICAgICAgc3RhcnREYXRlID0gbmV3IERhdGUoY3VycmVudFllYXIsIDExLCAyMCk7IC8vIERlY2VtYmVyIDIwIG9mIGN1cnJlbnQgeWVhclxuICAgICAgZW5kRGF0ZSA9IG5ldyBEYXRlKGN1cnJlbnRZZWFyICsgMSwgMCwgMywgMjMsIDU5LCA1OSk7IC8vIEphbnVhcnkgNyBvZiBuZXh0IHllYXJcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gT3RoZXJ3aXNlLCB1c2UgRGVjZW1iZXIgMjAgb2YgdGhlIHByZXZpb3VzIHllYXIgYW5kIEphbnVhcnkgNyBvZiB0aGUgY3VycmVudCB5ZWFyXG4gICAgICBzdGFydERhdGUgPSBuZXcgRGF0ZShjdXJyZW50WWVhciAtIDEsIDExLCAyMCk7IC8vIERlY2VtYmVyIDIwIG9mIHByZXZpb3VzIHllYXJcbiAgICAgIGVuZERhdGUgPSBuZXcgRGF0ZShjdXJyZW50WWVhciwgMCwgMywgMjMsIDU5LCA1OSk7IC8vIEphbnVhcnkgNyBvZiBjdXJyZW50IHllYXJcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiB0b2RheSBpcyB3aXRoaW4gdGhlIHJhbmdlXG4gICAgdGhpcy5pc1htYXNDYXBWaXNpYmxlID0gdG9kYXkgPj0gc3RhcnREYXRlICYmIHRvZGF5IDw9IGVuZERhdGU7XG4gIH1cblxuICBjaGVja0NvbXBsaWFuY2VGbGFnKCk6IHZvaWQge1xuICAgIHRoaXMuYXBpU2VydmljZS5zdWJzY3JpcHRpb25EZXRhaWwkLnN1YnNjcmliZSgoc3Vic2NyaXB0aW9uRGF0YSkgPT4ge1xuICAgICAgaWYgKHN1YnNjcmlwdGlvbkRhdGEpIHtcbiAgICAgICAgdGhpcy5zaG93Q3JlYXRlV29ya2Zsb3cgPSBzdWJzY3JpcHRpb25EYXRhLmNvbXBsaWFuY2VfZmxhZyA9PT0gMTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPHZjLWdsb2JhbC1hbGVydCBbZmVhdHVyZV09XCJmZWF0dXJlRmxhZ1wiPjwvdmMtZ2xvYmFsLWFsZXJ0PlxuPGRpdlxuICBjbGFzcz1cImhlYWRlci1jb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtcHItM1wiXG4+XG4gIDxkaXYgaWQ9XCJzbm93ZmFsbFwiICpuZ0lmPVwiaXNYbWFzQ2FwVmlzaWJsZVwiIFtjbGFzcy5hbmltYXRlXT1cInNob3dBbmltYXRpb25cIj5cbiAgICA8ZGl2IGNsYXNzPVwic25vd1wiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzbm93MVwiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzbm93MlwiPjwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImhlYWRlci1jb250YWluZXItbGVmdCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XG4gICAgPGFcbiAgICAgIGNsYXNzPVwicHJvZHVjdC1sb2dvIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbXItM1wiXG4gICAgICBbaHJlZl09XCJkZWZhdWx0VVJMXCJcbiAgICA+XG4gICAgICA8aW1nXG4gICAgICAgICpuZ0lmPVwiaXNYbWFzQ2FwVmlzaWJsZVwiXG4gICAgICAgIGNsYXNzPVwieG1hcy1jYXBcIlxuICAgICAgICBbc3JjXT1cIkFTU0VUUy54bWFzX2NhcFwiXG4gICAgICAgIGFsdD1cIlNhbnRhIENhcFwiXG4gICAgICAgIHdpZHRoPVwiMjBcIlxuICAgICAgICBoZWlnaHQ9XCIyMFwiIC8+XG4gICAgICA8aW1nIFtzcmNdPVwiQVNTRVRTLnZfaWNvblwiIGFsdD1cIlZDb21wbHlcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIlxuICAgIC8+PC9hPlxuICAgIDx2Yy1idXNpbmVzcy1jeWNsZVxuICAgICAgKm5nSWY9XCJpc0J1c2luZXNzQ3ljbGVWaXNpYmxlXCJcbiAgICAgIChidXNpbmVzc0N5Y2xlQ2hhbmdlKT1cImJ1c2luZXNzQ3ljbGVDaGFuZ2VIYW5kbGVyKCRldmVudClcIlxuICAgID48L3ZjLWJ1c2luZXNzLWN5Y2xlPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInNlYXJjaC1hcmVhXCI+XG4gICAgPHZjLXNlYXJjaFxuICAgICAgKm5nSWY9XCJzaG93U2VhcmNoXCJcbiAgICAgIFtpc0FkdmFuY2VTZWFyY2hdPVwiaXNBZHZhbmNlU2VhcmNoXCJcbiAgICAgIChvblNlYXJjaEFjdGlvbik9XCJvblNlYXJjaEFjdGlvbi5lbWl0KCRldmVudClcIlxuICAgID48L3ZjLXNlYXJjaD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJ2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XG4gICAgPHZjLXN1cHBvcnQgKG9wZW5TdXBwb3J0KT1cIm9wZW5EaWFsb2cuZW1pdCgnU1VQUE9SVCcpXCI+PC92Yy1zdXBwb3J0PlxuICAgIDx2Yy1jcmVhdGUtd29ya2Zsb3dcbiAgICAgICpuZ0lmPVwiKGFwaVNlcnZpY2UubG9nZ2VkVXNlckRldGFpbCQgfCBhc3luYyB8IGNoZWNrUGVybWlzc2lvbikgJiYgc2hvd0NyZWF0ZVdvcmtmbG93XCJcbiAgICAgIChvcGVuV29ya2Zsb3cpPVwib3BlbkRpYWxvZy5lbWl0KCdXT1JLRkxPVycpXCJcbiAgICAgIFtpZnJhbWVMb2FkaW5nXT1cImlmcmFtZUxvYWRpbmdcIlxuICAgID48L3ZjLWNyZWF0ZS13b3JrZmxvdz5cbiAgICA8dmMtcXVldWU+PC92Yy1xdWV1ZT5cbiAgICA8dmMtdXNlci1kZXRhaWxzXG4gICAgICBbdXNlckRldGFpbHNdPVwiYXBpU2VydmljZS5sb2dnZWRVc2VyRGV0YWlsJCB8IGFzeW5jXCJcbiAgICAgIFtzdWJzY3JpcHRpb25EZXRhaWxzXT1cImFwaVNlcnZpY2Uuc3Vic2NyaXB0aW9uRGV0YWlsJCB8IGFzeW5jXCJcbiAgICA+PC92Yy11c2VyLWRldGFpbHM+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=