{"version":3,"file":"BarGaugeCell.cjs","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 { MaybeWrapWithLink } from '../components/MaybeWrapWithLink';\nimport { TABLE } from '../constants';\nimport { BarGaugeCellProps } from '../types';\nimport { 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 = TABLE.CELL_PADDING * 2;\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  // clamp the height of the gauge so it isn't stretched for large rows\n  const renderedHeight = Math.min(height - heightOffset, TABLE.MAX_CELL_HEIGHT);\n\n  return (\n    <MaybeWrapWithLink field={field} rowIdx={rowIdx}>\n      <BarGauge\n        width={width}\n        height={renderedHeight}\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    </MaybeWrapWithLink>\n  );\n};\n"],"names":["ThresholdsMode","getCellOptions","TABLE","getFieldConfigWithMinMax","BarGaugeDisplayMode","TableCellDisplayMode","BarGaugeValueMode","getAlignmentFactor","jsx","MaybeWrapWithLink","BarGauge","VizOrientation"],"mappings":";;;;;;;;;;;;;AASA,MAAM,YAAA,GAAiC;AAAA,EACrC,MAAMA,mBAAA,CAAe,QAAA;AAAA,EACrB,KAAA,EAAO;AAAA,IACL;AAAA,MACE,KAAA,EAAO,MAAA;AAAA,MACP,KAAA,EAAO,CAAA;AAAA,KACT;AAAA,IACA;AAAA,MACE,KAAA,EAAO,OAAA;AAAA,MACP,KAAA,EAAO;AAAA;AACT;AAEJ,CAAA;AAEO,MAAM,YAAA,GAAe,CAAC,EAAE,KAAA,EAAO,OAAO,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO,MAAA,EAAO,KAAyB;AAvBnG,EAAA,IAAA,EAAA;AAwBE,EAAA,MAAM,YAAA,GAAe,KAAA,CAAM,OAAA,CAAS,KAAK,CAAA;AACzC,EAAA,MAAM,WAAA,GAAcC,qBAAe,KAAK,CAAA;AACxC,EAAA,MAAM,YAAA,GAAeC,gBAAM,YAAA,GAAe,CAAA;AAE1C,EAAA,IAAI,MAAA,GAASC,6BAAA,CAAyB,KAAA,EAAO,KAAK,CAAA;AAClD,EAAA,IAAI,CAAC,OAAO,UAAA,EAAY;AACtB,IAAA,MAAA,GAAS;AAAA,MACP,GAAG,MAAA;AAAA,MACH,UAAA,EAAY;AAAA,KACd;AAAA,EACF;AAIA,EAAA,IAAI,eAAoCC,0BAAA,CAAoB,QAAA;AAC5D,EAAA,IAAI,gBAAA,GAAkD,KAAA,CAAA;AAEtD,EAAA,IAAI,WAAA,CAAY,IAAA,KAASC,2BAAA,CAAqB,KAAA,EAAO;AACnD,IAAA,YAAA,GAAA,CAAe,EAAA,GAAA,WAAA,CAAY,IAAA,KAAZ,IAAA,GAAA,EAAA,GAAoBD,0BAAA,CAAoB,QAAA;AACvD,IAAA,gBAAA,GACE,WAAA,CAAY,gBAAA,KAAqB,KAAA,CAAA,GAAY,WAAA,CAAY,mBAAmBE,wBAAA,CAAkB,IAAA;AAAA,EAClG;AAEA,EAAA,MAAM,gBAAA,GAAmBC,wBAAA,CAAmB,KAAA,EAAO,YAAA,EAAc,MAAO,CAAA;AAExE,EAAA,MAAM,iBAAiB,IAAA,CAAK,GAAA,CAAI,MAAA,GAAS,YAAA,EAAcL,gBAAM,eAAe,CAAA;AAE5E,EAAA,uBACEM,cAAA,CAACC,mCAAA,EAAA,EAAkB,KAAA,EAAc,MAAA,EAC/B,QAAA,kBAAAD,cAAA;AAAA,IAACE,iBAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,MAAA,EAAQ,cAAA;AAAA,MACR,KAAA,EAAO,MAAA;AAAA,MACP,SAAS,KAAA,CAAM,OAAA;AAAA,MACf,IAAA,EAAM,EAAE,SAAA,EAAW,EAAA,EAAG;AAAA,MACtB,KAAA,EAAO,YAAA;AAAA,MACP,aAAaC,mBAAA,CAAe,UAAA;AAAA,MAC5B,KAAA;AAAA,MACA,gBAAA;AAAA,MACA,WAAA,EAAa,CAAA;AAAA,MACb,YAAA,EAAc,CAAA;AAAA,MACd,WAAA,EAAa,YAAA;AAAA,MACb;AAAA;AAAA,GACF,EACF,CAAA;AAEJ;;;;"}