@spike-rabbit/charts-ng 49.0.0 → 49.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +1 -1
- package/README.md +17 -3
- package/cartesian/package.json +4 -0
- package/chart/package.json +4 -0
- package/circle/package.json +4 -0
- package/common/package.json +4 -0
- package/custom-legend/package.json +4 -0
- package/fesm2022/spike-rabbit-charts-ng-cartesian.mjs +383 -0
- package/fesm2022/spike-rabbit-charts-ng-cartesian.mjs.map +1 -0
- package/fesm2022/spike-rabbit-charts-ng-chart.mjs +59 -0
- package/fesm2022/spike-rabbit-charts-ng-chart.mjs.map +1 -0
- package/fesm2022/spike-rabbit-charts-ng-circle.mjs +91 -0
- package/fesm2022/spike-rabbit-charts-ng-circle.mjs.map +1 -0
- package/fesm2022/spike-rabbit-charts-ng-common.mjs +2383 -0
- package/fesm2022/spike-rabbit-charts-ng-common.mjs.map +1 -0
- package/fesm2022/spike-rabbit-charts-ng-custom-legend.mjs +62 -0
- package/fesm2022/spike-rabbit-charts-ng-custom-legend.mjs.map +1 -0
- package/fesm2022/spike-rabbit-charts-ng-gauge.mjs +371 -0
- package/fesm2022/spike-rabbit-charts-ng-gauge.mjs.map +1 -0
- package/fesm2022/spike-rabbit-charts-ng-loading-spinner.mjs +27 -0
- package/fesm2022/spike-rabbit-charts-ng-loading-spinner.mjs.map +1 -0
- package/fesm2022/spike-rabbit-charts-ng-progress-bar.mjs +170 -0
- package/fesm2022/spike-rabbit-charts-ng-progress-bar.mjs.map +1 -0
- package/fesm2022/spike-rabbit-charts-ng-progress.mjs +220 -0
- package/fesm2022/spike-rabbit-charts-ng-progress.mjs.map +1 -0
- package/fesm2022/spike-rabbit-charts-ng-sankey.mjs +52 -0
- package/fesm2022/spike-rabbit-charts-ng-sankey.mjs.map +1 -0
- package/fesm2022/spike-rabbit-charts-ng-sunburst.mjs +52 -0
- package/fesm2022/spike-rabbit-charts-ng-sunburst.mjs.map +1 -0
- package/fesm2022/spike-rabbit-charts-ng.mjs +40 -3527
- package/fesm2022/spike-rabbit-charts-ng.mjs.map +1 -1
- package/gauge/package.json +4 -0
- package/loading-spinner/package.json +4 -0
- package/package.json +58 -12
- package/progress/package.json +4 -0
- package/progress-bar/package.json +4 -0
- package/projects/charts-ng/README.md +17 -3
- package/sankey/package.json +4 -0
- package/sunburst/package.json +4 -0
- package/types/spike-rabbit-charts-ng-cartesian.d.ts +91 -0
- package/types/spike-rabbit-charts-ng-chart.d.ts +9 -0
- package/types/spike-rabbit-charts-ng-circle.d.ts +74 -0
- package/{index.d.ts → types/spike-rabbit-charts-ng-common.d.ts} +102 -431
- package/types/spike-rabbit-charts-ng-custom-legend.d.ts +68 -0
- package/types/spike-rabbit-charts-ng-gauge.d.ts +96 -0
- package/types/spike-rabbit-charts-ng-loading-spinner.d.ts +8 -0
- package/types/spike-rabbit-charts-ng-progress-bar.d.ts +46 -0
- package/types/spike-rabbit-charts-ng-progress.d.ts +57 -0
- package/types/spike-rabbit-charts-ng-sankey.d.ts +19 -0
- package/types/spike-rabbit-charts-ng-sunburst.d.ts +19 -0
- package/types/spike-rabbit-charts-ng.d.ts +35 -0
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { input, booleanAttribute, inject, LOCALE_ID, computed, SimpleChange, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
|
+
import { echarts, SiChartBaseComponent } from '@spike-rabbit/charts-ng/common';
|
|
4
|
+
import { SiCustomLegendComponent } from '@spike-rabbit/charts-ng/custom-legend';
|
|
5
|
+
import { SiChartLoadingSpinnerComponent } from '@spike-rabbit/charts-ng/loading-spinner';
|
|
6
|
+
import { GaugeChart } from 'echarts/charts';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Copyright (c) Siemens 2016 - 2026
|
|
10
|
+
* SPDX-License-Identifier: MIT
|
|
11
|
+
*/
|
|
12
|
+
echarts.use([GaugeChart]);
|
|
13
|
+
class SiChartGaugeComponent extends SiChartBaseComponent {
|
|
14
|
+
/** @defaultValue 0 */
|
|
15
|
+
minValue = input(0, /* @ts-ignore */
|
|
16
|
+
...(ngDevMode ? [{ debugName: "minValue" }] : /* istanbul ignore next */ []));
|
|
17
|
+
/** @defaultValue 100 */
|
|
18
|
+
maxValue = input(100, /* @ts-ignore */
|
|
19
|
+
...(ngDevMode ? [{ debugName: "maxValue" }] : /* istanbul ignore next */ []));
|
|
20
|
+
/** @defaultValue 0 */
|
|
21
|
+
value = input(0, /* @ts-ignore */
|
|
22
|
+
...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
23
|
+
splitSteps = input(/* @ts-ignore */
|
|
24
|
+
...(ngDevMode ? [undefined, { debugName: "splitSteps" }] : /* istanbul ignore next */ []));
|
|
25
|
+
/** @defaultValue true */
|
|
26
|
+
responsiveSplitSteps = input(true, /* @ts-ignore */
|
|
27
|
+
...(ngDevMode ? [{ debugName: "responsiveSplitSteps" }] : /* istanbul ignore next */ []));
|
|
28
|
+
/** @defaultValue '%' */
|
|
29
|
+
unit = input('%', /* @ts-ignore */
|
|
30
|
+
...(ngDevMode ? [{ debugName: "unit" }] : /* istanbul ignore next */ []));
|
|
31
|
+
/** @defaultValue false */
|
|
32
|
+
unitsOnSplit = input(false, /* @ts-ignore */
|
|
33
|
+
...(ngDevMode ? [{ debugName: "unitsOnSplit" }] : /* istanbul ignore next */ []));
|
|
34
|
+
/**
|
|
35
|
+
* Custom formatter for axis labels.
|
|
36
|
+
* Takes precedence when specified, i.e. number of decimals, unit etc needs
|
|
37
|
+
* to be set by the user using this formatter.
|
|
38
|
+
*/
|
|
39
|
+
labelFormatter = input(/* @ts-ignore */
|
|
40
|
+
...(ngDevMode ? [undefined, { debugName: "labelFormatter" }] : /* istanbul ignore next */ []));
|
|
41
|
+
/**
|
|
42
|
+
* Custom formatter for value.
|
|
43
|
+
* Takes precedence when specified, i.e. number of decimals needs
|
|
44
|
+
* to be set by the user using this formatter.
|
|
45
|
+
*/
|
|
46
|
+
valueFormatter = input(/* @ts-ignore */
|
|
47
|
+
...(ngDevMode ? [undefined, { debugName: "valueFormatter" }] : /* istanbul ignore next */ []));
|
|
48
|
+
/**
|
|
49
|
+
* Min number of decimals.
|
|
50
|
+
* Possible values are from 0 to 100.
|
|
51
|
+
* @defaultValue 0
|
|
52
|
+
*/
|
|
53
|
+
minNumberOfDecimals = input(0, /* @ts-ignore */
|
|
54
|
+
...(ngDevMode ? [{ debugName: "minNumberOfDecimals" }] : /* istanbul ignore next */ []));
|
|
55
|
+
/**
|
|
56
|
+
* Max number of decimals.
|
|
57
|
+
* Possible values are from 0 to 100.
|
|
58
|
+
* @defaultValue 0
|
|
59
|
+
*/
|
|
60
|
+
maxNumberOfDecimals = input(0, /* @ts-ignore */
|
|
61
|
+
...(ngDevMode ? [{ debugName: "maxNumberOfDecimals" }] : /* istanbul ignore next */ []));
|
|
62
|
+
/**
|
|
63
|
+
* Number of decimals on the axis.
|
|
64
|
+
* Possible values are from 0 to 100.
|
|
65
|
+
* @defaultValue 0
|
|
66
|
+
*/
|
|
67
|
+
axisNumberOfDecimals = input(0, /* @ts-ignore */
|
|
68
|
+
...(ngDevMode ? [{ debugName: "axisNumberOfDecimals" }] : /* istanbul ignore next */ []));
|
|
69
|
+
/** @defaultValue false */
|
|
70
|
+
hideAxisLabels = input(false, { ...(ngDevMode ? { debugName: "hideAxisLabels" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
71
|
+
/**
|
|
72
|
+
* Segments on the arc from 0 (implicit) to 1 (explicit)
|
|
73
|
+
* E.g. 0.2 means from 0 to 0.2 of the possible range (maxValue - minValue)
|
|
74
|
+
*
|
|
75
|
+
* @defaultValue [0.2, 0.8, 1]
|
|
76
|
+
*/
|
|
77
|
+
segments = input([0.2, 0.8, 1], /* @ts-ignore */
|
|
78
|
+
...(ngDevMode ? [{ debugName: "segments" }] : /* istanbul ignore next */ []));
|
|
79
|
+
/**
|
|
80
|
+
* Colors for the defined segments.
|
|
81
|
+
* If there are less colors then segments, the colors will be repeated. Defaults to the standard color palette
|
|
82
|
+
*/
|
|
83
|
+
colors = input(/* @ts-ignore */
|
|
84
|
+
...(ngDevMode ? [undefined, { debugName: "colors" }] : /* istanbul ignore next */ []));
|
|
85
|
+
locale = inject(LOCALE_ID).toString();
|
|
86
|
+
numberFormat = computed(() => {
|
|
87
|
+
const minDecimals = this.minNumberOfDecimals();
|
|
88
|
+
return new Intl.NumberFormat(this.locale, {
|
|
89
|
+
minimumFractionDigits: minDecimals,
|
|
90
|
+
maximumFractionDigits: Math.max(minDecimals, this.maxNumberOfDecimals())
|
|
91
|
+
});
|
|
92
|
+
}, /* @ts-ignore */
|
|
93
|
+
...(ngDevMode ? [{ debugName: "numberFormat" }] : /* istanbul ignore next */ []));
|
|
94
|
+
axisNumberFormat = computed(() => {
|
|
95
|
+
const decimals = this.axisNumberOfDecimals();
|
|
96
|
+
return new Intl.NumberFormat(this.locale, {
|
|
97
|
+
minimumFractionDigits: decimals,
|
|
98
|
+
maximumFractionDigits: decimals
|
|
99
|
+
});
|
|
100
|
+
}, /* @ts-ignore */
|
|
101
|
+
...(ngDevMode ? [{ debugName: "axisNumberFormat" }] : /* istanbul ignore next */ []));
|
|
102
|
+
afterChartInit() {
|
|
103
|
+
super.afterChartInit();
|
|
104
|
+
this.applyOptions();
|
|
105
|
+
this.updateColors();
|
|
106
|
+
this.refreshSeries();
|
|
107
|
+
}
|
|
108
|
+
updateColors() {
|
|
109
|
+
// gauge doesn't respect color palette, it needs a bit convincing
|
|
110
|
+
const effectiveOpts = this.getOptionNoClone();
|
|
111
|
+
const colors = this.colors() ?? effectiveOpts.color;
|
|
112
|
+
const hasIndicator = !!this.segments().length;
|
|
113
|
+
let newColors;
|
|
114
|
+
if (hasIndicator) {
|
|
115
|
+
newColors = this.segments().map((threshold, index) => {
|
|
116
|
+
const color = colors[index % colors.length];
|
|
117
|
+
return [threshold, color];
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
const colorsValue = this.colors();
|
|
122
|
+
const dataColor = colorsValue?.length
|
|
123
|
+
? colorsValue[0]
|
|
124
|
+
: this.getThemeCustomValue(['gauge', 'defaultColor'], colors[0]);
|
|
125
|
+
newColors = [[1, dataColor]];
|
|
126
|
+
}
|
|
127
|
+
if (hasIndicator) {
|
|
128
|
+
this.setAxisLineColor(newColors, this.actualOptions.series[0].axisLine);
|
|
129
|
+
}
|
|
130
|
+
this.actualOptions.series[0].axisLine.show = hasIndicator;
|
|
131
|
+
this.setAxisLineColor(newColors, this.actualOptions.series[2].axisLine);
|
|
132
|
+
this.refreshSeries();
|
|
133
|
+
}
|
|
134
|
+
setAxisLineColor(colors, axisLine) {
|
|
135
|
+
axisLine.lineStyle = axisLine.lineStyle ?? {};
|
|
136
|
+
axisLine.lineStyle.color = colors;
|
|
137
|
+
}
|
|
138
|
+
getResponsiveConfig() {
|
|
139
|
+
const marginY = 12;
|
|
140
|
+
const maxHeight = this.curHeight - marginY;
|
|
141
|
+
const dim = Math.min(this.curWidth / 2, maxHeight);
|
|
142
|
+
const top = dim < maxHeight ? this.curHeight / 2 + dim / 2 : maxHeight;
|
|
143
|
+
if (dim < 150) {
|
|
144
|
+
const splits = dim < 100 ? 1 : 4;
|
|
145
|
+
const axisLabelDist = dim < 100 ? -6 : 0;
|
|
146
|
+
return {
|
|
147
|
+
outerRadius: dim - 4,
|
|
148
|
+
center: ['50%', top],
|
|
149
|
+
progressWidth: 8,
|
|
150
|
+
indicatorWidth: 1,
|
|
151
|
+
gap: 2,
|
|
152
|
+
splits,
|
|
153
|
+
axisLabelDist,
|
|
154
|
+
axisFontSize: 12,
|
|
155
|
+
valueFontSize: 18,
|
|
156
|
+
unitFontSize: 12
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
if (dim < 200) {
|
|
160
|
+
return {
|
|
161
|
+
outerRadius: dim - 7,
|
|
162
|
+
center: ['50%', top],
|
|
163
|
+
progressWidth: 14,
|
|
164
|
+
indicatorWidth: 3,
|
|
165
|
+
gap: 3,
|
|
166
|
+
splits: 6,
|
|
167
|
+
axisLabelDist: 12,
|
|
168
|
+
axisFontSize: 16,
|
|
169
|
+
valueFontSize: 30,
|
|
170
|
+
unitFontSize: 14
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
return {
|
|
174
|
+
outerRadius: dim - 12,
|
|
175
|
+
center: ['50%', top],
|
|
176
|
+
progressWidth: 24,
|
|
177
|
+
indicatorWidth: 4,
|
|
178
|
+
gap: 5,
|
|
179
|
+
splits: 0,
|
|
180
|
+
axisLabelDist: 20,
|
|
181
|
+
axisFontSize: 20,
|
|
182
|
+
valueFontSize: 40,
|
|
183
|
+
unitFontSize: 14
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
axisLabelFormatter = (value) => {
|
|
187
|
+
const formatted = this.axisNumberFormat().format(Number(value));
|
|
188
|
+
return this.unitsOnSplit() ? `${formatted} ${this.unit()}` : formatted;
|
|
189
|
+
};
|
|
190
|
+
applyOptions() {
|
|
191
|
+
const resp = this.getResponsiveConfig();
|
|
192
|
+
const hasIndicator = !!this.segments().length;
|
|
193
|
+
const splitNumber = this.responsiveSplitSteps() && resp.splits ? resp.splits : this.splitSteps();
|
|
194
|
+
const grey = this.getThemeCustomValue(['gauge', 'grey'], '#F0F2F5');
|
|
195
|
+
const axisColor = this.getThemeCustomValue(['gauge', 'unit'], '#656A6F');
|
|
196
|
+
const indicator = {
|
|
197
|
+
type: 'gauge',
|
|
198
|
+
radius: resp.outerRadius - resp.progressWidth - resp.gap,
|
|
199
|
+
startAngle: 180,
|
|
200
|
+
endAngle: 0,
|
|
201
|
+
min: this.minValue(),
|
|
202
|
+
max: this.maxValue(),
|
|
203
|
+
center: resp.center,
|
|
204
|
+
axisLine: {
|
|
205
|
+
show: hasIndicator,
|
|
206
|
+
lineStyle: { width: resp.indicatorWidth }
|
|
207
|
+
},
|
|
208
|
+
axisTick: {
|
|
209
|
+
length: 0,
|
|
210
|
+
splitNumber: 1,
|
|
211
|
+
lineStyle: {
|
|
212
|
+
width: 2,
|
|
213
|
+
color: axisColor
|
|
214
|
+
}
|
|
215
|
+
},
|
|
216
|
+
splitLine: {
|
|
217
|
+
length: 0,
|
|
218
|
+
lineStyle: {
|
|
219
|
+
width: 1,
|
|
220
|
+
color: axisColor
|
|
221
|
+
}
|
|
222
|
+
},
|
|
223
|
+
axisLabel: { show: false }
|
|
224
|
+
};
|
|
225
|
+
const labelDistance = resp.axisLabelDist + (hasIndicator ? resp.indicatorWidth + resp.gap : 0);
|
|
226
|
+
const shade = {
|
|
227
|
+
type: 'gauge',
|
|
228
|
+
radius: resp.outerRadius,
|
|
229
|
+
startAngle: 180,
|
|
230
|
+
endAngle: 0,
|
|
231
|
+
min: this.minValue(),
|
|
232
|
+
max: this.maxValue(),
|
|
233
|
+
splitNumber,
|
|
234
|
+
axisTick: { show: false },
|
|
235
|
+
splitLine: { show: false },
|
|
236
|
+
title: { show: false },
|
|
237
|
+
center: resp.center,
|
|
238
|
+
axisLine: {
|
|
239
|
+
lineStyle: {
|
|
240
|
+
width: resp.progressWidth,
|
|
241
|
+
opacity: 0.6,
|
|
242
|
+
color: [[1, grey]]
|
|
243
|
+
}
|
|
244
|
+
},
|
|
245
|
+
axisLabel: {
|
|
246
|
+
show: !this.hideAxisLabels(),
|
|
247
|
+
distance: labelDistance,
|
|
248
|
+
color: axisColor,
|
|
249
|
+
fontSize: resp.axisFontSize,
|
|
250
|
+
formatter: this.labelFormatter() ?? this.axisLabelFormatter
|
|
251
|
+
}
|
|
252
|
+
};
|
|
253
|
+
const data = {
|
|
254
|
+
type: 'gauge',
|
|
255
|
+
silent: false,
|
|
256
|
+
radius: resp.outerRadius,
|
|
257
|
+
startAngle: 180,
|
|
258
|
+
endAngle: 0,
|
|
259
|
+
min: this.minValue(),
|
|
260
|
+
max: this.maxValue(),
|
|
261
|
+
splitNumber,
|
|
262
|
+
progress: {
|
|
263
|
+
show: true,
|
|
264
|
+
itemStyle: { color: 'auto' },
|
|
265
|
+
width: resp.progressWidth
|
|
266
|
+
},
|
|
267
|
+
emphasis: {
|
|
268
|
+
// This code is added to avoid flickering when the progress is hovered and
|
|
269
|
+
// when mouse effects are enabled with `silent: false` flag. The issue occurs
|
|
270
|
+
// because of the progress.itemStyle.color is set to `auto` which tries to
|
|
271
|
+
// calculate the color dynamically and it conflicts with the mouse hover action
|
|
272
|
+
// which tries to apply the hover style
|
|
273
|
+
itemStyle: { color: 'auto' }
|
|
274
|
+
},
|
|
275
|
+
pointer: {
|
|
276
|
+
show: true,
|
|
277
|
+
length: '0%',
|
|
278
|
+
itemStyle: {
|
|
279
|
+
color: 'auto',
|
|
280
|
+
opacity: 0.001
|
|
281
|
+
}
|
|
282
|
+
},
|
|
283
|
+
center: resp.center,
|
|
284
|
+
axisLine: {
|
|
285
|
+
show: false,
|
|
286
|
+
lineStyle: { opacity: 0.6 }
|
|
287
|
+
},
|
|
288
|
+
axisTick: { show: false },
|
|
289
|
+
splitLine: { show: false },
|
|
290
|
+
axisLabel: { show: false },
|
|
291
|
+
title: { show: false },
|
|
292
|
+
detail: {
|
|
293
|
+
offsetCenter: [0, -0.5 * resp.valueFontSize],
|
|
294
|
+
valueAnimation: true,
|
|
295
|
+
formatter: this.valueFormatterInternal(),
|
|
296
|
+
rich: {
|
|
297
|
+
value: {
|
|
298
|
+
fontSize: resp.valueFontSize,
|
|
299
|
+
lineHeight: resp.valueFontSize,
|
|
300
|
+
fontWeight: 600
|
|
301
|
+
},
|
|
302
|
+
unit: {
|
|
303
|
+
fontSize: resp.unitFontSize,
|
|
304
|
+
lineHeight: resp.unitFontSize,
|
|
305
|
+
padding: [0, 0, (resp.unitFontSize - resp.valueFontSize) / 2, 0]
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
},
|
|
309
|
+
data: [{ value: this.value() }]
|
|
310
|
+
};
|
|
311
|
+
const series = [indicator, shade, data];
|
|
312
|
+
this.showLegend.set(false);
|
|
313
|
+
this.actualOptions.series = series;
|
|
314
|
+
this.applyTitles();
|
|
315
|
+
}
|
|
316
|
+
valueFormatterInternal() {
|
|
317
|
+
const unit = this.unit();
|
|
318
|
+
const valueFormatter = this.valueFormatter();
|
|
319
|
+
const labelFormatter = this.labelFormatter();
|
|
320
|
+
const formattedUnit = unit ? (unit.length > 5 ? `\n{unit|${unit}}` : ` {unit|${unit}}`) : '';
|
|
321
|
+
return (value) => {
|
|
322
|
+
if (valueFormatter) {
|
|
323
|
+
return `{value|${valueFormatter(value)}}${formattedUnit}`;
|
|
324
|
+
}
|
|
325
|
+
// DEPRECATED: Use the new input `valueFormatter` to format the value.
|
|
326
|
+
// labelFormatter should be removed from here in future versions.
|
|
327
|
+
if (labelFormatter) {
|
|
328
|
+
return labelFormatter(value);
|
|
329
|
+
}
|
|
330
|
+
return `{value|${this.numberFormat().format(value)}}${formattedUnit}`;
|
|
331
|
+
};
|
|
332
|
+
}
|
|
333
|
+
ngOnChanges(changes) {
|
|
334
|
+
if (this.chart && (changes.palette || changes.colors || changes.segments)) {
|
|
335
|
+
this.updateColors();
|
|
336
|
+
}
|
|
337
|
+
changes.forceAll = new SimpleChange(false, true, false);
|
|
338
|
+
super.ngOnChanges(changes);
|
|
339
|
+
}
|
|
340
|
+
applyDataZoom() { }
|
|
341
|
+
afterChartResize() {
|
|
342
|
+
this.applyOptions();
|
|
343
|
+
this.refreshSeries();
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* Update gauge chart value.
|
|
347
|
+
*/
|
|
348
|
+
setValue(value) {
|
|
349
|
+
const optionSeries = this.actualOptions.series;
|
|
350
|
+
optionSeries[2].data[0].value = value;
|
|
351
|
+
this.refreshSeries();
|
|
352
|
+
}
|
|
353
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SiChartGaugeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
354
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: SiChartGaugeComponent, isStandalone: true, selector: "si-chart-gauge", inputs: { minValue: { classPropertyName: "minValue", publicName: "minValue", isSignal: true, isRequired: false, transformFunction: null }, maxValue: { classPropertyName: "maxValue", publicName: "maxValue", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, splitSteps: { classPropertyName: "splitSteps", publicName: "splitSteps", isSignal: true, isRequired: false, transformFunction: null }, responsiveSplitSteps: { classPropertyName: "responsiveSplitSteps", publicName: "responsiveSplitSteps", isSignal: true, isRequired: false, transformFunction: null }, unit: { classPropertyName: "unit", publicName: "unit", isSignal: true, isRequired: false, transformFunction: null }, unitsOnSplit: { classPropertyName: "unitsOnSplit", publicName: "unitsOnSplit", isSignal: true, isRequired: false, transformFunction: null }, labelFormatter: { classPropertyName: "labelFormatter", publicName: "labelFormatter", isSignal: true, isRequired: false, transformFunction: null }, valueFormatter: { classPropertyName: "valueFormatter", publicName: "valueFormatter", isSignal: true, isRequired: false, transformFunction: null }, minNumberOfDecimals: { classPropertyName: "minNumberOfDecimals", publicName: "minNumberOfDecimals", isSignal: true, isRequired: false, transformFunction: null }, maxNumberOfDecimals: { classPropertyName: "maxNumberOfDecimals", publicName: "maxNumberOfDecimals", isSignal: true, isRequired: false, transformFunction: null }, axisNumberOfDecimals: { classPropertyName: "axisNumberOfDecimals", publicName: "axisNumberOfDecimals", isSignal: true, isRequired: false, transformFunction: null }, hideAxisLabels: { classPropertyName: "hideAxisLabels", publicName: "hideAxisLabels", isSignal: true, isRequired: false, transformFunction: null }, segments: { classPropertyName: "segments", publicName: "segments", isSignal: true, isRequired: false, transformFunction: null }, colors: { classPropertyName: "colors", publicName: "colors", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (showCustomLegend() && (title() || subTitle())) {\n <div class=\"si-h5 chart-title chart-title-width\" [style.background-color]=\"backgroundColor()\">\n <div class=\"chart-title-text\" [style.color]=\"titleColor()\">{{ title() }}</div>\n @if (subTitle()) {\n <div class=\"si-body\" [style.color]=\"subTitleColor()\">{{ subTitle() }}</div>\n }\n </div>\n}\n\n<div\n #chartContainerWrapper\n class=\"chart-container-wrapper\"\n [class.chart-scroll]=\"containerHeight()\"\n [attr.tabindex]=\"containerHeight() ? '0' : null\"\n>\n <div class=\"chart-container\" [style.height.px]=\"containerHeight()\">\n @if (showCustomLegend()) {\n @for (cl of customLegend; track $index) {\n <si-custom-legend\n #siCustomLegend\n class=\"custom-legend\"\n [style.top.px]=\"cl.top\"\n [title]=\"title()\"\n [subTitle]=\"subTitle()\"\n [customLegend]=\"cl\"\n [style.background-color]=\"backgroundColor()\"\n [titleColor]=\"titleColor()\"\n [subTitleColor]=\"subTitleColor()\"\n [textColor]=\"textColor()\"\n (legendIconClickEvent)=\"handleLegendClick($event)\"\n (legendClickEvent)=\"handleLegendClick($event)\"\n (legendHoverStartEvent)=\"handleLegendHover($event, true)\"\n (legendHoverEndEvent)=\"handleLegendHover($event, false)\"\n />\n }\n }\n <div #chart class=\"echart-container\" [style.height.px]=\"containerHeight()\"></div>\n </div>\n</div>\n@if (externalZoomSlider()) {\n <div\n #externalZoomSlider\n class=\"external-zoom-container\"\n [class.has-time-range-bar]=\"showTimeRangeBar()\"\n [style.--time-bar-height.px]=\"timeBarHeight()\"\n ></div>\n}\n\n@if (showTimeRangeBar() && zoomSlider()) {\n <div\n class=\"time-range-bar\"\n [style.bottom.px]=\"timeBarBottom()\"\n [style.padding-left.px]=\"timeBarLeft()\"\n [style.padding-right.px]=\"timeBarRight()\"\n >\n <ng-content select=\"[slot=timeRangeBar]\" />\n </div>\n}\n\n@if (inProgress()) {\n <div class=\"progress-container\">\n <si-chart-loading-spinner />\n </div>\n}\n", styles: [":host{block-size:100%;position:relative;display:flex!important;flex-direction:column;inline-size:100%}.chart-container-wrapper{display:flex;flex:1 0 0;inline-size:inherit;overflow:hidden}.chart-scroll{overflow-y:auto}.chart-container{position:relative;display:flex;flex:1 0 0;overflow:hidden}.echart-container{flex:1 0 0;inline-size:100%;min-block-size:var(--si-chart-min-height, 200px);overflow:hidden}.custom-legend{position:absolute;z-index:2;inline-size:100%}.chart-title{padding-block:12px 8px;padding-inline-start:24px}.external-zoom-container{display:flex;flex:1 0 0;inline-size:inherit;max-block-size:112px}.external-zoom-container.has-time-range-bar{max-block-size:calc(112px + var(--time-bar-height))}.tooltip-inner{max-inline-size:375px;min-inline-size:375px;color:#162938;font-size:18px;background-color:#162938}.time-range-bar{position:absolute;inset-inline:0;z-index:2}.progress-container{position:absolute;inset:0;pointer-events:none;z-index:100;display:flex;justify-content:center;align-items:center}\n"], dependencies: [{ kind: "component", type: SiCustomLegendComponent, selector: "si-custom-legend", inputs: ["customLegend", "title", "subTitle", "titleColor", "subTitleColor", "textColor"], outputs: ["legendIconClickEvent", "legendClickEvent", "legendHoverStartEvent", "legendHoverEndEvent"] }, { kind: "component", type: SiChartLoadingSpinnerComponent, selector: "si-chart-loading-spinner" }], changeDetection: i0.ChangeDetectionStrategy.Eager });
|
|
355
|
+
}
|
|
356
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SiChartGaugeComponent, decorators: [{
|
|
357
|
+
type: Component,
|
|
358
|
+
args: [{ selector: 'si-chart-gauge', imports: [SiCustomLegendComponent, SiChartLoadingSpinnerComponent], changeDetection: ChangeDetectionStrategy.Eager, template: "@if (showCustomLegend() && (title() || subTitle())) {\n <div class=\"si-h5 chart-title chart-title-width\" [style.background-color]=\"backgroundColor()\">\n <div class=\"chart-title-text\" [style.color]=\"titleColor()\">{{ title() }}</div>\n @if (subTitle()) {\n <div class=\"si-body\" [style.color]=\"subTitleColor()\">{{ subTitle() }}</div>\n }\n </div>\n}\n\n<div\n #chartContainerWrapper\n class=\"chart-container-wrapper\"\n [class.chart-scroll]=\"containerHeight()\"\n [attr.tabindex]=\"containerHeight() ? '0' : null\"\n>\n <div class=\"chart-container\" [style.height.px]=\"containerHeight()\">\n @if (showCustomLegend()) {\n @for (cl of customLegend; track $index) {\n <si-custom-legend\n #siCustomLegend\n class=\"custom-legend\"\n [style.top.px]=\"cl.top\"\n [title]=\"title()\"\n [subTitle]=\"subTitle()\"\n [customLegend]=\"cl\"\n [style.background-color]=\"backgroundColor()\"\n [titleColor]=\"titleColor()\"\n [subTitleColor]=\"subTitleColor()\"\n [textColor]=\"textColor()\"\n (legendIconClickEvent)=\"handleLegendClick($event)\"\n (legendClickEvent)=\"handleLegendClick($event)\"\n (legendHoverStartEvent)=\"handleLegendHover($event, true)\"\n (legendHoverEndEvent)=\"handleLegendHover($event, false)\"\n />\n }\n }\n <div #chart class=\"echart-container\" [style.height.px]=\"containerHeight()\"></div>\n </div>\n</div>\n@if (externalZoomSlider()) {\n <div\n #externalZoomSlider\n class=\"external-zoom-container\"\n [class.has-time-range-bar]=\"showTimeRangeBar()\"\n [style.--time-bar-height.px]=\"timeBarHeight()\"\n ></div>\n}\n\n@if (showTimeRangeBar() && zoomSlider()) {\n <div\n class=\"time-range-bar\"\n [style.bottom.px]=\"timeBarBottom()\"\n [style.padding-left.px]=\"timeBarLeft()\"\n [style.padding-right.px]=\"timeBarRight()\"\n >\n <ng-content select=\"[slot=timeRangeBar]\" />\n </div>\n}\n\n@if (inProgress()) {\n <div class=\"progress-container\">\n <si-chart-loading-spinner />\n </div>\n}\n", styles: [":host{block-size:100%;position:relative;display:flex!important;flex-direction:column;inline-size:100%}.chart-container-wrapper{display:flex;flex:1 0 0;inline-size:inherit;overflow:hidden}.chart-scroll{overflow-y:auto}.chart-container{position:relative;display:flex;flex:1 0 0;overflow:hidden}.echart-container{flex:1 0 0;inline-size:100%;min-block-size:var(--si-chart-min-height, 200px);overflow:hidden}.custom-legend{position:absolute;z-index:2;inline-size:100%}.chart-title{padding-block:12px 8px;padding-inline-start:24px}.external-zoom-container{display:flex;flex:1 0 0;inline-size:inherit;max-block-size:112px}.external-zoom-container.has-time-range-bar{max-block-size:calc(112px + var(--time-bar-height))}.tooltip-inner{max-inline-size:375px;min-inline-size:375px;color:#162938;font-size:18px;background-color:#162938}.time-range-bar{position:absolute;inset-inline:0;z-index:2}.progress-container{position:absolute;inset:0;pointer-events:none;z-index:100;display:flex;justify-content:center;align-items:center}\n"] }]
|
|
359
|
+
}], propDecorators: { minValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "minValue", required: false }] }], maxValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxValue", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], splitSteps: [{ type: i0.Input, args: [{ isSignal: true, alias: "splitSteps", required: false }] }], responsiveSplitSteps: [{ type: i0.Input, args: [{ isSignal: true, alias: "responsiveSplitSteps", required: false }] }], unit: [{ type: i0.Input, args: [{ isSignal: true, alias: "unit", required: false }] }], unitsOnSplit: [{ type: i0.Input, args: [{ isSignal: true, alias: "unitsOnSplit", required: false }] }], labelFormatter: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelFormatter", required: false }] }], valueFormatter: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueFormatter", required: false }] }], minNumberOfDecimals: [{ type: i0.Input, args: [{ isSignal: true, alias: "minNumberOfDecimals", required: false }] }], maxNumberOfDecimals: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxNumberOfDecimals", required: false }] }], axisNumberOfDecimals: [{ type: i0.Input, args: [{ isSignal: true, alias: "axisNumberOfDecimals", required: false }] }], hideAxisLabels: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideAxisLabels", required: false }] }], segments: [{ type: i0.Input, args: [{ isSignal: true, alias: "segments", required: false }] }], colors: [{ type: i0.Input, args: [{ isSignal: true, alias: "colors", required: false }] }] } });
|
|
360
|
+
|
|
361
|
+
/**
|
|
362
|
+
* Copyright (c) Siemens 2016 - 2026
|
|
363
|
+
* SPDX-License-Identifier: MIT
|
|
364
|
+
*/
|
|
365
|
+
|
|
366
|
+
/**
|
|
367
|
+
* Generated bundle index. Do not edit.
|
|
368
|
+
*/
|
|
369
|
+
|
|
370
|
+
export { SiChartGaugeComponent };
|
|
371
|
+
//# sourceMappingURL=spike-rabbit-charts-ng-gauge.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spike-rabbit-charts-ng-gauge.mjs","sources":["../../../../projects/charts-ng/gauge/si-chart-gauge.component.ts","../../../../projects/charts-ng/common/si-chart-base.component.html","../../../../projects/charts-ng/gauge/index.ts","../../../../projects/charts-ng/gauge/spike-rabbit-charts-ng-gauge.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n LOCALE_ID,\n OnChanges,\n SimpleChange,\n SimpleChanges\n} from '@angular/core';\nimport { SiChartBaseComponent, GaugeSeriesOption, echarts } from '@spike-rabbit/charts-ng/common';\nimport { SiCustomLegendComponent } from '@spike-rabbit/charts-ng/custom-legend';\nimport { SiChartLoadingSpinnerComponent } from '@spike-rabbit/charts-ng/loading-spinner';\nimport { GaugeChart } from 'echarts/charts';\n\nimport { GaugeChartSeries } from './si-chart-gauge.interface';\n\necharts.use([GaugeChart]);\n\n@Component({\n selector: 'si-chart-gauge',\n imports: [SiCustomLegendComponent, SiChartLoadingSpinnerComponent],\n templateUrl: '../common/si-chart-base.component.html',\n styleUrl: '../common/si-chart-base.component.scss',\n changeDetection: ChangeDetectionStrategy.Eager\n})\nexport class SiChartGaugeComponent extends SiChartBaseComponent implements OnChanges {\n /** @defaultValue 0 */\n readonly minValue = input(0);\n /** @defaultValue 100 */\n readonly maxValue = input(100);\n /** @defaultValue 0 */\n readonly value = input(0);\n readonly splitSteps = input<number>();\n /** @defaultValue true */\n readonly responsiveSplitSteps = input(true);\n /** @defaultValue '%' */\n readonly unit = input('%');\n /** @defaultValue false */\n readonly unitsOnSplit = input(false);\n /**\n * Custom formatter for axis labels.\n * Takes precedence when specified, i.e. number of decimals, unit etc needs\n * to be set by the user using this formatter.\n */\n readonly labelFormatter = input<(val: number) => string>();\n /**\n * Custom formatter for value.\n * Takes precedence when specified, i.e. number of decimals needs\n * to be set by the user using this formatter.\n */\n readonly valueFormatter = input<(val: number) => string>();\n /**\n * Min number of decimals.\n * Possible values are from 0 to 100.\n * @defaultValue 0\n */\n readonly minNumberOfDecimals = input(0);\n /**\n * Max number of decimals.\n * Possible values are from 0 to 100.\n * @defaultValue 0\n */\n readonly maxNumberOfDecimals = input(0);\n /**\n * Number of decimals on the axis.\n * Possible values are from 0 to 100.\n * @defaultValue 0\n */\n readonly axisNumberOfDecimals = input(0);\n /** @defaultValue false */\n readonly hideAxisLabels = input(false, { transform: booleanAttribute });\n /**\n * Segments on the arc from 0 (implicit) to 1 (explicit)\n * E.g. 0.2 means from 0 to 0.2 of the possible range (maxValue - minValue)\n *\n * @defaultValue [0.2, 0.8, 1]\n */\n readonly segments = input<number[]>([0.2, 0.8, 1]);\n /**\n * Colors for the defined segments.\n * If there are less colors then segments, the colors will be repeated. Defaults to the standard color palette\n */\n readonly colors = input<string[]>();\n\n private readonly locale = inject(LOCALE_ID).toString();\n private readonly numberFormat = computed(() => {\n const minDecimals = this.minNumberOfDecimals();\n return new Intl.NumberFormat(this.locale, {\n minimumFractionDigits: minDecimals,\n maximumFractionDigits: Math.max(minDecimals, this.maxNumberOfDecimals())\n });\n });\n\n private readonly axisNumberFormat = computed(() => {\n const decimals = this.axisNumberOfDecimals();\n return new Intl.NumberFormat(this.locale, {\n minimumFractionDigits: decimals,\n maximumFractionDigits: decimals\n });\n });\n\n protected override afterChartInit(): void {\n super.afterChartInit();\n this.applyOptions();\n this.updateColors();\n this.refreshSeries();\n }\n\n private updateColors(): void {\n // gauge doesn't respect color palette, it needs a bit convincing\n const effectiveOpts: any = this.getOptionNoClone();\n const colors: string[] = this.colors() ?? effectiveOpts.color;\n const hasIndicator = !!this.segments().length;\n\n let newColors: [number, string][];\n if (hasIndicator) {\n newColors = this.segments().map((threshold, index) => {\n const color = colors[index % colors.length];\n return [threshold, color];\n });\n } else {\n const colorsValue = this.colors();\n const dataColor = colorsValue?.length\n ? colorsValue[0]\n : this.getThemeCustomValue(['gauge', 'defaultColor'], colors[0]);\n newColors = [[1, dataColor]];\n }\n\n if (hasIndicator) {\n this.setAxisLineColor(newColors, (this.actualOptions.series![0] as any).axisLine);\n }\n (this.actualOptions.series![0] as any).axisLine.show = hasIndicator;\n\n this.setAxisLineColor(newColors, (this.actualOptions.series![2] as any).axisLine);\n this.refreshSeries();\n }\n\n private setAxisLineColor(colors: [number, string][], axisLine: any): void {\n axisLine.lineStyle = axisLine.lineStyle ?? {};\n axisLine.lineStyle.color = colors;\n }\n\n private getResponsiveConfig(): {\n outerRadius: number;\n center: (string | number)[];\n progressWidth: number;\n indicatorWidth: number;\n gap: number;\n splits: number;\n axisLabelDist: number;\n axisFontSize: number;\n valueFontSize: number;\n unitFontSize: number;\n } {\n const marginY = 12;\n const maxHeight = this.curHeight - marginY;\n const dim = Math.min(this.curWidth / 2, maxHeight);\n const top = dim < maxHeight ? this.curHeight / 2 + dim / 2 : maxHeight;\n\n if (dim < 150) {\n const splits = dim < 100 ? 1 : 4;\n const axisLabelDist = dim < 100 ? -6 : 0;\n return {\n outerRadius: dim - 4,\n center: ['50%', top],\n progressWidth: 8,\n indicatorWidth: 1,\n gap: 2,\n splits,\n axisLabelDist,\n axisFontSize: 12,\n valueFontSize: 18,\n unitFontSize: 12\n };\n }\n\n if (dim < 200) {\n return {\n outerRadius: dim - 7,\n center: ['50%', top],\n progressWidth: 14,\n indicatorWidth: 3,\n gap: 3,\n splits: 6,\n axisLabelDist: 12,\n axisFontSize: 16,\n valueFontSize: 30,\n unitFontSize: 14\n };\n }\n\n return {\n outerRadius: dim - 12,\n center: ['50%', top],\n progressWidth: 24,\n indicatorWidth: 4,\n gap: 5,\n splits: 0,\n axisLabelDist: 20,\n axisFontSize: 20,\n valueFontSize: 40,\n unitFontSize: 14\n };\n }\n\n private readonly axisLabelFormatter = (value: any): string => {\n const formatted = this.axisNumberFormat().format(Number(value));\n return this.unitsOnSplit() ? `${formatted} ${this.unit()}` : formatted;\n };\n\n protected override applyOptions(): void {\n const resp = this.getResponsiveConfig();\n const hasIndicator = !!this.segments().length;\n\n const splitNumber =\n this.responsiveSplitSteps() && resp.splits ? resp.splits : this.splitSteps();\n const grey = this.getThemeCustomValue(['gauge', 'grey'], '#F0F2F5');\n const axisColor = this.getThemeCustomValue(['gauge', 'unit'], '#656A6F');\n\n const indicator: GaugeSeriesOption = {\n type: 'gauge',\n radius: resp.outerRadius - resp.progressWidth - resp.gap,\n startAngle: 180,\n endAngle: 0,\n min: this.minValue(),\n max: this.maxValue(),\n center: resp.center,\n axisLine: {\n show: hasIndicator,\n lineStyle: { width: resp.indicatorWidth }\n },\n axisTick: {\n length: 0,\n splitNumber: 1,\n lineStyle: {\n width: 2,\n color: axisColor\n }\n },\n splitLine: {\n length: 0,\n lineStyle: {\n width: 1,\n color: axisColor\n }\n },\n axisLabel: { show: false }\n };\n\n const labelDistance = resp.axisLabelDist + (hasIndicator ? resp.indicatorWidth + resp.gap : 0);\n\n const shade: GaugeSeriesOption = {\n type: 'gauge',\n radius: resp.outerRadius,\n startAngle: 180,\n endAngle: 0,\n min: this.minValue(),\n max: this.maxValue(),\n splitNumber,\n axisTick: { show: false },\n splitLine: { show: false },\n title: { show: false },\n center: resp.center,\n axisLine: {\n lineStyle: {\n width: resp.progressWidth,\n opacity: 0.6,\n color: [[1, grey]]\n }\n },\n axisLabel: {\n show: !this.hideAxisLabels(),\n distance: labelDistance,\n color: axisColor,\n fontSize: resp.axisFontSize,\n formatter: this.labelFormatter() ?? this.axisLabelFormatter\n }\n };\n\n const data: GaugeSeriesOption = {\n type: 'gauge',\n silent: false,\n radius: resp.outerRadius,\n startAngle: 180,\n endAngle: 0,\n min: this.minValue(),\n max: this.maxValue(),\n splitNumber,\n progress: {\n show: true,\n itemStyle: { color: 'auto' },\n width: resp.progressWidth\n },\n emphasis: {\n // This code is added to avoid flickering when the progress is hovered and\n // when mouse effects are enabled with `silent: false` flag. The issue occurs\n // because of the progress.itemStyle.color is set to `auto` which tries to\n // calculate the color dynamically and it conflicts with the mouse hover action\n // which tries to apply the hover style\n itemStyle: { color: 'auto' }\n },\n pointer: {\n show: true,\n length: '0%',\n itemStyle: {\n color: 'auto',\n opacity: 0.001\n }\n },\n center: resp.center,\n axisLine: {\n show: false,\n lineStyle: { opacity: 0.6 }\n },\n axisTick: { show: false },\n splitLine: { show: false },\n axisLabel: { show: false },\n title: { show: false },\n detail: {\n offsetCenter: [0, -0.5 * resp.valueFontSize],\n valueAnimation: true,\n formatter: this.valueFormatterInternal(),\n rich: {\n value: {\n fontSize: resp.valueFontSize,\n lineHeight: resp.valueFontSize,\n fontWeight: 600\n },\n unit: {\n fontSize: resp.unitFontSize,\n lineHeight: resp.unitFontSize,\n padding: [0, 0, (resp.unitFontSize - resp.valueFontSize) / 2, 0]\n }\n }\n },\n data: [{ value: this.value() }]\n };\n\n const series: GaugeSeriesOption[] = [indicator, shade, data];\n\n this.showLegend.set(false);\n this.actualOptions.series = series;\n\n this.applyTitles();\n }\n\n private valueFormatterInternal(): (val: number) => string {\n const unit = this.unit();\n const valueFormatter = this.valueFormatter();\n const labelFormatter = this.labelFormatter();\n\n const formattedUnit = unit ? (unit.length > 5 ? `\\n{unit|${unit}}` : ` {unit|${unit}}`) : '';\n\n return (value: number): string => {\n if (valueFormatter) {\n return `{value|${valueFormatter(value)}}${formattedUnit}`;\n }\n // DEPRECATED: Use the new input `valueFormatter` to format the value.\n // labelFormatter should be removed from here in future versions.\n if (labelFormatter) {\n return labelFormatter(value);\n }\n return `{value|${this.numberFormat().format(value)}}${formattedUnit}`;\n };\n }\n\n override ngOnChanges(changes: SimpleChanges<unknown>): void {\n if (this.chart && (changes.palette || changes.colors || changes.segments)) {\n this.updateColors();\n }\n changes.forceAll = new SimpleChange(false, true, false);\n super.ngOnChanges(changes);\n }\n\n protected override applyDataZoom(): void {}\n\n protected override afterChartResize(): void {\n this.applyOptions();\n this.refreshSeries();\n }\n\n /**\n * Update gauge chart value.\n */\n setValue(value: number): void {\n const optionSeries = this.actualOptions.series as GaugeChartSeries[];\n optionSeries[2].data[0].value = value;\n this.refreshSeries();\n }\n}\n","@if (showCustomLegend() && (title() || subTitle())) {\n <div class=\"si-h5 chart-title chart-title-width\" [style.background-color]=\"backgroundColor()\">\n <div class=\"chart-title-text\" [style.color]=\"titleColor()\">{{ title() }}</div>\n @if (subTitle()) {\n <div class=\"si-body\" [style.color]=\"subTitleColor()\">{{ subTitle() }}</div>\n }\n </div>\n}\n\n<div\n #chartContainerWrapper\n class=\"chart-container-wrapper\"\n [class.chart-scroll]=\"containerHeight()\"\n [attr.tabindex]=\"containerHeight() ? '0' : null\"\n>\n <div class=\"chart-container\" [style.height.px]=\"containerHeight()\">\n @if (showCustomLegend()) {\n @for (cl of customLegend; track $index) {\n <si-custom-legend\n #siCustomLegend\n class=\"custom-legend\"\n [style.top.px]=\"cl.top\"\n [title]=\"title()\"\n [subTitle]=\"subTitle()\"\n [customLegend]=\"cl\"\n [style.background-color]=\"backgroundColor()\"\n [titleColor]=\"titleColor()\"\n [subTitleColor]=\"subTitleColor()\"\n [textColor]=\"textColor()\"\n (legendIconClickEvent)=\"handleLegendClick($event)\"\n (legendClickEvent)=\"handleLegendClick($event)\"\n (legendHoverStartEvent)=\"handleLegendHover($event, true)\"\n (legendHoverEndEvent)=\"handleLegendHover($event, false)\"\n />\n }\n }\n <div #chart class=\"echart-container\" [style.height.px]=\"containerHeight()\"></div>\n </div>\n</div>\n@if (externalZoomSlider()) {\n <div\n #externalZoomSlider\n class=\"external-zoom-container\"\n [class.has-time-range-bar]=\"showTimeRangeBar()\"\n [style.--time-bar-height.px]=\"timeBarHeight()\"\n ></div>\n}\n\n@if (showTimeRangeBar() && zoomSlider()) {\n <div\n class=\"time-range-bar\"\n [style.bottom.px]=\"timeBarBottom()\"\n [style.padding-left.px]=\"timeBarLeft()\"\n [style.padding-right.px]=\"timeBarRight()\"\n >\n <ng-content select=\"[slot=timeRangeBar]\" />\n </div>\n}\n\n@if (inProgress()) {\n <div class=\"progress-container\">\n <si-chart-loading-spinner />\n </div>\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-chart-gauge.component';\nexport * from './si-chart-gauge.interface';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAAA;;;AAGG;AAoBH,OAAO,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;AASnB,MAAO,qBAAsB,SAAQ,oBAAoB,CAAA;;IAEpD,QAAQ,GAAG,KAAK,CAAC,CAAC;iFAAC;;IAEnB,QAAQ,GAAG,KAAK,CAAC,GAAG;iFAAC;;IAErB,KAAK,GAAG,KAAK,CAAC,CAAC;8EAAC;AAChB,IAAA,UAAU,GAAG,KAAK;8FAAU;;IAE5B,oBAAoB,GAAG,KAAK,CAAC,IAAI;6FAAC;;IAElC,IAAI,GAAG,KAAK,CAAC,GAAG;6EAAC;;IAEjB,YAAY,GAAG,KAAK,CAAC,KAAK;qFAAC;AACpC;;;;AAIG;AACM,IAAA,cAAc,GAAG,KAAK;kGAA2B;AAC1D;;;;AAIG;AACM,IAAA,cAAc,GAAG,KAAK;kGAA2B;AAC1D;;;;AAIG;IACM,mBAAmB,GAAG,KAAK,CAAC,CAAC;4FAAC;AACvC;;;;AAIG;IACM,mBAAmB,GAAG,KAAK,CAAC,CAAC;4FAAC;AACvC;;;;AAIG;IACM,oBAAoB,GAAG,KAAK,CAAC,CAAC;6FAAC;;IAE/B,cAAc,GAAG,KAAK,CAAC,KAAK,sFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACvE;;;;;AAKG;IACM,QAAQ,GAAG,KAAK,CAAW,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;iFAAC;AAClD;;;AAGG;AACM,IAAA,MAAM,GAAG,KAAK;0FAAY;IAElB,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;AACrC,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AAC5C,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,EAAE;QAC9C,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE;AACxC,YAAA,qBAAqB,EAAE,WAAW;YAClC,qBAAqB,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,mBAAmB,EAAE;AACxE,SAAA,CAAC;IACJ,CAAC;qFAAC;AAEe,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAK;AAChD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,EAAE;QAC5C,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE;AACxC,YAAA,qBAAqB,EAAE,QAAQ;AAC/B,YAAA,qBAAqB,EAAE;AACxB,SAAA,CAAC;IACJ,CAAC;yFAAC;IAEiB,cAAc,GAAA;QAC/B,KAAK,CAAC,cAAc,EAAE;QACtB,IAAI,CAAC,YAAY,EAAE;QACnB,IAAI,CAAC,YAAY,EAAE;QACnB,IAAI,CAAC,aAAa,EAAE;IACtB;IAEQ,YAAY,GAAA;;AAElB,QAAA,MAAM,aAAa,GAAQ,IAAI,CAAC,gBAAgB,EAAE;QAClD,MAAM,MAAM,GAAa,IAAI,CAAC,MAAM,EAAE,IAAI,aAAa,CAAC,KAAK;QAC7D,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM;AAE7C,QAAA,IAAI,SAA6B;QACjC,IAAI,YAAY,EAAE;AAChB,YAAA,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,KAAI;gBACnD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;AAC3C,gBAAA,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC;AAC3B,YAAA,CAAC,CAAC;QACJ;aAAO;AACL,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE;AACjC,YAAA,MAAM,SAAS,GAAG,WAAW,EAAE;AAC7B,kBAAE,WAAW,CAAC,CAAC;AACf,kBAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;YAClE,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC9B;QAEA,IAAI,YAAY,EAAE;AAChB,YAAA,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAG,IAAI,CAAC,aAAa,CAAC,MAAO,CAAC,CAAC,CAAS,CAAC,QAAQ,CAAC;QACnF;AACC,QAAA,IAAI,CAAC,aAAa,CAAC,MAAO,CAAC,CAAC,CAAS,CAAC,QAAQ,CAAC,IAAI,GAAG,YAAY;AAEnE,QAAA,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAG,IAAI,CAAC,aAAa,CAAC,MAAO,CAAC,CAAC,CAAS,CAAC,QAAQ,CAAC;QACjF,IAAI,CAAC,aAAa,EAAE;IACtB;IAEQ,gBAAgB,CAAC,MAA0B,EAAE,QAAa,EAAA;QAChE,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,IAAI,EAAE;AAC7C,QAAA,QAAQ,CAAC,SAAS,CAAC,KAAK,GAAG,MAAM;IACnC;IAEQ,mBAAmB,GAAA;QAYzB,MAAM,OAAO,GAAG,EAAE;AAClB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,OAAO;AAC1C,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,SAAS,CAAC;QAClD,MAAM,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,SAAS;AAEtE,QAAA,IAAI,GAAG,GAAG,GAAG,EAAE;AACb,YAAA,MAAM,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;AAChC,YAAA,MAAM,aAAa,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;YACxC,OAAO;gBACL,WAAW,EAAE,GAAG,GAAG,CAAC;AACpB,gBAAA,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC;AACpB,gBAAA,aAAa,EAAE,CAAC;AAChB,gBAAA,cAAc,EAAE,CAAC;AACjB,gBAAA,GAAG,EAAE,CAAC;gBACN,MAAM;gBACN,aAAa;AACb,gBAAA,YAAY,EAAE,EAAE;AAChB,gBAAA,aAAa,EAAE,EAAE;AACjB,gBAAA,YAAY,EAAE;aACf;QACH;AAEA,QAAA,IAAI,GAAG,GAAG,GAAG,EAAE;YACb,OAAO;gBACL,WAAW,EAAE,GAAG,GAAG,CAAC;AACpB,gBAAA,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC;AACpB,gBAAA,aAAa,EAAE,EAAE;AACjB,gBAAA,cAAc,EAAE,CAAC;AACjB,gBAAA,GAAG,EAAE,CAAC;AACN,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,aAAa,EAAE,EAAE;AACjB,gBAAA,YAAY,EAAE,EAAE;AAChB,gBAAA,aAAa,EAAE,EAAE;AACjB,gBAAA,YAAY,EAAE;aACf;QACH;QAEA,OAAO;YACL,WAAW,EAAE,GAAG,GAAG,EAAE;AACrB,YAAA,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC;AACpB,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,cAAc,EAAE,CAAC;AACjB,YAAA,GAAG,EAAE,CAAC;AACN,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,YAAY,EAAE;SACf;IACH;AAEiB,IAAA,kBAAkB,GAAG,CAAC,KAAU,KAAY;AAC3D,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/D,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,GAAG,CAAA,EAAG,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,CAAA,CAAE,GAAG,SAAS;AACxE,IAAA,CAAC;IAEkB,YAAY,GAAA;AAC7B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,EAAE;QACvC,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM;QAE7C,MAAM,WAAW,GACf,IAAI,CAAC,oBAAoB,EAAE,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE;AAC9E,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC;AACnE,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC;AAExE,QAAA,MAAM,SAAS,GAAsB;AACnC,YAAA,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG;AACxD,YAAA,UAAU,EAAE,GAAG;AACf,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE;AACpB,YAAA,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE;YACpB,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,YAAA,QAAQ,EAAE;AACR,gBAAA,IAAI,EAAE,YAAY;AAClB,gBAAA,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc;AACxC,aAAA;AACD,YAAA,QAAQ,EAAE;AACR,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,WAAW,EAAE,CAAC;AACd,gBAAA,SAAS,EAAE;AACT,oBAAA,KAAK,EAAE,CAAC;AACR,oBAAA,KAAK,EAAE;AACR;AACF,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,SAAS,EAAE;AACT,oBAAA,KAAK,EAAE,CAAC;AACR,oBAAA,KAAK,EAAE;AACR;AACF,aAAA;AACD,YAAA,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK;SACzB;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,YAAY,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;AAE9F,QAAA,MAAM,KAAK,GAAsB;AAC/B,YAAA,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,IAAI,CAAC,WAAW;AACxB,YAAA,UAAU,EAAE,GAAG;AACf,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE;AACpB,YAAA,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE;YACpB,WAAW;AACX,YAAA,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;AACzB,YAAA,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;AAC1B,YAAA,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;YACtB,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,YAAA,QAAQ,EAAE;AACR,gBAAA,SAAS,EAAE;oBACT,KAAK,EAAE,IAAI,CAAC,aAAa;AACzB,oBAAA,OAAO,EAAE,GAAG;AACZ,oBAAA,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;AAClB;AACF,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE;AAC5B,gBAAA,QAAQ,EAAE,aAAa;AACvB,gBAAA,KAAK,EAAE,SAAS;gBAChB,QAAQ,EAAE,IAAI,CAAC,YAAY;gBAC3B,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC;AAC1C;SACF;AAED,QAAA,MAAM,IAAI,GAAsB;AAC9B,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,IAAI,CAAC,WAAW;AACxB,YAAA,UAAU,EAAE,GAAG;AACf,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE;AACpB,YAAA,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE;YACpB,WAAW;AACX,YAAA,QAAQ,EAAE;AACR,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;gBAC5B,KAAK,EAAE,IAAI,CAAC;AACb,aAAA;AACD,YAAA,QAAQ,EAAE;;;;;;AAMR,gBAAA,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM;AAC3B,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,SAAS,EAAE;AACT,oBAAA,KAAK,EAAE,MAAM;AACb,oBAAA,OAAO,EAAE;AACV;AACF,aAAA;YACD,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,YAAA,QAAQ,EAAE;AACR,gBAAA,IAAI,EAAE,KAAK;AACX,gBAAA,SAAS,EAAE,EAAE,OAAO,EAAE,GAAG;AAC1B,aAAA;AACD,YAAA,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;AACzB,YAAA,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;AAC1B,YAAA,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;AAC1B,YAAA,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;AACtB,YAAA,MAAM,EAAE;gBACN,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;AAC5C,gBAAA,cAAc,EAAE,IAAI;AACpB,gBAAA,SAAS,EAAE,IAAI,CAAC,sBAAsB,EAAE;AACxC,gBAAA,IAAI,EAAE;AACJ,oBAAA,KAAK,EAAE;wBACL,QAAQ,EAAE,IAAI,CAAC,aAAa;wBAC5B,UAAU,EAAE,IAAI,CAAC,aAAa;AAC9B,wBAAA,UAAU,EAAE;AACb,qBAAA;AACD,oBAAA,IAAI,EAAE;wBACJ,QAAQ,EAAE,IAAI,CAAC,YAAY;wBAC3B,UAAU,EAAE,IAAI,CAAC,YAAY;AAC7B,wBAAA,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,IAAI,CAAC,EAAE,CAAC;AAChE;AACF;AACF,aAAA;YACD,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE;SAC/B;QAED,MAAM,MAAM,GAAwB,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC;AAE5D,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,MAAM;QAElC,IAAI,CAAC,WAAW,EAAE;IACpB;IAEQ,sBAAsB,GAAA;AAC5B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AACxB,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE;AAC5C,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE;AAE5C,QAAA,MAAM,aAAa,GAAG,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAA,QAAA,EAAW,IAAI,CAAA,CAAA,CAAG,GAAG,CAAA,OAAA,EAAU,IAAI,CAAA,CAAA,CAAG,IAAI,EAAE;QAE5F,OAAO,CAAC,KAAa,KAAY;YAC/B,IAAI,cAAc,EAAE;gBAClB,OAAO,CAAA,OAAA,EAAU,cAAc,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,aAAa,EAAE;YAC3D;;;YAGA,IAAI,cAAc,EAAE;AAClB,gBAAA,OAAO,cAAc,CAAC,KAAK,CAAC;YAC9B;AACA,YAAA,OAAO,CAAA,OAAA,EAAU,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,aAAa,EAAE;AACvE,QAAA,CAAC;IACH;AAES,IAAA,WAAW,CAAC,OAA+B,EAAA;AAClD,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;YACzE,IAAI,CAAC,YAAY,EAAE;QACrB;AACA,QAAA,OAAO,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;AACvD,QAAA,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC;IAC5B;AAEmB,IAAA,aAAa,KAAU;IAEvB,gBAAgB,GAAA;QACjC,IAAI,CAAC,YAAY,EAAE;QACnB,IAAI,CAAC,aAAa,EAAE;IACtB;AAEA;;AAEG;AACH,IAAA,QAAQ,CAAC,KAAa,EAAA;AACpB,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,MAA4B;AACpE,QAAA,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK;QACrC,IAAI,CAAC,aAAa,EAAE;IACtB;uGA3WW,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChClC,omEAgEA,EAAA,MAAA,EAAA,CAAA,4/BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDrCY,uBAAuB,+PAAE,8BAA8B,EAAA,QAAA,EAAA,0BAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,CAAA;;2FAKtD,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;+BACE,gBAAgB,EAAA,OAAA,EACjB,CAAC,uBAAuB,EAAE,8BAA8B,CAAC,EAAA,eAAA,EAGjD,uBAAuB,CAAC,KAAK,EAAA,QAAA,EAAA,omEAAA,EAAA,MAAA,EAAA,CAAA,4/BAAA,CAAA,EAAA;;;AE9BhD;;;AAGG;;ACHH;;AAEG;;;;"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Copyright (c) Siemens 2016 - 2026
|
|
6
|
+
* SPDX-License-Identifier: MIT
|
|
7
|
+
*/
|
|
8
|
+
class SiChartLoadingSpinnerComponent {
|
|
9
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SiChartLoadingSpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.5", type: SiChartLoadingSpinnerComponent, isStandalone: true, selector: "si-chart-loading-spinner", ngImport: i0, template: "<div class=\"loading\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <g>\n <path d=\"M256,156a16,16,0,0,1-16-16V80a16,16,0,0,1,32,0v60A16,16,0,0,1,256,156Z\" />\n <path\n d=\"M314.78,175.1a16,16,0,0,1-3.54-22.35l35.27-48.54A16,16,0,1,1,372.39,123l-35.26,48.54A16,16,0,0,1,314.78,175.1Z\"\n />\n <path\n d=\"M351.11,225.1a16,16,0,0,1,10.27-20.16l57.06-18.54a16,16,0,1,1,9.89,30.43l-57.06,18.54A16,16,0,0,1,351.11,225.1Z\"\n />\n <path\n d=\"M351.11,286.9a16,16,0,0,1,20.16-10.27l57.06,18.54a16,16,0,1,1-9.89,30.43l-57.06-18.54A16,16,0,0,1,351.11,286.9Z\"\n />\n <path\n d=\"M314.78,336.9a16,16,0,0,1,22.35,3.54L372.39,389a16,16,0,1,1-25.88,18.81l-35.27-48.54A16,16,0,0,1,314.78,336.9Z\"\n />\n <path d=\"M256,356a16,16,0,0,1,16,16v60a16,16,0,0,1-32,0V372A16,16,0,0,1,256,356Z\" />\n <path\n d=\"M197.22,336.9a16,16,0,0,1,3.54,22.35l-35.27,48.54A16,16,0,1,1,139.61,389l35.26-48.54A16,16,0,0,1,197.22,336.9Z\"\n />\n <path\n d=\"M160.89,286.9a16,16,0,0,1-10.27,20.16L93.56,325.6a16,16,0,0,1-9.89-30.43l57.06-18.54A16,16,0,0,1,160.89,286.9Z\"\n />\n <path\n d=\"M160.89,225.1a16,16,0,0,1-20.16,10.27L83.67,216.83a16,16,0,1,1,9.89-30.43l57.06,18.54A16,16,0,0,1,160.89,225.1Z\"\n />\n <path\n d=\"M197.22,175.1a16,16,0,0,1-22.35-3.54L139.61,123a16,16,0,1,1,25.88-18.81l35.27,48.54A16,16,0,0,1,197.22,175.1Z\"\n />\n </g>\n </svg>\n</div>\n", styles: ["@keyframes spinner-fade{0%{opacity:1}to{opacity:.05}}.loading{display:block;text-align:center}svg{inline-size:var(--loading-spinner-size, 64px);block-size:var(--loading-spinner-size, 64px)}path{fill:var(--element-ui-2, #656a6f);animation:spinner-fade 1s infinite linear}path:nth-child(1){animation-delay:0s;opacity:1}path:nth-child(2){animation-delay:.1s;opacity:.9}path:nth-child(3){animation-delay:.2s;opacity:.8}path:nth-child(4){animation-delay:.3s;opacity:.7}path:nth-child(5){animation-delay:.4s;opacity:.6}path:nth-child(6){animation-delay:.5s;opacity:.5}path:nth-child(7){animation-delay:.6s;opacity:.4}path:nth-child(8){animation-delay:.7s;opacity:.3}path:nth-child(9){animation-delay:.8s;opacity:.2}path:nth-child(10){animation-delay:.9s;opacity:.1}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
11
|
+
}
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SiChartLoadingSpinnerComponent, decorators: [{
|
|
13
|
+
type: Component,
|
|
14
|
+
args: [{ selector: 'si-chart-loading-spinner', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"loading\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <g>\n <path d=\"M256,156a16,16,0,0,1-16-16V80a16,16,0,0,1,32,0v60A16,16,0,0,1,256,156Z\" />\n <path\n d=\"M314.78,175.1a16,16,0,0,1-3.54-22.35l35.27-48.54A16,16,0,1,1,372.39,123l-35.26,48.54A16,16,0,0,1,314.78,175.1Z\"\n />\n <path\n d=\"M351.11,225.1a16,16,0,0,1,10.27-20.16l57.06-18.54a16,16,0,1,1,9.89,30.43l-57.06,18.54A16,16,0,0,1,351.11,225.1Z\"\n />\n <path\n d=\"M351.11,286.9a16,16,0,0,1,20.16-10.27l57.06,18.54a16,16,0,1,1-9.89,30.43l-57.06-18.54A16,16,0,0,1,351.11,286.9Z\"\n />\n <path\n d=\"M314.78,336.9a16,16,0,0,1,22.35,3.54L372.39,389a16,16,0,1,1-25.88,18.81l-35.27-48.54A16,16,0,0,1,314.78,336.9Z\"\n />\n <path d=\"M256,356a16,16,0,0,1,16,16v60a16,16,0,0,1-32,0V372A16,16,0,0,1,256,356Z\" />\n <path\n d=\"M197.22,336.9a16,16,0,0,1,3.54,22.35l-35.27,48.54A16,16,0,1,1,139.61,389l35.26-48.54A16,16,0,0,1,197.22,336.9Z\"\n />\n <path\n d=\"M160.89,286.9a16,16,0,0,1-10.27,20.16L93.56,325.6a16,16,0,0,1-9.89-30.43l57.06-18.54A16,16,0,0,1,160.89,286.9Z\"\n />\n <path\n d=\"M160.89,225.1a16,16,0,0,1-20.16,10.27L83.67,216.83a16,16,0,1,1,9.89-30.43l57.06,18.54A16,16,0,0,1,160.89,225.1Z\"\n />\n <path\n d=\"M197.22,175.1a16,16,0,0,1-22.35-3.54L139.61,123a16,16,0,1,1,25.88-18.81l35.27,48.54A16,16,0,0,1,197.22,175.1Z\"\n />\n </g>\n </svg>\n</div>\n", styles: ["@keyframes spinner-fade{0%{opacity:1}to{opacity:.05}}.loading{display:block;text-align:center}svg{inline-size:var(--loading-spinner-size, 64px);block-size:var(--loading-spinner-size, 64px)}path{fill:var(--element-ui-2, #656a6f);animation:spinner-fade 1s infinite linear}path:nth-child(1){animation-delay:0s;opacity:1}path:nth-child(2){animation-delay:.1s;opacity:.9}path:nth-child(3){animation-delay:.2s;opacity:.8}path:nth-child(4){animation-delay:.3s;opacity:.7}path:nth-child(5){animation-delay:.4s;opacity:.6}path:nth-child(6){animation-delay:.5s;opacity:.5}path:nth-child(7){animation-delay:.6s;opacity:.4}path:nth-child(8){animation-delay:.7s;opacity:.3}path:nth-child(9){animation-delay:.8s;opacity:.2}path:nth-child(10){animation-delay:.9s;opacity:.1}\n"] }]
|
|
15
|
+
}] });
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Copyright (c) Siemens 2016 - 2026
|
|
19
|
+
* SPDX-License-Identifier: MIT
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Generated bundle index. Do not edit.
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
export { SiChartLoadingSpinnerComponent };
|
|
27
|
+
//# sourceMappingURL=spike-rabbit-charts-ng-loading-spinner.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spike-rabbit-charts-ng-loading-spinner.mjs","sources":["../../../../projects/charts-ng/loading-spinner/si-chart-loading-spinner.component.ts","../../../../projects/charts-ng/loading-spinner/si-chart-loading-spinner.component.html","../../../../projects/charts-ng/loading-spinner/index.ts","../../../../projects/charts-ng/loading-spinner/spike-rabbit-charts-ng-loading-spinner.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'si-chart-loading-spinner',\n templateUrl: './si-chart-loading-spinner.component.html',\n styleUrl: './si-chart-loading-spinner.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiChartLoadingSpinnerComponent {}\n","<div class=\"loading\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <g>\n <path d=\"M256,156a16,16,0,0,1-16-16V80a16,16,0,0,1,32,0v60A16,16,0,0,1,256,156Z\" />\n <path\n d=\"M314.78,175.1a16,16,0,0,1-3.54-22.35l35.27-48.54A16,16,0,1,1,372.39,123l-35.26,48.54A16,16,0,0,1,314.78,175.1Z\"\n />\n <path\n d=\"M351.11,225.1a16,16,0,0,1,10.27-20.16l57.06-18.54a16,16,0,1,1,9.89,30.43l-57.06,18.54A16,16,0,0,1,351.11,225.1Z\"\n />\n <path\n d=\"M351.11,286.9a16,16,0,0,1,20.16-10.27l57.06,18.54a16,16,0,1,1-9.89,30.43l-57.06-18.54A16,16,0,0,1,351.11,286.9Z\"\n />\n <path\n d=\"M314.78,336.9a16,16,0,0,1,22.35,3.54L372.39,389a16,16,0,1,1-25.88,18.81l-35.27-48.54A16,16,0,0,1,314.78,336.9Z\"\n />\n <path d=\"M256,356a16,16,0,0,1,16,16v60a16,16,0,0,1-32,0V372A16,16,0,0,1,256,356Z\" />\n <path\n d=\"M197.22,336.9a16,16,0,0,1,3.54,22.35l-35.27,48.54A16,16,0,1,1,139.61,389l35.26-48.54A16,16,0,0,1,197.22,336.9Z\"\n />\n <path\n d=\"M160.89,286.9a16,16,0,0,1-10.27,20.16L93.56,325.6a16,16,0,0,1-9.89-30.43l57.06-18.54A16,16,0,0,1,160.89,286.9Z\"\n />\n <path\n d=\"M160.89,225.1a16,16,0,0,1-20.16,10.27L83.67,216.83a16,16,0,1,1,9.89-30.43l57.06,18.54A16,16,0,0,1,160.89,225.1Z\"\n />\n <path\n d=\"M197.22,175.1a16,16,0,0,1-22.35-3.54L139.61,123a16,16,0,1,1,25.88-18.81l35.27,48.54A16,16,0,0,1,197.22,175.1Z\"\n />\n </g>\n </svg>\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-chart-loading-spinner.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAAA;;;AAGG;MASU,8BAA8B,CAAA;uGAA9B,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA9B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,8BAA8B,oFCZ3C,2+CAgCA,EAAA,MAAA,EAAA,CAAA,2vBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FDpBa,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAN1C,SAAS;+BACE,0BAA0B,EAAA,eAAA,EAGnB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,2+CAAA,EAAA,MAAA,EAAA,CAAA,2vBAAA,CAAA,EAAA;;;AEVjD;;;AAGG;;ACHH;;AAEG;;;;"}
|