UNPKG

@grafana/ui

Version:
1 lines 4.12 kB
{"version":3,"file":"BarGaugeCell.mjs","sources":["../../../../../../src/components/Table/TableNG/Cells/BarGaugeCell.tsx"],"sourcesContent":["import { ThresholdsConfig, ThresholdsMode, VizOrientation, getFieldConfigWithMinMax } from '@grafana/data';\nimport { BarGaugeDisplayMode, BarGaugeValueMode, TableCellDisplayMode } from '@grafana/schema';\n\nimport { BarGauge } from '../../../BarGauge/BarGauge';\nimport { renderSingleLink } from '../../DataLinksActionsTooltip';\nimport { useSingleLink } from '../hooks';\nimport { BarGaugeCellProps } from '../types';\nimport { extractPixelValue, getCellOptions, getAlignmentFactor } from '../utils';\n\nconst defaultScale: ThresholdsConfig = {\n mode: ThresholdsMode.Absolute,\n steps: [\n {\n color: 'blue',\n value: -Infinity,\n },\n {\n color: 'green',\n value: 20,\n },\n ],\n};\n\nexport const BarGaugeCell = ({ value, field, theme, height, width, rowIdx }: BarGaugeCellProps) => {\n const displayValue = field.display!(value);\n const cellOptions = getCellOptions(field);\n const heightOffset = extractPixelValue(theme.spacing(1));\n\n let config = getFieldConfigWithMinMax(field, false);\n if (!config.thresholds) {\n config = {\n ...config,\n thresholds: defaultScale,\n };\n }\n\n // Set default display mode and update if defined\n // and update the valueMode if defined\n let barGaugeMode: BarGaugeDisplayMode = BarGaugeDisplayMode.Gradient;\n let valueDisplayMode: BarGaugeValueMode | undefined = undefined;\n\n if (cellOptions.type === TableCellDisplayMode.Gauge) {\n barGaugeMode = cellOptions.mode ?? BarGaugeDisplayMode.Gradient;\n valueDisplayMode =\n cellOptions.valueDisplayMode !== undefined ? cellOptions.valueDisplayMode : BarGaugeValueMode.Text;\n }\n\n const alignmentFactors = getAlignmentFactor(field, displayValue, rowIdx!);\n\n const barGaugeComponent = (\n <BarGauge\n width={width}\n height={height - heightOffset}\n field={config}\n display={field.display}\n text={{ valueSize: 14 }}\n value={displayValue}\n orientation={VizOrientation.Horizontal}\n theme={theme}\n alignmentFactors={alignmentFactors}\n itemSpacing={1}\n lcdCellWidth={8}\n displayMode={barGaugeMode}\n valueDisplayMode={valueDisplayMode}\n />\n );\n\n const link = useSingleLink(field, rowIdx);\n\n return link == null ? barGaugeComponent : renderSingleLink(link, barGaugeComponent);\n};\n"],"names":[],"mappings":";;;;;;;;AASA,MAAM,YAAiC,GAAA;AAAA,EACrC,MAAM,cAAe,CAAA,QAAA;AAAA,EACrB,KAAO,EAAA;AAAA,IACL;AAAA,MACE,KAAO,EAAA,MAAA;AAAA,MACP,KAAO,EAAA,CAAA;AAAA,KACT;AAAA,IACA;AAAA,MACE,KAAO,EAAA,OAAA;AAAA,MACP,KAAO,EAAA;AAAA;AACT;AAEJ,CAAA;AAEa,MAAA,YAAA,GAAe,CAAC,EAAE,KAAA,EAAO,OAAO,KAAO,EAAA,MAAA,EAAQ,KAAO,EAAA,MAAA,EAAgC,KAAA;AAvBnG,EAAA,IAAA,EAAA;AAwBE,EAAM,MAAA,YAAA,GAAe,KAAM,CAAA,OAAA,CAAS,KAAK,CAAA;AACzC,EAAM,MAAA,WAAA,GAAc,eAAe,KAAK,CAAA;AACxC,EAAA,MAAM,YAAe,GAAA,iBAAA,CAAkB,KAAM,CAAA,OAAA,CAAQ,CAAC,CAAC,CAAA;AAEvD,EAAI,IAAA,MAAA,GAAS,wBAAyB,CAAA,KAAA,EAAO,KAAK,CAAA;AAClD,EAAI,IAAA,CAAC,OAAO,UAAY,EAAA;AACtB,IAAS,MAAA,GAAA;AAAA,MACP,GAAG,MAAA;AAAA,MACH,UAAY,EAAA;AAAA,KACd;AAAA;AAKF,EAAA,IAAI,eAAoC,mBAAoB,CAAA,QAAA;AAC5D,EAAA,IAAI,gBAAkD,GAAA,KAAA,CAAA;AAEtD,EAAI,IAAA,WAAA,CAAY,IAAS,KAAA,oBAAA,CAAqB,KAAO,EAAA;AACnD,IAAe,YAAA,GAAA,CAAA,EAAA,GAAA,WAAA,CAAY,IAAZ,KAAA,IAAA,GAAA,EAAA,GAAoB,mBAAoB,CAAA,QAAA;AACvD,IAAA,gBAAA,GACE,WAAY,CAAA,gBAAA,KAAqB,KAAY,CAAA,GAAA,WAAA,CAAY,mBAAmB,iBAAkB,CAAA,IAAA;AAAA;AAGlG,EAAA,MAAM,gBAAmB,GAAA,kBAAA,CAAmB,KAAO,EAAA,YAAA,EAAc,MAAO,CAAA;AAExE,EAAA,MAAM,iBACJ,mBAAA,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,QAAQ,MAAS,GAAA,YAAA;AAAA,MACjB,KAAO,EAAA,MAAA;AAAA,MACP,SAAS,KAAM,CAAA,OAAA;AAAA,MACf,IAAA,EAAM,EAAE,SAAA,EAAW,EAAG,EAAA;AAAA,MACtB,KAAO,EAAA,YAAA;AAAA,MACP,aAAa,cAAe,CAAA,UAAA;AAAA,MAC5B,KAAA;AAAA,MACA,gBAAA;AAAA,MACA,WAAa,EAAA,CAAA;AAAA,MACb,YAAc,EAAA,CAAA;AAAA,MACd,WAAa,EAAA,YAAA;AAAA,MACb;AAAA;AAAA,GACF;AAGF,EAAM,MAAA,IAAA,GAAO,aAAc,CAAA,KAAA,EAAO,MAAM,CAAA;AAExC,EAAA,OAAO,IAAQ,IAAA,IAAA,GAAO,iBAAoB,GAAA,gBAAA,CAAiB,MAAM,iBAAiB,CAAA;AACpF;;;;"}