UNPKG

@grafana/ui

Version:
1 lines 3.67 kB
{"version":3,"file":"JSONViewCell.mjs","sources":["../../../../../src/components/Table/Cells/JSONViewCell.tsx"],"sourcesContent":["import { css, cx } from '@emotion/css';\nimport { isString } from 'lodash';\n\nimport { useStyles2 } from '../../../themes';\nimport { getCellLinks } from '../../../utils';\nimport { Button, clearLinkButtonStyles } from '../../Button';\nimport { DataLinksContextMenu } from '../../DataLinks/DataLinksContextMenu';\nimport { CellActions } from '../CellActions';\nimport { TableCellInspectorMode } from '../TableCellInspector';\nimport { TableCellProps } from '../types';\n\nexport function JSONViewCell(props: TableCellProps): JSX.Element {\n const { cell, tableStyles, cellProps, field, row } = props;\n const inspectEnabled = Boolean(field.config.custom?.inspect);\n const txt = css({\n cursor: 'pointer',\n fontFamily: 'monospace',\n });\n\n let value = cell.value;\n let displayValue = value;\n\n if (isString(value)) {\n try {\n value = JSON.parse(value);\n } catch {} // ignore errors\n } else {\n displayValue = JSON.stringify(value, null, ' ');\n }\n\n const hasLinks = Boolean(getCellLinks(field, row)?.length);\n const clearButtonStyle = useStyles2(clearLinkButtonStyles);\n\n return (\n <div {...cellProps} className={inspectEnabled ? tableStyles.cellContainerNoOverflow : tableStyles.cellContainer}>\n <div className={cx(tableStyles.cellText, txt)}>\n {hasLinks ? (\n <DataLinksContextMenu links={() => getCellLinks(field, row) || []}>\n {(api) => {\n if (api.openMenu) {\n return (\n <Button className={cx(clearButtonStyle)} onClick={api.openMenu}>\n {displayValue}\n </Button>\n );\n } else {\n return <>{displayValue}</>;\n }\n }}\n </DataLinksContextMenu>\n ) : (\n <div className={tableStyles.cellText}>{displayValue}</div>\n )}\n </div>\n {inspectEnabled && <CellActions {...props} previewMode={TableCellInspectorMode.code} />}\n </div>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAWO,SAAS,aAAa,KAAoC,EAAA;AAXjE,EAAA,IAAA,EAAA,EAAA,EAAA;AAYE,EAAA,MAAM,EAAE,IAAM,EAAA,WAAA,EAAa,SAAW,EAAA,KAAA,EAAO,KAAQ,GAAA,KAAA;AACrD,EAAA,MAAM,iBAAiB,OAAQ,CAAA,CAAA,EAAA,GAAA,KAAA,CAAM,MAAO,CAAA,MAAA,KAAb,mBAAqB,OAAO,CAAA;AAC3D,EAAA,MAAM,MAAM,GAAI,CAAA;AAAA,IACd,MAAQ,EAAA,SAAA;AAAA,IACR,UAAY,EAAA;AAAA,GACb,CAAA;AAED,EAAA,IAAI,QAAQ,IAAK,CAAA,KAAA;AACjB,EAAA,IAAI,YAAe,GAAA,KAAA;AAEnB,EAAI,IAAA,QAAA,CAAS,KAAK,CAAG,EAAA;AACnB,IAAI,IAAA;AACF,MAAQ,KAAA,GAAA,IAAA,CAAK,MAAM,KAAK,CAAA;AAAA,KAClB,CAAA,OAAA,CAAA,EAAA;AAAA;AAAC,GACJ,MAAA;AACL,IAAA,YAAA,GAAe,IAAK,CAAA,SAAA,CAAU,KAAO,EAAA,IAAA,EAAM,GAAG,CAAA;AAAA;AAGhD,EAAA,MAAM,WAAW,OAAQ,CAAA,CAAA,EAAA,GAAA,YAAA,CAAa,OAAO,GAAG,CAAA,KAAvB,mBAA0B,MAAM,CAAA;AACzD,EAAM,MAAA,gBAAA,GAAmB,WAAW,qBAAqB,CAAA;AAEzD,EACE,uBAAA,IAAA,CAAC,SAAK,GAAG,SAAA,EAAW,WAAW,cAAiB,GAAA,WAAA,CAAY,uBAA0B,GAAA,WAAA,CAAY,aAChG,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,SAAI,SAAW,EAAA,EAAA,CAAG,YAAY,QAAU,EAAA,GAAG,GACzC,QACC,EAAA,QAAA,mBAAA,GAAA,CAAC,wBAAqB,KAAO,EAAA,MAAM,aAAa,KAAO,EAAA,GAAG,KAAK,EAAC,EAC7D,WAAC,GAAQ,KAAA;AACR,MAAA,IAAI,IAAI,QAAU,EAAA;AAChB,QACE,uBAAA,GAAA,CAAC,UAAO,SAAW,EAAA,EAAA,CAAG,gBAAgB,CAAG,EAAA,OAAA,EAAS,GAAI,CAAA,QAAA,EACnD,QACH,EAAA,YAAA,EAAA,CAAA;AAAA,OAEG,MAAA;AACL,QAAA,uCAAU,QAAa,EAAA,YAAA,EAAA,CAAA;AAAA;AACzB,KACF,EACF,oBAEC,GAAA,CAAA,KAAA,EAAA,EAAI,WAAW,WAAY,CAAA,QAAA,EAAW,wBAAa,CAExD,EAAA,CAAA;AAAA,IACC,kCAAmB,GAAA,CAAA,WAAA,EAAA,EAAa,GAAG,KAAO,EAAA,WAAA,EAAa,uBAAuB,IAAM,EAAA;AAAA,GACvF,EAAA,CAAA;AAEJ;;;;"}