{"version":3,"file":"ColorBarCell.cjs","sources":["../../../src/CallTree/ColorBarCell.tsx"],"sourcesContent":["import { css } from '@emotion/css';\n\nimport { type GrafanaTheme2 } from '@grafana/data';\nimport { useStyles2 } from '@grafana/ui';\n\nimport { type FlameGraphDataContainer } from '../FlameGraph/dataTransform';\nimport { type ColorScheme, type ColorSchemeDiff } from '../types';\n\nimport { type CallTreeNode, getRowBarColor } from './utils';\n\nexport function ColorBarCell({\n  node,\n  data,\n  colorScheme,\n  theme,\n  focusedNode,\n}: {\n  node: CallTreeNode;\n  data: FlameGraphDataContainer;\n  colorScheme: ColorScheme | ColorSchemeDiff;\n  theme: GrafanaTheme2;\n  focusedNode?: CallTreeNode;\n}) {\n  const styles = useStyles2(getStyles);\n  const barColor = getRowBarColor(node, data, colorScheme, theme);\n\n  let barWidth: string;\n\n  if (focusedNode) {\n    if (node.id === focusedNode.parentId) {\n      barWidth = '0%';\n    } else {\n      const relativePercent = focusedNode.total > 0 ? (node.total / focusedNode.total) * 100 : 0;\n      barWidth = `${Math.min(relativePercent, 100)}%`;\n    }\n  } else {\n    barWidth = `${Math.min(node.totalPercent, 100)}%`;\n  }\n\n  return (\n    <div className={styles.colorBarContainer}>\n      <div className={styles.colorBar} style={{ width: barWidth, backgroundColor: barColor }} />\n    </div>\n  );\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n  return {\n    colorBarContainer: css({\n      width: '100%',\n      height: '20px',\n      display: 'flex',\n      alignItems: 'center',\n    }),\n    colorBar: css({\n      height: '16px',\n      minWidth: '2px',\n      borderRadius: theme.shape.radius.default,\n    }),\n  };\n}\n"],"names":["useStyles2","getRowBarColor","css"],"mappings":";;;;;;;;;;AAUO,SAAS,YAAA,CAAa;AAAA,EAC3B,IAAA;AAAA,EACA,IAAA;AAAA,EACA,WAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAAA,EAMG;AACD,EAAA,MAAM,MAAA,GAASA,cAAW,SAAS,CAAA;AACnC,EAAA,MAAM,QAAA,GAAWC,oBAAA,CAAe,IAAA,EAAM,IAAA,EAAM,aAAa,KAAK,CAAA;AAE9D,EAAA,IAAI,QAAA;AAEJ,EAAA,IAAI,WAAA,EAAa;AACf,IAAA,IAAI,IAAA,CAAK,EAAA,KAAO,WAAA,CAAY,QAAA,EAAU;AACpC,MAAA,QAAA,GAAW,IAAA;AAAA,IACb,CAAA,MAAO;AACL,MAAA,MAAM,eAAA,GAAkB,YAAY,KAAA,GAAQ,CAAA,GAAK,KAAK,KAAA,GAAQ,WAAA,CAAY,QAAS,GAAA,GAAM,CAAA;AACzF,MAAA,QAAA,GAAW,CAAA,EAAG,IAAA,CAAK,GAAA,CAAI,eAAA,EAAiB,GAAG,CAAC,CAAA,CAAA,CAAA;AAAA,IAC9C;AAAA,EACF,CAAA,MAAO;AACL,IAAA,QAAA,GAAW,GAAG,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,YAAA,EAAc,GAAG,CAAC,CAAA,CAAA,CAAA;AAAA,EAChD;AAEA,EAAA,sCACG,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,iBAAA,EACrB,yCAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,QAAA,EAAU,OAAO,EAAE,KAAA,EAAO,UAAU,eAAA,EAAiB,QAAA,IAAY,CAAA,EAC1F,CAAA;AAEJ;AAEA,SAAS,UAAU,KAAA,EAAsB;AACvC,EAAA,OAAO;AAAA,IACL,mBAAmBC,OAAA,CAAI;AAAA,MACrB,KAAA,EAAO,MAAA;AAAA,MACP,MAAA,EAAQ,MAAA;AAAA,MACR,OAAA,EAAS,MAAA;AAAA,MACT,UAAA,EAAY;AAAA,KACb,CAAA;AAAA,IACD,UAAUA,OAAA,CAAI;AAAA,MACZ,MAAA,EAAQ,MAAA;AAAA,MACR,QAAA,EAAU,KAAA;AAAA,MACV,YAAA,EAAc,KAAA,CAAM,KAAA,CAAM,MAAA,CAAO;AAAA,KAClC;AAAA,GACH;AACF;;;;"}