@semcore/d3-chart 16.4.2 → 16.5.0-prerelease.2

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 (163) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +4 -4
  3. package/lib/cjs/Area.js +11 -11
  4. package/lib/cjs/Axis.js +15 -15
  5. package/lib/cjs/Bar.js +16 -16
  6. package/lib/cjs/Bubble.js +15 -15
  7. package/lib/cjs/Bubble.js.map +1 -1
  8. package/lib/cjs/CompactHorizontalBar.js +21 -19
  9. package/lib/cjs/CompactHorizontalBar.js.map +1 -1
  10. package/lib/cjs/Donut.js +12 -11
  11. package/lib/cjs/Donut.js.map +1 -1
  12. package/lib/cjs/Dots.js +8 -8
  13. package/lib/cjs/HorizontalBar.js +16 -16
  14. package/lib/cjs/Hover.js +7 -7
  15. package/lib/cjs/Hover.js.map +1 -1
  16. package/lib/cjs/Line.js +9 -9
  17. package/lib/cjs/Plot.js +3 -3
  18. package/lib/cjs/Radar.js +21 -21
  19. package/lib/cjs/Radar.js.map +1 -1
  20. package/lib/cjs/RadialTree.js +24 -24
  21. package/lib/cjs/RadialTree.js.map +1 -1
  22. package/lib/cjs/Reference.js +12 -12
  23. package/lib/cjs/ScatterPlot.js +12 -11
  24. package/lib/cjs/ScatterPlot.js.map +1 -1
  25. package/lib/cjs/Tooltip.js +9 -9
  26. package/lib/cjs/Venn.js +12 -11
  27. package/lib/cjs/Venn.js.map +1 -1
  28. package/lib/cjs/a11y/PlotA11yModule.js +5 -5
  29. package/lib/cjs/a11y/PlotA11yModule.js.map +1 -1
  30. package/lib/cjs/a11y/PlotA11yView.js +2 -2
  31. package/lib/cjs/component/Chart/AbstractChart.js +119 -35
  32. package/lib/cjs/component/Chart/AbstractChart.js.map +1 -1
  33. package/lib/cjs/component/Chart/AreaChart.js +5 -29
  34. package/lib/cjs/component/Chart/AreaChart.js.map +1 -1
  35. package/lib/cjs/component/Chart/BarChart.js +5 -29
  36. package/lib/cjs/component/Chart/BarChart.js.map +1 -1
  37. package/lib/cjs/component/Chart/BubbleChart.js +0 -4
  38. package/lib/cjs/component/Chart/BubbleChart.js.map +1 -1
  39. package/lib/cjs/component/Chart/BubbleChart.type.js.map +1 -1
  40. package/lib/cjs/component/Chart/CigaretteChart.js +96 -59
  41. package/lib/cjs/component/Chart/CigaretteChart.js.map +1 -1
  42. package/lib/cjs/component/Chart/CigaretteChart.type.js.map +1 -1
  43. package/lib/cjs/component/Chart/CompactHorizontalBarChart.type.js.map +1 -1
  44. package/lib/cjs/component/Chart/DonutChart.js +1 -6
  45. package/lib/cjs/component/Chart/DonutChart.js.map +1 -1
  46. package/lib/cjs/component/Chart/DonutChart.type.js.map +1 -1
  47. package/lib/cjs/component/Chart/HistogramChart.js +4 -28
  48. package/lib/cjs/component/Chart/HistogramChart.js.map +1 -1
  49. package/lib/cjs/component/Chart/LineChart.js +5 -29
  50. package/lib/cjs/component/Chart/LineChart.js.map +1 -1
  51. package/lib/cjs/component/Chart/RadarChart.type.js.map +1 -1
  52. package/lib/cjs/component/Chart/ScatterPlotChart.js +1 -5
  53. package/lib/cjs/component/Chart/ScatterPlotChart.js.map +1 -1
  54. package/lib/cjs/component/Chart/ScatterPlotChart.type.js.map +1 -1
  55. package/lib/cjs/component/Chart/VennChart.js +0 -4
  56. package/lib/cjs/component/Chart/VennChart.js.map +1 -1
  57. package/lib/cjs/component/Chart/VennChart.type.js.map +1 -1
  58. package/lib/cjs/component/ChartLegend/LegendFlex/LegendFlex.js +4 -4
  59. package/lib/cjs/component/ChartLegend/LegendItem/LegendItem.js +17 -17
  60. package/lib/cjs/component/ChartLegend/LegendTable/LegendTable.js +6 -6
  61. package/lib/cjs/style/abstract-chart.shadow.css +12 -0
  62. package/lib/es6/Area.js +11 -11
  63. package/lib/es6/Axis.js +15 -15
  64. package/lib/es6/Bar.js +16 -16
  65. package/lib/es6/Bubble.js +15 -15
  66. package/lib/es6/Bubble.js.map +1 -1
  67. package/lib/es6/CompactHorizontalBar.js +21 -19
  68. package/lib/es6/CompactHorizontalBar.js.map +1 -1
  69. package/lib/es6/Donut.js +12 -11
  70. package/lib/es6/Donut.js.map +1 -1
  71. package/lib/es6/Dots.js +8 -8
  72. package/lib/es6/HorizontalBar.js +16 -16
  73. package/lib/es6/Hover.js +7 -7
  74. package/lib/es6/Hover.js.map +1 -1
  75. package/lib/es6/Line.js +9 -9
  76. package/lib/es6/Plot.js +3 -3
  77. package/lib/es6/Radar.js +21 -21
  78. package/lib/es6/Radar.js.map +1 -1
  79. package/lib/es6/RadialTree.js +24 -24
  80. package/lib/es6/RadialTree.js.map +1 -1
  81. package/lib/es6/Reference.js +12 -12
  82. package/lib/es6/ScatterPlot.js +12 -11
  83. package/lib/es6/ScatterPlot.js.map +1 -1
  84. package/lib/es6/Tooltip.js +9 -9
  85. package/lib/es6/Venn.js +12 -11
  86. package/lib/es6/Venn.js.map +1 -1
  87. package/lib/es6/a11y/PlotA11yModule.js +4 -4
  88. package/lib/es6/a11y/PlotA11yModule.js.map +1 -1
  89. package/lib/es6/a11y/PlotA11yView.js +2 -2
  90. package/lib/es6/component/Chart/AbstractChart.js +119 -31
  91. package/lib/es6/component/Chart/AbstractChart.js.map +1 -1
  92. package/lib/es6/component/Chart/AreaChart.js +5 -29
  93. package/lib/es6/component/Chart/AreaChart.js.map +1 -1
  94. package/lib/es6/component/Chart/BarChart.js +5 -29
  95. package/lib/es6/component/Chart/BarChart.js.map +1 -1
  96. package/lib/es6/component/Chart/BubbleChart.js +0 -4
  97. package/lib/es6/component/Chart/BubbleChart.js.map +1 -1
  98. package/lib/es6/component/Chart/BubbleChart.type.js.map +1 -1
  99. package/lib/es6/component/Chart/CigaretteChart.js +100 -61
  100. package/lib/es6/component/Chart/CigaretteChart.js.map +1 -1
  101. package/lib/es6/component/Chart/CigaretteChart.type.js.map +1 -1
  102. package/lib/es6/component/Chart/CompactHorizontalBarChart.type.js.map +1 -1
  103. package/lib/es6/component/Chart/DonutChart.js +1 -6
  104. package/lib/es6/component/Chart/DonutChart.js.map +1 -1
  105. package/lib/es6/component/Chart/DonutChart.type.js.map +1 -1
  106. package/lib/es6/component/Chart/HistogramChart.js +4 -28
  107. package/lib/es6/component/Chart/HistogramChart.js.map +1 -1
  108. package/lib/es6/component/Chart/LineChart.js +5 -29
  109. package/lib/es6/component/Chart/LineChart.js.map +1 -1
  110. package/lib/es6/component/Chart/RadarChart.type.js.map +1 -1
  111. package/lib/es6/component/Chart/ScatterPlotChart.js +1 -5
  112. package/lib/es6/component/Chart/ScatterPlotChart.js.map +1 -1
  113. package/lib/es6/component/Chart/ScatterPlotChart.type.js.map +1 -1
  114. package/lib/es6/component/Chart/VennChart.js +0 -4
  115. package/lib/es6/component/Chart/VennChart.js.map +1 -1
  116. package/lib/es6/component/Chart/VennChart.type.js.map +1 -1
  117. package/lib/es6/component/ChartLegend/LegendFlex/LegendFlex.js +4 -4
  118. package/lib/es6/component/ChartLegend/LegendItem/LegendItem.js +17 -17
  119. package/lib/es6/component/ChartLegend/LegendTable/LegendTable.js +6 -6
  120. package/lib/es6/style/abstract-chart.shadow.css +12 -0
  121. package/lib/esm/Area.mjs +12 -12
  122. package/lib/esm/Axis.mjs +16 -16
  123. package/lib/esm/Bar.mjs +17 -17
  124. package/lib/esm/Bubble.mjs +16 -16
  125. package/lib/esm/CompactHorizontalBar.mjs +21 -20
  126. package/lib/esm/Donut.mjs +12 -12
  127. package/lib/esm/Dots.mjs +9 -9
  128. package/lib/esm/HorizontalBar.mjs +17 -17
  129. package/lib/esm/Hover.mjs +8 -8
  130. package/lib/esm/Line.mjs +10 -10
  131. package/lib/esm/Plot.mjs +4 -4
  132. package/lib/esm/Radar.mjs +22 -22
  133. package/lib/esm/RadialTree.mjs +27 -27
  134. package/lib/esm/Reference.mjs +13 -13
  135. package/lib/esm/ScatterPlot.mjs +12 -12
  136. package/lib/esm/Tooltip.mjs +10 -10
  137. package/lib/esm/Venn.mjs +12 -12
  138. package/lib/esm/a11y/PlotA11yModule.mjs +5 -5
  139. package/lib/esm/a11y/PlotA11yView.mjs +3 -3
  140. package/lib/esm/component/Chart/AbstractChart.mjs +103 -19
  141. package/lib/esm/component/Chart/AreaChart.mjs +5 -27
  142. package/lib/esm/component/Chart/BarChart.mjs +6 -28
  143. package/lib/esm/component/Chart/BubbleChart.mjs +0 -4
  144. package/lib/esm/component/Chart/CigaretteChart.mjs +78 -45
  145. package/lib/esm/component/Chart/DonutChart.mjs +1 -4
  146. package/lib/esm/component/Chart/HistogramChart.mjs +5 -27
  147. package/lib/esm/component/Chart/LineChart.mjs +5 -27
  148. package/lib/esm/component/Chart/ScatterPlotChart.mjs +1 -4
  149. package/lib/esm/component/Chart/VennChart.mjs +0 -4
  150. package/lib/esm/component/ChartLegend/LegendFlex/LegendFlex.mjs +5 -5
  151. package/lib/esm/component/ChartLegend/LegendItem/LegendItem.mjs +18 -18
  152. package/lib/esm/component/ChartLegend/LegendTable/LegendTable.mjs +7 -7
  153. package/lib/esm/style/abstract-chart.shadow.css +12 -0
  154. package/lib/types/a11y/PlotA11yModule.d.ts +1 -1
  155. package/lib/types/component/Chart/AbstractChart.d.ts +11 -1
  156. package/lib/types/component/Chart/BubbleChart.type.d.ts +1 -1
  157. package/lib/types/component/Chart/CigaretteChart.type.d.ts +2 -0
  158. package/lib/types/component/Chart/CompactHorizontalBarChart.type.d.ts +1 -1
  159. package/lib/types/component/Chart/DonutChart.type.d.ts +1 -1
  160. package/lib/types/component/Chart/RadarChart.type.d.ts +1 -1
  161. package/lib/types/component/Chart/ScatterPlotChart.type.d.ts +1 -1
  162. package/lib/types/component/Chart/VennChart.type.d.ts +1 -1
  163. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractChart.js","names":["_core","require","_ariaProps","_assignProps2","_flexBox","_typography","_react","_interopRequireDefault","_","_hints","_utils","_ChartLegend","_interopRequireWildcard","AbstractChart","exports","_Component","props","_this","_classCallCheck2","_callSuper2","_defineProperty2","makeDataHintsContainer","dataDefinitions","getDefaultDataDefinitions","highlightedLine","withTrend","setHighlightedLine","bind","handleChangeVisible","handleMouseEnter","handleMouseLeave","resolveColor","tooltipValueFormatter","handleWithTrendChange","_inherits2","_createClass2","key","value","componentDidUpdate","prevProps","data","legendProps","setState","_this2","_this$props","dataKeys","map","index","_legendProps$legendMa","_legendData$label","_legendData$icon","_legendData$defaultCh","legendData","legendMap","dataDefinition","id","label","icon","undefined","checked","defaultChecked","color","columns","additionalInfo","count","Array","isArray","dataValue","Map","get","interpolateValue","Number","total","Object","values","reduce","sum","i","percent","toFixed","createElement","Text","concat","use","_this$props2","groupKey","keys","filter","_this$asProps","asProps","invertAxis","xTicksCount","yTicksCount","scale","xScale","ticks","_this$asProps2","yScale","_this$asProps3","flatValues","result","item","add","entries","forEach","_ref3","_ref4","_slicedToArray2","Set","_this$asProps4","max","val","barSum","_ref5","_ref6","Date","isNaN","getMilliseconds","totalValue","state","legendItem","getValueScale","Math","apply","_toConsumableArray2","min","avg","round","log10","valueScale","pow","isVisible","prevState","findIndex","line","_this$props$colorMap$","_this$props$colorMap","colorMap","toDateString","toString","defaultLegendProps","legendType","renderLegend","_lProps$direction","_this$asProps5","direction","showLegend","patterns","length","_this$state","lProps","_objectSpread2","commonLegendProps","dataHints","size","shape","w","h","disableSelectItems","callAllEventHandlers","onChangeVisibleItem","disableHoverItems","onMouseEnterItem","onMouseLeaveItem","getLegendAriaLabel","ChartLegendTable","flexLegendProps","trendLabel","trendIsVisible","onTrendIsVisibleChange","renderAxis","_this$asProps6","showXAxis","showYAxis","axisXValueFormatter","axisYValueFormatter","multilineXTicks","multilineYTicks","xTicks","yTicks","childrenX","_ref7","children","childrenY","_ref8","Fragment","YAxis","Ticks","multiline","Grid","XAxis","render","_ref","_ref2","SChart","Flex","_this$asProps7","styles","plotWidth","plotHeight","a11yAltTextConfig","duration","eventEmitter","_extractAriaProps","extractAriaProps","extractedAriaProps","sstyled","cn","assignProps","Plot","renderTooltip","renderChart","Component","showTooltip"],"sources":["../../../../src/component/Chart/AbstractChart.tsx"],"sourcesContent":["import { Component, Root, sstyled } from '@semcore/core';\nimport { extractAriaProps } from '@semcore/core/lib/utils/ariaProps';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\nimport { Flex } from '@semcore/flex-box';\nimport { Text } from '@semcore/typography';\nimport type { ScaleBand, ScaleLinear, ScaleTime } from 'd3-scale';\nimport React from 'react';\n\nimport type { BaseChartProps, BaseLegendProps, ListData, ObjectData } from './AbstractChart.type';\n// @ts-ignore\nimport { Plot, XAxis, YAxis } from '../..';\nimport { makeDataHintsContainer } from '../../a11y/hints';\nimport { interpolateValue } from '../../utils';\nimport ChartLegend, { ChartLegendTable } from '../ChartLegend';\nimport type { LegendFlexProps } from '../ChartLegend/LegendFlex/LegendFlex.type';\nimport type { LegendItem } from '../ChartLegend/LegendItem/LegendItem.type';\nimport type { LegendTableProps } from '../ChartLegend/LegendTable/LegendTable.type';\n\ntype ChartState = {\n dataDefinitions: Array<LegendItem & { columns: React.ReactNode[] }>;\n highlightedLine: number;\n withTrend: boolean;\n};\n\nexport abstract class AbstractChart<\n D extends ListData | ObjectData,\n T extends BaseChartProps<D>,\n E extends readonly ((...args: any[]) => any)[] = [],\n> extends Component<T, {}, ChartState, E> {\n public static style = {};\n public static defaultProps: Partial<BaseChartProps<any>> = {\n direction: 'column',\n showXAxis: true,\n showYAxis: true,\n showTooltip: true,\n };\n\n /**\n * Padding from the end's of chart to the container (except axis sides)\n */\n protected plotPadding = 6;\n\n protected dataHints = makeDataHintsContainer();\n\n public state: ChartState = {\n dataDefinitions: this.getDefaultDataDefinitions(),\n highlightedLine: -1,\n withTrend: false,\n };\n\n constructor(props: T) {\n super(props);\n\n this.setHighlightedLine = this.setHighlightedLine.bind(this);\n this.handleChangeVisible = this.handleChangeVisible.bind(this);\n this.handleMouseEnter = this.handleMouseEnter.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.resolveColor = this.resolveColor.bind(this);\n this.tooltipValueFormatter = this.tooltipValueFormatter.bind(this);\n this.handleWithTrendChange = this.handleWithTrendChange.bind(this);\n }\n\n public componentDidUpdate(prevProps: T) {\n if (prevProps.data !== this.props.data || prevProps.legendProps !== this.props.legendProps) {\n this.setState({ dataDefinitions: this.getDefaultDataDefinitions() });\n }\n }\n\n protected getDefaultDataDefinitions(): Array<LegendItem & { columns: React.ReactNode[] }> {\n const { data, legendProps } = this.props;\n\n return this.dataKeys.map((key, index) => {\n const legendData = legendProps?.legendMap?.[key];\n\n const dataDefinition: LegendItem & { columns: React.ReactNode[] } = {\n id: key,\n label: legendData?.label ?? key,\n icon: legendData?.icon ?? undefined,\n checked: legendData?.defaultChecked ?? true,\n color: this.resolveColor(key, index),\n columns: [],\n };\n\n if (legendData?.additionalInfo || legendData?.count) {\n dataDefinition.additionalInfo = legendData.additionalInfo\n ? { label: legendData.additionalInfo }\n : legendData.count\n ? { count: legendData.count }\n : undefined;\n }\n\n if (legendData && 'columns' in legendData) {\n dataDefinition.columns = legendData.columns || [];\n } else if (!Array.isArray(data)) {\n let value: number | undefined = undefined;\n let dataValue = data[key];\n\n if (data instanceof Map) {\n dataValue = data.get(key);\n }\n\n if (dataValue !== interpolateValue) {\n value = Number(dataValue);\n }\n\n const total = Object.values(data).reduce<number>((sum, i) => {\n if (i !== interpolateValue) {\n return sum + Number(i);\n }\n\n return sum;\n }, 0);\n const percent = value !== undefined ? ((value / total) * 100).toFixed(2) : undefined;\n\n dataDefinition.columns = [\n <Text key={`${key}_percent`} use='secondary'>\n {percent !== undefined ? `${percent}%` : ''}\n </Text>,\n <Text key={`${key}_value`} use={value ? 'primary' : 'secondary'}>\n {value ?? 'n/a'}\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 const total = dataDefinitions.reduce((sum, legendItem) => {\n const item = data[legendItem.id];\n\n if (typeof item === 'number') {\n return sum + item;\n }\n\n if (item instanceof Date && !Number.isNaN(item.getMilliseconds())) {\n return sum + item.getMilliseconds();\n }\n\n return sum;\n }, 0);\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 'n/a';\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 public render() {\n const SChart = Root;\n const { styles, plotWidth, plotHeight, data, patterns, a11yAltTextConfig, duration, eventEmitter } =\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 {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":["_core","require","_ariaProps","_assignProps3","_flexBox","_typography","_react","_interopRequireWildcard","_","_hints","_utils","_ChartLegend","style","sstyled","insert","NOT_A_VALUE","exports","AbstractChart","_Component","props","_this","_classCallCheck2","_callSuper2","_defineProperty2","makeDataHintsContainer","dataDefinitions","getDefaultDataDefinitions","highlightedLine","withTrend","setHighlightedLine","bind","handleChangeVisible","handleMouseEnter","handleMouseLeave","resolveColor","tooltipValueFormatter","handleWithTrendChange","_inherits2","_createClass2","key","value","componentDidUpdate","prevProps","data","legendProps","setState","_this2","_this$props","dataKeys","map","index","_legendProps$legendMa","_legendData$label","_legendData$icon","_legendData$defaultCh","legendData","legendMap","dataDefinition","id","label","icon","undefined","checked","defaultChecked","color","columns","additionalInfo","count","Array","isArray","dataValue","Map","get","interpolateValue","Number","total","Object","values","reduce","sum","i","percent","toFixed","createElement","Text","concat","use","_this$props2","groupKey","keys","filter","_this$asProps","asProps","invertAxis","xTicksCount","yTicksCount","scale","xScale","ticks","_this$asProps2","yScale","_this$asProps3","flatValues","result","item","add","entries","forEach","_ref5","_ref6","_slicedToArray2","Set","_this$asProps4","max","val","barSum","_ref7","_ref8","Date","isNaN","getMilliseconds","totalValue","state","allNotAValue","legendItem","NaN","percentValue","Math","round","getValueScale","apply","_toConsumableArray2","min","avg","log10","valueScale","pow","isVisible","prevState","findIndex","line","_this$props$colorMap$","_this$props$colorMap","colorMap","toDateString","toString","defaultLegendProps","legendType","renderLegend","_lProps$direction","_this$asProps5","direction","showLegend","patterns","length","_this$state","lProps","_objectSpread2","commonLegendProps","dataHints","size","shape","w","h","disableSelectItems","callAllEventHandlers","onChangeVisibleItem","disableHoverItems","onMouseEnterItem","onMouseLeaveItem","getLegendAriaLabel","ChartLegendTable","flexLegendProps","trendLabel","trendIsVisible","onTrendIsVisibleChange","renderAxis","_this$asProps6","showXAxis","showYAxis","axisXValueFormatter","axisYValueFormatter","multilineXTicks","multilineYTicks","xTicks","yTicks","childrenX","_ref9","children","childrenY","_ref0","Fragment","YAxis","Ticks","multiline","Grid","XAxis","getTooltipChildren","options","_ref","_ref3","_dataItem","_this3","STooltipChildrenWrapper","Box","Tooltip","dataItem","_this$asProps7","styles","title","Flex","cn","Title","assignProps","Dot","mr","textAlign","bold","renderTooltipTotalLine","showTotalInTooltip","mt","render","_ref2","_ref4","SChart","_this$asProps8","plotWidth","plotHeight","a11yAltTextConfig","duration","eventEmitter","showTooltip","_extractAriaProps","extractAriaProps","extractedAriaProps","Plot","renderTooltip","renderChart","Component"],"sources":["../../../../src/component/Chart/AbstractChart.tsx"],"sourcesContent":["import { Component, Root, sstyled } from '@semcore/core';\nimport { extractAriaProps } from '@semcore/core/lib/utils/ariaProps';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\nimport { Flex, Box } from '@semcore/flex-box';\nimport { Text } from '@semcore/typography';\nimport type { ScaleBand, ScaleLinear, ScaleTime } from 'd3-scale';\nimport React, { Fragment } from 'react';\n\nimport type { BaseChartProps, BaseLegendProps, ListData, ObjectData } from './AbstractChart.type';\n// @ts-ignore\nimport type { HoverLine, HoverRect } from '../..';\n// @ts-ignore\nimport { Plot, XAxis, YAxis } from '../..';\nimport { makeDataHintsContainer } from '../../a11y/hints';\nimport style from '../../style/abstract-chart.shadow.css';\nimport { interpolateValue } from '../../utils';\nimport ChartLegend, { ChartLegendTable } from '../ChartLegend';\nimport type { LegendFlexProps } from '../ChartLegend/LegendFlex/LegendFlex.type';\nimport type { LegendItem } from '../ChartLegend/LegendItem/LegendItem.type';\nimport type { LegendTableProps } from '../ChartLegend/LegendTable/LegendTable.type';\n\ntype ChartState = {\n dataDefinitions: Array<LegendItem & { columns: React.ReactNode[] }>;\n highlightedLine: number;\n withTrend: boolean;\n};\n\nexport const NOT_A_VALUE = 'n/a';\n\nexport abstract class AbstractChart<\n D extends ListData | ObjectData,\n T extends BaseChartProps<D>,\n E extends readonly ((...args: any[]) => any)[] = [],\n> extends Component<T, {}, ChartState, E> {\n public static style = style;\n public static defaultProps: Partial<BaseChartProps<any>> = {\n direction: 'column',\n showXAxis: true,\n showYAxis: true,\n showTooltip: true,\n };\n\n /**\n * Padding from the end's of chart to the container (except axis sides)\n */\n protected plotPadding = 6;\n\n protected dataHints = makeDataHintsContainer();\n\n public state: ChartState = {\n dataDefinitions: this.getDefaultDataDefinitions(),\n highlightedLine: -1,\n withTrend: false,\n };\n\n constructor(props: T) {\n super(props);\n\n this.setHighlightedLine = this.setHighlightedLine.bind(this);\n this.handleChangeVisible = this.handleChangeVisible.bind(this);\n this.handleMouseEnter = this.handleMouseEnter.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.resolveColor = this.resolveColor.bind(this);\n this.tooltipValueFormatter = this.tooltipValueFormatter.bind(this);\n this.handleWithTrendChange = this.handleWithTrendChange.bind(this);\n }\n\n public componentDidUpdate(prevProps: T) {\n if (prevProps.data !== this.props.data || prevProps.legendProps !== this.props.legendProps) {\n this.setState({ dataDefinitions: this.getDefaultDataDefinitions() });\n }\n }\n\n protected getDefaultDataDefinitions(): Array<LegendItem & { columns: React.ReactNode[] }> {\n const { data, legendProps } = this.props;\n\n return this.dataKeys.map((key, index) => {\n const legendData = legendProps?.legendMap?.[key];\n\n const dataDefinition: LegendItem & { columns: React.ReactNode[] } = {\n id: key,\n label: legendData?.label ?? key,\n icon: legendData?.icon ?? undefined,\n checked: legendData?.defaultChecked ?? true,\n color: this.resolveColor(key, index),\n columns: [],\n };\n\n if (legendData?.additionalInfo || legendData?.count) {\n dataDefinition.additionalInfo = legendData.additionalInfo\n ? { label: legendData.additionalInfo }\n : legendData.count\n ? { count: legendData.count }\n : undefined;\n }\n\n if (legendData && 'columns' in legendData) {\n dataDefinition.columns = legendData.columns || [];\n } else if (!Array.isArray(data)) {\n let value: number | undefined = undefined;\n let dataValue = data[key];\n\n if (data instanceof Map) {\n dataValue = data.get(key);\n }\n\n if (dataValue !== interpolateValue) {\n value = Number(dataValue);\n }\n\n const total = Object.values(data).reduce<number>((sum, i) => {\n if (i !== interpolateValue) {\n return sum + Number(i);\n }\n\n return sum;\n }, 0);\n const percent = value !== undefined ? ((value / total) * 100).toFixed(2) : undefined;\n\n dataDefinition.columns = [\n <Text key={`${key}_percent`} use='secondary'>\n {percent !== undefined ? `${percent}%` : ''}\n </Text>,\n <Text key={`${key}_value`} use={value ? 'primary' : 'secondary'}>\n {value ?? NOT_A_VALUE}\n </Text>,\n ];\n }\n\n return dataDefinition;\n });\n }\n\n protected abstract get xScale(): ScaleBand<any> | ScaleLinear<any, any> | ScaleTime<any, any>;\n protected abstract get yScale(): ScaleBand<any> | ScaleLinear<any, any> | ScaleTime<any, any>;\n\n protected abstract getLegendAriaLabel(): string;\n protected abstract renderChart(): React.ReactNode;\n protected abstract renderTooltip(): React.ReactNode;\n\n protected get dataKeys(): string[] {\n const { data, groupKey } = this.props;\n\n let dataKeys: string[];\n\n if (Array.isArray(data) && groupKey) {\n dataKeys = Object.keys(data[0]).filter((key) => key !== groupKey);\n } else {\n dataKeys = Object.keys(data);\n }\n\n return dataKeys;\n }\n\n protected get xTicks(): number[] | Date[] | undefined {\n const { data, invertAxis, xTicksCount, yTicksCount } = this.asProps;\n\n const scale = this.xScale;\n\n if (Array.isArray(data) && 'ticks' in scale) {\n if (invertAxis && yTicksCount) {\n return scale.ticks(yTicksCount);\n } else if (xTicksCount) {\n return scale.ticks(xTicksCount);\n }\n\n return undefined;\n }\n\n return undefined;\n }\n\n protected get yTicks(): number[] | Date[] | undefined {\n const { data, invertAxis, xTicksCount, yTicksCount } = this.asProps;\n\n const scale = this.yScale;\n\n if (Array.isArray(data) && 'ticks' in scale) {\n if (invertAxis && xTicksCount) {\n return scale.ticks(xTicksCount);\n } else if (yTicksCount) {\n return scale.ticks(yTicksCount);\n }\n\n return undefined;\n }\n\n return undefined;\n }\n\n protected get flatValues(): Set<number> {\n const { data, groupKey } = this.asProps;\n const values: any[] = Array.isArray(data) ? data : Object.values(data);\n\n const flatValues = values.reduce<Set<number>>((result, item) => {\n if (!groupKey && typeof item === 'number') {\n result.add(item);\n } else {\n Object.entries(item).forEach(([key, value]) => {\n if (key !== groupKey && typeof value === 'number') {\n result.add(value);\n }\n });\n }\n\n return result;\n }, new Set());\n\n return flatValues;\n }\n\n protected get maxStackedValue(): number {\n const { data, groupKey } = this.asProps;\n\n if (!Array.isArray(data)) {\n const max = Object.values(data).reduce<number>((sum, val) => {\n if (typeof val === 'number') {\n sum = sum + val;\n }\n\n return sum;\n }, 0);\n\n return max;\n }\n\n const max = data.reduce((max, item) => {\n const barSum = Object.entries(item).reduce<number>((sum, [key, val]) => {\n if (key === groupKey) {\n return sum;\n }\n\n if (typeof val === 'number') {\n return sum + val;\n }\n\n if (val instanceof Date && !Number.isNaN(val.getMilliseconds())) {\n return sum + val.getMilliseconds();\n }\n\n return sum;\n }, 0);\n\n if (barSum > max) {\n max = barSum;\n }\n\n return max;\n }, 0);\n\n return max;\n }\n\n protected totalValue(data: ObjectData): number {\n const { dataDefinitions } = this.state;\n\n let allNotAValue = true;\n\n const total = dataDefinitions.reduce((sum, legendItem) => {\n const item = data[legendItem.id];\n\n if (item === null) {\n allNotAValue = false;\n return sum;\n }\n\n if (typeof item === 'number') {\n allNotAValue = false;\n return sum + item;\n }\n\n if (item instanceof Date && !Number.isNaN(item.getMilliseconds())) {\n allNotAValue = false;\n return sum + item.getMilliseconds();\n }\n\n return sum;\n }, 0);\n\n if (allNotAValue) {\n return Number.NaN;\n }\n\n return total;\n }\n\n protected percentValue(data: ObjectData, key: string): string {\n const total = this.totalValue(data);\n\n const value = data[key];\n\n if (typeof value === 'number' && total !== 0) {\n const percent = Math.round((100 * value) / total);\n\n return `${percent}%`;\n }\n\n if (value === null) {\n return `0%`;\n }\n\n return NOT_A_VALUE;\n }\n\n protected getValueScale(values: number[]): number {\n const max = Math.max(...values);\n const min = Math.min(...values);\n\n const avg = (max + min) / 2;\n const count = Math.round(Math.log10(avg));\n\n const valueScale = 100 / 10 ** count;\n\n return valueScale;\n }\n\n protected setHighlightedLine(index: number) {\n this.setState({ highlightedLine: index });\n }\n\n protected handleChangeVisible(id: string, isVisible: boolean) {\n this.setState((prevState) => {\n const dataDefinitions = prevState.dataDefinitions.map((item) => {\n if (item.id === id) {\n item.checked = isVisible;\n }\n\n return item;\n });\n\n return { dataDefinitions };\n });\n }\n\n protected handleWithTrendChange(isVisible: boolean) {\n this.setState({ withTrend: isVisible });\n }\n\n protected handleMouseEnter(id: string) {\n this.setHighlightedLine(this.state.dataDefinitions.findIndex((line) => line.id === id));\n }\n\n protected handleMouseLeave() {\n this.setHighlightedLine(-1);\n }\n\n protected resolveColor(id: string, index: number) {\n return this.props.colorMap?.[id] ?? `chart-palette-order-${index + 1}`;\n }\n\n protected tooltipValueFormatter(\n value?: string | number | typeof interpolateValue | Date,\n ): string {\n const { tooltipValueFormatter } = this.asProps;\n\n if (tooltipValueFormatter) {\n return tooltipValueFormatter(value);\n }\n\n if (value === undefined || value === interpolateValue) {\n return NOT_A_VALUE;\n }\n\n if (value === null) {\n return '0';\n }\n\n if (value instanceof Date) {\n return value.toDateString();\n }\n\n return value.toString();\n }\n\n protected defaultLegendProps(): Partial<BaseLegendProps> {\n return {\n legendType: 'Flex',\n };\n }\n\n protected renderLegend() {\n const { legendProps, direction, showLegend, patterns } = this.asProps;\n\n if (\n // we hide Legend for one item on chart except not manually set to show.\n showLegend === undefined && this.dataKeys.length === 1 ||\n showLegend === false\n ) {\n return null;\n }\n\n const { dataDefinitions, withTrend } = this.state;\n const lProps = {\n ...this.defaultLegendProps(),\n ...legendProps,\n };\n\n const commonLegendProps: LegendFlexProps | LegendTableProps = {\n 'dataHints': this.dataHints,\n 'items': dataDefinitions,\n 'size': lProps.size,\n 'shape': lProps.shape,\n 'w': lProps.w,\n 'h': lProps.h,\n patterns,\n 'direction':\n lProps.direction ?? (direction === 'row' || direction === 'row-reverse' ? 'column' : 'row'),\n 'onChangeVisibleItem': lProps.disableSelectItems\n ? undefined\n : callAllEventHandlers(lProps.onChangeVisibleItem, this.handleChangeVisible),\n 'onMouseEnterItem': lProps.disableHoverItems\n ? undefined\n : callAllEventHandlers(lProps.onMouseEnterItem, this.handleMouseEnter),\n 'onMouseLeaveItem': lProps.disableHoverItems\n ? undefined\n : callAllEventHandlers(lProps.onMouseLeaveItem, this.handleMouseLeave),\n 'aria-label': this.getLegendAriaLabel(),\n };\n\n if (lProps.legendType === 'Table') {\n return <ChartLegendTable {...(commonLegendProps as LegendTableProps)} />;\n }\n\n if ('withTrend' in lProps) {\n const flexLegendProps = {\n ...commonLegendProps,\n withTrend: true,\n trendLabel: lProps.trendLabel,\n trendIsVisible: withTrend,\n onTrendIsVisibleChange: this.handleWithTrendChange,\n };\n\n return <ChartLegend {...(flexLegendProps as LegendFlexProps)} />;\n }\n\n return <ChartLegend {...(commonLegendProps as LegendFlexProps)} />;\n }\n\n protected renderAxis(): React.ReactNode {\n const {\n invertAxis,\n showXAxis,\n showYAxis,\n data,\n axisXValueFormatter,\n axisYValueFormatter,\n multilineXTicks,\n multilineYTicks,\n } = this.asProps;\n\n if (!Array.isArray(data)) {\n return null;\n }\n\n const xTicks = this.xTicks;\n const yTicks = this.yTicks;\n\n const childrenX = axisXValueFormatter\n ? ({ value }: any) => ({ children: axisXValueFormatter(value) })\n : undefined;\n const childrenY = axisYValueFormatter\n ? ({ value }: any) => ({ children: axisYValueFormatter(value) })\n : undefined;\n\n return (\n <>\n {showYAxis && (\n <YAxis>\n {yTicks\n ? (\n <YAxis.Ticks multiline={multilineYTicks} ticks={yTicks}>{childrenY}</YAxis.Ticks>\n )\n : (\n <YAxis.Ticks multiline={multilineYTicks}>{childrenY}</YAxis.Ticks>\n )}\n {invertAxis !== true && (yTicks ? <YAxis.Grid ticks={yTicks} /> : <YAxis.Grid />)}\n </YAxis>\n )}\n\n {showXAxis && (\n <XAxis>\n {xTicks\n ? (\n <XAxis.Ticks multiline={multilineXTicks} ticks={xTicks}>{childrenX}</XAxis.Ticks>\n )\n : (\n <XAxis.Ticks multiline={multilineXTicks}>{childrenX}</XAxis.Ticks>\n )}\n {invertAxis === true && (xTicks ? <XAxis.Grid ticks={xTicks} /> : <XAxis.Grid />)}\n </XAxis>\n )}\n </>\n );\n }\n\n protected getTooltipChildren<D extends ObjectData>(options: {\n Tooltip: typeof HoverLine['Tooltip'] | typeof HoverRect['Tooltip'];\n dataItem: D;\n }) {\n const STooltipChildrenWrapper = Root;\n const { Tooltip, dataItem } = options;\n\n const { styles, groupKey } = this.asProps;\n const { dataDefinitions } = this.state;\n const title = dataItem[groupKey as keyof D]?.toString();\n\n return sstyled(styles)(\n <Flex direction='column'>\n { title && <Tooltip.Title>{title}</Tooltip.Title> }\n\n <STooltipChildrenWrapper\n render={Box}\n columnsCount='2'\n __excludeProps={['data']}\n >\n {dataDefinitions.map((item) => {\n return (\n item.checked && (\n <Fragment key={item.id}>\n <Tooltip.Dot mr={2} color={item.color}>\n {item.label}\n </Tooltip.Dot>\n <Text textAlign='end' bold>{this.tooltipValueFormatter(dataItem[item.id] as string)}</Text>\n </Fragment>\n )\n );\n })}\n\n {this.renderTooltipTotalLine(dataItem)}\n </STooltipChildrenWrapper>\n </Flex>,\n );\n }\n\n protected renderTooltipTotalLine<D extends ObjectData>(dataItem: D) {\n const { showTotalInTooltip } = this.asProps;\n\n if (!showTotalInTooltip) {\n return null;\n }\n\n const total = this.totalValue(dataItem);\n\n return (\n <>\n <Box mt={2} mr={2}>Total</Box>\n <Text mt={2} textAlign='end' bold>{Number.isNaN(total) ? NOT_A_VALUE : total}</Text>\n </>\n );\n }\n\n public render() {\n const SChart = Root;\n const { styles, plotWidth, plotHeight, data, patterns, a11yAltTextConfig, duration, eventEmitter, showTooltip } =\n this.asProps;\n\n const { extractedAriaProps } = extractAriaProps(this.asProps);\n\n return sstyled(styles)(\n <SChart render={Flex} gap={5} __excludeProps={['data', 'eventEmitter']} role='group'>\n {this.renderLegend()}\n <Plot\n data={data}\n scale={[this.xScale, this.yScale]}\n width={plotWidth}\n height={plotHeight}\n dataHints={this.dataHints}\n a11yAltTextConfig={a11yAltTextConfig}\n patterns={patterns}\n duration={duration}\n eventEmitter={eventEmitter}\n {...extractedAriaProps}\n >\n {this.renderAxis()}\n {!showTooltip ? null : this.renderTooltip()}\n {this.renderChart()}\n </Plot>\n </SChart>,\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -14,8 +14,6 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits
