UNPKG

@grafana/ui

Version:
1 lines 4.43 kB
{"version":3,"file":"JSONViewCell.cjs","sources":["../../../../../src/components/Table/Cells/JSONViewCell.tsx"],"sourcesContent":["import { css, cx } from '@emotion/css';\nimport { useState, type JSX } from 'react';\n\nimport { getCellLinks } from '../../../utils/table';\nimport { CellActions } from '../CellActions';\nimport { DataLinksActionsTooltip, renderSingleLink } from '../DataLinksActionsTooltip';\nimport { TableCellInspectorMode } from '../TableCellInspector';\nimport {\n tooltipOnClickHandler,\n type DataLinksActionsTooltipCoords,\n getDataLinksActionsTooltipUtils,\n} from '../cellUtils';\nimport { type 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 (typeof value === 'string') {\n try {\n value = JSON.parse(value);\n } catch {} // ignore errors\n } else {\n try {\n // JSON may refer to itself, which errors on stringify\n displayValue = JSON.stringify(value, null, ' ');\n } catch {\n displayValue = undefined; // if it won't stringify, mark undefined\n }\n }\n\n const links = getCellLinks(field, row) || [];\n\n const [tooltipCoords, setTooltipCoords] = useState<DataLinksActionsTooltipCoords>();\n const { shouldShowLink, hasMultipleLinksOrActions } = getDataLinksActionsTooltipUtils(links);\n const shouldShowTooltip = hasMultipleLinksOrActions && tooltipCoords !== undefined;\n\n return (\n <div {...cellProps} className={inspectEnabled ? tableStyles.cellContainerNoOverflow : tableStyles.cellContainer}>\n {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions */}\n <div className={cx(tableStyles.cellText, txt)} onClick={tooltipOnClickHandler(setTooltipCoords)}>\n {shouldShowLink ? (\n renderSingleLink(links[0], displayValue)\n ) : shouldShowTooltip ? (\n <DataLinksActionsTooltip\n links={links}\n value={displayValue}\n coords={tooltipCoords}\n onTooltipClose={() => setTooltipCoords(undefined)}\n />\n ) : (\n <div className={tableStyles.cellText}>{displayValue}</div>\n )}\n </div>\n {inspectEnabled && <CellActions {...props} previewMode={TableCellInspectorMode.code} />}\n </div>\n );\n}\n"],"names":["css","getCellLinks","useState","getDataLinksActionsTooltipUtils","jsxs","jsx","cx","tooltipOnClickHandler","renderSingleLink","DataLinksActionsTooltip","CellActions","TableCellInspectorMode"],"mappings":";;;;;;;;;;;;;;AAcO,SAAS,aAAa,KAAA,EAAoC;AAdjE,EAAA,IAAA,EAAA;AAeE,EAAA,MAAM,EAAE,IAAA,EAAM,WAAA,EAAa,SAAA,EAAW,KAAA,EAAO,KAAI,GAAI,KAAA;AACrD,EAAA,MAAM,iBAAiB,OAAA,CAAA,CAAQ,EAAA,GAAA,KAAA,CAAM,MAAA,CAAO,MAAA,KAAb,mBAAqB,OAAO,CAAA;AAC3D,EAAA,MAAM,MAAMA,OAAA,CAAI;AAAA,IACd,MAAA,EAAQ,SAAA;AAAA,IACR,UAAA,EAAY;AAAA,GACb,CAAA;AAED,EAAA,IAAI,QAAQ,IAAA,CAAK,KAAA;AACjB,EAAA,IAAI,YAAA,GAAe,KAAA;AAEnB,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,IAAA,IAAI;AACF,MAAA,KAAA,GAAQ,IAAA,CAAK,MAAM,KAAK,CAAA;AAAA,IAC1B,CAAA,CAAA,OAAQ,CAAA,EAAA;AAAA,IAAC;AAAA,EACX,CAAA,MAAO;AACL,IAAA,IAAI;AAEF,MAAA,YAAA,GAAe,IAAA,CAAK,SAAA,CAAU,KAAA,EAAO,IAAA,EAAM,GAAG,CAAA;AAAA,IAChD,CAAA,CAAA,OAAQ,CAAA,EAAA;AACN,MAAA,YAAA,GAAe,KAAA,CAAA;AAAA,IACjB;AAAA,EACF;AAEA,EAAA,MAAM,KAAA,GAAQC,kBAAA,CAAa,KAAA,EAAO,GAAG,KAAK,EAAC;AAE3C,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAIC,cAAA,EAAwC;AAClF,EAAA,MAAM,EAAE,cAAA,EAAgB,yBAAA,EAA0B,GAAIC,0CAAgC,KAAK,CAAA;AAC3F,EAAA,MAAM,iBAAA,GAAoB,6BAA6B,aAAA,KAAkB,KAAA,CAAA;AAEzE,EAAA,uBACEC,eAAA,CAAC,SAAK,GAAG,SAAA,EAAW,WAAW,cAAA,GAAiB,WAAA,CAAY,uBAAA,GAA0B,WAAA,CAAY,aAAA,EAEhG,QAAA,EAAA;AAAA,oBAAAC,cAAA,CAAC,SAAI,SAAA,EAAWC,MAAA,CAAG,YAAY,QAAA,EAAU,GAAG,GAAG,OAAA,EAASC,+BAAA,CAAsB,gBAAgB,CAAA,EAC3F,2BACCC,wCAAA,CAAiB,KAAA,CAAM,CAAC,CAAA,EAAG,YAAY,IACrC,iBAAA,mBACFH,cAAA;AAAA,MAACI,+CAAA;AAAA,MAAA;AAAA,QACC,KAAA;AAAA,QACA,KAAA,EAAO,YAAA;AAAA,QACP,MAAA,EAAQ,aAAA;AAAA,QACR,cAAA,EAAgB,MAAM,gBAAA,CAAiB,KAAA,CAAS;AAAA;AAAA,wBAGlDJ,cAAA,CAAC,KAAA,EAAA,EAAI,WAAW,WAAA,CAAY,QAAA,EAAW,wBAAa,CAAA,EAExD,CAAA;AAAA,IACC,kCAAkBA,cAAA,CAACK,uBAAA,EAAA,EAAa,GAAG,KAAA,EAAO,WAAA,EAAaC,0CAAuB,IAAA,EAAM;AAAA,GAAA,EACvF,CAAA;AAEJ;;;;"}