vc-create-dashboard 2.9.5 → 2.9.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/configurations.mjs +7 -0
- package/esm2022/lib/create-dashboard-container/categories/categories.component.mjs +210 -0
- package/esm2022/lib/create-dashboard-container/configure-widgets/configure-widgets/configure-widgets.component.mjs +549 -0
- package/{esm2020 → esm2022}/lib/create-dashboard-container/configure-widgets/configure-widgets.module.mjs +15 -15
- package/esm2022/lib/create-dashboard-container/create-dashboard.component.mjs +1080 -0
- package/{esm2020 → esm2022}/lib/create-dashboard-container/create-dashboard.module.mjs +49 -49
- package/{esm2020 → esm2022}/lib/create-dashboard-container/directives/directives.module.mjs +5 -5
- package/esm2022/lib/create-dashboard-container/directives/scroll-in-view.directive.mjs +36 -0
- package/esm2022/lib/create-dashboard-container/form-group/form-group.component.mjs +152 -0
- package/esm2022/lib/create-dashboard-container/frequency/frequency.component.mjs +309 -0
- package/{esm2020 → esm2022}/lib/create-dashboard-container/pipes/filter.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/create-dashboard-container/pipes/search.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/create-dashboard-container/pipes/text-count.pipe.mjs +4 -4
- package/esm2022/lib/create-dashboard-container/responsibility-center/responsibility-center.component.mjs +145 -0
- package/esm2022/lib/create-dashboard-container/risk-categories/risk-categories.component.mjs +195 -0
- package/esm2022/lib/create-dashboard-container/services/auth.service.mjs +31 -0
- package/esm2022/lib/create-dashboard-container/services/configure-widgets.service.mjs +227 -0
- package/esm2022/lib/create-dashboard-container/services/create-dashboard.service.mjs +126 -0
- package/esm2022/lib/create-dashboard-container/services/pagination.service.mjs +28 -0
- package/esm2022/lib/create-dashboard-container/user-list/user-list.component.mjs +421 -0
- package/{esm2020 → esm2022}/lib/create-dashboard.service.mjs +4 -4
- package/esm2022/lib/ui-kit/dashboard-footer/dashboard-footer/dashboard-footer.component.mjs +52 -0
- package/{esm2020 → esm2022}/lib/ui-kit/dashboard-footer/dashboard-footer.module.mjs +9 -9
- package/esm2022/lib/ui-kit/dialog/dialog-config.mjs +7 -0
- package/{esm2020 → esm2022}/lib/ui-kit/dialog/dialog-injector.mjs +4 -2
- package/esm2022/lib/ui-kit/dialog/dialog-ref.mjs +11 -0
- package/esm2022/lib/ui-kit/dialog/dialog.component.mjs +96 -0
- package/{esm2020 → esm2022}/lib/ui-kit/dialog/dialog.module.mjs +5 -5
- package/esm2022/lib/ui-kit/dialog/dialog.service.mjs +56 -0
- package/esm2022/lib/ui-kit/dialog/insertion.directive.mjs +17 -0
- package/esm2022/lib/ui-kit/floating-bar/floating-bar.component.mjs +57 -0
- package/{esm2020 → esm2022}/lib/ui-kit/floating-bar/floating-bar.module.mjs +9 -9
- package/esm2022/lib/ui-kit/formgroup/click-outside.directive.mjs +30 -0
- package/esm2022/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.mjs +29 -0
- package/esm2022/lib/ui-kit/formgroup/cs-radio/cs-radio.component.mjs +34 -0
- package/{esm2020 → esm2022}/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.mjs +4 -4
- package/esm2022/lib/ui-kit/formgroup/cs-select/cs-select.component.mjs +119 -0
- package/esm2022/lib/ui-kit/formgroup/cs-switch/cs-switch.component.mjs +39 -0
- package/{esm2020 → esm2022}/lib/ui-kit/formgroup/formgroup.module.mjs +17 -17
- package/{esm2020 → esm2022}/lib/ui-kit/formgroup/pipes/pascal.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.mjs +4 -4
- package/esm2022/lib/ui-kit/no-data/no-data.component.mjs +47 -0
- package/{esm2020 → esm2022}/lib/ui-kit/no-data/no-data.module.mjs +5 -5
- package/esm2022/lib/ui-kit/pagination/pagination.component.mjs +130 -0
- package/{esm2020 → esm2022}/lib/ui-kit/pagination/pagination.module.mjs +5 -5
- package/esm2022/lib/ui-kit/popover/popover.component.mjs +142 -0
- package/esm2022/lib/ui-kit/popover/popover.directive.mjs +93 -0
- package/{esm2020 → esm2022}/lib/ui-kit/popover/popover.module.mjs +5 -5
- package/esm2022/lib/ui-kit/popover/popover.service.mjs +23 -0
- package/esm2022/lib/ui-kit/select/cs-option/cs-option.component.mjs +41 -0
- package/esm2022/lib/ui-kit/select/cs-select/cs-select.component.mjs +105 -0
- package/esm2022/lib/ui-kit/select/safe-html.pipe.mjs +21 -0
- package/{esm2020 → esm2022}/lib/ui-kit/select/select.module.mjs +5 -5
- package/esm2022/lib/ui-kit/services/cs-select.service.mjs +16 -0
- package/{esm2020 → esm2022}/lib/ui-kit/smiley-dialog/smiley-dialog.component.mjs +10 -8
- package/{esm2020 → esm2022}/lib/ui-kit/smiley-dialog/smiley-dialog.module.mjs +5 -5
- package/esm2022/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.mjs +46 -0
- package/{esm2020 → esm2022}/lib/ui-kit/snack-bar/snack-bar.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/ui-kit/snack-bar/snack-bar.service.mjs +6 -7
- package/esm2022/lib/ui-kit/tooltip/tooltip.directive.mjs +161 -0
- package/{esm2020 → esm2022}/lib/ui-kit/tooltip/tooltip.module.mjs +5 -5
- package/esm2022/lib/ui-kit/v-loader/loader/loader.component.mjs +23 -0
- package/esm2022/lib/ui-kit/v-loader/loader-inline/loader-inline.component.mjs +23 -0
- package/{esm2020 → esm2022}/lib/ui-kit/v-loader/v-loader.module.mjs +5 -5
- package/esm2022/vc-create-dashboard.mjs +5 -0
- package/fesm2022/vc-create-dashboard.mjs +5338 -0
- package/fesm2022/vc-create-dashboard.mjs.map +1 -0
- package/index.d.ts +1 -1
- package/lib/create-dashboard-container/categories/categories.component.d.ts +1 -1
- package/lib/create-dashboard-container/configure-widgets/configure-widgets/configure-widgets.component.d.ts +1 -1
- package/lib/create-dashboard-container/create-dashboard.component.d.ts +1 -1
- package/lib/create-dashboard-container/directives/scroll-in-view.directive.d.ts +1 -1
- package/lib/create-dashboard-container/form-group/form-group.component.d.ts +1 -1
- package/lib/create-dashboard-container/frequency/frequency.component.d.ts +1 -1
- package/lib/create-dashboard-container/responsibility-center/responsibility-center.component.d.ts +1 -1
- package/lib/create-dashboard-container/risk-categories/risk-categories.component.d.ts +1 -1
- package/lib/create-dashboard-container/user-list/user-list.component.d.ts +1 -1
- package/lib/ui-kit/dashboard-footer/dashboard-footer/dashboard-footer.component.d.ts +1 -1
- package/lib/ui-kit/dialog/dialog-injector.d.ts +2 -2
- package/lib/ui-kit/dialog/dialog.component.d.ts +1 -1
- package/lib/ui-kit/dialog/insertion.directive.d.ts +1 -1
- package/lib/ui-kit/floating-bar/floating-bar.component.d.ts +1 -1
- package/lib/ui-kit/formgroup/click-outside.directive.d.ts +1 -1
- package/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.d.ts +1 -1
- package/lib/ui-kit/formgroup/cs-radio/cs-radio.component.d.ts +1 -1
- package/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.d.ts +1 -1
- package/lib/ui-kit/formgroup/cs-select/cs-select.component.d.ts +1 -1
- package/lib/ui-kit/formgroup/cs-switch/cs-switch.component.d.ts +1 -1
- package/lib/ui-kit/no-data/no-data.component.d.ts +1 -1
- package/lib/ui-kit/pagination/pagination.component.d.ts +1 -1
- package/lib/ui-kit/popover/popover.component.d.ts +1 -1
- package/lib/ui-kit/popover/popover.directive.d.ts +1 -1
- package/lib/ui-kit/select/cs-option/cs-option.component.d.ts +1 -1
- package/lib/ui-kit/select/cs-select/cs-select.component.d.ts +1 -1
- package/lib/ui-kit/smiley-dialog/smiley-dialog.component.d.ts +1 -1
- package/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.d.ts +1 -1
- package/lib/ui-kit/tooltip/tooltip.directive.d.ts +1 -1
- package/lib/ui-kit/v-loader/loader/loader.component.d.ts +1 -1
- package/lib/ui-kit/v-loader/loader-inline/loader-inline.component.d.ts +1 -1
- package/package.json +6 -12
- package/esm2020/create-dashboard.mjs +0 -5
- package/esm2020/lib/configurations.mjs +0 -6
- package/esm2020/lib/create-dashboard-container/categories/categories.component.mjs +0 -209
- package/esm2020/lib/create-dashboard-container/configure-widgets/configure-widgets/configure-widgets.component.mjs +0 -545
- package/esm2020/lib/create-dashboard-container/create-dashboard.component.mjs +0 -1067
- package/esm2020/lib/create-dashboard-container/directives/scroll-in-view.directive.mjs +0 -35
- package/esm2020/lib/create-dashboard-container/form-group/form-group.component.mjs +0 -141
- package/esm2020/lib/create-dashboard-container/frequency/frequency.component.mjs +0 -305
- package/esm2020/lib/create-dashboard-container/responsibility-center/responsibility-center.component.mjs +0 -146
- package/esm2020/lib/create-dashboard-container/risk-categories/risk-categories.component.mjs +0 -194
- package/esm2020/lib/create-dashboard-container/services/auth.service.mjs +0 -29
- package/esm2020/lib/create-dashboard-container/services/configure-widgets.service.mjs +0 -224
- package/esm2020/lib/create-dashboard-container/services/create-dashboard.service.mjs +0 -123
- package/esm2020/lib/create-dashboard-container/services/pagination.service.mjs +0 -29
- package/esm2020/lib/create-dashboard-container/user-list/user-list.component.mjs +0 -414
- package/esm2020/lib/ui-kit/dashboard-footer/dashboard-footer/dashboard-footer.component.mjs +0 -53
- package/esm2020/lib/ui-kit/dialog/dialog-config.mjs +0 -3
- package/esm2020/lib/ui-kit/dialog/dialog-ref.mjs +0 -12
- package/esm2020/lib/ui-kit/dialog/dialog.component.mjs +0 -85
- package/esm2020/lib/ui-kit/dialog/dialog.service.mjs +0 -52
- package/esm2020/lib/ui-kit/dialog/insertion.directive.mjs +0 -16
- package/esm2020/lib/ui-kit/floating-bar/floating-bar.component.mjs +0 -52
- package/esm2020/lib/ui-kit/formgroup/click-outside.directive.mjs +0 -29
- package/esm2020/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.mjs +0 -27
- package/esm2020/lib/ui-kit/formgroup/cs-radio/cs-radio.component.mjs +0 -30
- package/esm2020/lib/ui-kit/formgroup/cs-select/cs-select.component.mjs +0 -100
- package/esm2020/lib/ui-kit/formgroup/cs-switch/cs-switch.component.mjs +0 -35
- package/esm2020/lib/ui-kit/no-data/no-data.component.mjs +0 -40
- package/esm2020/lib/ui-kit/pagination/pagination.component.mjs +0 -127
- package/esm2020/lib/ui-kit/popover/popover.component.mjs +0 -133
- package/esm2020/lib/ui-kit/popover/popover.directive.mjs +0 -86
- package/esm2020/lib/ui-kit/popover/popover.service.mjs +0 -17
- package/esm2020/lib/ui-kit/select/cs-option/cs-option.component.mjs +0 -36
- package/esm2020/lib/ui-kit/select/cs-select/cs-select.component.mjs +0 -89
- package/esm2020/lib/ui-kit/select/safe-html.pipe.mjs +0 -20
- package/esm2020/lib/ui-kit/services/cs-select.service.mjs +0 -15
- package/esm2020/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.mjs +0 -45
- package/esm2020/lib/ui-kit/tooltip/tooltip.directive.mjs +0 -153
- package/esm2020/lib/ui-kit/v-loader/loader/loader.component.mjs +0 -21
- package/esm2020/lib/ui-kit/v-loader/loader-inline/loader-inline.component.mjs +0 -21
- package/fesm2015/create-dashboard.mjs +0 -5195
- package/fesm2015/create-dashboard.mjs.map +0 -1
- package/fesm2020/create-dashboard.mjs +0 -5162
- package/fesm2020/create-dashboard.mjs.map +0 -1
- /package/{esm2020 → esm2022}/lib/create-dashboard-container/categories/categories-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/create-dashboard-container/configure-widgets/configure-widgets/widget.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/create-dashboard-container/create-dashboard-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/create-dashboard-container/interfaces/widget-data-model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/create-dashboard-container/risk-categories/risk-categories-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/create-dashboard-container/user-list/user-list.config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/ui-kit/dashboard-footer/dashboard-footer-config.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
|
@@ -1,305 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "../../ui-kit/snack-bar/snack-bar.service";
|
|
4
|
-
import * as i2 from "@angular/common";
|
|
5
|
-
import * as i3 from "../../ui-kit/formgroup/cs-checkbox/cs-checkbox.component";
|
|
6
|
-
import * as i4 from "../../ui-kit/formgroup/cs-radio/cs-radio.component";
|
|
7
|
-
import * as i5 from "@angular/forms";
|
|
8
|
-
import * as i6 from "../../ui-kit/dashboard-footer/dashboard-footer/dashboard-footer.component";
|
|
9
|
-
export class FrequencyComponent {
|
|
10
|
-
constructor(snackBar) {
|
|
11
|
-
this.snackBar = snackBar;
|
|
12
|
-
this.animation = true;
|
|
13
|
-
this.monthlyDate = 1;
|
|
14
|
-
this.quarterlyDate = 1;
|
|
15
|
-
this.frequencyTab = 'weekly';
|
|
16
|
-
this.showFrequency = true;
|
|
17
|
-
this.dayNames = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];
|
|
18
|
-
this.monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
|
|
19
|
-
this.quarters = ['January, April, July, October', 'February, May, August, November', 'March, June, September, December'];
|
|
20
|
-
this.selectedDays = [0];
|
|
21
|
-
this.selectedMonths = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
|
|
22
|
-
this.selectedQuarter = 0;
|
|
23
|
-
this.closeFrequencyPopup = new EventEmitter();
|
|
24
|
-
this.saveFrequency = new EventEmitter();
|
|
25
|
-
this.footerDetails = {
|
|
26
|
-
selectedData: [],
|
|
27
|
-
nonRemovableList: [],
|
|
28
|
-
displayElementKey: '',
|
|
29
|
-
elementId: '',
|
|
30
|
-
singularText: '',
|
|
31
|
-
pluralText: '',
|
|
32
|
-
showFrequency: true,
|
|
33
|
-
frequencyText: 'You have selected a <strong>' + this.frequencyTab + '</strong> frequency.',
|
|
34
|
-
isDisabled: false
|
|
35
|
-
};
|
|
36
|
-
this.showRadio = true;
|
|
37
|
-
}
|
|
38
|
-
ngOnChanges() {
|
|
39
|
-
this.savedFrequencies = [...new Set(this.savedFrequencies)];
|
|
40
|
-
}
|
|
41
|
-
ngOnInit() {
|
|
42
|
-
this.animation = true;
|
|
43
|
-
setTimeout(() => {
|
|
44
|
-
this.animation = false;
|
|
45
|
-
}, 300);
|
|
46
|
-
if (this.savedFrequencyTab) {
|
|
47
|
-
this.changeTab(this.savedFrequencyTab);
|
|
48
|
-
}
|
|
49
|
-
if (this.selectedDate) {
|
|
50
|
-
switch (this.savedFrequencyTab) {
|
|
51
|
-
case 'weekly':
|
|
52
|
-
this.selectedDays = [...new Set(this.savedFrequencies)];
|
|
53
|
-
break;
|
|
54
|
-
case 'monthly':
|
|
55
|
-
this.monthlyDate = this.selectedDate;
|
|
56
|
-
this.selectedMonths = [...new Set(this.savedFrequencies)];
|
|
57
|
-
break;
|
|
58
|
-
case 'quarterly':
|
|
59
|
-
this.showRadio = false;
|
|
60
|
-
setTimeout(() => {
|
|
61
|
-
this.showRadio = true;
|
|
62
|
-
}, 100);
|
|
63
|
-
this.quarterlyDate = this.selectedDate;
|
|
64
|
-
this.selectedQuarter = this.savedFrequencies;
|
|
65
|
-
break;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
closeFrequency() {
|
|
70
|
-
this.closeFrequencyPopup.emit();
|
|
71
|
-
}
|
|
72
|
-
daySelectionChange(event, index) {
|
|
73
|
-
if (event) { //checkbox was selected
|
|
74
|
-
this.selectedDays.push(index);
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
let unselectedElementIndex = this.selectedDays.indexOf(index);
|
|
78
|
-
this.selectedDays.splice(unselectedElementIndex, 1);
|
|
79
|
-
}
|
|
80
|
-
this.checkFrequencyValidity();
|
|
81
|
-
}
|
|
82
|
-
monthSelectionChange(event, index) {
|
|
83
|
-
if (event) {
|
|
84
|
-
this.selectedMonths.push(index);
|
|
85
|
-
}
|
|
86
|
-
else {
|
|
87
|
-
let unselectedElementIndex = this.selectedMonths.indexOf(index);
|
|
88
|
-
this.selectedMonths.splice(unselectedElementIndex, 1);
|
|
89
|
-
}
|
|
90
|
-
this.checkDateValidity(this.monthlyDate, 'monthly');
|
|
91
|
-
this.checkFrequencyValidity();
|
|
92
|
-
}
|
|
93
|
-
quarterSelectionChange(event, index) {
|
|
94
|
-
this.selectedQuarter = index;
|
|
95
|
-
this.checkDateValidity(this.quarterlyDate, 'quarterly');
|
|
96
|
-
this.checkFrequencyValidity();
|
|
97
|
-
}
|
|
98
|
-
changeTab(tabValue) {
|
|
99
|
-
this.frequencyTab = tabValue;
|
|
100
|
-
this.footerDetails.frequencyText = 'You have selected a <strong>' + this.frequencyTab + '</strong> frequency.';
|
|
101
|
-
this.footerDetails.isDisabled = false;
|
|
102
|
-
this.setToDefaultValues();
|
|
103
|
-
if (this.frequencyTab === this.savedFrequencyTab) {
|
|
104
|
-
switch (this.frequencyTab) {
|
|
105
|
-
case 'weekly': {
|
|
106
|
-
this.selectedDays = [...this.savedFrequencies];
|
|
107
|
-
this.monthlyDate = 1;
|
|
108
|
-
this.quarterlyDate = 1;
|
|
109
|
-
break;
|
|
110
|
-
}
|
|
111
|
-
case 'monthly': {
|
|
112
|
-
this.selectedMonths = [...this.savedFrequencies];
|
|
113
|
-
this.monthlyDate = this.selectedDate;
|
|
114
|
-
this.quarterlyDate = 1;
|
|
115
|
-
this.checkDateValidity(this.monthlyDate, 'monthly');
|
|
116
|
-
break;
|
|
117
|
-
}
|
|
118
|
-
case 'quarterly': {
|
|
119
|
-
this.selectedQuarter = this.savedFrequencies;
|
|
120
|
-
this.quarterlyDate = this.selectedDate;
|
|
121
|
-
this.monthlyDate = 1;
|
|
122
|
-
this.checkDateValidity(this.quarterlyDate, 'quarterly');
|
|
123
|
-
break;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
setToDefaultValues() {
|
|
129
|
-
this.selectedDays = [0];
|
|
130
|
-
this.selectedMonths = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
|
|
131
|
-
this.selectedQuarter = 0;
|
|
132
|
-
}
|
|
133
|
-
submitFrequency() {
|
|
134
|
-
let stringVal = "Every ";
|
|
135
|
-
let frequencies;
|
|
136
|
-
let selectedDate = 1;
|
|
137
|
-
switch (this.frequencyTab) {
|
|
138
|
-
case 'weekly': {
|
|
139
|
-
if (this.selectedDays.length > 0) {
|
|
140
|
-
this.selectedDays.sort();
|
|
141
|
-
frequencies = this.selectedDays;
|
|
142
|
-
this.selectedDays.forEach((dayIndex, index) => {
|
|
143
|
-
stringVal += index === 0 ? this.dayNames[dayIndex] : ', ' + this.dayNames[dayIndex];
|
|
144
|
-
});
|
|
145
|
-
}
|
|
146
|
-
else {
|
|
147
|
-
// nothing was selected
|
|
148
|
-
this.closeFrequency();
|
|
149
|
-
}
|
|
150
|
-
break;
|
|
151
|
-
}
|
|
152
|
-
case 'monthly': {
|
|
153
|
-
stringVal = " of every ";
|
|
154
|
-
if (this.selectedMonths.length > 0) {
|
|
155
|
-
frequencies = this.selectedMonths;
|
|
156
|
-
this.monthNames.forEach((monthNames, monthIndex) => {
|
|
157
|
-
if (this.selectedMonths.includes(monthIndex)) {
|
|
158
|
-
stringVal += monthIndex === 0 ? monthNames : ', ' + monthNames;
|
|
159
|
-
}
|
|
160
|
-
});
|
|
161
|
-
let monthDateName;
|
|
162
|
-
if (this.monthlyDate == 1) {
|
|
163
|
-
monthDateName = '1st';
|
|
164
|
-
}
|
|
165
|
-
else if (this.monthlyDate == 2) {
|
|
166
|
-
monthDateName = '2nd';
|
|
167
|
-
}
|
|
168
|
-
else if (this.monthlyDate == 3) {
|
|
169
|
-
monthDateName = '3rd';
|
|
170
|
-
}
|
|
171
|
-
else {
|
|
172
|
-
monthDateName = this.monthlyDate + 'th';
|
|
173
|
-
}
|
|
174
|
-
stringVal = monthDateName + stringVal;
|
|
175
|
-
selectedDate = this.monthlyDate;
|
|
176
|
-
}
|
|
177
|
-
else {
|
|
178
|
-
// nothing was selected
|
|
179
|
-
this.closeFrequency();
|
|
180
|
-
}
|
|
181
|
-
break;
|
|
182
|
-
}
|
|
183
|
-
case 'quarterly': {
|
|
184
|
-
stringVal = " of every ";
|
|
185
|
-
if (this.selectedQuarter >= 0) {
|
|
186
|
-
frequencies = this.selectedQuarter;
|
|
187
|
-
stringVal += this.quarters[this.selectedQuarter];
|
|
188
|
-
selectedDate = this.quarterlyDate;
|
|
189
|
-
let monthDateName;
|
|
190
|
-
if (this.quarterlyDate == 1) {
|
|
191
|
-
monthDateName = '1st';
|
|
192
|
-
}
|
|
193
|
-
else if (this.quarterlyDate == 2) {
|
|
194
|
-
monthDateName = '2nd';
|
|
195
|
-
}
|
|
196
|
-
else if (this.quarterlyDate == 3) {
|
|
197
|
-
monthDateName = '3rd';
|
|
198
|
-
}
|
|
199
|
-
else {
|
|
200
|
-
monthDateName = this.quarterlyDate + 'th';
|
|
201
|
-
}
|
|
202
|
-
stringVal = monthDateName + stringVal;
|
|
203
|
-
selectedDate = this.quarterlyDate;
|
|
204
|
-
}
|
|
205
|
-
else {
|
|
206
|
-
// nothing was selected
|
|
207
|
-
this.closeFrequency();
|
|
208
|
-
}
|
|
209
|
-
break;
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
this.saveFrequency.emit({
|
|
213
|
-
frequencyString: stringVal,
|
|
214
|
-
frequencyType: this.frequencyTab,
|
|
215
|
-
frequencies: frequencies,
|
|
216
|
-
selectedDate
|
|
217
|
-
});
|
|
218
|
-
}
|
|
219
|
-
checkDateValidity(date, type) {
|
|
220
|
-
if (date > 31 || date < 1) {
|
|
221
|
-
this.snackBar.show('Select valid date.', 'alert');
|
|
222
|
-
this.footerDetails.isDisabled = true;
|
|
223
|
-
return;
|
|
224
|
-
}
|
|
225
|
-
else {
|
|
226
|
-
this.footerDetails.isDisabled = false;
|
|
227
|
-
}
|
|
228
|
-
const monthList = [{ name: 'January', maxDays: 31, value: 0 }, { name: 'February', maxDays: 28, value: 1 }, { name: 'March', maxDays: 31, value: 2 },
|
|
229
|
-
{ name: 'April', maxDays: 30, value: 3 }, { name: 'May', maxDays: 31, value: 4 }, { name: 'June', maxDays: 30, value: 5 },
|
|
230
|
-
{ name: 'July', maxDays: 31, value: 6 }, { name: 'August', maxDays: 31, value: 7 }, { name: 'September', maxDays: 30, value: 8 },
|
|
231
|
-
{ name: 'October', maxDays: 31, value: 9 }, { name: 'November', maxDays: 30, value: 10 }, { name: 'December', maxDays: 31, value: 11 }];
|
|
232
|
-
switch (type) {
|
|
233
|
-
case 'monthly':
|
|
234
|
-
if (this.selectedMonths.length == 1) {
|
|
235
|
-
const index = monthList.findIndex((ele) => ele.value == this.selectedMonths[0]);
|
|
236
|
-
if (date <= monthList[index].maxDays) {
|
|
237
|
-
this.footerDetails.isDisabled = false;
|
|
238
|
-
}
|
|
239
|
-
else {
|
|
240
|
-
this.snackBar.show('Select valid date.', 'alert');
|
|
241
|
-
this.footerDetails.isDisabled = true;
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
else if (this.selectedMonths.length == 0) {
|
|
245
|
-
this.footerDetails.isDisabled = true;
|
|
246
|
-
}
|
|
247
|
-
else {
|
|
248
|
-
this.footerDetails.isDisabled = false;
|
|
249
|
-
}
|
|
250
|
-
break;
|
|
251
|
-
default:
|
|
252
|
-
this.footerDetails.isDisabled = false;
|
|
253
|
-
return true;
|
|
254
|
-
break;
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
checkFrequencyValidity() {
|
|
258
|
-
switch (this.frequencyTab) {
|
|
259
|
-
case 'weekly': {
|
|
260
|
-
if (this.selectedDays.length > 0) {
|
|
261
|
-
this.footerDetails.isDisabled = false;
|
|
262
|
-
}
|
|
263
|
-
else {
|
|
264
|
-
this.footerDetails.isDisabled = true;
|
|
265
|
-
}
|
|
266
|
-
break;
|
|
267
|
-
}
|
|
268
|
-
case 'monthly': {
|
|
269
|
-
if (this.selectedMonths.length > 0) {
|
|
270
|
-
this.footerDetails.isDisabled = false;
|
|
271
|
-
}
|
|
272
|
-
else {
|
|
273
|
-
this.footerDetails.isDisabled = true;
|
|
274
|
-
}
|
|
275
|
-
break;
|
|
276
|
-
}
|
|
277
|
-
case 'quarterly': {
|
|
278
|
-
if (this.selectedQuarter >= 0) {
|
|
279
|
-
this.footerDetails.isDisabled = false;
|
|
280
|
-
}
|
|
281
|
-
else {
|
|
282
|
-
this.footerDetails.isDisabled = true;
|
|
283
|
-
}
|
|
284
|
-
break;
|
|
285
|
-
}
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
FrequencyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FrequencyComponent, deps: [{ token: i1.SnackBarService }], target: i0.ɵɵFactoryTarget.Component });
|
|
290
|
-
FrequencyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: FrequencyComponent, selector: "app-frequency", inputs: { savedFrequencyTab: "savedFrequencyTab", savedFrequencies: "savedFrequencies", selectedDate: "selectedDate" }, outputs: { closeFrequencyPopup: "closeFrequencyPopup", saveFrequency: "saveFrequency" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"create-frequency\" [class.animate-slideInRight]=\"animation\">\r\n <div class=\"create-frequency-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4 vx-mb-4\">\r\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select a Frequency</div>\r\n </div>\r\n <div class=\"create-frequency-body vx-pl-4 vx-pr-4\">\r\n <div class=\"create-frequency-body-inner\">\r\n <div class=\"create-frequency-tab\" [ngSwitch]=\"frequencyTab\">\r\n <div class=\"create-frequency-tab-head\">\r\n <ul class=\"navigation\">\r\n <li><button [class.active]=\"frequencyTab == 'weekly'\" (click)=\"changeTab('weekly')\">Weekly</button></li>\r\n <li><button [class.active]=\"frequencyTab == 'monthly'\" (click)=\"changeTab('monthly')\">Monthly</button></li>\r\n <li><button [class.active]=\"frequencyTab == 'quarterly'\" (click)=\"changeTab('quarterly')\">Quarterly</button></li>\r\n </ul>\r\n </div>\r\n <div class=\"create-frequency-tab-body vx-pl-4 vx-pr-4\">\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">Email Reminder Frequency:</div>\r\n <div class=\"checkbox-list\" *ngSwitchCase=\"'weekly'\">\r\n <div class=\"frequency-checkbox vx-d-flex vx-align-center\">\r\n <div class=\"frequency-checkbox-item vx-p-3 vx-pr-4 vx-d-flex vx-align-center\" *ngFor=\"let day of dayNames; let dayIndex = index\">\r\n <app-cs-checkbox (ngValueChange)=\"daySelectionChange($event, dayIndex)\" [ngValue]=\"selectedDays.includes(dayIndex)\">{{day}}</app-cs-checkbox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"checkbox-list month\" *ngSwitchCase=\"'monthly'\">\r\n <div class=\"frequency-top vx-d-flex vx-align-center\">\r\n <div class=\"vx-fs-13 vx-paragraph-txt\">Day</div>\r\n <input type=\"number\" (focusout)=\"checkDateValidity(monthlyDate,'monthly')\" [(ngModel)]=\"monthlyDate\" class=\"countNum\" onkeydown=\"return event.keyCode !== 190\" min=\"1\" oninput=\"this.value = Math.abs(this.value)\">\r\n <div class=\"vx-fs-13 vx-paragraph-txt\">of</div>\r\n </div>\r\n <div class=\"frequency-checkbox vx-d-flex vx-align-center vx-flex-wrap\">\r\n <div class=\"frequency-checkbox-item vx-p-3 vx-pr-4 vx-d-flex vx-align-center\" *ngFor=\"let month of monthNames; let monthIndex = index\">\r\n <app-cs-checkbox (ngValueChange)=\"monthSelectionChange($event, monthIndex)\" [ngValue]=\"selectedMonths.includes(monthIndex)\">{{month}}</app-cs-checkbox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"checkbox-list\" *ngSwitchCase=\"'quarterly'\">\r\n <ng-container *ngIf=\"showRadio\">\r\n <div class=\"frequency-top vx-d-flex vx-align-center\">\r\n <div class=\"vx-fs-13 vx-paragraph-txt\">Day</div>\r\n <input type=\"number\" (focusout)=\"checkDateValidity(quarterlyDate,'quarterly')\" [(ngModel)]=\"quarterlyDate\" class=\"countNum\" onkeydown=\"return event.keyCode !== 190\" min=\"1\" oninput=\"this.value = Math.abs(this.value)\">\r\n <div class=\"vx-fs-13 vx-paragraph-txt\">of</div>\r\n </div>\r\n <div class=\"frequency-checkbox vx-d-flex vx-align-center\">\r\n <div class=\"frequency-checkbox-item vx-p-3 vx-pr-4 vx-d-flex vx-align-center vx-w-100\" *ngFor=\"let quarter of quarters, let quarterIndex = index\">\r\n <app-cs-radio (checkedEvent)=\"quarterSelectionChange($event, quarterIndex)\" [checked]=\"selectedQuarter === quarterIndex\">{{quarter}}</app-cs-radio>\r\n </div>\r\n </div>\r\n </ng-container> \r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"create-frequency-footer\">\r\n <app-dashboard-footer \r\n [footerDetails]=\"footerDetails\"\r\n (cancelEvent)=\"closeFrequencyPopup.emit()\"\r\n (submitEvent)=\"submitFrequency()\"\r\n ></app-dashboard-footer>\r\n </div>\r\n</div>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .create-frequency{background:#FFFFFF;border-right:1px solid #F1F1F1;position:fixed;inset:0 500px 0 0}::ng-deep .create-frequency-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .create-frequency-body{height:calc(100vh - 9.75rem);margin:0 auto 1rem;overflow:hidden;overflow-y:auto;width:calc(100% - 2.5rem)}::ng-deep .create-frequency-body::-webkit-scrollbar-track{background:transparent}::ng-deep .create-frequency-body-inner{width:54.5rem;margin:0 auto}@media screen and (min-width: 1366px){::ng-deep .create-frequency-body-inner{width:auto}}::ng-deep .create-frequency-tab-head{border:none!important;border-bottom:1px solid #f1f1f1!important;margin-bottom:1.5rem}::ng-deep .create-frequency-tab-head ul{padding:0;margin:0}::ng-deep .create-frequency-tab-head ul.navigation{display:flex}::ng-deep .create-frequency-tab-head ul.navigation li{list-style:none;padding:0;margin:0 1.5rem 0 0;display:flex;justify-content:center}::ng-deep .create-frequency-tab-head ul.navigation li button{background:transparent;border-radius:0;border:none;border-bottom:.125rem solid transparent;font-size:11px;font-weight:500;color:#747576;line-height:1.5rem;position:relative;text-transform:uppercase;cursor:pointer;padding:0}::ng-deep .create-frequency-tab-head ul.navigation li button.active{color:#1e5dd3;border-color:#1e5dd3}::ng-deep .create-frequency-tab-body .checkbox-list{border-radius:.25rem;border:1px solid #f1f1f1}::ng-deep .create-frequency-tab-body .checkbox-list .frequency-top{padding:12px;border-bottom:1px solid #F1F1F1}::ng-deep .create-frequency-tab-body .checkbox-list .frequency-top input.countNum{-webkit-appearance:textfield;-moz-appearance:textfield;border:none;border-bottom:1px solid #DBDBDB;color:#161b2f;display:inline-block;font-size:13px;text-align:center;width:2.75rem;padding:.125rem;margin:0 .5rem;outline:none}::ng-deep .create-frequency-tab-body .checkbox-list .frequency-checkbox{background:#fff;border-radius:.25rem}::ng-deep .create-frequency-tab-body .checkbox-list .frequency-checkbox-item{border-right:1px solid #f1f1f1;height:2.75rem}@media screen and (max-width: 1280px){::ng-deep .create-frequency-tab-body .checkbox-list .frequency-checkbox-item{padding:0 .5rem!important}}::ng-deep .create-frequency-tab-body .checkbox-list .frequency-checkbox-item:last-of-type{border-right:none}::ng-deep .create-frequency-tab-body .checkbox-list app-cs-checkbox,::ng-deep .create-frequency-tab-body .checkbox-list app-cs-radio{display:flex}::ng-deep .create-frequency-tab-body .checkbox-list app-cs-checkbox label span.value,::ng-deep .create-frequency-tab-body .checkbox-list app-cs-radio label span.value{font-size:12px!important;color:#161b2f!important;font-weight:400!important}::ng-deep .create-frequency-tab-body .checkbox-list.month .frequency-checkbox-item{width:calc(100% / 6)}::ng-deep .create-frequency-tab-body .checkbox-list.month .frequency-checkbox-item:first-of-type,::ng-deep .create-frequency-tab-body .checkbox-list.month .frequency-checkbox-item:nth-child(2),::ng-deep .create-frequency-tab-body .checkbox-list.month .frequency-checkbox-item:nth-child(3),::ng-deep .create-frequency-tab-body .checkbox-list.month .frequency-checkbox-item:nth-child(4),::ng-deep .create-frequency-tab-body .checkbox-list.month .frequency-checkbox-item:nth-child(5),::ng-deep .create-frequency-tab-body .checkbox-list.month .frequency-checkbox-item:nth-child(6){border-bottom:1px solid #f1f1f1}::ng-deep .create-frequency-tab-body .checkbox-list.month .frequency-checkbox-item:nth-child(6){border-right:none}::ng-deep .create-frequency-footer{padding:0 2rem}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i3.CsCheckboxComponent, selector: "app-cs-checkbox", inputs: ["disabled", "ngValue", "value"], outputs: ["ngValueChange"] }, { kind: "component", type: i4.CsRadioComponent, selector: "app-cs-radio", inputs: ["disabled", "readonly", "name", "checked", "value"], outputs: ["checkedEvent"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.DashboardFooterComponent, selector: "app-dashboard-footer", inputs: ["footerDetails", "userButtonColor"], outputs: ["cancelEvent", "submitEvent", "deleteEvent"] }] });
|
|
291
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FrequencyComponent, decorators: [{
|
|
292
|
-
type: Component,
|
|
293
|
-
args: [{ selector: 'app-frequency', template: "<div class=\"create-frequency\" [class.animate-slideInRight]=\"animation\">\r\n <div class=\"create-frequency-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4 vx-mb-4\">\r\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select a Frequency</div>\r\n </div>\r\n <div class=\"create-frequency-body vx-pl-4 vx-pr-4\">\r\n <div class=\"create-frequency-body-inner\">\r\n <div class=\"create-frequency-tab\" [ngSwitch]=\"frequencyTab\">\r\n <div class=\"create-frequency-tab-head\">\r\n <ul class=\"navigation\">\r\n <li><button [class.active]=\"frequencyTab == 'weekly'\" (click)=\"changeTab('weekly')\">Weekly</button></li>\r\n <li><button [class.active]=\"frequencyTab == 'monthly'\" (click)=\"changeTab('monthly')\">Monthly</button></li>\r\n <li><button [class.active]=\"frequencyTab == 'quarterly'\" (click)=\"changeTab('quarterly')\">Quarterly</button></li>\r\n </ul>\r\n </div>\r\n <div class=\"create-frequency-tab-body vx-pl-4 vx-pr-4\">\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">Email Reminder Frequency:</div>\r\n <div class=\"checkbox-list\" *ngSwitchCase=\"'weekly'\">\r\n <div class=\"frequency-checkbox vx-d-flex vx-align-center\">\r\n <div class=\"frequency-checkbox-item vx-p-3 vx-pr-4 vx-d-flex vx-align-center\" *ngFor=\"let day of dayNames; let dayIndex = index\">\r\n <app-cs-checkbox (ngValueChange)=\"daySelectionChange($event, dayIndex)\" [ngValue]=\"selectedDays.includes(dayIndex)\">{{day}}</app-cs-checkbox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"checkbox-list month\" *ngSwitchCase=\"'monthly'\">\r\n <div class=\"frequency-top vx-d-flex vx-align-center\">\r\n <div class=\"vx-fs-13 vx-paragraph-txt\">Day</div>\r\n <input type=\"number\" (focusout)=\"checkDateValidity(monthlyDate,'monthly')\" [(ngModel)]=\"monthlyDate\" class=\"countNum\" onkeydown=\"return event.keyCode !== 190\" min=\"1\" oninput=\"this.value = Math.abs(this.value)\">\r\n <div class=\"vx-fs-13 vx-paragraph-txt\">of</div>\r\n </div>\r\n <div class=\"frequency-checkbox vx-d-flex vx-align-center vx-flex-wrap\">\r\n <div class=\"frequency-checkbox-item vx-p-3 vx-pr-4 vx-d-flex vx-align-center\" *ngFor=\"let month of monthNames; let monthIndex = index\">\r\n <app-cs-checkbox (ngValueChange)=\"monthSelectionChange($event, monthIndex)\" [ngValue]=\"selectedMonths.includes(monthIndex)\">{{month}}</app-cs-checkbox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"checkbox-list\" *ngSwitchCase=\"'quarterly'\">\r\n <ng-container *ngIf=\"showRadio\">\r\n <div class=\"frequency-top vx-d-flex vx-align-center\">\r\n <div class=\"vx-fs-13 vx-paragraph-txt\">Day</div>\r\n <input type=\"number\" (focusout)=\"checkDateValidity(quarterlyDate,'quarterly')\" [(ngModel)]=\"quarterlyDate\" class=\"countNum\" onkeydown=\"return event.keyCode !== 190\" min=\"1\" oninput=\"this.value = Math.abs(this.value)\">\r\n <div class=\"vx-fs-13 vx-paragraph-txt\">of</div>\r\n </div>\r\n <div class=\"frequency-checkbox vx-d-flex vx-align-center\">\r\n <div class=\"frequency-checkbox-item vx-p-3 vx-pr-4 vx-d-flex vx-align-center vx-w-100\" *ngFor=\"let quarter of quarters, let quarterIndex = index\">\r\n <app-cs-radio (checkedEvent)=\"quarterSelectionChange($event, quarterIndex)\" [checked]=\"selectedQuarter === quarterIndex\">{{quarter}}</app-cs-radio>\r\n </div>\r\n </div>\r\n </ng-container> \r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"create-frequency-footer\">\r\n <app-dashboard-footer \r\n [footerDetails]=\"footerDetails\"\r\n (cancelEvent)=\"closeFrequencyPopup.emit()\"\r\n (submitEvent)=\"submitFrequency()\"\r\n ></app-dashboard-footer>\r\n </div>\r\n</div>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .create-frequency{background:#FFFFFF;border-right:1px solid #F1F1F1;position:fixed;inset:0 500px 0 0}::ng-deep .create-frequency-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .create-frequency-body{height:calc(100vh - 9.75rem);margin:0 auto 1rem;overflow:hidden;overflow-y:auto;width:calc(100% - 2.5rem)}::ng-deep .create-frequency-body::-webkit-scrollbar-track{background:transparent}::ng-deep .create-frequency-body-inner{width:54.5rem;margin:0 auto}@media screen and (min-width: 1366px){::ng-deep .create-frequency-body-inner{width:auto}}::ng-deep .create-frequency-tab-head{border:none!important;border-bottom:1px solid #f1f1f1!important;margin-bottom:1.5rem}::ng-deep .create-frequency-tab-head ul{padding:0;margin:0}::ng-deep .create-frequency-tab-head ul.navigation{display:flex}::ng-deep .create-frequency-tab-head ul.navigation li{list-style:none;padding:0;margin:0 1.5rem 0 0;display:flex;justify-content:center}::ng-deep .create-frequency-tab-head ul.navigation li button{background:transparent;border-radius:0;border:none;border-bottom:.125rem solid transparent;font-size:11px;font-weight:500;color:#747576;line-height:1.5rem;position:relative;text-transform:uppercase;cursor:pointer;padding:0}::ng-deep .create-frequency-tab-head ul.navigation li button.active{color:#1e5dd3;border-color:#1e5dd3}::ng-deep .create-frequency-tab-body .checkbox-list{border-radius:.25rem;border:1px solid #f1f1f1}::ng-deep .create-frequency-tab-body .checkbox-list .frequency-top{padding:12px;border-bottom:1px solid #F1F1F1}::ng-deep .create-frequency-tab-body .checkbox-list .frequency-top input.countNum{-webkit-appearance:textfield;-moz-appearance:textfield;border:none;border-bottom:1px solid #DBDBDB;color:#161b2f;display:inline-block;font-size:13px;text-align:center;width:2.75rem;padding:.125rem;margin:0 .5rem;outline:none}::ng-deep .create-frequency-tab-body .checkbox-list .frequency-checkbox{background:#fff;border-radius:.25rem}::ng-deep .create-frequency-tab-body .checkbox-list .frequency-checkbox-item{border-right:1px solid #f1f1f1;height:2.75rem}@media screen and (max-width: 1280px){::ng-deep .create-frequency-tab-body .checkbox-list .frequency-checkbox-item{padding:0 .5rem!important}}::ng-deep .create-frequency-tab-body .checkbox-list .frequency-checkbox-item:last-of-type{border-right:none}::ng-deep .create-frequency-tab-body .checkbox-list app-cs-checkbox,::ng-deep .create-frequency-tab-body .checkbox-list app-cs-radio{display:flex}::ng-deep .create-frequency-tab-body .checkbox-list app-cs-checkbox label span.value,::ng-deep .create-frequency-tab-body .checkbox-list app-cs-radio label span.value{font-size:12px!important;color:#161b2f!important;font-weight:400!important}::ng-deep .create-frequency-tab-body .checkbox-list.month .frequency-checkbox-item{width:calc(100% / 6)}::ng-deep .create-frequency-tab-body .checkbox-list.month .frequency-checkbox-item:first-of-type,::ng-deep .create-frequency-tab-body .checkbox-list.month .frequency-checkbox-item:nth-child(2),::ng-deep .create-frequency-tab-body .checkbox-list.month .frequency-checkbox-item:nth-child(3),::ng-deep .create-frequency-tab-body .checkbox-list.month .frequency-checkbox-item:nth-child(4),::ng-deep .create-frequency-tab-body .checkbox-list.month .frequency-checkbox-item:nth-child(5),::ng-deep .create-frequency-tab-body .checkbox-list.month .frequency-checkbox-item:nth-child(6){border-bottom:1px solid #f1f1f1}::ng-deep .create-frequency-tab-body .checkbox-list.month .frequency-checkbox-item:nth-child(6){border-right:none}::ng-deep .create-frequency-footer{padding:0 2rem}\n"] }]
|
|
294
|
-
}], ctorParameters: function () { return [{ type: i1.SnackBarService }]; }, propDecorators: { savedFrequencyTab: [{
|
|
295
|
-
type: Input
|
|
296
|
-
}], savedFrequencies: [{
|
|
297
|
-
type: Input
|
|
298
|
-
}], selectedDate: [{
|
|
299
|
-
type: Input
|
|
300
|
-
}], closeFrequencyPopup: [{
|
|
301
|
-
type: Output
|
|
302
|
-
}], saveFrequency: [{
|
|
303
|
-
type: Output
|
|
304
|
-
}] } });
|
|
305
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi9jcmVhdGUtZGFzaGJvYXJkLWNvbnRhaW5lci9mcmVxdWVuY3kvZnJlcXVlbmN5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi9jcmVhdGUtZGFzaGJvYXJkLWNvbnRhaW5lci9mcmVxdWVuY3kvZnJlcXVlbmN5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQVUxRixNQUFNLE9BQU8sa0JBQWtCO0lBOEI3QixZQUFvQixRQUF3QjtRQUF4QixhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQTdCNUMsY0FBUyxHQUFHLElBQUksQ0FBQztRQUVqQixnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUNoQixrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUdsQixpQkFBWSxHQUFHLFFBQVEsQ0FBQztRQUN4QixrQkFBYSxHQUFHLElBQUksQ0FBQztRQUNyQixhQUFRLEdBQUcsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMxRixlQUFVLEdBQUcsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3hJLGFBQVEsR0FBRyxDQUFDLCtCQUErQixFQUFFLGlDQUFpQyxFQUFFLGtDQUFr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QUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO29CQUNsQyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7aUJBRXZDO3FCQUFNO29CQUNMLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztpQkFDdEM7Z0JBQ0gsTUFBTTthQUNQO1lBQ0QsS0FBSyxXQUFXLENBQUMsQ0FBQztnQkFFaEIsSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsRUFBQztvQkFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO2lCQUV2QztxQkFBTTtvQkFDTCxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7aUJBQ3RDO2dCQUNILE1BQU07YUFDUDtTQUNGO0lBQ0gsQ0FBQzs7K0dBbFNZLGtCQUFrQjttR0FBbEIsa0JBQWtCLDJSQ1YvQiw0ckpBNERNOzJGRGxETyxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsZUFBZTtzR0FNaEIsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUdHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQVNJLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhc2hib2FyZEZvb3RlckNvbmZpZyB9IGZyb20gJy4uLy4uL3VpLWtpdC9kYXNoYm9hcmQtZm9vdGVyL2Rhc2hib2FyZC1mb290ZXItY29uZmlnJztcclxuaW1wb3J0IHsgU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdWkta2l0L3NuYWNrLWJhci9zbmFjay1iYXIuc2VydmljZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZnJlcXVlbmN5JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZnJlcXVlbmN5LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mcmVxdWVuY3kuY29tcG9uZW50Lmxlc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRnJlcXVlbmN5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uQ2hhbmdlcyB7XHJcbiAgYW5pbWF0aW9uID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzYXZlZEZyZXF1ZW5jeVRhYjogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIG1vbnRobHlEYXRlID0gMTtcclxuICBxdWFydGVybHlEYXRlID0gMTtcclxuICBASW5wdXQoKSBzYXZlZEZyZXF1ZW5jaWVzOiBhbnk7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWREYXRlOiBhbnk7XHJcbiAgZnJlcXVlbmN5VGFiID0gJ3dlZWtseSc7XHJcbiAgc2hvd0ZyZXF1ZW5jeSA9IHRydWU7XHJcbiAgZGF5TmFtZXMgPSBbJ01vbmRheScsICdUdWVzZGF5JywgJ1dlZG5lc2RheScsICdUaHVyc2RheScsICdGcmlkYXknLCAnU2F0dXJkYXknLCAnU3VuZGF5J107XHJcbiAgbW9udGhOYW1lcyA9IFsnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICdBcHJpbCcsICdNYXknLCAnSnVuZScsICdKdWx5JywgJ0F1Z3VzdCcsICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsICdEZWNlbWJlciddO1xyXG4gIHF1YXJ0ZXJzID0gWydKYW51YXJ5LCBBcHJpbCwgSnVseSwgT2N0b2JlcicsICdGZWJydWFyeSwgTWF5LCBBdWd1c3QsIE5vdmVtYmVyJywgJ01hcmNoLCBKdW5lLCBTZXB0ZW1iZXIsIERlY2VtYmVyJ107XHJcbiAgc2VsZWN0ZWREYXlzOiBhbnlbXSA9IFswXTtcclxuICBzZWxlY3RlZE1vbnRoczogYW55W10gPSBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExXTtcclxuICBzZWxlY3RlZFF1YXJ0ZXIgPSAwO1xyXG4gIEBPdXRwdXQoKSBjbG9zZUZyZXF1ZW5jeVBvcHVwID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIHNhdmVGcmVxdWVuY3kgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBmb290ZXJEZXRhaWxzOiBEYXNoYm9hcmRGb290ZXJDb25maWcgPSB7XHJcbiAgICBzZWxlY3RlZERhdGE6IFtdLFxyXG4gICAgbm9uUmVtb3ZhYmxlTGlzdDpbXSxcclxuICAgIGRpc3BsYXlFbGVtZW50S2V5OiAnJyxcclxuICAgIGVsZW1lbnRJZDogJycsXHJcbiAgICBzaW5ndWxhclRleHQ6ICcnLFxyXG4gICAgcGx1cmFsVGV4dDogJycsXHJcbiAgICBzaG93RnJlcXVlbmN5OiB0cnVlLFxyXG4gICAgZnJlcXVlbmN5VGV4dDogJ1lvdSBoYXZlIHNlbGVjdGVkIGEgPHN0cm9uZz4nICsgdGhpcy5mcmVxdWVuY3lUYWIgKyAnPC9zdHJvbmc+IGZyZXF1ZW5jeS4nLFxyXG4gICAgaXNEaXNhYmxlZDogZmFsc2VcclxuXHJcbiAgfTtcclxuICBzaG93UmFkaW8gPSB0cnVlO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc25hY2tCYXI6U25hY2tCYXJTZXJ2aWNlKSB7IH1cclxuICBuZ09uQ2hhbmdlcygpe1xyXG4gICAgdGhpcy5zYXZlZEZyZXF1ZW5jaWVzID0gWy4uLm5ldyBTZXQodGhpcy5zYXZlZEZyZXF1ZW5jaWVzKV1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5hbmltYXRpb24gPSB0cnVlO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uID0gZmFsc2U7XHJcbiAgICB9LCAzMDApO1xyXG4gICAgaWYgKHRoaXMuc2F2ZWRGcmVxdWVuY3lUYWIpIHtcclxuICAgICAgdGhpcy5jaGFuZ2VUYWIodGhpcy5zYXZlZEZyZXF1ZW5jeVRhYik7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZERhdGUpIHtcclxuICAgICAgc3dpdGNoICh0aGlzLnNhdmVkRnJlcXVlbmN5VGFiKSB7XHJcbiAgICAgICAgY2FzZSAnd2Vla2x5JzpcclxuICAgICAgICAgdGhpcy5zZWxlY3RlZERheXMgPSBbLi4ubmV3IFNldCh0aGlzLnNhdmVkRnJlcXVlbmNpZXMpXVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnbW9udGhseSc6XHJcbiAgICAgICAgIHRoaXMubW9udGhseURhdGUgPSB0aGlzLnNlbGVjdGVkRGF0ZTtcclxuICAgICAgICAgdGhpcy5zZWxlY3RlZE1vbnRocyA9IFsuLi5uZXcgU2V0KHRoaXMuc2F2ZWRGcmVxdWVuY2llcyldXHJcblxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAncXVhcnRlcmx5JzpcclxuICAgICAgICAgIHRoaXMuc2hvd1JhZGlvID0gZmFsc2U7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zaG93UmFkaW8gPSB0cnVlXHJcbiAgICAgICAgICB9LCAxMDApO1xyXG4gICAgICAgICAgdGhpcy5xdWFydGVybHlEYXRlID0gdGhpcy5zZWxlY3RlZERhdGVcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRRdWFydGVyID0gdGhpcy5zYXZlZEZyZXF1ZW5jaWVzO1xyXG5cclxuICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgY2xvc2VGcmVxdWVuY3koKSB7XHJcbiAgICB0aGlzLmNsb3NlRnJlcXVlbmN5UG9wdXAuZW1pdCgpO1xyXG4gIH1cclxuICBkYXlTZWxlY3Rpb25DaGFuZ2UoZXZlbnQ6IGFueSwgaW5kZXg6IGFueSkge1xyXG4gICAgaWYgKGV2ZW50KSB7IC8vY2hlY2tib3ggd2FzIHNlbGVjdGVkXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXlzLnB1c2goaW5kZXgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IHVuc2VsZWN0ZWRFbGVtZW50SW5kZXggPSB0aGlzLnNlbGVjdGVkRGF5cy5pbmRleE9mKGluZGV4KTtcclxuICAgICAgdGhpcy5zZWxlY3RlZERheXMuc3BsaWNlKHVuc2VsZWN0ZWRFbGVtZW50SW5kZXgsIDEpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jaGVja0ZyZXF1ZW5jeVZhbGlkaXR5KCk7XHJcbiAgfVxyXG4gIG1vbnRoU2VsZWN0aW9uQ2hhbmdlKGV2ZW50OiBhbnksIGluZGV4OiBhbnkpIHtcclxuICAgIGlmIChldmVudCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkTW9udGhzLnB1c2goaW5kZXgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IHVuc2VsZWN0ZWRFbGVtZW50SW5kZXggPSB0aGlzLnNlbGVjdGVkTW9udGhzLmluZGV4T2YoaW5kZXgpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkTW9udGhzLnNwbGljZSh1bnNlbGVjdGVkRWxlbWVudEluZGV4LCAxKTtcclxuICAgIH1cclxuICAgIHRoaXMuY2hlY2tEYXRlVmFsaWRpdHkodGhpcy5tb250aGx5RGF0ZSwnbW9udGhseScpXHJcbiAgICB0aGlzLmNoZWNrRnJlcXVlbmN5VmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gIHF1YXJ0ZXJTZWxlY3Rpb25DaGFuZ2UoZXZlbnQ6IGFueSwgaW5kZXg6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFF1YXJ0ZXIgPSBpbmRleDtcclxuICAgIHRoaXMuY2hlY2tEYXRlVmFsaWRpdHkodGhpcy5xdWFydGVybHlEYXRlLCdxdWFydGVybHknKTtcclxuICAgIHRoaXMuY2hlY2tGcmVxdWVuY3lWYWxpZGl0eSgpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlVGFiKHRhYlZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZnJlcXVlbmN5VGFiID0gdGFiVmFsdWU7XHJcbiAgICB0aGlzLmZvb3RlckRldGFpbHMuZnJlcXVlbmN5VGV4dCA9ICdZb3UgaGF2ZSBzZWxlY3RlZCBhIDxzdHJvbmc+JyArIHRoaXMuZnJlcXVlbmN5VGFiICsgJzwvc3Ryb25nPiBmcmVxdWVuY3kuJztcclxuICAgIHRoaXMuZm9vdGVyRGV0YWlscy5pc0Rpc2FibGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLnNldFRvRGVmYXVsdFZhbHVlcygpXHJcbiAgICBpZiAodGhpcy5mcmVxdWVuY3lUYWIgPT09IHRoaXMuc2F2ZWRGcmVxdWVuY3lUYWIpIHtcclxuICAgICAgc3dpdGNoICh0aGlzLmZyZXF1ZW5jeVRhYikge1xyXG4gICAgICAgIGNhc2UgJ3dlZWtseSc6IHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXlzID0gWy4uLnRoaXMuc2F2ZWRGcmVxdWVuY2llc107XHJcbiAgICAgICAgICB0aGlzLm1vbnRobHlEYXRlID0gMTtcclxuICAgICAgICAgIHRoaXMucXVhcnRlcmx5RGF0ZSA9IDE7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgY2FzZSAnbW9udGhseSc6IHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRNb250aHMgPSBbLi4udGhpcy5zYXZlZEZyZXF1ZW5jaWVzXTtcclxuICAgICAgICAgIHRoaXMubW9udGhseURhdGUgPSB0aGlzLnNlbGVjdGVkRGF0ZTtcclxuICAgICAgICAgIHRoaXMucXVhcnRlcmx5RGF0ZSA9IDE7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrRGF0ZVZhbGlkaXR5KHRoaXMubW9udGhseURhdGUsJ21vbnRobHknKVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhc2UgJ3F1YXJ0ZXJseSc6IHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRRdWFydGVyID0gdGhpcy5zYXZlZEZyZXF1ZW5jaWVzO1xyXG4gICAgICAgICAgdGhpcy5xdWFydGVybHlEYXRlID0gdGhpcy5zZWxlY3RlZERhdGU7XHJcbiAgICAgICAgICB0aGlzLm1vbnRobHlEYXRlID0gMTtcclxuICAgICAgICAgIHRoaXMuY2hlY2tEYXRlVmFsaWRpdHkodGhpcy5xdWFydGVybHlEYXRlLCdxdWFydGVybHknKVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRUb0RlZmF1bHRWYWx1ZXMoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF5cyA9IFswXTtcclxuICAgIHRoaXMuc2VsZWN0ZWRNb250aHMgPSBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExXTtcclxuICAgIHRoaXMuc2VsZWN0ZWRRdWFydGVyID0gMDtcclxuICB9XHJcblxyXG4gIHN1Ym1pdEZyZXF1ZW5jeSgpIHtcclxuICAgIGxldCBzdHJpbmdWYWwgPSBcIkV2ZXJ5IFwiO1xyXG4gICAgbGV0IGZyZXF1ZW5jaWVzO1xyXG4gICAgbGV0IHNlbGVjdGVkRGF0ZSA9IDE7XHJcbiAgICBzd2l0Y2ggKHRoaXMuZnJlcXVlbmN5VGFiKSB7XHJcbiAgICAgIGNhc2UgJ3dlZWtseSc6IHtcclxuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZERheXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZERheXMuc29ydCgpO1xyXG4gICAgICAgICAgZnJlcXVlbmNpZXMgPSB0aGlzLnNlbGVjdGVkRGF5cztcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXlzLmZvckVhY2goKGRheUluZGV4LCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBzdHJpbmdWYWwgKz0gaW5kZXggPT09IDAgPyB0aGlzLmRheU5hbWVzW2RheUluZGV4XSA6ICcsICcgKyB0aGlzLmRheU5hbWVzW2RheUluZGV4XTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIC8vIG5vdGhpbmcgd2FzIHNlbGVjdGVkXHJcbiAgICAgICAgICB0aGlzLmNsb3NlRnJlcXVlbmN5KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ21vbnRobHknOiB7XHJcbiAgICAgICAgc3RyaW5nVmFsID0gXCIgb2YgZXZlcnkgXCI7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRNb250aHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgZnJlcXVlbmNpZXMgPSB0aGlzLnNlbGVjdGVkTW9udGhzO1xyXG4gICAgICAgICAgdGhpcy5tb250aE5hbWVzLmZvckVhY2goKG1vbnRoTmFtZXM6IHN0cmluZywgbW9udGhJbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkTW9udGhzLmluY2x1ZGVzKG1vbnRoSW5kZXgpKSB7XHJcbiAgICAgICAgICAgICAgc3RyaW5nVmFsICs9IG1vbnRoSW5kZXggID09PSAwID8gbW9udGhOYW1lcyA6ICcsICcgKyBtb250aE5hbWVzO1xyXG5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIGxldCBtb250aERhdGVOYW1lO1xyXG4gICAgICAgICAgaWYgKHRoaXMubW9udGhseURhdGUgPT0gMSkge1xyXG4gICAgICAgICAgICBtb250aERhdGVOYW1lID0gJzFzdCdcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2UgaWYgKHRoaXMubW9udGhseURhdGUgPT0gMikge1xyXG4gICAgICAgICAgICBtb250aERhdGVOYW1lID0gJzJuZCdcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2UgaWYgKHRoaXMubW9udGhseURhdGUgPT0gMykge1xyXG4gICAgICAgICAgICBtb250aERhdGVOYW1lID0gJzNyZCdcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBtb250aERhdGVOYW1lID0gdGhpcy5tb250aGx5RGF0ZSArICd0aCdcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHN0cmluZ1ZhbCA9IG1vbnRoRGF0ZU5hbWUgKyBzdHJpbmdWYWw7XHJcbiAgICAgICAgICBzZWxlY3RlZERhdGUgPSB0aGlzLm1vbnRobHlEYXRlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvLyBub3RoaW5nIHdhcyBzZWxlY3RlZFxyXG4gICAgICAgICAgdGhpcy5jbG9zZUZyZXF1ZW5jeSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdxdWFydGVybHknOiB7XHJcbiAgICAgICAgc3RyaW5nVmFsID0gXCIgb2YgZXZlcnkgXCI7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkUXVhcnRlciA+PSAwKSB7XHJcbiAgICAgICAgICBmcmVxdWVuY2llcyA9IHRoaXMuc2VsZWN0ZWRRdWFydGVyO1xyXG4gICAgICAgICAgc3RyaW5nVmFsICs9IHRoaXMucXVhcnRlcnNbdGhpcy5zZWxlY3RlZFF1YXJ0ZXJdO1xyXG4gICAgICAgICAgc2VsZWN0ZWREYXRlID0gdGhpcy5xdWFydGVybHlEYXRlO1xyXG4gICAgICAgICAgbGV0IG1vbnRoRGF0ZU5hbWU7XHJcbiAgICAgICAgICBpZiAodGhpcy5xdWFydGVybHlEYXRlID09IDEpIHtcclxuICAgICAgICAgICAgbW9udGhEYXRlTmFtZSA9ICcxc3QnXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIGlmICh0aGlzLnF1YXJ0ZXJseURhdGUgPT0gMikge1xyXG4gICAgICAgICAgICBtb250aERhdGVOYW1lID0gJzJuZCdcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2UgaWYgKHRoaXMucXVhcnRlcmx5RGF0ZSA9PSAzKSB7XHJcbiAgICAgICAgICAgIG1vbnRoRGF0ZU5hbWUgPSAnM3JkJ1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIG1vbnRoRGF0ZU5hbWUgPSB0aGlzLnF1YXJ0ZXJseURhdGUgKyAndGgnXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBzdHJpbmdWYWwgPSBtb250aERhdGVOYW1lICsgc3RyaW5nVmFsO1xyXG4gICAgICAgICAgc2VsZWN0ZWREYXRlID0gdGhpcy5xdWFydGVybHlEYXRlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvLyBub3RoaW5nIHdhcyBzZWxlY3RlZFxyXG4gICAgICAgICAgdGhpcy5jbG9zZUZyZXF1ZW5jeSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5zYXZlRnJlcXVlbmN5LmVtaXQoe1xyXG4gICAgICBmcmVxdWVuY3lTdHJpbmc6IHN0cmluZ1ZhbCxcclxuICAgICAgZnJlcXVlbmN5VHlwZTogdGhpcy5mcmVxdWVuY3lUYWIsXHJcbiAgICAgIGZyZXF1ZW5jaWVzOiBmcmVxdWVuY2llcyxcclxuICAgICAgc2VsZWN0ZWREYXRlXHJcbiAgICB9KVxyXG4gIH1cclxuICBcclxuICBjaGVja0RhdGVWYWxpZGl0eShkYXRlOm51bWJlciwgdHlwZTpzdHJpbmcpe1xyXG4gICAgaWYoZGF0ZT4zMSB8fCBkYXRlPDEpe1xyXG4gICAgICB0aGlzLnNuYWNrQmFyLnNob3coJ1NlbGVjdCB2YWxpZCBkYXRlLicsJ2FsZXJ0Jyk7XHJcbiAgICAgIHRoaXMuZm9vdGVyRGV0YWlscy5pc0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgICByZXR1cm5cclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmZvb3RlckRldGFpbHMuaXNEaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICBjb25zdCAgbW9udGhMaXN0PVt7bmFtZTonSmFudWFyeScsbWF4RGF5czozMSx2YWx1ZTowfSx7bmFtZTonRmVicnVhcnknLG1heERheXM6MjgsdmFsdWU6MX0se25hbWU6J01hcmNoJyxtYXhEYXlzOjMxLHZhbHVlOjJ9LFxyXG4gICB7bmFtZTonQXByaWwnLG1heERheXM6MzAsdmFsdWU6M30se25hbWU6J01heScsbWF4RGF5czozMSx2YWx1ZTo0fSx7bmFtZTonSnVuZScsbWF4RGF5czozMCx2YWx1ZTo1fSxcclxuICAge25hbWU6J0p1bHknLG1heERheXM6MzEsdmFsdWU6Nn0se25hbWU6J0F1Z3VzdCcsbWF4RGF5czozMSx2YWx1ZTo3fSx7bmFtZTonU2VwdGVtYmVyJyxtYXhEYXlzOjMwLHZhbHVlOjh9LFxyXG4gICB7bmFtZTonT2N0b2JlcicsbWF4RGF5czozMSx2YWx1ZTo5fSx7bmFtZTonTm92ZW1iZXInLG1heERheXM6MzAsdmFsdWU6MTB9LHtuYW1lOidEZWNlbWJlcicsbWF4RGF5czozMSx2YWx1ZToxMX1dXHJcbiAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICBjYXNlICdtb250aGx5JzpcclxuICAgICAgaWYodGhpcy5zZWxlY3RlZE1vbnRocy5sZW5ndGg9PTEpe1xyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gbW9udGhMaXN0LmZpbmRJbmRleCgoZWxlOmFueSk9PmVsZS52YWx1ZT09dGhpcy5zZWxlY3RlZE1vbnRoc1swXSk7XHJcbiAgICAgICAgaWYoZGF0ZTw9bW9udGhMaXN0W2luZGV4XS5tYXhEYXlzKXtcclxuICAgICAgICAgIHRoaXMuZm9vdGVyRGV0YWlscy5pc0Rpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgXHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICB0aGlzLnNuYWNrQmFyLnNob3coJ1NlbGVjdCB2YWxpZCBkYXRlLicsJ2FsZXJ0Jyk7XHJcbiAgICAgICAgICB0aGlzLmZvb3RlckRldGFpbHMuaXNEaXNhYmxlZCA9IHRydWU7IFxyXG4gICAgICAgIH1cclxuICAgICAgfWVsc2UgaWYodGhpcy5zZWxlY3RlZE1vbnRocy5sZW5ndGg9PTApe1xyXG4gICAgICAgIHRoaXMuZm9vdGVyRGV0YWlscy5pc0Rpc2FibGVkID0gdHJ1ZTsgXHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMuZm9vdGVyRGV0YWlscy5pc0Rpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHRoaXMuZm9vdGVyRGV0YWlscy5pc0Rpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gIH1cclxuXHJcbn1cclxuXHJcbmNoZWNrRnJlcXVlbmN5VmFsaWRpdHkoKXtcclxuICBzd2l0Y2ggKHRoaXMuZnJlcXVlbmN5VGFiKSB7XHJcbiAgICBjYXNlICd3ZWVrbHknOiB7XHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkRGF5cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy5mb290ZXJEZXRhaWxzLmlzRGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5mb290ZXJEZXRhaWxzLmlzRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgY2FzZSAnbW9udGhseSc6IHtcclxuICAgXHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRNb250aHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdGhpcy5mb290ZXJEZXRhaWxzLmlzRGlzYWJsZWQgPSBmYWxzZTtcclxuICBcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5mb290ZXJEZXRhaWxzLmlzRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICBjYXNlICdxdWFydGVybHknOiB7XHJcblxyXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZFF1YXJ0ZXIgPj0gMCl7XHJcbiAgICAgICAgICB0aGlzLmZvb3RlckRldGFpbHMuaXNEaXNhYmxlZCA9IGZhbHNlO1xyXG4gIFxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmZvb3RlckRldGFpbHMuaXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICBicmVhaztcclxuICAgIH1cclxuICB9IFxyXG59XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjcmVhdGUtZnJlcXVlbmN5XCIgW2NsYXNzLmFuaW1hdGUtc2xpZGVJblJpZ2h0XT1cImFuaW1hdGlvblwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNyZWF0ZS1mcmVxdWVuY3ktaGVhZCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1wbC00IHZ4LXByLTQgdngtbWItNFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xNCB2eC1mdy01MDAgdngtbGFiZWwtdHh0XCI+U2VsZWN0IGEgRnJlcXVlbmN5PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjcmVhdGUtZnJlcXVlbmN5LWJvZHkgdngtcGwtNCB2eC1wci00XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNyZWF0ZS1mcmVxdWVuY3ktYm9keS1pbm5lclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3JlYXRlLWZyZXF1ZW5jeS10YWJcIiBbbmdTd2l0Y2hdPVwiZnJlcXVlbmN5VGFiXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3JlYXRlLWZyZXF1ZW5jeS10YWItaGVhZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cIm5hdmlnYXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxidXR0b24gW2NsYXNzLmFjdGl2ZV09XCJmcmVxdWVuY3lUYWIgPT0gJ3dlZWtseSdcIiAoY2xpY2spPVwiY2hhbmdlVGFiKCd3ZWVrbHknKVwiPldlZWtseTwvYnV0dG9uPjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YnV0dG9uIFtjbGFzcy5hY3RpdmVdPVwiZnJlcXVlbmN5VGFiID09ICdtb250aGx5J1wiIChjbGljayk9XCJjaGFuZ2VUYWIoJ21vbnRobHknKVwiPk1vbnRobHk8L2J1dHRvbj48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGJ1dHRvbiBbY2xhc3MuYWN0aXZlXT1cImZyZXF1ZW5jeVRhYiA9PSAncXVhcnRlcmx5J1wiIChjbGljayk9XCJjaGFuZ2VUYWIoJ3F1YXJ0ZXJseScpXCI+UXVhcnRlcmx5PC9idXR0b24+PC9saT5cclxuICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3JlYXRlLWZyZXF1ZW5jeS10YWItYm9keSB2eC1wbC00IHZ4LXByLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTEgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC10dC11cHBlcmNhc2UgdngtbWItMVwiPkVtYWlsIFJlbWluZGVyIEZyZXF1ZW5jeTo8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tib3gtbGlzdFwiICpuZ1N3aXRjaENhc2U9XCInd2Vla2x5J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWNoZWNrYm94IHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktY2hlY2tib3gtaXRlbSB2eC1wLTMgdngtcHItNCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCIgKm5nRm9yPVwibGV0IGRheSBvZiBkYXlOYW1lczsgbGV0IGRheUluZGV4ID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWNzLWNoZWNrYm94IChuZ1ZhbHVlQ2hhbmdlKT1cImRheVNlbGVjdGlvbkNoYW5nZSgkZXZlbnQsIGRheUluZGV4KVwiIFtuZ1ZhbHVlXT1cInNlbGVjdGVkRGF5cy5pbmNsdWRlcyhkYXlJbmRleClcIj57e2RheX19PC9hcHAtY3MtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrYm94LWxpc3QgbW9udGhcIiAqbmdTd2l0Y2hDYXNlPVwiJ21vbnRobHknXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktdG9wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMyB2eC1wYXJhZ3JhcGgtdHh0XCI+RGF5PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIChmb2N1c291dCk9XCJjaGVja0RhdGVWYWxpZGl0eShtb250aGx5RGF0ZSwnbW9udGhseScpXCIgWyhuZ01vZGVsKV09XCJtb250aGx5RGF0ZVwiIGNsYXNzPVwiY291bnROdW1cIiBvbmtleWRvd249XCJyZXR1cm4gZXZlbnQua2V5Q29kZSAhPT0gMTkwXCIgbWluPVwiMVwiIG9uaW5wdXQ9XCJ0aGlzLnZhbHVlID0gTWF0aC5hYnModGhpcy52YWx1ZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMyB2eC1wYXJhZ3JhcGgtdHh0XCI+b2Y8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktY2hlY2tib3ggdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1mbGV4LXdyYXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktY2hlY2tib3gtaXRlbSB2eC1wLTMgdngtcHItNCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCIgKm5nRm9yPVwibGV0IG1vbnRoIG9mIG1vbnRoTmFtZXM7IGxldCBtb250aEluZGV4ID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWNzLWNoZWNrYm94IChuZ1ZhbHVlQ2hhbmdlKT1cIm1vbnRoU2VsZWN0aW9uQ2hhbmdlKCRldmVudCwgbW9udGhJbmRleClcIiBbbmdWYWx1ZV09XCJzZWxlY3RlZE1vbnRocy5pbmNsdWRlcyhtb250aEluZGV4KVwiPnt7bW9udGh9fTwvYXBwLWNzLWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja2JveC1saXN0XCIgKm5nU3dpdGNoQ2FzZT1cIidxdWFydGVybHknXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93UmFkaW9cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktdG9wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTMgdngtcGFyYWdyYXBoLXR4dFwiPkRheTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgKGZvY3Vzb3V0KT1cImNoZWNrRGF0ZVZhbGlkaXR5KHF1YXJ0ZXJseURhdGUsJ3F1YXJ0ZXJseScpXCIgWyhuZ01vZGVsKV09XCJxdWFydGVybHlEYXRlXCIgY2xhc3M9XCJjb3VudE51bVwiIG9ua2V5ZG93bj1cInJldHVybiBldmVudC5rZXlDb2RlICE9PSAxOTBcIiBtaW49XCIxXCIgb25pbnB1dD1cInRoaXMudmFsdWUgPSBNYXRoLmFicyh0aGlzLnZhbHVlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMyB2eC1wYXJhZ3JhcGgtdHh0XCI+b2Y8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1jaGVja2JveCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1jaGVja2JveC1pdGVtIHZ4LXAtMyB2eC1wci00IHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtdy0xMDBcIiAqbmdGb3I9XCJsZXQgcXVhcnRlciBvZiBxdWFydGVycywgbGV0IHF1YXJ0ZXJJbmRleCA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtY3MtcmFkaW8gKGNoZWNrZWRFdmVudCk9XCJxdWFydGVyU2VsZWN0aW9uQ2hhbmdlKCRldmVudCwgcXVhcnRlckluZGV4KVwiIFtjaGVja2VkXT1cInNlbGVjdGVkUXVhcnRlciA9PT0gcXVhcnRlckluZGV4XCI+e3txdWFydGVyfX08L2FwcC1jcy1yYWRpbz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY3JlYXRlLWZyZXF1ZW5jeS1mb290ZXJcIj5cclxuICAgICAgICA8YXBwLWRhc2hib2FyZC1mb290ZXIgXHJcbiAgICAgICAgW2Zvb3RlckRldGFpbHNdPVwiZm9vdGVyRGV0YWlsc1wiXHJcbiAgICAgICAgKGNhbmNlbEV2ZW50KT1cImNsb3NlRnJlcXVlbmN5UG9wdXAuZW1pdCgpXCJcclxuICAgICAgICAoc3VibWl0RXZlbnQpPVwic3VibWl0RnJlcXVlbmN5KClcIlxyXG4gICAgICAgID48L2FwcC1kYXNoYm9hcmQtZm9vdGVyPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|