@grafana/ui
Version:
Grafana Components Library
1 lines • 3.75 kB
Source Map (JSON)
{"version":3,"file":"AutoCell.mjs","sources":["../../../../../../src/components/Table/TableNG/Cells/AutoCell.tsx"],"sourcesContent":["import { css } from '@emotion/css';\nimport { Property } from 'csstype';\n\nimport { GrafanaTheme2, formattedValueToString } from '@grafana/data';\n\nimport { useStyles2 } from '../../../../themes/ThemeContext';\nimport { renderSingleLink } from '../../DataLinksActionsTooltip';\nimport { TableCellOptions, TableCellDisplayMode } from '../../types';\nimport { useSingleLink } from '../hooks';\nimport { AutoCellProps } from '../types';\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 link = useSingleLink(field, rowIdx);\n\n return (\n <div className={styles.cell}>\n {link == null ? formattedValue : renderSingleLink(link, formattedValue, getLinkStyle(styles, cellOptions))}\n </div>\n );\n}\n\nconst getLinkStyle = (styles: ReturnType<typeof getStyles>, cellOptions: TableCellOptions) => {\n if (cellOptions.type === TableCellDisplayMode.Auto) {\n return styles.linkCell;\n }\n\n return styles.cellLinkForColoredCell;\n};\n\nconst getStyles = (theme: GrafanaTheme2, justifyContent: Property.JustifyContent | undefined) => ({\n cell: css({\n display: 'flex',\n justifyContent: justifyContent,\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} !important`,\n fontWeight: theme.typography.fontWeightMedium,\n paddingRight: theme.spacing(1.5),\n '&:hover': {\n textDecoration: 'underline',\n color: theme.colors.text.link,\n },\n }),\n});\n"],"names":[],"mappings":";;;;;;;;AAWA,SAAwB,SAAS,EAAE,KAAA,EAAO,OAAO,cAAgB,EAAA,MAAA,EAAQ,aAA8B,EAAA;AACrG,EAAM,MAAA,MAAA,GAAS,UAAW,CAAA,SAAA,EAAW,cAAc,CAAA;AAEnD,EAAM,MAAA,YAAA,GAAe,KAAM,CAAA,OAAA,CAAS,KAAK,CAAA;AACzC,EAAM,MAAA,cAAA,GAAiB,uBAAuB,YAAY,CAAA;AAC1D,EAAM,MAAA,IAAA,GAAO,aAAc,CAAA,KAAA,EAAO,MAAM,CAAA;AAExC,EAAA,uBACG,GAAA,CAAA,KAAA,EAAA,EAAI,SAAW,EAAA,MAAA,CAAO,MACpB,QAAQ,EAAA,IAAA,IAAA,IAAA,GAAO,cAAiB,GAAA,gBAAA,CAAiB,MAAM,cAAgB,EAAA,YAAA,CAAa,MAAQ,EAAA,WAAW,CAAC,CAC3G,EAAA,CAAA;AAEJ;AAEA,MAAM,YAAA,GAAe,CAAC,MAAA,EAAsC,WAAkC,KAAA;AAC5F,EAAI,IAAA,WAAA,CAAY,IAAS,KAAA,oBAAA,CAAqB,IAAM,EAAA;AAClD,IAAA,OAAO,MAAO,CAAA,QAAA;AAAA;AAGhB,EAAA,OAAO,MAAO,CAAA,sBAAA;AAChB,CAAA;AAEA,MAAM,SAAA,GAAY,CAAC,KAAA,EAAsB,cAAyD,MAAA;AAAA,EAChG,MAAM,GAAI,CAAA;AAAA,IACR,OAAS,EAAA,MAAA;AAAA,IACT,cAAA;AAAA,IACA,CAAG,EAAA;AAAA,MACD,KAAO,EAAA;AAAA;AACT,GACD,CAAA;AAAA,EACD,wBAAwB,GAAI,CAAA;AAAA,IAC1B,MAAQ,EAAA,SAAA;AAAA,IACR,QAAU,EAAA,QAAA;AAAA,IACV,YAAc,EAAA,UAAA;AAAA,IACd,UAAY,EAAA,MAAA;AAAA,IACZ,UAAY,EAAA,QAAA;AAAA,IACZ,UAAA,EAAY,MAAM,UAAW,CAAA,gBAAA;AAAA,IAC7B,cAAgB,EAAA;AAAA,GACjB,CAAA;AAAA,EACD,UAAU,GAAI,CAAA;AAAA,IACZ,MAAQ,EAAA,SAAA;AAAA,IACR,QAAU,EAAA,QAAA;AAAA,IACV,YAAc,EAAA,UAAA;AAAA,IACd,UAAY,EAAA,MAAA;AAAA,IACZ,UAAY,EAAA,QAAA;AAAA,IACZ,KAAO,EAAA,CAAA,EAAG,KAAM,CAAA,MAAA,CAAO,KAAK,IAAI,CAAA,WAAA,CAAA;AAAA,IAChC,UAAA,EAAY,MAAM,UAAW,CAAA,gBAAA;AAAA,IAC7B,YAAA,EAAc,KAAM,CAAA,OAAA,CAAQ,GAAG,CAAA;AAAA,IAC/B,SAAW,EAAA;AAAA,MACT,cAAgB,EAAA,WAAA;AAAA,MAChB,KAAA,EAAO,KAAM,CAAA,MAAA,CAAO,IAAK,CAAA;AAAA;AAC3B,GACD;AACH,CAAA,CAAA;;;;"}