@semcore/d3-chart 17.1.0 → 17.2.0-prerelease.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/lib/cjs/Area.js +17 -11
- package/lib/cjs/Area.js.map +1 -1
- package/lib/cjs/Axis.js +28 -16
- package/lib/cjs/Axis.js.map +1 -1
- package/lib/cjs/Bar.js +22 -16
- package/lib/cjs/Bar.js.map +1 -1
- package/lib/cjs/Bubble.js +20 -14
- package/lib/cjs/Bubble.js.map +1 -1
- package/lib/cjs/CompactHorizontalBar.js +22 -16
- package/lib/cjs/CompactHorizontalBar.js.map +1 -1
- package/lib/cjs/Donut.js +15 -9
- package/lib/cjs/Donut.js.map +1 -1
- package/lib/cjs/Dots.js +8 -8
- package/lib/cjs/GroupBar.js +6 -0
- package/lib/cjs/GroupBar.js.map +1 -1
- package/lib/cjs/HorizontalBar.js +22 -16
- package/lib/cjs/HorizontalBar.js.map +1 -1
- package/lib/cjs/Hover.js +3 -3
- package/lib/cjs/Line.js +15 -9
- package/lib/cjs/Line.js.map +1 -1
- package/lib/cjs/Plot.js +8 -2
- package/lib/cjs/Plot.js.map +1 -1
- package/lib/cjs/Radar.js +25 -19
- package/lib/cjs/Radar.js.map +1 -1
- package/lib/cjs/RadialTree.js +17 -12
- package/lib/cjs/RadialTree.js.map +1 -1
- package/lib/cjs/Reference.js +12 -12
- package/lib/cjs/ResponsiveContainer.js +6 -0
- package/lib/cjs/ResponsiveContainer.js.map +1 -1
- package/lib/cjs/ScatterPlot.js +15 -9
- package/lib/cjs/ScatterPlot.js.map +1 -1
- package/lib/cjs/StackBar.js +6 -0
- package/lib/cjs/StackBar.js.map +1 -1
- package/lib/cjs/StackedArea.js +6 -0
- package/lib/cjs/StackedArea.js.map +1 -1
- package/lib/cjs/Tooltip.js +10 -9
- package/lib/cjs/Tooltip.js.map +1 -1
- package/lib/cjs/Venn.js +15 -9
- package/lib/cjs/Venn.js.map +1 -1
- package/lib/cjs/a11y/PlotA11yModule.js +2 -2
- package/lib/cjs/a11y/PlotA11yView.js +2 -2
- package/lib/cjs/component/Chart/AbstractChart.js +4 -10
- package/lib/cjs/component/Chart/AbstractChart.js.map +1 -1
- package/lib/cjs/component/Chart/AreaChart.js +12 -0
- package/lib/cjs/component/Chart/AreaChart.js.map +1 -1
- package/lib/cjs/component/Chart/AreaChart.type.js.map +1 -1
- package/lib/cjs/component/Chart/BarChart.js +12 -0
- package/lib/cjs/component/Chart/BarChart.js.map +1 -1
- package/lib/cjs/component/Chart/BarChart.type.js.map +1 -1
- package/lib/cjs/component/Chart/BubbleChart.js +12 -0
- package/lib/cjs/component/Chart/BubbleChart.js.map +1 -1
- package/lib/cjs/component/Chart/BubbleChart.type.js.map +1 -1
- package/lib/cjs/component/Chart/CigaretteChart.js +9 -3
- package/lib/cjs/component/Chart/CigaretteChart.js.map +1 -1
- package/lib/cjs/component/Chart/CigaretteChart.type.js.map +1 -1
- package/lib/cjs/component/Chart/CompactHorizontalBarChart.js +7 -1
- package/lib/cjs/component/Chart/CompactHorizontalBarChart.js.map +1 -1
- package/lib/cjs/component/Chart/CompactHorizontalBarChart.type.js.map +1 -1
- package/lib/cjs/component/Chart/DonutChart.js +6 -0
- package/lib/cjs/component/Chart/DonutChart.js.map +1 -1
- package/lib/cjs/component/Chart/DonutChart.type.js.map +1 -1
- package/lib/cjs/component/Chart/HistogramChart.js +12 -0
- package/lib/cjs/component/Chart/HistogramChart.js.map +1 -1
- package/lib/cjs/component/Chart/HistogramChart.type.js.map +1 -1
- package/lib/cjs/component/Chart/LineChart.js +12 -0
- package/lib/cjs/component/Chart/LineChart.js.map +1 -1
- package/lib/cjs/component/Chart/LineChart.type.js.map +1 -1
- package/lib/cjs/component/Chart/RadarChart.js +12 -0
- package/lib/cjs/component/Chart/RadarChart.js.map +1 -1
- package/lib/cjs/component/Chart/RadarChart.type.js.map +1 -1
- package/lib/cjs/component/Chart/ScatterPlotChart.js +6 -0
- package/lib/cjs/component/Chart/ScatterPlotChart.js.map +1 -1
- package/lib/cjs/component/Chart/ScatterPlotChart.type.js.map +1 -1
- package/lib/cjs/component/Chart/VennChart.js +6 -0
- package/lib/cjs/component/Chart/VennChart.js.map +1 -1
- package/lib/cjs/component/Chart/VennChart.type.js.map +1 -1
- package/lib/cjs/component/ChartLegend/BaseLegend.js.map +1 -1
- package/lib/cjs/component/ChartLegend/LegendFlex/LegendFlex.js +10 -4
- package/lib/cjs/component/ChartLegend/LegendFlex/LegendFlex.js.map +1 -1
- package/lib/cjs/component/ChartLegend/LegendFlex/LegendFlex.type.js.map +1 -1
- package/lib/cjs/component/ChartLegend/LegendItem/LegendItem.js +80 -44
- package/lib/cjs/component/ChartLegend/LegendItem/LegendItem.js.map +1 -1
- package/lib/cjs/component/ChartLegend/LegendItem/LegendItem.type.js +4 -0
- package/lib/cjs/component/ChartLegend/LegendItem/LegendItem.type.js.map +1 -1
- package/lib/cjs/component/ChartLegend/LegendTable/LegendTable.js +12 -6
- package/lib/cjs/component/ChartLegend/LegendTable/LegendTable.js.map +1 -1
- package/lib/cjs/component/ChartLegend/LegendTable/LegendTable.type.js.map +1 -1
- package/lib/cjs/component/Cigarette/Cigarette.js +6 -0
- package/lib/cjs/component/Cigarette/Cigarette.js.map +1 -1
- package/lib/cjs/style/plot.shadow.css +1 -1
- package/lib/es6/Area.js +17 -11
- package/lib/es6/Area.js.map +1 -1
- package/lib/es6/Axis.js +28 -16
- package/lib/es6/Axis.js.map +1 -1
- package/lib/es6/Bar.js +22 -16
- package/lib/es6/Bar.js.map +1 -1
- package/lib/es6/Bubble.js +20 -14
- package/lib/es6/Bubble.js.map +1 -1
- package/lib/es6/CompactHorizontalBar.js +22 -16
- package/lib/es6/CompactHorizontalBar.js.map +1 -1
- package/lib/es6/Donut.js +15 -9
- package/lib/es6/Donut.js.map +1 -1
- package/lib/es6/Dots.js +8 -8
- package/lib/es6/GroupBar.js +6 -0
- package/lib/es6/GroupBar.js.map +1 -1
- package/lib/es6/HorizontalBar.js +22 -16
- package/lib/es6/HorizontalBar.js.map +1 -1
- package/lib/es6/Hover.js +3 -3
- package/lib/es6/Line.js +15 -9
- package/lib/es6/Line.js.map +1 -1
- package/lib/es6/Plot.js +8 -2
- package/lib/es6/Plot.js.map +1 -1
- package/lib/es6/Radar.js +25 -19
- package/lib/es6/Radar.js.map +1 -1
- package/lib/es6/RadialTree.js +17 -12
- package/lib/es6/RadialTree.js.map +1 -1
- package/lib/es6/Reference.js +12 -12
- package/lib/es6/ResponsiveContainer.js +6 -0
- package/lib/es6/ResponsiveContainer.js.map +1 -1
- package/lib/es6/ScatterPlot.js +15 -9
- package/lib/es6/ScatterPlot.js.map +1 -1
- package/lib/es6/StackBar.js +6 -0
- package/lib/es6/StackBar.js.map +1 -1
- package/lib/es6/StackedArea.js +6 -0
- package/lib/es6/StackedArea.js.map +1 -1
- package/lib/es6/Tooltip.js +10 -9
- package/lib/es6/Tooltip.js.map +1 -1
- package/lib/es6/Venn.js +15 -9
- package/lib/es6/Venn.js.map +1 -1
- package/lib/es6/a11y/PlotA11yModule.js +2 -2
- package/lib/es6/a11y/PlotA11yView.js +2 -2
- package/lib/es6/component/Chart/AbstractChart.js +4 -10
- package/lib/es6/component/Chart/AbstractChart.js.map +1 -1
- package/lib/es6/component/Chart/AreaChart.js +12 -0
- package/lib/es6/component/Chart/AreaChart.js.map +1 -1
- package/lib/es6/component/Chart/AreaChart.type.js.map +1 -1
- package/lib/es6/component/Chart/BarChart.js +12 -0
- package/lib/es6/component/Chart/BarChart.js.map +1 -1
- package/lib/es6/component/Chart/BarChart.type.js.map +1 -1
- package/lib/es6/component/Chart/BubbleChart.js +12 -0
- package/lib/es6/component/Chart/BubbleChart.js.map +1 -1
- package/lib/es6/component/Chart/BubbleChart.type.js.map +1 -1
- package/lib/es6/component/Chart/CigaretteChart.js +9 -3
- package/lib/es6/component/Chart/CigaretteChart.js.map +1 -1
- package/lib/es6/component/Chart/CigaretteChart.type.js.map +1 -1
- package/lib/es6/component/Chart/CompactHorizontalBarChart.js +7 -1
- package/lib/es6/component/Chart/CompactHorizontalBarChart.js.map +1 -1
- package/lib/es6/component/Chart/CompactHorizontalBarChart.type.js.map +1 -1
- package/lib/es6/component/Chart/DonutChart.js +6 -0
- package/lib/es6/component/Chart/DonutChart.js.map +1 -1
- package/lib/es6/component/Chart/DonutChart.type.js.map +1 -1
- package/lib/es6/component/Chart/HistogramChart.js +12 -0
- package/lib/es6/component/Chart/HistogramChart.js.map +1 -1
- package/lib/es6/component/Chart/HistogramChart.type.js.map +1 -1
- package/lib/es6/component/Chart/LineChart.js +12 -0
- package/lib/es6/component/Chart/LineChart.js.map +1 -1
- package/lib/es6/component/Chart/LineChart.type.js.map +1 -1
- package/lib/es6/component/Chart/RadarChart.js +12 -0
- package/lib/es6/component/Chart/RadarChart.js.map +1 -1
- package/lib/es6/component/Chart/RadarChart.type.js.map +1 -1
- package/lib/es6/component/Chart/ScatterPlotChart.js +6 -0
- package/lib/es6/component/Chart/ScatterPlotChart.js.map +1 -1
- package/lib/es6/component/Chart/ScatterPlotChart.type.js.map +1 -1
- package/lib/es6/component/Chart/VennChart.js +7 -0
- package/lib/es6/component/Chart/VennChart.js.map +1 -1
- package/lib/es6/component/Chart/VennChart.type.js.map +1 -1
- package/lib/es6/component/ChartLegend/BaseLegend.js.map +1 -1
- package/lib/es6/component/ChartLegend/LegendFlex/LegendFlex.js +10 -4
- package/lib/es6/component/ChartLegend/LegendFlex/LegendFlex.js.map +1 -1
- package/lib/es6/component/ChartLegend/LegendFlex/LegendFlex.type.js.map +1 -1
- package/lib/es6/component/ChartLegend/LegendItem/LegendItem.js +80 -44
- package/lib/es6/component/ChartLegend/LegendItem/LegendItem.js.map +1 -1
- package/lib/es6/component/ChartLegend/LegendItem/LegendItem.type.js +4 -0
- package/lib/es6/component/ChartLegend/LegendItem/LegendItem.type.js.map +1 -1
- package/lib/es6/component/ChartLegend/LegendTable/LegendTable.js +12 -6
- package/lib/es6/component/ChartLegend/LegendTable/LegendTable.js.map +1 -1
- package/lib/es6/component/ChartLegend/LegendTable/LegendTable.type.js.map +1 -1
- package/lib/es6/component/Cigarette/Cigarette.js +6 -0
- package/lib/es6/component/Cigarette/Cigarette.js.map +1 -1
- package/lib/es6/style/plot.shadow.css +1 -1
- package/lib/esm/AnimatedClipPath.mjs +2 -2
- package/lib/esm/Area.mjs +13 -13
- package/lib/esm/Axis.mjs +19 -19
- package/lib/esm/Bar.mjs +18 -18
- package/lib/esm/Bubble.mjs +16 -16
- package/lib/esm/CompactHorizontalBar.mjs +18 -18
- package/lib/esm/Donut.mjs +11 -11
- package/lib/esm/Dots.mjs +9 -9
- package/lib/esm/GroupBar.mjs +1 -1
- package/lib/esm/HorizontalBar.mjs +18 -18
- package/lib/esm/Hover.mjs +5 -5
- package/lib/esm/Line.mjs +11 -11
- package/lib/esm/Pattern.mjs +1 -1
- package/lib/esm/Plot.mjs +4 -4
- package/lib/esm/Radar.mjs +21 -21
- package/lib/esm/RadialTree.mjs +14 -14
- package/lib/esm/Reference.mjs +14 -14
- package/lib/esm/ResponsiveContainer.mjs +1 -1
- package/lib/esm/ScatterPlot.mjs +11 -11
- package/lib/esm/StackBar.mjs +1 -1
- package/lib/esm/StackedArea.mjs +1 -1
- package/lib/esm/Tooltip.mjs +12 -11
- package/lib/esm/Venn.mjs +12 -12
- package/lib/esm/a11y/PlotA11yModule.mjs +4 -4
- package/lib/esm/a11y/PlotA11yView.mjs +3 -3
- package/lib/esm/component/Chart/AbstractChart.mjs +6 -12
- package/lib/esm/component/Chart/AreaChart.mjs +7 -1
- package/lib/esm/component/Chart/BarChart.mjs +8 -2
- package/lib/esm/component/Chart/BubbleChart.mjs +7 -1
- package/lib/esm/component/Chart/CigaretteChart.mjs +3 -3
- package/lib/esm/component/Chart/CompactHorizontalBarChart.mjs +2 -2
- package/lib/esm/component/Chart/DonutChart.mjs +1 -1
- package/lib/esm/component/Chart/HistogramChart.mjs +8 -2
- package/lib/esm/component/Chart/LineChart.mjs +7 -1
- package/lib/esm/component/Chart/RadarChart.mjs +7 -1
- package/lib/esm/component/Chart/ScatterPlotChart.mjs +1 -1
- package/lib/esm/component/Chart/VennChart.mjs +1 -1
- package/lib/esm/component/ChartLegend/BaseLegend.mjs +1 -1
- package/lib/esm/component/ChartLegend/LegendFlex/LegendFlex.mjs +6 -6
- package/lib/esm/component/ChartLegend/LegendItem/LegendItem.mjs +76 -46
- package/lib/esm/component/ChartLegend/LegendItem/LegendItem.type.mjs +4 -0
- package/lib/esm/component/ChartLegend/LegendTable/LegendTable.mjs +8 -8
- package/lib/esm/component/Cigarette/Cigarette.mjs +1 -1
- package/lib/esm/component/StackGroupBar/StackGroupBar.mjs +1 -1
- package/lib/esm/createElement.mjs +1 -1
- package/lib/esm/style/plot.shadow.css +1 -1
- package/lib/types/RadialTree.d.ts +5 -0
- package/lib/types/component/Chart/AbstractChart.d.ts +2 -2
- package/lib/types/component/Chart/AreaChart.d.ts +5 -0
- package/lib/types/component/Chart/AreaChart.type.d.ts +6 -0
- package/lib/types/component/Chart/BarChart.d.ts +5 -0
- package/lib/types/component/Chart/BarChart.type.d.ts +6 -0
- package/lib/types/component/Chart/BubbleChart.d.ts +5 -0
- package/lib/types/component/Chart/BubbleChart.type.d.ts +6 -0
- package/lib/types/component/Chart/CigaretteChart.d.ts +5 -0
- package/lib/types/component/Chart/CigaretteChart.type.d.ts +14 -0
- package/lib/types/component/Chart/CompactHorizontalBarChart.d.ts +5 -0
- package/lib/types/component/Chart/CompactHorizontalBarChart.type.d.ts +7 -0
- package/lib/types/component/Chart/DonutChart.d.ts +5 -0
- package/lib/types/component/Chart/DonutChart.type.d.ts +7 -0
- package/lib/types/component/Chart/HistogramChart.d.ts +5 -0
- package/lib/types/component/Chart/HistogramChart.type.d.ts +6 -0
- package/lib/types/component/Chart/LineChart.d.ts +5 -0
- package/lib/types/component/Chart/LineChart.type.d.ts +6 -0
- package/lib/types/component/Chart/RadarChart.d.ts +5 -0
- package/lib/types/component/Chart/RadarChart.type.d.ts +6 -0
- package/lib/types/component/Chart/ScatterPlotChart.d.ts +5 -0
- package/lib/types/component/Chart/ScatterPlotChart.type.d.ts +7 -0
- package/lib/types/component/Chart/VennChart.d.ts +5 -0
- package/lib/types/component/Chart/VennChart.type.d.ts +6 -0
- package/lib/types/component/ChartLegend/BaseLegend.d.ts +2 -2
- package/lib/types/component/ChartLegend/LegendFlex/LegendFlex.d.ts +5 -0
- package/lib/types/component/ChartLegend/LegendFlex/LegendFlex.type.d.ts +4 -0
- package/lib/types/component/ChartLegend/LegendItem/LegendItem.d.ts +5 -0
- package/lib/types/component/ChartLegend/LegendItem/LegendItem.type.d.ts +15 -7
- package/lib/types/component/ChartLegend/LegendTable/LegendTable.d.ts +5 -0
- package/lib/types/component/ChartLegend/LegendTable/LegendTable.type.d.ts +3 -0
- package/lib/types/component/Cigarette/Cigarette.d.ts +5 -0
- package/package.json +13 -13
|
@@ -20,12 +20,12 @@ var _ChartLegend = _interopRequireWildcard(require("../ChartLegend"));
|
|
|
20
20
|
// @ts-ignore
|
|
21
21
|
// @ts-ignore
|
|
22
22
|
/*!__reshadow-styles__:"../../style/abstract-chart.shadow.css"*/
|
|
23
|
-
const style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".
|
|
23
|
+
const style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___STooltipChildrenWrapper_1snkx_gg_{display:grid;grid-column-gap:var(--intergalactic-spacing-2x,8px);-moz-column-gap:var(--intergalactic-spacing-2x,8px);column-gap:var(--intergalactic-spacing-2x,8px)}.___STooltipChildrenWrapper_1snkx_gg_._columnsCount_2_1snkx_gg_{grid-template-columns:auto minmax(28px,max-content)}.___STooltipChildrenWrapper_1snkx_gg_._columnsCount_3_1snkx_gg_{grid-template-columns:auto minmax(28px,max-content) minmax(28px,max-content)}", /*__inner_css_end__*/"1snkx_gg_"),
|
|
24
24
|
/*__reshadow_css_end__*/
|
|
25
25
|
{
|
|
26
|
-
"__STooltipChildrenWrapper": "
|
|
27
|
-
"_columnsCount_2": "
|
|
28
|
-
"_columnsCount_3": "
|
|
26
|
+
"__STooltipChildrenWrapper": "___STooltipChildrenWrapper_1snkx_gg_",
|
|
27
|
+
"_columnsCount_2": "_columnsCount_2_1snkx_gg_",
|
|
28
|
+
"_columnsCount_3": "_columnsCount_3_1snkx_gg_"
|
|
29
29
|
});
|
|
30
30
|
const NOT_A_VALUE = exports.NOT_A_VALUE = 'n/a';
|
|
31
31
|
class AbstractChart extends _core.Component {
|
|
@@ -482,10 +482,4 @@ class AbstractChart extends _core.Component {
|
|
|
482
482
|
}
|
|
483
483
|
exports.AbstractChart = AbstractChart;
|
|
484
484
|
(0, _defineProperty2.default)(AbstractChart, "style", style);
|
|
485
|
-
(0, _defineProperty2.default)(AbstractChart, "defaultProps", {
|
|
486
|
-
direction: 'column',
|
|
487
|
-
showXAxis: true,
|
|
488
|
-
showYAxis: true,
|
|
489
|
-
showTooltip: true
|
|
490
|
-
});
|
|
491
485
|
//# sourceMappingURL=AbstractChart.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractChart.js","names":["_core","require","_baseComponents","_ariaProps","_assignProps3","_typography","_react","_interopRequireWildcard","_","_hints","_utils","_ChartLegend","style","sstyled","insert","NOT_A_VALUE","exports","AbstractChart","Component","constructor","props","_defineProperty2","default","makeDataHintsContainer","setHighlightedLine","bind","handleChangeVisible","handleMouseEnter","handleMouseLeave","resolveColor","tooltipValueFormatter","handleWithTrendChange","state","dataDefinitions","getDefaultDataDefinitions","highlightedLine","withTrend","componentDidUpdate","prevProps","data","legendProps","setState","dataKeys","map","key","index","legendData","legendMap","dataDefinition","id","label","icon","undefined","checked","defaultChecked","color","columns","additionalInfo","count","Array","isArray","value","dataValue","Map","get","interpolateValue","Number","total","Object","values","reduce","sum","i","percent","toFixed","createElement","Text","use","groupKey","keys","filter","xTicks","invertAxis","xTicksCount","yTicksCount","asProps","scale","xScale","ticks","yTicks","yScale","flatValues","result","item","add","entries","forEach","Set","maxStackedValue","max","val","barSum","Date","isNaN","getMilliseconds","totalValue","allNotAValue","legendItem","NaN","getValueScale","Math","min","avg","round","log10","valueScale","isVisible","prevState","findIndex","line","colorMap","toDateString","toString","defaultLegendProps","legendType","renderLegend","direction","showLegend","patterns","length","lProps","commonLegendProps","dataHints","size","shape","w","h","disableSelectItems","callAllEventHandlers","onChangeVisibleItem","disableHoverItems","onMouseEnterItem","onMouseLeaveItem","getLegendAriaLabel","ChartLegendTable","flexLegendProps","trendLabel","trendIsVisible","onTrendIsVisibleChange","renderAxis","showXAxis","showYAxis","axisXValueFormatter","axisYValueFormatter","multilineXTicks","multilineYTicks","childrenX","children","childrenY","Fragment","YAxis","Ticks","multiline","Grid","XAxis","getTooltipChildren","options","_ref","_ref3","STooltipChildrenWrapper","Box","Tooltip","dataItem","styles","title","Flex","cn","Title","assignProps","Dot","mr","textAlign","bold","renderTooltipTotalLine","showTotalInTooltip","mt","render","_ref2","_ref4","SChart","plotWidth","plotHeight","a11yAltTextConfig","duration","eventEmitter","showTooltip","extractedAriaProps","extractAriaProps","Plot","renderTooltip","renderChart"],"sources":["../../../../src/component/Chart/AbstractChart.tsx"],"sourcesContent":["import { Flex, Box } from '@semcore/base-components';\nimport { Component, Root, sstyled } from '@semcore/core';\nimport { extractAriaProps } from '@semcore/core/lib/utils/ariaProps';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\nimport { Text } from '@semcore/typography';\nimport type { ScaleBand, ScaleLinear, ScaleTime } from 'd3-scale';\nimport React, { Fragment } from 'react';\n\nimport type { BaseChartProps, BaseLegendProps, ListData, ObjectData } from './AbstractChart.type';\n// @ts-ignore\nimport type { HoverLine, HoverRect } from '../..';\n// @ts-ignore\nimport { Plot, XAxis, YAxis } from '../..';\nimport { makeDataHintsContainer } from '../../a11y/hints';\nimport style from '../../style/abstract-chart.shadow.css';\nimport { interpolateValue } from '../../utils';\nimport ChartLegend, { ChartLegendTable } from '../ChartLegend';\nimport type { LegendFlexProps } from '../ChartLegend/LegendFlex/LegendFlex.type';\nimport type { LegendItem } from '../ChartLegend/LegendItem/LegendItem.type';\nimport type { LegendTableProps } from '../ChartLegend/LegendTable/LegendTable.type';\n\nexport type ChartState = {\n dataDefinitions: Array<LegendItem & { columns: React.ReactNode[] }>;\n highlightedLine: number;\n withTrend: boolean;\n};\n\nexport const NOT_A_VALUE = 'n/a';\n\nexport abstract class AbstractChart<\n Data extends ListData | ObjectData,\n Props extends BaseChartProps<Data>,\n Enhancers extends readonly ((...args: any[]) => any)[] = [],\n DefaultProps = {},\n State extends ChartState = ChartState,\n> extends Component<Props, Enhancers, Readonly<{}>, DefaultProps, State> {\n public static style = style;\n public static defaultProps: Partial<BaseChartProps<any>> = {\n direction: 'column',\n showXAxis: true,\n showYAxis: true,\n showTooltip: true,\n };\n\n /**\n * Padding from the end's of chart to the container (except axis sides)\n */\n protected plotPadding = 6;\n\n protected dataHints = makeDataHintsContainer();\n\n constructor(props: Props) {\n super(props);\n\n this.setHighlightedLine = this.setHighlightedLine.bind(this);\n this.handleChangeVisible = this.handleChangeVisible.bind(this);\n this.handleMouseEnter = this.handleMouseEnter.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.resolveColor = this.resolveColor.bind(this);\n this.tooltipValueFormatter = this.tooltipValueFormatter.bind(this);\n this.handleWithTrendChange = this.handleWithTrendChange.bind(this);\n\n this.state = {\n dataDefinitions: this.getDefaultDataDefinitions(),\n highlightedLine: -1,\n withTrend: false,\n } as State;\n }\n\n public componentDidUpdate(prevProps: Props) {\n if (prevProps.data !== this.props.data || prevProps.legendProps !== this.props.legendProps) {\n this.setState({ dataDefinitions: this.getDefaultDataDefinitions() });\n }\n }\n\n protected getDefaultDataDefinitions(): Array<LegendItem & { columns: React.ReactNode[] }> {\n const { data, legendProps } = this.props;\n\n return this.dataKeys.map((key, index) => {\n const legendData = legendProps?.legendMap?.[key];\n\n const dataDefinition: LegendItem & { columns: React.ReactNode[] } = {\n id: key,\n label: legendData?.label ?? key,\n icon: legendData?.icon ?? undefined,\n checked: legendData?.defaultChecked ?? true,\n color: this.resolveColor(key, index),\n columns: [],\n };\n\n if (legendData?.additionalInfo || legendData?.count) {\n dataDefinition.additionalInfo = legendData.additionalInfo\n ? { label: legendData.additionalInfo }\n : legendData.count\n ? { count: legendData.count }\n : undefined;\n }\n\n if (legendData && 'columns' in legendData) {\n dataDefinition.columns = legendData.columns || [];\n } else if (!Array.isArray(data)) {\n let value: number | undefined = undefined;\n let dataValue = data[key];\n\n if (data instanceof Map) {\n dataValue = data.get(key);\n }\n\n if (dataValue !== interpolateValue) {\n value = Number(dataValue);\n }\n\n const total = Object.values(data).reduce<number>((sum, i) => {\n if (i !== interpolateValue) {\n return sum + Number(i);\n }\n\n return sum;\n }, 0);\n const percent = value !== undefined ? ((value / total) * 100).toFixed(2) : undefined;\n\n dataDefinition.columns = [\n <Text key={`${key}_percent`} use='secondary'>\n {percent !== undefined ? `${percent}%` : ''}\n </Text>,\n <Text key={`${key}_value`} use={value ? 'primary' : 'secondary'}>\n {value ?? NOT_A_VALUE}\n </Text>,\n ];\n }\n\n return dataDefinition;\n });\n }\n\n protected abstract get xScale(): ScaleBand<any> | ScaleLinear<any, any> | ScaleTime<any, any>;\n protected abstract get yScale(): ScaleBand<any> | ScaleLinear<any, any> | ScaleTime<any, any>;\n\n protected abstract getLegendAriaLabel(): string;\n protected abstract renderChart(): React.ReactNode;\n protected abstract renderTooltip(): React.ReactNode;\n\n protected get dataKeys(): string[] {\n const { data, groupKey } = this.props;\n\n let dataKeys: string[];\n\n if (Array.isArray(data) && groupKey) {\n dataKeys = Object.keys(data[0]).filter((key) => key !== groupKey);\n } else {\n dataKeys = Object.keys(data);\n }\n\n return dataKeys;\n }\n\n protected get xTicks(): number[] | Date[] | undefined {\n const { data, invertAxis, xTicksCount, yTicksCount } = this.asProps;\n\n const scale = this.xScale;\n\n if (Array.isArray(data) && 'ticks' in scale) {\n if (invertAxis && yTicksCount) {\n return scale.ticks(yTicksCount);\n } else if (xTicksCount) {\n return scale.ticks(xTicksCount);\n }\n\n return undefined;\n }\n\n return undefined;\n }\n\n protected get yTicks(): number[] | Date[] | undefined {\n const { data, invertAxis, xTicksCount, yTicksCount } = this.asProps;\n\n const scale = this.yScale;\n\n if (Array.isArray(data) && 'ticks' in scale) {\n if (invertAxis && xTicksCount) {\n return scale.ticks(xTicksCount);\n } else if (yTicksCount) {\n return scale.ticks(yTicksCount);\n }\n\n return undefined;\n }\n\n return undefined;\n }\n\n protected get flatValues(): Set<number> {\n const { data, groupKey } = this.asProps;\n const values: any[] = Array.isArray(data) ? data : Object.values(data);\n\n const flatValues = values.reduce<Set<number>>((result, item) => {\n if (!groupKey && typeof item === 'number') {\n result.add(item);\n } else {\n Object.entries(item).forEach(([key, value]) => {\n if (key !== groupKey && typeof value === 'number') {\n result.add(value);\n }\n });\n }\n\n return result;\n }, new Set());\n\n return flatValues;\n }\n\n protected get maxStackedValue(): number {\n const { data, groupKey } = this.asProps;\n\n if (!Array.isArray(data)) {\n const max = Object.values(data).reduce<number>((sum, val) => {\n if (typeof val === 'number') {\n sum = sum + val;\n }\n\n return sum;\n }, 0);\n\n return max;\n }\n\n const max = data.reduce((max, item) => {\n const barSum = Object.entries(item).reduce<number>((sum, [key, val]) => {\n if (key === groupKey) {\n return sum;\n }\n\n if (typeof val === 'number') {\n return sum + val;\n }\n\n if (val instanceof Date && !Number.isNaN(val.getMilliseconds())) {\n return sum + val.getMilliseconds();\n }\n\n return sum;\n }, 0);\n\n if (barSum > max) {\n max = barSum;\n }\n\n return max;\n }, 0);\n\n return max;\n }\n\n protected totalValue(data: ObjectData): number {\n const { dataDefinitions } = this.state;\n\n let allNotAValue = true;\n\n const total = dataDefinitions.reduce((sum, legendItem) => {\n const item = data[legendItem.id];\n\n if (item === null) {\n allNotAValue = false;\n return sum;\n }\n\n if (typeof item === 'number') {\n allNotAValue = false;\n return sum + item;\n }\n\n if (item instanceof Date && !Number.isNaN(item.getMilliseconds())) {\n allNotAValue = false;\n return sum + item.getMilliseconds();\n }\n\n return sum;\n }, 0);\n\n if (allNotAValue) {\n return Number.NaN;\n }\n\n return total;\n }\n\n protected getValueScale(values: number[]): number {\n const max = Math.max(...values);\n const min = Math.min(...values);\n\n const avg = (max + min) / 2;\n const count = Math.round(Math.log10(avg));\n\n const valueScale = 100 / 10 ** count;\n\n return valueScale;\n }\n\n protected setHighlightedLine(index: number) {\n this.setState({ highlightedLine: index });\n }\n\n protected handleChangeVisible(id: string, isVisible: boolean) {\n this.setState((prevState) => {\n const dataDefinitions = prevState.dataDefinitions.map((item) => {\n if (item.id === id) {\n item.checked = isVisible;\n }\n\n return item;\n });\n\n return { dataDefinitions };\n });\n }\n\n protected handleWithTrendChange(isVisible: boolean) {\n this.setState({ withTrend: isVisible });\n }\n\n protected handleMouseEnter(id: string) {\n this.setHighlightedLine(this.state.dataDefinitions.findIndex((line) => line.id === id));\n }\n\n protected handleMouseLeave() {\n this.setHighlightedLine(-1);\n }\n\n protected resolveColor(id: string, index: number) {\n return this.props.colorMap?.[id] ?? `chart-palette-order-${index + 1}`;\n }\n\n protected tooltipValueFormatter(\n value?: string | number | typeof interpolateValue | Date,\n ): string {\n const { tooltipValueFormatter } = this.asProps;\n\n if (tooltipValueFormatter) {\n return tooltipValueFormatter(value);\n }\n\n if (value === undefined || value === interpolateValue) {\n return NOT_A_VALUE;\n }\n\n if (value === null) {\n return '0';\n }\n\n if (value instanceof Date) {\n return value.toDateString();\n }\n\n return value.toString();\n }\n\n protected defaultLegendProps(): Partial<BaseLegendProps> {\n return {\n legendType: 'Flex',\n };\n }\n\n protected renderLegend() {\n const { legendProps, direction, showLegend, patterns } = this.asProps;\n\n if (\n // we hide Legend for one item on chart except not manually set to show.\n showLegend === undefined && this.dataKeys.length === 1 ||\n showLegend === false\n ) {\n return null;\n }\n\n const { dataDefinitions, withTrend } = this.state;\n const lProps = {\n ...this.defaultLegendProps(),\n ...legendProps,\n };\n\n const commonLegendProps: LegendFlexProps | LegendTableProps = {\n 'dataHints': this.dataHints,\n 'items': dataDefinitions,\n 'size': lProps.size,\n 'shape': lProps.shape,\n 'w': lProps.w,\n 'h': lProps.h,\n patterns,\n 'direction':\n lProps.direction ?? (direction === 'row' || direction === 'row-reverse' ? 'column' : 'row'),\n 'onChangeVisibleItem': lProps.disableSelectItems\n ? undefined\n : callAllEventHandlers(lProps.onChangeVisibleItem, this.handleChangeVisible),\n 'onMouseEnterItem': lProps.disableHoverItems\n ? undefined\n : callAllEventHandlers(lProps.onMouseEnterItem, this.handleMouseEnter),\n 'onMouseLeaveItem': lProps.disableHoverItems\n ? undefined\n : callAllEventHandlers(lProps.onMouseLeaveItem, this.handleMouseLeave),\n 'aria-label': this.getLegendAriaLabel(),\n };\n\n if (lProps.legendType === 'Table') {\n return <ChartLegendTable {...(commonLegendProps as LegendTableProps)} />;\n }\n\n if ('withTrend' in lProps) {\n const flexLegendProps = {\n ...commonLegendProps,\n withTrend: true,\n trendLabel: lProps.trendLabel,\n trendIsVisible: withTrend,\n onTrendIsVisibleChange: this.handleWithTrendChange,\n };\n\n return <ChartLegend {...(flexLegendProps as LegendFlexProps)} />;\n }\n\n return <ChartLegend {...(commonLegendProps as LegendFlexProps)} />;\n }\n\n protected renderAxis(): React.ReactNode {\n const {\n invertAxis,\n showXAxis,\n showYAxis,\n data,\n axisXValueFormatter,\n axisYValueFormatter,\n multilineXTicks,\n multilineYTicks,\n } = this.asProps;\n\n if (!Array.isArray(data)) {\n return null;\n }\n\n const xTicks = this.xTicks;\n const yTicks = this.yTicks;\n\n const childrenX = axisXValueFormatter\n ? ({ value }: any) => ({ children: axisXValueFormatter(value) })\n : undefined;\n const childrenY = axisYValueFormatter\n ? ({ value }: any) => ({ children: axisYValueFormatter(value) })\n : undefined;\n\n return (\n <>\n {showYAxis && (\n <YAxis>\n {yTicks\n ? (\n <YAxis.Ticks multiline={multilineYTicks} ticks={yTicks}>{childrenY}</YAxis.Ticks>\n )\n : (\n <YAxis.Ticks multiline={multilineYTicks}>{childrenY}</YAxis.Ticks>\n )}\n {invertAxis !== true && (yTicks ? <YAxis.Grid ticks={yTicks} /> : <YAxis.Grid />)}\n </YAxis>\n )}\n\n {showXAxis && (\n <XAxis>\n {xTicks\n ? (\n <XAxis.Ticks multiline={multilineXTicks} ticks={xTicks}>{childrenX}</XAxis.Ticks>\n )\n : (\n <XAxis.Ticks multiline={multilineXTicks}>{childrenX}</XAxis.Ticks>\n )}\n {invertAxis === true && (xTicks ? <XAxis.Grid ticks={xTicks} /> : <XAxis.Grid />)}\n </XAxis>\n )}\n </>\n );\n }\n\n protected getTooltipChildren<D extends ObjectData>(options: {\n Tooltip: typeof HoverLine['Tooltip'] | typeof HoverRect['Tooltip'];\n dataItem: D;\n }) {\n const STooltipChildrenWrapper = Root;\n const { Tooltip, dataItem } = options;\n\n const { styles, groupKey } = this.asProps;\n const { dataDefinitions } = this.state;\n const title = dataItem[groupKey as keyof D]?.toString();\n\n return sstyled(styles)(\n <Flex direction='column'>\n { title && <Tooltip.Title>{title}</Tooltip.Title> }\n\n <STooltipChildrenWrapper\n render={Box}\n columnsCount='2'\n __excludeProps={['data']}\n >\n {dataDefinitions.map((item) => {\n return (\n item.checked && (\n <Fragment key={item.id}>\n <Tooltip.Dot mr={2} color={item.color}>\n {item.label}\n </Tooltip.Dot>\n <Text textAlign='end' bold>{this.tooltipValueFormatter(dataItem[item.id] as string)}</Text>\n </Fragment>\n )\n );\n })}\n\n {this.renderTooltipTotalLine(dataItem)}\n </STooltipChildrenWrapper>\n </Flex>,\n );\n }\n\n protected renderTooltipTotalLine<D extends ObjectData>(dataItem: D) {\n const { showTotalInTooltip } = this.asProps;\n\n if (!showTotalInTooltip) {\n return null;\n }\n\n const total = this.totalValue(dataItem);\n\n return (\n <>\n <Box mt={2} mr={2}>Total</Box>\n <Text mt={2} textAlign='end' bold>{Number.isNaN(total) ? NOT_A_VALUE : total}</Text>\n </>\n );\n }\n\n public render() {\n const SChart = Root;\n const { styles, plotWidth, plotHeight, data, patterns, a11yAltTextConfig, duration, eventEmitter, showTooltip } =\n this.asProps;\n\n const { extractedAriaProps } = extractAriaProps(this.asProps);\n\n return sstyled(styles)(\n <SChart render={Flex} gap={5} __excludeProps={['data', 'eventEmitter']} role='group'>\n {this.renderLegend()}\n <Plot\n data={data}\n scale={[this.xScale, this.yScale]}\n width={plotWidth}\n height={plotHeight}\n dataHints={this.dataHints}\n a11yAltTextConfig={a11yAltTextConfig}\n patterns={patterns}\n duration={duration}\n eventEmitter={eventEmitter}\n {...extractedAriaProps}\n >\n {this.renderAxis()}\n {!showTooltip ? null : this.renderTooltip()}\n {this.renderChart()}\n </Plot>\n </SChart>,\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"AbstractChart.js","names":["_core","require","_baseComponents","_ariaProps","_assignProps3","_typography","_react","_interopRequireWildcard","_","_hints","_utils","_ChartLegend","style","sstyled","insert","NOT_A_VALUE","exports","AbstractChart","Component","constructor","props","_defineProperty2","default","makeDataHintsContainer","setHighlightedLine","bind","handleChangeVisible","handleMouseEnter","handleMouseLeave","resolveColor","tooltipValueFormatter","handleWithTrendChange","state","dataDefinitions","getDefaultDataDefinitions","highlightedLine","withTrend","componentDidUpdate","prevProps","data","legendProps","setState","dataKeys","map","key","index","legendData","legendMap","dataDefinition","id","label","icon","undefined","checked","defaultChecked","color","columns","additionalInfo","count","Array","isArray","value","dataValue","Map","get","interpolateValue","Number","total","Object","values","reduce","sum","i","percent","toFixed","createElement","Text","use","groupKey","keys","filter","xTicks","invertAxis","xTicksCount","yTicksCount","asProps","scale","xScale","ticks","yTicks","yScale","flatValues","result","item","add","entries","forEach","Set","maxStackedValue","max","val","barSum","Date","isNaN","getMilliseconds","totalValue","allNotAValue","legendItem","NaN","getValueScale","Math","min","avg","round","log10","valueScale","isVisible","prevState","findIndex","line","colorMap","toDateString","toString","defaultLegendProps","legendType","renderLegend","direction","showLegend","patterns","length","lProps","commonLegendProps","dataHints","size","shape","w","h","disableSelectItems","callAllEventHandlers","onChangeVisibleItem","disableHoverItems","onMouseEnterItem","onMouseLeaveItem","getLegendAriaLabel","ChartLegendTable","flexLegendProps","trendLabel","trendIsVisible","onTrendIsVisibleChange","renderAxis","showXAxis","showYAxis","axisXValueFormatter","axisYValueFormatter","multilineXTicks","multilineYTicks","childrenX","children","childrenY","Fragment","YAxis","Ticks","multiline","Grid","XAxis","getTooltipChildren","options","_ref","_ref3","STooltipChildrenWrapper","Box","Tooltip","dataItem","styles","title","Flex","cn","Title","assignProps","Dot","mr","textAlign","bold","renderTooltipTotalLine","showTotalInTooltip","mt","render","_ref2","_ref4","SChart","plotWidth","plotHeight","a11yAltTextConfig","duration","eventEmitter","showTooltip","extractedAriaProps","extractAriaProps","Plot","renderTooltip","renderChart"],"sources":["../../../../src/component/Chart/AbstractChart.tsx"],"sourcesContent":["import { Flex, Box } from '@semcore/base-components';\nimport type { Intergalactic } from '@semcore/core';\nimport { Component, Root, sstyled } from '@semcore/core';\nimport { extractAriaProps } from '@semcore/core/lib/utils/ariaProps';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\nimport { Text } from '@semcore/typography';\nimport type { ScaleBand, ScaleLinear, ScaleTime } from 'd3-scale';\nimport React, { Fragment } from 'react';\n\nimport type { BaseChartProps, BaseLegendProps, ListData, ObjectData } from './AbstractChart.type';\n// @ts-ignore\nimport type { HoverLine, HoverRect } from '../..';\n// @ts-ignore\nimport { Plot, XAxis, YAxis } from '../..';\nimport { makeDataHintsContainer } from '../../a11y/hints';\nimport style from '../../style/abstract-chart.shadow.css';\nimport { interpolateValue } from '../../utils';\nimport ChartLegend, { ChartLegendTable } from '../ChartLegend';\nimport type { LegendFlexProps } from '../ChartLegend/LegendFlex/LegendFlex.type';\nimport type { LegendItem } from '../ChartLegend/LegendItem/LegendItem.type';\nimport type { LegendTableProps } from '../ChartLegend/LegendTable/LegendTable.type';\n\nexport type ChartState = {\n dataDefinitions: Array<LegendItem & { columns: React.ReactNode[] }>;\n highlightedLine: number;\n withTrend: boolean;\n};\n\nexport const NOT_A_VALUE = 'n/a';\n\nexport abstract class AbstractChart<\n Data extends ListData | ObjectData,\n Props extends BaseChartProps<Data>,\n Enhancers extends readonly ((...args: any[]) => any)[] = [],\n InnerProps = {},\n State extends ChartState = ChartState,\n DefaultProps extends Intergalactic.InternalTypings.ValidDefaultProps<DefaultProps, Props & InnerProps> = never,\n> extends Component<Props, Enhancers, Readonly<{}>, InnerProps, State, DefaultProps> {\n public static style = style;\n\n /**\n * Padding from the end's of chart to the container (except axis sides)\n */\n protected plotPadding = 6;\n\n protected dataHints = makeDataHintsContainer();\n\n constructor(props: Props) {\n super(props);\n\n this.setHighlightedLine = this.setHighlightedLine.bind(this);\n this.handleChangeVisible = this.handleChangeVisible.bind(this);\n this.handleMouseEnter = this.handleMouseEnter.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.resolveColor = this.resolveColor.bind(this);\n this.tooltipValueFormatter = this.tooltipValueFormatter.bind(this);\n this.handleWithTrendChange = this.handleWithTrendChange.bind(this);\n\n this.state = {\n dataDefinitions: this.getDefaultDataDefinitions(),\n highlightedLine: -1,\n withTrend: false,\n } as State;\n }\n\n public componentDidUpdate(prevProps: Props) {\n if (prevProps.data !== this.props.data || prevProps.legendProps !== this.props.legendProps) {\n this.setState({ dataDefinitions: this.getDefaultDataDefinitions() });\n }\n }\n\n protected getDefaultDataDefinitions(): Array<LegendItem & { columns: React.ReactNode[] }> {\n const { data, legendProps } = this.props;\n\n return this.dataKeys.map((key, index) => {\n const legendData = legendProps?.legendMap?.[key];\n\n const dataDefinition: LegendItem & { columns: React.ReactNode[] } = {\n id: key,\n label: legendData?.label ?? key,\n icon: legendData?.icon ?? undefined,\n checked: legendData?.defaultChecked ?? true,\n color: this.resolveColor(key, index),\n columns: [],\n };\n\n if (legendData?.additionalInfo || legendData?.count) {\n dataDefinition.additionalInfo = legendData.additionalInfo\n ? { label: legendData.additionalInfo }\n : legendData.count\n ? { count: legendData.count }\n : undefined;\n }\n\n if (legendData && 'columns' in legendData) {\n dataDefinition.columns = legendData.columns || [];\n } else if (!Array.isArray(data)) {\n let value: number | undefined = undefined;\n let dataValue = data[key];\n\n if (data instanceof Map) {\n dataValue = data.get(key);\n }\n\n if (dataValue !== interpolateValue) {\n value = Number(dataValue);\n }\n\n const total = Object.values(data).reduce<number>((sum, i) => {\n if (i !== interpolateValue) {\n return sum + Number(i);\n }\n\n return sum;\n }, 0);\n const percent = value !== undefined ? ((value / total) * 100).toFixed(2) : undefined;\n\n dataDefinition.columns = [\n <Text key={`${key}_percent`} use='secondary'>\n {percent !== undefined ? `${percent}%` : ''}\n </Text>,\n <Text key={`${key}_value`} use={value ? 'primary' : 'secondary'}>\n {value ?? NOT_A_VALUE}\n </Text>,\n ];\n }\n\n return dataDefinition;\n });\n }\n\n protected abstract get xScale(): ScaleBand<any> | ScaleLinear<any, any> | ScaleTime<any, any>;\n protected abstract get yScale(): ScaleBand<any> | ScaleLinear<any, any> | ScaleTime<any, any>;\n\n protected abstract getLegendAriaLabel(): string;\n protected abstract renderChart(): React.ReactNode;\n protected abstract renderTooltip(): React.ReactNode;\n\n protected get dataKeys(): string[] {\n const { data, groupKey } = this.props;\n\n let dataKeys: string[];\n\n if (Array.isArray(data) && groupKey) {\n dataKeys = Object.keys(data[0]).filter((key) => key !== groupKey);\n } else {\n dataKeys = Object.keys(data);\n }\n\n return dataKeys;\n }\n\n protected get xTicks(): number[] | Date[] | undefined {\n const { data, invertAxis, xTicksCount, yTicksCount } = this.asProps;\n\n const scale = this.xScale;\n\n if (Array.isArray(data) && 'ticks' in scale) {\n if (invertAxis && yTicksCount) {\n return scale.ticks(yTicksCount);\n } else if (xTicksCount) {\n return scale.ticks(xTicksCount);\n }\n\n return undefined;\n }\n\n return undefined;\n }\n\n protected get yTicks(): number[] | Date[] | undefined {\n const { data, invertAxis, xTicksCount, yTicksCount } = this.asProps;\n\n const scale = this.yScale;\n\n if (Array.isArray(data) && 'ticks' in scale) {\n if (invertAxis && xTicksCount) {\n return scale.ticks(xTicksCount);\n } else if (yTicksCount) {\n return scale.ticks(yTicksCount);\n }\n\n return undefined;\n }\n\n return undefined;\n }\n\n protected get flatValues(): Set<number> {\n const { data, groupKey } = this.asProps;\n const values: any[] = Array.isArray(data) ? data : Object.values(data);\n\n const flatValues = values.reduce<Set<number>>((result, item) => {\n if (!groupKey && typeof item === 'number') {\n result.add(item);\n } else {\n Object.entries(item).forEach(([key, value]) => {\n if (key !== groupKey && typeof value === 'number') {\n result.add(value);\n }\n });\n }\n\n return result;\n }, new Set());\n\n return flatValues;\n }\n\n protected get maxStackedValue(): number {\n const { data, groupKey } = this.asProps;\n\n if (!Array.isArray(data)) {\n const max = Object.values(data).reduce<number>((sum, val) => {\n if (typeof val === 'number') {\n sum = sum + val;\n }\n\n return sum;\n }, 0);\n\n return max;\n }\n\n const max = data.reduce((max, item) => {\n const barSum = Object.entries(item).reduce<number>((sum, [key, val]) => {\n if (key === groupKey) {\n return sum;\n }\n\n if (typeof val === 'number') {\n return sum + val;\n }\n\n if (val instanceof Date && !Number.isNaN(val.getMilliseconds())) {\n return sum + val.getMilliseconds();\n }\n\n return sum;\n }, 0);\n\n if (barSum > max) {\n max = barSum;\n }\n\n return max;\n }, 0);\n\n return max;\n }\n\n protected totalValue(data: ObjectData): number {\n const { dataDefinitions } = this.state;\n\n let allNotAValue = true;\n\n const total = dataDefinitions.reduce((sum, legendItem) => {\n const item = data[legendItem.id];\n\n if (item === null) {\n allNotAValue = false;\n return sum;\n }\n\n if (typeof item === 'number') {\n allNotAValue = false;\n return sum + item;\n }\n\n if (item instanceof Date && !Number.isNaN(item.getMilliseconds())) {\n allNotAValue = false;\n return sum + item.getMilliseconds();\n }\n\n return sum;\n }, 0);\n\n if (allNotAValue) {\n return Number.NaN;\n }\n\n return total;\n }\n\n protected getValueScale(values: number[]): number {\n const max = Math.max(...values);\n const min = Math.min(...values);\n\n const avg = (max + min) / 2;\n const count = Math.round(Math.log10(avg));\n\n const valueScale = 100 / 10 ** count;\n\n return valueScale;\n }\n\n protected setHighlightedLine(index: number) {\n this.setState({ highlightedLine: index });\n }\n\n protected handleChangeVisible(id: string, isVisible: boolean) {\n this.setState((prevState) => {\n const dataDefinitions = prevState.dataDefinitions.map((item) => {\n if (item.id === id) {\n item.checked = isVisible;\n }\n\n return item;\n });\n\n return { dataDefinitions };\n });\n }\n\n protected handleWithTrendChange(isVisible: boolean) {\n this.setState({ withTrend: isVisible });\n }\n\n protected handleMouseEnter(id: string) {\n this.setHighlightedLine(this.state.dataDefinitions.findIndex((line) => line.id === id));\n }\n\n protected handleMouseLeave() {\n this.setHighlightedLine(-1);\n }\n\n protected resolveColor(id: string, index: number) {\n return this.props.colorMap?.[id] ?? `chart-palette-order-${index + 1}`;\n }\n\n protected tooltipValueFormatter(\n value?: string | number | typeof interpolateValue | Date,\n ): string {\n const { tooltipValueFormatter } = this.asProps;\n\n if (tooltipValueFormatter) {\n return tooltipValueFormatter(value);\n }\n\n if (value === undefined || value === interpolateValue) {\n return NOT_A_VALUE;\n }\n\n if (value === null) {\n return '0';\n }\n\n if (value instanceof Date) {\n return value.toDateString();\n }\n\n return value.toString();\n }\n\n protected defaultLegendProps(): Partial<BaseLegendProps> {\n return {\n legendType: 'Flex',\n };\n }\n\n protected renderLegend() {\n const { legendProps, direction, showLegend, patterns } = this.asProps;\n\n if (\n // we hide Legend for one item on chart except not manually set to show.\n showLegend === undefined && this.dataKeys.length === 1 ||\n showLegend === false\n ) {\n return null;\n }\n\n const { dataDefinitions, withTrend } = this.state;\n const lProps = {\n ...this.defaultLegendProps(),\n ...legendProps,\n };\n\n const commonLegendProps: LegendFlexProps | LegendTableProps = {\n 'dataHints': this.dataHints,\n 'items': dataDefinitions,\n 'size': lProps.size,\n 'shape': lProps.shape,\n 'w': lProps.w,\n 'h': lProps.h,\n patterns,\n 'direction':\n lProps.direction ?? (direction === 'row' || direction === 'row-reverse' ? 'column' : 'row'),\n 'onChangeVisibleItem': lProps.disableSelectItems\n ? undefined\n : callAllEventHandlers(lProps.onChangeVisibleItem, this.handleChangeVisible),\n 'onMouseEnterItem': lProps.disableHoverItems\n ? undefined\n : callAllEventHandlers(lProps.onMouseEnterItem, this.handleMouseEnter),\n 'onMouseLeaveItem': lProps.disableHoverItems\n ? undefined\n : callAllEventHandlers(lProps.onMouseLeaveItem, this.handleMouseLeave),\n 'aria-label': this.getLegendAriaLabel(),\n };\n\n if (lProps.legendType === 'Table') {\n return <ChartLegendTable {...(commonLegendProps as LegendTableProps)} />;\n }\n\n if ('withTrend' in lProps) {\n const flexLegendProps = {\n ...commonLegendProps,\n withTrend: true,\n trendLabel: lProps.trendLabel,\n trendIsVisible: withTrend,\n onTrendIsVisibleChange: this.handleWithTrendChange,\n };\n\n return <ChartLegend {...(flexLegendProps as LegendFlexProps)} />;\n }\n\n return <ChartLegend {...(commonLegendProps as LegendFlexProps)} />;\n }\n\n protected renderAxis(): React.ReactNode {\n const {\n invertAxis,\n showXAxis,\n showYAxis,\n data,\n axisXValueFormatter,\n axisYValueFormatter,\n multilineXTicks,\n multilineYTicks,\n } = this.asProps;\n\n if (!Array.isArray(data)) {\n return null;\n }\n\n const xTicks = this.xTicks;\n const yTicks = this.yTicks;\n\n const childrenX = axisXValueFormatter\n ? ({ value }: any) => ({ children: axisXValueFormatter(value) })\n : undefined;\n const childrenY = axisYValueFormatter\n ? ({ value }: any) => ({ children: axisYValueFormatter(value) })\n : undefined;\n\n return (\n <>\n {showYAxis && (\n <YAxis>\n {yTicks\n ? (\n <YAxis.Ticks multiline={multilineYTicks} ticks={yTicks}>{childrenY}</YAxis.Ticks>\n )\n : (\n <YAxis.Ticks multiline={multilineYTicks}>{childrenY}</YAxis.Ticks>\n )}\n {invertAxis !== true && (yTicks ? <YAxis.Grid ticks={yTicks} /> : <YAxis.Grid />)}\n </YAxis>\n )}\n\n {showXAxis && (\n <XAxis>\n {xTicks\n ? (\n <XAxis.Ticks multiline={multilineXTicks} ticks={xTicks}>{childrenX}</XAxis.Ticks>\n )\n : (\n <XAxis.Ticks multiline={multilineXTicks}>{childrenX}</XAxis.Ticks>\n )}\n {invertAxis === true && (xTicks ? <XAxis.Grid ticks={xTicks} /> : <XAxis.Grid />)}\n </XAxis>\n )}\n </>\n );\n }\n\n protected getTooltipChildren<D extends ObjectData>(options: {\n Tooltip: typeof HoverLine['Tooltip'] | typeof HoverRect['Tooltip'];\n dataItem: D;\n }) {\n const STooltipChildrenWrapper = Root;\n const { Tooltip, dataItem } = options;\n\n const { styles, groupKey } = this.asProps;\n const { dataDefinitions } = this.state;\n const title = dataItem[groupKey as keyof D]?.toString();\n\n return sstyled(styles)(\n <Flex direction='column'>\n { title && <Tooltip.Title>{title}</Tooltip.Title> }\n\n <STooltipChildrenWrapper\n render={Box}\n columnsCount='2'\n __excludeProps={['data']}\n >\n {dataDefinitions.map((item) => {\n return (\n item.checked && (\n <Fragment key={item.id}>\n <Tooltip.Dot mr={2} color={item.color}>\n {item.label}\n </Tooltip.Dot>\n <Text textAlign='end' bold>{this.tooltipValueFormatter(dataItem[item.id] as string)}</Text>\n </Fragment>\n )\n );\n })}\n\n {this.renderTooltipTotalLine(dataItem)}\n </STooltipChildrenWrapper>\n </Flex>,\n );\n }\n\n protected renderTooltipTotalLine<D extends ObjectData>(dataItem: D) {\n const { showTotalInTooltip } = this.asProps;\n\n if (!showTotalInTooltip) {\n return null;\n }\n\n const total = this.totalValue(dataItem);\n\n return (\n <>\n <Box mt={2} mr={2}>Total</Box>\n <Text mt={2} textAlign='end' bold>{Number.isNaN(total) ? NOT_A_VALUE : total}</Text>\n </>\n );\n }\n\n public render() {\n const SChart = Root;\n const { styles, plotWidth, plotHeight, data, patterns, a11yAltTextConfig, duration, eventEmitter, showTooltip } =\n this.asProps;\n\n const { extractedAriaProps } = extractAriaProps(this.asProps);\n\n return sstyled(styles)(\n <SChart render={Flex} gap={5} __excludeProps={['data', 'eventEmitter']} role='group'>\n {this.renderLegend()}\n <Plot\n data={data}\n scale={[this.xScale, this.yScale]}\n width={plotWidth}\n height={plotHeight}\n dataHints={this.dataHints}\n a11yAltTextConfig={a11yAltTextConfig}\n patterns={patterns}\n duration={duration}\n eventEmitter={eventEmitter}\n {...extractedAriaProps}\n >\n {this.renderAxis()}\n {!showTooltip ? null : this.renderTooltip()}\n {this.renderChart()}\n </Plot>\n </SChart>,\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -119,7 +119,19 @@ class AreaChartComponent extends _AbstractChart.AbstractChart {
|
|
|
119
119
|
});
|
|
120
120
|
}
|
|
121
121
|
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* AreaChart
|
|
125
|
+
*
|
|
126
|
+
* {@link https://developer.semrush.com/intergalactic/data-display/area-chart/area-chart-api/|API} | {@link https://developer.semrush.com/intergalactic/data-display/area-chart/area-chart-code/|Examples}
|
|
127
|
+
*/
|
|
122
128
|
(0, _defineProperty2.default)(AreaChartComponent, "displayName", 'Chart.Area');
|
|
123
129
|
(0, _defineProperty2.default)(AreaChartComponent, "enhance", [(0, _i18nEnhance.default)(_intergalacticDynamicLocales.localizedMessages)]);
|
|
130
|
+
(0, _defineProperty2.default)(AreaChartComponent, "defaultProps", {
|
|
131
|
+
direction: 'column',
|
|
132
|
+
showXAxis: true,
|
|
133
|
+
showYAxis: true,
|
|
134
|
+
showTooltip: true
|
|
135
|
+
});
|
|
124
136
|
const AreaChart = exports.AreaChart = (0, _core.createComponent)(AreaChartComponent);
|
|
125
137
|
//# sourceMappingURL=AreaChart.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AreaChart.js","names":["_core","require","_i18nEnhance","_interopRequireDefault","_d3Scale","_react","_","_AbstractChart","_intergalacticDynamicLocales","AreaChartComponent","AbstractChart","xScale","marginY","plotWidth","data","groupKey","asProps","testItem","range","plotPadding","domain","minMax","Date","Number","isNaN","getMilliseconds","scaleTime","scaleLinear","yScale","marginX","plotHeight","stacked","flatValues","min","Math","max","maxStackedValue","renderChart","curve","showDots","onClickArea","dataDefinitions","highlightedLine","state","default","createElement","StackedArea","x","map","item","index","checked","Area","y","id","key","color","transparent","onClick","Dots","display","renderTooltip","HoverLine","Tooltip","wMin","xIndex","dataItem","children","getTooltipChildren","getLegendAriaLabel","getI18nText","chartType","_defineProperty2","i18nEnhance","localizedMessages","AreaChart","exports","createComponent"],"sources":["../../../../src/component/Chart/AreaChart.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"AreaChart.js","names":["_core","require","_i18nEnhance","_interopRequireDefault","_d3Scale","_react","_","_AbstractChart","_intergalacticDynamicLocales","AreaChartComponent","AbstractChart","xScale","marginY","plotWidth","data","groupKey","asProps","testItem","range","plotPadding","domain","minMax","Date","Number","isNaN","getMilliseconds","scaleTime","scaleLinear","yScale","marginX","plotHeight","stacked","flatValues","min","Math","max","maxStackedValue","renderChart","curve","showDots","onClickArea","dataDefinitions","highlightedLine","state","default","createElement","StackedArea","x","map","item","index","checked","Area","y","id","key","color","transparent","onClick","Dots","display","renderTooltip","HoverLine","Tooltip","wMin","xIndex","dataItem","children","getTooltipChildren","getLegendAriaLabel","getI18nText","chartType","_defineProperty2","i18nEnhance","localizedMessages","direction","showXAxis","showYAxis","showTooltip","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 type { ChartState } from './AbstractChart';\nimport { AbstractChart } from './AbstractChart';\nimport type { AreaChartData, AreaChartProps, AreaChartType, AreaChartDefaultProps } from './AreaChart.type';\nimport { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';\n\nclass AreaChartComponent extends AbstractChart<\n AreaChartData,\n AreaChartProps,\n typeof AreaChartComponent.enhance,\n {},\n ChartState,\n AreaChartDefaultProps\n> {\n static displayName = 'Chart.Area';\n\n static enhance = [i18nEnhance(localizedMessages)] as const;\n\n static defaultProps = {\n direction: 'column',\n showXAxis: true,\n showYAxis: true,\n showTooltip: true,\n } as const;\n\n get xScale() {\n const { xScale, marginY = 40, plotWidth, data, groupKey } = this.asProps;\n\n if (xScale) {\n return xScale;\n }\n\n const testItem = data[0][groupKey];\n const range = [marginY, plotWidth - this.plotPadding];\n const domain = minMax(data, groupKey);\n\n if (testItem instanceof Date && !Number.isNaN(testItem.getMilliseconds())) {\n return scaleTime(domain, range);\n }\n\n return scaleLinear(domain, range);\n }\n\n get yScale(): ScaleLinear<any, any> {\n const { yScale, marginX = 24, plotHeight, stacked } = this.asProps;\n\n if (yScale) {\n return yScale;\n }\n\n const flatValues = super.flatValues;\n const min = Math.min(...flatValues);\n const max = stacked ? super.maxStackedValue : Math.max(...flatValues);\n\n return scaleLinear()\n .range([plotHeight - marginX, this.plotPadding])\n .domain([min, max]);\n }\n\n renderChart() {\n const { groupKey, curve, showDots, stacked, onClickArea } = this.asProps;\n const { dataDefinitions, highlightedLine } = this.state;\n\n if (stacked) {\n return (\n <StackedArea x={groupKey}>\n {dataDefinitions.map((item, index) => {\n return (\n item.checked && (\n <StackedArea.Area\n x={groupKey}\n y={item.id}\n key={item.id}\n color={item.color}\n transparent={highlightedLine !== -1 && highlightedLine !== index}\n curve={curve}\n onClick={onClickArea}\n >\n {showDots && <StackedArea.Area.Dots display />}\n </StackedArea.Area>\n )\n );\n })}\n </StackedArea>\n );\n }\n\n return dataDefinitions.map((item, index) => {\n return (\n item.checked && (\n <Area\n x={groupKey}\n y={item.id}\n key={item.id}\n color={item.color}\n transparent={highlightedLine !== -1 && highlightedLine !== index}\n curve={curve}\n onClick={onClickArea}\n >\n {showDots && <Area.Dots display />}\n </Area>\n )\n );\n });\n }\n\n renderTooltip() {\n const { data, groupKey } = this.asProps;\n\n return (\n <HoverLine.Tooltip x={groupKey} wMin={100}>\n {({ xIndex }: any) => {\n const dataItem = data[xIndex];\n\n return {\n children: this.getTooltipChildren({\n Tooltip: HoverLine.Tooltip,\n dataItem,\n }),\n };\n }}\n </HoverLine.Tooltip>\n );\n }\n\n protected getLegendAriaLabel(): string {\n return this.asProps.getI18nText('legendForChart', { chartType: 'Area' });\n }\n}\n\n/**\n * AreaChart\n *\n * {@link https://developer.semrush.com/intergalactic/data-display/area-chart/area-chart-api/|API} | {@link https://developer.semrush.com/intergalactic/data-display/area-chart/area-chart-code/|Examples}\n */\nexport const AreaChart = createComponent<\n AreaChartType,\n typeof AreaChartComponent\n>(AreaChartComponent);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AreaChart.type.js","names":[],"sources":["../../../../src/component/Chart/AreaChart.type.ts"],"sourcesContent":["import type { Flex } from '@semcore/base-components';\nimport type { Intergalactic } from '@semcore/core';\nimport type { ScaleLinear, ScaleTime } from 'd3-scale';\nimport type { CurveFactory } from 'd3-shape';\n\nimport type { AriaNameProps, BaseChartProps } from './AbstractChart.type';\nimport type { interpolateValue } from '../../utils';\n\nexport type AreaChartData = Array<Record<string, number | typeof interpolateValue | Date>>;\n\nexport type AreaChartProps = BaseChartProps<AreaChartData> & {\n /** Field name that groups the data points */\n groupKey: string;\n /** Custom x-axis scale */\n xScale?: ScaleLinear<any, any> | ScaleTime<any, any>;\n /** Custom y-axis scale */\n yScale?: ScaleLinear<any, any>;\n /** Controls whether to display dots on the area chart lines */\n showDots?: boolean;\n /** D3 curve factory for line interpolation (e.g., curveLinear, curveCardinal) */\n curve?: CurveFactory;\n /** Enables stacked area chart mode */\n stacked?: boolean;\n /** Callback triggered when a user clicks on a chart at a position corresponding to a data item */\n onClickArea?: (index: number, event: React.SyntheticEvent) => void;\n};\n\nexport type AreaChartType = Intergalactic.Component<typeof Flex, Intergalactic.InternalTypings.EfficientOmit<AreaChartProps, 'showLegend'> & { showLegend?: boolean } & AriaNameProps>;\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"AreaChart.type.js","names":[],"sources":["../../../../src/component/Chart/AreaChart.type.ts"],"sourcesContent":["import type { Flex } from '@semcore/base-components';\nimport type { Intergalactic } from '@semcore/core';\nimport type { ScaleLinear, ScaleTime } from 'd3-scale';\nimport type { CurveFactory } from 'd3-shape';\n\nimport type { AriaNameProps, BaseChartProps } from './AbstractChart.type';\nimport type { interpolateValue } from '../../utils';\n\nexport type AreaChartData = Array<Record<string, number | typeof interpolateValue | Date>>;\n\nexport type AreaChartProps = BaseChartProps<AreaChartData> & {\n /** Field name that groups the data points */\n groupKey: string;\n /** Custom x-axis scale */\n xScale?: ScaleLinear<any, any> | ScaleTime<any, any>;\n /** Custom y-axis scale */\n yScale?: ScaleLinear<any, any>;\n /** Controls whether to display dots on the area chart lines */\n showDots?: boolean;\n /** D3 curve factory for line interpolation (e.g., curveLinear, curveCardinal) */\n curve?: CurveFactory;\n /** Enables stacked area chart mode */\n stacked?: boolean;\n /** Callback triggered when a user clicks on a chart at a position corresponding to a data item */\n onClickArea?: (index: number, event: React.SyntheticEvent) => void;\n};\n\nexport type AreaChartDefaultProps = {\n direction: 'column';\n showXAxis: true;\n showYAxis: true;\n showTooltip: true;\n};\n\nexport type AreaChartType = Intergalactic.Component<typeof Flex, Intergalactic.InternalTypings.EfficientOmit<AreaChartProps, 'showLegend'> & { showLegend?: boolean } & AriaNameProps>;\n"],"mappings":"","ignoreList":[]}
|
|
@@ -256,7 +256,19 @@ class BarChartComponent extends _AbstractChart.AbstractChart {
|
|
|
256
256
|
return (0, _d3Scale.scaleLinear)().range(invertAxis ? [marginY, plotWidth - this.plotPadding] : [plotHeight - marginX, this.plotPadding]).domain([0, max]);
|
|
257
257
|
}
|
|
258
258
|
}
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* BarChart
|
|
262
|
+
*
|
|
263
|
+
* {@link https://developer.semrush.com/intergalactic/data-display/bar-chart/bar-chart-api/|API} | {@link https://developer.semrush.com/intergalactic/data-display/bar-chart/bar-chart-code/|Examples}
|
|
264
|
+
*/
|
|
259
265
|
(0, _defineProperty2.default)(BarChartComponent, "displayName", 'Chart.Bar');
|
|
260
266
|
(0, _defineProperty2.default)(BarChartComponent, "enhance", [(0, _i18nEnhance.default)(_intergalacticDynamicLocales.localizedMessages)]);
|
|
267
|
+
(0, _defineProperty2.default)(BarChartComponent, "defaultProps", {
|
|
268
|
+
direction: 'column',
|
|
269
|
+
showXAxis: true,
|
|
270
|
+
showYAxis: true,
|
|
271
|
+
showTooltip: true
|
|
272
|
+
});
|
|
261
273
|
const BarChart = exports.BarChart = (0, _core.createComponent)(BarChartComponent);
|
|
262
274
|
//# sourceMappingURL=BarChart.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BarChart.js","names":["_core","require","_i18nEnhance","_interopRequireDefault","_d3Scale","_react","_AbstractChart","_","_intergalacticDynamicLocales","BarChartComponent","AbstractChart","constructor","args","_defineProperty2","default","_data","e","barIndex","barKey","onClickBar","asProps","xScale","invertAxis","valueScale","categoryScale","yScale","defaultLegendProps","props","trend","undefined","withTrend","renderTrend","key","groupKey","state","trendItem","createElement","Line","data","x","y","color","style","strokeWidth","strokeDasharray","Dots","display","renderChart","type","dataDefinitions","highlightedLine","length","item","BarComponent","GroupBar","HorizontalBar","Bar","checked","Fragment","id","onClick","handleClickBar","map","index","commonBarComponentProps","transparent","_extends2","StackBar","renderTooltip","onClickHoverRect","HoverRect","Tooltip","wMin","xIndex","yIndex","dataItem","children","getTooltipChildren","renderAxis","showXAxis","showYAxis","axisXValueFormatter","axisYValueFormatter","multilineXTicks","multilineYTicks","Array","isArray","xTicks","yTicks","childrenX","value","childrenY","YAxis","Ticks","primaryText","multiline","ticks","Grid","XAxis","getLegendAriaLabel","getI18nText","chartType","marginY","marginX","plotWidth","plotHeight","testItem","range","plotPadding","Date","Number","isNaN","getMilliseconds","domain","minMax","scaleTime","scaleBand","paddingInner","paddingOuter","max","maxStackedValue","Math","flatValues","scaleLinear","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, YAxis, XAxis } from '../..';\nimport { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';\nimport type { BarProps } from '../../types';\nimport type { LegendItemKey } from '../ChartLegend/LegendItem/LegendItem.type';\n\nclass BarChartComponent extends AbstractChart<\n BarChartData,\n BarChartProps,\n typeof BarChartComponent.enhance\n> {\n 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 override renderAxis(): React.ReactNode {\n const {\n invertAxis,\n showXAxis,\n showYAxis,\n data,\n axisXValueFormatter,\n axisYValueFormatter,\n multilineXTicks,\n multilineYTicks,\n } = this.asProps;\n\n if (!Array.isArray(data)) {\n return null;\n }\n\n const xTicks = this.xTicks;\n const yTicks = this.yTicks;\n\n const childrenX = axisXValueFormatter\n ? ({ value }: any) => ({ children: axisXValueFormatter(value) })\n : undefined;\n const childrenY = axisYValueFormatter\n ? ({ value }: any) => ({ children: axisYValueFormatter(value) })\n : undefined;\n\n return (\n <>\n {showYAxis && (\n <YAxis>\n {yTicks\n ? (\n <YAxis.Ticks primaryText={invertAxis} multiline={multilineYTicks} ticks={yTicks}>{childrenY}</YAxis.Ticks>\n )\n : (\n <YAxis.Ticks primaryText={invertAxis} multiline={multilineYTicks}>{childrenY}</YAxis.Ticks>\n )}\n {invertAxis !== true && (yTicks ? <YAxis.Grid ticks={yTicks} /> : <YAxis.Grid />)}\n </YAxis>\n )}\n\n {showXAxis && (\n <XAxis>\n {xTicks\n ? (\n <XAxis.Ticks multiline={multilineXTicks} ticks={xTicks}>{childrenX}</XAxis.Ticks>\n )\n : (\n <XAxis.Ticks multiline={multilineXTicks}>{childrenX}</XAxis.Ticks>\n )}\n {invertAxis === true && (xTicks ? <XAxis.Grid ticks={xTicks} /> : <XAxis.Grid />)}\n </XAxis>\n )}\n </>\n );\n }\n\n protected getLegendAriaLabel(): string {\n return this.asProps.getI18nText('legendForChart', { chartType: 'Bar' });\n }\n\n private handleClickBar = (\n _data: BarChartData[0],\n e: React.SyntheticEvent,\n barIndex: number,\n barKey: string,\n ) => {\n const { onClickBar } = this.asProps;\n\n if (onClickBar) {\n onClickBar(barIndex, barKey, e);\n }\n };\n\n private get categoryScale() {\n const {\n marginY = 40,\n marginX = 24,\n plotWidth,\n plotHeight,\n invertAxis,\n data,\n groupKey,\n } = this.asProps;\n\n const testItem = data[0][groupKey];\n const range = invertAxis\n ? [plotHeight - marginX, this.plotPadding]\n : [marginY, plotWidth - this.plotPadding];\n\n if (testItem instanceof Date && !Number.isNaN(testItem.getMilliseconds())) {\n const domain = minMax(data, groupKey);\n\n return scaleTime(domain, range);\n }\n\n const domain = data.map((item) => item[groupKey]);\n\n return scaleBand(domain, range).paddingInner(0.4).paddingOuter(0.2);\n }\n\n private get valueScale() {\n const { marginY = 40, marginX = 24, plotWidth, plotHeight, invertAxis, type } = this.asProps;\n\n const max = type === 'stack' ? super.maxStackedValue : Math.max(...super.flatValues);\n\n return scaleLinear()\n .range(\n invertAxis\n ? [marginY, plotWidth - this.plotPadding]\n : [plotHeight - marginX, this.plotPadding],\n )\n .domain([0, max]);\n }\n}\n\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","_AbstractChart","_","_intergalacticDynamicLocales","BarChartComponent","AbstractChart","constructor","args","_defineProperty2","default","_data","e","barIndex","barKey","onClickBar","asProps","xScale","invertAxis","valueScale","categoryScale","yScale","defaultLegendProps","props","trend","undefined","withTrend","renderTrend","key","groupKey","state","trendItem","createElement","Line","data","x","y","color","style","strokeWidth","strokeDasharray","Dots","display","renderChart","type","dataDefinitions","highlightedLine","length","item","BarComponent","GroupBar","HorizontalBar","Bar","checked","Fragment","id","onClick","handleClickBar","map","index","commonBarComponentProps","transparent","_extends2","StackBar","renderTooltip","onClickHoverRect","HoverRect","Tooltip","wMin","xIndex","yIndex","dataItem","children","getTooltipChildren","renderAxis","showXAxis","showYAxis","axisXValueFormatter","axisYValueFormatter","multilineXTicks","multilineYTicks","Array","isArray","xTicks","yTicks","childrenX","value","childrenY","YAxis","Ticks","primaryText","multiline","ticks","Grid","XAxis","getLegendAriaLabel","getI18nText","chartType","marginY","marginX","plotWidth","plotHeight","testItem","range","plotPadding","Date","Number","isNaN","getMilliseconds","domain","minMax","scaleTime","scaleBand","paddingInner","paddingOuter","max","maxStackedValue","Math","flatValues","scaleLinear","i18nEnhance","localizedMessages","direction","showTooltip","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 type { ChartState } from './AbstractChart';\nimport { AbstractChart } from './AbstractChart';\nimport type { BaseLegendProps } from './AbstractChart.type';\nimport type { BarChartData, BarChartProps, BarChartType, BarChartDefaultProps } from './BarChart.type';\n// @ts-ignore\nimport { minMax, GroupBar, HoverRect, StackBar, Line, YAxis, XAxis } from '../..';\nimport { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';\nimport type { BarProps } from '../../types';\nimport type { LegendItemKey } from '../ChartLegend/LegendItem/LegendItem.type';\n\nclass BarChartComponent extends AbstractChart<\n BarChartData,\n BarChartProps,\n typeof BarChartComponent.enhance,\n {},\n ChartState,\n BarChartDefaultProps\n> {\n static displayName = 'Chart.Bar';\n\n static enhance = [i18nEnhance(localizedMessages)] as const;\n\n static defaultProps = {\n direction: 'column',\n showXAxis: true,\n showYAxis: true,\n showTooltip: true,\n } as const;\n\n get xScale() {\n const { xScale, invertAxis } = this.asProps;\n\n if (xScale) {\n return xScale;\n }\n\n return invertAxis ? this.valueScale : this.categoryScale;\n }\n\n get yScale() {\n const { yScale, invertAxis } = this.asProps;\n\n if (yScale) {\n return yScale;\n }\n\n return invertAxis ? this.categoryScale : this.valueScale;\n }\n\n protected defaultLegendProps(): Partial<BaseLegendProps> {\n if (this.props.trend !== undefined) {\n return { withTrend: true };\n }\n\n return {};\n }\n\n renderTrend(key: LegendItemKey) {\n const { groupKey, invertAxis, trend } = this.asProps;\n const { withTrend } = this.state;\n const trendItem = trend?.[key];\n\n if (withTrend && trendItem) {\n return (\n <Line\n data={trendItem}\n key={`${key}_${groupKey}`}\n x={invertAxis ? 'y' : 'x'}\n y={invertAxis ? 'x' : 'y'}\n color='wall'\n style={{ strokeWidth: 3, strokeDasharray: 5 }}\n >\n <Line.Dots data={trendItem} display />\n </Line>\n );\n }\n\n return null;\n }\n\n renderChart() {\n const { groupKey, type = 'group', invertAxis } = this.asProps;\n const { dataDefinitions, highlightedLine } = this.state;\n\n if (dataDefinitions.length === 1) {\n const item = dataDefinitions[0];\n const BarComponent = invertAxis ? GroupBar.HorizontalBar : GroupBar.Bar;\n\n return (\n item.checked && (\n <>\n <BarComponent\n x={invertAxis ? item.id : groupKey}\n y={invertAxis ? groupKey : item.id}\n key={item.id}\n color={item.color}\n onClick={this.handleClickBar}\n />\n {this.renderTrend(item.id)}\n </>\n )\n );\n }\n\n if (type === 'group') {\n return (\n <>\n <GroupBar x={invertAxis ? undefined : groupKey} y={invertAxis ? groupKey : undefined}>\n {dataDefinitions.map((item, index) => {\n const BarComponent = invertAxis ? GroupBar.HorizontalBar : GroupBar.Bar;\n\n const commonBarComponentProps: BarProps = {\n color: item.color,\n transparent: highlightedLine !== -1 && highlightedLine !== index,\n onClick: this.handleClickBar,\n };\n\n if (invertAxis) {\n commonBarComponentProps.x = item.id;\n } else {\n commonBarComponentProps.y = item.id;\n }\n\n return item.checked && <BarComponent key={item.id} {...commonBarComponentProps} />;\n })}\n </GroupBar>\n {dataDefinitions.map((item) => item.checked && this.renderTrend(item.id))}\n </>\n );\n }\n\n if (type === 'stack') {\n return (\n <>\n <StackBar x={invertAxis ? undefined : groupKey} y={invertAxis ? groupKey : undefined}>\n {dataDefinitions.map((item, index) => {\n const BarComponent = invertAxis ? StackBar.HorizontalBar : StackBar.Bar;\n\n const commonBarComponentProps: BarProps = {\n color: item.color,\n transparent: highlightedLine !== -1 && highlightedLine !== index,\n onClick: this.handleClickBar,\n };\n\n if (invertAxis) {\n commonBarComponentProps.x = item.id;\n } else {\n commonBarComponentProps.y = item.id;\n }\n\n return item.checked && <BarComponent key={item.id} {...commonBarComponentProps} />;\n })}\n </StackBar>\n {dataDefinitions.map((item) => item.checked && this.renderTrend(item.id))}\n </>\n );\n }\n\n return null;\n }\n\n renderTooltip(): React.ReactNode {\n const { data, groupKey, invertAxis, onClickHoverRect } = this.asProps;\n\n return (\n <HoverRect.Tooltip\n x={invertAxis ? undefined : groupKey}\n y={invertAxis ? groupKey : undefined}\n wMin={100}\n onClick={onClickHoverRect}\n >\n {({ xIndex, yIndex }: any) => {\n const index = invertAxis ? yIndex : xIndex;\n const dataItem = data[index];\n\n return {\n children: this.getTooltipChildren({\n Tooltip: HoverRect.Tooltip,\n dataItem,\n }),\n };\n }}\n </HoverRect.Tooltip>\n );\n }\n\n protected override renderAxis(): React.ReactNode {\n const {\n invertAxis,\n showXAxis,\n showYAxis,\n data,\n axisXValueFormatter,\n axisYValueFormatter,\n multilineXTicks,\n multilineYTicks,\n } = this.asProps;\n\n if (!Array.isArray(data)) {\n return null;\n }\n\n const xTicks = this.xTicks;\n const yTicks = this.yTicks;\n\n const childrenX = axisXValueFormatter\n ? ({ value }: any) => ({ children: axisXValueFormatter(value) })\n : undefined;\n const childrenY = axisYValueFormatter\n ? ({ value }: any) => ({ children: axisYValueFormatter(value) })\n : undefined;\n\n return (\n <>\n {showYAxis && (\n <YAxis>\n {yTicks\n ? (\n <YAxis.Ticks primaryText={invertAxis} multiline={multilineYTicks} ticks={yTicks}>{childrenY}</YAxis.Ticks>\n )\n : (\n <YAxis.Ticks primaryText={invertAxis} multiline={multilineYTicks}>{childrenY}</YAxis.Ticks>\n )}\n {invertAxis !== true && (yTicks ? <YAxis.Grid ticks={yTicks} /> : <YAxis.Grid />)}\n </YAxis>\n )}\n\n {showXAxis && (\n <XAxis>\n {xTicks\n ? (\n <XAxis.Ticks multiline={multilineXTicks} ticks={xTicks}>{childrenX}</XAxis.Ticks>\n )\n : (\n <XAxis.Ticks multiline={multilineXTicks}>{childrenX}</XAxis.Ticks>\n )}\n {invertAxis === true && (xTicks ? <XAxis.Grid ticks={xTicks} /> : <XAxis.Grid />)}\n </XAxis>\n )}\n </>\n );\n }\n\n protected getLegendAriaLabel(): string {\n return this.asProps.getI18nText('legendForChart', { chartType: 'Bar' });\n }\n\n private handleClickBar = (\n _data: BarChartData[0],\n e: React.SyntheticEvent,\n barIndex: number,\n barKey: string,\n ) => {\n const { onClickBar } = this.asProps;\n\n if (onClickBar) {\n onClickBar(barIndex, barKey, e);\n }\n };\n\n private get categoryScale() {\n const {\n marginY = 40,\n marginX = 24,\n plotWidth,\n plotHeight,\n invertAxis,\n data,\n groupKey,\n } = this.asProps;\n\n const testItem = data[0][groupKey];\n const range = invertAxis\n ? [plotHeight - marginX, this.plotPadding]\n : [marginY, plotWidth - this.plotPadding];\n\n if (testItem instanceof Date && !Number.isNaN(testItem.getMilliseconds())) {\n const domain = minMax(data, groupKey);\n\n return scaleTime(domain, range);\n }\n\n const domain = data.map((item) => item[groupKey]);\n\n return scaleBand(domain, range).paddingInner(0.4).paddingOuter(0.2);\n }\n\n private get valueScale() {\n const { marginY = 40, marginX = 24, plotWidth, plotHeight, invertAxis, type } = this.asProps;\n\n const max = type === 'stack' ? super.maxStackedValue : Math.max(...super.flatValues);\n\n return scaleLinear()\n .range(\n invertAxis\n ? [marginY, plotWidth - this.plotPadding]\n : [plotHeight - marginX, this.plotPadding],\n )\n .domain([0, max]);\n }\n}\n\n/**\n * BarChart\n *\n * {@link https://developer.semrush.com/intergalactic/data-display/bar-chart/bar-chart-api/|API} | {@link https://developer.semrush.com/intergalactic/data-display/bar-chart/bar-chart-code/|Examples}\n */\nexport const BarChart = createComponent<\n BarChartType,\n typeof BarChartComponent\n>(BarChartComponent);\n"],"mappings":";;;;;;;;;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;AAIA,IAAAM,CAAA,GAAAN,OAAA;AACA,IAAAO,4BAAA,GAAAP,OAAA;AAFA;;AAMA,MAAMQ,iBAAiB,SAASC,4BAAa,CAO3C;EAAAC,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA,0BAsOyB,CACvBC,KAAsB,EACtBC,CAAuB,EACvBC,QAAgB,EAChBC,MAAc,KACX;MACH,MAAM;QAAEC;MAAW,CAAC,GAAG,IAAI,CAACC,OAAO;MAEnC,IAAID,UAAU,EAAE;QACdA,UAAU,CAACF,QAAQ,EAAEC,MAAM,EAAEF,CAAC,CAAC;MACjC;IACF,CAAC;EAAA;EArOD,IAAIK,MAAMA,CAAA,EAAG;IACX,MAAM;MAAEA,MAAM;MAAEC;IAAW,CAAC,GAAG,IAAI,CAACF,OAAO;IAE3C,IAAIC,MAAM,EAAE;MACV,OAAOA,MAAM;IACf;IAEA,OAAOC,UAAU,GAAG,IAAI,CAACC,UAAU,GAAG,IAAI,CAACC,aAAa;EAC1D;EAEA,IAAIC,MAAMA,CAAA,EAAG;IACX,MAAM;MAAEA,MAAM;MAAEH;IAAW,CAAC,GAAG,IAAI,CAACF,OAAO;IAE3C,IAAIK,MAAM,EAAE;MACV,OAAOA,MAAM;IACf;IAEA,OAAOH,UAAU,GAAG,IAAI,CAACE,aAAa,GAAG,IAAI,CAACD,UAAU;EAC1D;EAEUG,kBAAkBA,CAAA,EAA6B;IACvD,IAAI,IAAI,CAACC,KAAK,CAACC,KAAK,KAAKC,SAAS,EAAE;MAClC,OAAO;QAAEC,SAAS,EAAE;MAAK,CAAC;IAC5B;IAEA,OAAO,CAAC,CAAC;EACX;EAEAC,WAAWA,CAACC,GAAkB,EAAE;IAC9B,MAAM;MAAEC,QAAQ;MAAEX,UAAU;MAAEM;IAAM,CAAC,GAAG,IAAI,CAACR,OAAO;IACpD,MAAM;MAAEU;IAAU,CAAC,GAAG,IAAI,CAACI,KAAK;IAChC,MAAMC,SAAS,GAAGP,KAAK,GAAGI,GAAG,CAAC;IAE9B,IAAIF,SAAS,IAAIK,SAAS,EAAE;MAC1B,oBACE9B,MAAA,CAAAS,OAAA,CAAAsB,aAAA,CAAC7B,CAAA,CAAA8B,IAAI;QACHC,IAAI,EAAEH,SAAU;QAChBH,GAAG,EAAE,GAAGA,GAAG,IAAIC,QAAQ,EAAG;QAC1BM,CAAC,EAAEjB,UAAU,GAAG,GAAG,GAAG,GAAI;QAC1BkB,CAAC,EAAElB,UAAU,GAAG,GAAG,GAAG,GAAI;QAC1BmB,KAAK,EAAC,MAAM;QACZC,KAAK,EAAE;UAAEC,WAAW,EAAE,CAAC;UAAEC,eAAe,EAAE;QAAE;MAAE,gBAE9CvC,MAAA,CAAAS,OAAA,CAAAsB,aAAA,CAAC7B,CAAA,CAAA8B,IAAI,CAACQ,IAAI;QAACP,IAAI,EAAEH,SAAU;QAACW,OAAO;MAAA,CAAE,CACjC,CAAC;IAEX;IAEA,OAAO,IAAI;EACb;EAEAC,WAAWA,CAAA,EAAG;IACZ,MAAM;MAAEd,QAAQ;MAAEe,IAAI,GAAG,OAAO;MAAE1B;IAAW,CAAC,GAAG,IAAI,CAACF,OAAO;IAC7D,MAAM;MAAE6B,eAAe;MAAEC;IAAgB,CAAC,GAAG,IAAI,CAAChB,KAAK;IAEvD,IAAIe,eAAe,CAACE,MAAM,KAAK,CAAC,EAAE;MAChC,MAAMC,IAAI,GAAGH,eAAe,CAAC,CAAC,CAAC;MAC/B,MAAMI,YAAY,GAAG/B,UAAU,GAAGgC,UAAQ,CAACC,aAAa,GAAGD,UAAQ,CAACE,GAAG;MAEvE,OACEJ,IAAI,CAACK,OAAO,iBACVpD,MAAA,CAAAS,OAAA,CAAAsB,aAAA,CAAA/B,MAAA,CAAAS,OAAA,CAAA4C,QAAA,qBACErD,MAAA,CAAAS,OAAA,CAAAsB,aAAA,CAACiB,YAAY;QACXd,CAAC,EAAEjB,UAAU,GAAG8B,IAAI,CAACO,EAAE,GAAG1B,QAAS;QACnCO,CAAC,EAAElB,UAAU,GAAGW,QAAQ,GAAGmB,IAAI,CAACO,EAAG;QACnC3B,GAAG,EAAEoB,IAAI,CAACO,EAAG;QACblB,KAAK,EAAEW,IAAI,CAACX,KAAM;QAClBmB,OAAO,EAAE,IAAI,CAACC;MAAe,CAC9B,CAAC,EACD,IAAI,CAAC9B,WAAW,CAACqB,IAAI,CAACO,EAAE,CACzB,CACH;IAEL;IAEA,IAAIX,IAAI,KAAK,OAAO,EAAE;MACpB,oBACE3C,MAAA,CAAAS,OAAA,CAAAsB,aAAA,CAAA/B,MAAA,CAAAS,OAAA,CAAA4C,QAAA,qBACErD,MAAA,CAAAS,OAAA,CAAAsB,aAAA,CAAC7B,CAAA,CAAA+C,QAAQ;QAACf,CAAC,EAAEjB,UAAU,GAAGO,SAAS,GAAGI,QAAS;QAACO,CAAC,EAAElB,UAAU,GAAGW,QAAQ,GAAGJ;MAAU,GAClFoB,eAAe,CAACa,GAAG,CAAC,CAACV,IAAI,EAAEW,KAAK,KAAK;QACpC,MAAMV,YAAY,GAAG/B,UAAU,GAAGgC,UAAQ,CAACC,aAAa,GAAGD,UAAQ,CAACE,GAAG;QAEvE,MAAMQ,uBAAiC,GAAG;UACxCvB,KAAK,EAAEW,IAAI,CAACX,KAAK;UACjBwB,WAAW,EAAEf,eAAe,KAAK,CAAC,CAAC,IAAIA,eAAe,KAAKa,KAAK;UAChEH,OAAO,EAAE,IAAI,CAACC;QAChB,CAAC;QAED,IAAIvC,UAAU,EAAE;UACd0C,uBAAuB,CAACzB,CAAC,GAAGa,IAAI,CAACO,EAAE;QACrC,CAAC,MAAM;UACLK,uBAAuB,CAACxB,CAAC,GAAGY,IAAI,CAACO,EAAE;QACrC;QAEA,OAAOP,IAAI,CAACK,OAAO,iBAAIpD,MAAA,CAAAS,OAAA,CAAAsB,aAAA,CAACiB,YAAY,MAAAa,SAAA,CAAApD,OAAA;UAACkB,GAAG,EAAEoB,IAAI,CAACO;QAAG,GAAKK,uBAAuB,CAAG,CAAC;MACpF,CAAC,CACO,CAAC,EACVf,eAAe,CAACa,GAAG,CAAEV,IAAI,IAAKA,IAAI,CAACK,OAAO,IAAI,IAAI,CAAC1B,WAAW,CAACqB,IAAI,CAACO,EAAE,CAAC,CACxE,CAAC;IAEP;IAEA,IAAIX,IAAI,KAAK,OAAO,EAAE;MACpB,oBACE3C,MAAA,CAAAS,OAAA,CAAAsB,aAAA,CAAA/B,MAAA,CAAAS,OAAA,CAAA4C,QAAA,qBACErD,MAAA,CAAAS,OAAA,CAAAsB,aAAA,CAAC7B,CAAA,CAAA4D,QAAQ;QAAC5B,CAAC,EAAEjB,UAAU,GAAGO,SAAS,GAAGI,QAAS;QAACO,CAAC,EAAElB,UAAU,GAAGW,QAAQ,GAAGJ;MAAU,GAClFoB,eAAe,CAACa,GAAG,CAAC,CAACV,IAAI,EAAEW,KAAK,KAAK;QACpC,MAAMV,YAAY,GAAG/B,UAAU,GAAG6C,UAAQ,CAACZ,aAAa,GAAGY,UAAQ,CAACX,GAAG;QAEvE,MAAMQ,uBAAiC,GAAG;UACxCvB,KAAK,EAAEW,IAAI,CAACX,KAAK;UACjBwB,WAAW,EAAEf,eAAe,KAAK,CAAC,CAAC,IAAIA,eAAe,KAAKa,KAAK;UAChEH,OAAO,EAAE,IAAI,CAACC;QAChB,CAAC;QAED,IAAIvC,UAAU,EAAE;UACd0C,uBAAuB,CAACzB,CAAC,GAAGa,IAAI,CAACO,EAAE;QACrC,CAAC,MAAM;UACLK,uBAAuB,CAACxB,CAAC,GAAGY,IAAI,CAACO,EAAE;QACrC;QAEA,OAAOP,IAAI,CAACK,OAAO,iBAAIpD,MAAA,CAAAS,OAAA,CAAAsB,aAAA,CAACiB,YAAY,MAAAa,SAAA,CAAApD,OAAA;UAACkB,GAAG,EAAEoB,IAAI,CAACO;QAAG,GAAKK,uBAAuB,CAAG,CAAC;MACpF,CAAC,CACO,CAAC,EACVf,eAAe,CAACa,GAAG,CAAEV,IAAI,IAAKA,IAAI,CAACK,OAAO,IAAI,IAAI,CAAC1B,WAAW,CAACqB,IAAI,CAACO,EAAE,CAAC,CACxE,CAAC;IAEP;IAEA,OAAO,IAAI;EACb;EAEAS,aAAaA,CAAA,EAAoB;IAC/B,MAAM;MAAE9B,IAAI;MAAEL,QAAQ;MAAEX,UAAU;MAAE+C;IAAiB,CAAC,GAAG,IAAI,CAACjD,OAAO;IAErE,oBACEf,MAAA,CAAAS,OAAA,CAAAsB,aAAA,CAAC7B,CAAA,CAAA+D,SAAS,CAACC,OAAO;MAChBhC,CAAC,EAAEjB,UAAU,GAAGO,SAAS,GAAGI,QAAS;MACrCO,CAAC,EAAElB,UAAU,GAAGW,QAAQ,GAAGJ,SAAU;MACrC2C,IAAI,EAAE,GAAI;MACVZ,OAAO,EAAES;IAAiB,GAEzB,CAAC;MAAEI,MAAM;MAAEC;IAAY,CAAC,KAAK;MAC5B,MAAMX,KAAK,GAAGzC,UAAU,GAAGoD,MAAM,GAAGD,MAAM;MAC1C,MAAME,QAAQ,GAAGrC,IAAI,CAACyB,KAAK,CAAC;MAE5B,OAAO;QACLa,QAAQ,EAAE,IAAI,CAACC,kBAAkB,CAAC;UAChCN,OAAO,EAAED,WAAS,CAACC,OAAO;UAC1BI;QACF,CAAC;MACH,CAAC;IACH,CACiB,CAAC;EAExB;EAEmBG,UAAUA,CAAA,EAAoB;IAC/C,MAAM;MACJxD,UAAU;MACVyD,SAAS;MACTC,SAAS;MACT1C,IAAI;MACJ2C,mBAAmB;MACnBC,mBAAmB;MACnBC,eAAe;MACfC;IACF,CAAC,GAAG,IAAI,CAAChE,OAAO;IAEhB,IAAI,CAACiE,KAAK,CAACC,OAAO,CAAChD,IAAI,CAAC,EAAE;MACxB,OAAO,IAAI;IACb;IAEA,MAAMiD,MAAM,GAAG,IAAI,CAACA,MAAM;IAC1B,MAAMC,MAAM,GAAG,IAAI,CAACA,MAAM;IAE1B,MAAMC,SAAS,GAAGR,mBAAmB,GACjC,CAAC;MAAES;IAAW,CAAC,MAAM;MAAEd,QAAQ,EAAEK,mBAAmB,CAACS,KAAK;IAAE,CAAC,CAAC,GAC9D7D,SAAS;IACb,MAAM8D,SAAS,GAAGT,mBAAmB,GACjC,CAAC;MAAEQ;IAAW,CAAC,MAAM;MAAEd,QAAQ,EAAEM,mBAAmB,CAACQ,KAAK;IAAE,CAAC,CAAC,GAC9D7D,SAAS;IAEb,oBACExB,MAAA,CAAAS,OAAA,CAAAsB,aAAA,CAAA/B,MAAA,CAAAS,OAAA,CAAA4C,QAAA,QACGsB,SAAS,iBACR3E,MAAA,CAAAS,OAAA,CAAAsB,aAAA,CAAC7B,CAAA,CAAAqF,KAAK,QACHJ,MAAM,gBAEDnF,MAAA,CAAAS,OAAA,CAAAsB,aAAA,CAAC7B,CAAA,CAAAqF,KAAK,CAACC,KAAK;MAACC,WAAW,EAAExE,UAAW;MAACyE,SAAS,EAAEX,eAAgB;MAACY,KAAK,EAAER;IAAO,GAAEG,SAAuB,CAAC,gBAG1GtF,MAAA,CAAAS,OAAA,CAAAsB,aAAA,CAAC7B,CAAA,CAAAqF,KAAK,CAACC,KAAK;MAACC,WAAW,EAAExE,UAAW;MAACyE,SAAS,EAAEX;IAAgB,GAAEO,SAAuB,CAC3F,EACJrE,UAAU,KAAK,IAAI,KAAKkE,MAAM,gBAAGnF,MAAA,CAAAS,OAAA,CAAAsB,aAAA,CAAC7B,CAAA,CAAAqF,KAAK,CAACK,IAAI;MAACD,KAAK,EAAER;IAAO,CAAE,CAAC,gBAAGnF,MAAA,CAAAS,OAAA,CAAAsB,aAAA,CAAC7B,CAAA,CAAAqF,KAAK,CAACK,IAAI,MAAE,CAAC,CAC3E,CACR,EAEAlB,SAAS,iBACR1E,MAAA,CAAAS,OAAA,CAAAsB,aAAA,CAAC7B,CAAA,CAAA2F,KAAK,QACHX,MAAM,gBAEDlF,MAAA,CAAAS,OAAA,CAAAsB,aAAA,CAAC7B,CAAA,CAAA2F,KAAK,CAACL,KAAK;MAACE,SAAS,EAAEZ,eAAgB;MAACa,KAAK,EAAET;IAAO,GAAEE,SAAuB,CAAC,gBAGjFpF,MAAA,CAAAS,OAAA,CAAAsB,aAAA,CAAC7B,CAAA,CAAA2F,KAAK,CAACL,KAAK;MAACE,SAAS,EAAEZ;IAAgB,GAAEM,SAAuB,CAClE,EACJnE,UAAU,KAAK,IAAI,KAAKiE,MAAM,gBAAGlF,MAAA,CAAAS,OAAA,CAAAsB,aAAA,CAAC7B,CAAA,CAAA2F,KAAK,CAACD,IAAI;MAACD,KAAK,EAAET;IAAO,CAAE,CAAC,gBAAGlF,MAAA,CAAAS,OAAA,CAAAsB,aAAA,CAAC7B,CAAA,CAAA2F,KAAK,CAACD,IAAI,MAAE,CAAC,CAC3E,CAET,CAAC;EAEP;EAEUE,kBAAkBA,CAAA,EAAW;IACrC,OAAO,IAAI,CAAC/E,OAAO,CAACgF,WAAW,CAAC,gBAAgB,EAAE;MAAEC,SAAS,EAAE;IAAM,CAAC,CAAC;EACzE;EAeA,IAAY7E,aAAaA,CAAA,EAAG;IAC1B,MAAM;MACJ8E,OAAO,GAAG,EAAE;MACZC,OAAO,GAAG,EAAE;MACZC,SAAS;MACTC,UAAU;MACVnF,UAAU;MACVgB,IAAI;MACJL;IACF,CAAC,GAAG,IAAI,CAACb,OAAO;IAEhB,MAAMsF,QAAQ,GAAGpE,IAAI,CAAC,CAAC,CAAC,CAACL,QAAQ,CAAC;IAClC,MAAM0E,KAAK,GAAGrF,UAAU,GACpB,CAACmF,UAAU,GAAGF,OAAO,EAAE,IAAI,CAACK,WAAW,CAAC,GACxC,CAACN,OAAO,EAAEE,SAAS,GAAG,IAAI,CAACI,WAAW,CAAC;IAE3C,IAAIF,QAAQ,YAAYG,IAAI,IAAI,CAACC,MAAM,CAACC,KAAK,CAACL,QAAQ,CAACM,eAAe,CAAC,CAAC,CAAC,EAAE;MACzE,MAAMC,MAAM,GAAG,IAAAC,QAAM,EAAC5E,IAAI,EAAEL,QAAQ,CAAC;MAErC,OAAO,IAAAkF,kBAAS,EAACF,MAAM,EAAEN,KAAK,CAAC;IACjC;IAEA,MAAMM,MAAM,GAAG3E,IAAI,CAACwB,GAAG,CAAEV,IAAI,IAAKA,IAAI,CAACnB,QAAQ,CAAC,CAAC;IAEjD,OAAO,IAAAmF,kBAAS,EAACH,MAAM,EAAEN,KAAK,CAAC,CAACU,YAAY,CAAC,GAAG,CAAC,CAACC,YAAY,CAAC,GAAG,CAAC;EACrE;EAEA,IAAY/F,UAAUA,CAAA,EAAG;IACvB,MAAM;MAAE+E,OAAO,GAAG,EAAE;MAAEC,OAAO,GAAG,EAAE;MAAEC,SAAS;MAAEC,UAAU;MAAEnF,UAAU;MAAE0B;IAAK,CAAC,GAAG,IAAI,CAAC5B,OAAO;IAE5F,MAAMmG,GAAG,GAAGvE,IAAI,KAAK,OAAO,GAAG,KAAK,CAACwE,eAAe,GAAGC,IAAI,CAACF,GAAG,CAAC,GAAG,KAAK,CAACG,UAAU,CAAC;IAEpF,OAAO,IAAAC,oBAAW,EAAC,CAAC,CACjBhB,KAAK,CACJrF,UAAU,GACN,CAACgF,OAAO,EAAEE,SAAS,GAAG,IAAI,CAACI,WAAW,CAAC,GACvC,CAACH,UAAU,GAAGF,OAAO,EAAE,IAAI,CAACK,WAAW,CAC7C,CAAC,CACAK,MAAM,CAAC,CAAC,CAAC,EAAEM,GAAG,CAAC,CAAC;EACrB;AACF;;AAEA;AACA;AACA;AACA;AACA;AAJA,IAAA1G,gBAAA,CAAAC,OAAA,EApSML,iBAAiB,iBAQA,WAAW;AAAA,IAAAI,gBAAA,CAAAC,OAAA,EAR5BL,iBAAiB,aAUJ,CAAC,IAAAmH,oBAAW,EAACC,8CAAiB,CAAC,CAAC;AAAA,IAAAhH,gBAAA,CAAAC,OAAA,EAV7CL,iBAAiB,kBAYC;EACpBqH,SAAS,EAAE,QAAQ;EACnB/C,SAAS,EAAE,IAAI;EACfC,SAAS,EAAE,IAAI;EACf+C,WAAW,EAAE;AACf,CAAC;AAwRI,MAAMC,QAAQ,GAAAC,OAAA,CAAAD,QAAA,GAAG,IAAAE,qBAAe,EAGrCzH,iBAAiB,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BarChart.type.js","names":[],"sources":["../../../../src/component/Chart/BarChart.type.ts"],"sourcesContent":["import type { Flex } from '@semcore/base-components';\nimport type { Intergalactic } from '@semcore/core';\nimport type { ScaleBand, ScaleLinear, ScaleTime } from 'd3-scale';\nimport type React from 'react';\n\nimport type { AriaNameProps, BaseChartProps } from './AbstractChart.type';\nimport type { LegendItemKey } from '../ChartLegend/LegendItem/LegendItem.type';\n\ntype TrendItem = {\n x: number | string;\n y: number | string;\n};\n\ntype BarKey = string;\n\nexport type BarChartData = Array<Record<BarKey, string | number | Date>>;\n\nexport type BarChartProps = BaseChartProps<BarChartData> & {\n /** Field name that groups the data points */\n groupKey: string;\n /** Custom x-axis scale */\n xScale?: ScaleBand<any> | ScaleTime<any, any>;\n /** Custom y-axis scale */\n yScale?: ScaleLinear<any, any>;\n /** Controls whether bars are grouped side-by-side or stacked */\n type?: 'stack' | 'group';\n /** Optional trend line data to overlay on the bars */\n trend?: Record<LegendItemKey, TrendItem[]>;\n /** Handle click by `HoverRect`. `index` is an index of the data array. */\n onClickHoverRect?: (index: number, e: React.SyntheticEvent) => void;\n /** Handle click by Bar. */\n onClickBar?: (barItem: number, barKey: BarKey, e: React.SyntheticEvent) => void;\n};\n\nexport type BarChartType = Intergalactic.Component<typeof Flex, BarChartProps & AriaNameProps>;\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"BarChart.type.js","names":[],"sources":["../../../../src/component/Chart/BarChart.type.ts"],"sourcesContent":["import type { Flex } from '@semcore/base-components';\nimport type { Intergalactic } from '@semcore/core';\nimport type { ScaleBand, ScaleLinear, ScaleTime } from 'd3-scale';\nimport type React from 'react';\n\nimport type { AriaNameProps, BaseChartProps } from './AbstractChart.type';\nimport type { LegendItemKey } from '../ChartLegend/LegendItem/LegendItem.type';\n\ntype TrendItem = {\n x: number | string;\n y: number | string;\n};\n\ntype BarKey = string;\n\nexport type BarChartData = Array<Record<BarKey, string | number | Date>>;\n\nexport type BarChartProps = BaseChartProps<BarChartData> & {\n /** Field name that groups the data points */\n groupKey: string;\n /** Custom x-axis scale */\n xScale?: ScaleBand<any> | ScaleTime<any, any>;\n /** Custom y-axis scale */\n yScale?: ScaleLinear<any, any>;\n /** Controls whether bars are grouped side-by-side or stacked */\n type?: 'stack' | 'group';\n /** Optional trend line data to overlay on the bars */\n trend?: Record<LegendItemKey, TrendItem[]>;\n /** Handle click by `HoverRect`. `index` is an index of the data array. */\n onClickHoverRect?: (index: number, e: React.SyntheticEvent) => void;\n /** Handle click by Bar. */\n onClickBar?: (barItem: number, barKey: BarKey, e: React.SyntheticEvent) => void;\n};\n\nexport type BarChartDefaultProps = {\n direction: 'column';\n showXAxis: true;\n showYAxis: true;\n showTooltip: true;\n};\n\nexport type BarChartType = Intergalactic.Component<typeof Flex, BarChartProps & AriaNameProps>;\n"],"mappings":"","ignoreList":[]}
|
|
@@ -130,7 +130,19 @@ class BubbleChartComponent extends _AbstractChart.AbstractChart {
|
|
|
130
130
|
});
|
|
131
131
|
}
|
|
132
132
|
}
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* BubbleChart
|
|
136
|
+
*
|
|
137
|
+
* {@link https://developer.semrush.com/intergalactic/data-display/bubble-chart/bubble-chart-api/|API} | {@link https://developer.semrush.com/intergalactic/data-display/bubble-chart/bubble-chart-code/|Examples}
|
|
138
|
+
*/
|
|
133
139
|
(0, _defineProperty2.default)(BubbleChartComponent, "displayName", 'Chart.Bubble');
|
|
134
140
|
(0, _defineProperty2.default)(BubbleChartComponent, "enhance", [(0, _i18nEnhance.default)(_intergalacticDynamicLocales.localizedMessages)]);
|
|
141
|
+
(0, _defineProperty2.default)(BubbleChartComponent, "defaultProps", {
|
|
142
|
+
direction: 'column',
|
|
143
|
+
showXAxis: true,
|
|
144
|
+
showYAxis: true,
|
|
145
|
+
showTooltip: true
|
|
146
|
+
});
|
|
135
147
|
const BubbleChart = exports.BubbleChart = (0, _core.createComponent)(BubbleChartComponent);
|
|
136
148
|
//# sourceMappingURL=BubbleChart.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BubbleChart.js","names":["_core","require","_i18nEnhance","_interopRequireDefault","_typography","_d3Scale","_react","_2","_AbstractChart","_intergalacticDynamicLocales","BubbleChartComponent","AbstractChart","dataKeys","data","props","map","_","index","toString","getDefaultDataDefinitions","legendProps","item","key","legendData","legendMap","color","undefined","resolveColor","dataDefinition","id","label","icon","checked","defaultChecked","columns","additionalInfo","count","xScale","marginY","plotWidth","asProps","range","plotPadding","domain","calculateBubbleDomain","scaleLinear","yScale","marginX","plotHeight","defaultLegendProps","shape","renderChart","onClickBubble","dataDefinitions","state","default","createElement","Bubble","onClick","x","y","value","Circle","visible","renderTooltip","Tooltip","children","Fragment","Title","Text","tag","getLegendAriaLabel","getI18nText","chartType","_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
|
+
{"version":3,"file":"BubbleChart.js","names":["_core","require","_i18nEnhance","_interopRequireDefault","_typography","_d3Scale","_react","_2","_AbstractChart","_intergalacticDynamicLocales","BubbleChartComponent","AbstractChart","dataKeys","data","props","map","_","index","toString","getDefaultDataDefinitions","legendProps","item","key","legendData","legendMap","color","undefined","resolveColor","dataDefinition","id","label","icon","checked","defaultChecked","columns","additionalInfo","count","xScale","marginY","plotWidth","asProps","range","plotPadding","domain","calculateBubbleDomain","scaleLinear","yScale","marginX","plotHeight","defaultLegendProps","shape","renderChart","onClickBubble","dataDefinitions","state","default","createElement","Bubble","onClick","x","y","value","Circle","visible","renderTooltip","Tooltip","children","Fragment","Title","Text","tag","getLegendAriaLabel","getI18nText","chartType","_defineProperty2","i18nEnhance","localizedMessages","direction","showXAxis","showYAxis","showTooltip","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 type { ChartState } from './AbstractChart';\nimport { AbstractChart } from './AbstractChart';\nimport type { BubbleChartData, BubbleChartProps, BubbleChartType, BubbleChartDefaultProps } from './BubbleChart.type';\nimport { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';\nimport type { LegendItem } from '../ChartLegend/LegendItem/LegendItem.type';\n\nclass BubbleChartComponent extends AbstractChart<\n BubbleChartData,\n BubbleChartProps,\n typeof BubbleChartComponent.enhance,\n {},\n ChartState,\n BubbleChartDefaultProps\n> {\n static displayName = 'Chart.Bubble';\n\n static enhance = [i18nEnhance(localizedMessages)] as const;\n\n static defaultProps = {\n direction: 'column',\n showXAxis: true,\n showYAxis: true,\n showTooltip: true,\n } as const;\n\n protected get dataKeys(): string[] {\n const { data } = this.props;\n\n return data.map((_, index) => index.toString());\n }\n\n protected override getDefaultDataDefinitions(): Array<\n LegendItem & { columns: React.ReactNode[] }\n > {\n const { legendProps, data } = this.props;\n\n return data.map((item, index) => {\n const key = index.toString();\n const legendData = legendProps?.legendMap?.[key];\n\n if (item.color === undefined) {\n item.color = this.resolveColor(key, index);\n }\n\n const dataDefinition: LegendItem & { columns: React.ReactNode[] } = {\n id: key,\n label: legendData?.label ?? item.label ?? key,\n icon: legendData?.icon ?? undefined,\n checked: legendData?.defaultChecked ?? true,\n color: item.color,\n columns: [],\n };\n\n if (legendData?.additionalInfo || legendData?.count) {\n dataDefinition.additionalInfo = legendData.additionalInfo\n ? { label: legendData.additionalInfo }\n : legendData.count\n ? { count: legendData.count }\n : undefined;\n }\n\n return dataDefinition;\n });\n }\n\n get xScale() {\n const { xScale, marginY = 30, plotWidth, data } = this.asProps;\n\n if (xScale) {\n return xScale;\n }\n\n const range = [marginY, plotWidth - this.plotPadding];\n const domain = calculateBubbleDomain(data, 'x', range);\n\n return scaleLinear().domain(domain).range(range);\n }\n\n get yScale(): ScaleLinear<any, any> {\n const { yScale, marginX = 30, plotHeight, data } = this.asProps;\n\n if (yScale) {\n return yScale;\n }\n\n const range = [plotHeight - marginX, this.plotPadding];\n const domain = calculateBubbleDomain(data, 'y', range);\n\n return scaleLinear().domain(domain).range(range);\n }\n\n defaultLegendProps() {\n return {\n shape: 'Circle' as const,\n };\n }\n\n renderChart() {\n const { onClickBubble } = this.asProps;\n const { dataDefinitions } = this.state;\n\n return (\n <Bubble onClick={onClickBubble} x='x' y='y' value='value' color='color' label='label'>\n {dataDefinitions.map(({ checked, id }, index) => (\n <Bubble.Circle visible={checked} key={id} index={index} />\n ))}\n </Bubble>\n );\n }\n\n renderTooltip() {\n return (\n <Bubble.Tooltip>\n {({ index, data }: any) => {\n return {\n children: (\n <>\n <Bubble.Tooltip.Title>Data</Bubble.Tooltip.Title>\n <Text tag='div'>\n X axis\n {' '}\n {data[index].x}\n </Text>\n <Text tag='div'>\n Y axis\n {' '}\n {data[index].y}\n </Text>\n <Text tag='div'>\n Value\n {' '}\n {data[index].value}\n </Text>\n </>\n ),\n };\n }}\n </Bubble.Tooltip>\n );\n }\n\n protected getLegendAriaLabel(): string {\n return this.asProps.getI18nText('legendForChart', { chartType: 'Bubble' });\n }\n}\n\n/**\n * BubbleChart\n *\n * {@link https://developer.semrush.com/intergalactic/data-display/bubble-chart/bubble-chart-api/|API} | {@link https://developer.semrush.com/intergalactic/data-display/bubble-chart/bubble-chart-code/|Examples}\n */\nexport const BubbleChart = createComponent<\n BubbleChartType,\n typeof BubbleChartComponent\n>(BubbleChartComponent);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BubbleChart.type.js","names":[],"sources":["../../../../src/component/Chart/BubbleChart.type.ts"],"sourcesContent":["import type { Flex } from '@semcore/base-components';\nimport type { Intergalactic } from '@semcore/core';\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":[]}
|
|
1
|
+
{"version":3,"file":"BubbleChart.type.js","names":[],"sources":["../../../../src/component/Chart/BubbleChart.type.ts"],"sourcesContent":["import type { Flex } from '@semcore/base-components';\nimport type { Intergalactic } from '@semcore/core';\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 BubbleChartDefaultProps = {\n direction: 'column';\n showXAxis: true;\n showYAxis: true;\n showTooltip: true;\n};\n\nexport type BubbleChartType = Intergalactic.Component<typeof Flex, BubbleChartProps>;\n"],"mappings":"","ignoreList":[]}
|
|
@@ -37,13 +37,13 @@ class CigaretteChartComponent extends _AbstractChart.AbstractChart {
|
|
|
37
37
|
(0, _defineProperty2.default)(this, "onPlotMouseMove", (0, _rafTrottle.default)(event => {
|
|
38
38
|
if (!this.plotRef.current) return;
|
|
39
39
|
const [pX, pY] = (0, _utils.eventToPoint)(event, this.plotRef.current);
|
|
40
|
-
this.setState(
|
|
40
|
+
this.setState(() => ({
|
|
41
41
|
pX,
|
|
42
42
|
pY
|
|
43
43
|
}));
|
|
44
44
|
}));
|
|
45
45
|
(0, _defineProperty2.default)(this, "onPlotMouseLeave", (0, _rafTrottle.default)(() => {
|
|
46
|
-
this.setState(
|
|
46
|
+
this.setState(() => ({
|
|
47
47
|
pX: null,
|
|
48
48
|
pY: null
|
|
49
49
|
}));
|
|
@@ -457,11 +457,17 @@ class CigaretteChartComponent extends _AbstractChart.AbstractChart {
|
|
|
457
457
|
return (0, _d3Scale.scaleThreshold)(domain, range);
|
|
458
458
|
}
|
|
459
459
|
}
|
|
460
|
+
|
|
461
|
+
/**
|
|
462
|
+
* CigaretteChart
|
|
463
|
+
*
|
|
464
|
+
* {@link https://developer.semrush.com/intergalactic/data-display/cigarette-chart/cigarette-chart-api/|API} | {@link https://developer.semrush.com/intergalactic/data-display/cigarette-chart/cigarette-chart-code/|Examples}
|
|
465
|
+
*/
|
|
460
466
|
(0, _defineProperty2.default)(CigaretteChartComponent, "displayName", 'Cigarette.Bar');
|
|
461
467
|
(0, _defineProperty2.default)(CigaretteChartComponent, "defaultProps", props => {
|
|
462
468
|
const invertAxis = props.invertAxis ?? true;
|
|
463
469
|
return {
|
|
464
|
-
invertAxis
|
|
470
|
+
invertAxis,
|
|
465
471
|
showXAxis: false,
|
|
466
472
|
showYAxis: false,
|
|
467
473
|
showTooltip: true,
|