@semcore/d3-chart 17.2.0-prerelease.7 → 17.3.0-prerelease.0

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.
Files changed (128) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/lib/cjs/Area.js +11 -11
  3. package/lib/cjs/Axis.js +16 -16
  4. package/lib/cjs/Bar.js +16 -16
  5. package/lib/cjs/Bubble.js +14 -14
  6. package/lib/cjs/CompactHorizontalBar.js +16 -16
  7. package/lib/cjs/Donut.js +9 -9
  8. package/lib/cjs/Dots.js +8 -8
  9. package/lib/cjs/HorizontalBar.js +16 -16
  10. package/lib/cjs/Hover.js +3 -3
  11. package/lib/cjs/Line.js +9 -9
  12. package/lib/cjs/Plot.js +2 -2
  13. package/lib/cjs/Radar.js +20 -20
  14. package/lib/cjs/Radar.js.map +1 -1
  15. package/lib/cjs/RadialTree.js +12 -12
  16. package/lib/cjs/Reference.js +12 -12
  17. package/lib/cjs/ScatterPlot.js +9 -9
  18. package/lib/cjs/Tooltip.js +9 -9
  19. package/lib/cjs/Venn.js +9 -9
  20. package/lib/cjs/a11y/PlotA11yModule.js +2 -2
  21. package/lib/cjs/a11y/PlotA11yView.js +2 -2
  22. package/lib/cjs/a11y/serialize.js +6 -1
  23. package/lib/cjs/a11y/serialize.js.map +1 -1
  24. package/lib/cjs/component/Chart/AbstractChart.js +85 -11
  25. package/lib/cjs/component/Chart/AbstractChart.js.map +1 -1
  26. package/lib/cjs/component/Chart/AbstractChart.type.js.map +1 -1
  27. package/lib/cjs/component/Chart/AreaChart.js +6 -2
  28. package/lib/cjs/component/Chart/AreaChart.js.map +1 -1
  29. package/lib/cjs/component/Chart/BarChart.js +8 -4
  30. package/lib/cjs/component/Chart/BarChart.js.map +1 -1
  31. package/lib/cjs/component/Chart/BubbleChart.js +6 -2
  32. package/lib/cjs/component/Chart/BubbleChart.js.map +1 -1
  33. package/lib/cjs/component/Chart/CigaretteChart.js +22 -12
  34. package/lib/cjs/component/Chart/CigaretteChart.js.map +1 -1
  35. package/lib/cjs/component/Chart/CompactHorizontalBarChart.js +7 -3
  36. package/lib/cjs/component/Chart/CompactHorizontalBarChart.js.map +1 -1
  37. package/lib/cjs/component/Chart/HistogramChart.js +8 -4
  38. package/lib/cjs/component/Chart/HistogramChart.js.map +1 -1
  39. package/lib/cjs/component/Chart/LineChart.js +7 -3
  40. package/lib/cjs/component/Chart/LineChart.js.map +1 -1
  41. package/lib/cjs/component/Chart/ScatterPlotChart.js +6 -2
  42. package/lib/cjs/component/Chart/ScatterPlotChart.js.map +1 -1
  43. package/lib/cjs/component/ChartLegend/LegendFlex/LegendFlex.js +4 -4
  44. package/lib/cjs/component/ChartLegend/LegendItem/LegendItem.js +17 -17
  45. package/lib/cjs/component/ChartLegend/LegendTable/LegendTable.js +6 -6
  46. package/lib/cjs/style/abstract-chart.shadow.css +7 -0
  47. package/lib/es6/Area.js +11 -11
  48. package/lib/es6/Axis.js +16 -16
  49. package/lib/es6/Bar.js +16 -16
  50. package/lib/es6/Bubble.js +14 -14
  51. package/lib/es6/CompactHorizontalBar.js +16 -16
  52. package/lib/es6/Donut.js +9 -9
  53. package/lib/es6/Dots.js +8 -8
  54. package/lib/es6/HorizontalBar.js +16 -16
  55. package/lib/es6/Hover.js +3 -3
  56. package/lib/es6/Line.js +9 -9
  57. package/lib/es6/Plot.js +2 -2
  58. package/lib/es6/Radar.js +20 -20
  59. package/lib/es6/Radar.js.map +1 -1
  60. package/lib/es6/RadialTree.js +12 -12
  61. package/lib/es6/Reference.js +12 -12
  62. package/lib/es6/ScatterPlot.js +9 -9
  63. package/lib/es6/Tooltip.js +9 -9
  64. package/lib/es6/Venn.js +9 -9
  65. package/lib/es6/a11y/PlotA11yModule.js +2 -2
  66. package/lib/es6/a11y/PlotA11yView.js +2 -2
  67. package/lib/es6/a11y/serialize.js +6 -1
  68. package/lib/es6/a11y/serialize.js.map +1 -1
  69. package/lib/es6/component/Chart/AbstractChart.js +85 -11
  70. package/lib/es6/component/Chart/AbstractChart.js.map +1 -1
  71. package/lib/es6/component/Chart/AbstractChart.type.js.map +1 -1
  72. package/lib/es6/component/Chart/AreaChart.js +6 -2
  73. package/lib/es6/component/Chart/AreaChart.js.map +1 -1
  74. package/lib/es6/component/Chart/BarChart.js +8 -4
  75. package/lib/es6/component/Chart/BarChart.js.map +1 -1
  76. package/lib/es6/component/Chart/BubbleChart.js +6 -2
  77. package/lib/es6/component/Chart/BubbleChart.js.map +1 -1
  78. package/lib/es6/component/Chart/CigaretteChart.js +22 -12
  79. package/lib/es6/component/Chart/CigaretteChart.js.map +1 -1
  80. package/lib/es6/component/Chart/CompactHorizontalBarChart.js +7 -3
  81. package/lib/es6/component/Chart/CompactHorizontalBarChart.js.map +1 -1
  82. package/lib/es6/component/Chart/HistogramChart.js +8 -4
  83. package/lib/es6/component/Chart/HistogramChart.js.map +1 -1
  84. package/lib/es6/component/Chart/LineChart.js +7 -3
  85. package/lib/es6/component/Chart/LineChart.js.map +1 -1
  86. package/lib/es6/component/Chart/ScatterPlotChart.js +6 -2
  87. package/lib/es6/component/Chart/ScatterPlotChart.js.map +1 -1
  88. package/lib/es6/component/ChartLegend/LegendFlex/LegendFlex.js +4 -4
  89. package/lib/es6/component/ChartLegend/LegendItem/LegendItem.js +17 -17
  90. package/lib/es6/component/ChartLegend/LegendTable/LegendTable.js +6 -6
  91. package/lib/es6/style/abstract-chart.shadow.css +7 -0
  92. package/lib/esm/Area.mjs +12 -12
  93. package/lib/esm/Axis.mjs +17 -17
  94. package/lib/esm/Bar.mjs +17 -17
  95. package/lib/esm/Bubble.mjs +15 -15
  96. package/lib/esm/CompactHorizontalBar.mjs +17 -17
  97. package/lib/esm/Donut.mjs +10 -10
  98. package/lib/esm/Dots.mjs +9 -9
  99. package/lib/esm/HorizontalBar.mjs +17 -17
  100. package/lib/esm/Hover.mjs +4 -4
  101. package/lib/esm/Line.mjs +10 -10
  102. package/lib/esm/Plot.mjs +3 -3
  103. package/lib/esm/Radar.mjs +21 -21
  104. package/lib/esm/RadialTree.mjs +13 -13
  105. package/lib/esm/Reference.mjs +13 -13
  106. package/lib/esm/ScatterPlot.mjs +10 -10
  107. package/lib/esm/Tooltip.mjs +10 -10
  108. package/lib/esm/Venn.mjs +10 -10
  109. package/lib/esm/a11y/PlotA11yModule.mjs +3 -3
  110. package/lib/esm/a11y/PlotA11yView.mjs +3 -3
  111. package/lib/esm/a11y/serialize.mjs +6 -1
  112. package/lib/esm/component/Chart/AbstractChart.mjs +86 -12
  113. package/lib/esm/component/Chart/AreaChart.mjs +6 -2
  114. package/lib/esm/component/Chart/BarChart.mjs +8 -4
  115. package/lib/esm/component/Chart/BubbleChart.mjs +6 -2
  116. package/lib/esm/component/Chart/CigaretteChart.mjs +22 -12
  117. package/lib/esm/component/Chart/CompactHorizontalBarChart.mjs +7 -3
  118. package/lib/esm/component/Chart/HistogramChart.mjs +8 -4
  119. package/lib/esm/component/Chart/LineChart.mjs +7 -3
  120. package/lib/esm/component/Chart/ScatterPlotChart.mjs +6 -2
  121. package/lib/esm/component/ChartLegend/LegendFlex/LegendFlex.mjs +5 -5
  122. package/lib/esm/component/ChartLegend/LegendItem/LegendItem.mjs +18 -18
  123. package/lib/esm/component/ChartLegend/LegendTable/LegendTable.mjs +7 -7
  124. package/lib/esm/style/abstract-chart.shadow.css +7 -0
  125. package/lib/types/component/Chart/AbstractChart.d.ts +14 -0
  126. package/lib/types/component/Chart/AbstractChart.type.d.ts +11 -2
  127. package/package.json +16 -16
  128. package/vitest.config.mts +17 -0
