@wemake4u/form-player-se 1.0.19 → 1.0.20
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/controls/chart.mjs +10 -0
- package/esm2022/lib/controls/factory.mjs +4 -1
- package/esm2022/lib/dialog/dialog.component.mjs +6 -5
- package/esm2022/lib/dynamic-fields/dynamic-fields.component.mjs +24 -14
- package/esm2022/lib/services/chart.service.mjs +264 -0
- package/esm2022/lib/services/dialog.service.mjs +4 -2
- package/esm2022/lib/services/grid.service.mjs +14 -14
- package/fesm2022/wemake4u-form-player-se.mjs +315 -33
- package/fesm2022/wemake4u-form-player-se.mjs.map +1 -1
- package/lib/controls/chart.d.ts +4 -0
- package/lib/dialog/dialog.component.d.ts +1 -0
- package/lib/dynamic-fields/dynamic-fields.component.d.ts +5 -1
- package/lib/services/chart.service.d.ts +34 -0
- package/lib/services/grid.service.d.ts +8 -8
- package/package.json +4 -2
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { localize } from '../locale/localize';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../services/programmability.service";
|
|
5
|
+
export class ChartService {
|
|
6
|
+
programmability;
|
|
7
|
+
constructor(programmability) {
|
|
8
|
+
this.programmability = programmability;
|
|
9
|
+
}
|
|
10
|
+
getOptions(component, formGroup, language) {
|
|
11
|
+
const series = this.getSeries(component, formGroup, language);
|
|
12
|
+
return {
|
|
13
|
+
series: series,
|
|
14
|
+
...this.getDataProps(component, formGroup),
|
|
15
|
+
...this.getProps(component)
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
locale(component, key, language) {
|
|
19
|
+
return localize(language, component, key);
|
|
20
|
+
}
|
|
21
|
+
getSeries(component, formGroup, language) {
|
|
22
|
+
if (Array.isArray(component.series)) {
|
|
23
|
+
const series = component.series.map((serie) => {
|
|
24
|
+
switch (serie.type) {
|
|
25
|
+
case "bar":
|
|
26
|
+
return this.getBarSeriesOptions(serie, formGroup, language);
|
|
27
|
+
case "line":
|
|
28
|
+
return this.getLineSeriesOptions(serie, formGroup, language);
|
|
29
|
+
case "area":
|
|
30
|
+
return this.getAreaSeriesOptions(serie, formGroup, language);
|
|
31
|
+
case "scatter":
|
|
32
|
+
return this.getScatterSeriesOptions(serie, formGroup, language);
|
|
33
|
+
case "bubble":
|
|
34
|
+
return this.getBubbleSeriesOptions(serie, formGroup, language);
|
|
35
|
+
case "pie":
|
|
36
|
+
return this.getPieSeriesOptions(serie, formGroup, language);
|
|
37
|
+
case "donut":
|
|
38
|
+
return this.getDonutSeriesOptions(serie, formGroup, language);
|
|
39
|
+
default:
|
|
40
|
+
return {};
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
return series;
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
return [];
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
getSeriesOptionsNames(serie, language) {
|
|
50
|
+
const options = {};
|
|
51
|
+
if (this.isString(serie.xName))
|
|
52
|
+
options.xName = this.locale(serie, "xName", language);
|
|
53
|
+
if (this.isString(serie.yName))
|
|
54
|
+
options.yName = this.locale(serie, "yName", language);
|
|
55
|
+
if (this.isString(serie.legendItemName))
|
|
56
|
+
options.legendItemName = this.locale(serie, "legendItemName", language);
|
|
57
|
+
return options;
|
|
58
|
+
}
|
|
59
|
+
getBaseSeriesOptions(serie, formGroup) {
|
|
60
|
+
const options = {
|
|
61
|
+
...this.getDataProps(serie, formGroup)
|
|
62
|
+
};
|
|
63
|
+
if (this.isBoolean(serie.visible))
|
|
64
|
+
options.visible = serie.visible;
|
|
65
|
+
return options;
|
|
66
|
+
}
|
|
67
|
+
getBarSeriesOptions(serie, formGroup, language) {
|
|
68
|
+
const options = {
|
|
69
|
+
type: "bar",
|
|
70
|
+
xKey: serie.xKey,
|
|
71
|
+
yKey: serie.yKey,
|
|
72
|
+
...this.getBaseSeriesOptions(serie, formGroup),
|
|
73
|
+
...this.getSeriesOptionsNames(serie, language)
|
|
74
|
+
};
|
|
75
|
+
if (this.isDirection(serie.direction))
|
|
76
|
+
options.direction = serie.direction;
|
|
77
|
+
if (this.isBoolean(serie.stacked))
|
|
78
|
+
options.stacked = serie.stacked;
|
|
79
|
+
if (this.isNumber(serie.normalizedTo))
|
|
80
|
+
options.normalizedTo = serie.normalizedTo;
|
|
81
|
+
if (this.isString(serie.stackGroup))
|
|
82
|
+
options.stackGroup = serie.stackGroup;
|
|
83
|
+
return options;
|
|
84
|
+
}
|
|
85
|
+
getLineSeriesOptions(serie, formGroup, language) {
|
|
86
|
+
const options = {
|
|
87
|
+
type: "line",
|
|
88
|
+
xKey: serie.xKey,
|
|
89
|
+
yKey: serie.yKey,
|
|
90
|
+
...this.getBaseSeriesOptions(serie, formGroup),
|
|
91
|
+
...this.getSeriesOptionsNames(serie, language)
|
|
92
|
+
};
|
|
93
|
+
if (this.isInterpolation(serie.interpolation)) {
|
|
94
|
+
options.interpolation = {
|
|
95
|
+
type: serie.interpolation
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
return options;
|
|
99
|
+
}
|
|
100
|
+
getAreaSeriesOptions(serie, formGroup, language) {
|
|
101
|
+
const options = {
|
|
102
|
+
type: "area",
|
|
103
|
+
xKey: serie.xKey,
|
|
104
|
+
yKey: serie.yKey,
|
|
105
|
+
...this.getBaseSeriesOptions(serie, formGroup),
|
|
106
|
+
...this.getAreaSeriesOptionsNames(serie, language)
|
|
107
|
+
};
|
|
108
|
+
if (this.isBoolean(serie.stacked))
|
|
109
|
+
options.stacked = serie.stacked;
|
|
110
|
+
if (this.isNumber(serie.normalizedTo))
|
|
111
|
+
options.normalizedTo = serie.normalizedTo;
|
|
112
|
+
return options;
|
|
113
|
+
}
|
|
114
|
+
getAreaSeriesOptionsNames(serie, language) {
|
|
115
|
+
const options = {};
|
|
116
|
+
if (serie.xName)
|
|
117
|
+
options.xName = this.locale(serie, "xName", language);
|
|
118
|
+
if (serie.yName)
|
|
119
|
+
options.yName = this.locale(serie, "yName", language);
|
|
120
|
+
return options;
|
|
121
|
+
}
|
|
122
|
+
getScatterSeriesOptions(serie, formGroup, language) {
|
|
123
|
+
return {
|
|
124
|
+
type: "scatter",
|
|
125
|
+
xKey: serie.xKey,
|
|
126
|
+
yKey: serie.yKey,
|
|
127
|
+
labelKey: serie.labelKey,
|
|
128
|
+
...this.getBaseSeriesOptions(serie, formGroup),
|
|
129
|
+
...this.getScatterSeriesOptionsNames(serie, language)
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
getScatterSeriesOptionsNames(serie, language) {
|
|
133
|
+
const options = {};
|
|
134
|
+
if (serie.xName)
|
|
135
|
+
options.xName = this.locale(serie, "xName", language);
|
|
136
|
+
if (serie.yName)
|
|
137
|
+
options.yName = this.locale(serie, "yName", language);
|
|
138
|
+
if (serie.labelName)
|
|
139
|
+
options.labelName = this.locale(serie, "labelName", language);
|
|
140
|
+
return options;
|
|
141
|
+
}
|
|
142
|
+
getBubbleSeriesOptions(serie, formGroup, language) {
|
|
143
|
+
return {
|
|
144
|
+
type: "bubble",
|
|
145
|
+
xKey: serie.xKey,
|
|
146
|
+
yKey: serie.yKey,
|
|
147
|
+
sizeKey: serie.sizeKey,
|
|
148
|
+
labelKey: serie.labelKey,
|
|
149
|
+
...this.getBaseSeriesOptions(serie, formGroup),
|
|
150
|
+
...this.getBubbleSeriesOptionsNames(serie, language)
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
getBubbleSeriesOptionsNames(serie, language) {
|
|
154
|
+
const options = {};
|
|
155
|
+
if (serie.xName)
|
|
156
|
+
options.xName = this.locale(serie, "xName", language);
|
|
157
|
+
if (serie.yName)
|
|
158
|
+
options.yName = this.locale(serie, "yName", language);
|
|
159
|
+
if (serie.sizeName)
|
|
160
|
+
options.sizeName = this.locale(serie, "sizeName", language);
|
|
161
|
+
if (serie.labelName)
|
|
162
|
+
options.labelName = this.locale(serie, "labelName", language);
|
|
163
|
+
return options;
|
|
164
|
+
}
|
|
165
|
+
getPieSeriesOptions(serie, formGroup, language) {
|
|
166
|
+
const options = {
|
|
167
|
+
type: "pie",
|
|
168
|
+
angleKey: serie.angleKey,
|
|
169
|
+
...this.getBaseSeriesOptions(serie, formGroup),
|
|
170
|
+
...this.getPieSeriesOptionsNames(serie, language)
|
|
171
|
+
};
|
|
172
|
+
if (this.isString(serie.radiusKey))
|
|
173
|
+
options.radiusKey = serie.radiusKey;
|
|
174
|
+
if (this.isString(serie.calloutLabelKey))
|
|
175
|
+
options.calloutLabelKey = serie.calloutLabelKey;
|
|
176
|
+
if (this.isString(serie.sectorLabelKey))
|
|
177
|
+
options.sectorLabelKey = serie.sectorLabelKey;
|
|
178
|
+
if (this.isString(serie.legendItemKey))
|
|
179
|
+
options.legendItemKey = serie.legendItemKey;
|
|
180
|
+
return options;
|
|
181
|
+
}
|
|
182
|
+
getPieSeriesOptionsNames(serie, language) {
|
|
183
|
+
const options = {};
|
|
184
|
+
if (serie.angleName)
|
|
185
|
+
options.angleName = this.locale(serie, "angleName", language);
|
|
186
|
+
if (serie.radiusName)
|
|
187
|
+
options.radiusName = this.locale(serie, "radiusName", language);
|
|
188
|
+
if (serie.calloutLabelName)
|
|
189
|
+
options.calloutLabelName = this.locale(serie, "calloutLabelName", language);
|
|
190
|
+
if (serie.sectorLabelName)
|
|
191
|
+
options.sectorLabelName = this.locale(serie, "sectorLabelName", language);
|
|
192
|
+
return options;
|
|
193
|
+
}
|
|
194
|
+
getDonutSeriesOptions(serie, formGroup, language) {
|
|
195
|
+
const options = {
|
|
196
|
+
type: "donut",
|
|
197
|
+
angleKey: serie.angleKey,
|
|
198
|
+
...this.getBaseSeriesOptions(serie, formGroup),
|
|
199
|
+
...this.getDonutSeriesOptionsNames(serie, language)
|
|
200
|
+
};
|
|
201
|
+
if (this.isString(serie.radiusKey))
|
|
202
|
+
options.radiusKey = serie.radiusKey;
|
|
203
|
+
if (this.isString(serie.calloutLabelKey))
|
|
204
|
+
options.calloutLabelKey = serie.calloutLabelKey;
|
|
205
|
+
if (this.isString(serie.sectorLabelKey))
|
|
206
|
+
options.sectorLabelKey = serie.sectorLabelKey;
|
|
207
|
+
if (this.isString(serie.legendItemKey))
|
|
208
|
+
options.legendItemKey = serie.legendItemKey;
|
|
209
|
+
return options;
|
|
210
|
+
}
|
|
211
|
+
getDonutSeriesOptionsNames(serie, language) {
|
|
212
|
+
const options = {};
|
|
213
|
+
if (serie.angleName)
|
|
214
|
+
options.angleName = this.locale(serie, "angleName", language);
|
|
215
|
+
if (serie.radiusName)
|
|
216
|
+
options.radiusName = this.locale(serie, "radiusName", language);
|
|
217
|
+
if (serie.calloutLabelName)
|
|
218
|
+
options.calloutLabelName = this.locale(serie, "calloutLabelName", language);
|
|
219
|
+
if (serie.sectorLabelName)
|
|
220
|
+
options.sectorLabelName = this.locale(serie, "sectorLabelName", language);
|
|
221
|
+
return options;
|
|
222
|
+
}
|
|
223
|
+
getProps(component) {
|
|
224
|
+
const props = {};
|
|
225
|
+
if (component && component.title) {
|
|
226
|
+
props.title = { text: component.title };
|
|
227
|
+
}
|
|
228
|
+
if (component && component.subtitle) {
|
|
229
|
+
props.subtitle = { text: component.subtitle };
|
|
230
|
+
}
|
|
231
|
+
return props;
|
|
232
|
+
}
|
|
233
|
+
getDataProps(component, formGroup) {
|
|
234
|
+
if (component && component.data) {
|
|
235
|
+
return {
|
|
236
|
+
data: this.programmability.evaluate(formGroup, component.data)
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
else {
|
|
240
|
+
return {};
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
isBoolean(value) {
|
|
244
|
+
return typeof value === 'boolean' || value instanceof Boolean;
|
|
245
|
+
}
|
|
246
|
+
isString(value) {
|
|
247
|
+
return typeof value === 'string' || value instanceof String;
|
|
248
|
+
}
|
|
249
|
+
isNumber(value) {
|
|
250
|
+
return typeof value === 'number' && isFinite(value);
|
|
251
|
+
}
|
|
252
|
+
isDirection(value) {
|
|
253
|
+
return value === 'horizontal' || value === 'vertical';
|
|
254
|
+
}
|
|
255
|
+
isInterpolation(value) {
|
|
256
|
+
return value === 'linear' || value === 'smooth' || value === 'step';
|
|
257
|
+
}
|
|
258
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChartService, deps: [{ token: i1.ProgrammabilityService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
259
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChartService });
|
|
260
|
+
}
|
|
261
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChartService, decorators: [{
|
|
262
|
+
type: Injectable
|
|
263
|
+
}], ctorParameters: () => [{ type: i1.ProgrammabilityService }] });
|
|
264
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zaXJpby9zcmMvbGliL3NlcnZpY2VzL2NoYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQWEzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7OztBQUc5QyxNQUFNLE9BQU8sWUFBWTtJQUdiO0lBRFYsWUFDVSxlQUF1QztRQUF2QyxvQkFBZSxHQUFmLGVBQWUsQ0FBd0I7SUFDakQsQ0FBQztJQUVELFVBQVUsQ0FBQyxTQUFjLEVBQUUsU0FBb0IsRUFBRSxRQUFnQjtRQUMvRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDOUQsT0FBTztZQUNMLE1BQU0sRUFBRSxNQUFNO1lBQ2QsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7WUFDMUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQztTQUM1QixDQUFDO0lBQ0osQ0FBQztJQUVPLE1BQU0sQ0FBQyxTQUFjLEVBQUUsR0FBVyxFQUFFLFFBQWdCO1FBQzFELE9BQU8sUUFBUSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVPLFNBQVMsQ0FBQyxTQUFjLEVBQUUsU0FBb0IsRUFBRSxRQUFnQjtRQUN0RSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDcEMsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtnQkFDakQsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFF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S0FBSyxLQUFLLFFBQVEsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVPLFdBQVcsQ0FBQyxLQUFVO1FBQzVCLE9BQU8sS0FBSyxLQUFLLFlBQVksSUFBSSxLQUFLLEtBQUssVUFBVSxDQUFDO0lBQ3hELENBQUM7SUFFTyxlQUFlLENBQUMsS0FBVTtRQUNoQyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLEtBQUssTUFBTSxDQUFDO0lBQ3RFLENBQUM7d0dBOVVVLFlBQVk7NEdBQVosWUFBWTs7NEZBQVosWUFBWTtrQkFEeEIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBQcm9ncmFtbWFiaWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvcHJvZ3JhbW1hYmlsaXR5LnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIEFnQ2hhcnRPcHRpb25zLCBBZ0Jhc2VTZXJpZXNPcHRpb25zLFxyXG4gIEFnQmFyU2VyaWVzT3B0aW9ucywgQWdCYXJTZXJpZXNPcHRpb25zTmFtZXMsIFxyXG4gIEFnTGluZVNlcmllc09wdGlvbnMsIEFnTGluZVNlcmllc09wdGlvbnNOYW1lcyxcclxuICBBZ0FyZWFTZXJpZXNPcHRpb25zLCBBZ0FyZWFTZXJpZXNPcHRpb25zTmFtZXMsXHJcbiAgQWdTY2F0dGVyU2VyaWVzT3B0aW9ucywgQWdTY2F0dGVyU2VyaWVzT3B0aW9uc05hbWVzLFxyXG4gIEFnQnViYmxlU2VyaWVzT3B0aW9ucywgQWdCdWJibGVTZXJpZXNPcHRpb25zTmFtZXMsXHJcbiAgQWdQaWVTZXJpZXNPcHRpb25zLCBBZ1BpZVNlcmllc09wdGlvbnNOYW1lcyxcclxuICBBZ0RvbnV0U2VyaWVzT3B0aW9ucywgQWdEb251dFNlcmllc09wdGlvbnNOYW1lc1xyXG59IGZyb20gJ2FnLWNoYXJ0cy1jb21tdW5pdHknO1xyXG5pbXBvcnQgeyBsb2NhbGl6ZSB9IGZyb20gJy4uL2xvY2FsZS9sb2NhbGl6ZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDaGFydFNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcHJvZ3JhbW1hYmlsaXR5OiBQcm9ncmFtbWFiaWxpdHlTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBnZXRPcHRpb25zKGNvbXBvbmVudDogYW55LCBmb3JtR3JvdXA6IEZvcm1Hcm91cCwgbGFuZ3VhZ2U6IHN0cmluZyk6IEFnQ2hhcnRPcHRpb25zIHtcclxuICAgIGNvbnN0IHNlcmllcyA9IHRoaXMuZ2V0U2VyaWVzKGNvbXBvbmVudCwgZm9ybUdyb3VwLCBsYW5ndWFnZSk7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBzZXJpZXM6IHNlcmllcyxcclxuICAgICAgLi4udGhpcy5nZXREYXRhUHJvcHMoY29tcG9uZW50LCBmb3JtR3JvdXApLFxyXG4gICAgICAuLi50aGlzLmdldFByb3BzKGNvbXBvbmVudClcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvY2FsZShjb21wb25lbnQ6IGFueSwga2V5OiBzdHJpbmcsIGxhbmd1YWdlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGxvY2FsaXplKGxhbmd1YWdlLCBjb21wb25lbnQsIGtleSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFNlcmllcyhjb21wb25lbnQ6IGFueSwgZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGxhbmd1YWdlOiBzdHJpbmcpOiBhbnlbXSB7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjb21wb25lbnQuc2VyaWVzKSkge1xyXG4gICAgICBjb25zdCBzZXJpZXMgPSBjb21wb25lbnQuc2VyaWVzLm1hcCgoc2VyaWU6IGFueSkgPT4ge1xyXG4gICAgICAgIHN3aXRjaCAoc2VyaWUudHlwZSkge1xyXG4gICAgICAgICAgY2FzZSBcImJhclwiOlxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRCYXJTZXJpZXNPcHRpb25zKHNlcmllLCBmb3JtR3JvdXAsIGxhbmd1YWdlKTtcclxuICAgICAgICAgIGNhc2UgXCJsaW5lXCI6XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldExpbmVTZXJpZXNPcHRpb25zKHNlcmllLCBmb3JtR3JvdXAsIGxhbmd1YWdlKTtcclxuICAgICAgICAgIGNhc2UgXCJhcmVhXCI6XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEFyZWFTZXJpZXNPcHRpb25zKHNlcmllLCBmb3JtR3JvdXAsIGxhbmd1YWdlKTtcclxuICAgICAgICAgIGNhc2UgXCJzY2F0dGVyXCI6XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFNjYXR0ZXJTZXJpZXNPcHRpb25zKHNlcmllLCBmb3JtR3JvdXAsIGxhbmd1YWdlKTtcclxuICAgICAgICAgIGNhc2UgXCJidWJibGVcIjpcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QnViYmxlU2VyaWVzT3B0aW9ucyhzZXJpZSwgZm9ybUdyb3VwLCBsYW5ndWFnZSk7XHJcbiAgICAgICAgICBjYXNlIFwicGllXCI6XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFBpZVNlcmllc09wdGlvbnMoc2VyaWUsIGZvcm1Hcm91cCwgbGFuZ3VhZ2UpO1xyXG4gICAgICAgICAgY2FzZSBcImRvbnV0XCI6XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldERvbnV0U2VyaWVzT3B0aW9ucyhzZXJpZSwgZm9ybUdyb3VwLCBsYW5ndWFnZSk7XHJcbiAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICByZXR1cm4ge307XHJcbiAgICAgICAgfSAgICAgICAgICAgICAgICAgIFxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIHNlcmllcztcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFNlcmllc09wdGlvbnNOYW1lcyhzZXJpZTogYW55LCBsYW5ndWFnZTogc3RyaW5nKVxyXG4gICAgOiBBZ0JhclNlcmllc09wdGlvbnNOYW1lcyB8IEFnTGluZVNlcmllc09wdGlvbnNOYW1lcyAge1xyXG4gICAgY29uc3Qgb3B0aW9uczogQWdCYXJTZXJpZXNPcHRpb25zTmFtZXMgfCBBZ0xpbmVTZXJpZXNPcHRpb25zTmFtZXMgPSB7fTtcclxuXHJcbiAgICBpZiAodGhpcy5pc1N0cmluZyhzZXJpZS54TmFtZSkpXHJcbiAgICAgIG9wdGlvbnMueE5hbWUgPSB0aGlzLmxvY2FsZShzZXJpZSwgXCJ4TmFtZVwiLCBsYW5ndWFnZSk7XHJcblxyXG4gICAgaWYgKHRoaXMuaXNTdHJpbmcoc2VyaWUueU5hbWUpKVxyXG4gICAgICBvcHRpb25zLnlOYW1lID0gdGhpcy5sb2NhbGUoc2VyaWUsIFwieU5hbWVcIiwgbGFuZ3VhZ2UpO1xyXG5cclxuICAgIGlmICh0aGlzLmlzU3RyaW5nKHNlcmllLmxlZ2VuZEl0ZW1OYW1lKSlcclxuICAgICAgb3B0aW9ucy5sZWdlbmRJdGVtTmFtZSA9IHRoaXMubG9jYWxlKHNlcmllLCBcImxlZ2VuZEl0ZW1OYW1lXCIsIGxhbmd1YWdlKTtcclxuXHJcbiAgICByZXR1cm4gb3B0aW9ucztcclxuICB9XHJcbiAgXHJcbiAgcHJpdmF0ZSBnZXRCYXNlU2VyaWVzT3B0aW9ucyhzZXJpZTogYW55LCBmb3JtR3JvdXA6IEZvcm1Hcm91cCk6IEFnQmFzZVNlcmllc09wdGlvbnM8YW55PlxyXG4gIHtcclxuICAgIGNvbnN0IG9wdGlvbnM6IEFnQmFzZVNlcmllc09wdGlvbnM8YW55PiA9IHtcclxuICAgICAgLi4udGhpcy5nZXREYXRhUHJvcHMoc2VyaWUsIGZvcm1Hcm91cClcclxuICAgIH07XHJcblxyXG4gICAgaWYgKHRoaXMuaXNCb29sZWFuKHNlcmllLnZpc2libGUpKVxyXG4gICAgICBvcHRpb25zLnZpc2libGUgPSBzZXJpZS52aXNpYmxlO1xyXG5cclxuICAgIHJldHVybiBvcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRCYXJTZXJpZXNPcHRpb25zKHNlcmllOiBhbnksIGZvcm1Hcm91cDogRm9ybUdyb3VwLCBsYW5ndWFnZTogc3RyaW5nKTogQWdCYXJTZXJpZXNPcHRpb25zIHtcclxuICAgIGNvbnN0IG9wdGlvbnM6IEFnQmFyU2VyaWVzT3B0aW9ucyA9IHtcclxuICAgICAgdHlwZTogXCJiYXJcIixcclxuICAgICAgeEtleTogc2VyaWUueEtleSxcclxuICAgICAgeUtleTogc2VyaWUueUtleSxcclxuICAgICAgLi4udGhpcy5nZXRCYXNlU2VyaWVzT3B0aW9ucyhzZXJpZSwgZm9ybUdyb3VwKSxcclxuICAgICAgLi4udGhpcy5nZXRTZXJpZXNPcHRpb25zTmFtZXMoc2VyaWUsIGxhbmd1YWdlKVxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAodGhpcy5pc0RpcmVjdGlvbihzZXJpZS5kaXJlY3Rpb24pKVxyXG4gICAgICBvcHRpb25zLmRpcmVjdGlvbiA9IHNlcmllLmRpcmVjdGlvbjtcclxuXHJcbiAgICBpZiAodGhpcy5pc0Jvb2xlYW4oc2VyaWUuc3RhY2tlZCkpXHJcbiAgICAgIG9wdGlvbnMuc3RhY2tlZCA9IHNlcmllLnN0YWNrZWQ7XHJcblxyXG4gICAgaWYgKHRoaXMuaXNOdW1iZXIoc2VyaWUubm9ybWFsaXplZFRvKSlcclxuICAgICAgb3B0aW9ucy5ub3JtYWxpemVkVG8gPSBzZXJpZS5ub3JtYWxpemVkVG87XHJcblxyXG4gICAgaWYgKHRoaXMuaXNTdHJpbmcoc2VyaWUuc3RhY2tHcm91cCkpXHJcbiAgICAgIG9wdGlvbnMuc3RhY2tHcm91cCA9IHNlcmllLnN0YWNrR3JvdXA7XHJcblxyXG4gICAgcmV0dXJuIG9wdGlvbnM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldExpbmVTZXJpZXNPcHRpb25zKHNlcmllOiBhbnksIGZvcm1Hcm91cDogRm9ybUdyb3VwLCBsYW5ndWFnZTogc3RyaW5nKTogQWdMaW5lU2VyaWVzT3B0aW9ucyB7XHJcbiAgICBjb25zdCBvcHRpb25zOiBBZ0xpbmVTZXJpZXNPcHRpb25zID0ge1xyXG4gICAgICB0eXBlOiBcImxpbmVcIixcclxuICAgICAgeEtleTogc2VyaWUueEtleSxcclxuICAgICAgeUtleTogc2VyaWUueUtleSxcclxuICAgICAgLi4udGhpcy5nZXRCYXNlU2VyaWVzT3B0aW9ucyhzZXJpZSwgZm9ybUdyb3VwKSxcclxuICAgICAgLi4udGhpcy5nZXRTZXJpZXNPcHRpb25zTmFtZXMoc2VyaWUsIGxhbmd1YWdlKVxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAodGhpcy5pc0ludGVycG9sYXRpb24oc2VyaWUuaW50ZXJwb2xhdGlvbikpIHsgXHJcbiAgICAgIG9wdGlvbnMuaW50ZXJwb2xhdGlvbiA9IHtcclxuICAgICAgICB0eXBlOiBzZXJpZS5pbnRlcnBvbGF0aW9uXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG9wdGlvbnM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEFyZWFTZXJpZXNPcHRpb25zKHNlcmllOiBhbnksIGZvcm1Hcm91cDogRm9ybUdyb3VwLCBsYW5ndWFnZTogc3RyaW5nKTogQWdBcmVhU2VyaWVzT3B0aW9ucyB7XHJcbiAgICBjb25zdCBvcHRpb25zOiBBZ0FyZWFTZXJpZXNPcHRpb25zID0ge1xyXG4gICAgICB0eXBlOiBcImFyZWFcIixcclxuICAgICAgeEtleTogc2VyaWUueEtleSxcclxuICAgICAgeUtleTogc2VyaWUueUtleSxcclxuICAgICAgLi4udGhpcy5nZXRCYXNlU2VyaWVzT3B0aW9ucyhzZXJpZSwgZm9ybUdyb3VwKSxcclxuICAgICAgLi4udGhpcy5nZXRBcmVhU2VyaWVzT3B0aW9uc05hbWVzKHNlcmllLCBsYW5ndWFnZSlcclxuICAgIH07XHJcblxyXG4gICAgaWYgKHRoaXMuaXNCb29sZWFuKHNlcmllLnN0YWNrZWQpKVxyXG4gICAgICBvcHRpb25zLnN0YWNrZWQgPSBzZXJpZS5zdGFja2VkO1xyXG5cclxuICAgIGlmICh0aGlzLmlzTnVtYmVyKHNlcmllLm5vcm1hbGl6ZWRUbykpXHJcbiAgICAgIG9wdGlvbnMubm9ybWFsaXplZFRvID0gc2VyaWUubm9ybWFsaXplZFRvO1xyXG5cclxuICAgIHJldHVybiBvcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRBcmVhU2VyaWVzT3B0aW9uc05hbWVzKHNlcmllOiBhbnksIGxhbmd1YWdlOiBzdHJpbmcpXHJcbiAgICA6IEFnQXJlYVNlcmllc09wdGlvbnNOYW1lcyB7XHJcbiAgICBjb25zdCBvcHRpb25zOiBBZ0FyZWFTZXJpZXNPcHRpb25zTmFtZXMgPSB7fTtcclxuXHJcbiAgICBpZiAoc2VyaWUueE5hbWUpXHJcbiAgICAgIG9wdGlvbnMueE5hbWUgPSB0aGlzLmxvY2FsZShzZXJpZSwgXCJ4TmFtZVwiLCBsYW5ndWFnZSk7XHJcblxyXG4gICAgaWYgKHNlcmllLnlOYW1lKVxyXG4gICAgICBvcHRpb25zLnlOYW1lID0gdGhpcy5sb2NhbGUoc2VyaWUsIFwieU5hbWVcIiwgbGFuZ3VhZ2UpO1xyXG5cclxuICAgIHJldHVybiBvcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRTY2F0dGVyU2VyaWVzT3B0aW9ucyhzZXJpZTogYW55LCBmb3JtR3JvdXA6IEZvcm1Hcm91cCwgbGFuZ3VhZ2U6IHN0cmluZyk6IEFnU2NhdHRlclNlcmllc09wdGlvbnMge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdHlwZTogXCJzY2F0dGVyXCIsXHJcbiAgICAgIHhLZXk6IHNlcmllLnhLZXksXHJcbiAgICAgIHlLZXk6IHNlcmllLnlLZXksXHJcbiAgICAgIGxhYmVsS2V5OiBzZXJpZS5sYWJlbEtleSxcclxuICAgICAgLi4udGhpcy5nZXRCYXNlU2VyaWVzT3B0aW9ucyhzZXJpZSwgZm9ybUdyb3VwKSxcclxuICAgICAgLi4udGhpcy5nZXRTY2F0dGVyU2VyaWVzT3B0aW9uc05hbWVzKHNlcmllLCBsYW5ndWFnZSlcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFNjYXR0ZXJTZXJpZXNPcHRpb25zTmFtZXMoc2VyaWU6IGFueSwgbGFuZ3VhZ2U6IHN0cmluZylcclxuICAgIDogQWdTY2F0dGVyU2VyaWVzT3B0aW9uc05hbWVzIHtcclxuICAgIGNvbnN0IG9wdGlvbnM6IEFnU2NhdHRlclNlcmllc09wdGlvbnNOYW1lcyA9IHt9O1xyXG5cclxuICAgIGlmIChzZXJpZS54TmFtZSlcclxuICAgICAgb3B0aW9ucy54TmFtZSA9IHRoaXMubG9jYWxlKHNlcmllLCBcInhOYW1lXCIsIGxhbmd1YWdlKTtcclxuXHJcbiAgICBpZiAoc2VyaWUueU5hbWUpXHJcbiAgICAgIG9wdGlvbnMueU5hbWUgPSB0aGlzLmxvY2FsZShzZXJpZSwgXCJ5TmFtZVwiLCBsYW5ndWFnZSk7XHJcblxyXG4gICAgaWYgKHNlcmllLmxhYmVsTmFtZSlcclxuICAgICAgb3B0aW9ucy5sYWJlbE5hbWUgPSB0aGlzLmxvY2FsZShzZXJpZSwgXCJsYWJlbE5hbWVcIiwgbGFuZ3VhZ2UpO1xyXG5cclxuICAgIHJldHVybiBvcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRCdWJibGVTZXJpZXNPcHRpb25zKHNlcmllOiBhbnksIGZvcm1Hcm91cDogRm9ybUdyb3VwLCBsYW5ndWFnZTogc3RyaW5nKTogQWdCdWJibGVTZXJpZXNPcHRpb25zIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHR5cGU6IFwiYnViYmxlXCIsXHJcbiAgICAgIHhLZXk6IHNlcmllLnhLZXksXHJcbiAgICAgIHlLZXk6IHNlcmllLnlLZXksXHJcbiAgICAgIHNpemVLZXk6IHNlcmllLnNpemVLZXksXHJcbiAgICAgIGxhYmVsS2V5OiBzZXJpZS5sYWJlbEtleSxcclxuICAgICAgLi4udGhpcy5nZXRCYXNlU2VyaWVzT3B0aW9ucyhzZXJpZSwgZm9ybUdyb3VwKSxcclxuICAgICAgLi4udGhpcy5nZXRCdWJibGVTZXJpZXNPcHRpb25zTmFtZXMoc2VyaWUsIGxhbmd1YWdlKVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0QnViYmxlU2VyaWVzT3B0aW9uc05hbWVzKHNlcmllOiBhbnksIGxhbmd1YWdlOiBzdHJpbmcpXHJcbiAgICA6IEFnQnViYmxlU2VyaWVzT3B0aW9uc05hbWVzIHtcclxuICAgIGNvbnN0IG9wdGlvbnM6IEFnQnViYmxlU2VyaWVzT3B0aW9uc05hbWVzID0ge307XHJcblxyXG4gICAgaWYgKHNlcmllLnhOYW1lKVxyXG4gICAgICBvcHRpb25zLnhOYW1lID0gdGhpcy5sb2NhbGUoc2VyaWUsIFwieE5hbWVcIiwgbGFuZ3VhZ2UpO1xyXG5cclxuICAgIGlmIChzZXJpZS55TmFtZSlcclxuICAgICAgb3B0aW9ucy55TmFtZSA9IHRoaXMubG9jYWxlKHNlcmllLCBcInlOYW1lXCIsIGxhbmd1YWdlKTtcclxuXHJcbiAgICBpZiAoc2VyaWUuc2l6ZU5hbWUpXHJcbiAgICAgIG9wdGlvbnMuc2l6ZU5hbWUgPSB0aGlzLmxvY2FsZShzZXJpZSwgXCJzaXplTmFtZVwiLCBsYW5ndWFnZSk7XHJcblxyXG4gICAgaWYgKHNlcmllLmxhYmVsTmFtZSlcclxuICAgICAgb3B0aW9ucy5sYWJlbE5hbWUgPSB0aGlzLmxvY2FsZShzZXJpZSwgXCJsYWJlbE5hbWVcIiwgbGFuZ3VhZ2UpO1xyXG5cclxuICAgIHJldHVybiBvcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRQaWVTZXJpZXNPcHRpb25zKHNlcmllOiBhbnksIGZvcm1Hcm91cDogRm9ybUdyb3VwLCBsYW5ndWFnZTogc3RyaW5nKTogQWdQaWVTZXJpZXNPcHRpb25zIHtcclxuICAgIGNvbnN0IG9wdGlvbnM6IEFnUGllU2VyaWVzT3B0aW9ucyA9IHtcclxuICAgICAgdHlwZTogXCJwaWVcIixcclxuICAgICAgYW5nbGVLZXk6IHNlcmllLmFuZ2xlS2V5LFxyXG4gICAgICAuLi50aGlzLmdldEJhc2VTZXJpZXNPcHRpb25zKHNlcmllLCBmb3JtR3JvdXApLFxyXG4gICAgICAuLi50aGlzLmdldFBpZVNlcmllc09wdGlvbnNOYW1lcyhzZXJpZSwgbGFuZ3VhZ2UpXHJcbiAgICB9O1xyXG5cclxuICAgIGlmICh0aGlzLmlzU3RyaW5nKHNlcmllLnJhZGl1c0tleSkpXHJcbiAgICAgIG9wdGlvbnMucmFkaXVzS2V5ID0gc2VyaWUucmFkaXVzS2V5O1xyXG5cclxuICAgIGlmICh0aGlzLmlzU3RyaW5nKHNlcmllLmNhbGxvdXRMYWJlbEtleSkpXHJcbiAgICAgIG9wdGlvbnMuY2FsbG91dExhYmVsS2V5ID0gc2VyaWUuY2FsbG91dExhYmVsS2V5O1xyXG5cclxuICAgIGlmICh0aGlzLmlzU3RyaW5nKHNlcmllLnNlY3RvckxhYmVsS2V5KSlcclxuICAgICAgb3B0aW9ucy5zZWN0b3JMYWJlbEtleSA9IHNlcmllLnNlY3RvckxhYmVsS2V5O1xyXG5cclxuICAgIGlmICh0aGlzLmlzU3RyaW5nKHNlcmllLmxlZ2VuZEl0ZW1LZXkpKVxyXG4gICAgICBvcHRpb25zLmxlZ2VuZEl0ZW1LZXkgPSBzZXJpZS5sZWdlbmRJdGVtS2V5O1xyXG5cclxuICAgIHJldHVybiBvcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRQaWVTZXJpZXNPcHRpb25zTmFtZXMoc2VyaWU6IGFueSwgbGFuZ3VhZ2U6IHN0cmluZylcclxuICAgIDogQWdQaWVTZXJpZXNPcHRpb25zTmFtZXMge1xyXG4gICAgY29uc3Qgb3B0aW9uczogQWdQaWVTZXJpZXNPcHRpb25zTmFtZXMgPSB7fTtcclxuXHJcbiAgICBpZiAoc2VyaWUuYW5nbGVOYW1lKVxyXG4gICAgICBvcHRpb25zLmFuZ2xlTmFtZSA9IHRoaXMubG9jYWxlKHNlcmllLCBcImFuZ2xlTmFtZVwiLCBsYW5ndWFnZSk7XHJcblxyXG4gICAgaWYgKHNlcmllLnJhZGl1c05hbWUpXHJcbiAgICAgIG9wdGlvbnMucmFkaXVzTmFtZSA9IHRoaXMubG9jYWxlKHNlcmllLCBcInJhZGl1c05hbWVcIiwgbGFuZ3VhZ2UpO1xyXG5cclxuICAgIGlmIChzZXJpZS5jYWxsb3V0TGFiZWxOYW1lKVxyXG4gICAgICBvcHRpb25zLmNhbGxvdXRMYWJlbE5hbWUgPSB0aGlzLmxvY2FsZShzZXJpZSwgXCJjYWxsb3V0TGFiZWxOYW1lXCIsIGxhbmd1YWdlKTtcclxuXHJcbiAgICBpZiAoc2VyaWUuc2VjdG9yTGFiZWxOYW1lKVxyXG4gICAgICBvcHRpb25zLnNlY3RvckxhYmVsTmFtZSA9IHRoaXMubG9jYWxlKHNlcmllLCBcInNlY3RvckxhYmVsTmFtZVwiLCBsYW5ndWFnZSk7XHJcblxyXG4gICAgcmV0dXJuIG9wdGlvbnM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldERvbnV0U2VyaWVzT3B0aW9ucyhzZXJpZTogYW55LCBmb3JtR3JvdXA6IEZvcm1Hcm91cCwgbGFuZ3VhZ2U6IHN0cmluZyk6IEFnRG9udXRTZXJpZXNPcHRpb25zIHtcclxuICAgIGNvbnN0IG9wdGlvbnM6IEFnRG9udXRTZXJpZXNPcHRpb25zID0ge1xyXG4gICAgICB0eXBlOiBcImRvbnV0XCIsXHJcbiAgICAgIGFuZ2xlS2V5OiBzZXJpZS5hbmdsZUtleSxcclxuICAgICAgLi4udGhpcy5nZXRCYXNlU2VyaWVzT3B0aW9ucyhzZXJpZSwgZm9ybUdyb3VwKSxcclxuICAgICAgLi4udGhpcy5nZXREb251dFNlcmllc09wdGlvbnNOYW1lcyhzZXJpZSwgbGFuZ3VhZ2UpXHJcbiAgICB9O1xyXG5cclxuICAgIGlmICh0aGlzLmlzU3RyaW5nKHNlcmllLnJhZGl1c0tleSkpXHJcbiAgICAgIG9wdGlvbnMucmFkaXVzS2V5ID0gc2VyaWUucmFkaXVzS2V5O1xyXG5cclxuICAgIGlmICh0aGlzLmlzU3RyaW5nKHNlcmllLmNhbGxvdXRMYWJlbEtleSkpXHJcbiAgICAgIG9wdGlvbnMuY2FsbG91dExhYmVsS2V5ID0gc2VyaWUuY2FsbG91dExhYmVsS2V5O1xyXG5cclxuICAgIGlmICh0aGlzLmlzU3RyaW5nKHNlcmllLnNlY3RvckxhYmVsS2V5KSlcclxuICAgICAgb3B0aW9ucy5zZWN0b3JMYWJlbEtleSA9IHNlcmllLnNlY3RvckxhYmVsS2V5O1xyXG5cclxuICAgIGlmICh0aGlzLmlzU3RyaW5nKHNlcmllLmxlZ2VuZEl0ZW1LZXkpKVxyXG4gICAgICBvcHRpb25zLmxlZ2VuZEl0ZW1LZXkgPSBzZXJpZS5sZWdlbmRJdGVtS2V5O1xyXG5cclxuICAgIHJldHVybiBvcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXREb251dFNlcmllc09wdGlvbnNOYW1lcyhzZXJpZTogYW55LCBsYW5ndWFnZTogc3RyaW5nKVxyXG4gICAgOiBBZ0RvbnV0U2VyaWVzT3B0aW9uc05hbWVzIHtcclxuICAgIGNvbnN0IG9wdGlvbnM6IEFnRG9udXRTZXJpZXNPcHRpb25zTmFtZXMgPSB7fTtcclxuXHJcbiAgICBpZiAoc2VyaWUuYW5nbGVOYW1lKVxyXG4gICAgICBvcHRpb25zLmFuZ2xlTmFtZSA9IHRoaXMubG9jYWxlKHNlcmllLCBcImFuZ2xlTmFtZVwiLCBsYW5ndWFnZSk7XHJcblxyXG4gICAgaWYgKHNlcmllLnJhZGl1c05hbWUpXHJcbiAgICAgIG9wdGlvbnMucmFkaXVzTmFtZSA9IHRoaXMubG9jYWxlKHNlcmllLCBcInJhZGl1c05hbWVcIiwgbGFuZ3VhZ2UpO1xyXG5cclxuICAgIGlmIChzZXJpZS5jYWxsb3V0TGFiZWxOYW1lKVxyXG4gICAgICBvcHRpb25zLmNhbGxvdXRMYWJlbE5hbWUgPSB0aGlzLmxvY2FsZShzZXJpZSwgXCJjYWxsb3V0TGFiZWxOYW1lXCIsIGxhbmd1YWdlKTtcclxuXHJcbiAgICBpZiAoc2VyaWUuc2VjdG9yTGFiZWxOYW1lKVxyXG4gICAgICBvcHRpb25zLnNlY3RvckxhYmVsTmFtZSA9IHRoaXMubG9jYWxlKHNlcmllLCBcInNlY3RvckxhYmVsTmFtZVwiLCBsYW5ndWFnZSk7XHJcblxyXG4gICAgcmV0dXJuIG9wdGlvbnM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFByb3BzKGNvbXBvbmVudDogYW55KTogYW55IHtcclxuICAgIGNvbnN0IHByb3BzOiBhbnkgPSB7fTtcclxuXHJcbiAgICBpZiAoY29tcG9uZW50ICYmIGNvbXBvbmVudC50aXRsZSkge1xyXG4gICAgICBwcm9wcy50aXRsZSA9IHsgdGV4dDogY29tcG9uZW50LnRpdGxlIH07XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbXBvbmVudCAmJiBjb21wb25lbnQuc3VidGl0bGUpIHtcclxuICAgICAgcHJvcHMuc3VidGl0bGUgPSB7IHRleHQ6IGNvbXBvbmVudC5zdWJ0aXRsZSB9O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBwcm9wcztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RGF0YVByb3BzKGNvbXBvbmVudDogYW55LCBmb3JtR3JvdXA6IEZvcm1Hcm91cCkge1xyXG4gICAgaWYgKGNvbXBvbmVudCAmJiBjb21wb25lbnQuZGF0YSkge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGRhdGE6IHRoaXMucHJvZ3JhbW1hYmlsaXR5LmV2YWx1YXRlKGZvcm1Hcm91cCwgY29tcG9uZW50LmRhdGEpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4geyB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0Jvb2xlYW4odmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nIHx8IHZhbHVlIGluc3RhbmNlb2YgQm9vbGVhbjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNTdHJpbmcodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHwgdmFsdWUgaW5zdGFuY2VvZiBTdHJpbmc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzTnVtYmVyKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInICYmIGlzRmluaXRlKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNEaXJlY3Rpb24odmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHZhbHVlID09PSAnaG9yaXpvbnRhbCcgfHwgdmFsdWUgPT09ICd2ZXJ0aWNhbCc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzSW50ZXJwb2xhdGlvbih2YWx1ZTogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdmFsdWUgPT09ICdsaW5lYXInIHx8IHZhbHVlID09PSAnc21vb3RoJyB8fCB2YWx1ZSA9PT0gJ3N0ZXAnO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import { ToBoundArrows } from '../utils/functions';
|
|
3
3
|
import { DialogComponent } from '../dialog/dialog.component';
|
|
4
|
+
import { DynamicFormComponent } from '../dynamic-form/dynamic-form.component';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
import * as i1 from "ngx-sirio-lib";
|
|
6
7
|
export class DialogService {
|
|
@@ -64,7 +65,8 @@ export class DialogService {
|
|
|
64
65
|
showDialog(formSchema, options) {
|
|
65
66
|
const data = {
|
|
66
67
|
formSchema,
|
|
67
|
-
options
|
|
68
|
+
options,
|
|
69
|
+
dynamicFormType: DynamicFormComponent
|
|
68
70
|
};
|
|
69
71
|
this.dialogService
|
|
70
72
|
.openDialog(DialogComponent, data);
|
|
@@ -100,4 +102,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
100
102
|
providedIn: 'root'
|
|
101
103
|
}]
|
|
102
104
|
}], ctorParameters: () => [{ type: i1.SirioDialogService }] });
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2lyaW8vc3JjL2xpYi9zZXJ2aWNlcy9kaWFsb2cuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBR3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7OztBQUs5RSxNQUFNLE9BQU8sYUFBYTtJQUdkO0lBRFYsWUFDVSxhQUFpQztRQUFqQyxrQkFBYSxHQUFiLGFBQWEsQ0FBb0I7SUFFekMsQ0FBQztJQUVILFVBQVUsQ0FBQyxVQUFlLEVBQUUsT0FBMkI7UUFDckQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFZLEVBQUUsT0FBdUI7UUFDekMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9DLE1BQU0sV0FBVyxHQUF1QjtZQUN0QyxHQUFHLE9BQU87WUFDVixJQUFJLEVBQUUsU0FBUztZQUNmLE9BQU8sRUFBRSxJQUFJO1lBQ2IsUUFBUSxFQUFFLEtBQUs7WUFDZixPQUFPLEVBQUUsS0FBSztZQUNkLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLFlBQVksRUFBRSxLQUFLO1lBQ25CLGFBQWEsRUFBRSxLQUFLO1NBQ3JCLENBQUM7UUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBSSxDQUFDLElBQVksRUFBRSxPQUF1QjtRQUN4QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0MsTUFBTSxXQUFXLEdBQXNCO1lBQ3JDLEdBQUcsT0FBTztZQUNWLElBQUksRUFBRSxNQUFNO1lBQ1osT0FBTyxFQUFFLElBQUk7WUFDYixRQUFRLEVBQUUsS0FBSztZQUNmLE9BQU8sRUFBRSxLQUFLO1lBQ2QsYUFBYSxFQUFFLEtBQUs7WUFDcEIsWUFBWSxFQUFFLEtBQUs7WUFDbkIsYUFBYSxFQUFFLEtBQUs7U0FDckIsQ0FBQztRQUNGLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBWSxFQUFFLE9BQXVCO1FBQzNDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQyxNQUFNLFdBQVcsR0FBc0I7WUFDckMsR0FBRyxPQUFPO1lBQ1YsSUFBSSxFQUFFLE1BQU07WUFDWixPQUFPLEVBQUUsT0FBTztZQUNoQixRQUFRLEVBQUUsS0FBSztZQUNmLE9BQU8sRUFBRSxLQUFLO1lBQ2QsYUFBYSxFQUFFLEtBQUs7WUFDcEIsWUFBWSxFQUFFLEtBQUs7WUFDbkIsYUFBYSxFQUFFLEtBQUs7U0FDckIsQ0FBQztRQUNGLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxhQUFhLENBQUMsSUFBSSxFQUFFO1lBQ3pCLFlBQVk7WUFDWixPQUFPO1lBQ1AsTUFBTTtZQUNOLFNBQVM7U0FDVixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sVUFBVSxDQUFDLFVBQWUsRUFBRSxPQUEyQjtRQUU3RCxNQUFNLElBQUksR0FBRztZQUNYLFVBQVU7WUFDVixPQUFPO1lBQ1AsZUFBZSxFQUFFLG9CQUFvQjtTQUN0QyxDQUFDO1FBRUYsSUFBSSxDQUFDLGFBQWE7YUFDZixVQUFVLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxJQUFZO1FBQ25DLE9BQU87WUFDTCxPQUFPLEVBQUU7Z0JBQ1A7b0JBQ0UsWUFBWSxFQUFFO3dCQUNaOzRCQUNFLE1BQU0sRUFBRSxJQUFJOzRCQUNaLE1BQU0sRUFBRSxNQUFNOzRCQUNkLFFBQVEsRUFBRTtnQ0FDUixLQUFLLEVBQUUsYUFBYTtnQ0FDcEIsU0FBUyxFQUFFLElBQUk7NkJBQ2hCOzRCQUNELElBQUksRUFBRSxlQUFlO3lCQUN0QjtxQkFDRjtvQkFDRCxNQUFNLEVBQUUsU0FBUztvQkFDakIsSUFBSSxFQUFFLGNBQWM7b0JBQ3BCLGVBQWUsRUFBRSxFQUFFO2lCQUNwQjthQUNGO1NBQ0YsQ0FBQTtJQUNILENBQUM7d0dBbEdVLGFBQWE7NEdBQWIsYUFBYSxjQUZaLE1BQU07OzRGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU2lyaW9EaWFsb2dTZXJ2aWNlLCBEaWFsb2dUeXBlcywgRGlhbG9nU2l6ZXMgfSBmcm9tICduZ3gtc2lyaW8tbGliJztcclxuaW1wb3J0IHsgSUV2YWx1YXRvclByb3ZpZGVyIH0gZnJvbSAnLi4vc2VydmljZXMvcHJvZ3JhbW1hYmlsaXR5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUb0JvdW5kQXJyb3dzIH0gZnJvbSAnLi4vdXRpbHMvZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vZGlhbG9nL2RpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL2R5bmFtaWMtZm9ybS9keW5hbWljLWZvcm0uY29tcG9uZW50JztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIERpYWxvZ1NlcnZpY2UgaW1wbGVtZW50cyBJRXZhbHVhdG9yUHJvdmlkZXIge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZGlhbG9nU2VydmljZTogU2lyaW9EaWFsb2dTZXJ2aWNlXHJcbiAgICApXHJcbiAgeyB9XHJcblxyXG4gIG9wZW5EaWFsb2coZm9ybVNjaGVtYTogYW55LCBvcHRpb25zPzogRm9ybURpYWxvZ09wdGlvbnMpIHtcclxuICAgIHRoaXMuc2hvd0RpYWxvZyhmb3JtU2NoZW1hLCBvcHRpb25zKTtcclxuICB9XHJcblxyXG4gIGFsZXJ0KHRleHQ6IHN0cmluZywgb3B0aW9ucz86IERpYWxvZ09wdGlvbnMpIHtcclxuICAgIGNvbnN0IGZvcm1TY2hlbWEgPSB0aGlzLmNyZWF0ZVRleHRTY2hlbWEodGV4dCk7XHJcbiAgICBjb25zdCBmb3JtT3B0aW9ucyA6IEZvcm1EaWFsb2dPcHRpb25zID0ge1xyXG4gICAgICAuLi5vcHRpb25zLFxyXG4gICAgICB0eXBlOiBcIndhcm5pbmdcIixcclxuICAgICAgYnV0dG9uczogJ09LJyxcclxuICAgICAgaXNEcmF3ZXI6IGZhbHNlLFxyXG4gICAgICBzaG93TmF2OiBmYWxzZSxcclxuICAgICAgc2hvd05hdkJ1dHRvbjogZmFsc2UsXHJcbiAgICAgIHNob3dQcm9ncmVzczogZmFsc2UsXHJcbiAgICAgIHNob3dGb3JtVGl0bGU6IGZhbHNlXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zaG93RGlhbG9nKGZvcm1TY2hlbWEsIGZvcm1PcHRpb25zKTtcclxuICB9XHJcblxyXG4gIGluZm8odGV4dDogc3RyaW5nLCBvcHRpb25zPzogRGlhbG9nT3B0aW9ucykge1xyXG4gICAgY29uc3QgZm9ybVNjaGVtYSA9IHRoaXMuY3JlYXRlVGV4dFNjaGVtYSh0ZXh0KTtcclxuICAgIGNvbnN0IGZvcm1PcHRpb25zOiBGb3JtRGlhbG9nT3B0aW9ucyA9IHtcclxuICAgICAgLi4ub3B0aW9ucyxcclxuICAgICAgdHlwZTogXCJpbmZvXCIsXHJcbiAgICAgIGJ1dHRvbnM6ICdPSycsXHJcbiAgICAgIGlzRHJhd2VyOiBmYWxzZSxcclxuICAgICAgc2hvd05hdjogZmFsc2UsXHJcbiAgICAgIHNob3dOYXZCdXR0b246IGZhbHNlLFxyXG4gICAgICBzaG93UHJvZ3Jlc3M6IGZhbHNlLFxyXG4gICAgICBzaG93Rm9ybVRpdGxlOiBmYWxzZVxyXG4gICAgfTtcclxuICAgIHRoaXMuc2hvd0RpYWxvZyhmb3JtU2NoZW1hLCBmb3JtT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBjb25maXJtKHRleHQ6IHN0cmluZywgb3B0aW9ucz86IERpYWxvZ09wdGlvbnMpIHtcclxuICAgIGNvbnN0IGZvcm1TY2hlbWEgPSB0aGlzLmNyZWF0ZVRleHRTY2hlbWEodGV4dCk7XHJcbiAgICBjb25zdCBmb3JtT3B0aW9uczogRm9ybURpYWxvZ09wdGlvbnMgPSB7XHJcbiAgICAgIC4uLm9wdGlvbnMsXHJcbiAgICAgIHR5cGU6IFwiaW5mb1wiLFxyXG4gICAgICBidXR0b25zOiAnWWVzTm8nLFxyXG4gICAgICBpc0RyYXdlcjogZmFsc2UsXHJcbiAgICAgIHNob3dOYXY6IGZhbHNlLFxyXG4gICAgICBzaG93TmF2QnV0dG9uOiBmYWxzZSxcclxuICAgICAgc2hvd1Byb2dyZXNzOiBmYWxzZSxcclxuICAgICAgc2hvd0Zvcm1UaXRsZTogZmFsc2VcclxuICAgIH07ICAgIFxyXG4gICAgdGhpcy5zaG93RGlhbG9nKGZvcm1TY2hlbWEsIGZvcm1PcHRpb25zKTtcclxuICB9XHJcblxyXG4gIGdldENvbnRleHQoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XHJcbiAgICByZXR1cm4gVG9Cb3VuZEFycm93cyh0aGlzLCBbXHJcbiAgICAgICdvcGVuRGlhbG9nJyxcclxuICAgICAgJ2FsZXJ0JyxcclxuICAgICAgJ2luZm8nLFxyXG4gICAgICAnY29uZmlybSdcclxuICAgIF0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzaG93RGlhbG9nKGZvcm1TY2hlbWE6IGFueSwgb3B0aW9ucz86IEZvcm1EaWFsb2dPcHRpb25zKSB7XHJcbiAgICBcclxuICAgIGNvbnN0IGRhdGEgPSB7XHJcbiAgICAgIGZvcm1TY2hlbWEsXHJcbiAgICAgIG9wdGlvbnMsXHJcbiAgICAgIGR5bmFtaWNGb3JtVHlwZTogRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlXHJcbiAgICAgIC5vcGVuRGlhbG9nKERpYWxvZ0NvbXBvbmVudCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVRleHRTY2hlbWEodGV4dDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBcImZvcm1zXCI6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBcImNvbXBvbmVudHNcIjogW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgXCJ0ZXh0XCI6IHRleHQsXHJcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGV4dFwiLFxyXG4gICAgICAgICAgICAgIFwibGF5b3V0XCI6IHtcclxuICAgICAgICAgICAgICAgIFwicm93XCI6IFwiUm93XzE0ejlteW9cIixcclxuICAgICAgICAgICAgICAgIFwiY29sdW1uc1wiOiBudWxsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBcImlkXCI6IFwiRmllbGRfMXhpYnAyclwiXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIF0sXHJcbiAgICAgICAgICBcInR5cGVcIjogXCJkZWZhdWx0XCIsXHJcbiAgICAgICAgICBcImlkXCI6IFwiRm9ybV8wbG90bTJoXCIsXHJcbiAgICAgICAgICBcInNjaGVtYVZlcnNpb25cIjogMThcclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGlhbG9nT3B0aW9ucyB7XHJcbiAgdHlwZT86IERpYWxvZ1R5cGVzO1xyXG4gIHNpemU/OiBEaWFsb2dTaXplcztcclxuICB0aXRsZT86IHN0cmluZztcclxuICBpc0RyYXdlcj86IGJvb2xlYW47ICBcclxuICBjbG9zZUJ1dHRvbj86IGJvb2xlYW47XHJcbiAgbGFuZ3VhZ2U/OiBzdHJpbmc7XHJcbiAgYnV0dG9ucz86IERpYWxvZ0J1dHRvbnM7ICBcclxuICBvblJlc3VsdD86IChyZXN1bHQ6IERpYWxvZ1Jlc3VsdCkgPT4gdm9pZDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGb3JtRGlhbG9nT3B0aW9ucyBleHRlbmRzIERpYWxvZ09wdGlvbnMge1xyXG4gIHZhbHVlPzogYW55O1xyXG4gIGluamVjdG9yPzogSW5qZWN0b3I7XHJcbiAgc2hvd05hdj86IGJvb2xlYW47XHJcbiAgc2hvd05hdkJ1dHRvbj86IGJvb2xlYW47XHJcbiAgc2hvd1Byb2dyZXNzPzogYm9vbGVhbjtcclxuICBzaG93Rm9ybVRpdGxlPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEaWFsb2dSZXN1bHQge1xyXG4gIGFjdGlvbjogRGlhbG9nQWN0aW9uO1xyXG4gIHZhbHVlPzogYW55O1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBEaWFsb2dBY3Rpb24gPSAnT0snXHJcbiAgfCAnQ2FuY2VsJ1xyXG4gIHwgJ1llcydcclxuICB8ICdObydcclxuICB8ICdDb25maXJtJ1xyXG4gIHwgJ0Nsb3NlJ1xyXG4gIHwgJ0Fib3J0J1xyXG4gIHwgJ1JldHJ5J1xyXG4gIHwgJ0lnbm9yZSdcclxuICB8ICdUcnknXHJcbiAgfCAnQ29udGludWUnO1xyXG5cclxuZXhwb3J0IHR5cGUgRGlhbG9nQnV0dG9ucyA9ICdPSydcclxuICB8ICdPS0NhbmNlbCdcclxuICB8ICdDb25maXJtQ2FuY2VsJ1xyXG4gIHwgJ0Fib3J0UmV0cnlJZ25vcmUnXHJcbiAgfCAnWWVzTm9DYW5jZWwnXHJcbiAgfCAnWWVzTm8nXHJcbiAgfCAnUmV0cnlDYW5jZWwnXHJcbiAgfCAnQ2FuY2VsVHJ5Q29udGludWUnO1xyXG4iXX0=
|