UNPKG

@grafana/ui

Version:
1 lines 5.11 kB
{"version":3,"file":"SeriesTable.mjs","sources":["../../../../src/components/VizTooltip/SeriesTable.tsx"],"sourcesContent":["import { css, cx } from '@emotion/css';\nimport * as React from 'react';\n\nimport { GrafanaTheme2, GraphSeriesValue } from '@grafana/data';\n\nimport { useStyles2 } from '../../themes';\nimport { t } from '../../utils/i18n';\nimport { SeriesIcon } from '../VizLegend/SeriesIcon';\n\n/**\n * @public\n */\nexport interface SeriesTableRowProps {\n color?: string;\n label?: React.ReactNode;\n value?: string | GraphSeriesValue;\n isActive?: boolean;\n}\n\nconst getSeriesTableRowStyles = (theme: GrafanaTheme2) => {\n return {\n icon: css({\n marginRight: theme.spacing(1),\n verticalAlign: 'middle',\n }),\n seriesTable: css({\n display: 'table',\n }),\n seriesTableRow: css({\n display: 'table-row',\n fontSize: theme.typography.bodySmall.fontSize,\n }),\n seriesTableCell: css({\n display: 'table-cell',\n }),\n label: css({\n wordBreak: 'break-all',\n }),\n value: css({\n paddingLeft: theme.spacing(2),\n textAlign: 'right',\n }),\n activeSeries: css({\n fontWeight: theme.typography.fontWeightBold,\n color: theme.colors.text.maxContrast,\n }),\n timestamp: css({\n fontWeight: theme.typography.fontWeightBold,\n fontSize: theme.typography.bodySmall.fontSize,\n }),\n };\n};\n\n/**\n * @public\n */\nexport const SeriesTableRow = ({ color, label, value, isActive }: SeriesTableRowProps) => {\n const styles = useStyles2(getSeriesTableRowStyles);\n\n return (\n <div data-testid=\"SeriesTableRow\" className={cx(styles.seriesTableRow, isActive && styles.activeSeries)}>\n {color && (\n <div className={styles.seriesTableCell}>\n <SeriesIcon color={color} className={styles.icon} />\n </div>\n )}\n {label && <div className={cx(styles.seriesTableCell, styles.label)}>{label}</div>}\n {value && <div className={cx(styles.seriesTableCell, styles.value)}>{value}</div>}\n </div>\n );\n};\n\n/**\n * @public\n */\nexport interface SeriesTableProps {\n timestamp?: string | GraphSeriesValue;\n series: SeriesTableRowProps[];\n}\n\n/**\n * @public\n */\nexport const SeriesTable = ({ timestamp, series }: SeriesTableProps) => {\n const styles = useStyles2(getSeriesTableRowStyles);\n\n return (\n <>\n {timestamp && (\n <div className={styles.timestamp} aria-label={t('grafana-ui.viz-tooltip.timestamp', 'Timestamp')}>\n {timestamp}\n </div>\n )}\n {series.map((s, i) => {\n return (\n <SeriesTableRow\n isActive={s.isActive}\n label={s.label}\n color={s.color}\n value={s.value}\n key={`${s.label}-${i}`}\n />\n );\n })}\n </>\n );\n};\n"],"names":[],"mappings":"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"}