Flot threshold value now supports array of values.

This commit is contained in:
devaskim 2022-10-28 12:34:42 +05:00
parent 4cc7e7b373
commit a311a6984f

View File

@ -909,16 +909,22 @@ export class TbFlot {
isLatest = false): TbFlotThresholdMarking[] {
const thresholds: TbFlotThresholdMarking[] = [];
data.forEach((keyData) => {
let skip = false;
let latestSettings: TbFlotLatestKeySettings;
if (isLatest) {
latestSettings = keyData.dataKey.settings;
if (!latestSettings.useAsThreshold) {
skip = true;
}
}
const skip = isLatest && !keyData.dataKey.settings.useAsThreshold;
if (!skip && keyData && keyData.data && keyData.data[0]) {
const attrValue = keyData.data[0][1];
const value = keyData.data[0][1];
const values = Array.isArray(value) ? value : [value];
values.forEach(v => {
const threshold = this.processSingleDataValue(v, keyData, keyData.dataKey.settings, existingThresholds, isLatest);
if (threshold != null) {
thresholds.push(threshold);
}
});
}
});
return thresholds;
}
private processSingleDataValue(attrValue: number, keyData: DatasourceData, latestSettings: TbFlotLatestKeySettings, existingThresholds: TbFlotThresholdMarking[], isLatest = false) {
if (isNumeric(attrValue) && isFinite(attrValue)) {
let yaxis: number;
let lineWidth: number;
@ -934,15 +940,10 @@ export class TbFlot {
color = settings.color || keyData.dataKey.color;
}
const colorIndex = this.subscription.data.length + existingThresholds.length;
const threshold = this.generateThreshold(existingThresholds, yaxis, lineWidth, color, colorIndex, attrValue);
if (threshold != null) {
thresholds.push(threshold);
return this.generateThreshold(existingThresholds, yaxis, lineWidth, color, colorIndex, attrValue);
}
}
}
});
return thresholds;
}
private generateThreshold(existingThresholds: TbFlotThresholdMarking[], yaxis: number, lineWidth: number,
color: string, defaultColorIndex: number, thresholdValue: number): TbFlotThresholdMarking {