mirror of
https://github.com/SigNoz/signoz.git
synced 2025-12-24 10:56:53 +00:00
74 lines
1.9 KiB
TypeScript
74 lines
1.9 KiB
TypeScript
import { defaultStyles } from '@visx/tooltip';
|
|
import { Query } from 'types/api/queryBuilder/queryBuilderData';
|
|
|
|
export const tooltipStyles = {
|
|
...defaultStyles,
|
|
minWidth: 60,
|
|
backgroundColor: 'rgba(0,0,0,0.9)',
|
|
color: 'white',
|
|
zIndex: 9999,
|
|
display: 'flex',
|
|
gap: '10px',
|
|
justifyContent: 'center',
|
|
alignItems: 'center',
|
|
padding: '5px 10px',
|
|
};
|
|
|
|
export const getLabel = (
|
|
label: string,
|
|
query: Query,
|
|
queryName: string,
|
|
isQueryContentMultipleResult = false, // If there are more than one aggregation return by the query, this should be set to true. Default is false.
|
|
): string => {
|
|
let finalQuery;
|
|
if (!isQueryContentMultipleResult) {
|
|
finalQuery = query.builder.queryData.find((q) => q.queryName === queryName);
|
|
if (!finalQuery) {
|
|
// If the query is not found in queryData, then check in queryFormulas
|
|
finalQuery = query.builder.queryFormulas.find(
|
|
(q) => q.queryName === queryName,
|
|
);
|
|
}
|
|
}
|
|
if (finalQuery) {
|
|
if (finalQuery.legend !== '') {
|
|
return finalQuery.legend;
|
|
}
|
|
if (label !== undefined) {
|
|
return label;
|
|
}
|
|
return queryName;
|
|
}
|
|
return label;
|
|
};
|
|
|
|
// Function to convert a hex color to RGB format
|
|
const hexToRgb = (
|
|
color: string,
|
|
): { r: number; g: number; b: number } | null => {
|
|
const hex = color.replace(
|
|
/^#?([a-f\d])([a-f\d])([a-f\d])$/i,
|
|
(m, r, g, b) => r + r + g + g + b + b,
|
|
);
|
|
const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
|
|
return result
|
|
? {
|
|
r: parseInt(result[1], 16),
|
|
g: parseInt(result[2], 16),
|
|
b: parseInt(result[3], 16),
|
|
}
|
|
: null;
|
|
};
|
|
|
|
export const lightenColor = (color: string, opacity: number): string => {
|
|
// Convert the hex color to RGB format
|
|
const rgbColor = hexToRgb(color);
|
|
if (!rgbColor) return color; // Return the original color if unable to parse
|
|
|
|
// Extract the RGB components
|
|
const { r, g, b } = rgbColor;
|
|
|
|
// Create a new RGBA color string with the specified opacity
|
|
return `rgba(${r}, ${g}, ${b}, ${opacity})`;
|
|
};
|