UNPKG

@grafana/flamegraph

Version:

Grafana flamegraph visualization component

1 lines 2.98 kB
{"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;;;;"}