@grafana/ui
Version:
Grafana Components Library
1 lines • 2.82 kB
Source Map (JSON)
{"version":3,"file":"FormattedValueDisplay.mjs","sources":["../../../../src/components/FormattedValueDisplay/FormattedValueDisplay.tsx"],"sourcesContent":["import { CSSProperties, HTMLProps } from 'react';\n\nimport { FormattedValue } from '@grafana/data';\n\nexport interface Props extends Omit<HTMLProps<HTMLDivElement>, 'className' | 'value' | 'style'> {\n value: FormattedValue;\n className?: string;\n style?: CSSProperties;\n}\n\nfunction fontSizeReductionFactor(fontSize: number) {\n if (fontSize < 20) {\n return 0.9;\n }\n if (fontSize < 26) {\n return 0.8;\n }\n return 0.6;\n}\n\n/**\n * Used to display a value, which also supports prefix and suffix.\n *\n * https://developers.grafana.com/ui/latest/index.html?path=/docs/plugins-formattedvaluedisplay--docs\n */\nexport const FormattedValueDisplay = ({ value, className, style, ...htmlProps }: Props) => {\n const hasPrefix = (value.prefix ?? '').length > 0;\n const hasSuffix = (value.suffix ?? '').length > 0;\n let suffixStyle;\n\n if (style && typeof style.fontSize === 'number' && !Number.isNaN(style.fontSize)) {\n const fontSize = style.fontSize;\n const reductionFactor = fontSizeReductionFactor(fontSize);\n suffixStyle = { fontSize: fontSize * reductionFactor };\n }\n\n return (\n <div className={className} style={style} {...htmlProps}>\n <div>\n {hasPrefix && <span>{value.prefix}</span>}\n <span>{value.text}</span>\n {hasSuffix && <span style={suffixStyle}>{value.suffix}</span>}\n </div>\n </div>\n );\n};\n\nFormattedValueDisplay.displayName = 'FormattedDisplayValue';\n"],"names":[],"mappings":";;;AAUA,SAAS,wBAAwB,QAAA,EAAkB;AACjD,EAAA,IAAI,WAAW,EAAA,EAAI;AACjB,IAAA,OAAO,GAAA;AAAA,EACT;AACA,EAAA,IAAI,WAAW,EAAA,EAAI;AACjB,IAAA,OAAO,GAAA;AAAA,EACT;AACA,EAAA,OAAO,GAAA;AACT;AAOO,MAAM,qBAAA,GAAwB,CAAC,EAAE,KAAA,EAAO,WAAW,KAAA,EAAO,GAAG,WAAU,KAAa;AAzB3F,EAAA,IAAA,EAAA,EAAA,EAAA;AA0BE,EAAA,MAAM,SAAA,GAAA,CAAA,CAAa,EAAA,GAAA,KAAA,CAAM,MAAA,KAAN,IAAA,GAAA,EAAA,GAAgB,IAAI,MAAA,GAAS,CAAA;AAChD,EAAA,MAAM,SAAA,GAAA,CAAA,CAAa,EAAA,GAAA,KAAA,CAAM,MAAA,KAAN,IAAA,GAAA,EAAA,GAAgB,IAAI,MAAA,GAAS,CAAA;AAChD,EAAA,IAAI,WAAA;AAEJ,EAAA,IAAI,KAAA,IAAS,OAAO,KAAA,CAAM,QAAA,KAAa,QAAA,IAAY,CAAC,MAAA,CAAO,KAAA,CAAM,KAAA,CAAM,QAAQ,CAAA,EAAG;AAChF,IAAA,MAAM,WAAW,KAAA,CAAM,QAAA;AACvB,IAAA,MAAM,eAAA,GAAkB,wBAAwB,QAAQ,CAAA;AACxD,IAAA,WAAA,GAAc,EAAE,QAAA,EAAU,QAAA,GAAW,eAAA,EAAgB;AAAA,EACvD;AAEA,EAAA,2BACG,KAAA,EAAA,EAAI,SAAA,EAAsB,OAAe,GAAG,SAAA,EAC3C,+BAAC,KAAA,EAAA,EACE,QAAA,EAAA;AAAA,IAAA,SAAA,oBAAa,GAAA,CAAC,MAAA,EAAA,EAAM,QAAA,EAAA,KAAA,CAAM,MAAA,EAAO,CAAA;AAAA,oBAClC,GAAA,CAAC,MAAA,EAAA,EAAM,QAAA,EAAA,KAAA,CAAM,IAAA,EAAK,CAAA;AAAA,IACjB,6BAAa,GAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,WAAA,EAAc,gBAAM,MAAA,EAAO;AAAA,GAAA,EACxD,CAAA,EACF,CAAA;AAEJ;AAEA,qBAAA,CAAsB,WAAA,GAAc,uBAAA;;;;"}