14
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
15
  var _core = require("@semcore/core");
16
16
  var _i18nEnhance = _interopRequireDefault(require("@semcore/core/lib/utils/enhances/i18nEnhance"));
17
- var _flexBox = require("@semcore/flex-box");
18
- var _typography = require("@semcore/typography");
19
17
  var _d3Scale = require("d3-scale");
20
18
  var _react = _interopRequireDefault(require("react"));
21
19
  var _ = require("../..");
@@ -115,40 +113,18 @@ var AreaChartComponent = /*#__PURE__*/function (_AbstractChart) {
115
113
  var _this = this;
116
114
  var _this$asProps4 = this.asProps,
117
115
  data = _this$asProps4.data,
118
- groupKey = _this$asProps4.groupKey,
119
- showTotalInTooltip = _this$asProps4.showTotalInTooltip,
120
- showTooltip = _this$asProps4.showTooltip;
121
- var dataDefinitions = this.state.dataDefinitions;
122
- if (!showTooltip) {
123
- return null;
124
- }
116
+ groupKey = _this$asProps4.groupKey;
125
117
  return /*#__PURE__*/_react["default"].createElement(_.HoverLine.Tooltip, {
126
118
  x: groupKey,
127
119
  wMin: 100
128
120
  }, function (_ref) {
129
- var _dataItem$groupKey;
130
121
  var xIndex = _ref.xIndex;
131
122
  var dataItem = data[xIndex];
132
- var total = _this.totalValue(dataItem);
133
123
  return {
134
- children: /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_.HoverLine.Tooltip.Title, null, (_dataItem$groupKey = dataItem[groupKey]) === null || _dataItem$groupKey === void 0 ? void 0 : _dataItem$groupKey.toString()), dataDefinitions.map(function (item) {
135
- return item.checked && /*#__PURE__*/_react["default"].createElement(_flexBox.Flex, {
136
- justifyContent: "space-between",
137
- key: item.id
138
- }, /*#__PURE__*/_react["default"].createElement(_.HoverLine.Tooltip.Dot, {
139
- mr: 4,
140
- color: item.color
141
- }, item.label), /*#__PURE__*/_react["default"].createElement(_typography.Text, {
142
- bold: true
143
- }, _this.tooltipValueFormatter(dataItem[item.id])));
144
- }), showTotalInTooltip === true && /*#__PURE__*/_react["default"].createElement(_flexBox.Flex, {
145
- mt: 2,
146
- justifyContent: "space-between"
147
- }, /*#__PURE__*/_react["default"].createElement(_flexBox.Box, {
148
- mr: 4
149
- }, "Total"), /*#__PURE__*/_react["default"].createElement(_typography.Text, {
150
- bold: true
151
- }, total)))
124
+ children: _this.getTooltipChildren({
125
+ Tooltip: _.HoverLine.Tooltip,
126
+ dataItem: dataItem
127
+ })
152
128
  };
153
129
  });
