UNPKG

@grafana/ui

Version:
1 lines 5.23 kB
{"version":3,"file":"AutoCell.mjs","sources":["../../../../../../src/components/Table/TableNG/Cells/AutoCell.tsx"],"sourcesContent":["import { css, cx } from '@emotion/css';\nimport { Property } from 'csstype';\n\nimport { GrafanaTheme2, formattedValueToString } from '@grafana/data';\nimport { TableCellDisplayMode, TableCellOptions } from '@grafana/schema';\n\nimport { useStyles2 } from '../../../../themes';\nimport { clearLinkButtonStyles } from '../../../Button';\nimport { DataLinksContextMenu } from '../../../DataLinks/DataLinksContextMenu';\nimport { AutoCellProps } from '../types';\nimport { getCellLinks } from '../utils';\n\nexport default function AutoCell({ value, field, justifyContent, rowIdx, cellOptions }: AutoCellProps) {\n const styles = useStyles2(getStyles, justifyContent);\n\n const displayValue = field.display!(value);\n const formattedValue = formattedValueToString(displayValue);\n const hasLinks = Boolean(getCellLinks(field, rowIdx)?.length);\n const clearButtonStyle = useStyles2(clearLinkButtonStyles);\n\n return (\n <div className={styles.cell}>\n {hasLinks ? (\n <DataLinksContextMenu links={() => getCellLinks(field, rowIdx) || []}>\n {(api) => {\n if (api.openMenu) {\n return (\n <button\n className={cx(clearButtonStyle, getLinkStyle(styles, cellOptions, api.targetClassName))}\n onClick={api.openMenu}\n >\n {formattedValue}\n </button>\n );\n } else {\n return <div className={getLinkStyle(styles, cellOptions, api.targetClassName)}>{formattedValue}</div>;\n }\n }}\n </DataLinksContextMenu>\n ) : (\n formattedValue\n )}\n </div>\n );\n}\n\nconst getLinkStyle = (\n styles: ReturnType<typeof getStyles>,\n cellOptions: TableCellOptions,\n targetClassName: string | undefined\n) => {\n if (cellOptions.type === TableCellDisplayMode.Auto) {\n return cx(styles.linkCell, targetClassName);\n }\n\n return cx(styles.cellLinkForColoredCell, targetClassName);\n};\n\nconst getStyles = (theme: GrafanaTheme2, justifyContent: Property.JustifyContent | undefined) => ({\n cell: css({\n display: 'flex',\n justifyContent: justifyContent,\n\n a: {\n color: 'inherit',\n },\n }),\n cellLinkForColoredCell: css({\n cursor: 'pointer',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n userSelect: 'text',\n whiteSpace: 'nowrap',\n fontWeight: theme.typography.fontWeightMedium,\n textDecoration: 'underline',\n }),\n linkCell: css({\n cursor: 'pointer',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n userSelect: 'text',\n whiteSpace: 'nowrap',\n color: theme.colors.text.link,\n fontWeight: theme.typography.fontWeightMedium,\n paddingRight: theme.spacing(1.5),\n a: {\n color: theme.colors.text.link,\n },\n '&:hover': {\n textDecoration: 'underline',\n color: theme.colors.text.link,\n },\n }),\n});\n"],"names":[],"mappings":"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"}