@@ -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","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","getValueScale","Math","min","avg","round","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 type { Intergalactic } from '@semcore/core';\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 InnerProps = {},\n State extends ChartState = ChartState,\n DefaultProps extends Intergalactic.InternalTypings.ValidDefaultProps<DefaultProps, Props & InnerProps> = never,\n> extends Component<Props, Enhancers, Readonly<{}>, InnerProps, State, DefaultProps> {\n public static style = style;\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 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","canUseDOM","cssToIntDefault","trottle","Text","React","Fragment","Plot","XAxis","YAxis","makeDataHintsContainer","style","_sstyled","insert","interpolateValue","ChartLegend","ChartLegendTable","NOT_A_VALUE","AbstractChart","constructor","props","_defineProperty","createRef","handleResize","bind","plotWidth","plotHeight","observer","ResizeObserver","setHighlightedLine","handleChangeVisible","handleMouseEnter","handleMouseLeave","resolveColor","tooltipValueFormatter","handleWithTrendChange","state","dataDefinitions","getDefaultDataDefinitions","highlightedLine","withTrend","componentDidMount","observe","chartRef","current","componentDidUpdate","prevProps","data","legendProps","setState","componentWillUnmount","disconnect","asProps","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","scale","xScale","ticks","yTicks","yScale","flatValues","result","item","add","entries","forEach","Set","maxStackedValue","max","val","barSum","Date","isNaN","getMilliseconds","totalValue","allNotAValue","legendItem","NaN","getValueScale","Math","min","avg","round","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","_extends","ref","legendRef","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","a11yAltTextConfig","duration","eventEmitter","showTooltip","extractedAriaProps","_assignProps2","renderTooltip","renderChart","entities","aspect","onResize","chartElement","legendElement","computedStyles","window","getComputedStyle","width","clientWidth","height","clientHeight","gap","includes","minHeight","getPropertyValue","maxHeight"],"sources":["../../../../src/component/Chart/AbstractChart.tsx"],"sourcesContent":["import { Flex, Box } from '@semcore/base-components';\nimport type { Intergalactic } from '@semcore/core';\nimport { Component, Root, sstyled } from '@semcore/core';\nimport { extractAriaProps } from '@semcore/core/lib/utils/ariaProps';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\nimport canUseDOM from '@semcore/core/lib/utils/canUseDOM';\nimport cssToIntDefault from '@semcore/core/lib/utils/cssToIntDefault';\nimport trottle from '@semcore/core/lib/utils/rafTrottle';\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 plotWidth: number;\n plotHeight: number;\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 InnerProps = {},\n State extends ChartState = ChartState,\n DefaultProps extends Intergalactic.InternalTypings.ValidDefaultProps<DefaultProps, Props & InnerProps> = never,\n> extends Component<Props, Enhancers, Readonly<{}>, InnerProps, State, DefaultProps> {\n public static style = style;\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 protected chartRef = React.createRef<HTMLElement>();\n protected legendRef = React.createRef<HTMLDivElement>();\n\n private observer: ResizeObserver | undefined;\n\n constructor(props: Props) {\n super(props);\n\n this.handleResize = trottle(this.handleResize.bind(this));\n\n if (canUseDOM() && (!props.plotWidth || !props.plotHeight)) {\n this.observer = new ResizeObserver(this.handleResize);\n }\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 plotWidth: 0,\n plotHeight: 0,\n } as State;\n }\n\n public componentDidMount(): void {\n this.observer?.observe(this.chartRef.current!);\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 public componentWillUnmount(): void {\n this.observer?.disconnect();\n }\n\n protected get plotWidth() {\n return this.asProps.plotWidth ?? this.state.plotWidth;\n }\n\n protected get plotHeight() {\n return this.asProps.plotHeight ?? this.state.plotHeight;\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 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)} ref={this.legendRef} />;\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)} ref={this.legendRef} />;\n }\n\n return <ChartLegend {...(commonLegendProps as LegendFlexProps)} ref={this.legendRef} />;\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, data, patterns, a11yAltTextConfig, duration, eventEmitter, showTooltip } =\n this.asProps;\n const { plotWidth, plotHeight } = this;\n\n const { extractedAriaProps } = extractAriaProps(this.asProps);\n\n return sstyled(styles)(\n <SChart render={Flex} gap={5} __excludeProps={['data', 'eventEmitter']} role='group' ref={this.chartRef}>\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 private handleResize(entities: ResizeObserverEntry[]) {\n const { aspect, direction, onResize, plotWidth, plotHeight } = this.asProps;\n const chartElement = this.chartRef.current;\n\n if (!chartElement) return;\n\n const legendElement = this.legendRef.current;\n const computedStyles = window.getComputedStyle(chartElement);\n\n let width: number = chartElement.clientWidth;\n let height: number = chartElement.clientHeight;\n\n if (legendElement) {\n const gap: number = cssToIntDefault(computedStyles.gap, 0);\n if (direction?.includes('column')) {\n height = height - legendElement.clientHeight - gap;\n } else {\n width = width - legendElement.clientWidth - gap;\n }\n }\n\n if (aspect) {\n const minHeight = cssToIntDefault(computedStyles.getPropertyValue('min-height'), -1);\n const maxHeight = cssToIntDefault(computedStyles.getPropertyValue('max-height'), -1);\n height = width / aspect;\n\n if (minHeight !== -1 && height < minHeight) {\n height = minHeight;\n }\n if (maxHeight !== -1 && height > maxHeight) {\n height = maxHeight;\n }\n }\n\n this.setState({\n plotWidth: plotWidth ? 0 : width,\n plotHeight: plotHeight ? 0 : height,\n });\n\n onResize?.([width, height], entities);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractChart.type.js","names":[],"sources":["../../../../src/component/Chart/AbstractChart.type.ts"],"sourcesContent":["import type { FlexProps } from '@semcore/base-components';\nimport type { Intergalactic } from '@semcore/core';\nimport type Icon from '@semcore/icon';\nimport type React from 'react';\n\nimport type { PatternsConfig } from '../../Pattern';\n// @ts-ignore\nimport type { PlotSummarizerConfig } from '../../Plot';\nimport type { PlotEventEmitter } from '../../utils';\nimport type { BaseChartLegendProps } from '../ChartLegend/BaseLegend.type';\nimport type { TrendProps } from '../ChartLegend/LegendFlex/LegendFlex.type';\nimport type { LegendItemKey } from '../ChartLegend/LegendItem/LegendItem.type';\n\nexport type BaseLegendProps = BaseChartLegendProps & {\n /**\n * Disable hover (for transition items legend of each not hovered)\n */\n disableHoverItems?: boolean;\n /**\n * Disable selectable of data items by checkboxes in Legend\n */\n disableSelectItems?: boolean;\n} & (\n | (TrendProps & {\n /**\n * How to render Legend - Flex view. Just list of legend items\n */\n legendType?: never | 'Flex';\n /**\n * Config for Legend items\n */\n legendMap?: LegendDataMap<'Flex'>;\n })\n | {\n /**\n * How to render Legend - Table view. Table of legend items with some additional information in columns\n */\n legendType: 'Table';\n /**\n * Config for Legend items\n */\n legendMap?: LegendDataMap<'Table'>;\n }\n );\n\nexport type ObjectData = Record<string, unknown>;\nexport type ListData = ObjectData[];\n\n/**\n * Chart, Legend must have an accessible names (aria-name).\n * It should describe chart or legend content.\n */\nexport type AriaNameProps = Intergalactic.RequireAtLeastOne<{\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n 'title'?: string;\n}>;\n\nexport type BaseChartProps<T extends ListData | ObjectData> = FlexProps & {\n /**\n * Chart data. For all charts except Donut(Pie), Radar and Venn should be an Array\n */\n data: T;\n /**\n * Width of plot\n */\n plotWidth: number;\n /**\n * Height of plot\n */\n plotHeight: number;\n\n /** Enables charts patterns that enhances charts accessibility */\n patterns?: PatternsConfig;\n /**\n * Margin (for Y axis points) from left side of chart container to Y axis\n */\n marginY?: number;\n /**\n * Margin (for X axis points) from bottom of chart container to X axis\n */\n marginX?: number;\n /**\n * invert axis and show horizontal charts (only for Bars!)\n */\n invertAxis?: boolean;\n\n /**\n * Show X axis\n * @default true (for charts with axis: Area, Line, Bar, ScatterPlot, ...)\n */\n showXAxis?: boolean;\n /**\n * Show Y axis\n * @default true (for charts with axis: Area, Line, Bar, ScatterPlot, ...)\n */\n showYAxis?: boolean;\n /**\n * Map with colors for data items\n */\n colorMap?: Record<string, string>;\n /**\n * Show tooltip's.\n * @default true\n */\n showTooltip?: boolean;\n /**\n * Show sum of values for selected point in tooltip\n */\n showTotalInTooltip?: boolean;\n /**\n * Scale for xAxis (see more in d3-scale)\n */\n xScale?: unknown;\n /**\n * Scale for yAxis (see more in d3-scale)\n */\n yScale?: unknown;\n /**\n * Count of ticks for X axis\n */\n xTicksCount?: number;\n /**\n * Count of ticks for Y axis\n */\n yTicksCount?: number;\n /** Enables multiline tick labels for X axis, applicable only for band scales */\n multilineXTicks?: boolean;\n /** Enables multiline tick labels for Y axis, applicable only for band scales */\n multilineYTicks?: boolean;\n /**\n * Group key for all array-based charts (for get keys of items for legend except that group key)\n */\n groupKey?: string;\n /**\n * function for format axis item text\n */\n axisXValueFormatter?: (value: unknown) => string;\n axisYValueFormatter?: (value: unknown) => string;\n /**\n * Function for format text for tooltip\n */\n tooltipValueFormatter?: (value?: unknown) => string;\n /**\n * Custom event emitter. Could be useful to handle event on few charts at the same time.\n */\n eventEmitter?: InstanceType<typeof PlotEventEmitter>;\n /**\n * Config for a11y summary\n */\n a11yAltTextConfig?: PlotSummarizerConfig;\n\n /**\n * Animations duration, set 0 to disable animations\n */\n duration?: number;\n /**\n * Flag to show/hide legend\n */\n showLegend?: boolean;\n /**\n * Props for Legend\n */\n legendProps?: Partial<BaseLegendProps>;\n} & (\n | {\n /**\n * Don't show legend\n */\n showLegend?: false;\n legendProps?: never;\n }\n | {\n /**\n * By default (if showLegend don't set), for one data item on chart,\n * Legend component will be hide, and show for more then 1 data item.\n * If set `true` - Legend component will show always.\n */\n showLegend?: true;\n /**\n * Props for Legend\n */\n legendProps?: Partial<BaseLegendProps>;\n }\n );\n\ntype LegendDataMap<T extends 'Flex' | 'Table'> = Record<\n LegendItemKey,\n {\n /**\n * Custom label for legend item (by default use keys from data item object)\n */\n label?: string;\n /**\n * Additional text after label\n */\n additionalInfo?: string;\n /**\n * Count after label\n */\n count?: number;\n /**\n * Custom Icon\n */\n icon?: typeof Icon;\n /**\n * Flag for uncheck some items by default\n */\n defaultChecked?: boolean;\n } & (T extends 'Table' ? { columns?: React.ReactNode[] } : { columns?: never })\n>;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"AbstractChart.type.js","names":[],"sources":["../../../../src/component/Chart/AbstractChart.type.ts"],"sourcesContent":["import type { FlexProps } from '@semcore/base-components';\nimport type { Intergalactic } from '@semcore/core';\nimport type Icon from '@semcore/icon';\nimport type React from 'react';\n\nimport type { PatternsConfig } from '../../Pattern';\n// @ts-ignore\nimport type { PlotSummarizerConfig } from '../../Plot';\nimport type { PlotEventEmitter } from '../../utils';\nimport type { BaseChartLegendProps } from '../ChartLegend/BaseLegend.type';\nimport type { TrendProps } from '../ChartLegend/LegendFlex/LegendFlex.type';\nimport type { LegendItemKey } from '../ChartLegend/LegendItem/LegendItem.type';\n\nexport type BaseLegendProps = BaseChartLegendProps & {\n /**\n * Disable hover (for transition items legend of each not hovered)\n */\n disableHoverItems?: boolean;\n /**\n * Disable selectable of data items by checkboxes in Legend\n */\n disableSelectItems?: boolean;\n} & (\n | (TrendProps & {\n /**\n * How to render Legend - Flex view. Just list of legend items\n */\n legendType?: never | 'Flex';\n /**\n * Config for Legend items\n */\n legendMap?: LegendDataMap<'Flex'>;\n })\n | {\n /**\n * How to render Legend - Table view. Table of legend items with some additional information in columns\n */\n legendType: 'Table';\n /**\n * Config for Legend items\n */\n legendMap?: LegendDataMap<'Table'>;\n }\n );\n\nexport type ObjectData = Record<string, unknown>;\nexport type ListData = ObjectData[];\n\n/**\n * Chart, Legend must have an accessible names (aria-name).\n * It should describe chart or legend content.\n */\nexport type AriaNameProps = Intergalactic.RequireAtLeastOne<{\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n 'title'?: string;\n}>;\n\nexport type BaseChartProps<T extends ListData | ObjectData> = FlexProps & {\n /**\n * Chart data. For all charts except Donut(Pie), Radar and Venn should be an Array\n */\n data: T;\n /**\n * Width of plot\n * @default width is 100% of the parent element.\n */\n plotWidth?: number;\n /**\n * Height of plot\n * @default height is 100% of the parent element.\n */\n plotHeight?: number;\n\n /** Enables charts patterns that enhances charts accessibility */\n patterns?: PatternsConfig;\n /**\n * Margin (for Y axis points) from left side of chart container to Y axis\n */\n marginY?: number;\n /**\n * Margin (for X axis points) from bottom of chart container to X axis\n */\n marginX?: number;\n /**\n * invert axis and show horizontal charts (only for Bars!)\n */\n invertAxis?: boolean;\n\n /**\n * Show X axis\n * @default true (for charts with axis: Area, Line, Bar, ScatterPlot, ...)\n */\n showXAxis?: boolean;\n /**\n * Show Y axis\n * @default true (for charts with axis: Area, Line, Bar, ScatterPlot, ...)\n */\n showYAxis?: boolean;\n /**\n * Map with colors for data items\n */\n colorMap?: Record<string, string>;\n /**\n * Show tooltip's.\n * @default true\n */\n showTooltip?: boolean;\n /**\n * Show sum of values for selected point in tooltip\n */\n showTotalInTooltip?: boolean;\n /**\n * Scale for xAxis (see more in d3-scale)\n */\n xScale?: unknown;\n /**\n * Scale for yAxis (see more in d3-scale)\n */\n yScale?: unknown;\n /**\n * Count of ticks for X axis\n */\n xTicksCount?: number;\n /**\n * Count of ticks for Y axis\n */\n yTicksCount?: number;\n /** Enables multiline tick labels for X axis, applicable only for band scales */\n multilineXTicks?: boolean;\n /** Enables multiline tick labels for Y axis, applicable only for band scales */\n multilineYTicks?: boolean;\n /**\n * Group key for all array-based charts (for get keys of items for legend except that group key)\n */\n groupKey?: string;\n /**\n * function for format axis item text\n */\n axisXValueFormatter?: (value: unknown) => string;\n axisYValueFormatter?: (value: unknown) => string;\n /**\n * Function for format text for tooltip\n */\n tooltipValueFormatter?: (value?: unknown) => string;\n /**\n * Custom event emitter. Could be useful to handle event on few charts at the same time.\n */\n eventEmitter?: InstanceType<typeof PlotEventEmitter>;\n /**\n * Config for a11y summary\n */\n a11yAltTextConfig?: PlotSummarizerConfig;\n\n /**\n * Animations duration, set 0 to disable animations\n */\n duration?: number;\n /**\n * Flag to show/hide legend\n */\n showLegend?: boolean;\n /**\n * Relation between height and width dimensions block.\n * height = width / aspect, so an aspect could be set as `16 / 9` for example.\n */\n aspect?: number;\n /** Callback which will be called after changing the block size */\n onResize?: (size: [number, number], entries: ResizeObserverEntry[]) => void;\n /**\n * Props for Legend\n */\n legendProps?: Partial<BaseLegendProps>;\n} & (\n | {\n /**\n * Don't show legend\n */\n showLegend?: false;\n legendProps?: never;\n }\n | {\n /**\n * By default (if showLegend don't set), for one data item on chart,\n * Legend component will be hide, and show for more then 1 data item.\n * If set `true` - Legend component will show always.\n */\n showLegend?: true;\n /**\n * Props for Legend\n */\n legendProps?: Partial<BaseLegendProps>;\n }\n );\n\ntype LegendDataMap<T extends 'Flex' | 'Table'> = Record<\n LegendItemKey,\n {\n /**\n * Custom label for legend item (by default use keys from data item object)\n */\n label?: string;\n /**\n * Additional text after label\n */\n additionalInfo?: string;\n /**\n * Count after label\n */\n count?: number;\n /**\n * Custom Icon\n */\n icon?: typeof Icon;\n /**\n * Flag for uncheck some items by default\n */\n defaultChecked?: boolean;\n } & (T extends 'Table' ? { columns?: React.ReactNode[] } : { columns?: never })\n>;\n"],"mappings":"","ignoreList":[]}
@@ -13,10 +13,12 @@ class AreaChartComponent extends AbstractChart {
13
13
  const {
14
14
  xScale,
15
15
  marginY = 40,
16
- plotWidth,
17
16
  data,
18
17
  groupKey
19
18
  } = this.asProps;
19
+ const {
20
+ plotWidth
21
+ } = this;
20
22
  if (xScale) {
21
23
  return xScale;
22
24
  }
@@ -32,9 +34,11 @@ class AreaChartComponent extends AbstractChart {
32
34
  const {
33
35
  yScale,
34
36
  marginX = 24,
35
- plotHeight,
36
37
  stacked
37
38
  } = this.asProps;
39
+ const {
40
+ plotHeight
41
+ } = this;
38
42
  if (yScale) {
39
43
  return yScale;
40
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AreaChart.js","names":["createComponent","i18nEnhance","scaleLinear","scaleTime","React","Area","minMax","HoverLine","StackedArea","AbstractChart","localizedMessages","AreaChartComponent","xScale","marginY","plotWidth","data","groupKey","asProps","testItem","range","plotPadding","domain","Date","Number","isNaN","getMilliseconds","yScale","marginX","plotHeight","stacked","flatValues","min","Math","max","maxStackedValue","renderChart","curve","showDots","onClickArea","dataDefinitions","highlightedLine","state","createElement","x","map","item","index","checked","y","id","key","color","transparent","onClick","Dots","display","renderTooltip","Tooltip","wMin","xIndex","dataItem","children","getTooltipChildren","getLegendAriaLabel","getI18nText","chartType","_defineProperty","direction","showXAxis","showYAxis","showTooltip","AreaChart"],"sources":["../../../../src/component/Chart/AreaChart.tsx"],"sourcesContent":["import { createComponent } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport { type ScaleLinear, scaleLinear, scaleTime } from 'd3-scale';\nimport React from 'react';\n\n// @ts-ignore\nimport { Area, minMax, HoverLine, StackedArea } from '../..';\nimport type { ChartState } from './AbstractChart';\nimport { AbstractChart } from './AbstractChart';\nimport type { AreaChartData, AreaChartProps, AreaChartType, AreaChartDefaultProps } from './AreaChart.type';\nimport { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';\n\nclass AreaChartComponent extends AbstractChart<\n AreaChartData,\n AreaChartProps,\n typeof AreaChartComponent.enhance,\n {},\n ChartState,\n AreaChartDefaultProps\n> {\n static displayName = 'Chart.Area';\n\n static enhance = [i18nEnhance(localizedMessages)] as const;\n\n static defaultProps = {\n direction: 'column',\n showXAxis: true,\n showYAxis: true,\n showTooltip: true,\n } as const;\n\n get xScale() {\n const { xScale, marginY = 40, plotWidth, data, groupKey } = this.asProps;\n\n if (xScale) {\n return xScale;\n }\n\n const testItem = data[0][groupKey];\n const range = [marginY, plotWidth - this.plotPadding];\n const domain = minMax(data, groupKey);\n\n if (testItem instanceof Date && !Number.isNaN(testItem.getMilliseconds())) {\n return scaleTime(domain, range);\n }\n\n return scaleLinear(domain, range);\n }\n\n get yScale(): ScaleLinear<any, any> {\n const { yScale, marginX = 24, plotHeight, stacked } = this.asProps;\n\n if (yScale) {\n return yScale;\n }\n\n const flatValues = super.flatValues;\n const min = Math.min(...flatValues);\n const max = stacked ? super.maxStackedValue : Math.max(...flatValues);\n\n return scaleLinear()\n .range([plotHeight - marginX, this.plotPadding])\n .domain([min, max]);\n }\n\n renderChart() {\n const { groupKey, curve, showDots, stacked, onClickArea } = this.asProps;\n const { dataDefinitions, highlightedLine } = this.state;\n\n if (stacked) {\n return (\n <StackedArea x={groupKey}>\n {dataDefinitions.map((item, index) => {\n return (\n item.checked && (\n <StackedArea.Area\n x={groupKey}\n y={item.id}\n key={item.id}\n color={item.color}\n transparent={highlightedLine !== -1 && highlightedLine !== index}\n curve={curve}\n onClick={onClickArea}\n >\n {showDots && <StackedArea.Area.Dots display />}\n </StackedArea.Area>\n )\n );\n })}\n </StackedArea>\n );\n }\n\n return dataDefinitions.map((item, index) => {\n return (\n item.checked && (\n <Area\n x={groupKey}\n y={item.id}\n key={item.id}\n color={item.color}\n transparent={highlightedLine !== -1 && highlightedLine !== index}\n curve={curve}\n onClick={onClickArea}\n >\n {showDots && <Area.Dots display />}\n </Area>\n )\n );\n });\n }\n\n renderTooltip() {\n const { data, groupKey } = this.asProps;\n\n return (\n <HoverLine.Tooltip x={groupKey} wMin={100}>\n {({ xIndex }: any) => {\n const dataItem = data[xIndex];\n\n return {\n children: this.getTooltipChildren({\n Tooltip: HoverLine.Tooltip,\n dataItem,\n }),\n };\n }}\n </HoverLine.Tooltip>\n );\n }\n\n protected getLegendAriaLabel(): string {\n return this.asProps.getI18nText('legendForChart', { chartType: 'Area' });\n }\n}\n\n/**\n * AreaChart\n *\n * {@link https://developer.semrush.com/intergalactic/data-display/area-chart/area-chart-api/|API} | {@link https://developer.semrush.com/intergalactic/data-display/area-chart/area-chart-code/|Examples}\n */\nexport const AreaChart = createComponent<\n AreaChartType,\n typeof AreaChartComponent\n>(AreaChartComponent);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"AreaChart.js","names":["createComponent","i18nEnhance","scaleLinear","scaleTime","React","Area","minMax","HoverLine","StackedArea","AbstractChart","localizedMessages","AreaChartComponent","xScale","marginY","data","groupKey","asProps","plotWidth","testItem","range","plotPadding","domain","Date","Number","isNaN","getMilliseconds","yScale","marginX","stacked","plotHeight","flatValues","min","Math","max","maxStackedValue","renderChart","curve","showDots","onClickArea","dataDefinitions","highlightedLine","state","createElement","x","map","item","index","checked","y","id","key","color","transparent","onClick","Dots","display","renderTooltip","Tooltip","wMin","xIndex","dataItem","children","getTooltipChildren","getLegendAriaLabel","getI18nText","chartType","_defineProperty","direction","showXAxis","showYAxis","showTooltip","AreaChart"],"sources":["../../../../src/component/Chart/AreaChart.tsx"],"sourcesContent":["import { createComponent } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport { type ScaleLinear, scaleLinear, scaleTime } from 'd3-scale';\nimport React from 'react';\n\n// @ts-ignore\nimport { Area, minMax, HoverLine, StackedArea } from '../..';\nimport type { ChartState } from './AbstractChart';\nimport { AbstractChart } from './AbstractChart';\nimport type { AreaChartData, AreaChartProps, AreaChartType, AreaChartDefaultProps } from './AreaChart.type';\nimport { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';\n\nclass AreaChartComponent extends AbstractChart<\n AreaChartData,\n AreaChartProps,\n typeof AreaChartComponent.enhance,\n {},\n ChartState,\n AreaChartDefaultProps\n> {\n static displayName = 'Chart.Area';\n\n static enhance = [i18nEnhance(localizedMessages)] as const;\n\n static defaultProps = {\n direction: 'column',\n showXAxis: true,\n showYAxis: true,\n showTooltip: true,\n } as const;\n\n get xScale() {\n const { xScale, marginY = 40, data, groupKey } = this.asProps;\n const { plotWidth } = this;\n\n if (xScale) {\n return xScale;\n }\n\n const testItem = data[0][groupKey];\n const range = [marginY, plotWidth - this.plotPadding];\n const domain = minMax(data, groupKey);\n\n if (testItem instanceof Date && !Number.isNaN(testItem.getMilliseconds())) {\n return scaleTime(domain, range);\n }\n\n return scaleLinear(domain, range);\n }\n\n get yScale(): ScaleLinear<any, any> {\n const { yScale, marginX = 24, stacked } = this.asProps;\n const { plotHeight } = this;\n\n if (yScale) {\n return yScale;\n }\n\n const flatValues = super.flatValues;\n const min = Math.min(...flatValues);\n const max = stacked ? super.maxStackedValue : Math.max(...flatValues);\n\n return scaleLinear()\n .range([plotHeight - marginX, this.plotPadding])\n .domain([min, max]);\n }\n\n renderChart() {\n const { groupKey, curve, showDots, stacked, onClickArea } = this.asProps;\n const { dataDefinitions, highlightedLine } = this.state;\n\n if (stacked) {\n return (\n <StackedArea x={groupKey}>\n {dataDefinitions.map((item, index) => {\n return (\n item.checked && (\n <StackedArea.Area\n x={groupKey}\n y={item.id}\n key={item.id}\n color={item.color}\n transparent={highlightedLine !== -1 && highlightedLine !== index}\n curve={curve}\n onClick={onClickArea}\n >\n {showDots && <StackedArea.Area.Dots display />}\n </StackedArea.Area>\n )\n );\n })}\n </StackedArea>\n );\n }\n\n return dataDefinitions.map((item, index) => {\n return (\n item.checked && (\n <Area\n x={groupKey}\n y={item.id}\n key={item.id}\n color={item.color}\n transparent={highlightedLine !== -1 && highlightedLine !== index}\n curve={curve}\n onClick={onClickArea}\n >\n {showDots && <Area.Dots display />}\n </Area>\n )\n );\n });\n }\n\n renderTooltip() {\n const { data, groupKey } = this.asProps;\n\n return (\n <HoverLine.Tooltip x={groupKey} wMin={100}>\n {({ xIndex }: any) => {\n const dataItem = data[xIndex];\n\n return {\n children: this.getTooltipChildren({\n Tooltip: HoverLine.Tooltip,\n dataItem,\n }),\n };\n }}\n </HoverLine.Tooltip>\n );\n }\n\n protected getLegendAriaLabel(): string {\n return this.asProps.getI18nText('legendForChart', { chartType: 'Area' });\n }\n}\n\n/**\n * AreaChart\n *\n * {@link https://developer.semrush.com/intergalactic/data-display/area-chart/area-chart-api/|API} | {@link https://developer.semrush.com/intergalactic/data-display/area-chart/area-chart-code/|Examples}\n */\nexport const AreaChart = createComponent<\n AreaChartType,\n typeof AreaChartComponent\n>(AreaChartComponent);\n"],"mappings":"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","ignoreList":[]}
@@ -220,12 +220,14 @@ class BarChartComponent extends AbstractChart {
220
220
  const {
221
221
  marginY = 40,
222
222
  marginX = 24,
223
- plotWidth,
224
- plotHeight,
225
223
  invertAxis,
226
224
  data,
227
225
  groupKey
228
226
  } = this.asProps;
227
+ const {
228
+ plotWidth,
229
+ plotHeight
230
+ } = this;
229
231
  const testItem = data[0][groupKey];
230
232
  const range = invertAxis ? [plotHeight - marginX, this.plotPadding] : [marginY, plotWidth - this.plotPadding];
231
233
  if (testItem instanceof Date && !Number.isNaN(testItem.getMilliseconds())) {
@@ -239,11 +241,13 @@ class BarChartComponent extends AbstractChart {
239
241
  const {
240
242
  marginY = 40,
241
243
  marginX = 24,
242
- plotWidth,
243
- plotHeight,
244
244
  invertAxis,
245
245
  type
246
246
  } = this.asProps;
247
+ const {
248
+ plotWidth,
249
+ plotHeight
250
+ } = this;
247
251
  const max = type === 'stack' ? super.maxStackedValue : Math.max(...super.flatValues);
248
252
  return scaleLinear().range(invertAxis ? [marginY, plotWidth - this.plotPadding] : [plotHeight - marginX, this.plotPadding]).domain([0, max]);
249
253
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BarChart.js","names":["createComponent","i18nEnhance","scaleBand","scaleLinear","scaleTime","React","AbstractChart","minMax","GroupBar","HoverRect","StackBar","Line","YAxis","XAxis","localizedMessages","BarChartComponent","constructor","args","_defineProperty","_data","e","barIndex","barKey","onClickBar","asProps","xScale","invertAxis","valueScale","categoryScale","yScale","defaultLegendProps","props","trend","undefined","withTrend","renderTrend","key","groupKey","state","trendItem","createElement","data","x","y","color","style","strokeWidth","strokeDasharray","Dots","display","renderChart","type","dataDefinitions","highlightedLine","length","item","BarComponent","HorizontalBar","Bar","checked","Fragment","id","onClick","handleClickBar","map","index","commonBarComponentProps","transparent","_extends","renderTooltip","onClickHoverRect","Tooltip","wMin","xIndex","yIndex","dataItem","children","getTooltipChildren","renderAxis","showXAxis","showYAxis","axisXValueFormatter","axisYValueFormatter","multilineXTicks","multilineYTicks","Array","isArray","xTicks","yTicks","childrenX","value","childrenY","Ticks","primaryText","multiline","ticks","Grid","getLegendAriaLabel","getI18nText","chartType","marginY","marginX","plotWidth","plotHeight","testItem","range","plotPadding","Date","Number","isNaN","getMilliseconds","domain","paddingInner","paddingOuter","max","maxStackedValue","Math","flatValues","direction","showTooltip","BarChart"],"sources":["../../../../src/component/Chart/BarChart.tsx"],"sourcesContent":["import { createComponent } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport { scaleBand, scaleLinear, scaleTime } from 'd3-scale';\nimport React from 'react';\n\nimport type { ChartState } from './AbstractChart';\nimport { AbstractChart } from './AbstractChart';\nimport type { BaseLegendProps } from './AbstractChart.type';\nimport type { BarChartData, BarChartProps, BarChartType, BarChartDefaultProps } from './BarChart.type';\n// @ts-ignore\nimport { minMax, GroupBar, HoverRect, StackBar, Line, YAxis, XAxis } from '../..';\nimport { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';\nimport type { BarProps } from '../../types';\nimport type { LegendItemKey } from '../ChartLegend/LegendItem/LegendItem.type';\n\nclass BarChartComponent extends AbstractChart<\n BarChartData,\n BarChartProps,\n typeof BarChartComponent.enhance,\n {},\n ChartState,\n BarChartDefaultProps\n> {\n static displayName = 'Chart.Bar';\n\n static enhance = [i18nEnhance(localizedMessages)] as const;\n\n static defaultProps = {\n direction: 'column',\n showXAxis: true,\n showYAxis: true,\n showTooltip: true,\n } as const;\n\n get xScale() {\n const { xScale, invertAxis } = this.asProps;\n\n if (xScale) {\n return xScale;\n }\n\n return invertAxis ? this.valueScale : this.categoryScale;\n }\n\n get yScale() {\n const { yScale, invertAxis } = this.asProps;\n\n if (yScale) {\n return yScale;\n }\n\n return invertAxis ? this.categoryScale : this.valueScale;\n }\n\n protected defaultLegendProps(): Partial<BaseLegendProps> {\n if (this.props.trend !== undefined) {\n return { withTrend: true };\n }\n\n return {};\n }\n\n renderTrend(key: LegendItemKey) {\n const { groupKey, invertAxis, trend } = this.asProps;\n const { withTrend } = this.state;\n const trendItem = trend?.[key];\n\n if (withTrend && trendItem) {\n return (\n <Line\n data={trendItem}\n key={`${key}_${groupKey}`}\n x={invertAxis ? 'y' : 'x'}\n y={invertAxis ? 'x' : 'y'}\n color='wall'\n style={{ strokeWidth: 3, strokeDasharray: 5 }}\n >\n <Line.Dots data={trendItem} display />\n </Line>\n );\n }\n\n return null;\n }\n\n renderChart() {\n const { groupKey, type = 'group', invertAxis } = this.asProps;\n const { dataDefinitions, highlightedLine } = this.state;\n\n if (dataDefinitions.length === 1) {\n const item = dataDefinitions[0];\n const BarComponent = invertAxis ? GroupBar.HorizontalBar : GroupBar.Bar;\n\n return (\n item.checked && (\n <>\n <BarComponent\n x={invertAxis ? item.id : groupKey}\n y={invertAxis ? groupKey : item.id}\n key={item.id}\n color={item.color}\n onClick={this.handleClickBar}\n />\n {this.renderTrend(item.id)}\n </>\n )\n );\n }\n\n if (type === 'group') {\n return (\n <>\n <GroupBar x={invertAxis ? undefined : groupKey} y={invertAxis ? groupKey : undefined}>\n {dataDefinitions.map((item, index) => {\n const BarComponent = invertAxis ? GroupBar.HorizontalBar : GroupBar.Bar;\n\n const commonBarComponentProps: BarProps = {\n color: item.color,\n transparent: highlightedLine !== -1 && highlightedLine !== index,\n onClick: this.handleClickBar,\n };\n\n if (invertAxis) {\n commonBarComponentProps.x = item.id;\n } else {\n commonBarComponentProps.y = item.id;\n }\n\n return item.checked && <BarComponent key={item.id} {...commonBarComponentProps} />;\n })}\n </GroupBar>\n {dataDefinitions.map((item) => item.checked && this.renderTrend(item.id))}\n </>\n );\n }\n\n if (type === 'stack') {\n return (\n <>\n <StackBar x={invertAxis ? undefined : groupKey} y={invertAxis ? groupKey : undefined}>\n {dataDefinitions.map((item, index) => {\n const BarComponent = invertAxis ? StackBar.HorizontalBar : StackBar.Bar;\n\n const commonBarComponentProps: BarProps = {\n color: item.color,\n transparent: highlightedLine !== -1 && highlightedLine !== index,\n onClick: this.handleClickBar,\n };\n\n if (invertAxis) {\n commonBarComponentProps.x = item.id;\n } else {\n commonBarComponentProps.y = item.id;\n }\n\n return item.checked && <BarComponent key={item.id} {...commonBarComponentProps} />;\n })}\n </StackBar>\n {dataDefinitions.map((item) => item.checked && this.renderTrend(item.id))}\n </>\n );\n }\n\n return null;\n }\n\n renderTooltip(): React.ReactNode {\n const { data, groupKey, invertAxis, onClickHoverRect } = this.asProps;\n\n return (\n <HoverRect.Tooltip\n x={invertAxis ? undefined : groupKey}\n y={invertAxis ? groupKey : undefined}\n wMin={100}\n onClick={onClickHoverRect}\n >\n {({ xIndex, yIndex }: any) => {\n const index = invertAxis ? yIndex : xIndex;\n const dataItem = data[index];\n\n return {\n children: this.getTooltipChildren({\n Tooltip: HoverRect.Tooltip,\n dataItem,\n }),\n };\n }}\n </HoverRect.Tooltip>\n );\n }\n\n protected override 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 primaryText={invertAxis} multiline={multilineYTicks} ticks={yTicks}>{childrenY}</YAxis.Ticks>\n )\n : (\n <YAxis.Ticks primaryText={invertAxis} 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 getLegendAriaLabel(): string {\n return this.asProps.getI18nText('legendForChart', { chartType: 'Bar' });\n }\n\n private handleClickBar = (\n _data: BarChartData[0],\n e: React.SyntheticEvent,\n barIndex: number,\n barKey: string,\n ) => {\n const { onClickBar } = this.asProps;\n\n if (onClickBar) {\n onClickBar(barIndex, barKey, e);\n }\n };\n\n private get categoryScale() {\n const {\n marginY = 40,\n marginX = 24,\n plotWidth,\n plotHeight,\n invertAxis,\n data,\n groupKey,\n } = this.asProps;\n\n const testItem = data[0][groupKey];\n const range = invertAxis\n ? [plotHeight - marginX, this.plotPadding]\n : [marginY, plotWidth - this.plotPadding];\n\n if (testItem instanceof Date && !Number.isNaN(testItem.getMilliseconds())) {\n const domain = minMax(data, groupKey);\n\n return scaleTime(domain, range);\n }\n\n const domain = data.map((item) => item[groupKey]);\n\n return scaleBand(domain, range).paddingInner(0.4).paddingOuter(0.2);\n }\n\n private get valueScale() {\n const { marginY = 40, marginX = 24, plotWidth, plotHeight, invertAxis, type } = this.asProps;\n\n const max = type === 'stack' ? super.maxStackedValue : Math.max(...super.flatValues);\n\n return scaleLinear()\n .range(\n invertAxis\n ? [marginY, plotWidth - this.plotPadding]\n : [plotHeight - marginX, this.plotPadding],\n )\n .domain([0, max]);\n }\n}\n\n/**\n * BarChart\n *\n * {@link https://developer.semrush.com/intergalactic/data-display/bar-chart/bar-chart-api/|API} | {@link https://developer.semrush.com/intergalactic/data-display/bar-chart/bar-chart-code/|Examples}\n */\nexport const BarChart = createComponent<\n BarChartType,\n typeof BarChartComponent\n>(BarChartComponent);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"BarChart.js","names":["createComponent","i18nEnhance","scaleBand","scaleLinear","scaleTime","React","AbstractChart","minMax","GroupBar","HoverRect","StackBar","Line","YAxis","XAxis","localizedMessages","BarChartComponent","constructor","args","_defineProperty","_data","e","barIndex","barKey","onClickBar","asProps","xScale","invertAxis","valueScale","categoryScale","yScale","defaultLegendProps","props","trend","undefined","withTrend","renderTrend","key","groupKey","state","trendItem","createElement","data","x","y","color","style","strokeWidth","strokeDasharray","Dots","display","renderChart","type","dataDefinitions","highlightedLine","length","item","BarComponent","HorizontalBar","Bar","checked","Fragment","id","onClick","handleClickBar","map","index","commonBarComponentProps","transparent","_extends","renderTooltip","onClickHoverRect","Tooltip","wMin","xIndex","yIndex","dataItem","children","getTooltipChildren","renderAxis","showXAxis","showYAxis","axisXValueFormatter","axisYValueFormatter","multilineXTicks","multilineYTicks","Array","isArray","xTicks","yTicks","childrenX","value","childrenY","Ticks","primaryText","multiline","ticks","Grid","getLegendAriaLabel","getI18nText","chartType","marginY","marginX","plotWidth","plotHeight","testItem","range","plotPadding","Date","Number","isNaN","getMilliseconds","domain","paddingInner","paddingOuter","max","maxStackedValue","Math","flatValues","direction","showTooltip","BarChart"],"sources":["../../../../src/component/Chart/BarChart.tsx"],"sourcesContent":["import { createComponent } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport { scaleBand, scaleLinear, scaleTime } from 'd3-scale';\nimport React from 'react';\n\nimport type { ChartState } from './AbstractChart';\nimport { AbstractChart } from './AbstractChart';\nimport type { BaseLegendProps } from './AbstractChart.type';\nimport type { BarChartData, BarChartProps, BarChartType, BarChartDefaultProps } from './BarChart.type';\n// @ts-ignore\nimport { minMax, GroupBar, HoverRect, StackBar, Line, YAxis, XAxis } from '../..';\nimport { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';\nimport type { BarProps } from '../../types';\nimport type { LegendItemKey } from '../ChartLegend/LegendItem/LegendItem.type';\n\nclass BarChartComponent extends AbstractChart<\n BarChartData,\n BarChartProps,\n typeof BarChartComponent.enhance,\n {},\n ChartState,\n BarChartDefaultProps\n> {\n static displayName = 'Chart.Bar';\n\n static enhance = [i18nEnhance(localizedMessages)] as const;\n\n static defaultProps = {\n direction: 'column',\n showXAxis: true,\n showYAxis: true,\n showTooltip: true,\n } as const;\n\n get xScale() {\n const { xScale, invertAxis } = this.asProps;\n\n if (xScale) {\n return xScale;\n }\n\n return invertAxis ? this.valueScale : this.categoryScale;\n }\n\n get yScale() {\n const { yScale, invertAxis } = this.asProps;\n\n if (yScale) {\n return yScale;\n }\n\n return invertAxis ? this.categoryScale : this.valueScale;\n }\n\n protected defaultLegendProps(): Partial<BaseLegendProps> {\n if (this.props.trend !== undefined) {\n return { withTrend: true };\n }\n\n return {};\n }\n\n renderTrend(key: LegendItemKey) {\n const { groupKey, invertAxis, trend } = this.asProps;\n const { withTrend } = this.state;\n const trendItem = trend?.[key];\n\n if (withTrend && trendItem) {\n return (\n <Line\n data={trendItem}\n key={`${key}_${groupKey}`}\n x={invertAxis ? 'y' : 'x'}\n y={invertAxis ? 'x' : 'y'}\n color='wall'\n style={{ strokeWidth: 3, strokeDasharray: 5 }}\n >\n <Line.Dots data={trendItem} display />\n </Line>\n );\n }\n\n return null;\n }\n\n renderChart() {\n const { groupKey, type = 'group', invertAxis } = this.asProps;\n const { dataDefinitions, highlightedLine } = this.state;\n\n if (dataDefinitions.length === 1) {\n const item = dataDefinitions[0];\n const BarComponent = invertAxis ? GroupBar.HorizontalBar : GroupBar.Bar;\n\n return (\n item.checked && (\n <>\n <BarComponent\n x={invertAxis ? item.id : groupKey}\n y={invertAxis ? groupKey : item.id}\n key={item.id}\n color={item.color}\n onClick={this.handleClickBar}\n />\n {this.renderTrend(item.id)}\n </>\n )\n );\n }\n\n if (type === 'group') {\n return (\n <>\n <GroupBar x={invertAxis ? undefined : groupKey} y={invertAxis ? groupKey : undefined}>\n {dataDefinitions.map((item, index) => {\n const BarComponent = invertAxis ? GroupBar.HorizontalBar : GroupBar.Bar;\n\n const commonBarComponentProps: BarProps = {\n color: item.color,\n transparent: highlightedLine !== -1 && highlightedLine !== index,\n onClick: this.handleClickBar,\n };\n\n if (invertAxis) {\n commonBarComponentProps.x = item.id;\n } else {\n commonBarComponentProps.y = item.id;\n }\n\n return item.checked && <BarComponent key={item.id} {...commonBarComponentProps} />;\n })}\n </GroupBar>\n {dataDefinitions.map((item) => item.checked && this.renderTrend(item.id))}\n </>\n );\n }\n\n if (type === 'stack') {\n return (\n <>\n <StackBar x={invertAxis ? undefined : groupKey} y={invertAxis ? groupKey : undefined}>\n {dataDefinitions.map((item, index) => {\n const BarComponent = invertAxis ? StackBar.HorizontalBar : StackBar.Bar;\n\n const commonBarComponentProps: BarProps = {\n color: item.color,\n transparent: highlightedLine !== -1 && highlightedLine !== index,\n onClick: this.handleClickBar,\n };\n\n if (invertAxis) {\n commonBarComponentProps.x = item.id;\n } else {\n commonBarComponentProps.y = item.id;\n }\n\n return item.checked && <BarComponent key={item.id} {...commonBarComponentProps} />;\n })}\n </StackBar>\n {dataDefinitions.map((item) => item.checked && this.renderTrend(item.id))}\n </>\n );\n }\n\n return null;\n }\n\n renderTooltip(): React.ReactNode {\n const { data, groupKey, invertAxis, onClickHoverRect } = this.asProps;\n\n return (\n <HoverRect.Tooltip\n x={invertAxis ? undefined : groupKey}\n y={invertAxis ? groupKey : undefined}\n wMin={100}\n onClick={onClickHoverRect}\n >\n {({ xIndex, yIndex }: any) => {\n const index = invertAxis ? yIndex : xIndex;\n const dataItem = data[index];\n\n return {\n children: this.getTooltipChildren({\n Tooltip: HoverRect.Tooltip,\n dataItem,\n }),\n };\n }}\n </HoverRect.Tooltip>\n );\n }\n\n protected override 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 primaryText={invertAxis} multiline={multilineYTicks} ticks={yTicks}>{childrenY}</YAxis.Ticks>\n )\n : (\n <YAxis.Ticks primaryText={invertAxis} 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 getLegendAriaLabel(): string {\n return this.asProps.getI18nText('legendForChart', { chartType: 'Bar' });\n }\n\n private handleClickBar = (\n _data: BarChartData[0],\n e: React.SyntheticEvent,\n barIndex: number,\n barKey: string,\n ) => {\n const { onClickBar } = this.asProps;\n\n if (onClickBar) {\n onClickBar(barIndex, barKey, e);\n }\n };\n\n private get categoryScale() {\n const {\n marginY = 40,\n marginX = 24,\n invertAxis,\n data,\n groupKey,\n } = this.asProps;\n const { plotWidth, plotHeight } = this;\n\n const testItem = data[0][groupKey];\n const range = invertAxis\n ? [plotHeight - marginX, this.plotPadding]\n : [marginY, plotWidth - this.plotPadding];\n\n if (testItem instanceof Date && !Number.isNaN(testItem.getMilliseconds())) {\n const domain = minMax(data, groupKey);\n\n return scaleTime(domain, range);\n }\n\n const domain = data.map((item) => item[groupKey]);\n\n return scaleBand(domain, range).paddingInner(0.4).paddingOuter(0.2);\n }\n\n private get valueScale() {\n const { marginY = 40, marginX = 24, invertAxis, type } = this.asProps;\n const { plotWidth, plotHeight } = this;\n\n const max = type === 'stack' ? super.maxStackedValue : Math.max(...super.flatValues);\n\n return scaleLinear()\n .range(\n invertAxis\n ? [marginY, plotWidth - this.plotPadding]\n : [plotHeight - marginX, this.plotPadding],\n )\n .domain([0, max]);\n }\n}\n\n/**\n * BarChart\n *\n * {@link https://developer.semrush.com/intergalactic/data-display/bar-chart/bar-chart-api/|API} | {@link https://developer.semrush.com/intergalactic/data-display/bar-chart/bar-chart-code/|Examples}\n */\nexport const BarChart = createComponent<\n BarChartType,\n typeof BarChartComponent\n>(BarChartComponent);\n"],"mappings":";;AAAA,SAASA,eAAe,QAAQ,eAAe;AAC/C,OAAOC,WAAW,MAAM,8CAA8C;AACtE,SAASC,SAAS,EAAEC,WAAW,EAAEC,SAAS,QAAQ,UAAU;AAC5D,OAAOC,KAAK,MAAM,OAAO;AAGzB,SAASC,aAAa,QAAQ,iBAAiB;AAG/C;AACA,SAASC,MAAM,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,IAAI,EAAEC,KAAK,EAAEC,KAAK,QAAQ,OAAO;AACjF,SAASC,iBAAiB,QAAQ,oDAAoD;AAItF,MAAMC,iBAAiB,SAAST,aAAa,CAO3C;EAAAU,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAC,eAAA,yBAsOyB,CACvBC,KAAsB,EACtBC,CAAuB,EACvBC,QAAgB,EAChBC,MAAc,KACX;MACH,MAAM;QAAEC;MAAW,CAAC,GAAG,IAAI,CAACC,OAAO;MAEnC,IAAID,UAAU,EAAE;QACdA,UAAU,CAACF,QAAQ,EAAEC,MAAM,EAAEF,CAAC,CAAC;MACjC;IACF,CAAC;EAAA;EArOD,IAAIK,MAAMA,CAAA,EAAG;IACX,MAAM;MAAEA,MAAM;MAAEC;IAAW,CAAC,GAAG,IAAI,CAACF,OAAO;IAE3C,IAAIC,MAAM,EAAE;MACV,OAAOA,MAAM;IACf;IAEA,OAAOC,UAAU,GAAG,IAAI,CAACC,UAAU,GAAG,IAAI,CAACC,aAAa;EAC1D;EAEA,IAAIC,MAAMA,CAAA,EAAG;IACX,MAAM;MAAEA,MAAM;MAAEH;IAAW,CAAC,GAAG,IAAI,CAACF,OAAO;IAE3C,IAAIK,MAAM,EAAE;MACV,OAAOA,MAAM;IACf;IAEA,OAAOH,UAAU,GAAG,IAAI,CAACE,aAAa,GAAG,IAAI,CAACD,UAAU;EAC1D;EAEUG,kBAAkBA,CAAA,EAA6B;IACvD,IAAI,IAAI,CAACC,KAAK,CAACC,KAAK,KAAKC,SAAS,EAAE;MAClC,OAAO;QAAEC,SAAS,EAAE;MAAK,CAAC;IAC5B;IAEA,OAAO,CAAC,CAAC;EACX;EAEAC,WAAWA,CAACC,GAAkB,EAAE;IAC9B,MAAM;MAAEC,QAAQ;MAAEX,UAAU;MAAEM;IAAM,CAAC,GAAG,IAAI,CAACR,OAAO;IACpD,MAAM;MAAEU;IAAU,CAAC,GAAG,IAAI,CAACI,KAAK;IAChC,MAAMC,SAAS,GAAGP,KAAK,GAAGI,GAAG,CAAC;IAE9B,IAAIF,SAAS,IAAIK,SAAS,EAAE;MAC1B,oBACElC,KAAA,CAAAmC,aAAA,CAAC7B,IAAI;QACH8B,IAAI,EAAEF,SAAU;QAChBH,GAAG,EAAE,GAAGA,GAAG,IAAIC,QAAQ,EAAG;QAC1BK,CAAC,EAAEhB,UAAU,GAAG,GAAG,GAAG,GAAI;QAC1BiB,CAAC,EAAEjB,UAAU,GAAG,GAAG,GAAG,GAAI;QAC1BkB,KAAK,EAAC,MAAM;QACZC,KAAK,EAAE;UAAEC,WAAW,EAAE,CAAC;UAAEC,eAAe,EAAE;QAAE;MAAE,gBAE9C1C,KAAA,CAAAmC,aAAA,CAAC7B,IAAI,CAACqC,IAAI;QAACP,IAAI,EAAEF,SAAU;QAACU,OAAO;MAAA,CAAE,CACjC,CAAC;IAEX;IAEA,OAAO,IAAI;EACb;EAEAC,WAAWA,CAAA,EAAG;IACZ,MAAM;MAAEb,QAAQ;MAAEc,IAAI,GAAG,OAAO;MAAEzB;IAAW,CAAC,GAAG,IAAI,CAACF,OAAO;IAC7D,MAAM;MAAE4B,eAAe;MAAEC;IAAgB,CAAC,GAAG,IAAI,CAACf,KAAK;IAEvD,IAAIc,eAAe,CAACE,MAAM,KAAK,CAAC,EAAE;MAChC,MAAMC,IAAI,GAAGH,eAAe,CAAC,CAAC,CAAC;MAC/B,MAAMI,YAAY,GAAG9B,UAAU,GAAGlB,QAAQ,CAACiD,aAAa,GAAGjD,QAAQ,CAACkD,GAAG;MAEvE,OACEH,IAAI,CAACI,OAAO,iBACVtD,KAAA,CAAAmC,aAAA,CAAAnC,KAAA,CAAAuD,QAAA,qBACEvD,KAAA,CAAAmC,aAAA,CAACgB,YAAY;QACXd,CAAC,EAAEhB,UAAU,GAAG6B,IAAI,CAACM,EAAE,GAAGxB,QAAS;QACnCM,CAAC,EAAEjB,UAAU,GAAGW,QAAQ,GAAGkB,IAAI,CAACM,EAAG;QACnCzB,GAAG,EAAEmB,IAAI,CAACM,EAAG;QACbjB,KAAK,EAAEW,IAAI,CAACX,KAAM;QAClBkB,OAAO,EAAE,IAAI,CAACC;MAAe,CAC9B,CAAC,EACD,IAAI,CAAC5B,WAAW,CAACoB,IAAI,CAACM,EAAE,CACzB,CACH;IAEL;IAEA,IAAIV,IAAI,KAAK,OAAO,EAAE;MACpB,oBACE9C,KAAA,CAAAmC,aAAA,CAAAnC,KAAA,CAAAuD,QAAA,qBACEvD,KAAA,CAAAmC,aAAA,CAAChC,QAAQ;QAACkC,CAAC,EAAEhB,UAAU,GAAGO,SAAS,GAAGI,QAAS;QAACM,CAAC,EAAEjB,UAAU,GAAGW,QAAQ,GAAGJ;MAAU,GAClFmB,eAAe,CAACY,GAAG,CAAC,CAACT,IAAI,EAAEU,KAAK,KAAK;QACpC,MAAMT,YAAY,GAAG9B,UAAU,GAAGlB,QAAQ,CAACiD,aAAa,GAAGjD,QAAQ,CAACkD,GAAG;QAEvE,MAAMQ,uBAAiC,GAAG;UACxCtB,KAAK,EAAEW,IAAI,CAACX,KAAK;UACjBuB,WAAW,EAAEd,eAAe,KAAK,CAAC,CAAC,IAAIA,eAAe,KAAKY,KAAK;UAChEH,OAAO,EAAE,IAAI,CAACC;QAChB,CAAC;QAED,IAAIrC,UAAU,EAAE;UACdwC,uBAAuB,CAACxB,CAAC,GAAGa,IAAI,CAACM,EAAE;QACrC,CAAC,MAAM;UACLK,uBAAuB,CAACvB,CAAC,GAAGY,IAAI,CAACM,EAAE;QACrC;QAEA,OAAON,IAAI,CAACI,OAAO,iBAAItD,KAAA,CAAAmC,aAAA,CAACgB,YAAY,EAAAY,QAAA;UAAChC,GAAG,EAAEmB,IAAI,CAACM;QAAG,GAAKK,uBAAuB,CAAG,CAAC;MACpF,CAAC,CACO,CAAC,EACVd,eAAe,CAACY,GAAG,CAAET,IAAI,IAAKA,IAAI,CAACI,OAAO,IAAI,IAAI,CAACxB,WAAW,CAACoB,IAAI,CAACM,EAAE,CAAC,CACxE,CAAC;IAEP;IAEA,IAAIV,IAAI,KAAK,OAAO,EAAE;MACpB,oBACE9C,KAAA,CAAAmC,aAAA,CAAAnC,KAAA,CAAAuD,QAAA,qBACEvD,KAAA,CAAAmC,aAAA,CAAC9B,QAAQ;QAACgC,CAAC,EAAEhB,UAAU,GAAGO,SAAS,GAAGI,QAAS;QAACM,CAAC,EAAEjB,UAAU,GAAGW,QAAQ,GAAGJ;MAAU,GAClFmB,eAAe,CAACY,GAAG,CAAC,CAACT,IAAI,EAAEU,KAAK,KAAK;QACpC,MAAMT,YAAY,GAAG9B,UAAU,GAAGhB,QAAQ,CAAC+C,aAAa,GAAG/C,QAAQ,CAACgD,GAAG;QAEvE,MAAMQ,uBAAiC,GAAG;UACxCtB,KAAK,EAAEW,IAAI,CAACX,KAAK;UACjBuB,WAAW,EAAEd,eAAe,KAAK,CAAC,CAAC,IAAIA,eAAe,KAAKY,KAAK;UAChEH,OAAO,EAAE,IAAI,CAACC;QAChB,CAAC;QAED,IAAIrC,UAAU,EAAE;UACdwC,uBAAuB,CAACxB,CAAC,GAAGa,IAAI,CAACM,EAAE;QACrC,CAAC,MAAM;UACLK,uBAAuB,CAACvB,CAAC,GAAGY,IAAI,CAACM,EAAE;QACrC;QAEA,OAAON,IAAI,CAACI,OAAO,iBAAItD,KAAA,CAAAmC,aAAA,CAACgB,YAAY,EAAAY,QAAA;UAAChC,GAAG,EAAEmB,IAAI,CAACM;QAAG,GAAKK,uBAAuB,CAAG,CAAC;MACpF,CAAC,CACO,CAAC,EACVd,eAAe,CAACY,GAAG,CAAET,IAAI,IAAKA,IAAI,CAACI,OAAO,IAAI,IAAI,CAACxB,WAAW,CAACoB,IAAI,CAACM,EAAE,CAAC,CACxE,CAAC;IAEP;IAEA,OAAO,IAAI;EACb;EAEAQ,aAAaA,CAAA,EAAoB;IAC/B,MAAM;MAAE5B,IAAI;MAAEJ,QAAQ;MAAEX,UAAU;MAAE4C;IAAiB,CAAC,GAAG,IAAI,CAAC9C,OAAO;IAErE,oBACEnB,KAAA,CAAAmC,aAAA,CAAC/B,SAAS,CAAC8D,OAAO;MAChB7B,CAAC,EAAEhB,UAAU,GAAGO,SAAS,GAAGI,QAAS;MACrCM,CAAC,EAAEjB,UAAU,GAAGW,QAAQ,GAAGJ,SAAU;MACrCuC,IAAI,EAAE,GAAI;MACVV,OAAO,EAAEQ;IAAiB,GAEzB,CAAC;MAAEG,MAAM;MAAEC;IAAY,CAAC,KAAK;MAC5B,MAAMT,KAAK,GAAGvC,UAAU,GAAGgD,MAAM,GAAGD,MAAM;MAC1C,MAAME,QAAQ,GAAGlC,IAAI,CAACwB,KAAK,CAAC;MAE5B,OAAO;QACLW,QAAQ,EAAE,IAAI,CAACC,kBAAkB,CAAC;UAChCN,OAAO,EAAE9D,SAAS,CAAC8D,OAAO;UAC1BI;QACF,CAAC;MACH,CAAC;IACH,CACiB,CAAC;EAExB;EAEmBG,UAAUA,CAAA,EAAoB;IAC/C,MAAM;MACJpD,UAAU;MACVqD,SAAS;MACTC,SAAS;MACTvC,IAAI;MACJwC,mBAAmB;MACnBC,mBAAmB;MACnBC,eAAe;MACfC;IACF,CAAC,GAAG,IAAI,CAAC5D,OAAO;IAEhB,IAAI,CAAC6D,KAAK,CAACC,OAAO,CAAC7C,IAAI,CAAC,EAAE;MACxB,OAAO,IAAI;IACb;IAEA,MAAM8C,MAAM,GAAG,IAAI,CAACA,MAAM;IAC1B,MAAMC,MAAM,GAAG,IAAI,CAACA,MAAM;IAE1B,MAAMC,SAAS,GAAGR,mBAAmB,GACjC,CAAC;MAAES;IAAW,CAAC,MAAM;MAAEd,QAAQ,EAAEK,mBAAmB,CAACS,KAAK;IAAE,CAAC,CAAC,GAC9DzD,SAAS;IACb,MAAM0D,SAAS,GAAGT,mBAAmB,GACjC,CAAC;MAAEQ;IAAW,CAAC,MAAM;MAAEd,QAAQ,EAAEM,mBAAmB,CAACQ,KAAK;IAAE,CAAC,CAAC,GAC9DzD,SAAS;IAEb,oBACE5B,KAAA,CAAAmC,aAAA,CAAAnC,KAAA,CAAAuD,QAAA,QACGoB,SAAS,iBACR3E,KAAA,CAAAmC,aAAA,CAAC5B,KAAK,QACH4E,MAAM,gBAEDnF,KAAA,CAAAmC,aAAA,CAAC5B,KAAK,CAACgF,KAAK;MAACC,WAAW,EAAEnE,UAAW;MAACoE,SAAS,EAAEV,eAAgB;MAACW,KAAK,EAAEP;IAAO,GAAEG,SAAuB,CAAC,gBAG1GtF,KAAA,CAAAmC,aAAA,CAAC5B,KAAK,CAACgF,KAAK;MAACC,WAAW,EAAEnE,UAAW;MAACoE,SAAS,EAAEV;IAAgB,GAAEO,SAAuB,CAC3F,EACJjE,UAAU,KAAK,IAAI,KAAK8D,MAAM,gBAAGnF,KAAA,CAAAmC,aAAA,CAAC5B,KAAK,CAACoF,IAAI;MAACD,KAAK,EAAEP;IAAO,CAAE,CAAC,gBAAGnF,KAAA,CAAAmC,aAAA,CAAC5B,KAAK,CAACoF,IAAI,MAAE,CAAC,CAC3E,CACR,EAEAjB,SAAS,iBACR1E,KAAA,CAAAmC,aAAA,CAAC3B,KAAK,QACH0E,MAAM,gBAEDlF,KAAA,CAAAmC,aAAA,CAAC3B,KAAK,CAAC+E,KAAK;MAACE,SAAS,EAAEX,eAAgB;MAACY,KAAK,EAAER;IAAO,GAAEE,SAAuB,CAAC,gBAGjFpF,KAAA,CAAAmC,aAAA,CAAC3B,KAAK,CAAC+E,KAAK;MAACE,SAAS,EAAEX;IAAgB,GAAEM,SAAuB,CAClE,EACJ/D,UAAU,KAAK,IAAI,KAAK6D,MAAM,gBAAGlF,KAAA,CAAAmC,aAAA,CAAC3B,KAAK,CAACmF,IAAI;MAACD,KAAK,EAAER;IAAO,CAAE,CAAC,gBAAGlF,KAAA,CAAAmC,aAAA,CAAC3B,KAAK,CAACmF,IAAI,MAAE,CAAC,CAC3E,CAET,CAAC;EAEP;EAEUC,kBAAkBA,CAAA,EAAW;IACrC,OAAO,IAAI,CAACzE,OAAO,CAAC0E,WAAW,CAAC,gBAAgB,EAAE;MAAEC,SAAS,EAAE;IAAM,CAAC,CAAC;EACzE;EAeA,IAAYvE,aAAaA,CAAA,EAAG;IAC1B,MAAM;MACJwE,OAAO,GAAG,EAAE;MACZC,OAAO,GAAG,EAAE;MACZ3E,UAAU;MACVe,IAAI;MACJJ;IACF,CAAC,GAAG,IAAI,CAACb,OAAO;IAChB,MAAM;MAAE8E,SAAS;MAAEC;IAAW,CAAC,GAAG,IAAI;IAEtC,MAAMC,QAAQ,GAAG/D,IAAI,CAAC,CAAC,CAAC,CAACJ,QAAQ,CAAC;IAClC,MAAMoE,KAAK,GAAG/E,UAAU,GACpB,CAAC6E,UAAU,GAAGF,OAAO,EAAE,IAAI,CAACK,WAAW,CAAC,GACxC,CAACN,OAAO,EAAEE,SAAS,GAAG,IAAI,CAACI,WAAW,CAAC;IAE3C,IAAIF,QAAQ,YAAYG,IAAI,IAAI,CAACC,MAAM,CAACC,KAAK,CAACL,QAAQ,CAACM,eAAe,CAAC,CAAC,CAAC,EAAE;MACzE,MAAMC,MAAM,GAAGxG,MAAM,CAACkC,IAAI,EAAEJ,QAAQ,CAAC;MAErC,OAAOjC,SAAS,CAAC2G,MAAM,EAAEN,KAAK,CAAC;IACjC;IAEA,MAAMM,MAAM,GAAGtE,IAAI,CAACuB,GAAG,CAAET,IAAI,IAAKA,IAAI,CAAClB,QAAQ,CAAC,CAAC;IAEjD,OAAOnC,SAAS,CAAC6G,MAAM,EAAEN,KAAK,CAAC,CAACO,YAAY,CAAC,GAAG,CAAC,CAACC,YAAY,CAAC,GAAG,CAAC;EACrE;EAEA,IAAYtF,UAAUA,CAAA,EAAG;IACvB,MAAM;MAAEyE,OAAO,GAAG,EAAE;MAAEC,OAAO,GAAG,EAAE;MAAE3E,UAAU;MAAEyB;IAAK,CAAC,GAAG,IAAI,CAAC3B,OAAO;IACrE,MAAM;MAAE8E,SAAS;MAAEC;IAAW,CAAC,GAAG,IAAI;IAEtC,MAAMW,GAAG,GAAG/D,IAAI,KAAK,OAAO,GAAG,KAAK,CAACgE,eAAe,GAAGC,IAAI,CAACF,GAAG,CAAC,GAAG,KAAK,CAACG,UAAU,CAAC;IAEpF,OAAOlH,WAAW,CAAC,CAAC,CACjBsG,KAAK,CACJ/E,UAAU,GACN,CAAC0E,OAAO,EAAEE,SAAS,GAAG,IAAI,CAACI,WAAW,CAAC,GACvC,CAACH,UAAU,GAAGF,OAAO,EAAE,IAAI,CAACK,WAAW,CAC7C,CAAC,CACAK,MAAM,CAAC,CAAC,CAAC,EAAEG,GAAG,CAAC,CAAC;EACrB;AACF;;AAEA;AACA;AACA;AACA;AACA;AAJAhG,eAAA,CApSMH,iBAAiB,iBAQA,WAAW;AAAAG,eAAA,CAR5BH,iBAAiB,aAUJ,CAACd,WAAW,CAACa,iBAAiB,CAAC,CAAC;AAAAI,eAAA,CAV7CH,iBAAiB,kBAYC;EACpBuG,SAAS,EAAE,QAAQ;EACnBvC,SAAS,EAAE,IAAI;EACfC,SAAS,EAAE,IAAI;EACfuC,WAAW,EAAE;AACf,CAAC;AAwRH,OAAO,MAAMC,QAAQ,GAAGxH,eAAe,CAGrCe,iBAAiB,CAAC","ignoreList":[]}
@@ -49,9 +49,11 @@ class BubbleChartComponent extends AbstractChart {
49
49
  const {
50
50
  xScale,
51
51
  marginY = 30,
52
- plotWidth,
53
52
  data
54
53
  } = this.asProps;
54
+ const {
55
+ plotWidth
56
+ } = this;
55
57
  if (xScale) {
56
58
  return xScale;
57
59
  }
@@ -63,9 +65,11 @@ class BubbleChartComponent extends AbstractChart {
63
65
  const {
64
66
  yScale,
65
67
  marginX = 30,
66
- plotHeight,
67
68
  data
68
69
  } = this.asProps;
70
+ const {
71
+ plotHeight
72
+ } = this;
69
73
  if (yScale) {
70
74
  return yScale;
71
75
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BubbleChart.js","names":["createComponent","i18nEnhance","Text","scaleLinear","React","Bubble","calculateBubbleDomain","AbstractChart","localizedMessages","BubbleChartComponent","dataKeys","data","props","map","_","index","toString","getDefaultDataDefinitions","legendProps","item","key","legendData","legendMap","color","undefined","resolveColor","dataDefinition","id","label","icon","checked","defaultChecked","columns","additionalInfo","count","xScale","marginY","plotWidth","asProps","range","plotPadding","domain","yScale","marginX","plotHeight","defaultLegendProps","shape","renderChart","onClickBubble","dataDefinitions","state","createElement","onClick","x","y","value","Circle","visible","renderTooltip","Tooltip","children","Fragment","Title","tag","getLegendAriaLabel","getI18nText","chartType","_defineProperty","direction","showXAxis","showYAxis","showTooltip","BubbleChart"],"sources":["../../../../src/component/Chart/BubbleChart.tsx"],"sourcesContent":["import { createComponent } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport { Text } from '@semcore/typography';\nimport { scaleLinear, type ScaleLinear } from 'd3-scale';\nimport React from 'react';\n\n// @ts-ignore\nimport { Bubble, calculateBubbleDomain } from '../..';\nimport type { ChartState } from './AbstractChart';\nimport { AbstractChart } from './AbstractChart';\nimport type { BubbleChartData, BubbleChartProps, BubbleChartType, BubbleChartDefaultProps } from './BubbleChart.type';\nimport { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';\nimport type { LegendItem } from '../ChartLegend/LegendItem/LegendItem.type';\n\nclass BubbleChartComponent extends AbstractChart<\n BubbleChartData,\n BubbleChartProps,\n typeof BubbleChartComponent.enhance,\n {},\n ChartState,\n BubbleChartDefaultProps\n> {\n static displayName = 'Chart.Bubble';\n\n static enhance = [i18nEnhance(localizedMessages)] as const;\n\n static defaultProps = {\n direction: 'column',\n showXAxis: true,\n showYAxis: true,\n showTooltip: true,\n } as const;\n\n protected get dataKeys(): string[] {\n const { data } = this.props;\n\n return data.map((_, index) => index.toString());\n }\n\n protected override getDefaultDataDefinitions(): Array<\n LegendItem & { columns: React.ReactNode[] }\n > {\n const { legendProps, data } = this.props;\n\n return data.map((item, index) => {\n const key = index.toString();\n const legendData = legendProps?.legendMap?.[key];\n\n if (item.color === undefined) {\n item.color = this.resolveColor(key, index);\n }\n\n const dataDefinition: LegendItem & { columns: React.ReactNode[] } = {\n id: key,\n label: legendData?.label ?? item.label ?? key,\n icon: legendData?.icon ?? undefined,\n checked: legendData?.defaultChecked ?? true,\n color: item.color,\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 return dataDefinition;\n });\n }\n\n get xScale() {\n const { xScale, marginY = 30, plotWidth, data } = this.asProps;\n\n if (xScale) {\n return xScale;\n }\n\n const range = [marginY, plotWidth - this.plotPadding];\n const domain = calculateBubbleDomain(data, 'x', range);\n\n return scaleLinear().domain(domain).range(range);\n }\n\n get yScale(): ScaleLinear<any, any> {\n const { yScale, marginX = 30, plotHeight, data } = this.asProps;\n\n if (yScale) {\n return yScale;\n }\n\n const range = [plotHeight - marginX, this.plotPadding];\n const domain = calculateBubbleDomain(data, 'y', range);\n\n return scaleLinear().domain(domain).range(range);\n }\n\n defaultLegendProps() {\n return {\n shape: 'Circle' as const,\n };\n }\n\n renderChart() {\n const { onClickBubble } = this.asProps;\n const { dataDefinitions } = this.state;\n\n return (\n <Bubble onClick={onClickBubble} x='x' y='y' value='value' color='color' label='label'>\n {dataDefinitions.map(({ checked, id }, index) => (\n <Bubble.Circle visible={checked} key={id} index={index} />\n ))}\n </Bubble>\n );\n }\n\n renderTooltip() {\n return (\n <Bubble.Tooltip>\n {({ index, data }: any) => {\n return {\n children: (\n <>\n <Bubble.Tooltip.Title>Data</Bubble.Tooltip.Title>\n <Text tag='div'>\n X axis\n {' '}\n {data[index].x}\n </Text>\n <Text tag='div'>\n Y axis\n {' '}\n {data[index].y}\n </Text>\n <Text tag='div'>\n Value\n {' '}\n {data[index].value}\n </Text>\n </>\n ),\n };\n }}\n </Bubble.Tooltip>\n );\n }\n\n protected getLegendAriaLabel(): string {\n return this.asProps.getI18nText('legendForChart', { chartType: 'Bubble' });\n }\n}\n\n/**\n * BubbleChart\n *\n * {@link https://developer.semrush.com/intergalactic/data-display/bubble-chart/bubble-chart-api/|API} | {@link https://developer.semrush.com/intergalactic/data-display/bubble-chart/bubble-chart-code/|Examples}\n */\nexport const BubbleChart = createComponent<\n BubbleChartType,\n typeof BubbleChartComponent\n>(BubbleChartComponent);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"BubbleChart.js","names":["createComponent","i18nEnhance","Text","scaleLinear","React","Bubble","calculateBubbleDomain","AbstractChart","localizedMessages","BubbleChartComponent","dataKeys","data","props","map","_","index","toString","getDefaultDataDefinitions","legendProps","item","key","legendData","legendMap","color","undefined","resolveColor","dataDefinition","id","label","icon","checked","defaultChecked","columns","additionalInfo","count","xScale","marginY","asProps","plotWidth","range","plotPadding","domain","yScale","marginX","plotHeight","defaultLegendProps","shape","renderChart","onClickBubble","dataDefinitions","state","createElement","onClick","x","y","value","Circle","visible","renderTooltip","Tooltip","children","Fragment","Title","tag","getLegendAriaLabel","getI18nText","chartType","_defineProperty","direction","showXAxis","showYAxis","showTooltip","BubbleChart"],"sources":["../../../../src/component/Chart/BubbleChart.tsx"],"sourcesContent":["import { createComponent } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport { Text } from '@semcore/typography';\nimport { scaleLinear, type ScaleLinear } from 'd3-scale';\nimport React from 'react';\n\n// @ts-ignore\nimport { Bubble, calculateBubbleDomain } from '../..';\nimport type { ChartState } from './AbstractChart';\nimport { AbstractChart } from './AbstractChart';\nimport type { BubbleChartData, BubbleChartProps, BubbleChartType, BubbleChartDefaultProps } from './BubbleChart.type';\nimport { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';\nimport type { LegendItem } from '../ChartLegend/LegendItem/LegendItem.type';\n\nclass BubbleChartComponent extends AbstractChart<\n BubbleChartData,\n BubbleChartProps,\n typeof BubbleChartComponent.enhance,\n {},\n ChartState,\n BubbleChartDefaultProps\n> {\n static displayName = 'Chart.Bubble';\n\n static enhance = [i18nEnhance(localizedMessages)] as const;\n\n static defaultProps = {\n direction: 'column',\n showXAxis: true,\n showYAxis: true,\n showTooltip: true,\n } as const;\n\n protected get dataKeys(): string[] {\n const { data } = this.props;\n\n return data.map((_, index) => index.toString());\n }\n\n protected override getDefaultDataDefinitions(): Array<\n LegendItem & { columns: React.ReactNode[] }\n > {\n const { legendProps, data } = this.props;\n\n return data.map((item, index) => {\n const key = index.toString();\n const legendData = legendProps?.legendMap?.[key];\n\n if (item.color === undefined) {\n item.color = this.resolveColor(key, index);\n }\n\n const dataDefinition: LegendItem & { columns: React.ReactNode[] } = {\n id: key,\n label: legendData?.label ?? item.label ?? key,\n icon: legendData?.icon ?? undefined,\n checked: legendData?.defaultChecked ?? true,\n color: item.color,\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 return dataDefinition;\n });\n }\n\n get xScale() {\n const { xScale, marginY = 30, data } = this.asProps;\n const { plotWidth } = this;\n\n if (xScale) {\n return xScale;\n }\n\n const range = [marginY, plotWidth - this.plotPadding];\n const domain = calculateBubbleDomain(data, 'x', range);\n\n return scaleLinear().domain(domain).range(range);\n }\n\n get yScale(): ScaleLinear<any, any> {\n const { yScale, marginX = 30, data } = this.asProps;\n const { plotHeight } = this;\n\n if (yScale) {\n return yScale;\n }\n\n const range = [plotHeight - marginX, this.plotPadding];\n const domain = calculateBubbleDomain(data, 'y', range);\n\n return scaleLinear().domain(domain).range(range);\n }\n\n defaultLegendProps() {\n return {\n shape: 'Circle' as const,\n };\n }\n\n renderChart() {\n const { onClickBubble } = this.asProps;\n const { dataDefinitions } = this.state;\n\n return (\n <Bubble onClick={onClickBubble} x='x' y='y' value='value' color='color' label='label'>\n {dataDefinitions.map(({ checked, id }, index) => (\n <Bubble.Circle visible={checked} key={id} index={index} />\n ))}\n </Bubble>\n );\n }\n\n renderTooltip() {\n return (\n <Bubble.Tooltip>\n {({ index, data }: any) => {\n return {\n children: (\n <>\n <Bubble.Tooltip.Title>Data</Bubble.Tooltip.Title>\n <Text tag='div'>\n X axis\n {' '}\n {data[index].x}\n </Text>\n <Text tag='div'>\n Y axis\n {' '}\n {data[index].y}\n </Text>\n <Text tag='div'>\n Value\n {' '}\n {data[index].value}\n </Text>\n </>\n ),\n };\n }}\n </Bubble.Tooltip>\n );\n }\n\n protected getLegendAriaLabel(): string {\n return this.asProps.getI18nText('legendForChart', { chartType: 'Bubble' });\n }\n}\n\n/**\n * BubbleChart\n *\n * {@link https://developer.semrush.com/intergalactic/data-display/bubble-chart/bubble-chart-api/|API} | {@link https://developer.semrush.com/intergalactic/data-display/bubble-chart/bubble-chart-code/|Examples}\n */\nexport const BubbleChart = createComponent<\n BubbleChartType,\n typeof BubbleChartComponent\n>(BubbleChartComponent);\n"],"mappings":"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","ignoreList":[]}
@@ -100,12 +100,14 @@ class CigaretteChartComponent extends AbstractChart {
100
100
  }
101
101
  computeCigaretteItems() {
102
102
  const {
103
- plotWidth,
104
- plotHeight,
105
103
  data,
106
104
  invertAxis,
107
105
  minimalBarWidth
108
106
  } = this.asProps;
107
+ const {
108
+ plotWidth,
109
+ plotHeight
110
+ } = this;
109
111
  const dataDefinitions = invertAxis ? this.activeDataDefinitions : [...this.activeDataDefinitions].reverse();
110
112
  const count = this.activePositiveDataDefinitions.length;
111
113
  const totalGapWidth = DEFAULT_GAP * Math.max(0, count - 1);
@@ -156,13 +158,13 @@ class CigaretteChartComponent extends AbstractChart {
156
158
  get xScale() {
157
159
  const {
158
160
  plotWidth
159
- } = this.asProps;
161
+ } = this;
160
162
  return scaleLinear([0, plotWidth]);
161
163
  }
162
164
  get yScale() {
163
165
  const {
164
166
  plotHeight
165
- } = this.asProps;
167
+ } = this;
166
168
  return scaleLinear([plotHeight, 0]);
167
169
  }
168
170
  renderChart() {
@@ -172,14 +174,16 @@ class CigaretteChartComponent extends AbstractChart {
172
174
  uid,
173
175
  duration,
174
176
  patterns,
175
- plotHeight,
176
- plotWidth,
177
177
  onClick
178
178
  } = this.asProps;
179
179
  const {
180
180
  dataDefinitions,
181
181
  highlightedLine
182
182
  } = this.state;
183
+ const {
184
+ plotWidth,
185
+ plotHeight
186
+ } = this;
183
187
  this.offset = 0;
184
188
  const items = this.computeCigaretteItems();
185
189
  return /*#__PURE__*/React.createElement(React.Fragment, null, items.map((item, index) => {
@@ -363,21 +367,25 @@ class CigaretteChartComponent extends AbstractChart {
363
367
  const SChart = Flex;
364
368
  const {
365
369
  styles,
366
- plotWidth,
367
- plotHeight,
368
370
  data,
369
371
  patterns,
372
+ direction,
370
373
  invertAxis,
371
374
  a11yAltTextConfig
372
375
  } = this.asProps;
376
+ const {
377
+ plotWidth,
378
+ plotHeight
379
+ } = this;
373
380
  const header = this.renderHeader();
374
381
  if (invertAxis) {
375
382
  var _ref5;
376
383
  return _ref5 = sstyled(styles), /*#__PURE__*/React.createElement(SChart, _ref5.cn("SChart", {
377
384
  ..._assignProps3({
378
385
  "gap": 6,
379
- "direction": 'column',
380
- "__excludeProps": ['onClick', 'data']
386
+ "direction": direction,
387
+ "__excludeProps": ['onClick', 'data'],
388
+ "ref": this.chartRef
381
389
  }, _ref2)
382
390
  }), /*#__PURE__*/React.createElement(Flex, _ref5.cn("Flex", {
383
391
  "direction": 'column'
@@ -397,7 +405,8 @@ class CigaretteChartComponent extends AbstractChart {
397
405
  return _ref6 = sstyled(styles), /*#__PURE__*/React.createElement(SChart, _ref6.cn("SChart", {
398
406
  ..._assignProps4({
399
407
  "gap": 6,
400
- "__excludeProps": ['onClick', 'data']
408
+ "__excludeProps": ['onClick', 'data'],
409
+ "ref": this.chartRef
401
410
  }, _ref2)
402
411
  }), /*#__PURE__*/React.createElement(Plot, _ref6.cn("Plot", {
403
412
  "ref": this.plotRef,
@@ -473,7 +482,8 @@ _defineProperty(CigaretteChartComponent, "defaultProps", props => {
473
482
  plotWidth: !invertAxis && !props.plotWidth ? 44 : props.plotWidth,
474
483
  plotHeight: invertAxis && !props.plotHeight ? 28 : props.plotHeight,
475
484
  showPercentValueInTooltip: false,
476
- minimalBarWidth: DEFAULT_MINIMAL_BAR_WIDTH
485
+ minimalBarWidth: DEFAULT_MINIMAL_BAR_WIDTH,
486
+ direction: invertAxis ? 'column' : 'row'
477
487
  };
478
488
  });
479
489
  _defineProperty(CigaretteChartComponent, "enhance", [resolveColorEnhance(), uniqueIDEnhancement(), i18nEnhance(localizedMessages)]);