154
130
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AreaChart.js","names":["_core","require","_i18nEnhance","_interopRequireDefault","_flexBox","_typography","_d3Scale","_react","_","_AbstractChart2","_intergalacticDynamicLocales","AreaChartComponent","_AbstractChart","_classCallCheck2","_callSuper2","arguments","_inherits2","_createClass2","key","get","_this$asProps","asProps","xScale","_this$asProps$marginY","marginY","plotWidth","data","groupKey","testItem","range","plotPadding","domain","minMax","Date","Number","isNaN","getMilliseconds","scaleTime","scaleLinear","_this$asProps2","yScale","_this$asProps2$margin","marginX","plotHeight","stacked","flatValues","_superPropGet2","min","Math","apply","_toConsumableArray2","max","value","renderChart","_this$asProps3","curve","showDots","onClickArea","_this$state","state","dataDefinitions","highlightedLine","createElement","StackedArea","x","map","item","index","checked","Area","y","id","color","transparent","onClick","Dots","display","renderTooltip","_this","_this$asProps4","showTotalInTooltip","showTooltip","HoverLine","Tooltip","wMin","_ref","_dataItem$groupKey","xIndex","dataItem","total","totalValue","children","Fragment","Title","toString","Flex","justifyContent","Dot","mr","label","Text","bold","tooltipValueFormatter","mt","Box","getLegendAriaLabel","getI18nText","chartType","AbstractChart","_defineProperty2","i18nEnhance","localizedMessages","AreaChart","exports","createComponent"],"sources":["../../../../src/component/Chart/AreaChart.tsx"],"sourcesContent":["import { createComponent } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport { Flex, Box } from '@semcore/flex-box';\nimport { Text } from '@semcore/typography';\nimport { type ScaleLinear, scaleLinear, scaleTime } from 'd3-scale';\nimport React from 'react';\n\n// @ts-ignore\nimport { Area, minMax, HoverLine, StackedArea } from '../..';\nimport { AbstractChart } from './AbstractChart';\nimport type { AreaChartData, AreaChartProps, AreaChartType } 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 static displayName = 'Chart.Area';\n\n static enhance = [i18nEnhance(localizedMessages)] 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, showTotalInTooltip, showTooltip } = this.asProps;\n const { dataDefinitions } = this.state;\n\n if (!showTooltip) {\n return null;\n }\n\n return (\n <HoverLine.Tooltip x={groupKey} wMin={100}>\n {({ xIndex }: any) => {\n const dataItem = data[xIndex];\n const total = this.totalValue(dataItem);\n\n return {\n children: (\n <>\n <HoverLine.Tooltip.Title>{dataItem[groupKey]?.toString()}</HoverLine.Tooltip.Title>\n\n {dataDefinitions.map((item) => {\n return (\n item.checked && (\n <Flex justifyContent='space-between' key={item.id}>\n <HoverLine.Tooltip.Dot mr={4} color={item.color}>\n {item.label}\n </HoverLine.Tooltip.Dot>\n <Text bold>{this.tooltipValueFormatter(dataItem[item.id])}</Text>\n </Flex>\n )\n );\n })}\n\n {showTotalInTooltip === true && (\n <Flex mt={2} justifyContent='space-between'>\n <Box mr={4}>Total</Box>\n <Text bold>{total}</Text>\n </Flex>\n )}\n </>\n ),\n };\n }}\n </HoverLine.Tooltip>\n );\n }\n\n protected getLegendAriaLabel(): string {\n return this.asProps.getI18nText('legendForChart', { chartType: 'Area' });\n }\n}\n\nexport const AreaChart: AreaChartType = createComponent(AreaChartComponent);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"AreaChart.js","names":["_core","require","_i18nEnhance","_interopRequireDefault","_d3Scale","_react","_","_AbstractChart2","_intergalacticDynamicLocales","AreaChartComponent","_AbstractChart","_classCallCheck2","_callSuper2","arguments","_inherits2","_createClass2","key","get","_this$asProps","asProps","xScale","_this$asProps$marginY","marginY","plotWidth","data","groupKey","testItem","range","plotPadding","domain","minMax","Date","Number","isNaN","getMilliseconds","scaleTime","scaleLinear","_this$asProps2","yScale","_this$asProps2$margin","marginX","plotHeight","stacked","flatValues","_superPropGet2","min","Math","apply","_toConsumableArray2","max","value","renderChart","_this$asProps3","curve","showDots","onClickArea","_this$state","state","dataDefinitions","highlightedLine","createElement","StackedArea","x","map","item","index","checked","Area","y","id","color","transparent","onClick","Dots","display","renderTooltip","_this","_this$asProps4","HoverLine","Tooltip","wMin","_ref","xIndex","dataItem","children","getTooltipChildren","getLegendAriaLabel","getI18nText","chartType","AbstractChart","_defineProperty2","i18nEnhance","localizedMessages","AreaChart","exports","createComponent"],"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 { AbstractChart } from './AbstractChart';\nimport type { AreaChartData, AreaChartProps, AreaChartType } 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 static displayName = 'Chart.Area';\n\n static enhance = [i18nEnhance(localizedMessages)] 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\nexport const AreaChart: AreaChartType = createComponent(AreaChartComponent);\n"],"mappings":";;;;;;;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAF,sBAAA,CAAAF,OAAA;AAGA,IAAAK,CAAA,GAAAL,OAAA;AACA,IAAAM,eAAA,GAAAN,OAAA;AAEA,IAAAO,4BAAA,GAAAP,OAAA;AAJA;AAAA,IAMMQ,kBAAkB,0BAAAC,cAAA;EAAA,SAAAD,mBAAA;IAAA,IAAAE,gBAAA,mBAAAF,kBAAA;IAAA,WAAAG,WAAA,mBAAAH,kBAAA,EAAAI,SAAA;EAAA;EAAA,IAAAC,UAAA,aAAAL,kBAAA,EAAAC,cAAA;EAAA,WAAAK,aAAA,aAAAN,kBAAA;IAAAO,GAAA;IAAAC,GAAA,EAStB,SAAAA,IAAA,EAAa;MACX,IAAAC,aAAA,GAA4D,IAAI,CAACC,OAAO;QAAhEC,MAAM,GAAAF,aAAA,CAANE,MAAM;QAAAC,qBAAA,GAAAH,aAAA,CAAEI,OAAO;QAAPA,OAAO,GAAAD,qBAAA,cAAG,EAAE,GAAAA,qBAAA;QAAEE,SAAS,GAAAL,aAAA,CAATK,SAAS;QAAEC,IAAI,GAAAN,aAAA,CAAJM,IAAI;QAAEC,QAAQ,GAAAP,aAAA,CAARO,QAAQ;MAEvD,IAAIL,MAAM,EAAE;QACV,OAAOA,MAAM;MACf;MAEA,IAAMM,QAAQ,GAAGF,IAAI,CAAC,CAAC,CAAC,CAACC,QAAQ,CAAC;MAClC,IAAME,KAAK,GAAG,CAACL,OAAO,EAAEC,SAAS,GAAG,IAAI,CAACK,WAAW,CAAC;MACrD,IAAMC,MAAM,GAAG,IAAAC,QAAM,EAACN,IAAI,EAAEC,QAAQ,CAAC;MAErC,IAAIC,QAAQ,YAAYK,IAAI,IAAI,CAACC,MAAM,CAACC,KAAK,CAACP,QAAQ,CAACQ,eAAe,CAAC,CAAC,CAAC,EAAE;QACzE,OAAO,IAAAC,kBAAS,EAACN,MAAM,EAAEF,KAAK,CAAC;MACjC;MAEA,OAAO,IAAAS,oBAAW,EAACP,MAAM,EAAEF,KAAK,CAAC;IACnC;EAAC;IAAAX,GAAA;IAAAC,GAAA,EAED,SAAAA,IAAA,EAAoC;MAClC,IAAAoB,cAAA,GAAsD,IAAI,CAAClB,OAAO;QAA1DmB,MAAM,GAAAD,cAAA,CAANC,MAAM;QAAAC,qBAAA,GAAAF,cAAA,CAAEG,OAAO;QAAPA,OAAO,GAAAD,qBAAA,cAAG,EAAE,GAAAA,qBAAA;QAAEE,UAAU,GAAAJ,cAAA,CAAVI,UAAU;QAAEC,OAAO,GAAAL,cAAA,CAAPK,OAAO;MAEjD,IAAIJ,MAAM,EAAE;QACV,OAAOA,MAAM;MACf;MAEA,IAAMK,UAAU,OAAAC,cAAA,aAAAnC,kBAAA,wBAAmB;MACnC,IAAMoC,GAAG,GAAGC,IAAI,CAACD,GAAG,CAAAE,KAAA,CAARD,IAAI,MAAAE,mBAAA,aAAQL,UAAU,EAAC;MACnC,IAAMM,GAAG,GAAGP,OAAO,OAAAE,cAAA,aAAAnC,kBAAA,gCAA2BqC,IAAI,CAACG,GAAG,CAAAF,KAAA,CAARD,IAAI,MAAAE,mBAAA,aAAQL,UAAU,EAAC;MAErE,OAAO,IAAAP,oBAAW,EAAC,CAAC,CACjBT,KAAK,CAAC,CAACc,UAAU,GAAGD,OAAO,EAAE,IAAI,CAACZ,WAAW,CAAC,CAAC,CAC/CC,MAAM,CAAC,CAACgB,GAAG,EAAEI,GAAG,CAAC,CAAC;IACvB;EAAC;IAAAjC,GAAA;IAAAkC,KAAA,EAED,SAAAC,WAAWA,CAAA,EAAG;MACZ,IAAAC,cAAA,GAA4D,IAAI,CAACjC,OAAO;QAAhEM,QAAQ,GAAA2B,cAAA,CAAR3B,QAAQ;QAAE4B,KAAK,GAAAD,cAAA,CAALC,KAAK;QAAEC,QAAQ,GAAAF,cAAA,CAARE,QAAQ;QAAEZ,OAAO,GAAAU,cAAA,CAAPV,OAAO;QAAEa,WAAW,GAAAH,cAAA,CAAXG,WAAW;MACvD,IAAAC,WAAA,GAA6C,IAAI,CAACC,KAAK;QAA/CC,eAAe,GAAAF,WAAA,CAAfE,eAAe;QAAEC,eAAe,GAAAH,WAAA,CAAfG,eAAe;MAExC,IAAIjB,OAAO,EAAE;QACX,oBACErC,MAAA,YAAAuD,aAAA,CAACtD,CAAA,CAAAuD,WAAW;UAACC,CAAC,EAAErC;QAAS,GACtBiC,eAAe,CAACK,GAAG,CAAC,UAACC,IAAI,EAAEC,KAAK,EAAK;UACpC,OACED,IAAI,CAACE,OAAO,iBACV7D,MAAA,YAAAuD,aAAA,CAACtD,CAAA,CAAAuD,WAAW,CAACM,IAAI;YACfL,CAAC,EAAErC,QAAS;YACZ2C,CAAC,EAAEJ,IAAI,CAACK,EAAG;YACXrD,GAAG,EAAEgD,IAAI,CAACK,EAAG;YACbC,KAAK,EAAEN,IAAI,CAACM,KAAM;YAClBC,WAAW,EAAEZ,eAAe,KAAK,CAAC,CAAC,IAAIA,eAAe,KAAKM,KAAM;YACjEZ,KAAK,EAAEA,KAAM;YACbmB,OAAO,EAAEjB;UAAY,GAEpBD,QAAQ,iBAAIjD,MAAA,YAAAuD,aAAA,CAACtD,CAAA,CAAAuD,WAAW,CAACM,IAAI,CAACM,IAAI;YAACC,OAAO;UAAA,CAAE,CAC7B,CACnB;QAEL,CAAC,CACU,CAAC;MAElB;MAEA,OAAOhB,eAAe,CAACK,GAAG,CAAC,UAACC,IAAI,EAAEC,KAAK,EAAK;QAC1C,OACED,IAAI,CAACE,OAAO,iBACV7D,MAAA,YAAAuD,aAAA,CAACtD,CAAA,CAAA6D,IAAI;UACHL,CAAC,EAAErC,QAAS;UACZ2C,CAAC,EAAEJ,IAAI,CAACK,EAAG;UACXrD,GAAG,EAAEgD,IAAI,CAACK,EAAG;UACbC,KAAK,EAAEN,IAAI,CAACM,KAAM;UAClBC,WAAW,EAAEZ,eAAe,KAAK,CAAC,CAAC,IAAIA,eAAe,KAAKM,KAAM;UACjEZ,KAAK,EAAEA,KAAM;UACbmB,OAAO,EAAEjB;QAAY,GAEpBD,QAAQ,iBAAIjD,MAAA,YAAAuD,aAAA,CAACtD,CAAA,CAAA6D,IAAI,CAACM,IAAI;UAACC,OAAO;QAAA,CAAE,CAC7B,CACP;MAEL,CAAC,CAAC;IACJ;EAAC;IAAA1D,GAAA;IAAAkC,KAAA,EAED,SAAAyB,aAAaA,CAAA,EAAG;MAAA,IAAAC,KAAA;MACd,IAAAC,cAAA,GAA2B,IAAI,CAAC1D,OAAO;QAA/BK,IAAI,GAAAqD,cAAA,CAAJrD,IAAI;QAAEC,QAAQ,GAAAoD,cAAA,CAARpD,QAAQ;MAEtB,oBACEpB,MAAA,YAAAuD,aAAA,CAACtD,CAAA,CAAAwE,SAAS,CAACC,OAAO;QAACjB,CAAC,EAAErC,QAAS;QAACuD,IAAI,EAAE;MAAI,GACvC,UAAAC,IAAA,EAAqB;QAAA,IAAlBC,MAAM,GAAAD,IAAA,CAANC,MAAM;QACR,IAAMC,QAAQ,GAAG3D,IAAI,CAAC0D,MAAM,CAAC;QAE7B,OAAO;UACLE,QAAQ,EAAER,KAAI,CAACS,kBAAkB,CAAC;YAChCN,OAAO,EAAED,WAAS,CAACC,OAAO;YAC1BI,QAAQ,EAARA;UACF,CAAC;QACH,CAAC;MACH,CACiB,CAAC;IAExB;EAAC;IAAAnE,GAAA;IAAAkC,KAAA,EAED,SAAUoC,kBAAkBA,CAAA,EAAW;MACrC,OAAO,IAAI,CAACnE,OAAO,CAACoE,WAAW,CAAC,gBAAgB,EAAE;QAAEC,SAAS,EAAE;MAAO,CAAC,CAAC;IAC1E;EAAC;AAAA,EA/G8BC,6BAAa;AAAA,IAAAC,gBAAA,aAAxCjF,kBAAkB,iBAKD,YAAY;AAAA,IAAAiF,gBAAA,aAL7BjF,kBAAkB,aAOL,CAAC,IAAAkF,uBAAW,EAACC,8CAAiB,CAAC,CAAC;AA2G5C,IAAMC,SAAwB,GAAAC,OAAA,CAAAD,SAAA,GAAG,IAAAE,qBAAe,EAACtF,kBAAkB,CAAC","ignoreList":[]}
@@ -15,12 +15,10 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits
15
15
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
16
  var _core = require("@semcore/core");
