UNPKG

@grafana/ui

Version:
1 lines 7.2 kB
{"version":3,"file":"utils.mjs","sources":["../../../../src/graveyard/Graph/utils.ts"],"sourcesContent":["import {\n GraphSeriesValue,\n Field,\n formattedValueToString,\n getFieldDisplayName,\n TimeZone,\n dateTimeFormat,\n systemDateFormats,\n} from '@grafana/data';\n\n/**\n * Returns index of the closest datapoint BEFORE hover position\n *\n * @param posX\n * @param series\n * @deprecated\n */\nexport const findHoverIndexFromData = (xAxisDimension: Field, xPos: number) => {\n let lower = 0;\n let upper = xAxisDimension.values.length - 1;\n let middle;\n\n while (true) {\n if (lower > upper) {\n return Math.max(upper, 0);\n }\n middle = Math.floor((lower + upper) / 2);\n const xPosition = xAxisDimension.values[middle];\n\n if (xPosition === xPos) {\n return middle;\n } else if (xPosition && xPosition < xPos) {\n lower = middle + 1;\n } else {\n upper = middle - 1;\n }\n }\n};\n\ninterface MultiSeriesHoverInfo {\n value: string;\n time: string;\n datapointIndex: number;\n seriesIndex: number;\n label?: string;\n color?: string;\n}\n\n/**\n * Returns information about closest datapoints when hovering over a Graph\n *\n * @param seriesList list of series visible on the Graph\n * @param pos mouse cursor position, based on jQuery.flot position\n * @deprecated\n */\nexport const getMultiSeriesGraphHoverInfo = (\n // x and y axis dimensions order is aligned\n yAxisDimensions: Field[],\n xAxisDimensions: Field[],\n /** Well, time basically */\n xAxisPosition: number,\n timeZone?: TimeZone\n): {\n results: MultiSeriesHoverInfo[];\n time?: GraphSeriesValue;\n} => {\n let i, field, hoverIndex, hoverDistance, pointTime;\n\n const results: MultiSeriesHoverInfo[] = [];\n\n let minDistance, minTime;\n\n for (i = 0; i < yAxisDimensions.length; i++) {\n field = yAxisDimensions[i];\n const time = xAxisDimensions[i];\n hoverIndex = findHoverIndexFromData(time, xAxisPosition);\n hoverDistance = xAxisPosition - time.values[hoverIndex];\n pointTime = time.values[hoverIndex];\n // Take the closest point before the cursor, or if it does not exist, the closest after\n if (\n minDistance === undefined ||\n (hoverDistance >= 0 && (hoverDistance < minDistance || minDistance < 0)) ||\n (hoverDistance < 0 && hoverDistance > minDistance)\n ) {\n minDistance = hoverDistance;\n minTime = time.display ? formattedValueToString(time.display(pointTime)) : pointTime;\n }\n\n const disp = field.display!(field.values[hoverIndex]);\n\n results.push({\n value: formattedValueToString(disp),\n datapointIndex: hoverIndex,\n seriesIndex: i,\n color: disp.color,\n label: getFieldDisplayName(field),\n time: time.display ? formattedValueToString(time.display(pointTime)) : pointTime,\n });\n }\n\n return {\n results,\n time: minTime,\n };\n};\n\n/** @deprecated */\nexport const graphTickFormatter = (epoch: number, axis: any) => {\n return dateTimeFormat(epoch, {\n format: axis?.options?.timeformat,\n timeZone: axis?.options?.timezone,\n });\n};\n\n/** @deprecated */\nexport const graphTimeFormat = (ticks: number | null, min: number | null, max: number | null): string => {\n if (min && max && ticks) {\n const range = max - min;\n const secPerTick = range / ticks / 1000;\n // Need have 10 millisecond margin on the day range\n // As sometimes last 24 hour dashboard evaluates to more than 86400000\n const oneDay = 86400010;\n const oneYear = 31536000000;\n\n if (secPerTick <= 10) {\n return systemDateFormats.interval.millisecond;\n }\n if (secPerTick <= 45) {\n return systemDateFormats.interval.second;\n }\n if (range <= oneDay) {\n return systemDateFormats.interval.minute;\n }\n if (secPerTick <= 80000) {\n return systemDateFormats.interval.hour;\n }\n if (range <= oneYear) {\n return systemDateFormats.interval.day;\n }\n if (secPerTick <= 31536000) {\n return systemDateFormats.interval.month;\n }\n return systemDateFormats.interval.year;\n }\n\n return systemDateFormats.interval.minute;\n};\n"],"names":[],"mappings":"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"}