axidio-styleguide-library1-v2 0.2.21 → 0.2.22
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.
|
@@ -11,6 +11,7 @@ import * as i4 from "../chart-header-v2/chart-header-v2.component";
|
|
|
11
11
|
export class GuageChartComponent extends ComponentUniqueId {
|
|
12
12
|
constructor() {
|
|
13
13
|
super();
|
|
14
|
+
this.customChartConfiguration = {};
|
|
14
15
|
this.clickEvent = new EventEmitter();
|
|
15
16
|
this.headerMenuclickEvent = new EventEmitter();
|
|
16
17
|
this.chartConfiguration = {};
|
|
@@ -18,6 +19,9 @@ export class GuageChartComponent extends ComponentUniqueId {
|
|
|
18
19
|
this.datatype_status = false;
|
|
19
20
|
this.uniqueId = this.getUniqueId();
|
|
20
21
|
this.isHeaderVisible = true;
|
|
22
|
+
this.CHART_HEADER_HEIGHT = 56;
|
|
23
|
+
this.LARGE_SCREEN_WIDTH = 1400;
|
|
24
|
+
this.XLARGE_SCREEN_WIDTH = 1500;
|
|
21
25
|
this.defaultConfiguration = {
|
|
22
26
|
margin: { top: 40, right: 20, bottom: 20, left: 20 },
|
|
23
27
|
minAngle: -90,
|
|
@@ -28,215 +32,298 @@ export class GuageChartComponent extends ComponentUniqueId {
|
|
|
28
32
|
svgHeight: 80,
|
|
29
33
|
low_colorMap: ['#43CC00', '#FFEF0C', '#FF4E0C'],
|
|
30
34
|
high_colorMap: ['#FF4E0C', '#FFEF0C', '#43CC00'],
|
|
35
|
+
isHeaderVisible: undefined,
|
|
31
36
|
pointerWidth: 10,
|
|
32
37
|
pointerTailLength: 5,
|
|
33
38
|
pointerHeadLengthPercent: 0.7,
|
|
34
39
|
labelInset: 10,
|
|
35
40
|
legendJustified: false,
|
|
36
41
|
backgroundColor: '#FFFFFF',
|
|
42
|
+
isDrilldownChart: undefined,
|
|
37
43
|
ringScaleFactor: 0,
|
|
38
44
|
textsAtCenterScaleFactor: 0,
|
|
39
45
|
currentValueWidthScaleFactor: 60,
|
|
40
46
|
currentValueHeightScaleFactor: 30,
|
|
41
47
|
pointerColor: '#686868',
|
|
48
|
+
isToggleVisible: undefined,
|
|
49
|
+
selectedKpiTooltop: undefined,
|
|
50
|
+
isValueLableAdjust: undefined,
|
|
51
|
+
isTitleHidden: undefined,
|
|
42
52
|
headerMenuOptions: HeaderConfigHelper.headerConfig.headerMenuOptions,
|
|
43
53
|
};
|
|
44
54
|
}
|
|
45
55
|
get isAlertEnabled() {
|
|
46
|
-
return
|
|
56
|
+
return this.chartConfiguration?.headerMenuOptions?.some((option) => option.id === 'editAlert') ?? false;
|
|
47
57
|
}
|
|
48
58
|
ngOnInit() {
|
|
49
|
-
this.
|
|
59
|
+
this.initializeChart();
|
|
50
60
|
}
|
|
51
61
|
ngOnChanges(changes) {
|
|
52
62
|
if (changes['chartData'] || changes['customChartConfiguration']) {
|
|
53
|
-
this.
|
|
63
|
+
this.removeExistingChart();
|
|
64
|
+
this.initializeChart();
|
|
54
65
|
}
|
|
55
66
|
}
|
|
56
67
|
onResized(event) {
|
|
57
|
-
this.
|
|
68
|
+
this.removeExistingChart();
|
|
69
|
+
this.initializeChart();
|
|
58
70
|
}
|
|
59
|
-
|
|
71
|
+
removeExistingChart() {
|
|
60
72
|
d3.select(`#${this.uniqueId}`).remove();
|
|
61
|
-
this.buildChart();
|
|
62
73
|
}
|
|
63
|
-
|
|
64
|
-
if (!this.chartData
|
|
74
|
+
initializeChart() {
|
|
75
|
+
if (!this.chartData)
|
|
65
76
|
return;
|
|
66
|
-
this.
|
|
67
|
-
this.
|
|
77
|
+
this.mergeConfiguration();
|
|
78
|
+
this.setupDataType();
|
|
79
|
+
const { data, metaData } = this.chartData;
|
|
80
|
+
const colorMaps = this.getColorMaps(metaData.colorType);
|
|
81
|
+
const dataSegments = this.calculateDataSegments(data);
|
|
82
|
+
const angleValues = this.calculateAngles(dataSegments);
|
|
83
|
+
const dimensions = this.calculateDimensions();
|
|
84
|
+
const svg = this.createSVG(dimensions);
|
|
85
|
+
const radius = Math.min(dimensions.width, dimensions.height) / 2;
|
|
86
|
+
this.adjustScaleFactors(radius);
|
|
87
|
+
const labelArray = this.createLabelArray(data, dataSegments);
|
|
88
|
+
this.renderArcs(svg, dataSegments, angleValues, colorMaps, metaData, radius);
|
|
89
|
+
this.renderPointer(svg, data, metaData, radius);
|
|
90
|
+
this.renderLabels(svg, labelArray, data, metaData, radius);
|
|
91
|
+
this.renderCenterTexts(svg, metaData, radius, dimensions);
|
|
92
|
+
this.centerSVG(svg, dimensions);
|
|
68
93
|
}
|
|
69
|
-
|
|
94
|
+
mergeConfiguration() {
|
|
70
95
|
Object.keys(this.defaultConfiguration).forEach((key) => {
|
|
71
96
|
this.chartConfiguration[key] = ChartHelper.getValueByConfigurationType(key, this.defaultConfiguration, this.customChartConfiguration);
|
|
72
97
|
});
|
|
73
|
-
this.isHeaderVisible =
|
|
74
|
-
this.chartConfiguration.isHeaderVisible ?? this.isHeaderVisible;
|
|
75
98
|
}
|
|
76
|
-
|
|
77
|
-
const
|
|
78
|
-
|
|
99
|
+
setupDataType() {
|
|
100
|
+
const dataType = this.chartData.metaData.dataType;
|
|
101
|
+
if (dataType) {
|
|
102
|
+
this.dataType = dataType === 'USD' ? '$ ' : dataType;
|
|
103
|
+
this.datatype_status = dataType === 'USD';
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
getColorMaps(colorType) {
|
|
107
|
+
return colorType === 'low'
|
|
79
108
|
? this.chartConfiguration.low_colorMap
|
|
80
109
|
: this.chartConfiguration.high_colorMap;
|
|
81
|
-
this.setDataType(metaData);
|
|
82
|
-
const diffs = data.slice(1).map((v, i) => v - data[i]);
|
|
83
|
-
const total = diffs.reduce((sum, val) => sum + val, 0);
|
|
84
|
-
const angles = this.computeAngles(diffs, total);
|
|
85
|
-
const container = d3.select(this.containerElt.nativeElement);
|
|
86
|
-
const width = parseInt(container.style('width')) -
|
|
87
|
-
this.chartConfiguration.margin.left -
|
|
88
|
-
this.chartConfiguration.margin.right;
|
|
89
|
-
const height = parseInt(d3.select(this.guagecontainerElt.nativeElement).style('height')) -
|
|
90
|
-
this.chartConfiguration.margin.top -
|
|
91
|
-
this.chartConfiguration.margin.bottom -
|
|
92
|
-
56;
|
|
93
|
-
const radius = Math.min(width, height) / 2;
|
|
94
|
-
const svg = this.createSvg(container, width, height, radius);
|
|
95
|
-
this.drawArcs(svg, diffs, data, angles, colorMap, metaData, radius);
|
|
96
|
-
this.drawPointer(svg, data, metaData, radius);
|
|
97
|
-
this.drawLabels(svg, data, diffs, metaData, radius);
|
|
98
|
-
this.drawTextBlocks(svg, metaData, radius);
|
|
99
|
-
}
|
|
100
|
-
setDataType(metaData) {
|
|
101
|
-
if (metaData.dataType) {
|
|
102
|
-
this.dataType = metaData.dataType === 'USD' ? '$ ' : metaData.dataType;
|
|
103
|
-
this.datatype_status = metaData.dataType === 'USD';
|
|
104
|
-
}
|
|
105
110
|
}
|
|
106
|
-
|
|
107
|
-
return
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
111
|
+
calculateDataSegments(data) {
|
|
112
|
+
return data.slice(0, -1).map((value, i) => data[i + 1] - value);
|
|
113
|
+
}
|
|
114
|
+
calculateAngles(dataSegments) {
|
|
115
|
+
const total = dataSegments.reduce((sum, value) => sum + value, 0);
|
|
116
|
+
const angles = [];
|
|
117
|
+
dataSegments.forEach((segment, i) => {
|
|
118
|
+
const angle = (segment / total) * 180;
|
|
119
|
+
angles.push(i === 0 ? angle : angles[i - 1] + angle);
|
|
120
|
+
});
|
|
121
|
+
return angles;
|
|
112
122
|
}
|
|
113
|
-
|
|
114
|
-
|
|
123
|
+
calculateDimensions() {
|
|
124
|
+
const chartContainer = d3.select(this.containerElt.nativeElement);
|
|
125
|
+
const guageContainer = d3.select(this.guagecontainerElt.nativeElement);
|
|
126
|
+
const margin = this.chartConfiguration.margin;
|
|
127
|
+
const width = parseInt(chartContainer.style('width')) - margin.left - margin.right;
|
|
128
|
+
const height = parseInt(guageContainer.style('height')) - margin.top - margin.bottom - this.CHART_HEADER_HEIGHT;
|
|
129
|
+
if (this.chartConfiguration.isHeaderVisible !== undefined) {
|
|
130
|
+
this.isHeaderVisible = this.chartConfiguration.isHeaderVisible;
|
|
131
|
+
}
|
|
132
|
+
return { width, height, margin, chartContainer };
|
|
133
|
+
}
|
|
134
|
+
createSVG(dimensions) {
|
|
135
|
+
const { width, height, margin, chartContainer } = dimensions;
|
|
136
|
+
return chartContainer
|
|
115
137
|
.append('svg')
|
|
116
138
|
.attr('id', this.uniqueId)
|
|
117
|
-
.attr('width', width +
|
|
118
|
-
.attr('height', height +
|
|
139
|
+
.attr('width', width + margin.left + margin.right)
|
|
140
|
+
.attr('height', height + margin.top + margin.bottom)
|
|
119
141
|
.call(ChartHelper.responsivefy)
|
|
120
|
-
.append('g')
|
|
121
|
-
.attr('transform', `translate(${(parseInt(container.style('width')) / 2 - radius) +
|
|
122
|
-
this.chartConfiguration.margin.left},${this.chartConfiguration.margin.top})`);
|
|
142
|
+
.append('g');
|
|
123
143
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
.
|
|
127
|
-
.
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
.
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
.
|
|
140
|
-
|
|
144
|
+
adjustScaleFactors(radius) {
|
|
145
|
+
if (this.chartConfiguration.isDrilldownChart) {
|
|
146
|
+
this.chartConfiguration.currentValueWidthScaleFactor += 40;
|
|
147
|
+
this.chartConfiguration.currentValueHeightScaleFactor += 20;
|
|
148
|
+
}
|
|
149
|
+
else if (window.innerWidth > this.LARGE_SCREEN_WIDTH) {
|
|
150
|
+
this.chartConfiguration.currentValueHeightScaleFactor += 15;
|
|
151
|
+
this.chartConfiguration.currentValueWidthScaleFactor *= 2;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
createLabelArray(data, dataSegments) {
|
|
155
|
+
const labelArray = [{ name: data[0], value: 0 }];
|
|
156
|
+
let cumulative = 0;
|
|
157
|
+
dataSegments.forEach((segment, i) => {
|
|
158
|
+
cumulative += segment;
|
|
159
|
+
labelArray.push({ name: data[i + 1], value: cumulative });
|
|
160
|
+
});
|
|
161
|
+
return labelArray;
|
|
162
|
+
}
|
|
163
|
+
renderArcs(svg, dataSegments, angleValues, colorMaps, metaData, radius) {
|
|
164
|
+
const isRia = this.customChartConfiguration.isRia;
|
|
165
|
+
const centerTx = this.getCenterTranslation(radius);
|
|
166
|
+
const arc = this.createArcGenerator(dataSegments, angleValues, radius);
|
|
167
|
+
const arcs = svg.append('g').attr('class', 'arc').attr('transform', centerTx);
|
|
141
168
|
arcs
|
|
142
169
|
.selectAll('path')
|
|
143
|
-
.data(
|
|
170
|
+
.data(dataSegments)
|
|
144
171
|
.enter()
|
|
145
172
|
.append('path')
|
|
173
|
+
.attr('fill', (d, i) => colorMaps[i])
|
|
174
|
+
.attr('id', (d, i) => colorMaps[i])
|
|
146
175
|
.attr('d', arc)
|
|
147
|
-
.
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
176
|
+
.style('cursor', () => {
|
|
177
|
+
return metaData.currentValue > 0 && metaData.hasDrillDown && !isRia
|
|
178
|
+
? 'pointer'
|
|
179
|
+
: 'default';
|
|
180
|
+
})
|
|
151
181
|
.on('click', (event, d) => {
|
|
152
|
-
if (metaData.hasDrillDown
|
|
153
|
-
|
|
154
|
-
|
|
182
|
+
if (!metaData.hasDrillDown || metaData.currentValue === 0)
|
|
183
|
+
return;
|
|
184
|
+
this.handleClick(this.getRange(this.chartData.data));
|
|
155
185
|
});
|
|
156
186
|
}
|
|
157
|
-
|
|
187
|
+
createArcGenerator(dataSegments, angleValues, radius) {
|
|
188
|
+
return d3
|
|
189
|
+
.arc()
|
|
190
|
+
.innerRadius(radius - this.chartConfiguration.ringWidth - this.chartConfiguration.ringInset)
|
|
191
|
+
.outerRadius(radius)
|
|
192
|
+
.startAngle((d, i) => {
|
|
193
|
+
const ratio = i === 0
|
|
194
|
+
? this.chartConfiguration.minAngle
|
|
195
|
+
: this.chartConfiguration.minAngle + angleValues[i - 1];
|
|
196
|
+
return this.deg2rad(ratio);
|
|
197
|
+
})
|
|
198
|
+
.endAngle((d, i) => {
|
|
199
|
+
const ratio = i === dataSegments.length - 1
|
|
200
|
+
? this.chartConfiguration.maxAngle
|
|
201
|
+
: this.chartConfiguration.minAngle + angleValues[i];
|
|
202
|
+
return this.deg2rad(ratio);
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
renderPointer(svg, data, metaData, radius) {
|
|
206
|
+
const centerTx = this.getCenterTranslation(radius);
|
|
158
207
|
const pointerHeadLength = Math.round(radius * this.chartConfiguration.pointerHeadLengthPercent);
|
|
159
|
-
const pointerValue = metaData.currentValue - data[0];
|
|
160
|
-
const range = data[data.length - 1] - data[0];
|
|
161
|
-
const angle = this.chartConfiguration.minAngle + (pointerValue / range) * 180;
|
|
162
208
|
const lineData = [
|
|
163
209
|
[this.chartConfiguration.pointerWidth / 2, 0],
|
|
164
210
|
[0, -pointerHeadLength],
|
|
165
|
-
[-this.chartConfiguration.pointerWidth / 2, 0],
|
|
211
|
+
[-(this.chartConfiguration.pointerWidth / 2), 0],
|
|
166
212
|
[0, this.chartConfiguration.pointerTailLength],
|
|
167
213
|
[this.chartConfiguration.pointerWidth / 2, 0],
|
|
168
214
|
];
|
|
169
215
|
const pointerLine = d3.line();
|
|
170
|
-
svg
|
|
216
|
+
const pg = svg
|
|
171
217
|
.append('g')
|
|
218
|
+
.data([lineData])
|
|
172
219
|
.attr('class', 'pointer')
|
|
173
|
-
.attr('transform',
|
|
174
|
-
|
|
175
|
-
|
|
220
|
+
.attr('transform', centerTx);
|
|
221
|
+
const range = data[data.length - 1] - data[0];
|
|
222
|
+
const pointerValue = metaData.currentValue - data[0];
|
|
223
|
+
const pointerAngle = this.chartConfiguration.minAngle + (pointerValue / range) * 180;
|
|
224
|
+
pg.append('path')
|
|
225
|
+
.attr('d', pointerLine)
|
|
176
226
|
.attr('fill', this.chartConfiguration.pointerColor)
|
|
177
|
-
.attr('transform', `rotate(${
|
|
227
|
+
.attr('transform', `rotate(${pointerAngle}) translate(0, ${-radius + this.chartConfiguration.ringWidth + pointerHeadLength})`);
|
|
178
228
|
}
|
|
179
|
-
|
|
229
|
+
renderLabels(svg, labelArray, data, metaData, radius) {
|
|
230
|
+
const centerTx = this.getCenterTranslation(radius);
|
|
180
231
|
const range = data[data.length - 1] - data[0];
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
diffs.forEach((diff, i) => {
|
|
184
|
-
cumulative += diff;
|
|
185
|
-
labelArray.push({ name: data[i + 1], value: cumulative });
|
|
186
|
-
});
|
|
187
|
-
const labels = svg
|
|
188
|
-
.append('g')
|
|
189
|
-
.attr('class', 'label')
|
|
190
|
-
.attr('transform', `translate(${radius},${radius})`);
|
|
191
|
-
labels
|
|
192
|
-
.selectAll('text')
|
|
232
|
+
const lg = svg.append('g').attr('class', 'label').attr('transform', centerTx);
|
|
233
|
+
lg.selectAll('.bubble')
|
|
193
234
|
.data(labelArray)
|
|
194
235
|
.enter()
|
|
195
|
-
.append('
|
|
236
|
+
.append('g')
|
|
196
237
|
.attr('transform', (d) => {
|
|
197
238
|
const newAngle = this.chartConfiguration.minAngle + (d.value / range) * 180;
|
|
198
|
-
return `rotate(${newAngle}) translate(0
|
|
239
|
+
return `rotate(${newAngle}) translate(0, ${this.chartConfiguration.labelInset - radius - 20})`;
|
|
240
|
+
})
|
|
241
|
+
.append('g')
|
|
242
|
+
.attr('transform', (d, i) => {
|
|
243
|
+
const newAngle = this.chartConfiguration.minAngle + (d.value / range) * 180;
|
|
244
|
+
let xOffset = -17;
|
|
245
|
+
if (i === 0 && this.chartConfiguration.isValueLableAdjust) {
|
|
246
|
+
xOffset = -27;
|
|
247
|
+
}
|
|
248
|
+
else if (i === labelArray.length - 1 && this.chartConfiguration.isValueLableAdjust) {
|
|
249
|
+
xOffset = -15;
|
|
250
|
+
}
|
|
251
|
+
return `rotate(${-newAngle}) translate(${xOffset}, 0)`;
|
|
252
|
+
})
|
|
253
|
+
.append('text')
|
|
254
|
+
.attr('style', () => {
|
|
255
|
+
const fontSize = window.innerWidth < this.LARGE_SCREEN_WIDTH ? '12px' : '14px';
|
|
256
|
+
return `font-size: ${fontSize}; font-weight: 600;`;
|
|
199
257
|
})
|
|
200
258
|
.attr('fill', 'var(--chart-text-color)')
|
|
201
|
-
.
|
|
202
|
-
.
|
|
203
|
-
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
const
|
|
207
|
-
const
|
|
208
|
-
const
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
259
|
+
.text((d) => {
|
|
260
|
+
return metaData.dataType ? `${d.name}${metaData.dataType}` : d.name;
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
renderCenterTexts(svg, metaData, radius, dimensions) {
|
|
264
|
+
const topTextPosition = radius / 2 - 10;
|
|
265
|
+
const midTextPosition = topTextPosition + this.chartConfiguration.currentValueHeightScaleFactor;
|
|
266
|
+
const bottomTextPosition = midTextPosition + this.chartConfiguration.currentValueHeightScaleFactor;
|
|
267
|
+
// Current Value
|
|
268
|
+
this.addForeignObject(svg, radius - this.chartConfiguration.currentValueWidthScaleFactor / 2, topTextPosition, this.chartConfiguration.currentValueWidthScaleFactor + 8, this.chartConfiguration.currentValueHeightScaleFactor, 'value-display', `${metaData.currentValue}${metaData.dataType || ''}`);
|
|
269
|
+
// Status
|
|
270
|
+
if (metaData.status) {
|
|
271
|
+
const statusWidth = metaData.status.length > 4 ? 210 : 120;
|
|
272
|
+
this.addForeignObject(svg, radius - statusWidth / 2, midTextPosition, statusWidth, this.chartConfiguration.currentValueHeightScaleFactor + 10, 'status-display', metaData.status);
|
|
273
|
+
}
|
|
274
|
+
// Date Range
|
|
275
|
+
const dateRangeHtml = metaData.dateRange
|
|
276
|
+
? `<span class="marginright-3"><i class="fa fa-calendar"></i></span><span>${metaData.dateRange}</span>`
|
|
277
|
+
: '';
|
|
278
|
+
this.addForeignObject(svg, radius - 105, bottomTextPosition, 210, this.chartConfiguration.currentValueHeightScaleFactor, 'daterange-display', dateRangeHtml);
|
|
279
|
+
}
|
|
280
|
+
addForeignObject(svg, x, y, width, height, className, content) {
|
|
281
|
+
const fontSize = this.getFontSize();
|
|
282
|
+
svg
|
|
283
|
+
.append('foreignObject')
|
|
284
|
+
.attr('transform', `translate(${x}, ${y})`)
|
|
285
|
+
.attr('width', width)
|
|
286
|
+
.attr('height', height)
|
|
287
|
+
.append('xhtml:div')
|
|
288
|
+
.attr('class', className)
|
|
289
|
+
.style('height', `${height + 10}px`)
|
|
290
|
+
.style('font-size', fontSize)
|
|
291
|
+
.html(content);
|
|
292
|
+
}
|
|
293
|
+
getFontSize() {
|
|
294
|
+
if (this.chartConfiguration.isDrilldownChart) {
|
|
295
|
+
return window.innerWidth < this.LARGE_SCREEN_WIDTH ? '14px' : '18px';
|
|
296
|
+
}
|
|
297
|
+
return window.innerWidth < this.LARGE_SCREEN_WIDTH ? '14px' : '18px';
|
|
298
|
+
}
|
|
299
|
+
centerSVG(svg, dimensions) {
|
|
300
|
+
const { margin, chartContainer } = dimensions;
|
|
301
|
+
const containerMidWidth = parseInt(chartContainer.style('width')) / 2;
|
|
302
|
+
const nodeHalfWidth = svg.node().getBoundingClientRect().width / 2;
|
|
303
|
+
const updatedStartingPoint = containerMidWidth - nodeHalfWidth;
|
|
304
|
+
svg.attr('transform', `translate(${updatedStartingPoint + margin.left}, ${margin.top})`);
|
|
305
|
+
}
|
|
306
|
+
getCenterTranslation(radius) {
|
|
307
|
+
return `translate(${radius}, ${radius})`;
|
|
224
308
|
}
|
|
225
309
|
deg2rad(deg) {
|
|
226
310
|
return (deg * Math.PI) / 180;
|
|
227
311
|
}
|
|
228
|
-
|
|
229
|
-
|
|
312
|
+
getRange(data) {
|
|
313
|
+
return `${data[0]} and ${data[data.length - 1]}`;
|
|
314
|
+
}
|
|
315
|
+
handleClick(range) {
|
|
316
|
+
this.clickEvent.emit(range);
|
|
230
317
|
}
|
|
231
318
|
handleHeaderMenuClick(id) {
|
|
232
319
|
this.headerMenuclickEvent.emit(id);
|
|
233
320
|
}
|
|
234
321
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: GuageChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
235
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: GuageChartComponent, selector: "lib-guage-chart", inputs: { chartData: "chartData", customChartConfiguration: "customChartConfiguration" }, outputs: { clickEvent: "clickEvent", headerMenuclickEvent: "headerMenuclickEvent" }, viewQueries: [{ propertyName: "containerElt", first: true, predicate: ["guagechartcontainer"], descendants: true, static: true }, { propertyName: "guagecontainerElt", first: true, predicate: ["guagecontainer"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #guagecontainer class=\"lib-chart-wrapper\" style=\"background-color: var(--card-bg);\"\r\n (resized)=\"onResized($event)\">\r\n <div class=\"header-alt\" *ngIf=\"!isHeaderVisible\">\r\n <lib-chart-header-v2 [chartData]=\"chartData\" [chartConfiguration]=\"chartConfiguration\"\r\n (clickEvent)=\"handleClick($event)\"></lib-chart-header-v2>\r\n </div>\r\n <lib-chart-header-v1 [title]=\"chartData.metaData.title\" [hasDrillDown]=\"chartData.metaData.hasDrillDown\"\r\n [isEditEnabled]=\"chartData.metaData.isEditEnabled\" [isria]=\"customChartConfiguration.isRia\" [menuOptions]=\"chartConfiguration.headerMenuOptions\"\r\n [selectedKpiTooltop]=\"chartConfiguration.selectedKpiTooltop\" (menuOptionClickEvent)=\"handleHeaderMenuClick($event)\"\r\n [isAlertEnabled]=\"isAlertEnabled\" *ngIf=\"isHeaderVisible\"></lib-chart-header-v1>\r\n <div [style.height]=\"chartConfiguration.svgHeight\" id=\"guagechartcontainer\" #guagechartcontainer\r\n class=\"lib-chart-svg guagecontainer\"></div>\r\n</div>", styles: [".lib-guage-label-wrapper{width:100%;display:inline-block;text-align:center}.lib-guage-label-style{width:63%;display:inline-block;text-align:left}.lib-donut-label-icon{display:inline-block;width:10px;height:10px;margin-right:20px;border-radius:3px}.bc-gauge-chart{background-color:#000!important}.guagecontainer{margin-top:3%;height:53%}.gauge-currentvalue-value{font-weight:700;color:#000;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;letter-spacing:0px}.guage-label-item{font-size:.85em;display:flex;flex-direction:column}.gauge-daterange{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-size:12px;letter-spacing:0px;color:#374068;opacity:1}.gauge-daterange-value{font-weight:700}.gauge-currentvalue{margin-bottom:5px}.value-display{color:var(--font-color);font-weight:700;border-radius:3px;display:flex;align-items:center;justify-content:center}.status-display{display:flex;align-items:center;justify-content:center}.calendar-icon{border:1px solid #000000;border-top:3px solid;height:10px;margin-right:5px}.calendar-icon>:first-child{visibility:hidden}.daterange-display{display:flex;align-items:center;justify-content:center;height:100%}.marginright-3{margin-right:3px}.hidden-text,.hidden{visibility:hidden}@media screen and (min-width: 1024px) and (min-height: 400px){.guage-label-item{font-size:14px!important}.guage-item-text{font-size:16px!important}}@media screen and (min-width: 1024px) and (min-height: 1000px){.guage-label-item{font-size:14px!important}.guage-item-text{font-size:16px!important}}@media screen and (min-width: 1024px) and (min-height: 1500px){.guage-label-item{font-size:14px!important}.guage-item-text{font-size:16px!important}}@media screen and (min-width: 1366px) and (min-height: 400px){.guage-label-item{font-size:16px!important}.guage-item-text{font-size:18px!important}}@media screen and (min-width: 1366px) and (min-height: 1000px){.guage-label-item{font-size:16px!important}.guage-item-text{font-size:18px!important}}@media screen and (min-width: 1366px) and (min-height: 1500px){.guage-label-item{font-size:16px!important}.guage-item-text{font-size:18px!important}}@media screen and (min-width: 1920px) and (min-height: 400px){.guage-label-item{font-size:18px!important}.guage-item-text{font-size:20px!important}}@media screen and (min-width: 1920px) and (min-height: 1000px){.guage-label-item{font-size:18px!important}.guage-item-text{font-size:20px!important}}@media screen and (min-width: 1920px) and (min-height: 1500px){.guage-label-item{font-size:18px!important}.guage-item-text{font-size:20px!important}}@media screen and (min-width: 2560px) and (min-height: 500px){.guage-label-item{font-size:20px!important}.guage-item-text{font-size:22px!important}}@media screen and (min-width: 2560px) and (min-height: 1000px){.guage-label-item{font-size:20px!important}.guage-item-text{font-size:22px!important}}@media screen and (min-width: 2560px) and (min-height: 1500px){.guage-label-item{font-size:20px!important}.guage-item-text{font-size:22px!important}}.switch1{position:relative;display:inline-block;width:46px;height:24px;margin-left:5px;margin-right:5px}.switch1 input{opacity:0;width:0;height:0}.slider1{position:absolute;cursor:pointer;inset:0;background-color:#015ba2cf;-webkit-transition:.4s;transition:.4s}.slider1:before{position:absolute;content:\"\";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;-webkit-transition:.4s;transition:.4s}.slider1.round1{border-radius:18px}.slider1.round1:before{border-radius:50%}.marginLeft-40{margin-left:40px}.flex-inline{display:flex;justify-content:center;align-items:center;font-size:14px}@media (min-height: 550px){.value-display{font-size:14px}}@media (min-height: 900px){.guagecontainer{margin-top:6%}.value-display{font-size:25px}}\n", ".lib-chart-wrapper{width:100%;height:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;background:#fff 0% 0% no-repeat padding-box;position:relative}.lib-chart-wrapper-wo-shadow{width:100%;height:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto}.lib-chart-wrapper:hover .chart-header-v1:not(.header-no-background){background-color:#2e3640}.lib-chart-wrapper:hover .chart-header-v1:not(.header-no-background) .chart-title{color:#fff}.lib-chart-svg{width:100%}.lib-chart-header{text-align:center;background-color:#052340;color:#fff;width:100%;height:17%;word-spacing:.5px;line-height:1.8;font-weight:700;padding-top:2%;letter-spacing:0;font-size:1.2em}.lib-donut-chart-footer{width:100%;text-align:right}.lib-donut-label-text{font-size:.9em;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-weight:400;letter-spacing:0px;color:#000;opacity:1}.lib-donut-label-icon{display:inline-block;width:10px;height:10px;margin-right:20px;border-radius:3px}.lib-donut-label-item{font-weight:400;font-size:.85em;color:#2f2f2f}.lib-donut-justified-label-wrapper{width:100%;display:inline-block;text-align:center;list-style-type:none}.lib-donut-justified-label-item{font-weight:400;font-size:.85em;color:#2f2f2f;display:inline-block;text-align:left;padding:0 10px}.lib-donut-justified-label-icon{display:inline-block;width:10px;height:10px;margin-right:5px;border-radius:3px}.lib-no-background{background:none!important}.lib-display-hidden{display:none}.lib-ylabel-weeklyCharts{font-style:normal;font-variant:normal;font-weight:800;font-size:10px;line-height:12px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;letter-spacing:-.07px;text-transform:capitalize;color:#000}.lib-data-labels-weeklycharts{font-style:normal;font-variant:normal;font-weight:400;font-size:12px;line-height:14px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;letter-spacing:-.06px;color:#000}.lib-data-labels-angled-weeklycharts{font-style:normal;font-variant:normal;font-weight:800;font-size:9.5px;line-height:11px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;letter-spacing:.4px;text-anchor:start}.lib-xaxis-labels-texts-weeklycharts{font-style:normal;font-variant:normal;font-weight:800;font-size:10px;line-height:11px;letter-spacing:-.05px;fill:#000}.lib-xaxis-labels-texts-drilldown{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-size:14px;letter-spacing:-1px;color:#000;opacity:1;text-transform:capitalize}.lib-white-space-nowrap{white-space:nowrap}.lib-xaxis-labels-texts-drilldown-alt{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-size:10px;letter-spacing:0px;color:#000;opacity:1;text-transform:capitalize}.lib-yaxis-labels-texts-drilldown{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-size:14px;letter-spacing:0px;color:#000!important;opacity:1}.lib-ylabel-drilldowncharts,.lib-xlabel-drilldowncharts{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-size:16px;letter-spacing:-.1px;color:#000!important;opacity:1}.lib-donut-justified-label-icon-drilldown{display:inline-block;width:14px;height:14px;margin-right:10px;border-radius:50%}.marginright-2{margin-right:2%}.margintop-5{margin-top:5%}.width-100{width:100%}.float-right{float:right}.marginBottom-10{margin-bottom:10px}.header-alt{align-items:center;margin-bottom:10px}input::placeholder{font-size:20px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;letter-spacing:0px;color:#000;opacity:1}.padding-5{padding:5px}.hidden{visibility:hidden}.font-weight-bold{font-weight:900}.textalign-center{text-align:center}.cursor-pointer{cursor:pointer}.cursor-default{cursor:default}.font-weight-600{font-weight:600}.marginRight-15{margin-right:15px}.marginRight-20{margin-right:20px}.switch{position:relative;display:inline-block;width:46px;height:24px;margin-left:5px;margin-right:5px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;inset:0;background-color:#2d5ca0;-webkit-transition:.4s;transition:.4s}.slider:before{position:absolute;content:\"\";height:18px;width:18px;right:3px;bottom:3px;background-color:#fff;-webkit-transition:.4s;transition:.4s}.slider.round{border-radius:18px}.slider.round:before{border-radius:50%}.slider1{position:absolute;cursor:pointer;inset:0;background-color:#015ba2cf;-webkit-transition:.4s;transition:.4s}.slider1:before{position:absolute;content:\"\";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;-webkit-transition:.4s;transition:.4s}.slider1.round1{border-radius:18px}.slider1.round1:before{border-radius:50%}.lib-display-flex{display:flex}.lib-align-items-center{align-items:center}.lib-flex-direction-column{flex-direction:column}.lib-justify-content-space-between{justify-content:space-between}.lib-justify-content-space-around{justify-content:space-around}.lib-justify-content-center{justify-content:center}.lib-justify-content-start{justify-content:start}.lib-justify-content-end{justify-content:end}.lib-ml-20{margin-left:20px}.lib-position-absolute{position:absolute}.lib-z-index-9{z-index:9}.marginright-3{margin-right:3px}@media (min-height: 900px){.lib-chart-wrapper{border-radius:8px}.header-font-size-1{font-size:18px!important}.font-size-1{font-size:14px!important}.font-size-2{font-size:16px!important}.font-size-3{font-size:14px!important}.font-size-4{font-size:22px!important}.font-size-5{font-size:24px!important}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ResizedDirective, selector: "[resized]", outputs: ["resized"] }, { kind: "component", type: i3.ChartHeaderV1Component, selector: "lib-chart-header-v1", inputs: ["isAlertEnabled", "title", "menuOptions", "isEditEnabled", "isria", "hasDrillDown", "selectedKpiTooltop"], outputs: ["menuOptionClickEvent"] }, { kind: "component", type: i4.ChartHeaderV2Component, selector: "lib-chart-header-v2", inputs: ["chartData", "chartConfiguration"], outputs: ["clickEvent", "zoomInZoomOutClick"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
322
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: GuageChartComponent, selector: "lib-guage-chart", inputs: { chartData: "chartData", customChartConfiguration: "customChartConfiguration" }, outputs: { clickEvent: "clickEvent", headerMenuclickEvent: "headerMenuclickEvent" }, viewQueries: [{ propertyName: "containerElt", first: true, predicate: ["guagechartcontainer"], descendants: true, static: true }, { propertyName: "guagecontainerElt", first: true, predicate: ["guagecontainer"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #guagecontainer class=\"lib-chart-wrapper\" \r\n style=\"background-color: var(--card-bg);\"\r\n (resized)=\"onResized($event)\">\r\n \r\n <div class=\"header-alt\" *ngIf=\"!isHeaderVisible\">\r\n <lib-chart-header-v2 \r\n [chartData]=\"chartData\" \r\n [chartConfiguration]=\"chartConfiguration\"\r\n (clickEvent)=\"handleClick($event)\">\r\n </lib-chart-header-v2>\r\n </div>\r\n \r\n <lib-chart-header-v1 \r\n *ngIf=\"isHeaderVisible\"\r\n [title]=\"chartData.metaData.title\" \r\n [hasDrillDown]=\"chartData.metaData.hasDrillDown\"\r\n [isEditEnabled]=\"chartData.metaData.isEditEnabled\" \r\n [isria]=\"customChartConfiguration.isRia\" \r\n [menuOptions]=\"chartConfiguration.headerMenuOptions\"\r\n [selectedKpiTooltop]=\"chartConfiguration.selectedKpiTooltop\" \r\n [isAlertEnabled]=\"isAlertEnabled\"\r\n (menuOptionClickEvent)=\"handleHeaderMenuClick($event)\">\r\n </lib-chart-header-v1>\r\n \r\n <div #guagechartcontainer\r\n id=\"guagechartcontainer\"\r\n class=\"lib-chart-svg guagecontainer\"\r\n [style.height.%]=\"chartConfiguration.svgHeight\">\r\n </div>\r\n</div>", styles: [".lib-guage-label-wrapper{width:100%;display:inline-block;text-align:center}.lib-guage-label-style{width:63%;display:inline-block;text-align:left}.lib-donut-label-icon{display:inline-block;width:10px;height:10px;margin-right:20px;border-radius:3px}.bc-gauge-chart{background-color:#000!important}.guagecontainer{margin-top:3%;height:53%}.gauge-currentvalue-value{font-weight:700;color:#000;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;letter-spacing:0px}.guage-label-item{font-size:.85em;display:flex;flex-direction:column}.gauge-daterange{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-size:12px;letter-spacing:0px;color:#374068;opacity:1}.gauge-daterange-value{font-weight:700}.gauge-currentvalue{margin-bottom:5px}.value-display{color:var(--font-color);font-weight:700;border-radius:3px;display:flex;align-items:center;justify-content:center}.status-display{display:flex;align-items:center;justify-content:center}.calendar-icon{border:1px solid #000000;border-top:3px solid;height:10px;margin-right:5px}.calendar-icon>:first-child{visibility:hidden}.daterange-display{display:flex;align-items:center;justify-content:center;height:100%}.marginright-3{margin-right:3px}.hidden-text,.hidden{visibility:hidden}@media screen and (min-width: 1024px) and (min-height: 400px){.guage-label-item{font-size:14px!important}.guage-item-text{font-size:16px!important}}@media screen and (min-width: 1024px) and (min-height: 1000px){.guage-label-item{font-size:14px!important}.guage-item-text{font-size:16px!important}}@media screen and (min-width: 1024px) and (min-height: 1500px){.guage-label-item{font-size:14px!important}.guage-item-text{font-size:16px!important}}@media screen and (min-width: 1366px) and (min-height: 400px){.guage-label-item{font-size:16px!important}.guage-item-text{font-size:18px!important}}@media screen and (min-width: 1366px) and (min-height: 1000px){.guage-label-item{font-size:16px!important}.guage-item-text{font-size:18px!important}}@media screen and (min-width: 1366px) and (min-height: 1500px){.guage-label-item{font-size:16px!important}.guage-item-text{font-size:18px!important}}@media screen and (min-width: 1920px) and (min-height: 400px){.guage-label-item{font-size:18px!important}.guage-item-text{font-size:20px!important}}@media screen and (min-width: 1920px) and (min-height: 1000px){.guage-label-item{font-size:18px!important}.guage-item-text{font-size:20px!important}}@media screen and (min-width: 1920px) and (min-height: 1500px){.guage-label-item{font-size:18px!important}.guage-item-text{font-size:20px!important}}@media screen and (min-width: 2560px) and (min-height: 500px){.guage-label-item{font-size:20px!important}.guage-item-text{font-size:22px!important}}@media screen and (min-width: 2560px) and (min-height: 1000px){.guage-label-item{font-size:20px!important}.guage-item-text{font-size:22px!important}}@media screen and (min-width: 2560px) and (min-height: 1500px){.guage-label-item{font-size:20px!important}.guage-item-text{font-size:22px!important}}.switch1{position:relative;display:inline-block;width:46px;height:24px;margin-left:5px;margin-right:5px}.switch1 input{opacity:0;width:0;height:0}.slider1{position:absolute;cursor:pointer;inset:0;background-color:#015ba2cf;-webkit-transition:.4s;transition:.4s}.slider1:before{position:absolute;content:\"\";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;-webkit-transition:.4s;transition:.4s}.slider1.round1{border-radius:18px}.slider1.round1:before{border-radius:50%}.marginLeft-40{margin-left:40px}.flex-inline{display:flex;justify-content:center;align-items:center;font-size:14px}@media (min-height: 550px){.value-display{font-size:14px}}@media (min-height: 900px){.guagecontainer{margin-top:6%}.value-display{font-size:25px}}\n", ".lib-chart-wrapper{width:100%;height:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;background:#fff 0% 0% no-repeat padding-box;position:relative}.lib-chart-wrapper-wo-shadow{width:100%;height:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto}.lib-chart-wrapper:hover .chart-header-v1:not(.header-no-background){background-color:#2e3640}.lib-chart-wrapper:hover .chart-header-v1:not(.header-no-background) .chart-title{color:#fff}.lib-chart-svg{width:100%}.lib-chart-header{text-align:center;background-color:#052340;color:#fff;width:100%;height:17%;word-spacing:.5px;line-height:1.8;font-weight:700;padding-top:2%;letter-spacing:0;font-size:1.2em}.lib-donut-chart-footer{width:100%;text-align:right}.lib-donut-label-text{font-size:.9em;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-weight:400;letter-spacing:0px;color:#000;opacity:1}.lib-donut-label-icon{display:inline-block;width:10px;height:10px;margin-right:20px;border-radius:3px}.lib-donut-label-item{font-weight:400;font-size:.85em;color:#2f2f2f}.lib-donut-justified-label-wrapper{width:100%;display:inline-block;text-align:center;list-style-type:none}.lib-donut-justified-label-item{font-weight:400;font-size:.85em;color:#2f2f2f;display:inline-block;text-align:left;padding:0 10px}.lib-donut-justified-label-icon{display:inline-block;width:10px;height:10px;margin-right:5px;border-radius:3px}.lib-no-background{background:none!important}.lib-display-hidden{display:none}.lib-ylabel-weeklyCharts{font-style:normal;font-variant:normal;font-weight:800;font-size:10px;line-height:12px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;letter-spacing:-.07px;text-transform:capitalize;color:#000}.lib-data-labels-weeklycharts{font-style:normal;font-variant:normal;font-weight:400;font-size:12px;line-height:14px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;letter-spacing:-.06px;color:#000}.lib-data-labels-angled-weeklycharts{font-style:normal;font-variant:normal;font-weight:800;font-size:9.5px;line-height:11px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;letter-spacing:.4px;text-anchor:start}.lib-xaxis-labels-texts-weeklycharts{font-style:normal;font-variant:normal;font-weight:800;font-size:10px;line-height:11px;letter-spacing:-.05px;fill:#000}.lib-xaxis-labels-texts-drilldown{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-size:14px;letter-spacing:-1px;color:#000;opacity:1;text-transform:capitalize}.lib-white-space-nowrap{white-space:nowrap}.lib-xaxis-labels-texts-drilldown-alt{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-size:10px;letter-spacing:0px;color:#000;opacity:1;text-transform:capitalize}.lib-yaxis-labels-texts-drilldown{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-size:14px;letter-spacing:0px;color:#000!important;opacity:1}.lib-ylabel-drilldowncharts,.lib-xlabel-drilldowncharts{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-size:16px;letter-spacing:-.1px;color:#000!important;opacity:1}.lib-donut-justified-label-icon-drilldown{display:inline-block;width:14px;height:14px;margin-right:10px;border-radius:50%}.marginright-2{margin-right:2%}.margintop-5{margin-top:5%}.width-100{width:100%}.float-right{float:right}.marginBottom-10{margin-bottom:10px}.header-alt{align-items:center;margin-bottom:10px}input::placeholder{font-size:20px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;letter-spacing:0px;color:#000;opacity:1}.padding-5{padding:5px}.hidden{visibility:hidden}.font-weight-bold{font-weight:900}.textalign-center{text-align:center}.cursor-pointer{cursor:pointer}.cursor-default{cursor:default}.font-weight-600{font-weight:600}.marginRight-15{margin-right:15px}.marginRight-20{margin-right:20px}.switch{position:relative;display:inline-block;width:46px;height:24px;margin-left:5px;margin-right:5px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;inset:0;background-color:#2d5ca0;-webkit-transition:.4s;transition:.4s}.slider:before{position:absolute;content:\"\";height:18px;width:18px;right:3px;bottom:3px;background-color:#fff;-webkit-transition:.4s;transition:.4s}.slider.round{border-radius:18px}.slider.round:before{border-radius:50%}.slider1{position:absolute;cursor:pointer;inset:0;background-color:#015ba2cf;-webkit-transition:.4s;transition:.4s}.slider1:before{position:absolute;content:\"\";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;-webkit-transition:.4s;transition:.4s}.slider1.round1{border-radius:18px}.slider1.round1:before{border-radius:50%}.lib-display-flex{display:flex}.lib-align-items-center{align-items:center}.lib-flex-direction-column{flex-direction:column}.lib-justify-content-space-between{justify-content:space-between}.lib-justify-content-space-around{justify-content:space-around}.lib-justify-content-center{justify-content:center}.lib-justify-content-start{justify-content:start}.lib-justify-content-end{justify-content:end}.lib-ml-20{margin-left:20px}.lib-position-absolute{position:absolute}.lib-z-index-9{z-index:9}.marginright-3{margin-right:3px}@media (min-height: 900px){.lib-chart-wrapper{border-radius:8px}.header-font-size-1{font-size:18px!important}.font-size-1{font-size:14px!important}.font-size-2{font-size:16px!important}.font-size-3{font-size:14px!important}.font-size-4{font-size:22px!important}.font-size-5{font-size:24px!important}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ResizedDirective, selector: "[resized]", outputs: ["resized"] }, { kind: "component", type: i3.ChartHeaderV1Component, selector: "lib-chart-header-v1", inputs: ["isAlertEnabled", "title", "menuOptions", "isEditEnabled", "isria", "hasDrillDown", "selectedKpiTooltop"], outputs: ["menuOptionClickEvent"] }, { kind: "component", type: i4.ChartHeaderV2Component, selector: "lib-chart-header-v2", inputs: ["chartData", "chartConfiguration"], outputs: ["clickEvent", "zoomInZoomOutClick"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
236
323
|
}
|
|
237
324
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: GuageChartComponent, decorators: [{
|
|
238
325
|
type: Component,
|
|
239
|
-
args: [{ selector: 'lib-guage-chart', encapsulation: ViewEncapsulation.None, template: "<div #guagecontainer class=\"lib-chart-wrapper\" style=\"background-color: var(--card-bg);\"\r\n (resized)=\"onResized($event)\">\r\n <div class=\"header-alt\" *ngIf=\"!isHeaderVisible\">\r\n <lib-chart-header-v2 [chartData]=\"chartData\" [chartConfiguration]=\"chartConfiguration\"\r\n (clickEvent)=\"handleClick($event)\"></lib-chart-header-v2>\r\n </div>\r\n <lib-chart-header-v1 [title]=\"chartData.metaData.title\" [hasDrillDown]=\"chartData.metaData.hasDrillDown\"\r\n [isEditEnabled]=\"chartData.metaData.isEditEnabled\" [isria]=\"customChartConfiguration.isRia\" [menuOptions]=\"chartConfiguration.headerMenuOptions\"\r\n [selectedKpiTooltop]=\"chartConfiguration.selectedKpiTooltop\" (menuOptionClickEvent)=\"handleHeaderMenuClick($event)\"\r\n [isAlertEnabled]=\"isAlertEnabled\" *ngIf=\"isHeaderVisible\"></lib-chart-header-v1>\r\n <div [style.height]=\"chartConfiguration.svgHeight\" id=\"guagechartcontainer\" #guagechartcontainer\r\n class=\"lib-chart-svg guagecontainer\"></div>\r\n</div>", styles: [".lib-guage-label-wrapper{width:100%;display:inline-block;text-align:center}.lib-guage-label-style{width:63%;display:inline-block;text-align:left}.lib-donut-label-icon{display:inline-block;width:10px;height:10px;margin-right:20px;border-radius:3px}.bc-gauge-chart{background-color:#000!important}.guagecontainer{margin-top:3%;height:53%}.gauge-currentvalue-value{font-weight:700;color:#000;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;letter-spacing:0px}.guage-label-item{font-size:.85em;display:flex;flex-direction:column}.gauge-daterange{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-size:12px;letter-spacing:0px;color:#374068;opacity:1}.gauge-daterange-value{font-weight:700}.gauge-currentvalue{margin-bottom:5px}.value-display{color:var(--font-color);font-weight:700;border-radius:3px;display:flex;align-items:center;justify-content:center}.status-display{display:flex;align-items:center;justify-content:center}.calendar-icon{border:1px solid #000000;border-top:3px solid;height:10px;margin-right:5px}.calendar-icon>:first-child{visibility:hidden}.daterange-display{display:flex;align-items:center;justify-content:center;height:100%}.marginright-3{margin-right:3px}.hidden-text,.hidden{visibility:hidden}@media screen and (min-width: 1024px) and (min-height: 400px){.guage-label-item{font-size:14px!important}.guage-item-text{font-size:16px!important}}@media screen and (min-width: 1024px) and (min-height: 1000px){.guage-label-item{font-size:14px!important}.guage-item-text{font-size:16px!important}}@media screen and (min-width: 1024px) and (min-height: 1500px){.guage-label-item{font-size:14px!important}.guage-item-text{font-size:16px!important}}@media screen and (min-width: 1366px) and (min-height: 400px){.guage-label-item{font-size:16px!important}.guage-item-text{font-size:18px!important}}@media screen and (min-width: 1366px) and (min-height: 1000px){.guage-label-item{font-size:16px!important}.guage-item-text{font-size:18px!important}}@media screen and (min-width: 1366px) and (min-height: 1500px){.guage-label-item{font-size:16px!important}.guage-item-text{font-size:18px!important}}@media screen and (min-width: 1920px) and (min-height: 400px){.guage-label-item{font-size:18px!important}.guage-item-text{font-size:20px!important}}@media screen and (min-width: 1920px) and (min-height: 1000px){.guage-label-item{font-size:18px!important}.guage-item-text{font-size:20px!important}}@media screen and (min-width: 1920px) and (min-height: 1500px){.guage-label-item{font-size:18px!important}.guage-item-text{font-size:20px!important}}@media screen and (min-width: 2560px) and (min-height: 500px){.guage-label-item{font-size:20px!important}.guage-item-text{font-size:22px!important}}@media screen and (min-width: 2560px) and (min-height: 1000px){.guage-label-item{font-size:20px!important}.guage-item-text{font-size:22px!important}}@media screen and (min-width: 2560px) and (min-height: 1500px){.guage-label-item{font-size:20px!important}.guage-item-text{font-size:22px!important}}.switch1{position:relative;display:inline-block;width:46px;height:24px;margin-left:5px;margin-right:5px}.switch1 input{opacity:0;width:0;height:0}.slider1{position:absolute;cursor:pointer;inset:0;background-color:#015ba2cf;-webkit-transition:.4s;transition:.4s}.slider1:before{position:absolute;content:\"\";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;-webkit-transition:.4s;transition:.4s}.slider1.round1{border-radius:18px}.slider1.round1:before{border-radius:50%}.marginLeft-40{margin-left:40px}.flex-inline{display:flex;justify-content:center;align-items:center;font-size:14px}@media (min-height: 550px){.value-display{font-size:14px}}@media (min-height: 900px){.guagecontainer{margin-top:6%}.value-display{font-size:25px}}\n", ".lib-chart-wrapper{width:100%;height:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;background:#fff 0% 0% no-repeat padding-box;position:relative}.lib-chart-wrapper-wo-shadow{width:100%;height:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto}.lib-chart-wrapper:hover .chart-header-v1:not(.header-no-background){background-color:#2e3640}.lib-chart-wrapper:hover .chart-header-v1:not(.header-no-background) .chart-title{color:#fff}.lib-chart-svg{width:100%}.lib-chart-header{text-align:center;background-color:#052340;color:#fff;width:100%;height:17%;word-spacing:.5px;line-height:1.8;font-weight:700;padding-top:2%;letter-spacing:0;font-size:1.2em}.lib-donut-chart-footer{width:100%;text-align:right}.lib-donut-label-text{font-size:.9em;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-weight:400;letter-spacing:0px;color:#000;opacity:1}.lib-donut-label-icon{display:inline-block;width:10px;height:10px;margin-right:20px;border-radius:3px}.lib-donut-label-item{font-weight:400;font-size:.85em;color:#2f2f2f}.lib-donut-justified-label-wrapper{width:100%;display:inline-block;text-align:center;list-style-type:none}.lib-donut-justified-label-item{font-weight:400;font-size:.85em;color:#2f2f2f;display:inline-block;text-align:left;padding:0 10px}.lib-donut-justified-label-icon{display:inline-block;width:10px;height:10px;margin-right:5px;border-radius:3px}.lib-no-background{background:none!important}.lib-display-hidden{display:none}.lib-ylabel-weeklyCharts{font-style:normal;font-variant:normal;font-weight:800;font-size:10px;line-height:12px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;letter-spacing:-.07px;text-transform:capitalize;color:#000}.lib-data-labels-weeklycharts{font-style:normal;font-variant:normal;font-weight:400;font-size:12px;line-height:14px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;letter-spacing:-.06px;color:#000}.lib-data-labels-angled-weeklycharts{font-style:normal;font-variant:normal;font-weight:800;font-size:9.5px;line-height:11px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;letter-spacing:.4px;text-anchor:start}.lib-xaxis-labels-texts-weeklycharts{font-style:normal;font-variant:normal;font-weight:800;font-size:10px;line-height:11px;letter-spacing:-.05px;fill:#000}.lib-xaxis-labels-texts-drilldown{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-size:14px;letter-spacing:-1px;color:#000;opacity:1;text-transform:capitalize}.lib-white-space-nowrap{white-space:nowrap}.lib-xaxis-labels-texts-drilldown-alt{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-size:10px;letter-spacing:0px;color:#000;opacity:1;text-transform:capitalize}.lib-yaxis-labels-texts-drilldown{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-size:14px;letter-spacing:0px;color:#000!important;opacity:1}.lib-ylabel-drilldowncharts,.lib-xlabel-drilldowncharts{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-size:16px;letter-spacing:-.1px;color:#000!important;opacity:1}.lib-donut-justified-label-icon-drilldown{display:inline-block;width:14px;height:14px;margin-right:10px;border-radius:50%}.marginright-2{margin-right:2%}.margintop-5{margin-top:5%}.width-100{width:100%}.float-right{float:right}.marginBottom-10{margin-bottom:10px}.header-alt{align-items:center;margin-bottom:10px}input::placeholder{font-size:20px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;letter-spacing:0px;color:#000;opacity:1}.padding-5{padding:5px}.hidden{visibility:hidden}.font-weight-bold{font-weight:900}.textalign-center{text-align:center}.cursor-pointer{cursor:pointer}.cursor-default{cursor:default}.font-weight-600{font-weight:600}.marginRight-15{margin-right:15px}.marginRight-20{margin-right:20px}.switch{position:relative;display:inline-block;width:46px;height:24px;margin-left:5px;margin-right:5px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;inset:0;background-color:#2d5ca0;-webkit-transition:.4s;transition:.4s}.slider:before{position:absolute;content:\"\";height:18px;width:18px;right:3px;bottom:3px;background-color:#fff;-webkit-transition:.4s;transition:.4s}.slider.round{border-radius:18px}.slider.round:before{border-radius:50%}.slider1{position:absolute;cursor:pointer;inset:0;background-color:#015ba2cf;-webkit-transition:.4s;transition:.4s}.slider1:before{position:absolute;content:\"\";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;-webkit-transition:.4s;transition:.4s}.slider1.round1{border-radius:18px}.slider1.round1:before{border-radius:50%}.lib-display-flex{display:flex}.lib-align-items-center{align-items:center}.lib-flex-direction-column{flex-direction:column}.lib-justify-content-space-between{justify-content:space-between}.lib-justify-content-space-around{justify-content:space-around}.lib-justify-content-center{justify-content:center}.lib-justify-content-start{justify-content:start}.lib-justify-content-end{justify-content:end}.lib-ml-20{margin-left:20px}.lib-position-absolute{position:absolute}.lib-z-index-9{z-index:9}.marginright-3{margin-right:3px}@media (min-height: 900px){.lib-chart-wrapper{border-radius:8px}.header-font-size-1{font-size:18px!important}.font-size-1{font-size:14px!important}.font-size-2{font-size:16px!important}.font-size-3{font-size:14px!important}.font-size-4{font-size:22px!important}.font-size-5{font-size:24px!important}}\n"] }]
|
|
326
|
+
args: [{ selector: 'lib-guage-chart', encapsulation: ViewEncapsulation.None, template: "<div #guagecontainer class=\"lib-chart-wrapper\" \r\n style=\"background-color: var(--card-bg);\"\r\n (resized)=\"onResized($event)\">\r\n \r\n <div class=\"header-alt\" *ngIf=\"!isHeaderVisible\">\r\n <lib-chart-header-v2 \r\n [chartData]=\"chartData\" \r\n [chartConfiguration]=\"chartConfiguration\"\r\n (clickEvent)=\"handleClick($event)\">\r\n </lib-chart-header-v2>\r\n </div>\r\n \r\n <lib-chart-header-v1 \r\n *ngIf=\"isHeaderVisible\"\r\n [title]=\"chartData.metaData.title\" \r\n [hasDrillDown]=\"chartData.metaData.hasDrillDown\"\r\n [isEditEnabled]=\"chartData.metaData.isEditEnabled\" \r\n [isria]=\"customChartConfiguration.isRia\" \r\n [menuOptions]=\"chartConfiguration.headerMenuOptions\"\r\n [selectedKpiTooltop]=\"chartConfiguration.selectedKpiTooltop\" \r\n [isAlertEnabled]=\"isAlertEnabled\"\r\n (menuOptionClickEvent)=\"handleHeaderMenuClick($event)\">\r\n </lib-chart-header-v1>\r\n \r\n <div #guagechartcontainer\r\n id=\"guagechartcontainer\"\r\n class=\"lib-chart-svg guagecontainer\"\r\n [style.height.%]=\"chartConfiguration.svgHeight\">\r\n </div>\r\n</div>", styles: [".lib-guage-label-wrapper{width:100%;display:inline-block;text-align:center}.lib-guage-label-style{width:63%;display:inline-block;text-align:left}.lib-donut-label-icon{display:inline-block;width:10px;height:10px;margin-right:20px;border-radius:3px}.bc-gauge-chart{background-color:#000!important}.guagecontainer{margin-top:3%;height:53%}.gauge-currentvalue-value{font-weight:700;color:#000;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;letter-spacing:0px}.guage-label-item{font-size:.85em;display:flex;flex-direction:column}.gauge-daterange{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-size:12px;letter-spacing:0px;color:#374068;opacity:1}.gauge-daterange-value{font-weight:700}.gauge-currentvalue{margin-bottom:5px}.value-display{color:var(--font-color);font-weight:700;border-radius:3px;display:flex;align-items:center;justify-content:center}.status-display{display:flex;align-items:center;justify-content:center}.calendar-icon{border:1px solid #000000;border-top:3px solid;height:10px;margin-right:5px}.calendar-icon>:first-child{visibility:hidden}.daterange-display{display:flex;align-items:center;justify-content:center;height:100%}.marginright-3{margin-right:3px}.hidden-text,.hidden{visibility:hidden}@media screen and (min-width: 1024px) and (min-height: 400px){.guage-label-item{font-size:14px!important}.guage-item-text{font-size:16px!important}}@media screen and (min-width: 1024px) and (min-height: 1000px){.guage-label-item{font-size:14px!important}.guage-item-text{font-size:16px!important}}@media screen and (min-width: 1024px) and (min-height: 1500px){.guage-label-item{font-size:14px!important}.guage-item-text{font-size:16px!important}}@media screen and (min-width: 1366px) and (min-height: 400px){.guage-label-item{font-size:16px!important}.guage-item-text{font-size:18px!important}}@media screen and (min-width: 1366px) and (min-height: 1000px){.guage-label-item{font-size:16px!important}.guage-item-text{font-size:18px!important}}@media screen and (min-width: 1366px) and (min-height: 1500px){.guage-label-item{font-size:16px!important}.guage-item-text{font-size:18px!important}}@media screen and (min-width: 1920px) and (min-height: 400px){.guage-label-item{font-size:18px!important}.guage-item-text{font-size:20px!important}}@media screen and (min-width: 1920px) and (min-height: 1000px){.guage-label-item{font-size:18px!important}.guage-item-text{font-size:20px!important}}@media screen and (min-width: 1920px) and (min-height: 1500px){.guage-label-item{font-size:18px!important}.guage-item-text{font-size:20px!important}}@media screen and (min-width: 2560px) and (min-height: 500px){.guage-label-item{font-size:20px!important}.guage-item-text{font-size:22px!important}}@media screen and (min-width: 2560px) and (min-height: 1000px){.guage-label-item{font-size:20px!important}.guage-item-text{font-size:22px!important}}@media screen and (min-width: 2560px) and (min-height: 1500px){.guage-label-item{font-size:20px!important}.guage-item-text{font-size:22px!important}}.switch1{position:relative;display:inline-block;width:46px;height:24px;margin-left:5px;margin-right:5px}.switch1 input{opacity:0;width:0;height:0}.slider1{position:absolute;cursor:pointer;inset:0;background-color:#015ba2cf;-webkit-transition:.4s;transition:.4s}.slider1:before{position:absolute;content:\"\";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;-webkit-transition:.4s;transition:.4s}.slider1.round1{border-radius:18px}.slider1.round1:before{border-radius:50%}.marginLeft-40{margin-left:40px}.flex-inline{display:flex;justify-content:center;align-items:center;font-size:14px}@media (min-height: 550px){.value-display{font-size:14px}}@media (min-height: 900px){.guagecontainer{margin-top:6%}.value-display{font-size:25px}}\n", ".lib-chart-wrapper{width:100%;height:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;background:#fff 0% 0% no-repeat padding-box;position:relative}.lib-chart-wrapper-wo-shadow{width:100%;height:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto}.lib-chart-wrapper:hover .chart-header-v1:not(.header-no-background){background-color:#2e3640}.lib-chart-wrapper:hover .chart-header-v1:not(.header-no-background) .chart-title{color:#fff}.lib-chart-svg{width:100%}.lib-chart-header{text-align:center;background-color:#052340;color:#fff;width:100%;height:17%;word-spacing:.5px;line-height:1.8;font-weight:700;padding-top:2%;letter-spacing:0;font-size:1.2em}.lib-donut-chart-footer{width:100%;text-align:right}.lib-donut-label-text{font-size:.9em;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-weight:400;letter-spacing:0px;color:#000;opacity:1}.lib-donut-label-icon{display:inline-block;width:10px;height:10px;margin-right:20px;border-radius:3px}.lib-donut-label-item{font-weight:400;font-size:.85em;color:#2f2f2f}.lib-donut-justified-label-wrapper{width:100%;display:inline-block;text-align:center;list-style-type:none}.lib-donut-justified-label-item{font-weight:400;font-size:.85em;color:#2f2f2f;display:inline-block;text-align:left;padding:0 10px}.lib-donut-justified-label-icon{display:inline-block;width:10px;height:10px;margin-right:5px;border-radius:3px}.lib-no-background{background:none!important}.lib-display-hidden{display:none}.lib-ylabel-weeklyCharts{font-style:normal;font-variant:normal;font-weight:800;font-size:10px;line-height:12px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;letter-spacing:-.07px;text-transform:capitalize;color:#000}.lib-data-labels-weeklycharts{font-style:normal;font-variant:normal;font-weight:400;font-size:12px;line-height:14px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;letter-spacing:-.06px;color:#000}.lib-data-labels-angled-weeklycharts{font-style:normal;font-variant:normal;font-weight:800;font-size:9.5px;line-height:11px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;letter-spacing:.4px;text-anchor:start}.lib-xaxis-labels-texts-weeklycharts{font-style:normal;font-variant:normal;font-weight:800;font-size:10px;line-height:11px;letter-spacing:-.05px;fill:#000}.lib-xaxis-labels-texts-drilldown{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-size:14px;letter-spacing:-1px;color:#000;opacity:1;text-transform:capitalize}.lib-white-space-nowrap{white-space:nowrap}.lib-xaxis-labels-texts-drilldown-alt{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-size:10px;letter-spacing:0px;color:#000;opacity:1;text-transform:capitalize}.lib-yaxis-labels-texts-drilldown{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-size:14px;letter-spacing:0px;color:#000!important;opacity:1}.lib-ylabel-drilldowncharts,.lib-xlabel-drilldowncharts{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-size:16px;letter-spacing:-.1px;color:#000!important;opacity:1}.lib-donut-justified-label-icon-drilldown{display:inline-block;width:14px;height:14px;margin-right:10px;border-radius:50%}.marginright-2{margin-right:2%}.margintop-5{margin-top:5%}.width-100{width:100%}.float-right{float:right}.marginBottom-10{margin-bottom:10px}.header-alt{align-items:center;margin-bottom:10px}input::placeholder{font-size:20px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;letter-spacing:0px;color:#000;opacity:1}.padding-5{padding:5px}.hidden{visibility:hidden}.font-weight-bold{font-weight:900}.textalign-center{text-align:center}.cursor-pointer{cursor:pointer}.cursor-default{cursor:default}.font-weight-600{font-weight:600}.marginRight-15{margin-right:15px}.marginRight-20{margin-right:20px}.switch{position:relative;display:inline-block;width:46px;height:24px;margin-left:5px;margin-right:5px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;inset:0;background-color:#2d5ca0;-webkit-transition:.4s;transition:.4s}.slider:before{position:absolute;content:\"\";height:18px;width:18px;right:3px;bottom:3px;background-color:#fff;-webkit-transition:.4s;transition:.4s}.slider.round{border-radius:18px}.slider.round:before{border-radius:50%}.slider1{position:absolute;cursor:pointer;inset:0;background-color:#015ba2cf;-webkit-transition:.4s;transition:.4s}.slider1:before{position:absolute;content:\"\";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;-webkit-transition:.4s;transition:.4s}.slider1.round1{border-radius:18px}.slider1.round1:before{border-radius:50%}.lib-display-flex{display:flex}.lib-align-items-center{align-items:center}.lib-flex-direction-column{flex-direction:column}.lib-justify-content-space-between{justify-content:space-between}.lib-justify-content-space-around{justify-content:space-around}.lib-justify-content-center{justify-content:center}.lib-justify-content-start{justify-content:start}.lib-justify-content-end{justify-content:end}.lib-ml-20{margin-left:20px}.lib-position-absolute{position:absolute}.lib-z-index-9{z-index:9}.marginright-3{margin-right:3px}@media (min-height: 900px){.lib-chart-wrapper{border-radius:8px}.header-font-size-1{font-size:18px!important}.font-size-1{font-size:14px!important}.font-size-2{font-size:16px!important}.font-size-3{font-size:14px!important}.font-size-4{font-size:22px!important}.font-size-5{font-size:24px!important}}\n"] }]
|
|
240
327
|
}], ctorParameters: () => [], propDecorators: { containerElt: [{
|
|
241
328
|
type: ViewChild,
|
|
242
329
|
args: ['guagechartcontainer', { static: true }]
|
|
@@ -252,4 +339,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
252
339
|
}], headerMenuclickEvent: [{
|
|
253
340
|
type: Output
|
|
254
341
|
}] } });
|
|
255
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VhZ2UtY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXhpZGlvLXN0eWxlZ3VpZGUtbGlicmFyeS9zcmMvbGliL2d1YWdlLWNoYXJ0L2d1YWdlLWNoYXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2F4aWRpby1zdHlsZWd1aWRlLWxpYnJhcnkvc3JjL2xpYi9ndWFnZS1jaGFydC9ndWFnZS1jaGFydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUdULFNBQVMsRUFFVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFFWixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDekIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sV0FBVyxNQUFNLGlCQUFpQixDQUFDO0FBRTFDLE9BQU8sa0JBQWtCLE1BQU0sa0JBQWtCLENBQUM7Ozs7OztBQVFsRCxNQUFNLE9BQU8sbUJBQ1gsU0FBUSxpQkFBaUI7SUF5Q3pCO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFsQ0EsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDckMseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUV6RCx1QkFBa0IsR0FBUSxFQUFFLENBQUM7UUFDN0IsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUN0QixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixhQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzlCLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBRWQseUJBQW9CLEdBQVE7WUFDbkMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFF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QUFJLFFBQVEsQ0FBQyxTQUFTO1lBQ3BCLE9BQU8sQ0FDTCxtQkFBbUIsRUFDbkIsa0NBQWtDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsRUFDdEQsTUFBTSxDQUNQLENBQUM7SUFDTixDQUFDO0lBRU8sT0FBTyxDQUFDLEdBQVc7UUFDekIsT0FBTyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQy9CLENBQUM7SUFFRCxXQUFXLENBQUMsSUFBUztRQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQscUJBQXFCLENBQUMsRUFBVTtRQUM5QixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7K0dBMVVVLG1CQUFtQjttR0FBbkIsbUJBQW1CLHlnQkN4QmhDLHNnQ0FZTTs7NEZEWU8sbUJBQW1CO2tCQU4vQixTQUFTOytCQUNFLGlCQUFpQixpQkFHWixpQkFBaUIsQ0FBQyxJQUFJO3dEQU1lLFlBQVk7c0JBQS9ELFNBQVM7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNILGlCQUFpQjtzQkFBL0QsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRXBDLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgT25Jbml0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbiAgRWxlbWVudFJlZixcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzIGQzIGZyb20gJ2QzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50VW5pcXVlSWQgfSBmcm9tICcuLi91bmlxdWUtaWQnO1xyXG5pbXBvcnQgQ2hhcnRIZWxwZXIgZnJvbSAnLi4vY2hhcnQtaGVscGVyJztcclxuaW1wb3J0IHsgUmVzaXplZEV2ZW50IH0gZnJvbSAnYW5ndWxhci1yZXNpemUtZXZlbnQnO1xyXG5pbXBvcnQgSGVhZGVyQ29uZmlnSGVscGVyIGZyb20gJy4uL2hlYWRlci1jb25maWcnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZ3VhZ2UtY2hhcnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ndWFnZS1jaGFydC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZ3VhZ2UtY2hhcnQuY29tcG9uZW50Lmxlc3MnLCAnLi4vY29tbW9uLXN0eWxlcy5sZXNzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEd1YWdlQ2hhcnRDb21wb25lbnRcclxuICBleHRlbmRzIENvbXBvbmVudFVuaXF1ZUlkXHJcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlc1xyXG57XHJcbiAgQFZpZXdDaGlsZCgnZ3VhZ2VjaGFydGNvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlIH0pIGNvbnRhaW5lckVsdCE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnZ3VhZ2Vjb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBndWFnZWNvbnRhaW5lckVsdCE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIEBJbnB1dCgpIGNoYXJ0RGF0YTogYW55O1xyXG4gIEBJbnB1dCgpIGN1c3RvbUNoYXJ0Q29uZmlndXJhdGlvbjogYW55O1xyXG4gIEBPdXRwdXQoKSBjbGlja0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIGhlYWRlck1lbnVjbGlja0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIGNoYXJ0Q29uZmlndXJhdGlvbjogYW55ID0ge307XHJcbiAgZGF0YVR5cGU6IHN0cmluZyA9ICcnO1xyXG4gIGRhdGF0eXBlX3N0YXR1cyA9IGZhbHNlO1xyXG4gIHVuaXF1ZUlkID0gdGhpcy5nZXRVbmlxdWVJZCgpO1xyXG4gIGlzSGVhZGVyVmlzaWJsZSA9IHRydWU7XHJcblxyXG4gIHJlYWRvbmx5IGRlZmF1bHRDb25maWd1cmF0aW9uOiBhbnkgPSB7XHJcbiAgICBtYXJnaW46IHsgdG9wOiA0MCwgcmlnaHQ6IDIwLCBib3R0b206IDIwLCBsZWZ0OiAyMCB9LFxyXG4gICAgbWluQW5nbGU6IC05MCxcclxuICAgIG1heEFuZ2xlOiA5MCxcclxuICAgIHJpbmdJbnNldDogMjAsXHJcbiAgICByaW5nV2lkdGg6IDIwLFxyXG4gICAgbWFqb3JUaWNrczogMyxcclxuICAgIHN2Z0hlaWdodDogODAsXHJcbiAgICBsb3dfY29sb3JNYXA6IFsnIzQzQ0MwMCcsICcjRkZFRjBDJywgJyNGRjRFMEMnXSxcclxuICAgIGhpZ2hfY29sb3JNYXA6IFsnI0ZGNEUwQycsICcjRkZFRjBDJywgJyM0M0NDMDAnXSxcclxuICAgIHBvaW50ZXJXaWR0aDogMTAsXHJcbiAgICBwb2ludGVyVGFpbExlbmd0aDogNSxcclxuICAgIHBvaW50ZXJIZWFkTGVuZ3RoUGVyY2VudDogMC43LFxyXG4gICAgbGFiZWxJbnNldDogMTAsXHJcbiAgICBsZWdlbmRKdXN0aWZpZWQ6IGZhbHNlLFxyXG4gICAgYmFja2dyb3VuZENvbG9yOiAnI0ZGRkZGRicsXHJcbiAgICByaW5nU2NhbGVGYWN0b3I6IDAsXHJcbiAgICB0ZXh0c0F0Q2VudGVyU2NhbGVGYWN0b3I6IDAsXHJcbiAgICBjdXJyZW50VmFsdWVXaWR0aFNjYWxlRmFjdG9yOiA2MCxcclxuICAgIGN1cnJlbnRWYWx1ZUhlaWdodFNjYWxlRmFjdG9yOiAzMCxcclxuICAgIHBvaW50ZXJDb2xvcjogJyM2ODY4NjgnLFxyXG4gICAgaGVhZGVyTWVudU9wdGlvbnM6IEhlYWRlckNvbmZpZ0hlbHBlci5oZWFkZXJDb25maWcuaGVhZGVyTWVudU9wdGlvbnMsXHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzQWxlcnRFbmFibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy5jaGFydENvbmZpZ3VyYXRpb24/LmhlYWRlck1lbnVPcHRpb25zPy5zb21lKFxyXG4gICAgICAgIChvcHRpb24pID0+IG9wdGlvbi5pZCA9PT0gJ2VkaXRBbGVydCdcclxuICAgICAgKSA/PyBmYWxzZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5idWlsZENoYXJ0KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1snY2hhcnREYXRhJ10gfHwgY2hhbmdlc1snY3VzdG9tQ2hhcnRDb25maWd1cmF0aW9uJ10pIHtcclxuICAgICAgdGhpcy5yZWJ1aWxkQ2hhcnQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uUmVzaXplZChldmVudDogUmVzaXplZEV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLnJlYnVpbGRDaGFydCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWJ1aWxkQ2hhcnQoKTogdm9pZCB7XHJcbiAgICBkMy5zZWxlY3QoYCMke3RoaXMudW5pcXVlSWR9YCkucmVtb3ZlKCk7XHJcbiAgICB0aGlzLmJ1aWxkQ2hhcnQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnVpbGRDaGFydCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5jaGFydERhdGE/LmRhdGEgfHwgIXRoaXMuY2hhcnREYXRhPy5tZXRhRGF0YSkgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMubWVyZ2VDb25maWd1cmF0aW9ucygpO1xyXG4gICAgdGhpcy5wcm9jZXNzRGF0YUFuZFJlbmRlcigpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBtZXJnZUNvbmZpZ3VyYXRpb25zKCk6IHZvaWQge1xyXG4gICAgT2JqZWN0LmtleXModGhpcy5kZWZhdWx0Q29uZmlndXJhdGlvbikuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgIHRoaXMuY2hhcnRDb25maWd1cmF0aW9uW2tleV0gPSBDaGFydEhlbHBlci5nZXRWYWx1ZUJ5Q29uZmlndXJhdGlvblR5cGUoXHJcbiAgICAgICAga2V5LFxyXG4gICAgICAgIHRoaXMuZGVmYXVsdENvbmZpZ3VyYXRpb24sXHJcbiAgICAgICAgdGhpcy5jdXN0b21DaGFydENvbmZpZ3VyYXRpb25cclxuICAgICAgKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuaXNIZWFkZXJWaXNpYmxlID1cclxuICAgICAgdGhpcy5jaGFydENvbmZpZ3VyYXRpb24uaXNIZWFkZXJWaXNpYmxlID8/IHRoaXMuaXNIZWFkZXJWaXNpYmxlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwcm9jZXNzRGF0YUFuZFJlbmRlcigpOiB2b2lkIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgbWV0YURhdGEgfSA9IHRoaXMuY2hhcnREYXRhO1xyXG4gICAgY29uc3QgY29sb3JNYXAgPVxyXG4gICAgICBtZXRhRGF0YS5jb2xvclR5cGUgPT09ICdsb3cnXHJcbiAgICAgICAgPyB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbi5sb3dfY29sb3JNYXBcclxuICAgICAgICA6IHRoaXMuY2hhcnRDb25maWd1cmF0aW9uLmhpZ2hfY29sb3JNYXA7XHJcblxyXG4gICAgdGhpcy5zZXREYXRhVHlwZShtZXRhRGF0YSk7XHJcblxyXG4gICAgY29uc3QgZGlmZnMgPSBkYXRhLnNsaWNlKDEpLm1hcCgodiwgaSkgPT4gdiAtIGRhdGFbaV0pO1xyXG4gICAgY29uc3QgdG90YWwgPSBkaWZmcy5yZWR1Y2UoKHN1bSwgdmFsKSA9PiBzdW0gKyB2YWwsIDApO1xyXG4gICAgY29uc3QgYW5nbGVzID0gdGhpcy5jb21wdXRlQW5nbGVzKGRpZmZzLCB0b3RhbCk7XHJcblxyXG4gICAgY29uc3QgY29udGFpbmVyID0gZDMuc2VsZWN0KHRoaXMuY29udGFpbmVyRWx0Lm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgY29uc3Qgd2lkdGggPVxyXG4gICAgICBwYXJzZUludChjb250YWluZXIuc3R5bGUoJ3dpZHRoJykpIC1cclxuICAgICAgdGhpcy5jaGFydENvbmZpZ3VyYXRpb24ubWFyZ2luLmxlZnQgLVxyXG4gICAgICB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbi5tYXJnaW4ucmlnaHQ7XHJcbiAgICBjb25zdCBoZWlnaHQgPVxyXG4gICAgICBwYXJzZUludChkMy5zZWxlY3QodGhpcy5ndWFnZWNvbnRhaW5lckVsdC5uYXRpdmVFbGVtZW50KS5zdHlsZSgnaGVpZ2h0JykpIC1cclxuICAgICAgdGhpcy5jaGFydENvbmZpZ3VyYXRpb24ubWFyZ2luLnRvcCAtXHJcbiAgICAgIHRoaXMuY2hhcnRDb25maWd1cmF0aW9uLm1hcmdpbi5ib3R0b20gLVxyXG4gICAgICA1NjtcclxuXHJcbiAgICBjb25zdCByYWRpdXMgPSBNYXRoLm1pbih3aWR0aCwgaGVpZ2h0KSAvIDI7XHJcbiAgICBjb25zdCBzdmcgPSB0aGlzLmNyZWF0ZVN2Zyhjb250YWluZXIsIHdpZHRoLCBoZWlnaHQsIHJhZGl1cyk7XHJcblxyXG4gICAgdGhpcy5kcmF3QXJjcyhzdmcsIGRpZmZzLCBkYXRhLCBhbmdsZXMsIGNvbG9yTWFwLCBtZXRhRGF0YSwgcmFkaXVzKTtcclxuICAgIHRoaXMuZHJhd1BvaW50ZXIoc3ZnLCBkYXRhLCBtZXRhRGF0YSwgcmFkaXVzKTtcclxuICAgIHRoaXMuZHJhd0xhYmVscyhzdmcsIGRhdGEsIGRpZmZzLCBtZXRhRGF0YSwgcmFkaXVzKTtcclxuICAgIHRoaXMuZHJhd1RleHRCbG9ja3Moc3ZnLCBtZXRhRGF0YSwgcmFkaXVzKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0RGF0YVR5cGUobWV0YURhdGE6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKG1ldGFEYXRhLmRhdGFUeXBlKSB7XHJcbiAgICAgIHRoaXMuZGF0YVR5cGUgPSBtZXRhRGF0YS5kYXRhVHlwZSA9PT0gJ1VTRCcgPyAnJCAnIDogbWV0YURhdGEuZGF0YVR5cGU7XHJcbiAgICAgIHRoaXMuZGF0YXR5cGVfc3RhdHVzID0gbWV0YURhdGEuZGF0YVR5cGUgPT09ICdVU0QnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb21wdXRlQW5nbGVzKHZhbHVlczogbnVtYmVyW10sIHRvdGFsOiBudW1iZXIpOiBudW1iZXJbXSB7XHJcbiAgICByZXR1cm4gdmFsdWVzLnJlZHVjZSgoYWNjOiBudW1iZXJbXSwgdW5pdCwgaSkgPT4ge1xyXG4gICAgICBjb25zdCBhbmdsZSA9ICh1bml0IC8gdG90YWwpICogMTgwO1xyXG4gICAgICBhY2MucHVzaChpID09PSAwID8gYW5nbGUgOiBhY2NbaSAtIDFdICsgYW5nbGUpO1xyXG4gICAgICByZXR1cm4gYWNjO1xyXG4gICAgfSwgW10pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVTdmcoXHJcbiAgICBjb250YWluZXI6IGQzLlNlbGVjdGlvbjxhbnksIGFueSwgYW55LCBhbnk+LFxyXG4gICAgd2lkdGg6IG51bWJlcixcclxuICAgIGhlaWdodDogbnVtYmVyLFxyXG4gICAgcmFkaXVzOiBudW1iZXJcclxuICApIHtcclxuICAgIHJldHVybiBjb250YWluZXJcclxuICAgICAgLmFwcGVuZCgnc3ZnJylcclxuICAgICAgLmF0dHIoJ2lkJywgdGhpcy51bmlxdWVJZClcclxuICAgICAgLmF0dHIoJ3dpZHRoJywgd2lkdGggKyB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbi5tYXJnaW4ubGVmdClcclxuICAgICAgLmF0dHIoJ2hlaWdodCcsIGhlaWdodCArIHRoaXMuY2hhcnRDb25maWd1cmF0aW9uLm1hcmdpbi50b3ApXHJcbiAgICAgIC5jYWxsKENoYXJ0SGVscGVyLnJlc3BvbnNpdmVmeSlcclxuICAgICAgLmFwcGVuZCgnZycpXHJcbiAgICAgIC5hdHRyKFxyXG4gICAgICAgICd0cmFuc2Zvcm0nLFxyXG4gICAgICAgIGB0cmFuc2xhdGUoJHsocGFyc2VJbnQoY29udGFpbmVyLnN0eWxlKCd3aWR0aCcpKSAvIDIgLSByYWRpdXMpICtcclxuICAgICAgICAgIHRoaXMuY2hhcnRDb25maWd1cmF0aW9uLm1hcmdpbi5sZWZ0fSwke3RoaXMuY2hhcnRDb25maWd1cmF0aW9uLm1hcmdpbi50b3B9KWBcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZHJhd0FyY3MoXHJcbiAgICBzdmc6IGFueSxcclxuICAgIGRpZmZzOiBudW1iZXJbXSxcclxuICAgIGRhdGE6IG51bWJlcltdLFxyXG4gICAgYW5nbGVzOiBudW1iZXJbXSxcclxuICAgIGNvbG9yTWFwOiBzdHJpbmdbXSxcclxuICAgIG1ldGFEYXRhOiBhbnksXHJcbiAgICByYWRpdXM6IG51bWJlclxyXG4gICk6IHZvaWQge1xyXG4gICAgY29uc3QgYXJjID0gZDNcclxuICAgICAgLmFyYygpXHJcbiAgICAgIC5pbm5lclJhZGl1cyhcclxuICAgICAgICByYWRpdXMgLVxyXG4gICAgICAgICAgdGhpcy5jaGFydENvbmZpZ3VyYXRpb24ucmluZ1dpZHRoIC1cclxuICAgICAgICAgIHRoaXMuY2hhcnRDb25maWd1cmF0aW9uLnJpbmdJbnNldFxyXG4gICAgICApXHJcbiAgICAgIC5vdXRlclJhZGl1cyhyYWRpdXMpXHJcbiAgICAgIC5zdGFydEFuZ2xlKChfLCBpKSA9PlxyXG4gICAgICAgIHRoaXMuZGVnMnJhZChcclxuICAgICAgICAgIGkgPT09IDBcclxuICAgICAgICAgICAgPyB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbi5taW5BbmdsZVxyXG4gICAgICAgICAgICA6IHRoaXMuY2hhcnRDb25maWd1cmF0aW9uLm1pbkFuZ2xlICsgYW5nbGVzW2kgLSAxXVxyXG4gICAgICAgIClcclxuICAgICAgKVxyXG4gICAgICAuZW5kQW5nbGUoKF8sIGkpID0+XHJcbiAgICAgICAgdGhpcy5kZWcycmFkKFxyXG4gICAgICAgICAgaSA9PT0gZGlmZnMubGVuZ3RoIC0gMVxyXG4gICAgICAgICAgICA/IHRoaXMuY2hhcnRDb25maWd1cmF0aW9uLm1heEFuZ2xlXHJcbiAgICAgICAgICAgIDogdGhpcy5jaGFydENvbmZpZ3VyYXRpb24ubWluQW5nbGUgKyBhbmdsZXNbaV1cclxuICAgICAgICApXHJcbiAgICAgICk7XHJcblxyXG4gICAgY29uc3QgYXJjcyA9IHN2Z1xyXG4gICAgICAuYXBwZW5kKCdnJylcclxuICAgICAgLmF0dHIoJ2NsYXNzJywgJ2FyYycpXHJcbiAgICAgIC5hdHRyKCd0cmFuc2Zvcm0nLCBgdHJhbnNsYXRlKCR7cmFkaXVzfSwke3JhZGl1c30pYCk7XHJcblxyXG4gICAgYXJjc1xyXG4gICAgICAuc2VsZWN0QWxsKCdwYXRoJylcclxuICAgICAgLmRhdGEoZGlmZnMpXHJcbiAgICAgIC5lbnRlcigpXHJcbiAgICAgIC5hcHBlbmQoJ3BhdGgnKVxyXG4gICAgICAuYXR0cignZCcsIGFyYylcclxuICAgICAgLmF0dHIoJ2ZpbGwnLCAoXywgaSkgPT4gY29sb3JNYXBbaV0pXHJcbiAgICAgIC5zdHlsZSgnY3Vyc29yJywgKCkgPT5cclxuICAgICAgICBtZXRhRGF0YS5jdXJyZW50VmFsdWUgPiAwICYmIG1ldGFEYXRhLmhhc0RyaWxsRG93blxyXG4gICAgICAgICAgPyAncG9pbnRlcidcclxuICAgICAgICAgIDogJ2RlZmF1bHQnXHJcbiAgICAgIClcclxuICAgICAgLm9uKCdjbGljaycsIChldmVudCwgZCkgPT4ge1xyXG4gICAgICAgIGlmIChtZXRhRGF0YS5oYXNEcmlsbERvd24gJiYgbWV0YURhdGEuY3VycmVudFZhbHVlID4gMCkge1xyXG4gICAgICAgICAgdGhpcy5oYW5kbGVDbGljayhgJHtkYXRhWzBdfSAtICR7ZGF0YVtkYXRhLmxlbmd0aCAtIDFdfWApO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRyYXdQb2ludGVyKHN2ZzogYW55LCBkYXRhOiBudW1iZXJbXSwgbWV0YURhdGE6IGFueSwgcmFkaXVzOiBudW1iZXIpIHtcclxuICAgIGNvbnN0IHBvaW50ZXJIZWFkTGVuZ3RoID0gTWF0aC5yb3VuZChcclxuICAgICAgcmFkaXVzICogdGhpcy5jaGFydENvbmZpZ3VyYXRpb24ucG9pbnRlckhlYWRMZW5ndGhQZXJjZW50XHJcbiAgICApO1xyXG4gICAgY29uc3QgcG9pbnRlclZhbHVlID0gbWV0YURhdGEuY3VycmVudFZhbHVlIC0gZGF0YVswXTtcclxuICAgIGNvbnN0IHJhbmdlID0gZGF0YVtkYXRhLmxlbmd0aCAtIDFdIC0gZGF0YVswXTtcclxuICAgIGNvbnN0IGFuZ2xlID1cclxuICAgICAgdGhpcy5jaGFydENvbmZpZ3VyYXRpb24ubWluQW5nbGUgKyAocG9pbnRlclZhbHVlIC8gcmFuZ2UpICogMTgwO1xyXG5cclxuICAgIGNvbnN0IGxpbmVEYXRhID0gW1xyXG4gICAgICBbdGhpcy5jaGFydENvbmZpZ3VyYXRpb24ucG9pbnRlcldpZHRoIC8gMiwgMF0sXHJcbiAgICAgIFswLCAtcG9pbnRlckhlYWRMZW5ndGhdLFxyXG4gICAgICBbLXRoaXMuY2hhcnRDb25maWd1cmF0aW9uLnBvaW50ZXJXaWR0aCAvIDIsIDBdLFxyXG4gICAgICBbMCwgdGhpcy5jaGFydENvbmZpZ3VyYXRpb24ucG9pbnRlclRhaWxMZW5ndGhdLFxyXG4gICAgICBbdGhpcy5jaGFydENvbmZpZ3VyYXRpb24ucG9pbnRlcldpZHRoIC8gMiwgMF0sXHJcbiAgICBdO1xyXG5cclxuICAgIGNvbnN0IHBvaW50ZXJMaW5lID0gZDMubGluZSgpO1xyXG4gICAgc3ZnXHJcbiAgICAgIC5hcHBlbmQoJ2cnKVxyXG4gICAgICAuYXR0cignY2xhc3MnLCAncG9pbnRlcicpXHJcbiAgICAgIC5hdHRyKCd0cmFuc2Zvcm0nLCBgdHJhbnNsYXRlKCR7cmFkaXVzfSwke3JhZGl1c30pYClcclxuICAgICAgLmFwcGVuZCgncGF0aCcpXHJcbiAgICAgIC5hdHRyKCdkJywgcG9pbnRlckxpbmUobGluZURhdGEpKVxyXG4gICAgICAuYXR0cignZmlsbCcsIHRoaXMuY2hhcnRDb25maWd1cmF0aW9uLnBvaW50ZXJDb2xvcilcclxuICAgICAgLmF0dHIoXHJcbiAgICAgICAgJ3RyYW5zZm9ybScsXHJcbiAgICAgICAgYHJvdGF0ZSgke2FuZ2xlfSkgdHJhbnNsYXRlKDAsJHtcclxuICAgICAgICAgIC1yYWRpdXMgKyB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbi5yaW5nV2lkdGggKyBwb2ludGVySGVhZExlbmd0aFxyXG4gICAgICAgIH0pYFxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkcmF3TGFiZWxzKFxyXG4gICAgc3ZnOiBhbnksXHJcbiAgICBkYXRhOiBudW1iZXJbXSxcclxuICAgIGRpZmZzOiBudW1iZXJbXSxcclxuICAgIG1ldGFEYXRhOiBhbnksXHJcbiAgICByYWRpdXM6IG51bWJlclxyXG4gICk6IHZvaWQge1xyXG4gICAgY29uc3QgcmFuZ2UgPSBkYXRhW2RhdGEubGVuZ3RoIC0gMV0gLSBkYXRhWzBdO1xyXG4gICAgbGV0IGN1bXVsYXRpdmUgPSAwO1xyXG4gICAgY29uc3QgbGFiZWxBcnJheSA9IFt7IG5hbWU6IGRhdGFbMF0sIHZhbHVlOiAwIH1dO1xyXG5cclxuICAgIGRpZmZzLmZvckVhY2goKGRpZmYsIGkpID0+IHtcclxuICAgICAgY3VtdWxhdGl2ZSArPSBkaWZmO1xyXG4gICAgICBsYWJlbEFycmF5LnB1c2goeyBuYW1lOiBkYXRhW2kgKyAxXSwgdmFsdWU6IGN1bXVsYXRpdmUgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zdCBsYWJlbHMgPSBzdmdcclxuICAgICAgLmFwcGVuZCgnZycpXHJcbiAgICAgIC5hdHRyKCdjbGFzcycsICdsYWJlbCcpXHJcbiAgICAgIC5hdHRyKCd0cmFuc2Zvcm0nLCBgdHJhbnNsYXRlKCR7cmFkaXVzfSwke3JhZGl1c30pYCk7XHJcblxyXG4gICAgbGFiZWxzXHJcbiAgICAgIC5zZWxlY3RBbGwoJ3RleHQnKVxyXG4gICAgICAuZGF0YShsYWJlbEFycmF5KVxyXG4gICAgICAuZW50ZXIoKVxyXG4gICAgICAuYXBwZW5kKCd0ZXh0JylcclxuICAgICAgLmF0dHIoJ3RyYW5zZm9ybScsIChkKSA9PiB7XHJcbiAgICAgICAgY29uc3QgbmV3QW5nbGUgPVxyXG4gICAgICAgICAgdGhpcy5jaGFydENvbmZpZ3VyYXRpb24ubWluQW5nbGUgKyAoZC52YWx1ZSAvIHJhbmdlKSAqIDE4MDtcclxuICAgICAgICByZXR1cm4gYHJvdGF0ZSgke25ld0FuZ2xlfSkgdHJhbnNsYXRlKDAsJHtcclxuICAgICAgICAgIHRoaXMuY2hhcnRDb25maWd1cmF0aW9uLmxhYmVsSW5zZXQgLSByYWRpdXMgLSAyMFxyXG4gICAgICAgIH0pIHJvdGF0ZSgkey1uZXdBbmdsZX0pYDtcclxuICAgICAgfSlcclxuICAgICAgLmF0dHIoJ2ZpbGwnLCAndmFyKC0tY2hhcnQtdGV4dC1jb2xvciknKVxyXG4gICAgICAuc3R5bGUoJ2ZvbnQtc2l6ZScsIHdpbmRvdy5pbm5lcldpZHRoIDwgMTQwMCA/ICcxMnB4JyA6ICcxNHB4JylcclxuICAgICAgLnN0eWxlKCdmb250LXdlaWdodCcsIDYwMClcclxuICAgICAgLnRleHQoKGQpID0+IGAke2QubmFtZX0ke21ldGFEYXRhLmRhdGFUeXBlID8/ICcnfWApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkcmF3VGV4dEJsb2Nrcyhzdmc6IGFueSwgbWV0YURhdGE6IGFueSwgcmFkaXVzOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGNvbnN0IHRvcCA9IHJhZGl1cyAvIDIgLSAxMDtcclxuICAgIGNvbnN0IG1pZCA9IHRvcCArIHRoaXMuY2hhcnRDb25maWd1cmF0aW9uLmN1cnJlbnRWYWx1ZUhlaWdodFNjYWxlRmFjdG9yO1xyXG4gICAgY29uc3QgYm90dG9tID0gbWlkICsgdGhpcy5jaGFydENvbmZpZ3VyYXRpb24uY3VycmVudFZhbHVlSGVpZ2h0U2NhbGVGYWN0b3I7XHJcblxyXG4gICAgY29uc3QgYWRkVGV4dCA9IChjbHM6IHN0cmluZywgdGV4dDogc3RyaW5nLCB5OiBudW1iZXIsIHdpZHRoID0gMjEwKSA9PiB7XHJcbiAgICAgIHN2Z1xyXG4gICAgICAgIC5hcHBlbmQoJ2ZvcmVpZ25PYmplY3QnKVxyXG4gICAgICAgIC5hdHRyKCd0cmFuc2Zvcm0nLCBgdHJhbnNsYXRlKCR7cmFkaXVzIC0gd2lkdGggLyAyfSwke3l9KWApXHJcbiAgICAgICAgLmF0dHIoJ3dpZHRoJywgd2lkdGgpXHJcbiAgICAgICAgLmF0dHIoJ2hlaWdodCcsIHRoaXMuY2hhcnRDb25maWd1cmF0aW9uLmN1cnJlbnRWYWx1ZUhlaWdodFNjYWxlRmFjdG9yKVxyXG4gICAgICAgIC5hcHBlbmQoJ3hodG1sOmRpdicpXHJcbiAgICAgICAgLmF0dHIoJ2NsYXNzJywgY2xzKVxyXG4gICAgICAgIC5odG1sKHRleHQpO1xyXG4gICAgfTtcclxuXHJcbiAgICBhZGRUZXh0KFxyXG4gICAgICAndmFsdWUtZGlzcGxheScsXHJcbiAgICAgIGAke21ldGFEYXRhLmN1cnJlbnRWYWx1ZX0ke21ldGFEYXRhLmRhdGFUeXBlID8/ICcnfWAsXHJcbiAgICAgIHRvcFxyXG4gICAgKTtcclxuXHJcbiAgICBpZiAobWV0YURhdGEuc3RhdHVzKSBhZGRUZXh0KCdzdGF0dXMtZGlzcGxheScsIG1ldGFEYXRhLnN0YXR1cywgbWlkKTtcclxuICAgIGlmIChtZXRhRGF0YS5kYXRlUmFuZ2UpXHJcbiAgICAgIGFkZFRleHQoXHJcbiAgICAgICAgJ2RhdGVyYW5nZS1kaXNwbGF5JyxcclxuICAgICAgICBgPGkgY2xhc3M9XCJmYSBmYS1jYWxlbmRhclwiPjwvaT4gJHttZXRhRGF0YS5kYXRlUmFuZ2V9YCxcclxuICAgICAgICBib3R0b21cclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZGVnMnJhZChkZWc6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICByZXR1cm4gKGRlZyAqIE1hdGguUEkpIC8gMTgwO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlQ2xpY2soZGF0YTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmNsaWNrRXZlbnQuZW1pdChkYXRhKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUhlYWRlck1lbnVDbGljayhpZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmhlYWRlck1lbnVjbGlja0V2ZW50LmVtaXQoaWQpO1xyXG4gIH1cclxufSIsIjxkaXYgI2d1YWdlY29udGFpbmVyIGNsYXNzPVwibGliLWNoYXJ0LXdyYXBwZXJcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IHZhcigtLWNhcmQtYmcpO1wiXHJcbiAgKHJlc2l6ZWQpPVwib25SZXNpemVkKCRldmVudClcIj5cclxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWFsdFwiICpuZ0lmPVwiIWlzSGVhZGVyVmlzaWJsZVwiPlxyXG4gICAgPGxpYi1jaGFydC1oZWFkZXItdjIgW2NoYXJ0RGF0YV09XCJjaGFydERhdGFcIiBbY2hhcnRDb25maWd1cmF0aW9uXT1cImNoYXJ0Q29uZmlndXJhdGlvblwiXHJcbiAgICAgIChjbGlja0V2ZW50KT1cImhhbmRsZUNsaWNrKCRldmVudClcIj48L2xpYi1jaGFydC1oZWFkZXItdjI+XHJcbiAgPC9kaXY+XHJcbiAgPGxpYi1jaGFydC1oZWFkZXItdjEgW3RpdGxlXT1cImNoYXJ0RGF0YS5tZXRhRGF0YS50aXRsZVwiIFtoYXNEcmlsbERvd25dPVwiY2hhcnREYXRhLm1ldGFEYXRhLmhhc0RyaWxsRG93blwiXHJcbiAgICBbaXNFZGl0RW5hYmxlZF09XCJjaGFydERhdGEubWV0YURhdGEuaXNFZGl0RW5hYmxlZFwiIFtpc3JpYV09XCJjdXN0b21DaGFydENvbmZpZ3VyYXRpb24uaXNSaWFcIiBbbWVudU9wdGlvbnNdPVwiY2hhcnRDb25maWd1cmF0aW9uLmhlYWRlck1lbnVPcHRpb25zXCJcclxuICAgIFtzZWxlY3RlZEtwaVRvb2x0b3BdPVwiY2hhcnRDb25maWd1cmF0aW9uLnNlbGVjdGVkS3BpVG9vbHRvcFwiIChtZW51T3B0aW9uQ2xpY2tFdmVudCk9XCJoYW5kbGVIZWFkZXJNZW51Q2xpY2soJGV2ZW50KVwiXHJcbiAgICBbaXNBbGVydEVuYWJsZWRdPVwiaXNBbGVydEVuYWJsZWRcIiAqbmdJZj1cImlzSGVhZGVyVmlzaWJsZVwiPjwvbGliLWNoYXJ0LWhlYWRlci12MT5cclxuICA8ZGl2IFtzdHlsZS5oZWlnaHRdPVwiY2hhcnRDb25maWd1cmF0aW9uLnN2Z0hlaWdodFwiIGlkPVwiZ3VhZ2VjaGFydGNvbnRhaW5lclwiICNndWFnZWNoYXJ0Y29udGFpbmVyXHJcbiAgICBjbGFzcz1cImxpYi1jaGFydC1zdmcgZ3VhZ2Vjb250YWluZXJcIj48L2Rpdj5cclxuPC9kaXY+Il19
|
|
342
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VhZ2UtY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXhpZGlvLXN0eWxlZ3VpZGUtbGlicmFyeS9zcmMvbGliL2d1YWdlLWNoYXJ0L2d1YWdlLWNoYXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2F4aWRpby1zdHlsZWd1aWRlLWxpYnJhcnkvc3JjL2xpYi9ndWFnZS1jaGFydC9ndWFnZS1jaGFydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUdULFNBQVMsRUFFVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixpQkFBaUIsR0FFbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDekIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sV0FBVyxNQUFNLGlCQUFpQixDQUFDO0FBRTFDLE9BQU8sa0JBQWtCLE1BQU0sa0JBQWtCLENBQUM7Ozs7OztBQXVEbEQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGlCQUFpQjtJQW9EeEQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQTdDRCw2QkFBd0IsR0FBZ0MsRUFBRSxDQUFDO1FBQzFELGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3hDLHlCQUFvQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFNUQsdUJBQWtCLEdBQXVCLEVBQXdCLENBQUM7UUFDbEUsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLGFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDOUIsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFFTix3QkFBbUIsR0FBRyxFQUFFLENBQUM7UUFDekIsdUJBQWtCLEdBQUcs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QUFDO0lBRU8sb0JBQW9CLENBQUMsTUFBYztRQUN6QyxPQUFPLGFBQWEsTUFBTSxLQUFLLE1BQU0sR0FBRyxDQUFDO0lBQzNDLENBQUM7SUFFTyxPQUFPLENBQUMsR0FBVztRQUN6QixPQUFPLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDL0IsQ0FBQztJQUVPLFFBQVEsQ0FBQyxJQUFjO1FBQzdCLE9BQU8sR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNuRCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWE7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELHFCQUFxQixDQUFDLEVBQVU7UUFDOUIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyQyxDQUFDOytHQXRhVSxtQkFBbUI7bUdBQW5CLG1CQUFtQix5Z0JDdkVoQyxvcENBNkJNOzs0RkQwQ08sbUJBQW1CO2tCQU4vQixTQUFTOytCQUNFLGlCQUFpQixpQkFHWixpQkFBaUIsQ0FBQyxJQUFJO3dEQUlyQyxZQUFZO3NCQURYLFNBQVM7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUlsRCxpQkFBaUI7c0JBRGhCLFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUdwQyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFDSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLG9CQUFvQjtzQkFBN0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIE9uSW5pdCxcclxuICBPbkNoYW5nZXMsXHJcbiAgVmlld0NoaWxkLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyBkMyBmcm9tICdkMyc7XHJcbmltcG9ydCB7IENvbXBvbmVudFVuaXF1ZUlkIH0gZnJvbSAnLi4vdW5pcXVlLWlkJztcclxuaW1wb3J0IENoYXJ0SGVscGVyIGZyb20gJy4uL2NoYXJ0LWhlbHBlcic7XHJcbmltcG9ydCB7IFJlc2l6ZWRFdmVudCB9IGZyb20gJ2FuZ3VsYXItcmVzaXplLWV2ZW50JztcclxuaW1wb3J0IEhlYWRlckNvbmZpZ0hlbHBlciBmcm9tICcuLi9oZWFkZXItY29uZmlnJztcclxuXHJcbmludGVyZmFjZSBDaGFydERhdGEge1xyXG4gIGRhdGE6IG51bWJlcltdO1xyXG4gIG1ldGFEYXRhOiBDaGFydE1ldGFkYXRhO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgQ2hhcnRNZXRhZGF0YSB7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgY29sb3JUeXBlOiAnbG93JyB8ICdoaWdoJztcclxuICBkYXRhVHlwZT86IHN0cmluZztcclxuICBjdXJyZW50VmFsdWU6IG51bWJlcjtcclxuICBzdGF0dXM/OiBzdHJpbmc7XHJcbiAgZGF0ZVJhbmdlPzogc3RyaW5nO1xyXG4gIGhhc0RyaWxsRG93bj86IGJvb2xlYW47XHJcbiAgaXNFZGl0RW5hYmxlZD86IGJvb2xlYW47XHJcbn1cclxuXHJcbmludGVyZmFjZSBDaGFydENvbmZpZ3VyYXRpb24ge1xyXG4gIG1hcmdpbjogeyB0b3A6IG51bWJlcjsgcmlnaHQ6IG51bWJlcjsgYm90dG9tOiBudW1iZXI7IGxlZnQ6IG51bWJlciB9O1xyXG4gIG1pbkFuZ2xlOiBudW1iZXI7XHJcbiAgbWF4QW5nbGU6IG51bWJlcjtcclxuICByaW5nSW5zZXQ6IG51bWJlcjtcclxuICByaW5nV2lkdGg6IG51bWJlcjtcclxuICBtYWpvclRpY2tzOiBudW1iZXI7XHJcbiAgc3ZnSGVpZ2h0OiBudW1iZXI7XHJcbiAgbG93X2NvbG9yTWFwOiBzdHJpbmdbXTtcclxuICBoaWdoX2NvbG9yTWFwOiBzdHJpbmdbXTtcclxuICBpc0hlYWRlclZpc2libGU/OiBib29sZWFuO1xyXG4gIHBvaW50ZXJXaWR0aDogbnVtYmVyO1xyXG4gIHBvaW50ZXJUYWlsTGVuZ3RoOiBudW1iZXI7XHJcbiAgcG9pbnRlckhlYWRMZW5ndGhQZXJjZW50OiBudW1iZXI7XHJcbiAgbGFiZWxJbnNldDogbnVtYmVyO1xyXG4gIGxlZ2VuZEp1c3RpZmllZDogYm9vbGVhbjtcclxuICBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcclxuICBpc0RyaWxsZG93bkNoYXJ0PzogYm9vbGVhbjtcclxuICByaW5nU2NhbGVGYWN0b3I6IG51bWJlcjtcclxuICB0ZXh0c0F0Q2VudGVyU2NhbGVGYWN0b3I6IG51bWJlcjtcclxuICBjdXJyZW50VmFsdWVXaWR0aFNjYWxlRmFjdG9yOiBudW1iZXI7XHJcbiAgY3VycmVudFZhbHVlSGVpZ2h0U2NhbGVGYWN0b3I6IG51bWJlcjtcclxuICBwb2ludGVyQ29sb3I6IHN0cmluZztcclxuICBpc1RvZ2dsZVZpc2libGU/OiBib29sZWFuO1xyXG4gIHNlbGVjdGVkS3BpVG9vbHRvcD86IGFueTtcclxuICBpc1ZhbHVlTGFibGVBZGp1c3Q/OiBib29sZWFuO1xyXG4gIGlzVGl0bGVIaWRkZW4/OiBib29sZWFuO1xyXG4gIGhlYWRlck1lbnVPcHRpb25zOiBhbnlbXTtcclxuICBpc1JpYT86IGJvb2xlYW47XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWd1YWdlLWNoYXJ0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZ3VhZ2UtY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2d1YWdlLWNoYXJ0LmNvbXBvbmVudC5sZXNzJywgJy4uL2NvbW1vbi1zdHlsZXMubGVzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHdWFnZUNoYXJ0Q29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50VW5pcXVlSWQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgQFZpZXdDaGlsZCgnZ3VhZ2VjaGFydGNvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgY29udGFpbmVyRWx0ITogRWxlbWVudFJlZjtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZ3VhZ2Vjb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gIGd1YWdlY29udGFpbmVyRWx0ITogRWxlbWVudFJlZjtcclxuXHJcbiAgQElucHV0KCkgY2hhcnREYXRhITogQ2hhcnREYXRhO1xyXG4gIEBJbnB1dCgpIGN1c3RvbUNoYXJ0Q29uZmlndXJhdGlvbjogUGFydGlhbDxDaGFydENvbmZpZ3VyYXRpb24+ID0ge307XHJcbiAgQE91dHB1dCgpIGNsaWNrRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAT3V0cHV0KCkgaGVhZGVyTWVudWNsaWNrRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgY2hhcnRDb25maWd1cmF0aW9uOiBDaGFydENvbmZpZ3VyYXRpb24gPSB7fSBhcyBDaGFydENvbmZpZ3VyYXRpb247XHJcbiAgZGF0YVR5cGUgPSAnJztcclxuICBkYXRhdHlwZV9zdGF0dXMgPSBmYWxzZTtcclxuICB1bmlxdWVJZCA9IHRoaXMuZ2V0VW5pcXVlSWQoKTtcclxuICBpc0hlYWRlclZpc2libGUgPSB0cnVlO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IENIQVJUX0hFQURFUl9IRUlHSFQgPSA1NjtcclxuICBwcml2YXRlIHJlYWRvbmx5IExBUkdFX1NDUkVFTl9XSURUSCA9IDE0MDA7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBYTEFSR0VfU0NSRUVOX1dJRFRIID0gMTUwMDtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0Q29uZmlndXJhdGlvbjogQ2hhcnRDb25maWd1cmF0aW9uID0ge1xyXG4gICAgbWFyZ2luOiB7IHRvcDogNDAsIHJpZ2h0OiAyMCwgYm90dG9tOiAyMCwgbGVmdDogMjAgfSxcclxuICAgIG1pbkFuZ2xlOiAtOTAsXHJcbiAgICBtYXhBbmdsZTogOTAsXHJcbiAgICByaW5nSW5zZXQ6IDIwLFxyXG4gICAgcmluZ1dpZHRoOiAyMCxcclxuICAgIG1ham9yVGlja3M6IDMsXHJcbiAgICBzdmdIZWlnaHQ6IDgwLFxyXG4gICAgbG93X2NvbG9yTWFwOiBbJyM0M0NDMDAnLCAnI0ZGRUYwQycsICcjRkY0RTBDJ10sXHJcbiAgICBoaWdoX2NvbG9yTWFwOiBbJyNGRjRFMEMnLCAnI0ZGRUYwQycsICcjNDNDQzAwJ10sXHJcbiAgICBpc0hlYWRlclZpc2libGU6IHVuZGVmaW5lZCxcclxuICAgIHBvaW50ZXJXaWR0aDogMTAsXHJcbiAgICBwb2ludGVyVGFpbExlbmd0aDogNSxcclxuICAgIHBvaW50ZXJIZWFkTGVuZ3RoUGVyY2VudDogMC43LFxyXG4gICAgbGFiZWxJbnNldDogMTAsXHJcbiAgICBsZWdlbmRKdXN0aWZpZWQ6IGZhbHNlLFxyXG4gICAgYmFja2dyb3VuZENvbG9yOiAnI0ZGRkZGRicsXHJcbiAgICBpc0RyaWxsZG93bkNoYXJ0OiB1bmRlZmluZWQsXHJcbiAgICByaW5nU2NhbGVGYWN0b3I6IDAsXHJcbiAgICB0ZXh0c0F0Q2VudGVyU2NhbGVGYWN0b3I6IDAsXHJcbiAgICBjdXJyZW50VmFsdWVXaWR0aFNjYWxlRmFjdG9yOiA2MCxcclxuICAgIGN1cnJlbnRWYWx1ZUhlaWdodFNjYWxlRmFjdG9yOiAzMCxcclxuICAgIHBvaW50ZXJDb2xvcjogJyM2ODY4NjgnLFxyXG4gICAgaXNUb2dnbGVWaXNpYmxlOiB1bmRlZmluZWQsXHJcbiAgICBzZWxlY3RlZEtwaVRvb2x0b3A6IHVuZGVmaW5lZCxcclxuICAgIGlzVmFsdWVMYWJsZUFkanVzdDogdW5kZWZpbmVkLFxyXG4gICAgaXNUaXRsZUhpZGRlbjogdW5kZWZpbmVkLFxyXG4gICAgaGVhZGVyTWVudU9wdGlvbnM6IEhlYWRlckNvbmZpZ0hlbHBlci5oZWFkZXJDb25maWcuaGVhZGVyTWVudU9wdGlvbnMsXHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzQWxlcnRFbmFibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hhcnRDb25maWd1cmF0aW9uPy5oZWFkZXJNZW51T3B0aW9ucz8uc29tZShcclxuICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLmlkID09PSAnZWRpdEFsZXJ0J1xyXG4gICAgKSA/PyBmYWxzZTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbml0aWFsaXplQ2hhcnQoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydjaGFydERhdGEnXSB8fCBjaGFuZ2VzWydjdXN0b21DaGFydENvbmZpZ3VyYXRpb24nXSkge1xyXG4gICAgICB0aGlzLnJlbW92ZUV4aXN0aW5nQ2hhcnQoKTtcclxuICAgICAgdGhpcy5pbml0aWFsaXplQ2hhcnQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uUmVzaXplZChldmVudDogUmVzaXplZEV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLnJlbW92ZUV4aXN0aW5nQ2hhcnQoKTtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZUNoYXJ0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlbW92ZUV4aXN0aW5nQ2hhcnQoKTogdm9pZCB7XHJcbiAgICBkMy5zZWxlY3QoYCMke3RoaXMudW5pcXVlSWR9YCkucmVtb3ZlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRpYWxpemVDaGFydCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5jaGFydERhdGEpIHJldHVybjtcclxuXHJcbiAgICB0aGlzLm1lcmdlQ29uZmlndXJhdGlvbigpO1xyXG4gICAgdGhpcy5zZXR1cERhdGFUeXBlKCk7XHJcbiAgICBcclxuICAgIGNvbnN0IHsgZGF0YSwgbWV0YURhdGEgfSA9IHRoaXMuY2hhcnREYXRhO1xyXG4gICAgY29uc3QgY29sb3JNYXBzID0gdGhpcy5nZXRDb2xvck1hcHMobWV0YURhdGEuY29sb3JUeXBlKTtcclxuICAgIGNvbnN0IGRhdGFTZWdtZW50cyA9IHRoaXMuY2FsY3VsYXRlRGF0YVNlZ21lbnRzKGRhdGEpO1xyXG4gICAgY29uc3QgYW5nbGVWYWx1ZXMgPSB0aGlzLmNhbGN1bGF0ZUFuZ2xlcyhkYXRhU2VnbWVudHMpO1xyXG4gICAgXHJcbiAgICBjb25zdCBkaW1lbnNpb25zID0gdGhpcy5jYWxjdWxhdGVEaW1lbnNpb25zKCk7XHJcbiAgICBjb25zdCBzdmcgPSB0aGlzLmNyZWF0ZVNWRyhkaW1lbnNpb25zKTtcclxuICAgIGNvbnN0IHJhZGl1cyA9IE1hdGgubWluKGRpbWVuc2lvbnMud2lkdGgsIGRpbWVuc2lvbnMuaGVpZ2h0KSAvIDI7XHJcblxyXG4gICAgdGhpcy5hZGp1c3RTY2FsZUZhY3RvcnMocmFkaXVzKTtcclxuICAgIFxyXG4gICAgY29uc3QgbGFiZWxBcnJheSA9IHRoaXMuY3JlYXRlTGFiZWxBcnJheShkYXRhLCBkYXRhU2VnbWVudHMpO1xyXG4gICAgXHJcbiAgICB0aGlzLnJlbmRlckFyY3Moc3ZnLCBkYXRhU2VnbWVudHMsIGFuZ2xlVmFsdWVzLCBjb2xvck1hcHMsIG1ldGFEYXRhLCByYWRpdXMpO1xyXG4gICAgdGhpcy5yZW5kZXJQb2ludGVyKHN2ZywgZGF0YSwgbWV0YURhdGEsIHJhZGl1cyk7XHJcbiAgICB0aGlzLnJlbmRlckxhYmVscyhzdmcsIGxhYmVsQXJyYXksIGRhdGEsIG1ldGFEYXRhLCByYWRpdXMpO1xyXG4gICAgdGhpcy5yZW5kZXJDZW50ZXJUZXh0cyhzdmcsIG1ldGFEYXRhLCByYWRpdXMsIGRpbWVuc2lvbnMpO1xyXG4gICAgXHJcbiAgICB0aGlzLmNlbnRlclNWRyhzdmcsIGRpbWVuc2lvbnMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBtZXJnZUNvbmZpZ3VyYXRpb24oKTogdm9pZCB7XHJcbiAgICBPYmplY3Qua2V5cyh0aGlzLmRlZmF1bHRDb25maWd1cmF0aW9uKS5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgICAgdGhpcy5jaGFydENvbmZpZ3VyYXRpb25ba2V5XSA9IENoYXJ0SGVscGVyLmdldFZhbHVlQnlDb25maWd1cmF0aW9uVHlwZShcclxuICAgICAgICBrZXksXHJcbiAgICAgICAgdGhpcy5kZWZhdWx0Q29uZmlndXJhdGlvbixcclxuICAgICAgICB0aGlzLmN1c3RvbUNoYXJ0Q29uZmlndXJhdGlvblxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldHVwRGF0YVR5cGUoKTogdm9pZCB7XHJcbiAgICBjb25zdCBkYXRhVHlwZSA9IHRoaXMuY2hhcnREYXRhLm1ldGFEYXRhLmRhdGFUeXBlO1xyXG4gICAgaWYgKGRhdGFUeXBlKSB7XHJcbiAgICAgIHRoaXMuZGF0YVR5cGUgPSBkYXRhVHlwZSA9PT0gJ1VTRCcgPyAnJCAnIDogZGF0YVR5cGU7XHJcbiAgICAgIHRoaXMuZGF0YXR5cGVfc3RhdHVzID0gZGF0YVR5cGUgPT09ICdVU0QnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRDb2xvck1hcHMoY29sb3JUeXBlOiAnbG93JyB8ICdoaWdoJyk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiBjb2xvclR5cGUgPT09ICdsb3cnXHJcbiAgICAgID8gdGhpcy5jaGFydENvbmZpZ3VyYXRpb24ubG93X2NvbG9yTWFwXHJcbiAgICAgIDogdGhpcy5jaGFydENvbmZpZ3VyYXRpb24uaGlnaF9jb2xvck1hcDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2FsY3VsYXRlRGF0YVNlZ21lbnRzKGRhdGE6IG51bWJlcltdKTogbnVtYmVyW10ge1xyXG4gICAgcmV0dXJuIGRhdGEuc2xpY2UoMCwgLTEpLm1hcCgodmFsdWUsIGkpID0+IGRhdGFbaSArIDFdIC0gdmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjYWxjdWxhdGVBbmdsZXMoZGF0YVNlZ21lbnRzOiBudW1iZXJbXSk6IG51bWJlcltdIHtcclxuICAgIGNvbnN0IHRvdGFsID0gZGF0YVNlZ21lbnRzLnJlZHVjZSgoc3VtLCB2YWx1ZSkgPT4gc3VtICsgdmFsdWUsIDApO1xyXG4gICAgY29uc3QgYW5nbGVzOiBudW1iZXJbXSA9IFtdO1xyXG4gICAgXHJcbiAgICBkYXRhU2VnbWVudHMuZm9yRWFjaCgoc2VnbWVudCwgaSkgPT4ge1xyXG4gICAgICBjb25zdCBhbmdsZSA9IChzZWdtZW50IC8gdG90YWwpICogMTgwO1xyXG4gICAgICBhbmdsZXMucHVzaChpID09PSAwID8gYW5nbGUgOiBhbmdsZXNbaSAtIDFdICsgYW5nbGUpO1xyXG4gICAgfSk7XHJcbiAgICBcclxuICAgIHJldHVybiBhbmdsZXM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNhbGN1bGF0ZURpbWVuc2lvbnMoKSB7XHJcbiAgICBjb25zdCBjaGFydENvbnRhaW5lciA9IGQzLnNlbGVjdCh0aGlzLmNvbnRhaW5lckVsdC5uYXRpdmVFbGVtZW50KTtcclxuICAgIGNvbnN0IGd1YWdlQ29udGFpbmVyID0gZDMuc2VsZWN0KHRoaXMuZ3VhZ2Vjb250YWluZXJFbHQubmF0aXZlRWxlbWVudCk7XHJcbiAgICBjb25zdCBtYXJnaW4gPSB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbi5tYXJnaW47XHJcblxyXG4gICAgY29uc3Qgd2lkdGggPSBwYXJzZUludChjaGFydENvbnRhaW5lci5zdHlsZSgnd2lkdGgnKSkgLSBtYXJnaW4ubGVmdCAtIG1hcmdpbi5yaWdodDtcclxuICAgIGNvbnN0IGhlaWdodCA9IHBhcnNlSW50KGd1YWdlQ29udGFpbmVyLnN0eWxlKCdoZWlnaHQnKSkgLSBtYXJnaW4udG9wIC0gbWFyZ2luLmJvdHRvbSAtIHRoaXMuQ0hBUlRfSEVBREVSX0hFSUdIVDtcclxuXHJcbiAgICBpZiAodGhpcy5jaGFydENvbmZpZ3VyYXRpb24uaXNIZWFkZXJWaXNpYmxlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5pc0hlYWRlclZpc2libGUgPSB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbi5pc0hlYWRlclZpc2libGU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHsgd2lkdGgsIGhlaWdodCwgbWFyZ2luLCBjaGFydENvbnRhaW5lciB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVTVkcoZGltZW5zaW9uczogYW55KTogZDMuU2VsZWN0aW9uPFNWR0dFbGVtZW50LCB1bmtub3duLCBudWxsLCB1bmRlZmluZWQ+IHtcclxuICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCwgbWFyZ2luLCBjaGFydENvbnRhaW5lciB9ID0gZGltZW5zaW9ucztcclxuXHJcbiAgICByZXR1cm4gY2hhcnRDb250YWluZXJcclxuICAgICAgLmFwcGVuZCgnc3ZnJylcclxuICAgICAgLmF0dHIoJ2lkJywgdGhpcy51bmlxdWVJZClcclxuICAgICAgLmF0dHIoJ3dpZHRoJywgd2lkdGggKyBtYXJnaW4ubGVmdCArIG1hcmdpbi5yaWdodClcclxuICAgICAgLmF0dHIoJ2hlaWdodCcsIGhlaWdodCArIG1hcmdpbi50b3AgKyBtYXJnaW4uYm90dG9tKVxyXG4gICAgICAuY2FsbChDaGFydEhlbHBlci5yZXNwb25zaXZlZnkpXHJcbiAgICAgIC5hcHBlbmQoJ2cnKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRqdXN0U2NhbGVGYWN0b3JzKHJhZGl1czogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jaGFydENvbmZpZ3VyYXRpb24uaXNEcmlsbGRvd25DaGFydCkge1xyXG4gICAgICB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbi5jdXJyZW50VmFsdWVXaWR0aFNjYWxlRmFjdG9yICs9IDQwO1xyXG4gICAgICB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbi5jdXJyZW50VmFsdWVIZWlnaHRTY2FsZUZhY3RvciArPSAyMDtcclxuICAgIH0gZWxzZSBpZiAod2luZG93LmlubmVyV2lkdGggPiB0aGlzLkxBUkdFX1NDUkVFTl9XSURUSCkge1xyXG4gICAgICB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbi5jdXJyZW50VmFsdWVIZWlnaHRTY2FsZUZhY3RvciArPSAxNTtcclxuICAgICAgdGhpcy5jaGFydENvbmZpZ3VyYXRpb24uY3VycmVudFZhbHVlV2lkdGhTY2FsZUZhY3RvciAqPSAyO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVMYWJlbEFycmF5KGRhdGE6IG51bWJlcltdLCBkYXRhU2VnbWVudHM6IG51bWJlcltdKSB7XHJcbiAgICBjb25zdCBsYWJlbEFycmF5ID0gW3sgbmFtZTogZGF0YVswXSwgdmFsdWU6IDAgfV07XHJcbiAgICBsZXQgY3VtdWxhdGl2ZSA9IDA7XHJcblxyXG4gICAgZGF0YVNlZ21lbnRzLmZvckVhY2goKHNlZ21lbnQsIGkpID0+IHtcclxuICAgICAgY3VtdWxhdGl2ZSArPSBzZWdtZW50O1xyXG4gICAgICBsYWJlbEFycmF5LnB1c2goeyBuYW1lOiBkYXRhW2kgKyAxXSwgdmFsdWU6IGN1bXVsYXRpdmUgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gbGFiZWxBcnJheTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVuZGVyQXJjcyhcclxuICAgIHN2ZzogYW55LFxyXG4gICAgZGF0YVNlZ21lbnRzOiBudW1iZXJbXSxcclxuICAgIGFuZ2xlVmFsdWVzOiBudW1iZXJbXSxcclxuICAgIGNvbG9yTWFwczogc3RyaW5nW10sXHJcbiAgICBtZXRhRGF0YTogQ2hhcnRNZXRhZGF0YSxcclxuICAgIHJhZGl1czogbnVtYmVyXHJcbiAgKTogdm9pZCB7XHJcbiAgICBjb25zdCBpc1JpYSA9IHRoaXMuY3VzdG9tQ2hhcnRDb25maWd1cmF0aW9uLmlzUmlhO1xyXG4gICAgY29uc3QgY2VudGVyVHggPSB0aGlzLmdldENlbnRlclRyYW5zbGF0aW9uKHJhZGl1cyk7XHJcbiAgICBjb25zdCBhcmMgPSB0aGlzLmNyZWF0ZUFyY0dlbmVyYXRvcihkYXRhU2VnbWVudHMsIGFuZ2xlVmFsdWVzLCByYWRpdXMpO1xyXG5cclxuICAgIGNvbnN0IGFyY3MgPSBzdmcuYXBwZW5kKCdnJykuYXR0cignY2xhc3MnLCAnYXJjJykuYXR0cigndHJhbnNmb3JtJywgY2VudGVyVHgpO1xyXG5cclxuICAgIGFyY3NcclxuICAgICAgLnNlbGVjdEFsbCgncGF0aCcpXHJcbiAgICAgIC5kYXRhKGRhdGFTZWdtZW50cylcclxuICAgICAgLmVudGVyKClcclxuICAgICAgLmFwcGVuZCgncGF0aCcpXHJcbiAgICAgIC5hdHRyKCdmaWxsJywgKGQ6IGFueSwgaTogbnVtYmVyKSA9PiBjb2xvck1hcHNbaV0pXHJcbiAgICAgIC5hdHRyKCdpZCcsIChkOiBhbnksIGk6IG51bWJlcikgPT4gY29sb3JNYXBzW2ldKVxyXG4gICAgICAuYXR0cignZCcsIGFyYylcclxuICAgICAgLnN0eWxlKCdjdXJzb3InLCAoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG1ldGFEYXRhLmN1cnJlbnRWYWx1ZSA+IDAgJiYgbWV0YURhdGEuaGFzRHJpbGxEb3duICYmICFpc1JpYVxyXG4gICAgICAgICAgPyAncG9pbnRlcidcclxuICAgICAgICAgIDogJ2RlZmF1bHQnO1xyXG4gICAgICB9KVxyXG4gICAgICAub24oJ2NsaWNrJywgKGV2ZW50OiBhbnksIGQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmICghbWV0YURhdGEuaGFzRHJpbGxEb3duIHx8IG1ldGFEYXRhLmN1cnJlbnRWYWx1ZSA9PT0gMCkgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuaGFuZGxlQ2xpY2sodGhpcy5nZXRSYW5nZSh0aGlzLmNoYXJ0RGF0YS5kYXRhKSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVBcmNHZW5lcmF0b3IoZGF0YVNlZ21lbnRzOiBudW1iZXJbXSwgYW5nbGVWYWx1ZXM6IG51bWJlcltdLCByYWRpdXM6IG51bWJlcik6IGFueSB7XHJcbiAgICByZXR1cm4gZDNcclxuICAgICAgLmFyYygpXHJcbiAgICAgIC5pbm5lclJhZGl1cyhyYWRpdXMgLSB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbi5yaW5nV2lkdGggLSB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbi5yaW5nSW5zZXQpXHJcbiAgICAgIC5vdXRlclJhZGl1cyhyYWRpdXMpXHJcbiAgICAgIC5zdGFydEFuZ2xlKChkOiBhbnksIGk6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIGNvbnN0IHJhdGlvID0gaSA9PT0gMFxyXG4gICAgICAgICAgPyB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbi5taW5BbmdsZVxyXG4gICAgICAgICAgOiB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbi5taW5BbmdsZSArIGFuZ2xlVmFsdWVzW2kgLSAxXTtcclxuICAgICAgICByZXR1cm4gdGhpcy5kZWcycmFkKHJhdGlvKTtcclxuICAgICAgfSlcclxuICAgICAgLmVuZEFuZ2xlKChkOiBhbnksIGk6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIGNvbnN0IHJhdGlvID0gaSA9PT0gZGF0YVNlZ21lbnRzLmxlbmd0aCAtIDFcclxuICAgICAgICAgID8gdGhpcy5jaGFydENvbmZpZ3VyYXRpb24ubWF4QW5nbGVcclxuICAgICAgICAgIDogdGhpcy5jaGFydENvbmZpZ3VyYXRpb24ubWluQW5nbGUgKyBhbmdsZVZhbHVlc1tpXTtcclxuICAgICAgICByZXR1cm4gdGhpcy5kZWcycmFkKHJhdGlvKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlbmRlclBvaW50ZXIoc3ZnOiBhbnksIGRhdGE6IG51bWJlcltdLCBtZXRhRGF0YTogQ2hhcnRNZXRhZGF0YSwgcmFkaXVzOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNlbnRlclR4ID0gdGhpcy5nZXRDZW50ZXJUcmFuc2xhdGlvbihyYWRpdXMpO1xyXG4gICAgY29uc3QgcG9pbnRlckhlYWRMZW5ndGggPSBNYXRoLnJvdW5kKHJhZGl1cyAqIHRoaXMuY2hhcnRDb25maWd1cmF0aW9uLnBvaW50ZXJIZWFkTGVuZ3RoUGVyY2VudCk7XHJcblxyXG4gICAgY29uc3QgbGluZURhdGEgPSBbXHJcbiAgICAgIFt0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbi5wb2ludGVyV2lkdGggLyAyLCAwXSxcclxuICAgICAgWzAsIC1wb2ludGVySGVhZExlbmd0aF0sXHJcbiAgICAgIFstKHRoaXMuY2hhcnRDb25maWd1cmF0aW9uLnBvaW50ZXJXaWR0aCAvIDIpLCAwXSxcclxuICAgICAgWzAsIHRoaXMuY2hhcnRDb25maWd1cmF0aW9uLnBvaW50ZXJUYWlsTGVuZ3RoXSxcclxuICAgICAgW3RoaXMuY2hhcnRDb25maWd1cmF0aW9uLnBvaW50ZXJXaWR0aCAvIDIsIDBdLFxyXG4gICAgXTtcclxuXHJcbiAgICBjb25zdCBwb2ludGVyTGluZSA9IGQzLmxpbmUoKTtcclxuICAgIGNvbnN0IHBnID0gc3ZnXHJcbiAgICAgIC5hcHBlbmQoJ2cnKVxyXG4gICAgICAuZGF0YShbbGluZURhdGFdKVxyXG4gICAgICAuYXR0cignY2xhc3MnLCAncG9pbnRlcicpXHJcbiAgICAgIC5hdHRyKCd0cmFuc2Zvcm0nLCBjZW50ZXJUeCk7XHJcblxyXG4gICAgY29uc3QgcmFuZ2UgPSBkYXRhW2RhdGEubGVuZ3RoIC0gMV0gLSBkYXRhWzBdO1xyXG4gICAgY29uc3QgcG9pbnRlclZhbHVlID0gbWV0YURhdGEuY3VycmVudFZhbHVlIC0gZGF0YVswXTtcclxuICAgIGNvbnN0IHBvaW50ZXJBbmdsZSA9IHRoaXMuY2hhcnRDb25maWd1cmF0aW9uLm1pbkFuZ2xlICsgKHBvaW50ZXJWYWx1ZSAvIHJhbmdlKSAqIDE4MDtcclxuXHJcbiAgICBwZy5hcHBlbmQoJ3BhdGgnKVxyXG4gICAgICAuYXR0cignZCcsIHBvaW50ZXJMaW5lKVxyXG4gICAgICAuYXR0cignZmlsbCcsIHRoaXMuY2hhcnRDb25maWd1cmF0aW9uLnBvaW50ZXJDb2xvcilcclxuICAgICAgLmF0dHIoXHJcbiAgICAgICAgJ3RyYW5zZm9ybScsXHJcbiAgICAgICAgYHJvdGF0ZSgke3BvaW50ZXJBbmdsZX0pIHRyYW5zbGF0ZSgwLCAkey1yYWRpdXMgKyB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbi5yaW5nV2lkdGggKyBwb2ludGVySGVhZExlbmd0aH0pYFxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZW5kZXJMYWJlbHMoc3ZnOiBhbnksIGxhYmVsQXJyYXk6IGFueVtdLCBkYXRhOiBudW1iZXJbXSwgbWV0YURhdGE6IENoYXJ0TWV0YWRhdGEsIHJhZGl1czogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBjb25zdCBjZW50ZXJUeCA9IHRoaXMuZ2V0Q2VudGVyVHJhbnNsYXRpb24ocmFkaXVzKTtcclxuICAgIGNvbnN0IHJhbmdlID0gZGF0YVtkYXRhLmxlbmd0aCAtIDFdIC0gZGF0YVswXTtcclxuICAgIGNvbnN0IGxnID0gc3ZnLmFwcGVuZCgnZycpLmF0dHIoJ2NsYXNzJywgJ2xhYmVsJykuYXR0cigndHJhbnNmb3JtJywgY2VudGVyVHgpO1xyXG5cclxuICAgIGxnLnNlbGVjdEFsbCgnLmJ1YmJsZScpXHJcbiAgICAgIC5kYXRhKGxhYmVsQXJyYXkpXHJcbiAgICAgIC5lbnRlcigpXHJcbiAgICAgIC5hcHBlbmQoJ2cnKVxyXG4gICAgICAuYXR0cigndHJhbnNmb3JtJywgKGQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG5ld0FuZ2xlID0gdGhpcy5jaGFydENvbmZpZ3VyYXRpb24ubWluQW5nbGUgKyAoZC52YWx1ZSAvIHJhbmdlKSAqIDE4MDtcclxuICAgICAgICByZXR1cm4gYHJvdGF0ZSgke25ld0FuZ2xlfSkgdHJhbnNsYXRlKDAsICR7dGhpcy5jaGFydENvbmZpZ3VyYXRpb24ubGFiZWxJbnNldCAtIHJhZGl1cyAtIDIwfSlgO1xyXG4gICAgICB9KVxyXG4gICAgICAuYXBwZW5kKCdnJylcclxuICAgICAgLmF0dHIoJ3RyYW5zZm9ybScsIChkOiBhbnksIGk6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIGNvbnN0IG5ld0FuZ2xlID0gdGhpcy5jaGFydENvbmZpZ3VyYXRpb24ubWluQW5nbGUgKyAoZC52YWx1ZSAvIHJhbmdlKSAqIDE4MDtcclxuICAgICAgICBsZXQgeE9mZnNldCA9IC0xNztcclxuICAgICAgICBcclxuICAgICAgICBpZiAoaSA9PT0gMCAmJiB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbi5pc1ZhbHVlTGFibGVBZGp1c3QpIHtcclxuICAgICAgICAgIHhPZmZzZXQgPSAtMjc7XHJcbiAgICAgICAgfSBlbHNlIGlmIChpID09PSBsYWJlbEFycmF5Lmxlbmd0aCAtIDEgJiYgdGhpcy5jaGFydENvbmZpZ3VyYXRpb24uaXNWYWx1ZUxhYmxlQWRqdXN0KSB7XHJcbiAgICAgICAgICB4T2Zmc2V0ID0gLTE1O1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICByZXR1cm4gYHJvdGF0ZSgkey1uZXdBbmdsZX0pIHRyYW5zbGF0ZSgke3hPZmZzZXR9LCAwKWA7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5hcHBlbmQoJ3RleHQnKVxyXG4gICAgICAuYXR0cignc3R5bGUnLCAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgZm9udFNpemUgPSB3aW5kb3cuaW5uZXJXaWR0aCA8IHRoaXMuTEFSR0VfU0NSRUVOX1dJRFRIID8gJzEycHgnIDogJzE0cHgnO1xyXG4gICAgICAgIHJldHVybiBgZm9udC1zaXplOiAke2ZvbnRTaXplfTsgZm9udC13ZWlnaHQ6IDYwMDtgO1xyXG4gICAgICB9KVxyXG4gICAgICAuYXR0cignZmlsbCcsICd2YXIoLS1jaGFydC10ZXh0LWNvbG9yKScpXHJcbiAgICAgIC50ZXh0KChkOiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4gbWV0YURhdGEuZGF0YVR5cGUgPyBgJHtkLm5hbWV9JHttZXRhRGF0YS5kYXRhVHlwZX1gIDogZC5uYW1lO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVuZGVyQ2VudGVyVGV4dHMoc3ZnOiBhbnksIG1ldGFEYXRhOiBDaGFydE1ldGFkYXRhLCByYWRpdXM6IG51bWJlciwgZGltZW5zaW9uczogYW55KTogdm9pZCB7XHJcbiAgICBjb25zdCB0b3BUZXh0UG9zaXRpb24gPSByYWRpdXMgLyAyIC0gMTA7XHJcbiAgICBjb25zdCBtaWRUZXh0UG9zaXRpb24gPSB0b3BUZXh0UG9zaXRpb24gKyB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbi5jdXJyZW50VmFsdWVIZWlnaHRTY2FsZUZhY3RvcjtcclxuICAgIGNvbnN0IGJvdHRvbVRleHRQb3NpdGlvbiA9IG1pZFRleHRQb3NpdGlvbiArIHRoaXMuY2hhcnRDb25maWd1cmF0aW9uLmN1cnJlbnRWYWx1ZUhlaWdodFNjYWxlRmFjdG9yO1xyXG5cclxuICAgIC8vIEN1cnJlbnQgVmFsdWVcclxuICAgIHRoaXMuYWRkRm9yZWlnbk9iamVjdChcclxuICAgICAgc3ZnLFxyXG4gICAgICByYWRpdXMgLSB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbi5jdXJyZW50VmFsdWVXaWR0aFNjYWxlRmFjdG9yIC8gMixcclxuICAgICAgdG9wVGV4dFBvc2l0aW9uLFxyXG4gICAgICB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbi5jdXJyZW50VmFsdWVXaWR0aFNjYWxlRmFjdG9yICsgOCxcclxuICAgICAgdGhpcy5jaGFydENvbmZpZ3VyYXRpb24uY3VycmVudFZhbHVlSGVpZ2h0U2NhbGVGYWN0b3IsXHJcbiAgICAgICd2YWx1ZS1kaXNwbGF5JyxcclxuICAgICAgYCR7bWV0YURhdGEuY3VycmVudFZhbHVlfSR7bWV0YURhdGEuZGF0YVR5cGUgfHwgJyd9YFxyXG4gICAgKTtcclxuXHJcbiAgICAvLyBTdGF0dXNcclxuICAgIGlmIChtZXRhRGF0YS5zdGF0dXMpIHtcclxuICAgICAgY29uc3Qgc3RhdHVzV2lkdGggPSBtZXRhRGF0YS5zdGF0dXMubGVuZ3RoID4gNCA/IDIxMCA6IDEyMDtcclxuICAgICAgdGhpcy5hZGRGb3JlaWduT2JqZWN0KFxyXG4gICAgICAgIHN2ZyxcclxuICAgICAgICByYWRpdXMgLSBzdGF0dXNXaWR0aCAvIDIsXHJcbiAgICAgICAgbWlkVGV4dFBvc2l0aW9uLFxyXG4gICAgICAgIHN0YXR1c1dpZHRoLFxyXG4gICAgICAgIHRoaXMuY2hhcnRDb25maWd1cmF0aW9uLmN1cnJlbnRWYWx1ZUhlaWdodFNjYWxlRmFjdG9yICsgMTAsXHJcbiAgICAgICAgJ3N0YXR1cy1kaXNwbGF5JyxcclxuICAgICAgICBtZXRhRGF0YS5zdGF0dXNcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBEYXRlIFJhbmdlXHJcbiAgICBjb25zdCBkYXRlUmFuZ2VIdG1sID0gbWV0YURhdGEuZGF0ZVJhbmdlXHJcbiAgICAgID8gYDxzcGFuIGNsYXNzPVwibWFyZ2lucmlnaHQtM1wiPjxpIGNsYXNzPVwiZmEgZmEtY2FsZW5kYXJcIj48L2k+PC9zcGFuPjxzcGFuPiR7bWV0YURhdGEuZGF0ZVJhbmdlfTwvc3Bhbj5gXHJcbiAgICAgIDogJyc7XHJcbiAgICBcclxuICAgIHRoaXMuYWRkRm9yZWlnbk9iamVjdChcclxuICAgICAgc3ZnLFxyXG4gICAgICByYWRpdXMgLSAxMDUsXHJcbiAgICAgIGJvdHRvbVRleHRQb3NpdGlvbixcclxuICAgICAgMjEwLFxyXG4gICAgICB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbi5jdXJyZW50VmFsdWVIZWlnaHRTY2FsZUZhY3RvcixcclxuICAgICAgJ2RhdGVyYW5nZS1kaXNwbGF5JyxcclxuICAgICAgZGF0ZVJhbmdlSHRtbFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkRm9yZWlnbk9iamVjdChcclxuICAgIHN2ZzogYW55LFxyXG4gICAgeDogbnVtYmVyLFxyXG4gICAgeTogbnVtYmVyLFxyXG4gICAgd2lkdGg6IG51bWJlcixcclxuICAgIGhlaWdodDogbnVtYmVyLFxyXG4gICAgY2xhc3NOYW1lOiBzdHJpbmcsXHJcbiAgICBjb250ZW50OiBzdHJpbmdcclxuICApOiB2b2lkIHtcclxuICAgIGNvbnN0IGZvbnRTaXplID0gdGhpcy5nZXRGb250U2l6ZSgpO1xyXG4gICAgXHJcbiAgICBzdmdcclxuICAgICAgLmFwcGVuZCgnZm9yZWlnbk9iamVjdCcpXHJcbiAgICAgIC5hdHRyKCd0cmFuc2Zvcm0nLCBgdHJhbnNsYXRlKCR7eH0sICR7eX0pYClcclxuICAgICAgLmF0dHIoJ3dpZHRoJywgd2lkdGgpXHJcbiAgICAgIC5hdHRyKCdoZWlnaHQnLCBoZWlnaHQpXHJcbiAgICAgIC5hcHBlbmQoJ3hodG1sOmRpdicpXHJcbiAgICAgIC5hdHRyKCdjbGFzcycsIGNsYXNzTmFtZSlcclxuICAgICAgLnN0eWxlKCdoZWlnaHQnLCBgJHtoZWlnaHQgKyAxMH1weGApXHJcbiAgICAgIC5zdHlsZSgnZm9udC1zaXplJywgZm9udFNpemUpXHJcbiAgICAgIC5odG1sKGNvbnRlbnQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRGb250U2l6ZSgpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuY2hhcnRDb25maWd1cmF0aW9uLmlzRHJpbGxkb3duQ2hhcnQpIHtcclxuICAgICAgcmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoIDwgdGhpcy5MQVJHRV9TQ1JFRU5fV0lEVEggPyAnMTRweCcgOiAnMThweCc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gd2luZG93LmlubmVyV2lkdGggPCB0aGlzLkxBUkdFX1NDUkVFTl9XSURUSCA/ICcxNHB4JyA6ICcxOHB4JztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2VudGVyU1ZHKHN2ZzogYW55LCBkaW1lbnNpb25zOiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnN0IHsgbWFyZ2luLCBjaGFydENvbnRhaW5lciB9ID0gZGltZW5zaW9ucztcclxuICAgIGNvbnN0IGNvbnRhaW5lck1pZFdpZHRoID0gcGFyc2VJbnQoY2hhcnRDb250YWluZXIuc3R5bGUoJ3dpZHRoJykpIC8gMjtcclxuICAgIGNvbnN0IG5vZGVIYWxmV2lkdGggPSBzdmcubm9kZSgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIC8gMjtcclxuICAgIGNvbnN0IHVwZGF0ZWRTdGFydGluZ1BvaW50ID0gY29udGFpbmVyTWlkV2lkdGggLSBub2RlSGFsZldpZHRoO1xyXG5cclxuICAgIHN2Zy5hdHRyKCd0cmFuc2Zvcm0nLCBgdHJhbnNsYXRlKCR7dXBkYXRlZFN0YXJ0aW5nUG9pbnQgKyBtYXJnaW4ubGVmdH0sICR7bWFyZ2luLnRvcH0pYCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldENlbnRlclRyYW5zbGF0aW9uKHJhZGl1czogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgdHJhbnNsYXRlKCR7cmFkaXVzfSwgJHtyYWRpdXN9KWA7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRlZzJyYWQoZGVnOiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIChkZWcgKiBNYXRoLlBJKSAvIDE4MDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0UmFuZ2UoZGF0YTogbnVtYmVyW10pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke2RhdGFbMF19IGFuZCAke2RhdGFbZGF0YS5sZW5ndGggLSAxXX1gO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlQ2xpY2socmFuZ2U6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5jbGlja0V2ZW50LmVtaXQocmFuZ2UpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlSGVhZGVyTWVudUNsaWNrKGlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuaGVhZGVyTWVudWNsaWNrRXZlbnQuZW1pdChpZCk7XHJcbiAgfVxyXG59IiwiPGRpdiAjZ3VhZ2Vjb250YWluZXIgY2xhc3M9XCJsaWItY2hhcnQtd3JhcHBlclwiIFxyXG4gICAgIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2FyZC1iZyk7XCJcclxuICAgICAocmVzaXplZCk9XCJvblJlc2l6ZWQoJGV2ZW50KVwiPlxyXG4gIFxyXG4gIDxkaXYgY2xhc3M9XCJoZWFkZXItYWx0XCIgKm5nSWY9XCIhaXNIZWFkZXJWaXNpYmxlXCI+XHJcbiAgICA8bGliLWNoYXJ0LWhlYWRlci12MiBcclxuICAgICAgW2NoYXJ0RGF0YV09XCJjaGFydERhdGFcIiBcclxuICAgICAgW2NoYXJ0Q29uZmlndXJhdGlvbl09XCJjaGFydENvbmZpZ3VyYXRpb25cIlxyXG4gICAgICAoY2xpY2tFdmVudCk9XCJoYW5kbGVDbGljaygkZXZlbnQpXCI+XHJcbiAgICA8L2xpYi1jaGFydC1oZWFkZXItdjI+XHJcbiAgPC9kaXY+XHJcbiAgXHJcbiAgPGxpYi1jaGFydC1oZWFkZXItdjEgXHJcbiAgICAqbmdJZj1cImlzSGVhZGVyVmlzaWJsZVwiXHJcbiAgICBbdGl0bGVdPVwiY2hhcnREYXRhLm1ldGFEYXRhLnRpdGxlXCIgXHJcbiAgICBbaGFzRHJpbGxEb3duXT1cImNoYXJ0RGF0YS5tZXRhRGF0YS5oYXNEcmlsbERvd25cIlxyXG4gICAgW2lzRWRpdEVuYWJsZWRdPVwiY2hhcnREYXRhLm1ldGFEYXRhLmlzRWRpdEVuYWJsZWRcIiBcclxuICAgIFtpc3JpYV09XCJjdXN0b21DaGFydENvbmZpZ3VyYXRpb24uaXNSaWFcIiBcclxuICAgIFttZW51T3B0aW9uc109XCJjaGFydENvbmZpZ3VyYXRpb24uaGVhZGVyTWVudU9wdGlvbnNcIlxyXG4gICAgW3NlbGVjdGVkS3BpVG9vbHRvcF09XCJjaGFydENvbmZpZ3VyYXRpb24uc2VsZWN0ZWRLcGlUb29sdG9wXCIgXHJcbiAgICBbaXNBbGVydEVuYWJsZWRdPVwiaXNBbGVydEVuYWJsZWRcIlxyXG4gICAgKG1lbnVPcHRpb25DbGlja0V2ZW50KT1cImhhbmRsZUhlYWRlck1lbnVDbGljaygkZXZlbnQpXCI+XHJcbiAgPC9saWItY2hhcnQtaGVhZGVyLXYxPlxyXG4gIFxyXG4gIDxkaXYgI2d1YWdlY2hhcnRjb250YWluZXJcclxuICAgICAgIGlkPVwiZ3VhZ2VjaGFydGNvbnRhaW5lclwiXHJcbiAgICAgICBjbGFzcz1cImxpYi1jaGFydC1zdmcgZ3VhZ2Vjb250YWluZXJcIlxyXG4gICAgICAgW3N0eWxlLmhlaWdodC4lXT1cImNoYXJ0Q29uZmlndXJhdGlvbi5zdmdIZWlnaHRcIj5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
|