17
17
  var _i18nEnhance = _interopRequireDefault(require("@semcore/core/lib/utils/enhances/i18nEnhance"));
18
- var _flexBox = require("@semcore/flex-box");
19
- var _typography = require("@semcore/typography");
20
18
  var _d3Scale = require("d3-scale");
21
19
  var _react = _interopRequireDefault(require("react"));
22
- var _ = require("../..");
23
20
  var _AbstractChart2 = require("./AbstractChart");
21
+ var _ = require("../..");
24
22
  var _intergalacticDynamicLocales = require("../../translations/__intergalactic-dynamic-locales");
25
23
  // @ts-ignore
26
24
  var BarChartComponent = /*#__PURE__*/function (_AbstractChart) {
@@ -177,45 +175,23 @@ var BarChartComponent = /*#__PURE__*/function (_AbstractChart) {
177
175
  var _this$asProps5 = this.asProps,
178
176
  data = _this$asProps5.data,
179
177
  groupKey = _this$asProps5.groupKey,
180
- showTotalInTooltip = _this$asProps5.showTotalInTooltip,
181
- showTooltip = _this$asProps5.showTooltip,
182
178
  invertAxis = _this$asProps5.invertAxis,
183
179
  onClickHoverRect = _this$asProps5.onClickHoverRect;
184
- var dataDefinitions = this.state.dataDefinitions;
185
- if (!showTooltip) {
186
- return null;
187
- }
188
180
  return /*#__PURE__*/_react["default"].createElement(_.HoverRect.Tooltip, {
189
181
  x: invertAxis ? undefined : groupKey,
190
182
  y: invertAxis ? groupKey : undefined,
191
183
  wMin: 100,
192
184
  onClick: onClickHoverRect
193
185
  }, function (_ref) {
194
- var _dataItem$groupKey;
195
186
  var xIndex = _ref.xIndex,
196
187
  yIndex = _ref.yIndex;
197
188
  var index = invertAxis ? yIndex : xIndex;
198
189
  var dataItem = data[index];
199
- var total = _this3.totalValue(dataItem);
200
190
  return {
201
- children: /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_.HoverRect.Tooltip.Title, null, (_dataItem$groupKey = dataItem[groupKey]) === null || _dataItem$groupKey === void 0 ? void 0 : _dataItem$groupKey.toString()), dataDefinitions.map(function (item) {
202
- return item.checked && /*#__PURE__*/_react["default"].createElement(_flexBox.Flex, {
203
- justifyContent: "space-between",
204
- key: item.id
205
- }, /*#__PURE__*/_react["default"].createElement(_.HoverRect.Tooltip.Dot, {
206
- mr: 4,
207
- color: item.color
208
- }, item.label), /*#__PURE__*/_react["default"].createElement(_typography.Text, {
209
- bold: true
210
- }, _this3.tooltipValueFormatter(dataItem[item.id])));
211
- }), showTotalInTooltip === true && /*#__PURE__*/_react["default"].createElement(_flexBox.Flex, {
212
- mt: 2,
213
- justifyContent: "space-between"
214
- }, /*#__PURE__*/_react["default"].createElement(_flexBox.Box, {
215
- mr: 4
216
- }, "Total"), /*#__PURE__*/_react["default"].createElement(_typography.Text, {
217
- bold: true
218
- }, total)))
191
+ children: _this3.getTooltipChildren({
192
+ Tooltip: _.HoverRect.Tooltip,
193
+ dataItem: dataItem
194
+ })
219
195
  };
220
196
  });
