@semcore/d3-chart 17.0.0-prerelease.27 → 17.0.0-prerelease.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -1
- package/lib/cjs/component/Chart/AbstractChart.js +5 -5
- package/lib/cjs/component/Chart/AbstractChart.js.map +1 -1
- package/lib/cjs/component/Chart/CigaretteChart.js +181 -57
- package/lib/cjs/component/Chart/CigaretteChart.js.map +1 -1
- package/lib/cjs/component/Chart/CigaretteChart.type.js.map +1 -1
- package/lib/es6/component/Chart/AbstractChart.js +5 -5
- package/lib/es6/component/Chart/AbstractChart.js.map +1 -1
- package/lib/es6/component/Chart/CigaretteChart.js +183 -59
- package/lib/es6/component/Chart/CigaretteChart.js.map +1 -1
- package/lib/es6/component/Chart/CigaretteChart.type.js.map +1 -1
- package/lib/esm/component/Chart/AbstractChart.mjs +5 -5
- package/lib/esm/component/Chart/CigaretteChart.mjs +183 -59
- package/lib/esm/utils.mjs +1 -1
- package/lib/types/component/Chart/AbstractChart.d.ts +4 -6
- package/lib/types/component/Chart/CigaretteChart.type.d.ts +5 -4
- package/package.json +13 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CigaretteChart.js","names":["_core","require","_baseComponents","_i18nEnhance","_interopRequireDefault","_resolveColorEnhance","_uniqueID","_divider","_typography","_d3Scale","_react","_","_AbstractChart","_AnimatedClipPath","_intergalacticDynamicLocales","_utils","_Cigarette","wMin","CigaretteChartComponent","AbstractChart","constructor","args","_defineProperty2","default","resolveColor","id","index","props","colorMap","getDefaultDataDefinitions","dataDefinitions","map","dataDef","columns","slice","defaultLegendProps","legendType","w","xScale","invertAxis","asProps","valueScale","categoryScale","yScale","renderChart","data","uid","duration","patterns","plotHeight","plotWidth","onClick","highlightedLine","state","offset","createElement","Fragment","reverse","item","value","checked","interpolateValue","absWidth","Math","abs","max","domain","height","scaleToBand","bandwidth","width","y","x","r","key","dataKey","hide","length","color","direction","hovered","undefined","renderTooltip","_ref","tooltipTitle","tooltipViewType","showPercentValueInTooltip","styles","showTooltip","STooltipChildrenWrapper","Box","HoverRect","Tooltip","hideHoverLine","tooltipProps","_ref4","xIndex","yIndex","showPercentColumn","totalValue","_ref3","find","dataDefItem","children","sstyled","cn","assignProps","Dot","mr","label","Text","percentValue","tooltipValueFormatter","Flex","Title","style","opacity","textAlign","bold","renderTooltipTotalLine","dataItem","showTotalInTooltip","total","mt","Number","isNaN","NOT_A_VALUE","renderHeader","header","render","_ref2","_ref6","SChart","a11yAltTextConfig","_ref5","Plot","dataHints","renderLegend","getLegendAriaLabel","getI18nText","chartType","selectedData","result","Map","forEach","set","range","scaleBand","scaleLinear","showXAxis","showYAxis","showLegend","marginX","marginY","resolveColorEnhance","uniqueIDEnhancement","i18nEnhance","localizedMessages","CigaretteChart","exports","createComponent"],"sources":["../../../../src/component/Chart/CigaretteChart.tsx"],"sourcesContent":["import { Box, Flex } from '@semcore/base-components';\nimport { createComponent, Root, sstyled } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport resolveColorEnhance from '@semcore/core/lib/utils/enhances/resolveColorEnhance';\nimport uniqueIDEnhancement from '@semcore/core/lib/utils/uniqueID';\nimport Divider from '@semcore/divider';\nimport { Text } from '@semcore/typography';\nimport { scaleBand, scaleLinear } from 'd3-scale';\nimport React from 'react';\n\nimport type { CigaretteChartData, CigaretteChartProps, CigaretteChartType } from './CigaretteChart.type';\n// @ts-ignore\nimport { HoverRect, Plot } from '../..';\nimport { AbstractChart, NOT_A_VALUE } from './AbstractChart';\nimport type { ObjectData } from './AbstractChart.type';\n// @ts-ignore\nimport AnimatedClipPath from '../../AnimatedClipPath';\nimport { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';\nimport { interpolateValue, scaleToBand } from '../../utils';\nimport type { LegendItem } from '../ChartLegend/LegendItem/LegendItem.type';\nimport Cigarette from '../Cigarette/Cigarette';\n\nconst wMin = 2;\n\nclass CigaretteChartComponent extends AbstractChart<\n CigaretteChartData,\n CigaretteChartProps,\n typeof CigaretteChartComponent.enhance\n> {\n static displayName = 'Cigarette.Bar';\n\n static defaultProps: any = (props: CigaretteChartProps) => {\n const invertAxis = props.invertAxis ?? true;\n return {\n invertAxis: invertAxis,\n showXAxis: false,\n showYAxis: false,\n showTooltip: true,\n showLegend: false,\n marginX: 0,\n marginY: 0,\n duration: 500,\n plotWidth: !invertAxis && !props.plotWidth ? 44 : props.plotWidth,\n plotHeight: invertAxis && !props.plotHeight ? 28 : props.plotHeight,\n showPercentValueInTooltip: false,\n };\n };\n\n static enhance = [\n resolveColorEnhance(),\n uniqueIDEnhancement(),\n i18nEnhance(localizedMessages),\n ] as const;\n\n protected override plotPadding = 0;\n\n private offset = 0;\n\n protected override resolveColor(id: string, index: number) {\n return this.props.colorMap?.[id] ?? `blue-${5 - index}00`;\n }\n\n protected override getDefaultDataDefinitions(): Array<\n LegendItem & { columns: React.ReactNode[] }\n > {\n const dataDefinitions = super.getDefaultDataDefinitions();\n\n return dataDefinitions.map((dataDef) => {\n dataDef.columns = dataDef.columns.slice(1);\n return dataDef;\n });\n }\n\n protected override defaultLegendProps() {\n return {\n legendType: 'Table' as const,\n w: 'fit-content',\n };\n }\n\n get xScale() {\n const { invertAxis } = this.asProps;\n\n return invertAxis ? this.valueScale : this.categoryScale;\n }\n\n get yScale() {\n const { invertAxis } = this.asProps;\n\n return invertAxis ? this.categoryScale : this.valueScale;\n }\n\n renderChart() {\n const { invertAxis, data, uid, duration, patterns, plotHeight, plotWidth, onClick } =\n this.asProps;\n const { dataDefinitions, highlightedLine } = this.state;\n\n this.offset = 0;\n\n return (\n <>\n {(invertAxis ? dataDefinitions : [...dataDefinitions].reverse()).map((item, index) => {\n const value = data[item.id];\n\n if (!item.checked || value === interpolateValue || value === null) {\n return null;\n }\n\n const absWidth = Math.abs(\n this.valueScale(value) -\n Math.max(this.valueScale(this.valueScale.domain()[0]), this.valueScale(0)),\n );\n const height = scaleToBand(this.categoryScale).bandwidth() - 4;\n const width = value === 0 ? 0 : Math.max(absWidth, wMin * 2) - wMin;\n const y = 2;\n const x = index === 0 ? 0 : this.offset;\n const r = height < 28 ? 2 : 4;\n\n this.offset = this.offset + width + wMin;\n\n return (\n <Cigarette\n key={item.id}\n dataKey={item.id}\n index={index}\n y={invertAxis ? y : x}\n x={invertAxis ? x : y}\n width={invertAxis ? width : height}\n height={invertAxis ? height : width}\n uid={uid}\n hide={!item.checked}\n duration={duration}\n r={index === 0 || index === dataDefinitions.length - 1 ? r : 0}\n color={item.color}\n patterns={patterns}\n direction={invertAxis ? 'horizontal' : 'vertical'}\n onClick={onClick}\n hovered={\n highlightedLine === index ? true : highlightedLine === -1 ? undefined : false\n }\n />\n );\n })}\n\n <AnimatedClipPath\n aria-hidden\n duration={duration}\n id={uid}\n x='0'\n y='0'\n width={invertAxis ? 0 : plotWidth}\n height={invertAxis ? plotHeight : 0}\n />\n </>\n );\n }\n\n renderTooltip(): React.ReactNode {\n const { data, invertAxis, tooltipTitle, tooltipViewType, showPercentValueInTooltip, styles, showTooltip } =\n this.asProps;\n const { dataDefinitions } = this.state;\n const STooltipChildrenWrapper = Root;\n\n if (!showTooltip) {\n return null;\n }\n\n return (\n <HoverRect.Tooltip\n x={invertAxis ? '' : undefined}\n y={invertAxis ? undefined : ''}\n wMin={100}\n hideHoverLine={true}\n >\n {(tooltipProps: any) => {\n const dataKey = invertAxis ? tooltipProps.xIndex : tooltipProps.yIndex;\n const showPercentColumn = showPercentValueInTooltip && this.totalValue(data) !== 0;\n\n if (tooltipViewType === 'single') {\n const item = dataDefinitions.find((dataDefItem) => dataDefItem.id === dataKey);\n if (!item) {\n return null;\n }\n\n return {\n children: sstyled(styles)(\n <STooltipChildrenWrapper render={Box} columnsCount={showPercentColumn ? '3' : '2'} __excludeProps={['data']}>\n <HoverRect.Tooltip.Dot mr={2} color={item.color}>\n {item.label}\n </HoverRect.Tooltip.Dot>\n { showPercentColumn && <Text textAlign='end' color='text-secondary'>{this.percentValue(data, item.id)}</Text> }\n <Text textAlign='end' bold>{this.tooltipValueFormatter(data[item.id])}</Text>\n </STooltipChildrenWrapper>,\n ),\n };\n }\n\n return {\n children: sstyled(styles)(\n <Flex direction='column'>\n {tooltipTitle && (\n <HoverRect.Tooltip.Title>Some tooltip title</HoverRect.Tooltip.Title>\n )}\n\n <STooltipChildrenWrapper render={Box} columnsCount={showPercentColumn ? '3' : '2'} __excludeProps={['data']}>\n {dataDefinitions.map((item) => {\n const style = { opacity: item.id === dataKey ? 1 : 0.3 };\n return (\n item.checked && (\n <React.Fragment key={item.id}>\n <HoverRect.Tooltip.Dot mr={2} color={item.color} style={style}>\n {item.label}\n </HoverRect.Tooltip.Dot>\n { showPercentColumn && <Text textAlign='end' color='text-secondary' style={style}>{this.percentValue(data, item.id)}</Text> }\n <Text textAlign='end' bold style={style}>{this.tooltipValueFormatter(data[item.id])}</Text>\n </React.Fragment>\n )\n );\n })}\n\n {this.renderTooltipTotalLine(data)}\n </STooltipChildrenWrapper>\n </Flex>,\n ),\n };\n }}\n </HoverRect.Tooltip>\n );\n }\n\n protected override renderTooltipTotalLine<D extends ObjectData>(dataItem: D) {\n const { showTotalInTooltip, showPercentValueInTooltip } = this.asProps;\n\n if (!showTotalInTooltip) {\n return null;\n }\n\n const total = this.totalValue(dataItem);\n\n return (\n <>\n <Box mt={2} mr={2}>Total</Box>\n { showPercentValueInTooltip && total !== 0 && <Text mt={2} textAlign='end' color='text-secondary'>{Number.isNaN(total) ? NOT_A_VALUE : '100%'}</Text> }\n <Text mt={2} textAlign='end' bold>{Number.isNaN(total) ? NOT_A_VALUE : total}</Text>\n </>\n );\n }\n\n renderHeader() {\n return this.asProps.header ?? null;\n }\n\n override render() {\n const SChart = Root;\n const { styles, plotWidth, plotHeight, data, patterns, invertAxis, a11yAltTextConfig } =\n this.asProps;\n\n const header = this.renderHeader();\n\n if (invertAxis) {\n return sstyled(styles)(\n <SChart render={Flex} gap={6} direction='column' __excludeProps={['onClick', 'data']}>\n <Flex direction='column'>\n {header}\n <Plot\n data={data}\n scale={[this.xScale, this.yScale]}\n width={plotWidth}\n height={plotHeight}\n dataHints={this.dataHints}\n patterns={patterns}\n a11yAltTextConfig={a11yAltTextConfig}\n >\n {this.renderTooltip()}\n {this.renderChart()}\n </Plot>\n </Flex>\n {this.renderLegend()}\n </SChart>,\n );\n }\n\n return sstyled(styles)(\n <SChart render={Flex} gap={6} __excludeProps={['onClick', 'data']}>\n <Plot\n data={data}\n scale={[this.xScale, this.yScale]}\n width={plotWidth}\n height={plotHeight}\n dataHints={this.dataHints}\n patterns={patterns}\n a11yAltTextConfig={a11yAltTextConfig}\n >\n {this.renderTooltip()}\n {this.renderChart()}\n </Plot>\n <Flex direction='column' gap={2}>\n {header && (\n <>\n <Box>{header}</Box>\n <Divider />\n </>\n )}\n {this.renderLegend()}\n </Flex>\n </SChart>,\n );\n }\n\n protected getLegendAriaLabel(): string {\n return this.asProps.getI18nText('legendForChart', { chartType: 'Cigarette' });\n }\n\n private get selectedData() {\n const { data } = this.asProps;\n const { dataDefinitions } = this.state;\n\n const result = new Map<string, number>();\n\n dataDefinitions.forEach((dataDefItem) => {\n const value = data[dataDefItem.id];\n if (dataDefItem.checked && value !== interpolateValue) {\n result.set(dataDefItem.id, value);\n }\n });\n\n return result;\n }\n\n private get categoryScale() {\n const { plotWidth, plotHeight, invertAxis } = this.asProps;\n\n const range = invertAxis ? [plotHeight, 0] : [0, plotWidth];\n\n return scaleBand<{}>([0], range);\n }\n\n private get valueScale() {\n const { plotWidth, plotHeight, invertAxis } = this.asProps;\n\n let max = 0;\n\n this.selectedData.forEach((value) => {\n max = max + value;\n });\n\n return scaleLinear()\n .range(invertAxis ? [0, plotWidth] : [plotHeight, 0])\n .domain([0, max]);\n }\n}\n\nexport const CigaretteChart: CigaretteChartType = createComponent(CigaretteChartComponent);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"CigaretteChart.js","names":["_core","require","_baseComponents","_i18nEnhance","_interopRequireDefault","_resolveColorEnhance","_rafTrottle","_uniqueID","_divider","_typography","_d3Scale","_react","_","_AbstractChart","_AnimatedClipPath","_intergalacticDynamicLocales","_utils","_Cigarette","DEFAULT_MINIMAL_BAR_WIDTH","DEFAULT_GAP","CigaretteChartComponent","AbstractChart","constructor","props","_defineProperty2","default","React","createRef","trottle","event","plotRef","current","pX","pY","eventToPoint","setState","prevState","state","activeDataDefinitions","dataDefinitions","filter","checked","activePositiveDataDefinitions","data","asProps","id","itemValue","resolveColor","index","colorMap","getDefaultDataDefinitions","map","dataDef","columns","slice","defaultLegendProps","legendType","w","totalValue","reduce","acc","computeCigaretteItems","plotWidth","plotHeight","invertAxis","minimalBarWidth","reverse","count","length","totalGapWidth","Math","max","availableSpace","dataDefinitionsItemSize","result","dd","value","dataWidth","visualWidth","isMinVisible","smallItems","r","extraNeeded","smallItem","donors","donorCapacity","s","d","donor","available","share","taken","xScale","scaleLinear","yScale","renderChart","uid","duration","patterns","onClick","highlightedLine","offset","items","createElement","Fragment","item","interpolateValue","height","width","y","x","key","dataKey","hide","color","direction","hovered","undefined","renderTooltip","_ref","tooltipTitle","tooltipViewType","showPercentValueInTooltip","styles","showTooltip","STooltipChildrenWrapper","Box","HoverRect","Tooltip","wMin","hideHoverLine","xIndex","visualScale","yIndex","tooltipProps","_ref4","showPercentColumn","_ref3","find","dataDefItem","children","sstyled","cn","assignProps","Dot","mr","label","Text","percentValue","tooltipValueFormatter","Flex","Title","style","opacity","textAlign","bold","renderTooltipTotalLine","dataItem","showTotalInTooltip","total","mt","Number","isNaN","NOT_A_VALUE","renderHeader","header","render","_ref2","_ref6","SChart","a11yAltTextConfig","_ref5","Plot","dataHints","onPlotMouseMove","onPlotMouseLeave","renderLegend","getLegendAriaLabel","getI18nText","chartType","cigaretteItems","range","domain","push","lastAddedDomain","scaleThreshold","showXAxis","showYAxis","showLegend","marginX","marginY","resolveColorEnhance","uniqueIDEnhancement","i18nEnhance","localizedMessages","CigaretteChart","exports","createComponent"],"sources":["../../../../src/component/Chart/CigaretteChart.tsx"],"sourcesContent":["import { Box, Flex } from '@semcore/base-components';\nimport { createComponent, Root, sstyled } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport resolveColorEnhance from '@semcore/core/lib/utils/enhances/resolveColorEnhance';\nimport trottle from '@semcore/core/lib/utils/rafTrottle';\nimport uniqueIDEnhancement from '@semcore/core/lib/utils/uniqueID';\nimport Divider from '@semcore/divider';\nimport { Text } from '@semcore/typography';\nimport { scaleThreshold, scaleLinear, scaleBand } from 'd3-scale';\nimport React from 'react';\n\nimport type { CigaretteChartData, CigaretteChartDataKey, CigaretteChartProps, CigaretteChartType } from './CigaretteChart.type';\n// @ts-ignore\nimport { HoverRect, Plot } from '../..';\nimport type { ChartState } from './AbstractChart';\nimport { AbstractChart, NOT_A_VALUE } from './AbstractChart';\nimport type { ObjectData } from './AbstractChart.type';\n// @ts-ignore\nimport AnimatedClipPath from '../../AnimatedClipPath';\nimport { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';\nimport { eventToPoint, interpolateValue } from '../../utils';\nimport type { LegendItem } from '../ChartLegend/LegendItem/LegendItem.type';\nimport Cigarette from '../Cigarette/Cigarette';\n\nconst DEFAULT_MINIMAL_BAR_WIDTH = 2;\nconst DEFAULT_GAP = 2;\n\ntype ScaleThresholdConfig = { range: Array<CigaretteChartDataKey>; domain: Array<number> };\n\ntype CigaretteChartState = ChartState & {\n pX: number | null;\n pY: number | null;\n};\n\nclass CigaretteChartComponent extends AbstractChart<\n CigaretteChartData,\n CigaretteChartProps,\n typeof CigaretteChartComponent.enhance,\n typeof CigaretteChartComponent.defaultProps,\n CigaretteChartState\n> {\n static displayName = 'Cigarette.Bar';\n\n static defaultProps: any = (props: CigaretteChartProps) => {\n const invertAxis = props.invertAxis ?? true;\n return {\n invertAxis: invertAxis,\n showXAxis: false,\n showYAxis: false,\n showTooltip: true,\n showLegend: false,\n marginX: 0,\n marginY: 0,\n duration: 500,\n plotWidth: !invertAxis && !props.plotWidth ? 44 : props.plotWidth,\n plotHeight: invertAxis && !props.plotHeight ? 28 : props.plotHeight,\n showPercentValueInTooltip: false,\n minimalBarWidth: DEFAULT_MINIMAL_BAR_WIDTH,\n };\n };\n\n static enhance = [\n resolveColorEnhance(),\n uniqueIDEnhancement(),\n i18nEnhance(localizedMessages),\n ] as const;\n\n constructor(props: CigaretteChartProps) {\n super(props);\n\n this.state = {\n ...this.state,\n pX: null,\n pY: null,\n };\n }\n\n private plotRef = React.createRef<SVGElement>();\n\n protected override plotPadding = 0;\n\n private offset = 0;\n\n private get activeDataDefinitions() {\n const { dataDefinitions } = this.state;\n\n return dataDefinitions.filter(({ checked }) => checked);\n }\n\n private get activePositiveDataDefinitions() {\n const { data } = this.asProps;\n\n return this.activeDataDefinitions.filter(({ id }) => {\n const itemValue = data[id];\n\n return typeof itemValue === 'number' && itemValue > 0;\n });\n }\n\n protected override resolveColor(id: string, index: number) {\n return this.props.colorMap?.[id] ?? `blue-${5 - index}00`;\n }\n\n protected override getDefaultDataDefinitions(): Array<\n LegendItem & { columns: React.ReactNode[] }\n > {\n const dataDefinitions = super.getDefaultDataDefinitions();\n\n return dataDefinitions.map((dataDef) => {\n dataDef.columns = dataDef.columns.slice(1);\n return dataDef;\n });\n }\n\n protected override defaultLegendProps() {\n return {\n legendType: 'Table' as const,\n w: 'fit-content',\n };\n }\n\n private onPlotMouseMove = trottle((event: React.MouseEvent<HTMLElement>) => {\n if (!this.plotRef.current) return;\n\n const [pX, pY] = eventToPoint(event, this.plotRef.current);\n\n this.setState((prevState) => ({ pX, pY }));\n });\n\n private onPlotMouseLeave = trottle(() => {\n this.setState((prevState) => ({ pX: null, pY: null }));\n });\n\n protected override totalValue() {\n const { data } = this.asProps;\n\n return this.activeDataDefinitions.reduce((acc, { id }) => {\n const itemValue = data[id];\n\n if (typeof itemValue === 'number') {\n acc += itemValue;\n }\n\n return acc;\n }, 0);\n }\n\n private computeCigaretteItems() {\n const { plotWidth, plotHeight, data, invertAxis, minimalBarWidth } = this.asProps;\n\n const dataDefinitions = invertAxis\n ? this.activeDataDefinitions\n : [...this.activeDataDefinitions].reverse();\n\n const count = this.activePositiveDataDefinitions.length;\n const totalGapWidth = DEFAULT_GAP * Math.max(0, count - 1);\n const availableSpace = Math.max(0, (invertAxis ? plotWidth : plotHeight) - totalGapWidth);\n\n const totalValue = this.totalValue();\n\n const dataDefinitionsItemSize = dataDefinitions.map(({ id }) => {\n if (totalValue === 0) {\n return 0;\n }\n\n const itemValue = data[id];\n\n if (typeof itemValue !== 'number') return 0;\n\n return (itemValue / totalValue) * availableSpace;\n });\n\n const result = dataDefinitions.map((dd, index) => ({\n ...dd,\n value: data[dd.id],\n dataWidth: dataDefinitionsItemSize[index],\n visualWidth: dataDefinitionsItemSize[index],\n isMinVisible: false,\n }));\n\n const smallItems = result.filter((r) => {\n const { value, dataWidth } = r;\n\n if (typeof value !== 'number') return false;\n\n return value > 0 && dataWidth < minimalBarWidth;\n });\n\n if (smallItems.length === 0) return result;\n\n let extraNeeded = 0;\n\n for (const smallItem of smallItems) {\n extraNeeded += minimalBarWidth - smallItem.dataWidth;\n smallItem.visualWidth = minimalBarWidth;\n smallItem.isMinVisible = true;\n }\n\n const donors = result.filter((r) => !r.isMinVisible && r.dataWidth > minimalBarWidth);\n const donorCapacity = donors.reduce(\n (s, d) => s + (d.dataWidth - minimalBarWidth),\n 0,\n );\n\n for (const donor of donors) {\n const available = donor.dataWidth - minimalBarWidth;\n const share = available / donorCapacity;\n const taken = share * extraNeeded;\n donor.visualWidth = donor.dataWidth - taken;\n }\n\n return result;\n };\n\n get xScale() {\n const { plotWidth } = this.asProps;\n\n return scaleLinear([0, plotWidth]);\n }\n\n get yScale() {\n const { plotHeight } = this.asProps;\n\n return scaleLinear([plotHeight, 0]);\n }\n\n renderChart() {\n const { invertAxis, data, uid, duration, patterns, plotHeight, plotWidth, onClick } =\n this.asProps;\n const { dataDefinitions, highlightedLine } = this.state;\n\n this.offset = 0;\n\n const items = this.computeCigaretteItems();\n\n return (\n <>\n {items.map((item, index) => {\n const { visualWidth, id } = item;\n const value = data[id];\n\n if (value === interpolateValue || value === null) {\n return null;\n }\n\n const height = invertAxis ? plotHeight - DEFAULT_GAP * 2 : plotWidth - DEFAULT_GAP * 2;\n const width = visualWidth;\n const y = DEFAULT_GAP;\n const x = this.offset;\n const r = height < 28 ? 2 : 4;\n\n this.offset += visualWidth;\n\n if (index < items.length - 1) {\n this.offset += DEFAULT_GAP;\n }\n\n return (\n <Cigarette\n key={item.id}\n dataKey={item.id}\n index={index}\n y={invertAxis ? y : x}\n x={invertAxis ? x : y}\n width={invertAxis ? width : height}\n height={invertAxis ? height : width}\n uid={uid}\n hide={!item.checked}\n duration={duration}\n r={index === 0 || index === dataDefinitions.length - 1 ? r : 0}\n color={item.color}\n patterns={patterns}\n direction={invertAxis ? 'horizontal' : 'vertical'}\n onClick={onClick}\n hovered={\n highlightedLine === index ? true : highlightedLine === -1 ? undefined : false\n }\n />\n );\n })}\n\n <AnimatedClipPath\n aria-hidden\n duration={duration}\n id={uid}\n x='0'\n y='0'\n width={invertAxis ? 0 : plotWidth}\n height={invertAxis ? plotHeight : 0}\n />\n </>\n );\n }\n\n renderTooltip(): React.ReactNode {\n const { data, invertAxis, tooltipTitle, tooltipViewType, showPercentValueInTooltip, styles, showTooltip } =\n this.asProps;\n const { dataDefinitions, pX, pY } = this.state;\n const STooltipChildrenWrapper = Root;\n\n if (!showTooltip) {\n return null;\n }\n\n return (\n <HoverRect.Tooltip\n x={invertAxis ? '' : undefined}\n y={invertAxis ? undefined : ''}\n wMin={100}\n hideHoverLine={true}\n xIndex={pX !== null ? this.visualScale(pX) : undefined}\n yIndex={pY !== null ? this.visualScale(pY) : undefined}\n >\n {(tooltipProps: any) => {\n const dataKey = invertAxis ? tooltipProps.xIndex : tooltipProps.yIndex;\n const showPercentColumn = showPercentValueInTooltip && this.totalValue() !== 0;\n\n if (tooltipViewType === 'single') {\n const item = dataDefinitions.find((dataDefItem) => dataDefItem.id === dataKey);\n if (!item) {\n return {\n children: null,\n };\n }\n\n return {\n children: sstyled(styles)(\n <STooltipChildrenWrapper render={Box} columnsCount={showPercentColumn ? '3' : '2'} __excludeProps={['data']}>\n <HoverRect.Tooltip.Dot mr={2} color={item.color}>\n {item.label}\n </HoverRect.Tooltip.Dot>\n { showPercentColumn && <Text textAlign='end' color='text-secondary'>{this.percentValue(data, item.id)}</Text> }\n <Text textAlign='end' bold>{this.tooltipValueFormatter(data[item.id])}</Text>\n </STooltipChildrenWrapper>,\n ),\n };\n }\n\n return {\n children: sstyled(styles)(\n <Flex direction='column'>\n {tooltipTitle && (\n <HoverRect.Tooltip.Title>Some tooltip title</HoverRect.Tooltip.Title>\n )}\n\n <STooltipChildrenWrapper render={Box} columnsCount={showPercentColumn ? '3' : '2'} __excludeProps={['data']}>\n {dataDefinitions.map((item) => {\n const style = { opacity: item.id === dataKey ? 1 : 0.3 };\n return (\n item.checked && (\n <React.Fragment key={item.id}>\n <HoverRect.Tooltip.Dot mr={2} color={item.color} style={style}>\n {item.label}\n </HoverRect.Tooltip.Dot>\n { showPercentColumn && <Text textAlign='end' color='text-secondary' style={style}>{this.percentValue(data, item.id)}</Text> }\n <Text textAlign='end' bold style={style}>{this.tooltipValueFormatter(data[item.id])}</Text>\n </React.Fragment>\n )\n );\n })}\n\n {this.renderTooltipTotalLine(data)}\n </STooltipChildrenWrapper>\n </Flex>,\n ),\n };\n }}\n </HoverRect.Tooltip>\n );\n }\n\n protected override renderTooltipTotalLine<D extends ObjectData>(dataItem: D) {\n const { showTotalInTooltip, showPercentValueInTooltip } = this.asProps;\n\n if (!showTotalInTooltip) {\n return null;\n }\n\n const total = this.totalValue();\n\n return (\n <>\n <Box mt={2} mr={2}>Total</Box>\n { showPercentValueInTooltip && total !== 0 && <Text mt={2} textAlign='end' color='text-secondary'>{Number.isNaN(total) ? NOT_A_VALUE : '100%'}</Text> }\n <Text mt={2} textAlign='end' bold>{Number.isNaN(total) ? NOT_A_VALUE : total}</Text>\n </>\n );\n }\n\n renderHeader() {\n return this.asProps.header ?? null;\n }\n\n override render() {\n const SChart = Root;\n const { styles, plotWidth, plotHeight, data, patterns, invertAxis, a11yAltTextConfig } = this.asProps;\n\n const header = this.renderHeader();\n\n if (invertAxis) {\n return sstyled(styles)(\n <SChart render={Flex} gap={6} direction='column' __excludeProps={['onClick', 'data']}>\n <Flex direction='column'>\n {header}\n <Plot\n ref={this.plotRef}\n data={data}\n scale={[this.xScale, this.yScale]}\n width={plotWidth}\n height={plotHeight}\n dataHints={this.dataHints}\n patterns={patterns}\n a11yAltTextConfig={a11yAltTextConfig}\n onMouseMove={this.onPlotMouseMove}\n onMouseLeave={this.onPlotMouseLeave}\n >\n {this.renderTooltip()}\n {this.renderChart()}\n </Plot>\n </Flex>\n {this.renderLegend()}\n </SChart>,\n );\n }\n\n return sstyled(styles)(\n <SChart render={Flex} gap={6} __excludeProps={['onClick', 'data']}>\n <Plot\n ref={this.plotRef}\n data={data}\n scale={[this.xScale, this.yScale]}\n width={plotWidth}\n height={plotHeight}\n dataHints={this.dataHints}\n patterns={patterns}\n a11yAltTextConfig={a11yAltTextConfig}\n onMouseMove={this.onPlotMouseMove}\n onMouseLeave={this.onPlotMouseLeave}\n >\n {this.renderTooltip()}\n {this.renderChart()}\n </Plot>\n <Flex direction='column' gap={2}>\n {header && (\n <>\n <Box>{header}</Box>\n <Divider />\n </>\n )}\n {this.renderLegend()}\n </Flex>\n </SChart>,\n );\n }\n\n protected getLegendAriaLabel(): string {\n return this.asProps.getI18nText('legendForChart', { chartType: 'Cigarette' });\n }\n\n private get visualScale() {\n const cigaretteItems = this.computeCigaretteItems();\n\n const { range, domain } = cigaretteItems.reduce<ScaleThresholdConfig>((acc, { id, visualWidth }, index) => {\n const { range, domain } = acc;\n\n if (visualWidth) {\n range.push(id);\n\n if (domain.length === 0) {\n domain.push(visualWidth + DEFAULT_GAP);\n\n return acc;\n }\n\n if (index !== cigaretteItems.length - 1) {\n const lastAddedDomain = domain[domain.length - 1];\n domain.push(lastAddedDomain + visualWidth + DEFAULT_GAP);\n }\n }\n\n return acc;\n }, { range: [], domain: [] });\n\n return scaleThreshold(domain, range);\n }\n}\n\nexport const CigaretteChart: CigaretteChartType = createComponent(CigaretteChartComponent);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CigaretteChart.type.js","names":[],"sources":["../../../../src/component/Chart/CigaretteChart.type.ts"],"sourcesContent":["import type { Intergalactic } from '@semcore/core';\nimport type React from 'react';\n\nimport type { BaseChartProps } from './AbstractChart.type';\nimport type { interpolateValue } from '../../utils';\n\
|
|
1
|
+
{"version":3,"file":"CigaretteChart.type.js","names":[],"sources":["../../../../src/component/Chart/CigaretteChart.type.ts"],"sourcesContent":["import type { Intergalactic } from '@semcore/core';\nimport type React from 'react';\n\nimport type { BaseChartProps } from './AbstractChart.type';\nimport type { interpolateValue } from '../../utils';\n\nexport type CigaretteChartDataKey = string;\n\nexport type CigaretteChartData = Record<CigaretteChartDataKey, number | typeof interpolateValue>;\n\nexport type CigaretteChartProps = Intergalactic.InternalTypings.EfficientOmit<\n BaseChartProps<CigaretteChartData>,\n 'xScale' | 'yScale'\n> & {\n /** Title text displayed in the tooltip */\n tooltipTitle?: string;\n /** Controls whether the tooltip shows all data or single item data */\n tooltipViewType?: 'all' | 'single';\n /** Show percent value in tooltip */\n showPercentValueInTooltip?: boolean;\n /** Header content for the chart */\n header?: React.ReactNode;\n /** Animation duration in milliseconds */\n duration?: number;\n /** Click handler that receives the data key and event */\n onClick?: (key: CigaretteChartDataKey, event: React.SyntheticEvent) => void;\n /** Minimal bar width in pixels. Default is `2`. */\n minimalBarWidth?: number;\n};\n\nexport type CigaretteChartType = Intergalactic.Component<'div', CigaretteChartProps>;\n"],"mappings":"","ignoreList":[]}
|
|
@@ -33,11 +33,6 @@ export class AbstractChart extends Component {
|
|
|
33
33
|
*/
|
|
34
34
|
_defineProperty(this, "plotPadding", 6);
|
|
35
35
|
_defineProperty(this, "dataHints", makeDataHintsContainer());
|
|
36
|
-
_defineProperty(this, "state", {
|
|
37
|
-
dataDefinitions: this.getDefaultDataDefinitions(),
|
|
38
|
-
highlightedLine: -1,
|
|
39
|
-
withTrend: false
|
|
40
|
-
});
|
|
41
36
|
this.setHighlightedLine = this.setHighlightedLine.bind(this);
|
|
42
37
|
this.handleChangeVisible = this.handleChangeVisible.bind(this);
|
|
43
38
|
this.handleMouseEnter = this.handleMouseEnter.bind(this);
|
|
@@ -45,6 +40,11 @@ export class AbstractChart extends Component {
|
|
|
45
40
|
this.resolveColor = this.resolveColor.bind(this);
|
|
46
41
|
this.tooltipValueFormatter = this.tooltipValueFormatter.bind(this);
|
|
47
42
|
this.handleWithTrendChange = this.handleWithTrendChange.bind(this);
|
|
43
|
+
this.state = {
|
|
44
|
+
dataDefinitions: this.getDefaultDataDefinitions(),
|
|
45
|
+
highlightedLine: -1,
|
|
46
|
+
withTrend: false
|
|
47
|
+
};
|
|
48
48
|
}
|
|
49
49
|
componentDidUpdate(prevProps) {
|
|
50
50
|
if (prevProps.data !== this.props.data || prevProps.legendProps !== this.props.legendProps) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractChart.js","names":["Flex","Box","Component","Root","sstyled","extractAriaProps","callAllEventHandlers","Text","React","Fragment","Plot","XAxis","YAxis","makeDataHintsContainer","style","_sstyled","insert","interpolateValue","ChartLegend","ChartLegendTable","NOT_A_VALUE","AbstractChart","constructor","props","_defineProperty","dataDefinitions","getDefaultDataDefinitions","highlightedLine","withTrend","setHighlightedLine","bind","handleChangeVisible","handleMouseEnter","handleMouseLeave","resolveColor","tooltipValueFormatter","handleWithTrendChange","componentDidUpdate","prevProps","data","legendProps","setState","dataKeys","map","key","index","legendData","legendMap","dataDefinition","id","label","icon","undefined","checked","defaultChecked","color","columns","additionalInfo","count","Array","isArray","value","dataValue","Map","get","Number","total","Object","values","reduce","sum","i","percent","toFixed","createElement","use","groupKey","keys","filter","xTicks","invertAxis","xTicksCount","yTicksCount","asProps","scale","xScale","ticks","yTicks","yScale","flatValues","result","item","add","entries","forEach","Set","maxStackedValue","max","val","barSum","Date","isNaN","getMilliseconds","totalValue","state","allNotAValue","legendItem","NaN","percentValue","Math","round","getValueScale","min","avg","log10","valueScale","isVisible","prevState","findIndex","line","colorMap","toDateString","toString","defaultLegendProps","legendType","renderLegend","direction","showLegend","patterns","length","lProps","commonLegendProps","dataHints","size","shape","w","h","disableSelectItems","onChangeVisibleItem","disableHoverItems","onMouseEnterItem","onMouseLeaveItem","getLegendAriaLabel","flexLegendProps","trendLabel","trendIsVisible","onTrendIsVisibleChange","renderAxis","showXAxis","showYAxis","axisXValueFormatter","axisYValueFormatter","multilineXTicks","multilineYTicks","childrenX","children","childrenY","Ticks","multiline","Grid","getTooltipChildren","options","_ref","_ref3","STooltipChildrenWrapper","Tooltip","dataItem","styles","title","cn","Title","_assignProps","Dot","mr","textAlign","bold","renderTooltipTotalLine","showTotalInTooltip","mt","render","_ref2","_ref4","SChart","plotWidth","plotHeight","a11yAltTextConfig","duration","eventEmitter","showTooltip","extractedAriaProps","_assignProps2","renderTooltip","renderChart"],"sources":["../../../../src/component/Chart/AbstractChart.tsx"],"sourcesContent":["import { Flex, Box } from '@semcore/base-components';\nimport { Component, Root, sstyled } from '@semcore/core';\nimport { extractAriaProps } from '@semcore/core/lib/utils/ariaProps';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\nimport { Text } from '@semcore/typography';\nimport type { ScaleBand, ScaleLinear, ScaleTime } from 'd3-scale';\nimport React, { Fragment } from 'react';\n\nimport type { BaseChartProps, BaseLegendProps, ListData, ObjectData } from './AbstractChart.type';\n// @ts-ignore\nimport type { HoverLine, HoverRect } from '../..';\n// @ts-ignore\nimport { Plot, XAxis, YAxis } from '../..';\nimport { makeDataHintsContainer } from '../../a11y/hints';\nimport style from '../../style/abstract-chart.shadow.css';\nimport { interpolateValue } from '../../utils';\nimport ChartLegend, { ChartLegendTable } from '../ChartLegend';\nimport type { LegendFlexProps } from '../ChartLegend/LegendFlex/LegendFlex.type';\nimport type { LegendItem } from '../ChartLegend/LegendItem/LegendItem.type';\nimport type { LegendTableProps } from '../ChartLegend/LegendTable/LegendTable.type';\n\ntype ChartState = {\n dataDefinitions: Array<LegendItem & { columns: React.ReactNode[] }>;\n highlightedLine: number;\n withTrend: boolean;\n};\n\nexport const NOT_A_VALUE = 'n/a';\n\nexport abstract class AbstractChart<\n D extends ListData | ObjectData,\n T extends BaseChartProps<D>,\n E extends readonly ((...args: any[]) => any)[] = [],\n> extends Component<T, E, Readonly<{}>, {}, ChartState> {\n public static style = style;\n public static defaultProps: Partial<BaseChartProps<any>> = {\n direction: 'column',\n showXAxis: true,\n showYAxis: true,\n showTooltip: true,\n };\n\n /**\n * Padding from the end's of chart to the container (except axis sides)\n */\n protected plotPadding = 6;\n\n protected dataHints = makeDataHintsContainer();\n\n public state: ChartState = {\n dataDefinitions: this.getDefaultDataDefinitions(),\n highlightedLine: -1,\n withTrend: false,\n };\n\n constructor(props: T) {\n super(props);\n\n this.setHighlightedLine = this.setHighlightedLine.bind(this);\n this.handleChangeVisible = this.handleChangeVisible.bind(this);\n this.handleMouseEnter = this.handleMouseEnter.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.resolveColor = this.resolveColor.bind(this);\n this.tooltipValueFormatter = this.tooltipValueFormatter.bind(this);\n this.handleWithTrendChange = this.handleWithTrendChange.bind(this);\n }\n\n public componentDidUpdate(prevProps: T) {\n if (prevProps.data !== this.props.data || prevProps.legendProps !== this.props.legendProps) {\n this.setState({ dataDefinitions: this.getDefaultDataDefinitions() });\n }\n }\n\n protected getDefaultDataDefinitions(): Array<LegendItem & { columns: React.ReactNode[] }> {\n const { data, legendProps } = this.props;\n\n return this.dataKeys.map((key, index) => {\n const legendData = legendProps?.legendMap?.[key];\n\n const dataDefinition: LegendItem & { columns: React.ReactNode[] } = {\n id: key,\n label: legendData?.label ?? key,\n icon: legendData?.icon ?? undefined,\n checked: legendData?.defaultChecked ?? true,\n color: this.resolveColor(key, index),\n columns: [],\n };\n\n if (legendData?.additionalInfo || legendData?.count) {\n dataDefinition.additionalInfo = legendData.additionalInfo\n ? { label: legendData.additionalInfo }\n : legendData.count\n ? { count: legendData.count }\n : undefined;\n }\n\n if (legendData && 'columns' in legendData) {\n dataDefinition.columns = legendData.columns || [];\n } else if (!Array.isArray(data)) {\n let value: number | undefined = undefined;\n let dataValue = data[key];\n\n if (data instanceof Map) {\n dataValue = data.get(key);\n }\n\n if (dataValue !== interpolateValue) {\n value = Number(dataValue);\n }\n\n const total = Object.values(data).reduce<number>((sum, i) => {\n if (i !== interpolateValue) {\n return sum + Number(i);\n }\n\n return sum;\n }, 0);\n const percent = value !== undefined ? ((value / total) * 100).toFixed(2) : undefined;\n\n dataDefinition.columns = [\n <Text key={`${key}_percent`} use='secondary'>\n {percent !== undefined ? `${percent}%` : ''}\n </Text>,\n <Text key={`${key}_value`} use={value ? 'primary' : 'secondary'}>\n {value ?? NOT_A_VALUE}\n </Text>,\n ];\n }\n\n return dataDefinition;\n });\n }\n\n protected abstract get xScale(): ScaleBand<any> | ScaleLinear<any, any> | ScaleTime<any, any>;\n protected abstract get yScale(): ScaleBand<any> | ScaleLinear<any, any> | ScaleTime<any, any>;\n\n protected abstract getLegendAriaLabel(): string;\n protected abstract renderChart(): React.ReactNode;\n protected abstract renderTooltip(): React.ReactNode;\n\n protected get dataKeys(): string[] {\n const { data, groupKey } = this.props;\n\n let dataKeys: string[];\n\n if (Array.isArray(data) && groupKey) {\n dataKeys = Object.keys(data[0]).filter((key) => key !== groupKey);\n } else {\n dataKeys = Object.keys(data);\n }\n\n return dataKeys;\n }\n\n protected get xTicks(): number[] | Date[] | undefined {\n const { data, invertAxis, xTicksCount, yTicksCount } = this.asProps;\n\n const scale = this.xScale;\n\n if (Array.isArray(data) && 'ticks' in scale) {\n if (invertAxis && yTicksCount) {\n return scale.ticks(yTicksCount);\n } else if (xTicksCount) {\n return scale.ticks(xTicksCount);\n }\n\n return undefined;\n }\n\n return undefined;\n }\n\n protected get yTicks(): number[] | Date[] | undefined {\n const { data, invertAxis, xTicksCount, yTicksCount } = this.asProps;\n\n const scale = this.yScale;\n\n if (Array.isArray(data) && 'ticks' in scale) {\n if (invertAxis && xTicksCount) {\n return scale.ticks(xTicksCount);\n } else if (yTicksCount) {\n return scale.ticks(yTicksCount);\n }\n\n return undefined;\n }\n\n return undefined;\n }\n\n protected get flatValues(): Set<number> {\n const { data, groupKey } = this.asProps;\n const values: any[] = Array.isArray(data) ? data : Object.values(data);\n\n const flatValues = values.reduce<Set<number>>((result, item) => {\n if (!groupKey && typeof item === 'number') {\n result.add(item);\n } else {\n Object.entries(item).forEach(([key, value]) => {\n if (key !== groupKey && typeof value === 'number') {\n result.add(value);\n }\n });\n }\n\n return result;\n }, new Set());\n\n return flatValues;\n }\n\n protected get maxStackedValue(): number {\n const { data, groupKey } = this.asProps;\n\n if (!Array.isArray(data)) {\n const max = Object.values(data).reduce<number>((sum, val) => {\n if (typeof val === 'number') {\n sum = sum + val;\n }\n\n return sum;\n }, 0);\n\n return max;\n }\n\n const max = data.reduce((max, item) => {\n const barSum = Object.entries(item).reduce<number>((sum, [key, val]) => {\n if (key === groupKey) {\n return sum;\n }\n\n if (typeof val === 'number') {\n return sum + val;\n }\n\n if (val instanceof Date && !Number.isNaN(val.getMilliseconds())) {\n return sum + val.getMilliseconds();\n }\n\n return sum;\n }, 0);\n\n if (barSum > max) {\n max = barSum;\n }\n\n return max;\n }, 0);\n\n return max;\n }\n\n protected totalValue(data: ObjectData): number {\n const { dataDefinitions } = this.state;\n\n let allNotAValue = true;\n\n const total = dataDefinitions.reduce((sum, legendItem) => {\n const item = data[legendItem.id];\n\n if (item === null) {\n allNotAValue = false;\n return sum;\n }\n\n if (typeof item === 'number') {\n allNotAValue = false;\n return sum + item;\n }\n\n if (item instanceof Date && !Number.isNaN(item.getMilliseconds())) {\n allNotAValue = false;\n return sum + item.getMilliseconds();\n }\n\n return sum;\n }, 0);\n\n if (allNotAValue) {\n return Number.NaN;\n }\n\n return total;\n }\n\n protected percentValue(data: ObjectData, key: string): string {\n const total = this.totalValue(data);\n\n const value = data[key];\n\n if (typeof value === 'number' && total !== 0) {\n const percent = Math.round((100 * value) / total);\n\n return `${percent}%`;\n }\n\n if (value === null) {\n return `0%`;\n }\n\n return NOT_A_VALUE;\n }\n\n protected getValueScale(values: number[]): number {\n const max = Math.max(...values);\n const min = Math.min(...values);\n\n const avg = (max + min) / 2;\n const count = Math.round(Math.log10(avg));\n\n const valueScale = 100 / 10 ** count;\n\n return valueScale;\n }\n\n protected setHighlightedLine(index: number) {\n this.setState({ highlightedLine: index });\n }\n\n protected handleChangeVisible(id: string, isVisible: boolean) {\n this.setState((prevState) => {\n const dataDefinitions = prevState.dataDefinitions.map((item) => {\n if (item.id === id) {\n item.checked = isVisible;\n }\n\n return item;\n });\n\n return { dataDefinitions };\n });\n }\n\n protected handleWithTrendChange(isVisible: boolean) {\n this.setState({ withTrend: isVisible });\n }\n\n protected handleMouseEnter(id: string) {\n this.setHighlightedLine(this.state.dataDefinitions.findIndex((line) => line.id === id));\n }\n\n protected handleMouseLeave() {\n this.setHighlightedLine(-1);\n }\n\n protected resolveColor(id: string, index: number) {\n return this.props.colorMap?.[id] ?? `chart-palette-order-${index + 1}`;\n }\n\n protected tooltipValueFormatter(\n value?: string | number | typeof interpolateValue | Date,\n ): string {\n const { tooltipValueFormatter } = this.asProps;\n\n if (tooltipValueFormatter) {\n return tooltipValueFormatter(value);\n }\n\n if (value === undefined || value === interpolateValue) {\n return NOT_A_VALUE;\n }\n\n if (value === null) {\n return '0';\n }\n\n if (value instanceof Date) {\n return value.toDateString();\n }\n\n return value.toString();\n }\n\n protected defaultLegendProps(): Partial<BaseLegendProps> {\n return {\n legendType: 'Flex',\n };\n }\n\n protected renderLegend() {\n const { legendProps, direction, showLegend, patterns } = this.asProps;\n\n if (\n // we hide Legend for one item on chart except not manually set to show.\n showLegend === undefined && this.dataKeys.length === 1 ||\n showLegend === false\n ) {\n return null;\n }\n\n const { dataDefinitions, withTrend } = this.state;\n const lProps = {\n ...this.defaultLegendProps(),\n ...legendProps,\n };\n\n const commonLegendProps: LegendFlexProps | LegendTableProps = {\n 'dataHints': this.dataHints,\n 'items': dataDefinitions,\n 'size': lProps.size,\n 'shape': lProps.shape,\n 'w': lProps.w,\n 'h': lProps.h,\n patterns,\n 'direction':\n lProps.direction ?? (direction === 'row' || direction === 'row-reverse' ? 'column' : 'row'),\n 'onChangeVisibleItem': lProps.disableSelectItems\n ? undefined\n : callAllEventHandlers(lProps.onChangeVisibleItem, this.handleChangeVisible),\n 'onMouseEnterItem': lProps.disableHoverItems\n ? undefined\n : callAllEventHandlers(lProps.onMouseEnterItem, this.handleMouseEnter),\n 'onMouseLeaveItem': lProps.disableHoverItems\n ? undefined\n : callAllEventHandlers(lProps.onMouseLeaveItem, this.handleMouseLeave),\n 'aria-label': this.getLegendAriaLabel(),\n };\n\n if (lProps.legendType === 'Table') {\n return <ChartLegendTable {...(commonLegendProps as LegendTableProps)} />;\n }\n\n if ('withTrend' in lProps) {\n const flexLegendProps = {\n ...commonLegendProps,\n withTrend: true,\n trendLabel: lProps.trendLabel,\n trendIsVisible: withTrend,\n onTrendIsVisibleChange: this.handleWithTrendChange,\n };\n\n return <ChartLegend {...(flexLegendProps as LegendFlexProps)} />;\n }\n\n return <ChartLegend {...(commonLegendProps as LegendFlexProps)} />;\n }\n\n protected renderAxis(): React.ReactNode {\n const {\n invertAxis,\n showXAxis,\n showYAxis,\n data,\n axisXValueFormatter,\n axisYValueFormatter,\n multilineXTicks,\n multilineYTicks,\n } = this.asProps;\n\n if (!Array.isArray(data)) {\n return null;\n }\n\n const xTicks = this.xTicks;\n const yTicks = this.yTicks;\n\n const childrenX = axisXValueFormatter\n ? ({ value }: any) => ({ children: axisXValueFormatter(value) })\n : undefined;\n const childrenY = axisYValueFormatter\n ? ({ value }: any) => ({ children: axisYValueFormatter(value) })\n : undefined;\n\n return (\n <>\n {showYAxis && (\n <YAxis>\n {yTicks\n ? (\n <YAxis.Ticks multiline={multilineYTicks} ticks={yTicks}>{childrenY}</YAxis.Ticks>\n )\n : (\n <YAxis.Ticks multiline={multilineYTicks}>{childrenY}</YAxis.Ticks>\n )}\n {invertAxis !== true && (yTicks ? <YAxis.Grid ticks={yTicks} /> : <YAxis.Grid />)}\n </YAxis>\n )}\n\n {showXAxis && (\n <XAxis>\n {xTicks\n ? (\n <XAxis.Ticks multiline={multilineXTicks} ticks={xTicks}>{childrenX}</XAxis.Ticks>\n )\n : (\n <XAxis.Ticks multiline={multilineXTicks}>{childrenX}</XAxis.Ticks>\n )}\n {invertAxis === true && (xTicks ? <XAxis.Grid ticks={xTicks} /> : <XAxis.Grid />)}\n </XAxis>\n )}\n </>\n );\n }\n\n protected getTooltipChildren<D extends ObjectData>(options: {\n Tooltip: typeof HoverLine['Tooltip'] | typeof HoverRect['Tooltip'];\n dataItem: D;\n }) {\n const STooltipChildrenWrapper = Root;\n const { Tooltip, dataItem } = options;\n\n const { styles, groupKey } = this.asProps;\n const { dataDefinitions } = this.state;\n const title = dataItem[groupKey as keyof D]?.toString();\n\n return sstyled(styles)(\n <Flex direction='column'>\n { title && <Tooltip.Title>{title}</Tooltip.Title> }\n\n <STooltipChildrenWrapper\n render={Box}\n columnsCount='2'\n __excludeProps={['data']}\n >\n {dataDefinitions.map((item) => {\n return (\n item.checked && (\n <Fragment key={item.id}>\n <Tooltip.Dot mr={2} color={item.color}>\n {item.label}\n </Tooltip.Dot>\n <Text textAlign='end' bold>{this.tooltipValueFormatter(dataItem[item.id] as string)}</Text>\n </Fragment>\n )\n );\n })}\n\n {this.renderTooltipTotalLine(dataItem)}\n </STooltipChildrenWrapper>\n </Flex>,\n );\n }\n\n protected renderTooltipTotalLine<D extends ObjectData>(dataItem: D) {\n const { showTotalInTooltip } = this.asProps;\n\n if (!showTotalInTooltip) {\n return null;\n }\n\n const total = this.totalValue(dataItem);\n\n return (\n <>\n <Box mt={2} mr={2}>Total</Box>\n <Text mt={2} textAlign='end' bold>{Number.isNaN(total) ? NOT_A_VALUE : total}</Text>\n </>\n );\n }\n\n public render() {\n const SChart = Root;\n const { styles, plotWidth, plotHeight, data, patterns, a11yAltTextConfig, duration, eventEmitter, showTooltip } =\n this.asProps;\n\n const { extractedAriaProps } = extractAriaProps(this.asProps);\n\n return sstyled(styles)(\n <SChart render={Flex} gap={5} __excludeProps={['data', 'eventEmitter']} role='group'>\n {this.renderLegend()}\n <Plot\n data={data}\n scale={[this.xScale, this.yScale]}\n width={plotWidth}\n height={plotHeight}\n dataHints={this.dataHints}\n a11yAltTextConfig={a11yAltTextConfig}\n patterns={patterns}\n duration={duration}\n eventEmitter={eventEmitter}\n {...extractedAriaProps}\n >\n {this.renderAxis()}\n {!showTooltip ? null : this.renderTooltip()}\n {this.renderChart()}\n </Plot>\n </SChart>,\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"AbstractChart.js","names":["Flex","Box","Component","Root","sstyled","extractAriaProps","callAllEventHandlers","Text","React","Fragment","Plot","XAxis","YAxis","makeDataHintsContainer","style","_sstyled","insert","interpolateValue","ChartLegend","ChartLegendTable","NOT_A_VALUE","AbstractChart","constructor","props","_defineProperty","setHighlightedLine","bind","handleChangeVisible","handleMouseEnter","handleMouseLeave","resolveColor","tooltipValueFormatter","handleWithTrendChange","state","dataDefinitions","getDefaultDataDefinitions","highlightedLine","withTrend","componentDidUpdate","prevProps","data","legendProps","setState","dataKeys","map","key","index","legendData","legendMap","dataDefinition","id","label","icon","undefined","checked","defaultChecked","color","columns","additionalInfo","count","Array","isArray","value","dataValue","Map","get","Number","total","Object","values","reduce","sum","i","percent","toFixed","createElement","use","groupKey","keys","filter","xTicks","invertAxis","xTicksCount","yTicksCount","asProps","scale","xScale","ticks","yTicks","yScale","flatValues","result","item","add","entries","forEach","Set","maxStackedValue","max","val","barSum","Date","isNaN","getMilliseconds","totalValue","allNotAValue","legendItem","NaN","percentValue","Math","round","getValueScale","min","avg","log10","valueScale","isVisible","prevState","findIndex","line","colorMap","toDateString","toString","defaultLegendProps","legendType","renderLegend","direction","showLegend","patterns","length","lProps","commonLegendProps","dataHints","size","shape","w","h","disableSelectItems","onChangeVisibleItem","disableHoverItems","onMouseEnterItem","onMouseLeaveItem","getLegendAriaLabel","flexLegendProps","trendLabel","trendIsVisible","onTrendIsVisibleChange","renderAxis","showXAxis","showYAxis","axisXValueFormatter","axisYValueFormatter","multilineXTicks","multilineYTicks","childrenX","children","childrenY","Ticks","multiline","Grid","getTooltipChildren","options","_ref","_ref3","STooltipChildrenWrapper","Tooltip","dataItem","styles","title","cn","Title","_assignProps","Dot","mr","textAlign","bold","renderTooltipTotalLine","showTotalInTooltip","mt","render","_ref2","_ref4","SChart","plotWidth","plotHeight","a11yAltTextConfig","duration","eventEmitter","showTooltip","extractedAriaProps","_assignProps2","renderTooltip","renderChart"],"sources":["../../../../src/component/Chart/AbstractChart.tsx"],"sourcesContent":["import { Flex, Box } from '@semcore/base-components';\nimport { Component, Root, sstyled } from '@semcore/core';\nimport { extractAriaProps } from '@semcore/core/lib/utils/ariaProps';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\nimport { Text } from '@semcore/typography';\nimport type { ScaleBand, ScaleLinear, ScaleTime } from 'd3-scale';\nimport React, { Fragment } from 'react';\n\nimport type { BaseChartProps, BaseLegendProps, ListData, ObjectData } from './AbstractChart.type';\n// @ts-ignore\nimport type { HoverLine, HoverRect } from '../..';\n// @ts-ignore\nimport { Plot, XAxis, YAxis } from '../..';\nimport { makeDataHintsContainer } from '../../a11y/hints';\nimport style from '../../style/abstract-chart.shadow.css';\nimport { interpolateValue } from '../../utils';\nimport ChartLegend, { ChartLegendTable } from '../ChartLegend';\nimport type { LegendFlexProps } from '../ChartLegend/LegendFlex/LegendFlex.type';\nimport type { LegendItem } from '../ChartLegend/LegendItem/LegendItem.type';\nimport type { LegendTableProps } from '../ChartLegend/LegendTable/LegendTable.type';\n\nexport type ChartState = {\n dataDefinitions: Array<LegendItem & { columns: React.ReactNode[] }>;\n highlightedLine: number;\n withTrend: boolean;\n};\n\nexport const NOT_A_VALUE = 'n/a';\n\nexport abstract class AbstractChart<\n Data extends ListData | ObjectData,\n Props extends BaseChartProps<Data>,\n Enhancers extends readonly ((...args: any[]) => any)[] = [],\n DefaultProps = {},\n State extends ChartState = ChartState,\n> extends Component<Props, Enhancers, Readonly<{}>, DefaultProps, State> {\n public static style = style;\n public static defaultProps: Partial<BaseChartProps<any>> = {\n direction: 'column',\n showXAxis: true,\n showYAxis: true,\n showTooltip: true,\n };\n\n /**\n * Padding from the end's of chart to the container (except axis sides)\n */\n protected plotPadding = 6;\n\n protected dataHints = makeDataHintsContainer();\n\n constructor(props: Props) {\n super(props);\n\n this.setHighlightedLine = this.setHighlightedLine.bind(this);\n this.handleChangeVisible = this.handleChangeVisible.bind(this);\n this.handleMouseEnter = this.handleMouseEnter.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.resolveColor = this.resolveColor.bind(this);\n this.tooltipValueFormatter = this.tooltipValueFormatter.bind(this);\n this.handleWithTrendChange = this.handleWithTrendChange.bind(this);\n\n this.state = {\n dataDefinitions: this.getDefaultDataDefinitions(),\n highlightedLine: -1,\n withTrend: false,\n } as State;\n }\n\n public componentDidUpdate(prevProps: Props) {\n if (prevProps.data !== this.props.data || prevProps.legendProps !== this.props.legendProps) {\n this.setState({ dataDefinitions: this.getDefaultDataDefinitions() });\n }\n }\n\n protected getDefaultDataDefinitions(): Array<LegendItem & { columns: React.ReactNode[] }> {\n const { data, legendProps } = this.props;\n\n return this.dataKeys.map((key, index) => {\n const legendData = legendProps?.legendMap?.[key];\n\n const dataDefinition: LegendItem & { columns: React.ReactNode[] } = {\n id: key,\n label: legendData?.label ?? key,\n icon: legendData?.icon ?? undefined,\n checked: legendData?.defaultChecked ?? true,\n color: this.resolveColor(key, index),\n columns: [],\n };\n\n if (legendData?.additionalInfo || legendData?.count) {\n dataDefinition.additionalInfo = legendData.additionalInfo\n ? { label: legendData.additionalInfo }\n : legendData.count\n ? { count: legendData.count }\n : undefined;\n }\n\n if (legendData && 'columns' in legendData) {\n dataDefinition.columns = legendData.columns || [];\n } else if (!Array.isArray(data)) {\n let value: number | undefined = undefined;\n let dataValue = data[key];\n\n if (data instanceof Map) {\n dataValue = data.get(key);\n }\n\n if (dataValue !== interpolateValue) {\n value = Number(dataValue);\n }\n\n const total = Object.values(data).reduce<number>((sum, i) => {\n if (i !== interpolateValue) {\n return sum + Number(i);\n }\n\n return sum;\n }, 0);\n const percent = value !== undefined ? ((value / total) * 100).toFixed(2) : undefined;\n\n dataDefinition.columns = [\n <Text key={`${key}_percent`} use='secondary'>\n {percent !== undefined ? `${percent}%` : ''}\n </Text>,\n <Text key={`${key}_value`} use={value ? 'primary' : 'secondary'}>\n {value ?? NOT_A_VALUE}\n </Text>,\n ];\n }\n\n return dataDefinition;\n });\n }\n\n protected abstract get xScale(): ScaleBand<any> | ScaleLinear<any, any> | ScaleTime<any, any>;\n protected abstract get yScale(): ScaleBand<any> | ScaleLinear<any, any> | ScaleTime<any, any>;\n\n protected abstract getLegendAriaLabel(): string;\n protected abstract renderChart(): React.ReactNode;\n protected abstract renderTooltip(): React.ReactNode;\n\n protected get dataKeys(): string[] {\n const { data, groupKey } = this.props;\n\n let dataKeys: string[];\n\n if (Array.isArray(data) && groupKey) {\n dataKeys = Object.keys(data[0]).filter((key) => key !== groupKey);\n } else {\n dataKeys = Object.keys(data);\n }\n\n return dataKeys;\n }\n\n protected get xTicks(): number[] | Date[] | undefined {\n const { data, invertAxis, xTicksCount, yTicksCount } = this.asProps;\n\n const scale = this.xScale;\n\n if (Array.isArray(data) && 'ticks' in scale) {\n if (invertAxis && yTicksCount) {\n return scale.ticks(yTicksCount);\n } else if (xTicksCount) {\n return scale.ticks(xTicksCount);\n }\n\n return undefined;\n }\n\n return undefined;\n }\n\n protected get yTicks(): number[] | Date[] | undefined {\n const { data, invertAxis, xTicksCount, yTicksCount } = this.asProps;\n\n const scale = this.yScale;\n\n if (Array.isArray(data) && 'ticks' in scale) {\n if (invertAxis && xTicksCount) {\n return scale.ticks(xTicksCount);\n } else if (yTicksCount) {\n return scale.ticks(yTicksCount);\n }\n\n return undefined;\n }\n\n return undefined;\n }\n\n protected get flatValues(): Set<number> {\n const { data, groupKey } = this.asProps;\n const values: any[] = Array.isArray(data) ? data : Object.values(data);\n\n const flatValues = values.reduce<Set<number>>((result, item) => {\n if (!groupKey && typeof item === 'number') {\n result.add(item);\n } else {\n Object.entries(item).forEach(([key, value]) => {\n if (key !== groupKey && typeof value === 'number') {\n result.add(value);\n }\n });\n }\n\n return result;\n }, new Set());\n\n return flatValues;\n }\n\n protected get maxStackedValue(): number {\n const { data, groupKey } = this.asProps;\n\n if (!Array.isArray(data)) {\n const max = Object.values(data).reduce<number>((sum, val) => {\n if (typeof val === 'number') {\n sum = sum + val;\n }\n\n return sum;\n }, 0);\n\n return max;\n }\n\n const max = data.reduce((max, item) => {\n const barSum = Object.entries(item).reduce<number>((sum, [key, val]) => {\n if (key === groupKey) {\n return sum;\n }\n\n if (typeof val === 'number') {\n return sum + val;\n }\n\n if (val instanceof Date && !Number.isNaN(val.getMilliseconds())) {\n return sum + val.getMilliseconds();\n }\n\n return sum;\n }, 0);\n\n if (barSum > max) {\n max = barSum;\n }\n\n return max;\n }, 0);\n\n return max;\n }\n\n protected totalValue(data: ObjectData): number {\n const { dataDefinitions } = this.state;\n\n let allNotAValue = true;\n\n const total = dataDefinitions.reduce((sum, legendItem) => {\n const item = data[legendItem.id];\n\n if (item === null) {\n allNotAValue = false;\n return sum;\n }\n\n if (typeof item === 'number') {\n allNotAValue = false;\n return sum + item;\n }\n\n if (item instanceof Date && !Number.isNaN(item.getMilliseconds())) {\n allNotAValue = false;\n return sum + item.getMilliseconds();\n }\n\n return sum;\n }, 0);\n\n if (allNotAValue) {\n return Number.NaN;\n }\n\n return total;\n }\n\n protected percentValue(data: ObjectData, key: string): string {\n const total = this.totalValue(data);\n\n const value = data[key];\n\n if (typeof value === 'number' && total !== 0) {\n const percent = Math.round((100 * value) / total);\n\n return `${percent}%`;\n }\n\n if (value === null) {\n return `0%`;\n }\n\n return NOT_A_VALUE;\n }\n\n protected getValueScale(values: number[]): number {\n const max = Math.max(...values);\n const min = Math.min(...values);\n\n const avg = (max + min) / 2;\n const count = Math.round(Math.log10(avg));\n\n const valueScale = 100 / 10 ** count;\n\n return valueScale;\n }\n\n protected setHighlightedLine(index: number) {\n this.setState({ highlightedLine: index });\n }\n\n protected handleChangeVisible(id: string, isVisible: boolean) {\n this.setState((prevState) => {\n const dataDefinitions = prevState.dataDefinitions.map((item) => {\n if (item.id === id) {\n item.checked = isVisible;\n }\n\n return item;\n });\n\n return { dataDefinitions };\n });\n }\n\n protected handleWithTrendChange(isVisible: boolean) {\n this.setState({ withTrend: isVisible });\n }\n\n protected handleMouseEnter(id: string) {\n this.setHighlightedLine(this.state.dataDefinitions.findIndex((line) => line.id === id));\n }\n\n protected handleMouseLeave() {\n this.setHighlightedLine(-1);\n }\n\n protected resolveColor(id: string, index: number) {\n return this.props.colorMap?.[id] ?? `chart-palette-order-${index + 1}`;\n }\n\n protected tooltipValueFormatter(\n value?: string | number | typeof interpolateValue | Date,\n ): string {\n const { tooltipValueFormatter } = this.asProps;\n\n if (tooltipValueFormatter) {\n return tooltipValueFormatter(value);\n }\n\n if (value === undefined || value === interpolateValue) {\n return NOT_A_VALUE;\n }\n\n if (value === null) {\n return '0';\n }\n\n if (value instanceof Date) {\n return value.toDateString();\n }\n\n return value.toString();\n }\n\n protected defaultLegendProps(): Partial<BaseLegendProps> {\n return {\n legendType: 'Flex',\n };\n }\n\n protected renderLegend() {\n const { legendProps, direction, showLegend, patterns } = this.asProps;\n\n if (\n // we hide Legend for one item on chart except not manually set to show.\n showLegend === undefined && this.dataKeys.length === 1 ||\n showLegend === false\n ) {\n return null;\n }\n\n const { dataDefinitions, withTrend } = this.state;\n const lProps = {\n ...this.defaultLegendProps(),\n ...legendProps,\n };\n\n const commonLegendProps: LegendFlexProps | LegendTableProps = {\n 'dataHints': this.dataHints,\n 'items': dataDefinitions,\n 'size': lProps.size,\n 'shape': lProps.shape,\n 'w': lProps.w,\n 'h': lProps.h,\n patterns,\n 'direction':\n lProps.direction ?? (direction === 'row' || direction === 'row-reverse' ? 'column' : 'row'),\n 'onChangeVisibleItem': lProps.disableSelectItems\n ? undefined\n : callAllEventHandlers(lProps.onChangeVisibleItem, this.handleChangeVisible),\n 'onMouseEnterItem': lProps.disableHoverItems\n ? undefined\n : callAllEventHandlers(lProps.onMouseEnterItem, this.handleMouseEnter),\n 'onMouseLeaveItem': lProps.disableHoverItems\n ? undefined\n : callAllEventHandlers(lProps.onMouseLeaveItem, this.handleMouseLeave),\n 'aria-label': this.getLegendAriaLabel(),\n };\n\n if (lProps.legendType === 'Table') {\n return <ChartLegendTable {...(commonLegendProps as LegendTableProps)} />;\n }\n\n if ('withTrend' in lProps) {\n const flexLegendProps = {\n ...commonLegendProps,\n withTrend: true,\n trendLabel: lProps.trendLabel,\n trendIsVisible: withTrend,\n onTrendIsVisibleChange: this.handleWithTrendChange,\n };\n\n return <ChartLegend {...(flexLegendProps as LegendFlexProps)} />;\n }\n\n return <ChartLegend {...(commonLegendProps as LegendFlexProps)} />;\n }\n\n protected renderAxis(): React.ReactNode {\n const {\n invertAxis,\n showXAxis,\n showYAxis,\n data,\n axisXValueFormatter,\n axisYValueFormatter,\n multilineXTicks,\n multilineYTicks,\n } = this.asProps;\n\n if (!Array.isArray(data)) {\n return null;\n }\n\n const xTicks = this.xTicks;\n const yTicks = this.yTicks;\n\n const childrenX = axisXValueFormatter\n ? ({ value }: any) => ({ children: axisXValueFormatter(value) })\n : undefined;\n const childrenY = axisYValueFormatter\n ? ({ value }: any) => ({ children: axisYValueFormatter(value) })\n : undefined;\n\n return (\n <>\n {showYAxis && (\n <YAxis>\n {yTicks\n ? (\n <YAxis.Ticks multiline={multilineYTicks} ticks={yTicks}>{childrenY}</YAxis.Ticks>\n )\n : (\n <YAxis.Ticks multiline={multilineYTicks}>{childrenY}</YAxis.Ticks>\n )}\n {invertAxis !== true && (yTicks ? <YAxis.Grid ticks={yTicks} /> : <YAxis.Grid />)}\n </YAxis>\n )}\n\n {showXAxis && (\n <XAxis>\n {xTicks\n ? (\n <XAxis.Ticks multiline={multilineXTicks} ticks={xTicks}>{childrenX}</XAxis.Ticks>\n )\n : (\n <XAxis.Ticks multiline={multilineXTicks}>{childrenX}</XAxis.Ticks>\n )}\n {invertAxis === true && (xTicks ? <XAxis.Grid ticks={xTicks} /> : <XAxis.Grid />)}\n </XAxis>\n )}\n </>\n );\n }\n\n protected getTooltipChildren<D extends ObjectData>(options: {\n Tooltip: typeof HoverLine['Tooltip'] | typeof HoverRect['Tooltip'];\n dataItem: D;\n }) {\n const STooltipChildrenWrapper = Root;\n const { Tooltip, dataItem } = options;\n\n const { styles, groupKey } = this.asProps;\n const { dataDefinitions } = this.state;\n const title = dataItem[groupKey as keyof D]?.toString();\n\n return sstyled(styles)(\n <Flex direction='column'>\n { title && <Tooltip.Title>{title}</Tooltip.Title> }\n\n <STooltipChildrenWrapper\n render={Box}\n columnsCount='2'\n __excludeProps={['data']}\n >\n {dataDefinitions.map((item) => {\n return (\n item.checked && (\n <Fragment key={item.id}>\n <Tooltip.Dot mr={2} color={item.color}>\n {item.label}\n </Tooltip.Dot>\n <Text textAlign='end' bold>{this.tooltipValueFormatter(dataItem[item.id] as string)}</Text>\n </Fragment>\n )\n );\n })}\n\n {this.renderTooltipTotalLine(dataItem)}\n </STooltipChildrenWrapper>\n </Flex>,\n );\n }\n\n protected renderTooltipTotalLine<D extends ObjectData>(dataItem: D) {\n const { showTotalInTooltip } = this.asProps;\n\n if (!showTotalInTooltip) {\n return null;\n }\n\n const total = this.totalValue(dataItem);\n\n return (\n <>\n <Box mt={2} mr={2}>Total</Box>\n <Text mt={2} textAlign='end' bold>{Number.isNaN(total) ? NOT_A_VALUE : total}</Text>\n </>\n );\n }\n\n public render() {\n const SChart = Root;\n const { styles, plotWidth, plotHeight, data, patterns, a11yAltTextConfig, duration, eventEmitter, showTooltip } =\n this.asProps;\n\n const { extractedAriaProps } = extractAriaProps(this.asProps);\n\n return sstyled(styles)(\n <SChart render={Flex} gap={5} __excludeProps={['data', 'eventEmitter']} role='group'>\n {this.renderLegend()}\n <Plot\n data={data}\n scale={[this.xScale, this.yScale]}\n width={plotWidth}\n height={plotHeight}\n dataHints={this.dataHints}\n a11yAltTextConfig={a11yAltTextConfig}\n patterns={patterns}\n duration={duration}\n eventEmitter={eventEmitter}\n {...extractedAriaProps}\n >\n {this.renderAxis()}\n {!showTooltip ? null : this.renderTooltip()}\n {this.renderChart()}\n </Plot>\n </SChart>,\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|