UNPKG

@grafana/ui

Version:
1 lines 1.93 kB
{"version":3,"file":"ImageCell.mjs","sources":["../../../../../../src/components/Table/TableNG/Cells/ImageCell.tsx"],"sourcesContent":["import { css } from '@emotion/css';\nimport { useState } from 'react';\n\nimport { TableCellDisplayMode } from '../../types';\nimport { MaybeWrapWithLink } from '../components/MaybeWrapWithLink';\nimport { ImageCellProps, TableCellStyles } from '../types';\n\nexport const ImageCell = ({ cellOptions, field, value, rowIdx }: ImageCellProps) => {\n const [error, setError] = useState(false);\n const { text } = field.display!(value);\n const { alt, title } =\n cellOptions.type === TableCellDisplayMode.Image ? cellOptions : { alt: undefined, title: undefined };\n\n if (!text) {\n return null;\n }\n\n return (\n <MaybeWrapWithLink field={field} rowIdx={rowIdx}>\n {error ? text : <img alt={alt} src={text} title={title} onError={() => setError(true)} />}\n </MaybeWrapWithLink>\n );\n};\n\nexport const getStyles: TableCellStyles = () =>\n css({\n '&, a, img': {\n width: '100%',\n height: '100%',\n },\n img: {\n objectFit: 'contain',\n },\n });\n"],"names":[],"mappings":";;;;;;;;AAOO,MAAM,YAAY,CAAC,EAAE,aAAa,KAAA,EAAO,KAAA,EAAO,QAAO,KAAsB;AAClF,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAI,SAAS,KAAK,CAAA;AACxC,EAAA,MAAM,EAAE,IAAA,EAAK,GAAI,KAAA,CAAM,QAAS,KAAK,CAAA;AACrC,EAAA,MAAM,EAAE,GAAA,EAAK,KAAA,EAAM,GACjB,WAAA,CAAY,IAAA,KAAS,oBAAA,CAAqB,KAAA,GAAQ,WAAA,GAAc,EAAE,GAAA,EAAK,KAAA,CAAA,EAAW,OAAO,KAAA,CAAA,EAAU;AAErG,EAAA,IAAI,CAAC,IAAA,EAAM;AACT,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,2BACG,iBAAA,EAAA,EAAkB,KAAA,EAAc,MAAA,EAC9B,QAAA,EAAA,KAAA,GAAQ,uBAAO,GAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAU,GAAA,EAAK,MAAM,KAAA,EAAc,OAAA,EAAS,MAAM,QAAA,CAAS,IAAI,GAAG,CAAA,EACzF,CAAA;AAEJ;AAEO,MAAM,SAAA,GAA6B,MACxC,GAAA,CAAI;AAAA,EACF,WAAA,EAAa;AAAA,IACX,KAAA,EAAO,MAAA;AAAA,IACP,MAAA,EAAQ;AAAA,GACV;AAAA,EACA,GAAA,EAAK;AAAA,IACH,SAAA,EAAW;AAAA;AAEf,CAAC;;;;"}