221
197
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BarChart.js","names":["_core","require","_i18nEnhance","_interopRequireDefault","_flexBox","_typography","_d3Scale","_react","_","_AbstractChart2","_intergalacticDynamicLocales","BarChartComponent","_AbstractChart","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","_callSuper2","concat","_defineProperty2","_data","e","barIndex","barKey","onClickBar","asProps","_inherits2","_createClass2","key","get","_this$asProps","xScale","invertAxis","valueScale","categoryScale","_this$asProps2","yScale","value","defaultLegendProps","props","trend","undefined","withTrend","renderTrend","_this$asProps3","groupKey","state","trendItem","createElement","Line","data","x","y","color","style","strokeWidth","strokeDasharray","Dots","display","renderChart","_this2","_this$asProps4","_this$asProps4$type","type","_this$state","dataDefinitions","highlightedLine","item","BarComponent","GroupBar","HorizontalBar","Bar","checked","Fragment","id","onClick","handleClickBar","map","index","commonBarComponentProps","transparent","_extends2","StackBar","renderTooltip","_this3","_this$asProps5","showTotalInTooltip","showTooltip","onClickHoverRect","HoverRect","Tooltip","wMin","_ref","_dataItem$groupKey","xIndex","yIndex","dataItem","total","totalValue","children","Title","toString","Flex","justifyContent","Dot","mr","label","Text","bold","tooltipValueFormatter","mt","Box","getLegendAriaLabel","getI18nText","chartType","_this$asProps6","_this$asProps6$margin","marginY","_this$asProps6$margin2","marginX","plotWidth","plotHeight","testItem","range","plotPadding","Date","Number","isNaN","getMilliseconds","domain","minMax","scaleTime","scaleBand","paddingInner","paddingOuter","_this$asProps7","_this$asProps7$margin","_this$asProps7$margin2","max","_superPropGet2","Math","apply","_toConsumableArray2","scaleLinear","AbstractChart","i18nEnhance","localizedMessages","BarChart","exports","createComponent"],"sources":["../../../../src/component/Chart/BarChart.tsx"],"sourcesContent":["import { createComponent } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport { Box, Flex } from '@semcore/flex-box';\nimport { Text } from '@semcore/typography';\nimport { scaleBand, scaleLinear, scaleTime } from 'd3-scale';\nimport React from 'react';\n\nimport type { BaseLegendProps } from './AbstractChart.type';\nimport type { BarChartData, BarChartProps, BarChartType } from './BarChart.type';\n// @ts-ignore\nimport { minMax, GroupBar, HoverRect, StackBar, Line } from '../..';\nimport { AbstractChart } from './AbstractChart';\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 static displayName = 'Chart.Bar';\n\n static enhance = [i18nEnhance(localizedMessages)] 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, showTotalInTooltip, showTooltip, invertAxis, onClickHoverRect } =\n this.asProps;\n const { dataDefinitions } = this.state;\n\n if (!showTooltip) {\n return null;\n }\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 const total = this.totalValue(dataItem);\n\n return {\n children: (\n <>\n <HoverRect.Tooltip.Title>{dataItem[groupKey]?.toString()}</HoverRect.Tooltip.Title>\n\n {dataDefinitions.map((item) => {\n return (\n item.checked && (\n <Flex justifyContent='space-between' key={item.id}>\n <HoverRect.Tooltip.Dot mr={4} color={item.color}>\n {item.label}\n </HoverRect.Tooltip.Dot>\n <Text bold>{this.tooltipValueFormatter(dataItem[item.id])}</Text>\n </Flex>\n )\n );\n })}\n\n {showTotalInTooltip === true && (\n <Flex mt={2} justifyContent='space-between'>\n <Box mr={4}>Total</Box>\n <Text bold>{total}</Text>\n </Flex>\n )}\n </>\n ),\n };\n }}\n </HoverRect.Tooltip>\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\nexport const BarChart: BarChartType = createComponent(BarChartComponent);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"BarChart.js","names":["_core","require","_i18nEnhance","_interopRequireDefault","_d3Scale","_react","_AbstractChart2","_","_intergalacticDynamicLocales","BarChartComponent","_AbstractChart","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","_callSuper2","concat","_defineProperty2","_data","e","barIndex","barKey","onClickBar","asProps","_inherits2","_createClass2","key","get","_this$asProps","xScale","invertAxis","valueScale","categoryScale","_this$asProps2","yScale","value","defaultLegendProps","props","trend","undefined","withTrend","renderTrend","_this$asProps3","groupKey","state","trendItem","createElement","Line","data","x","y","color","style","strokeWidth","strokeDasharray","Dots","display","renderChart","_this2","_this$asProps4","_this$asProps4$type","type","_this$state","dataDefinitions","highlightedLine","item","BarComponent","GroupBar","HorizontalBar","Bar","checked","Fragment","id","onClick","handleClickBar","map","index","commonBarComponentProps","transparent","_extends2","StackBar","renderTooltip","_this3","_this$asProps5","onClickHoverRect","HoverRect","Tooltip","wMin","_ref","xIndex","yIndex","dataItem","children","getTooltipChildren","getLegendAriaLabel","getI18nText","chartType","_this$asProps6","_this$asProps6$margin","marginY","_this$asProps6$margin2","marginX","plotWidth","plotHeight","testItem","range","plotPadding","Date","Number","isNaN","getMilliseconds","domain","minMax","scaleTime","scaleBand","paddingInner","paddingOuter","_this$asProps7","_this$asProps7$margin","_this$asProps7$margin2","max","_superPropGet2","Math","apply","_toConsumableArray2","scaleLinear","AbstractChart","i18nEnhance","localizedMessages","BarChart","exports","createComponent"],"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 { AbstractChart } from './AbstractChart';\nimport type { BaseLegendProps } from './AbstractChart.type';\nimport type { BarChartData, BarChartProps, BarChartType } from './BarChart.type';\n// @ts-ignore\nimport { minMax, GroupBar, HoverRect, StackBar, Line } 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 static displayName = 'Chart.Bar';\n\n static enhance = [i18nEnhance(localizedMessages)] 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 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\nexport const BarChart: BarChartType = createComponent(BarChartComponent);\n"],"mappings":";;;;;;;;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAF,sBAAA,CAAAF,OAAA;AAEA,IAAAK,eAAA,GAAAL,OAAA;AAIA,IAAAM,CAAA,GAAAN,OAAA;AACA,IAAAO,4BAAA,GAAAP,OAAA;AAFA;AAAA,IAMMQ,iBAAiB,0BAAAC,cAAA;EAAA,SAAAD,kBAAA;IAAA,IAAAE,KAAA;IAAA,IAAAC,gBAAA,mBAAAH,iBAAA;IAAA,SAAAI,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;MAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;IAAA;IAAAP,KAAA,OAAAQ,WAAA,mBAAAV,iBAAA,KAAAW,MAAA,CAAAJ,IAAA;IAAA,IAAAK,gBAAA,aAAAV,KAAA,oBA0KI,UACvBW,KAAsB,EACtBC,CAAuB,EACvBC,QAAgB,EAChBC,MAAc,EACX;MACH,IAAQC,UAAU,GAAKf,KAAA,CAAKgB,OAAO,CAA3BD,UAAU;MAElB,IAAIA,UAAU,EAAE;QACdA,UAAU,CAACF,QAAQ,EAAEC,MAAM,EAAEF,CAAC,CAAC;MACjC;IACF,CAAC;IAAA,OAAAZ,KAAA;EAAA;EAAA,IAAAiB,UAAA,aAAAnB,iBAAA,EAAAC,cAAA;EAAA,WAAAmB,aAAA,aAAApB,iBAAA;IAAAqB,GAAA;IAAAC,GAAA,EA5KD,SAAAA,IAAA,EAAa;MACX,IAAAC,aAAA,GAA+B,IAAI,CAACL,OAAO;QAAnCM,MAAM,GAAAD,aAAA,CAANC,MAAM;QAAEC,UAAU,GAAAF,aAAA,CAAVE,UAAU;MAE1B,IAAID,MAAM,EAAE;QACV,OAAOA,MAAM;MACf;MAEA,OAAOC,UAAU,GAAG,IAAI,CAACC,UAAU,GAAG,IAAI,CAACC,aAAa;IAC1D;EAAC;IAAAN,GAAA;IAAAC,GAAA,EAED,SAAAA,IAAA,EAAa;MACX,IAAAM,cAAA,GAA+B,IAAI,CAACV,OAAO;QAAnCW,MAAM,GAAAD,cAAA,CAANC,MAAM;QAAEJ,UAAU,GAAAG,cAAA,CAAVH,UAAU;MAE1B,IAAII,MAAM,EAAE;QACV,OAAOA,MAAM;MACf;MAEA,OAAOJ,UAAU,GAAG,IAAI,CAACE,aAAa,GAAG,IAAI,CAACD,UAAU;IAC1D;EAAC;IAAAL,GAAA;IAAAS,KAAA,EAED,SAAUC,kBAAkBA,CAAA,EAA6B;MACvD,IAAI,IAAI,CAACC,KAAK,CAACC,KAAK,KAAKC,SAAS,EAAE;QAClC,OAAO;UAAEC,SAAS,EAAE;QAAK,CAAC;MAC5B;MAEA,OAAO,CAAC,CAAC;IACX;EAAC;IAAAd,GAAA;IAAAS,KAAA,EAED,SAAAM,WAAWA,CAACf,GAAkB,EAAE;MAC9B,IAAAgB,cAAA,GAAwC,IAAI,CAACnB,OAAO;QAA5CoB,QAAQ,GAAAD,cAAA,CAARC,QAAQ;QAAEb,UAAU,GAAAY,cAAA,CAAVZ,UAAU;QAAEQ,KAAK,GAAAI,cAAA,CAALJ,KAAK;MACnC,IAAQE,SAAS,GAAK,IAAI,CAACI,KAAK,CAAxBJ,SAAS;MACjB,IAAMK,SAAS,GAAGP,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAGZ,GAAG,CAAC;MAE9B,IAAIc,SAAS,IAAIK,SAAS,EAAE;QAC1B,oBACE5C,MAAA,YAAA6C,aAAA,CAAC3C,CAAA,CAAA4C,IAAI;UACHC,IAAI,EAAEH,SAAU;UAChBnB,GAAG,KAAAV,MAAA,CAAKU,GAAG,OAAAV,MAAA,CAAI2B,QAAQ,CAAG;UAC1BM,CAAC,EAAEnB,UAAU,GAAG,GAAG,GAAG,GAAI;UAC1BoB,CAAC,EAAEpB,UAAU,GAAG,GAAG,GAAG,GAAI;UAC1BqB,KAAK,EAAC,MAAM;UACZC,KAAK,EAAE;YAAEC,WAAW,EAAE,CAAC;YAAEC,eAAe,EAAE;UAAE;QAAE,gBAE9CrD,MAAA,YAAA6C,aAAA,CAAC3C,CAAA,CAAA4C,IAAI,CAACQ,IAAI;UAACP,IAAI,EAAEH,SAAU;UAACW,OAAO;QAAA,CAAE,CACjC,CAAC;MAEX;MAEA,OAAO,IAAI;IACb;EAAC;IAAA9B,GAAA;IAAAS,KAAA,EAED,SAAAsB,WAAWA,CAAA,EAAG;MAAA,IAAAC,MAAA;MACZ,IAAAC,cAAA,GAAiD,IAAI,CAACpC,OAAO;QAArDoB,QAAQ,GAAAgB,cAAA,CAARhB,QAAQ;QAAAiB,mBAAA,GAAAD,cAAA,CAAEE,IAAI;QAAJA,IAAI,GAAAD,mBAAA,cAAG,OAAO,GAAAA,mBAAA;QAAE9B,UAAU,GAAA6B,cAAA,CAAV7B,UAAU;MAC5C,IAAAgC,WAAA,GAA6C,IAAI,CAAClB,KAAK;QAA/CmB,eAAe,GAAAD,WAAA,CAAfC,eAAe;QAAEC,eAAe,GAAAF,WAAA,CAAfE,eAAe;MAExC,IAAID,eAAe,CAACpD,MAAM,KAAK,CAAC,EAAE;QAChC,IAAMsD,IAAI,GAAGF,eAAe,CAAC,CAAC,CAAC;QAC/B,IAAMG,YAAY,GAAGpC,UAAU,GAAGqC,UAAQ,CAACC,aAAa,GAAGD,UAAQ,CAACE,GAAG;QAEvE,OACEJ,IAAI,CAACK,OAAO,iBACVrE,MAAA,YAAA6C,aAAA,CAAA7C,MAAA,YAAAsE,QAAA,qBACEtE,MAAA,YAAA6C,aAAA,CAACoB,YAAY;UACXjB,CAAC,EAAEnB,UAAU,GAAGmC,IAAI,CAACO,EAAE,GAAG7B,QAAS;UACnCO,CAAC,EAAEpB,UAAU,GAAGa,QAAQ,GAAGsB,IAAI,CAACO,EAAG;UACnC9C,GAAG,EAAEuC,IAAI,CAACO,EAAG;UACbrB,KAAK,EAAEc,IAAI,CAACd,KAAM;UAClBsB,OAAO,EAAE,IAAI,CAACC;QAAe,CAC9B,CAAC,EACD,IAAI,CAACjC,WAAW,CAACwB,IAAI,CAACO,EAAE,CACzB,CACH;MAEL;MAEA,IAAIX,IAAI,KAAK,OAAO,EAAE;QACpB,oBACE5D,MAAA,YAAA6C,aAAA,CAAA7C,MAAA,YAAAsE,QAAA,qBACEtE,MAAA,YAAA6C,aAAA,CAAC3C,CAAA,CAAAgE,QAAQ;UAAClB,CAAC,EAAEnB,UAAU,GAAGS,SAAS,GAAGI,QAAS;UAACO,CAAC,EAAEpB,UAAU,GAAGa,QAAQ,GAAGJ;QAAU,GAClFwB,eAAe,CAACY,GAAG,CAAC,UAACV,IAAI,EAAEW,KAAK,EAAK;UACpC,IAAMV,YAAY,GAAGpC,UAAU,GAAGqC,UAAQ,CAACC,aAAa,GAAGD,UAAQ,CAACE,GAAG;UAEvE,IAAMQ,uBAAiC,GAAG;YACxC1B,KAAK,EAAEc,IAAI,CAACd,KAAK;YACjB2B,WAAW,EAAEd,eAAe,KAAK,CAAC,CAAC,IAAIA,eAAe,KAAKY,KAAK;YAChEH,OAAO,EAAEf,MAAI,CAACgB;UAChB,CAAC;UAED,IAAI5C,UAAU,EAAE;YACd+C,uBAAuB,CAAC5B,CAAC,GAAGgB,IAAI,CAACO,EAAE;UACrC,CAAC,MAAM;YACLK,uBAAuB,CAAC3B,CAAC,GAAGe,IAAI,CAACO,EAAE;UACrC;UAEA,OAAOP,IAAI,CAACK,OAAO,iBAAIrE,MAAA,YAAA6C,aAAA,CAACoB,YAAY,MAAAa,SAAA;YAACrD,GAAG,EAAEuC,IAAI,CAACO;UAAG,GAAKK,uBAAuB,CAAG,CAAC;QACpF,CAAC,CACO,CAAC,EACVd,eAAe,CAACY,GAAG,CAAC,UAACV,IAAI;UAAA,OAAKA,IAAI,CAACK,OAAO,IAAIZ,MAAI,CAACjB,WAAW,CAACwB,IAAI,CAACO,EAAE,CAAC;QAAA,EACxE,CAAC;MAEP;MAEA,IAAIX,IAAI,KAAK,OAAO,EAAE;QACpB,oBACE5D,MAAA,YAAA6C,aAAA,CAAA7C,MAAA,YAAAsE,QAAA,qBACEtE,MAAA,YAAA6C,aAAA,CAAC3C,CAAA,CAAA6E,QAAQ;UAAC/B,CAAC,EAAEnB,UAAU,GAAGS,SAAS,GAAGI,QAAS;UAACO,CAAC,EAAEpB,UAAU,GAAGa,QAAQ,GAAGJ;QAAU,GAClFwB,eAAe,CAACY,GAAG,CAAC,UAACV,IAAI,EAAEW,KAAK,EAAK;UACpC,IAAMV,YAAY,GAAGpC,UAAU,GAAGkD,UAAQ,CAACZ,aAAa,GAAGY,UAAQ,CAACX,GAAG;UAEvE,IAAMQ,uBAAiC,GAAG;YACxC1B,KAAK,EAAEc,IAAI,CAACd,KAAK;YACjB2B,WAAW,EAAEd,eAAe,KAAK,CAAC,CAAC,IAAIA,eAAe,KAAKY,KAAK;YAChEH,OAAO,EAAEf,MAAI,CAACgB;UAChB,CAAC;UAED,IAAI5C,UAAU,EAAE;YACd+C,uBAAuB,CAAC5B,CAAC,GAAGgB,IAAI,CAACO,EAAE;UACrC,CAAC,MAAM;YACLK,uBAAuB,CAAC3B,CAAC,GAAGe,IAAI,CAACO,EAAE;UACrC;UAEA,OAAOP,IAAI,CAACK,OAAO,iBAAIrE,MAAA,YAAA6C,aAAA,CAACoB,YAAY,MAAAa,SAAA;YAACrD,GAAG,EAAEuC,IAAI,CAACO;UAAG,GAAKK,uBAAuB,CAAG,CAAC;QACpF,CAAC,CACO,CAAC,EACVd,eAAe,CAACY,GAAG,CAAC,UAACV,IAAI;UAAA,OAAKA,IAAI,CAACK,OAAO,IAAIZ,MAAI,CAACjB,WAAW,CAACwB,IAAI,CAACO,EAAE,CAAC;QAAA,EACxE,CAAC;MAEP;MAEA,OAAO,IAAI;IACb;EAAC;IAAA9C,GAAA;IAAAS,KAAA,EAED,SAAA8C,aAAaA,CAAA,EAAoB;MAAA,IAAAC,MAAA;MAC/B,IAAAC,cAAA,GAAyD,IAAI,CAAC5D,OAAO;QAA7DyB,IAAI,GAAAmC,cAAA,CAAJnC,IAAI;QAAEL,QAAQ,GAAAwC,cAAA,CAARxC,QAAQ;QAAEb,UAAU,GAAAqD,cAAA,CAAVrD,UAAU;QAAEsD,gBAAgB,GAAAD,cAAA,CAAhBC,gBAAgB;MAEpD,oBACEnF,MAAA,YAAA6C,aAAA,CAAC3C,CAAA,CAAAkF,SAAS,CAACC,OAAO;QAChBrC,CAAC,EAAEnB,UAAU,GAAGS,SAAS,GAAGI,QAAS;QACrCO,CAAC,EAAEpB,UAAU,GAAGa,QAAQ,GAAGJ,SAAU;QACrCgD,IAAI,EAAE,GAAI;QACVd,OAAO,EAAEW;MAAiB,GAEzB,UAAAI,IAAA,EAA6B;QAAA,IAA1BC,MAAM,GAAAD,IAAA,CAANC,MAAM;UAAEC,MAAM,GAAAF,IAAA,CAANE,MAAM;QAChB,IAAMd,KAAK,GAAG9C,UAAU,GAAG4D,MAAM,GAAGD,MAAM;QAC1C,IAAME,QAAQ,GAAG3C,IAAI,CAAC4B,KAAK,CAAC;QAE5B,OAAO;UACLgB,QAAQ,EAAEV,MAAI,CAACW,kBAAkB,CAAC;YAChCP,OAAO,EAAED,WAAS,CAACC,OAAO;YAC1BK,QAAQ,EAARA;UACF,CAAC;QACH,CAAC;MACH,CACiB,CAAC;IAExB;EAAC;IAAAjE,GAAA;IAAAS,KAAA,EAED,SAAU2D,kBAAkBA,CAAA,EAAW;MACrC,OAAO,IAAI,CAACvE,OAAO,CAACwE,WAAW,CAAC,gBAAgB,EAAE;QAAEC,SAAS,EAAE;MAAM,CAAC,CAAC;IACzE;EAAC;IAAAtE,GAAA;IAAAC,GAAA,EAeD,SAAAA,IAAA,EAA4B;MAC1B,IAAAsE,cAAA,GAQI,IAAI,CAAC1E,OAAO;QAAA2E,qBAAA,GAAAD,cAAA,CAPdE,OAAO;QAAPA,OAAO,GAAAD,qBAAA,cAAG,EAAE,GAAAA,qBAAA;QAAAE,sBAAA,GAAAH,cAAA,CACZI,OAAO;QAAPA,OAAO,GAAAD,sBAAA,cAAG,EAAE,GAAAA,sBAAA;QACZE,SAAS,GAAAL,cAAA,CAATK,SAAS;QACTC,UAAU,GAAAN,cAAA,CAAVM,UAAU;QACVzE,UAAU,GAAAmE,cAAA,CAAVnE,UAAU;QACVkB,IAAI,GAAAiD,cAAA,CAAJjD,IAAI;QACJL,QAAQ,GAAAsD,cAAA,CAARtD,QAAQ;MAGV,IAAM6D,QAAQ,GAAGxD,IAAI,CAAC,CAAC,CAAC,CAACL,QAAQ,CAAC;MAClC,IAAM8D,KAAK,GAAG3E,UAAU,GACpB,CAACyE,UAAU,GAAGF,OAAO,EAAE,IAAI,CAACK,WAAW,CAAC,GACxC,CAACP,OAAO,EAAEG,SAAS,GAAG,IAAI,CAACI,WAAW,CAAC;MAE3C,IAAIF,QAAQ,YAAYG,IAAI,IAAI,CAACC,MAAM,CAACC,KAAK,CAACL,QAAQ,CAACM,eAAe,CAAC,CAAC,CAAC,EAAE;QACzE,IAAMC,OAAM,GAAG,IAAAC,QAAM,EAAChE,IAAI,EAAEL,QAAQ,CAAC;QAErC,OAAO,IAAAsE,kBAAS,EAACF,OAAM,EAAEN,KAAK,CAAC;MACjC;MAEA,IAAMM,MAAM,GAAG/D,IAAI,CAAC2B,GAAG,CAAC,UAACV,IAAI;QAAA,OAAKA,IAAI,CAACtB,QAAQ,CAAC;MAAA,EAAC;MAEjD,OAAO,IAAAuE,kBAAS,EAACH,MAAM,EAAEN,KAAK,CAAC,CAACU,YAAY,CAAC,GAAG,CAAC,CAACC,YAAY,CAAC,GAAG,CAAC;IACrE;EAAC;IAAA1F,GAAA;IAAAC,GAAA,EAED,SAAAA,IAAA,EAAyB;MACvB,IAAA0F,cAAA,GAAgF,IAAI,CAAC9F,OAAO;QAAA+F,qBAAA,GAAAD,cAAA,CAApFlB,OAAO;QAAPA,OAAO,GAAAmB,qBAAA,cAAG,EAAE,GAAAA,qBAAA;QAAAC,sBAAA,GAAAF,cAAA,CAAEhB,OAAO;QAAPA,OAAO,GAAAkB,sBAAA,cAAG,EAAE,GAAAA,sBAAA;QAAEjB,SAAS,GAAAe,cAAA,CAATf,SAAS;QAAEC,UAAU,GAAAc,cAAA,CAAVd,UAAU;QAAEzE,UAAU,GAAAuF,cAAA,CAAVvF,UAAU;QAAE+B,IAAI,GAAAwD,cAAA,CAAJxD,IAAI;MAE3E,IAAM2D,GAAG,GAAG3D,IAAI,KAAK,OAAO,OAAA4D,cAAA,aAAApH,iBAAA,gCAA2BqH,IAAI,CAACF,GAAG,CAAAG,KAAA,CAARD,IAAI,MAAAE,mBAAA,iBAAAH,cAAA,aAAApH,iBAAA,yBAAwB,CAAC;MAEpF,OAAO,IAAAwH,oBAAW,EAAC,CAAC,CACjBpB,KAAK,CACJ3E,UAAU,GACN,CAACqE,OAAO,EAAEG,SAAS,GAAG,IAAI,CAACI,WAAW,CAAC,GACvC,CAACH,UAAU,GAAGF,OAAO,EAAE,IAAI,CAACK,WAAW,CAC7C,CAAC,CACAK,MAAM,CAAC,CAAC,CAAC,EAAES,GAAG,CAAC,CAAC;IACrB;EAAC;AAAA,EA9N6BM,6BAAa;AAAA,IAAA7G,gBAAA,aAAvCZ,iBAAiB,iBAKA,WAAW;AAAA,IAAAY,gBAAA,aAL5BZ,iBAAiB,aAOJ,CAAC,IAAA0H,uBAAW,EAACC,8CAAiB,CAAC,CAAC;AA0N5C,IAAMC,QAAsB,GAAAC,OAAA,CAAAD,QAAA,GAAG,IAAAE,qBAAe,EAAC9H,iBAAiB,CAAC","ignoreList":[]}
@@ -129,10 +129,6 @@ var BubbleChartComponent = /*#__PURE__*/function (_AbstractChart) {
129
129
  }, {
130
130
  key: "renderTooltip",
131
131
  value: function renderTooltip() {
132
- var showTooltip = this.asProps.showTooltip;
133
- if (!showTooltip) {
134
- return null;
135
- }
136
132
  return /*#__PURE__*/_react["default"].createElement(_2.Bubble.Tooltip, null, function (_ref3) {
137
133
  var index = _ref3.index,
138
134
  data = _ref3.data;
@@ -1 +1 @@
1
- {"version":3,"file":"BubbleChart.js","names":["_core","require","_i18nEnhance","_interopRequireDefault","_typography","_d3Scale","_react","_2","_AbstractChart2","_intergalacticDynamicLocales","BubbleChartComponent","_AbstractChart","_classCallCheck2","_callSuper2","arguments","_inherits2","_createClass2","key","get","data","props","map","_","index","toString","value","getDefaultDataDefinitions","_this","_this$props","legendProps","item","_legendProps$legendMa","_ref","_legendData$label","_legendData$icon","_legendData$defaultCh","legendData","legendMap","color","undefined","resolveColor","dataDefinition","id","label","icon","checked","defaultChecked","columns","additionalInfo","count","_this$asProps","asProps","xScale","_this$asProps$marginY","marginY","plotWidth","range","plotPadding","domain","calculateBubbleDomain","scaleLinear","_this$asProps2","yScale","_this$asProps2$margin","marginX","plotHeight","defaultLegendProps","shape","renderChart","onClickBubble","dataDefinitions","state","createElement","Bubble","onClick","x","y","_ref2","Circle","visible","renderTooltip","showTooltip","Tooltip","_ref3","children","Fragment","Title","Text","tag","getLegendAriaLabel","getI18nText","chartType","AbstractChart","_defineProperty2","i18nEnhance","localizedMessages","BubbleChart","exports","createComponent"],"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 { AbstractChart } from './AbstractChart';\nimport type { BubbleChartData, BubbleChartProps, BubbleChartType } 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 static displayName = 'Chart.Bubble';\n\n static enhance = [i18nEnhance(localizedMessages)] 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 const { showTooltip } = this.asProps;\n\n if (!showTooltip) {\n return null;\n }\n\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\nexport const BubbleChart: BubbleChartType = createComponent(BubbleChartComponent);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"BubbleChart.js","names":["_core","require","_i18nEnhance","_interopRequireDefault","_typography","_d3Scale","_react","_2","_AbstractChart2","_intergalacticDynamicLocales","BubbleChartComponent","_AbstractChart","_classCallCheck2","_callSuper2","arguments","_inherits2","_createClass2","key","get","data","props","map","_","index","toString","value","getDefaultDataDefinitions","_this","_this$props","legendProps","item","_legendProps$legendMa","_ref","_legendData$label","_legendData$icon","_legendData$defaultCh","legendData","legendMap","color","undefined","resolveColor","dataDefinition","id","label","icon","checked","defaultChecked","columns","additionalInfo","count","_this$asProps","asProps","xScale","_this$asProps$marginY","marginY","plotWidth","range","plotPadding","domain","calculateBubbleDomain","scaleLinear","_this$asProps2","yScale","_this$asProps2$margin","marginX","plotHeight","defaultLegendProps","shape","renderChart","onClickBubble","dataDefinitions","state","createElement","Bubble","onClick","x","y","_ref2","Circle","visible","renderTooltip","Tooltip","_ref3","children","Fragment","Title","Text","tag","getLegendAriaLabel","getI18nText","chartType","AbstractChart","_defineProperty2","i18nEnhance","localizedMessages","BubbleChart","exports","createComponent"],"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 { AbstractChart } from './AbstractChart';\nimport type { BubbleChartData, BubbleChartProps, BubbleChartType } 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 static displayName = 'Chart.Bubble';\n\n static enhance = [i18nEnhance(localizedMessages)] 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\nexport const BubbleChart: BubbleChartType = createComponent(BubbleChartComponent);\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"BubbleChart.type.js","names":[],"sources":["../../../../src/component/Chart/BubbleChart.type.ts"],"sourcesContent":["import type { Intergalactic } from '@semcore/core';\nimport type { Flex } from '@semcore/flex-box';\nimport type { ScaleLinear } from 'd3-scale';\n\nimport type { BaseChartProps } from './AbstractChart.type';\n\nexport type ScaledValues = {\n x: number[];\n y: number[];\n};\n\nexport type BubbleChartData = Array<{\n x: number;\n y: number;\n value: number;\n label?: string;\n color?: string;\n}>;\n\nexport type BubbleChartProps = BaseChartProps<BubbleChartData> & {\n /** Field name that groups the data points */\n groupKey?: never;\n /** Custom x-axis scale */\n xScale?: ScaleLinear<any, any>;\n /** Custom y-axis scale */\n yScale?: ScaleLinear<any, any>;\n /** Callback triggered when a user clicks on a bubble */\n onClickBubble?: (index: number, event: React.SyntheticEvent) => void;\n};\n\nexport type BubbleChartType = Intergalactic.Component<typeof Flex, BubbleChartProps>;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"BubbleChart.type.js","names":[],"sources":["../../../../src/component/Chart/BubbleChart.type.ts"],"sourcesContent":["import type { Intergalactic } from '@semcore/core';\nimport type { Flex } from '@semcore/flex-box';\nimport type { ScaleLinear } from 'd3-scale';\n\nimport type { BaseChartProps } from './AbstractChart.type';\n\nexport type ScaledValues = {\n x: number[];\n y: number[];\n};\n\nexport type BubbleChartData = Array<{\n x: number;\n y: number;\n value: number;\n label?: string;\n color?: string;\n}>;\n\nexport type BubbleChartProps = Intergalactic.InternalTypings.EfficientOmit<\n BaseChartProps<BubbleChartData>,\n 'showTotalInTooltip'\n> & {\n /** Field name that groups the data points */\n groupKey?: never;\n /** Custom x-axis scale */\n xScale?: ScaleLinear<any, any>;\n /** Custom y-axis scale */\n yScale?: ScaleLinear<any, any>;\n /** Callback triggered when a user clicks on a bubble */\n onClickBubble?: (index: number, event: React.SyntheticEvent) => void;\n};\n\nexport type BubbleChartType = Intergalactic.Component<typeof Flex, BubbleChartProps>;\n"],"mappings":"","ignoreList":[]}