@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
package/lib/es6/Donut.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Donut.js","names":["Component","Root","sstyled","callAllEventHandlers","canUseDOM","getOriginChildren","uniqueIDEnhancement","interpolate","arc","pie","transition","React","createElement","PatternFill","style","_sstyled","insert","Tooltip","getChartDefaultColorName","DEFAULT_INSTANCE","Symbol","transitionAnglePie","selector","duration","halfsize","d3Arc","d3ArcOut","arcs","activeIndexPie","selection","selectAll","interrupt","attrTween","_","ind","d","Object","assign","self","initAngle","Math","PI","prevStartAngle","prevEndAngle","startAngle","endAngle","iStartAngle","iEndAngle","t","transitionRadiusPie","data","element","innerRadius","outerRadiusStartEnd","paddingAngle","select","start","end","iOuterRadius","outerRadiusPX","dataset","outerRadius","padAngle","increaseFactor","getOuterRadius","size","width","height","minORmax","max","min","DonutRoot","constructor","args","_defineProperty","document","undefined","visible","props","tooltipProps","clientX","clientY","eventEmitter","plotId","asProps","emit","active","canAnimatedHover","id","clearTimeout","animationTimeout","setTimeout","on","uid","generateGetBoundingClientRect","x","y","top","right","bottom","left","getArcs","Children","d3Pie","pieData","entries","keys","toArray","reduce","acc","child","isValidElement","type","Donut","Pie","push","dataKey","filter","key","value","includes","sort","a","b","indexOf","minValue","cur","map","handlerOnClick","e","stopPropagation","onClick","getPieProps","index","resolveColor","patterns","find","name","color","transparent","$animationActivePie","animationActivePie","onMouseMove","bindHandlerTooltip","onMouseLeave","onMouseOver","target","getAttribute","onMouseOut","onClickPieRoot","getEmptyDataProps","componentDidUpdate","prevProps","$rootProps","animationUpdatePie","componentDidMount","render","dataHintsHandler","establishDataType","Element","k","childrenPosition","transform","SPie","styles","other","_ref2","isMount","setIsMount","useState","pieRef","useRef","useEffect","current","Boolean","describeValueEntity","Fragment","cn","EmptyData","SEmptyData","_ref3","Label","SLabel","children","label","_ref4","setTitle","DonutTooltip","_ref","arguments[0]","_ref5","SDonutTooltip","_assignProps","_______childrenComponents"],"sources":["../../src/Donut.jsx"],"sourcesContent":["import { Component, Root, sstyled } from '@semcore/core';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\nimport canUseDOM from '@semcore/core/lib/utils/canUseDOM';\nimport getOriginChildren from '@semcore/core/lib/utils/getOriginChildren';\nimport uniqueIDEnhancement from '@semcore/core/lib/utils/uniqueID';\nimport { interpolate } from 'd3-interpolate';\nimport { arc, pie } from 'd3-shape';\nimport { transition } from 'd3-transition';\nimport React from 'react';\n\nimport createElement from './createElement';\nimport { PatternFill } from './Pattern';\nimport style from './style/donut.shadow.css';\nimport Tooltip from './Tooltip';\nimport { getChartDefaultColorName } from './utils';\n\nconst DEFAULT_INSTANCE = Symbol('DEFAULT_INSTANCE');\n\nfunction transitionAnglePie({\n selector,\n duration,\n halfsize,\n d3Arc,\n d3ArcOut,\n arcs,\n activeIndexPie,\n}) {\n return transition()\n .selection()\n .selectAll(selector)\n .interrupt()\n .transition()\n .duration(duration)\n .attrTween('d', function (_, ind) {\n if (!arcs[ind]) return () => '';\n const d = Object.assign({}, arcs[ind]);\n const self = this;\n const initAngle = halfsize ? -Math.PI / 2 : 0;\n let prevStartAngle = initAngle;\n let prevEndAngle = initAngle;\n if (self.arc) {\n prevStartAngle = self.arc.startAngle;\n prevEndAngle = self.arc.endAngle;\n }\n const iStartAngle = interpolate(prevStartAngle, d.startAngle);\n const iEndAngle = interpolate(prevEndAngle, d.endAngle);\n return function (t) {\n d.startAngle = iStartAngle(t);\n d.endAngle = iEndAngle(t);\n self.arc = d;\n return ind === activeIndexPie ? d3ArcOut(self.arc) : d3Arc(self.arc);\n };\n });\n}\n\nfunction transitionRadiusPie({\n data,\n selector,\n element,\n duration,\n innerRadius,\n outerRadiusStartEnd,\n paddingAngle,\n}) {\n return transition()\n .selection()\n .select(selector)\n .interrupt()\n .transition()\n .duration(duration)\n .attrTween('d', function () {\n const [start, end] = outerRadiusStartEnd;\n const iOuterRadius = interpolate(start, end);\n return function (t) {\n const outerRadiusPX = iOuterRadius(t);\n element.dataset['currentRadius'] = outerRadiusPX;\n const d3ArcOut = arc()\n .innerRadius(innerRadius)\n .outerRadius(outerRadiusPX)\n .padAngle(paddingAngle);\n return d3ArcOut(data);\n };\n });\n}\n\nconst increaseFactor = 8;\n\nfunction getOuterRadius({ size, halfsize }) {\n const [width, height] = size;\n const minORmax = halfsize ? Math.max : Math.min;\n return minORmax(width - increaseFactor * 2, height - increaseFactor * 2) / 2;\n}\n\nclass DonutRoot extends Component {\n static displayName = 'Donut';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = ({\n innerRadius = 0,\n paddingAngle = 0,\n outerRadius,\n halfsize = false,\n $rootProps: { size },\n }) => {\n const d3Arc = arc()\n .outerRadius(outerRadius || getOuterRadius({ size, halfsize, outerRadius }))\n .innerRadius(innerRadius)\n .padAngle(paddingAngle);\n\n const d3ArcOut = arc()\n .outerRadius((outerRadius || getOuterRadius({ size, halfsize })) + increaseFactor)\n .innerRadius(innerRadius)\n .padAngle(paddingAngle);\n\n let d3Pie = pie()\n .sort(null)\n .value(([, value]) => value);\n d3Pie[DEFAULT_INSTANCE] = true;\n\n if (halfsize) {\n d3Pie = d3Pie.startAngle(-Math.PI / 2).endAngle(Math.PI / 2);\n }\n return {\n d3Pie,\n d3Arc,\n d3ArcOut,\n duration: 500,\n paddingAngle,\n innerRadius,\n };\n };\n\n get id() {\n const { uid, id } = this.asProps;\n return id || uid;\n }\n\n virtualElement = canUseDOM() ? document.createElement('div') : {};\n activeIndexPie = undefined;\n canAnimatedHover = false;\n\n generateGetBoundingClientRect(x = 0, y = 0) {\n return () => ({ width: 0, height: 0, top: y, right: x, bottom: y, left: x });\n }\n\n getArcs() {\n const { Children, data, d3Pie } = this.asProps;\n let pieData = Object.entries(data);\n\n if (d3Pie[DEFAULT_INSTANCE]) {\n const keys = React.Children.toArray(getOriginChildren(Children)).reduce((acc, child) => {\n if (React.isValidElement(child) && child.type === Donut.Pie) {\n acc.push(child.props.dataKey);\n }\n return acc;\n }, []);\n pieData = Object.entries(data)\n .filter(([key, value]) => keys.includes(key) && value > 0)\n .sort(([a], [b]) => (keys.indexOf(a) > keys.indexOf(b) ? 1 : -1));\n }\n const minValue =\n pieData.reduce((acc, cur) => {\n if (cur[1]) acc += cur[1];\n return acc;\n }, 0) / 100;\n pieData = pieData.map((d) => {\n if (d[1] && d[1] < minValue) d[1] = minValue;\n return d;\n });\n return d3Pie(pieData);\n }\n\n bindHandlerTooltip = (visible, props, tooltipProps) => ({ clientX, clientY }) => {\n const { eventEmitter, plotId } = this.asProps;\n\n eventEmitter.emit(`setTooltipPosition_${plotId}`, clientX, clientY);\n eventEmitter.emit(`setTooltipRenderingProps_${plotId}`, props, tooltipProps);\n eventEmitter.emit(`setTooltipVisible_${plotId}`, visible);\n };\n\n animationActivePie = ({ data, active, selector, element }) => {\n const { duration, innerRadius, d3Arc, paddingAngle } = this.asProps;\n const outerRadius = d3Arc.outerRadius()();\n const outerRadiusStartEnd = active\n ? [+element.dataset['currentRadius'] || outerRadius, outerRadius + increaseFactor]\n : [+element.dataset['currentRadius'] || outerRadius, outerRadius];\n if (this.canAnimatedHover && duration > 0) {\n transitionRadiusPie({\n data,\n selector: `#${this.id} ${selector}`,\n element,\n duration: duration === 0 ? 0 : 300,\n innerRadius,\n outerRadiusStartEnd,\n paddingAngle,\n });\n }\n };\n\n animationTimeout = null;\n animationUpdatePie = () => {\n clearTimeout(this.animationTimeout);\n this.animationTimeout = setTimeout(() => {\n const { duration, d3Arc, halfsize, d3ArcOut } = this.asProps;\n this.canAnimatedHover = false;\n if (duration > 0) {\n transitionAnglePie({\n selector: `#${this.id} [data-ui-name=\"Donut.Pie\"]`,\n duration,\n arcs: this.arcs,\n halfsize,\n d3Arc,\n d3ArcOut,\n activeIndexPie: this.activeIndexPie,\n }).on('end', () => {\n this.canAnimatedHover = true;\n });\n } else {\n this.canAnimatedHover = true;\n }\n }, 0);\n };\n\n handlerOnClick(key) {\n return (e) => {\n e.stopPropagation();\n\n const { onClick } = this.asProps;\n\n if (!onClick) return;\n\n onClick(key, e);\n };\n }\n\n getPieProps(props, index) {\n const { d3Arc, d3ArcOut, innerRadius, outerRadius, halfsize, resolveColor, uid, patterns } =\n this.asProps;\n const { active } = props;\n const data = this.arcs.find((arc) => arc.data[0] === props.dataKey);\n if (active) {\n this.activeIndexPie = index;\n }\n const tooltipProps = {\n dataKey: props.dataKey,\n name: props.name,\n resolveColor,\n color: props.color || getChartDefaultColorName(index),\n active: props.active,\n transparent: props.transparent,\n patterns,\n };\n\n return {\n data,\n d3Arc,\n d3ArcOut,\n innerRadius,\n outerRadius,\n uid: `${uid}-${index}`,\n patterns,\n halfsize,\n color: props.color || getChartDefaultColorName(index),\n resolveColor,\n $animationActivePie: this.animationActivePie,\n onMouseMove: this.bindHandlerTooltip(true, props, tooltipProps),\n onMouseLeave: this.bindHandlerTooltip(false, props, tooltipProps),\n onMouseOver: (e) => {\n if (!active) {\n this.animationActivePie({\n active: true,\n data,\n selector: `[d=\"${e.target.getAttribute('d')}\"]`,\n element: e.target,\n });\n }\n },\n onMouseOut: (e) => {\n if (!active) {\n this.animationActivePie({\n active: false,\n data,\n selector: `[d=\"${e.target.getAttribute('d')}\"]`,\n element: e.target,\n });\n }\n },\n onClickPieRoot: this.handlerOnClick(props.dataKey),\n };\n }\n\n getEmptyDataProps() {\n const { d3Arc } = this.asProps;\n return {\n d3Arc,\n };\n }\n\n componentDidUpdate(prevProps) {\n const { data } = this.asProps;\n if (prevProps.$rootProps.data !== data) {\n this.animationUpdatePie();\n }\n }\n\n componentDidMount() {\n this.animationUpdatePie();\n }\n\n render() {\n const { halfsize, size } = this.asProps;\n this.asProps.dataHintsHandler.establishDataType('values-set');\n const [width, height] = size;\n const Element = this.Element;\n const k = halfsize ? 1 : 2;\n this.arcs = this.getArcs();\n return (\n <Element\n aria-hidden\n id={this.id}\n render='g'\n childrenPosition='inside'\n transform={`translate(${width / 2},${height / k})`}\n />\n );\n }\n}\n\nfunction Pie({\n Element: SPie,\n styles,\n d3Arc,\n data,\n color,\n $animationActivePie,\n active,\n d3ArcOut,\n name,\n dataKey,\n dataHintsHandler,\n transparent,\n innerRadius,\n outerRadius,\n resolveColor,\n halfsize,\n uid,\n patterns,\n onClick,\n onClickPieRoot,\n ...other\n}) {\n const [isMount, setIsMount] = React.useState(false);\n const pieRef = React.useRef(null);\n\n React.useEffect(() => {\n if (!pieRef.current) return;\n pieRef.current.dataset['currentRadius'] = (active ? d3ArcOut : d3Arc).outerRadius()();\n\n // do not run animation on first render\n if (!isMount) {\n setIsMount(true);\n return;\n }\n if (active !== undefined && active !== null) {\n $animationActivePie({\n active,\n data,\n selector: `[name=\"${other.name}\"]`,\n element: pieRef.current,\n });\n }\n }, [active, Boolean(data)]);\n React.useEffect(() => {\n if (!pieRef.current) return;\n pieRef.current.dataset['currentRadius'] = (active ? d3ArcOut : d3Arc).outerRadius()();\n }, [active, innerRadius, outerRadius, halfsize, Boolean(data)]);\n\n if (!data) return null;\n\n dataHintsHandler.establishDataType('values-set');\n dataHintsHandler.describeValueEntity(dataKey, name);\n\n return (\n <React.Fragment>\n {sstyled(styles)(\n <SPie\n render='path'\n ref={pieRef}\n color={resolveColor(color)}\n pattern={patterns ? `url(#${uid}-pattern)` : undefined}\n d={active ? d3ArcOut(data) : d3Arc(data)}\n transparent={transparent}\n use:onClick={callAllEventHandlers(onClickPieRoot, onClick)}\n />,\n )}\n {patterns && (\n <PatternFill\n id={`${uid}-pattern`}\n patternKey={color}\n color={resolveColor(color)}\n patterns={patterns}\n />\n )}\n </React.Fragment>\n );\n}\n\nfunction EmptyData({ Element: SEmptyData, styles, d3Arc, color, resolveColor }) {\n return sstyled(styles)(\n <SEmptyData\n render='path'\n color={resolveColor(color)}\n d={d3Arc({ endAngle: Math.PI * 2, startAngle: 0 })}\n />,\n );\n}\n\nfunction Label({\n Element: SLabel,\n styles,\n Children,\n children,\n label,\n dataHintsHandler,\n x = 0,\n y = 0,\n}) {\n dataHintsHandler.setTitle('vertical', label || children);\n\n return sstyled(styles)(\n <SLabel render='text' x={x} y={y} aria-hidden>\n <Children />\n </SLabel>,\n );\n}\n\nfunction DonutTooltip(props) {\n const SDonutTooltip = Root;\n return sstyled(props.styles)(<SDonutTooltip render={Tooltip} excludeAnchorProps />);\n};\n\nconst Donut = createElement(DonutRoot, {\n Pie,\n Label,\n EmptyData,\n Tooltip: [DonutTooltip, Tooltip._______childrenComponents],\n});\n\nexport default Donut;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Donut.js","names":["Component","Root","sstyled","callAllEventHandlers","canUseDOM","getOriginChildren","uniqueIDEnhancement","interpolate","arc","pie","transition","React","createElement","PatternFill","style","_sstyled","insert","Tooltip","getChartDefaultColorName","DEFAULT_INSTANCE","Symbol","transitionAnglePie","selector","duration","halfsize","d3Arc","d3ArcOut","arcs","activeIndexPie","selection","selectAll","interrupt","attrTween","_","ind","d","Object","assign","self","initAngle","Math","PI","prevStartAngle","prevEndAngle","startAngle","endAngle","iStartAngle","iEndAngle","t","transitionRadiusPie","data","element","innerRadius","outerRadiusStartEnd","paddingAngle","select","start","end","iOuterRadius","outerRadiusPX","dataset","outerRadius","padAngle","increaseFactor","getOuterRadius","size","width","height","minORmax","max","min","DonutRoot","constructor","args","_defineProperty","document","undefined","visible","props","tooltipProps","clientX","clientY","eventEmitter","plotId","asProps","emit","active","canAnimatedHover","id","clearTimeout","animationTimeout","setTimeout","on","uid","generateGetBoundingClientRect","x","y","top","right","bottom","left","getArcs","Children","d3Pie","pieData","entries","keys","toArray","reduce","acc","child","isValidElement","type","Donut","Pie","push","dataKey","filter","key","value","includes","sort","a","b","indexOf","minValue","cur","map","handlerOnClick","e","stopPropagation","onClick","getPieProps","index","resolveColor","patterns","find","name","color","transparent","$animationActivePie","animationActivePie","onMouseMove","bindHandlerTooltip","onMouseLeave","onMouseOver","target","getAttribute","onMouseOut","onClickPieRoot","getEmptyDataProps","componentDidUpdate","prevProps","$rootProps","animationUpdatePie","componentDidMount","render","dataHintsHandler","establishDataType","Element","k","childrenPosition","transform","SPie","styles","other","_ref2","isMount","setIsMount","useState","pieRef","useRef","useEffect","current","Boolean","describeValueEntity","Fragment","cn","EmptyData","SEmptyData","_ref3","Label","SLabel","children","label","_ref4","setTitle","DonutTooltip","_ref","arguments[0]","_ref5","SDonutTooltip","_assignProps","_______childrenComponents"],"sources":["../../src/Donut.jsx"],"sourcesContent":["import { Component, Root, sstyled } from '@semcore/core';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\nimport canUseDOM from '@semcore/core/lib/utils/canUseDOM';\nimport getOriginChildren from '@semcore/core/lib/utils/getOriginChildren';\nimport uniqueIDEnhancement from '@semcore/core/lib/utils/uniqueID';\nimport { interpolate } from 'd3-interpolate';\nimport { arc, pie } from 'd3-shape';\nimport { transition } from 'd3-transition';\nimport React from 'react';\n\nimport createElement from './createElement';\nimport { PatternFill } from './Pattern';\nimport style from './style/donut.shadow.css';\nimport Tooltip from './Tooltip';\nimport { getChartDefaultColorName } from './utils';\n\nconst DEFAULT_INSTANCE = Symbol('DEFAULT_INSTANCE');\n\nfunction transitionAnglePie({\n selector,\n duration,\n halfsize,\n d3Arc,\n d3ArcOut,\n arcs,\n activeIndexPie,\n}) {\n return transition()\n .selection()\n .selectAll(selector)\n .interrupt()\n .transition()\n .duration(duration)\n .attrTween('d', function (_, ind) {\n if (!arcs[ind]) return () => '';\n const d = Object.assign({}, arcs[ind]);\n const self = this;\n const initAngle = halfsize ? -Math.PI / 2 : 0;\n let prevStartAngle = initAngle;\n let prevEndAngle = initAngle;\n if (self.arc) {\n prevStartAngle = self.arc.startAngle;\n prevEndAngle = self.arc.endAngle;\n }\n const iStartAngle = interpolate(prevStartAngle, d.startAngle);\n const iEndAngle = interpolate(prevEndAngle, d.endAngle);\n return function (t) {\n d.startAngle = iStartAngle(t);\n d.endAngle = iEndAngle(t);\n self.arc = d;\n return ind === activeIndexPie ? d3ArcOut(self.arc) : d3Arc(self.arc);\n };\n });\n}\n\nfunction transitionRadiusPie({\n data,\n selector,\n element,\n duration,\n innerRadius,\n outerRadiusStartEnd,\n paddingAngle,\n}) {\n return transition()\n .selection()\n .select(selector)\n .interrupt()\n .transition()\n .duration(duration)\n .attrTween('d', function () {\n const [start, end] = outerRadiusStartEnd;\n const iOuterRadius = interpolate(start, end);\n return function (t) {\n const outerRadiusPX = iOuterRadius(t);\n element.dataset['currentRadius'] = outerRadiusPX;\n const d3ArcOut = arc()\n .innerRadius(innerRadius)\n .outerRadius(outerRadiusPX)\n .padAngle(paddingAngle);\n return d3ArcOut(data);\n };\n });\n}\n\nconst increaseFactor = 8;\n\nfunction getOuterRadius({ size, halfsize }) {\n const [width, height] = size;\n const minORmax = halfsize ? Math.max : Math.min;\n return minORmax(width - increaseFactor * 2, height - increaseFactor * 2) / 2;\n}\n\nclass DonutRoot extends Component {\n static displayName = 'Donut';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = ({\n innerRadius = 0,\n paddingAngle = 0,\n outerRadius,\n halfsize = false,\n $rootProps: { size },\n }) => {\n const d3Arc = arc()\n .outerRadius(outerRadius || getOuterRadius({ size, halfsize, outerRadius }))\n .innerRadius(innerRadius)\n .padAngle(paddingAngle);\n\n const d3ArcOut = arc()\n .outerRadius((outerRadius || getOuterRadius({ size, halfsize })) + increaseFactor)\n .innerRadius(innerRadius)\n .padAngle(paddingAngle);\n\n let d3Pie = pie()\n .sort(null)\n .value(([, value]) => value);\n d3Pie[DEFAULT_INSTANCE] = true;\n\n if (halfsize) {\n d3Pie = d3Pie.startAngle(-Math.PI / 2).endAngle(Math.PI / 2);\n }\n return {\n d3Pie,\n d3Arc,\n d3ArcOut,\n duration: 500,\n paddingAngle,\n innerRadius,\n };\n };\n\n get id() {\n const { uid, id } = this.asProps;\n return id || uid;\n }\n\n virtualElement = canUseDOM() ? document.createElement('div') : {};\n activeIndexPie = undefined;\n canAnimatedHover = false;\n\n generateGetBoundingClientRect(x = 0, y = 0) {\n return () => ({ width: 0, height: 0, top: y, right: x, bottom: y, left: x });\n }\n\n getArcs() {\n const { Children, data, d3Pie } = this.asProps;\n let pieData = Object.entries(data);\n\n if (d3Pie[DEFAULT_INSTANCE]) {\n const keys = React.Children.toArray(getOriginChildren(Children)).reduce((acc, child) => {\n if (React.isValidElement(child) && child.type === Donut.Pie) {\n acc.push(child.props.dataKey);\n }\n return acc;\n }, []);\n pieData = Object.entries(data)\n .filter(([key, value]) => keys.includes(key) && value > 0)\n .sort(([a], [b]) => (keys.indexOf(a) > keys.indexOf(b) ? 1 : -1));\n }\n const minValue =\n pieData.reduce((acc, cur) => {\n if (cur[1]) acc += cur[1];\n return acc;\n }, 0) / 100;\n pieData = pieData.map((d) => {\n if (d[1] && d[1] < minValue) d[1] = minValue;\n return d;\n });\n return d3Pie(pieData);\n }\n\n bindHandlerTooltip = (visible, props, tooltipProps) => ({ clientX, clientY }) => {\n const { eventEmitter, plotId } = this.asProps;\n\n eventEmitter.emit(`setTooltipPosition_${plotId}`, clientX, clientY);\n eventEmitter.emit(`setTooltipRenderingProps_${plotId}`, props, tooltipProps);\n eventEmitter.emit(`setTooltipVisible_${plotId}`, visible);\n };\n\n animationActivePie = ({ data, active, selector, element }) => {\n const { duration, innerRadius, d3Arc, paddingAngle } = this.asProps;\n const outerRadius = d3Arc.outerRadius()();\n const outerRadiusStartEnd = active\n ? [+element.dataset['currentRadius'] || outerRadius, outerRadius + increaseFactor]\n : [+element.dataset['currentRadius'] || outerRadius, outerRadius];\n if (this.canAnimatedHover && duration > 0) {\n transitionRadiusPie({\n data,\n selector: `#${this.id} ${selector}`,\n element,\n duration: duration === 0 ? 0 : 300,\n innerRadius,\n outerRadiusStartEnd,\n paddingAngle,\n });\n }\n };\n\n animationTimeout = null;\n animationUpdatePie = () => {\n clearTimeout(this.animationTimeout);\n this.animationTimeout = setTimeout(() => {\n const { duration, d3Arc, halfsize, d3ArcOut } = this.asProps;\n this.canAnimatedHover = false;\n if (duration > 0) {\n transitionAnglePie({\n selector: `#${this.id} [data-ui-name=\"Donut.Pie\"]`,\n duration,\n arcs: this.arcs,\n halfsize,\n d3Arc,\n d3ArcOut,\n activeIndexPie: this.activeIndexPie,\n }).on('end', () => {\n this.canAnimatedHover = true;\n });\n } else {\n this.canAnimatedHover = true;\n }\n }, 0);\n };\n\n handlerOnClick(key) {\n return (e) => {\n e.stopPropagation();\n\n const { onClick } = this.asProps;\n\n if (!onClick) return;\n\n onClick(key, e);\n };\n }\n\n getPieProps(props, index) {\n const { d3Arc, d3ArcOut, innerRadius, outerRadius, halfsize, resolveColor, uid, patterns } =\n this.asProps;\n const { active } = props;\n const data = this.arcs.find((arc) => arc.data[0] === props.dataKey);\n if (active) {\n this.activeIndexPie = index;\n }\n const tooltipProps = {\n dataKey: props.dataKey,\n name: props.name,\n resolveColor,\n color: props.color || getChartDefaultColorName(index),\n active: props.active,\n transparent: props.transparent,\n patterns,\n };\n\n return {\n data,\n d3Arc,\n d3ArcOut,\n innerRadius,\n outerRadius,\n uid: `${uid}-${index}`,\n patterns,\n halfsize,\n color: props.color || getChartDefaultColorName(index),\n resolveColor,\n $animationActivePie: this.animationActivePie,\n onMouseMove: this.bindHandlerTooltip(true, props, tooltipProps),\n onMouseLeave: this.bindHandlerTooltip(false, props, tooltipProps),\n onMouseOver: (e) => {\n if (!active) {\n this.animationActivePie({\n active: true,\n data,\n selector: `[d=\"${e.target.getAttribute('d')}\"]`,\n element: e.target,\n });\n }\n },\n onMouseOut: (e) => {\n if (!active) {\n this.animationActivePie({\n active: false,\n data,\n selector: `[d=\"${e.target.getAttribute('d')}\"]`,\n element: e.target,\n });\n }\n },\n onClickPieRoot: this.handlerOnClick(props.dataKey),\n };\n }\n\n getEmptyDataProps() {\n const { d3Arc } = this.asProps;\n return {\n d3Arc,\n };\n }\n\n componentDidUpdate(prevProps) {\n const { data } = this.asProps;\n if (prevProps.$rootProps.data !== data) {\n this.animationUpdatePie();\n }\n }\n\n componentDidMount() {\n this.animationUpdatePie();\n }\n\n render() {\n const { halfsize, size } = this.asProps;\n this.asProps.dataHintsHandler.establishDataType('values-set');\n const [width, height] = size;\n const Element = this.Element;\n const k = halfsize ? 1 : 2;\n this.arcs = this.getArcs();\n return (\n <Element\n aria-hidden\n id={this.id}\n render='g'\n childrenPosition='inside'\n transform={`translate(${width / 2},${height / k})`}\n />\n );\n }\n}\n\nfunction Pie({\n Element: SPie,\n styles,\n d3Arc,\n data,\n color,\n $animationActivePie,\n active,\n d3ArcOut,\n name,\n dataKey,\n dataHintsHandler,\n transparent,\n innerRadius,\n outerRadius,\n resolveColor,\n halfsize,\n uid,\n patterns,\n onClick,\n onClickPieRoot,\n ...other\n}) {\n const [isMount, setIsMount] = React.useState(false);\n const pieRef = React.useRef(null);\n\n React.useEffect(() => {\n if (!pieRef.current) return;\n pieRef.current.dataset['currentRadius'] = (active ? d3ArcOut : d3Arc).outerRadius()();\n\n // do not run animation on first render\n if (!isMount) {\n setIsMount(true);\n return;\n }\n if (active !== undefined && active !== null) {\n $animationActivePie({\n active,\n data,\n selector: `[name=\"${other.name}\"]`,\n element: pieRef.current,\n });\n }\n }, [active, Boolean(data)]);\n React.useEffect(() => {\n if (!pieRef.current) return;\n pieRef.current.dataset['currentRadius'] = (active ? d3ArcOut : d3Arc).outerRadius()();\n }, [active, innerRadius, outerRadius, halfsize, Boolean(data)]);\n\n if (!data) return null;\n\n dataHintsHandler.establishDataType('values-set');\n dataHintsHandler.describeValueEntity(dataKey, name);\n\n return (\n <React.Fragment>\n {sstyled(styles)(\n <SPie\n render='path'\n ref={pieRef}\n color={resolveColor(color)}\n pattern={patterns ? `url(#${uid}-pattern)` : undefined}\n d={active ? d3ArcOut(data) : d3Arc(data)}\n transparent={transparent}\n use:onClick={callAllEventHandlers(onClickPieRoot, onClick)}\n />,\n )}\n {patterns && (\n <PatternFill\n id={`${uid}-pattern`}\n patternKey={color}\n color={resolveColor(color)}\n patterns={patterns}\n />\n )}\n </React.Fragment>\n );\n}\n\nfunction EmptyData({ Element: SEmptyData, styles, d3Arc, color, resolveColor }) {\n return sstyled(styles)(\n <SEmptyData\n render='path'\n color={resolveColor(color)}\n d={d3Arc({ endAngle: Math.PI * 2, startAngle: 0 })}\n />,\n );\n}\n\nfunction Label({\n Element: SLabel,\n styles,\n Children,\n children,\n label,\n dataHintsHandler,\n x = 0,\n y = 0,\n}) {\n dataHintsHandler.setTitle('vertical', label || children);\n\n return sstyled(styles)(\n <SLabel render='text' x={x} y={y} aria-hidden>\n <Children />\n </SLabel>,\n );\n}\n\nfunction DonutTooltip(props) {\n const SDonutTooltip = Root;\n return sstyled(props.styles)(<SDonutTooltip render={Tooltip} excludeAnchorProps />);\n};\n\n/**\n * Donut\n *\n * {@link https://developer.semrush.com/intergalactic/data-display/donut-chart/donut-chart-api/|API} | {@link https://developer.semrush.com/intergalactic/data-display/donut-chart/donut-chart-code/|Examples}\n */\nconst Donut = createElement(DonutRoot, {\n Pie,\n Label,\n EmptyData,\n Tooltip: [DonutTooltip, Tooltip._______childrenComponents],\n});\n\nexport default Donut;\n"],"mappings":"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","ignoreList":[]}
|
package/lib/es6/Dots.js
CHANGED
|
@@ -6,16 +6,16 @@ import React from 'react';
|
|
|
6
6
|
import createElement from './createElement';
|
|
7
7
|
import { PatternSymbol, getPatternSymbolSize } from './Pattern';
|
|
8
8
|
/*!__reshadow-styles__:"./style/dot.shadow.css"*/
|
|
9
|
-
const style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".
|
|
9
|
+
const style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".___SDots_1vo8e_gg_ .___SDot_1vo8e_gg_{transition-duration:var(--duration_1vo8e)}.___SDot_1vo8e_gg_{stroke-width:1px;stroke:var(--intergalactic-chart-grid-border,#fff);fill:var(--intergalactic-chart-palette-order-1,#666bdb);transition-property:cx,cy,x,y;transition-timing-function:ease-in-out}.___SDot_1vo8e_gg_.__hide_1vo8e_gg_{display:none}.___SDot_1vo8e_gg_.__color_1vo8e_gg_{fill:var(--color_1vo8e)}.___SDot_1vo8e_gg_.__transparent_1vo8e_gg_{opacity:.3}", /*__inner_css_end__*/"1vo8e_gg_"),
|
|
10
10
|
/*__reshadow_css_end__*/
|
|
11
11
|
{
|
|
12
|
-
"__SDot": "
|
|
13
|
-
"_hide": "
|
|
14
|
-
"_color": "
|
|
15
|
-
"--color": "--
|
|
16
|
-
"_transparent": "
|
|
17
|
-
"__SDots": "
|
|
18
|
-
"--duration": "--
|
|
12
|
+
"__SDot": "___SDot_1vo8e_gg_",
|
|
13
|
+
"_hide": "__hide_1vo8e_gg_",
|
|
14
|
+
"_color": "__color_1vo8e_gg_",
|
|
15
|
+
"--color": "--color_1vo8e",
|
|
16
|
+
"_transparent": "__transparent_1vo8e_gg_",
|
|
17
|
+
"__SDots": "___SDots_1vo8e_gg_",
|
|
18
|
+
"--duration": "--duration_1vo8e"
|
|
19
19
|
});
|
|
20
20
|
import { eventToPoint, invert, interpolateValue, getChartDefaultColorName } from './utils';
|
|
21
21
|
function Dots(props) {
|
package/lib/es6/GroupBar.js
CHANGED
|
@@ -79,6 +79,12 @@ class GroupBarRoot extends Component {
|
|
|
79
79
|
});
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* GroupBar
|
|
85
|
+
*
|
|
86
|
+
* {@link https://developer.semrush.com/intergalactic/data-display/bar-chart/bar-chart-code#grouped-bars|Examples}
|
|
87
|
+
*/
|
|
82
88
|
_defineProperty(GroupBarRoot, "displayName", 'GroupBar');
|
|
83
89
|
const GroupBar = createElement(GroupBarRoot, {
|
|
84
90
|
Bar,
|
package/lib/es6/GroupBar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupBar.js","names":["Component","getOriginChildren","scaleBand","React","Bar","createElement","HorizontalBar","getChartDefaultColorName","scaleToBand","GroupBarRoot","getScaleGroup","Children","scale","scaleGroup","x","asProps","xyScale","domain","toArray","reduce","acc","child","isValidElement","type","GroupBar","props","hide","push","y","range","bandwidth","paddingInner","paddingOuter","getBarProps","index","maxBarSize","Number","POSITIVE_INFINITY","patterns","bandWidth","width","Math","min","offsetX","offset","color","groupKey","getHorizontalBarProps","height","offsetY","render","Element","dataHintsHandler","establishDataType","childrenPosition","_defineProperty"],"sources":["../../src/GroupBar.jsx"],"sourcesContent":["import { Component } from '@semcore/core';\nimport getOriginChildren from '@semcore/core/lib/utils/getOriginChildren';\nimport { scaleBand } from 'd3-scale';\nimport React from 'react';\n\nimport Bar from './Bar';\nimport createElement from './createElement';\nimport HorizontalBar from './HorizontalBar';\nimport { getChartDefaultColorName, scaleToBand } from './utils';\n\nclass GroupBarRoot extends Component {\n static displayName = 'GroupBar';\n\n getScaleGroup() {\n const { Children, scale, scaleGroup, x } = this.asProps;\n // TODO: love that hack (by lsroman) ❤�\n const xyScale = x ? scale[0] : scale[1];\n\n if (scaleGroup) return scaleGroup;\n\n const domain = React.Children.toArray(getOriginChildren(Children)).reduce((acc, child) => {\n if (React.isValidElement(child) && child.type === GroupBar.Bar && !child.props.hide) {\n acc.push(child.props.y);\n }\n if (\n React.isValidElement(child) &&\n child.type === GroupBar.HorizontalBar &&\n !child.props.hide\n ) {\n acc.push(child.props.x);\n }\n return acc;\n }, []);\n\n return scaleBand()\n .range([0, scaleToBand(xyScale).bandwidth()])\n .domain(domain)\n .paddingInner(0.1)\n .paddingOuter(0.1);\n }\n\n getBarProps({ y }, index) {\n const { x, maxBarSize = Number.POSITIVE_INFINITY, patterns } = this.asProps;\n\n const bandWidth = this.scaleGroup.bandwidth();\n const width = Math.min(bandWidth, maxBarSize);\n const offsetX = this.scaleGroup(y) + bandWidth / 2 - width / 2;\n\n return {\n offset: [offsetX, 0],\n width,\n color: getChartDefaultColorName(index),\n x,\n groupKey: x,\n patterns,\n };\n }\n\n getHorizontalBarProps({ x }, index) {\n const { y, maxBarSize = Number.POSITIVE_INFINITY } = this.asProps;\n\n const bandWidth = this.scaleGroup.bandwidth();\n const height = Math.min(bandWidth, maxBarSize);\n const offsetY = this.scaleGroup(x) + bandWidth / 2 - height / 2;\n\n return {\n offset: [0, offsetY],\n height,\n color: getChartDefaultColorName(index),\n y,\n groupKey: y,\n };\n }\n\n render() {\n const Element = this.Element;\n this.scaleGroup = this.getScaleGroup();\n\n this.asProps.dataHintsHandler.establishDataType('grouped-values');\n\n return (\n <Element aria-hidden render='g' childrenPosition='inside' scaleGroup={this.scaleGroup} />\n );\n }\n}\n\nconst GroupBar = createElement(GroupBarRoot, {\n Bar,\n HorizontalBar,\n});\n\nexport default GroupBar;\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"GroupBar.js","names":["Component","getOriginChildren","scaleBand","React","Bar","createElement","HorizontalBar","getChartDefaultColorName","scaleToBand","GroupBarRoot","getScaleGroup","Children","scale","scaleGroup","x","asProps","xyScale","domain","toArray","reduce","acc","child","isValidElement","type","GroupBar","props","hide","push","y","range","bandwidth","paddingInner","paddingOuter","getBarProps","index","maxBarSize","Number","POSITIVE_INFINITY","patterns","bandWidth","width","Math","min","offsetX","offset","color","groupKey","getHorizontalBarProps","height","offsetY","render","Element","dataHintsHandler","establishDataType","childrenPosition","_defineProperty"],"sources":["../../src/GroupBar.jsx"],"sourcesContent":["import { Component } from '@semcore/core';\nimport getOriginChildren from '@semcore/core/lib/utils/getOriginChildren';\nimport { scaleBand } from 'd3-scale';\nimport React from 'react';\n\nimport Bar from './Bar';\nimport createElement from './createElement';\nimport HorizontalBar from './HorizontalBar';\nimport { getChartDefaultColorName, scaleToBand } from './utils';\n\nclass GroupBarRoot extends Component {\n static displayName = 'GroupBar';\n\n getScaleGroup() {\n const { Children, scale, scaleGroup, x } = this.asProps;\n // TODO: love that hack (by lsroman) ❤�\n const xyScale = x ? scale[0] : scale[1];\n\n if (scaleGroup) return scaleGroup;\n\n const domain = React.Children.toArray(getOriginChildren(Children)).reduce((acc, child) => {\n if (React.isValidElement(child) && child.type === GroupBar.Bar && !child.props.hide) {\n acc.push(child.props.y);\n }\n if (\n React.isValidElement(child) &&\n child.type === GroupBar.HorizontalBar &&\n !child.props.hide\n ) {\n acc.push(child.props.x);\n }\n return acc;\n }, []);\n\n return scaleBand()\n .range([0, scaleToBand(xyScale).bandwidth()])\n .domain(domain)\n .paddingInner(0.1)\n .paddingOuter(0.1);\n }\n\n getBarProps({ y }, index) {\n const { x, maxBarSize = Number.POSITIVE_INFINITY, patterns } = this.asProps;\n\n const bandWidth = this.scaleGroup.bandwidth();\n const width = Math.min(bandWidth, maxBarSize);\n const offsetX = this.scaleGroup(y) + bandWidth / 2 - width / 2;\n\n return {\n offset: [offsetX, 0],\n width,\n color: getChartDefaultColorName(index),\n x,\n groupKey: x,\n patterns,\n };\n }\n\n getHorizontalBarProps({ x }, index) {\n const { y, maxBarSize = Number.POSITIVE_INFINITY } = this.asProps;\n\n const bandWidth = this.scaleGroup.bandwidth();\n const height = Math.min(bandWidth, maxBarSize);\n const offsetY = this.scaleGroup(x) + bandWidth / 2 - height / 2;\n\n return {\n offset: [0, offsetY],\n height,\n color: getChartDefaultColorName(index),\n y,\n groupKey: y,\n };\n }\n\n render() {\n const Element = this.Element;\n this.scaleGroup = this.getScaleGroup();\n\n this.asProps.dataHintsHandler.establishDataType('grouped-values');\n\n return (\n <Element aria-hidden render='g' childrenPosition='inside' scaleGroup={this.scaleGroup} />\n );\n }\n}\n\n/**\n * GroupBar\n *\n * {@link https://developer.semrush.com/intergalactic/data-display/bar-chart/bar-chart-code#grouped-bars|Examples}\n */\nconst GroupBar = createElement(GroupBarRoot, {\n Bar,\n HorizontalBar,\n});\n\nexport default GroupBar;\n"],"mappings":"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","ignoreList":[]}
|
package/lib/es6/HorizontalBar.js
CHANGED
|
@@ -7,24 +7,24 @@ import AnimatedClipPath from './AnimatedClipPath';
|
|
|
7
7
|
import createElement from './createElement';
|
|
8
8
|
import { PatternFill } from './Pattern';
|
|
9
9
|
/*!__reshadow-styles__:"./style/bar.shadow.css"*/
|
|
10
|
-
const style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".
|
|
10
|
+
const style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".___SBar_169ai_gg_{fill:var(--intergalactic-chart-palette-order-1,#666bdb);transition-property:height,width,y;transition-duration:var(--duration_169ai);transition-timing-function:ease-in-out}.___SBar_169ai_gg_.__color_169ai_gg_{fill:var(--color_169ai)}.___SBar_169ai_gg_.__pattern_169ai_gg_.__color_169ai_gg_{fill:var(--pattern_169ai);stroke:var(--color_169ai);stroke-width:1px}.___SBar_169ai_gg_.__hide_169ai_gg_{display:none}.___SBar_169ai_gg_.__transparent_169ai_gg_{opacity:.3}.___SBar_169ai_gg_.__onClick_169ai_gg_{cursor:pointer}.___SBackground_169ai_gg_{fill:var(--intergalactic-chart-grid-bar-chart-base-bg,#f1f2f2)}.___SBackground_169ai_gg_.__onClick_169ai_gg_{cursor:pointer}.___SBarAnnotation_169ai_gg_{display:flex;justify-content:space-between}.___SBarLabel_169ai_gg_{color:var(--intergalactic-text-primary,#010500e5);margin-right:auto}.___SBarLabel_169ai_gg_,.___SBarPercent_169ai_gg_{font-size:var(--intergalactic-fs-200,14px);line-height:var(--intergalactic-lh-200,142%)}.___SBarPercent_169ai_gg_{color:var(--intergalactic-text-secondary,#00030095);margin-right:var(--intergalactic-spacing-2x,8px)}@supports (color:color(display-p3 0 0 0%)){.___SBarPercent_169ai_gg_{color:var(--intergalactic-text-secondary,#00030095)}@media (color-gamut:p3){.___SBarPercent_169ai_gg_{color:var(--intergalactic-text-secondary,color(display-p3 .00228 .01289 .00252/.583))}}}.___SBarValue_169ai_gg_{min-width:52px;display:flex;justify-content:flex-end;color:var(--intergalactic-text-primary,#010500e5);font-size:var(--intergalactic-fs-200,14px);line-height:var(--intergalactic-lh-200,142%);text-align:right}.___SCompactHorizontalBarHoverRect_169ai_gg_{fill:var(--intergalactic-chart-grid-bar-chart-hover,#00161007)}", /*__inner_css_end__*/"169ai_gg_"),
|
|
11
11
|
/*__reshadow_css_end__*/
|
|
12
12
|
{
|
|
13
|
-
"__SBar": "
|
|
14
|
-
"--duration": "--
|
|
15
|
-
"_color": "
|
|
16
|
-
"--color": "--
|
|
17
|
-
"_pattern": "
|
|
18
|
-
"--pattern": "--
|
|
19
|
-
"_hide": "
|
|
20
|
-
"_transparent": "
|
|
21
|
-
"_onClick": "
|
|
22
|
-
"__SBackground": "
|
|
23
|
-
"__SBarAnnotation": "
|
|
24
|
-
"__SBarLabel": "
|
|
25
|
-
"__SBarPercent": "
|
|
26
|
-
"__SBarValue": "
|
|
27
|
-
"__SCompactHorizontalBarHoverRect": "
|
|
13
|
+
"__SBar": "___SBar_169ai_gg_",
|
|
14
|
+
"--duration": "--duration_169ai",
|
|
15
|
+
"_color": "__color_169ai_gg_",
|
|
16
|
+
"--color": "--color_169ai",
|
|
17
|
+
"_pattern": "__pattern_169ai_gg_",
|
|
18
|
+
"--pattern": "--pattern_169ai",
|
|
19
|
+
"_hide": "__hide_169ai_gg_",
|
|
20
|
+
"_transparent": "__transparent_169ai_gg_",
|
|
21
|
+
"_onClick": "__onClick_169ai_gg_",
|
|
22
|
+
"__SBackground": "___SBackground_169ai_gg_",
|
|
23
|
+
"__SBarAnnotation": "___SBarAnnotation_169ai_gg_",
|
|
24
|
+
"__SBarLabel": "___SBarLabel_169ai_gg_",
|
|
25
|
+
"__SBarPercent": "___SBarPercent_169ai_gg_",
|
|
26
|
+
"__SBarValue": "___SBarValue_169ai_gg_",
|
|
27
|
+
"__SCompactHorizontalBarHoverRect": "___SCompactHorizontalBarHoverRect_169ai_gg_"
|
|
28
28
|
});
|
|
29
29
|
import { scaleToBand, roundedPath } from './utils';
|
|
30
30
|
export const MIN_WIDTH = 2;
|
|
@@ -187,6 +187,12 @@ function getHorizontalRect({
|
|
|
187
187
|
}
|
|
188
188
|
return roundedPath(x, y, width, height, radius);
|
|
189
189
|
}
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* HorizontalBar
|
|
193
|
+
*
|
|
194
|
+
* {@link https://developer.semrush.com/intergalactic/data-display/bar-horizontal/bar-horizontal-api/|API} | {@link https://developer.semrush.com/intergalactic/data-display/bar-horizontal/bar-horizontal-code/|Examples}
|
|
195
|
+
*/
|
|
190
196
|
export default createElement(HorizontalBarRoot, {
|
|
191
197
|
Background
|
|
192
198
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HorizontalBar.js","names":["Component","sstyled","uniqueIDEnhancement","React","AnimatedClipPath","createElement","PatternFill","style","_sstyled","insert","scaleToBand","roundedPath","MIN_WIDTH","calcPartBarX","x","minWidth","width","Object","is","HorizontalBarRoot","getBackgroundProps","_props","index","data","y","asProps","value","renderBar","d","i","_ref","SBar","Element","styles","color","x0","scale","hide","offset","offsetProps","uid","duration","r","wMin","height","heightProps","onMouseMove","onMouseLeave","groupKey","transparent","maxBarSize","Number","POSITIVE_INFINITY","resolveColor","patterns","onClick","xScale","yScale","absWidth","Math","abs","max","domain","bandHeight","bandwidth","min","barY","barX","handleClick","event","dSvg","getHorizontalRect","radius","Array","isArray","position","dataHintsHandler","describeGroupedValues","describeValueEntity","Fragment","key","cn","undefined","render","size","map","bind","id","_defineProperty","Background","props","_ref2","SBackground","xRange","range"],"sources":["../../src/HorizontalBar.jsx"],"sourcesContent":["import { Component, sstyled } from '@semcore/core';\nimport uniqueIDEnhancement from '@semcore/core/lib/utils/uniqueID';\nimport React from 'react';\n\nimport AnimatedClipPath from './AnimatedClipPath';\nimport createElement from './createElement';\nimport { PatternFill } from './Pattern';\nimport style from './style/bar.shadow.css';\nimport { scaleToBand, roundedPath } from './utils';\n\nexport const MIN_WIDTH = 2;\n\nconst calcPartBarX = (x, minWidth, width) => {\n // need for the correct rendering of negative values\n if (x <= 0) {\n return width <= minWidth ? minWidth : 0;\n }\n // need for the correct rendering of the minimum positive values\n return Object.is(x, 0) ? minWidth : 0;\n};\n\nclass HorizontalBarRoot extends Component {\n static displayName = 'HorizontalBar';\n static enhance = [uniqueIDEnhancement()];\n static style = style;\n\n static defaultProps = {\n offset: [0, 0],\n duration: 500,\n r: 0,\n wMin: MIN_WIDTH,\n };\n\n getBackgroundProps(_props, index) {\n const { data, y } = this.asProps;\n return {\n value: data[index][y],\n index,\n };\n }\n\n renderBar(d, i) {\n const SBar = this.Element;\n const {\n styles,\n color,\n x,\n x0,\n y,\n scale,\n hide,\n offset: offsetProps,\n uid,\n duration,\n r,\n wMin,\n height: heightProps,\n onMouseMove,\n onMouseLeave,\n groupKey,\n transparent,\n maxBarSize = Number.POSITIVE_INFINITY,\n resolveColor,\n patterns,\n onClick,\n } = this.asProps;\n\n const offset = typeof offsetProps === 'function' ? offsetProps(i) : offsetProps;\n const [xScale, yScale] = scale;\n const absWidth = Math.abs(\n xScale(d[x]) - Math.max(xScale(xScale.domain()[0]), xScale(d[x0] ?? 0)),\n );\n const bandHeight = heightProps || scaleToBand(yScale).bandwidth();\n const height = Math.min(bandHeight, maxBarSize);\n const width = Number(d[x] - (d[x0] ?? 0)) === 0 ? 0 : Math.max(absWidth, wMin);\n const barY = yScale(d[y]) + bandHeight / 2 - height / 2 + offset[1];\n const barX =\n xScale(Math.min(d[x0] ?? 0, width <= wMin && d[x] < 0 ? 0 : d[x])) +\n offset[0] -\n calcPartBarX(d[x], wMin, width);\n const handleClick = (event) => onClick?.(d, event, i, x);\n const dSvg = getHorizontalRect({\n x: barX,\n y: barY,\n width,\n height,\n radius: Array.isArray(r) ? r[i] : r,\n position: d[x] > 0 || Object.is(d[x], 0) ? 'right' : 'left',\n });\n\n if (groupKey) {\n this.asProps.dataHintsHandler.describeGroupedValues(groupKey, x);\n } else {\n this.asProps.dataHintsHandler.describeValueEntity(`${i}.${x}`, groupKey ?? d[y]);\n }\n\n return (\n <React.Fragment key={`horizontal-bar-${i}`}>\n {sstyled(styles)(\n <SBar\n aria-hidden\n render='path'\n clipPath={`url(#${uid})`}\n __excludeProps={['data', 'scale', 'value', 'onClick', 'offset']}\n childrenPosition='above'\n value={d}\n index={i}\n hide={hide}\n color={resolveColor(color)}\n pattern={patterns ? `url(#${uid}-${i}-pattern)` : undefined}\n transparent={transparent}\n x={barX}\n y={barY}\n width={width}\n height={height}\n d={dSvg}\n onClickCapture={handleClick}\n use:duration={`${duration}ms`}\n onMouseMove={onMouseMove}\n onMouseLeave={onMouseLeave}\n />,\n )}\n {patterns && (\n <PatternFill\n id={`${uid}-${i}-pattern`}\n patternKey={color}\n color={resolveColor(color)}\n patterns={patterns}\n />\n )}\n </React.Fragment>\n );\n }\n\n render() {\n const { data, uid, size, duration } = this.asProps;\n\n return (\n <>\n {data.map(this.renderBar.bind(this))}\n {duration && (\n <AnimatedClipPath\n aria-hidden\n duration={duration}\n id={uid}\n x='0'\n y='0'\n width={0}\n height={size[1]}\n />\n )}\n </>\n );\n }\n}\n\nfunction Background(props) {\n const { Element: SBackground, styles, scale, value } = props;\n const [xScale, yScale] = scale;\n const xRange = xScale.range();\n\n return sstyled(styles)(\n <SBackground\n aria-hidden\n render='rect'\n childrenPosition='above'\n width={xRange[1] - xRange[0]}\n height={scaleToBand(yScale).bandwidth()}\n x={xRange[0]}\n y={yScale(value)}\n />,\n );\n}\n\nfunction getHorizontalRect({ x, y, width, height, radius, position }) {\n if (width < radius) radius = width;\n if (radius) {\n if (position === 'right')\n return roundedPath(x, y, width, height, radius, false, true, false, true);\n return roundedPath(x, y, width, height, radius, true, false, true, false);\n }\n return roundedPath(x, y, width, height, radius);\n}\n\nexport default createElement(HorizontalBarRoot, { Background });\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"HorizontalBar.js","names":["Component","sstyled","uniqueIDEnhancement","React","AnimatedClipPath","createElement","PatternFill","style","_sstyled","insert","scaleToBand","roundedPath","MIN_WIDTH","calcPartBarX","x","minWidth","width","Object","is","HorizontalBarRoot","getBackgroundProps","_props","index","data","y","asProps","value","renderBar","d","i","_ref","SBar","Element","styles","color","x0","scale","hide","offset","offsetProps","uid","duration","r","wMin","height","heightProps","onMouseMove","onMouseLeave","groupKey","transparent","maxBarSize","Number","POSITIVE_INFINITY","resolveColor","patterns","onClick","xScale","yScale","absWidth","Math","abs","max","domain","bandHeight","bandwidth","min","barY","barX","handleClick","event","dSvg","getHorizontalRect","radius","Array","isArray","position","dataHintsHandler","describeGroupedValues","describeValueEntity","Fragment","key","cn","undefined","render","size","map","bind","id","_defineProperty","Background","props","_ref2","SBackground","xRange","range"],"sources":["../../src/HorizontalBar.jsx"],"sourcesContent":["import { Component, sstyled } from '@semcore/core';\nimport uniqueIDEnhancement from '@semcore/core/lib/utils/uniqueID';\nimport React from 'react';\n\nimport AnimatedClipPath from './AnimatedClipPath';\nimport createElement from './createElement';\nimport { PatternFill } from './Pattern';\nimport style from './style/bar.shadow.css';\nimport { scaleToBand, roundedPath } from './utils';\n\nexport const MIN_WIDTH = 2;\n\nconst calcPartBarX = (x, minWidth, width) => {\n // need for the correct rendering of negative values\n if (x <= 0) {\n return width <= minWidth ? minWidth : 0;\n }\n // need for the correct rendering of the minimum positive values\n return Object.is(x, 0) ? minWidth : 0;\n};\n\nclass HorizontalBarRoot extends Component {\n static displayName = 'HorizontalBar';\n static enhance = [uniqueIDEnhancement()];\n static style = style;\n\n static defaultProps = {\n offset: [0, 0],\n duration: 500,\n r: 0,\n wMin: MIN_WIDTH,\n };\n\n getBackgroundProps(_props, index) {\n const { data, y } = this.asProps;\n return {\n value: data[index][y],\n index,\n };\n }\n\n renderBar(d, i) {\n const SBar = this.Element;\n const {\n styles,\n color,\n x,\n x0,\n y,\n scale,\n hide,\n offset: offsetProps,\n uid,\n duration,\n r,\n wMin,\n height: heightProps,\n onMouseMove,\n onMouseLeave,\n groupKey,\n transparent,\n maxBarSize = Number.POSITIVE_INFINITY,\n resolveColor,\n patterns,\n onClick,\n } = this.asProps;\n\n const offset = typeof offsetProps === 'function' ? offsetProps(i) : offsetProps;\n const [xScale, yScale] = scale;\n const absWidth = Math.abs(\n xScale(d[x]) - Math.max(xScale(xScale.domain()[0]), xScale(d[x0] ?? 0)),\n );\n const bandHeight = heightProps || scaleToBand(yScale).bandwidth();\n const height = Math.min(bandHeight, maxBarSize);\n const width = Number(d[x] - (d[x0] ?? 0)) === 0 ? 0 : Math.max(absWidth, wMin);\n const barY = yScale(d[y]) + bandHeight / 2 - height / 2 + offset[1];\n const barX =\n xScale(Math.min(d[x0] ?? 0, width <= wMin && d[x] < 0 ? 0 : d[x])) +\n offset[0] -\n calcPartBarX(d[x], wMin, width);\n const handleClick = (event) => onClick?.(d, event, i, x);\n const dSvg = getHorizontalRect({\n x: barX,\n y: barY,\n width,\n height,\n radius: Array.isArray(r) ? r[i] : r,\n position: d[x] > 0 || Object.is(d[x], 0) ? 'right' : 'left',\n });\n\n if (groupKey) {\n this.asProps.dataHintsHandler.describeGroupedValues(groupKey, x);\n } else {\n this.asProps.dataHintsHandler.describeValueEntity(`${i}.${x}`, groupKey ?? d[y]);\n }\n\n return (\n <React.Fragment key={`horizontal-bar-${i}`}>\n {sstyled(styles)(\n <SBar\n aria-hidden\n render='path'\n clipPath={`url(#${uid})`}\n __excludeProps={['data', 'scale', 'value', 'onClick', 'offset']}\n childrenPosition='above'\n value={d}\n index={i}\n hide={hide}\n color={resolveColor(color)}\n pattern={patterns ? `url(#${uid}-${i}-pattern)` : undefined}\n transparent={transparent}\n x={barX}\n y={barY}\n width={width}\n height={height}\n d={dSvg}\n onClickCapture={handleClick}\n use:duration={`${duration}ms`}\n onMouseMove={onMouseMove}\n onMouseLeave={onMouseLeave}\n />,\n )}\n {patterns && (\n <PatternFill\n id={`${uid}-${i}-pattern`}\n patternKey={color}\n color={resolveColor(color)}\n patterns={patterns}\n />\n )}\n </React.Fragment>\n );\n }\n\n render() {\n const { data, uid, size, duration } = this.asProps;\n\n return (\n <>\n {data.map(this.renderBar.bind(this))}\n {duration && (\n <AnimatedClipPath\n aria-hidden\n duration={duration}\n id={uid}\n x='0'\n y='0'\n width={0}\n height={size[1]}\n />\n )}\n </>\n );\n }\n}\n\nfunction Background(props) {\n const { Element: SBackground, styles, scale, value } = props;\n const [xScale, yScale] = scale;\n const xRange = xScale.range();\n\n return sstyled(styles)(\n <SBackground\n aria-hidden\n render='rect'\n childrenPosition='above'\n width={xRange[1] - xRange[0]}\n height={scaleToBand(yScale).bandwidth()}\n x={xRange[0]}\n y={yScale(value)}\n />,\n );\n}\n\nfunction getHorizontalRect({ x, y, width, height, radius, position }) {\n if (width < radius) radius = width;\n if (radius) {\n if (position === 'right')\n return roundedPath(x, y, width, height, radius, false, true, false, true);\n return roundedPath(x, y, width, height, radius, true, false, true, false);\n }\n return roundedPath(x, y, width, height, radius);\n}\n\n/**\n * HorizontalBar\n *\n * {@link https://developer.semrush.com/intergalactic/data-display/bar-horizontal/bar-horizontal-api/|API} | {@link https://developer.semrush.com/intergalactic/data-display/bar-horizontal/bar-horizontal-code/|Examples}\n */\nexport default createElement(HorizontalBarRoot, { Background });\n"],"mappings":"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","ignoreList":[]}
|
package/lib/es6/Hover.js
CHANGED
|
@@ -9,11 +9,11 @@ import trottle from '@semcore/core/lib/utils/rafTrottle';
|
|
|
9
9
|
import React from 'react';
|
|
10
10
|
import createElement from './createElement';
|
|
11
11
|
/*!__reshadow-styles__:"./style/hover.shadow.css"*/
|
|
12
|
-
const style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".
|
|
12
|
+
const style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".___SHoverLine_1vcsd_gg_,.___SHoverLine_1vcsd_gg_:focus-visible{outline:none;stroke:var(--intergalactic-chart-grid-x-axis,#d6d8d7)}.___SHoverRect_1vcsd_gg_,.___SHoverRect_1vcsd_gg_:focus-visible{outline:none;fill:var(--intergalactic-chart-grid-bar-chart-hover,#00161007)}", /*__inner_css_end__*/"1vcsd_gg_"),
|
|
13
13
|
/*__reshadow_css_end__*/
|
|
14
14
|
{
|
|
15
|
-
"__SHoverLine": "
|
|
16
|
-
"__SHoverRect": "
|
|
15
|
+
"__SHoverLine": "___SHoverLine_1vcsd_gg_",
|
|
16
|
+
"__SHoverRect": "___SHoverRect_1vcsd_gg_"
|
|
17
17
|
});
|
|
18
18
|
import Tooltip from './Tooltip';
|
|
19
19
|
import { scaleOfBandwidth, getIndexFromData, eventToPoint, invert, scaleToBand } from './utils';
|
package/lib/es6/Line.js
CHANGED
|
@@ -10,17 +10,17 @@ import createElement from './createElement';
|
|
|
10
10
|
import Dots from './Dots';
|
|
11
11
|
import { resolvePatternDasharray } from './Pattern';
|
|
12
12
|
/*!__reshadow-styles__:"./style/line.shadow.css"*/
|
|
13
|
-
const style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".
|
|
13
|
+
const style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".___SLine_5siv0_gg_{fill:#0000;stroke-width:3;stroke:var(--intergalactic-chart-palette-order-1,#666bdb);transition-property:d;transition-duration:var(--duration_5siv0);transition-timing-function:ease-in-out}.___SLine_5siv0_gg_.__color_5siv0_gg_{stroke:var(--color_5siv0)}.___SLine_5siv0_gg_.__hide_5siv0_gg_{display:none}.___SLine_5siv0_gg_.__transparent_5siv0_gg_{opacity:.3}.___SNull_5siv0_gg_{fill:#0000;stroke:var(--intergalactic-border-primary,#000c0829);stroke-dasharray:4}@supports (color:color(display-p3 0 0 0%)){.___SNull_5siv0_gg_{stroke:var(--intergalactic-border-primary,#000c0829)}@media (color-gamut:p3){.___SNull_5siv0_gg_{stroke:var(--intergalactic-border-primary,color(display-p3 .00798 .04498 .03219/.161))}}}.___SNull_5siv0_gg_.__hide_5siv0_gg_{display:none}.___SLineArea_5siv0_gg_{transition-property:d;transition-duration:var(--duration_5siv0);transition-timing-function:ease-in-out;opacity:.3;fill:var(--intergalactic-chart-palette-order-1,#666bdb)}.___SLineArea_5siv0_gg_.__color_5siv0_gg_{fill:var(--color_5siv0)}", /*__inner_css_end__*/"5siv0_gg_"),
|
|
14
14
|
/*__reshadow_css_end__*/
|
|
15
15
|
{
|
|
16
|
-
"__SLine": "
|
|
17
|
-
"--duration": "--
|
|
18
|
-
"_color": "
|
|
19
|
-
"--color": "--
|
|
20
|
-
"_hide": "
|
|
21
|
-
"_transparent": "
|
|
22
|
-
"__SNull": "
|
|
23
|
-
"__SLineArea": "
|
|
16
|
+
"__SLine": "___SLine_5siv0_gg_",
|
|
17
|
+
"--duration": "--duration_5siv0",
|
|
18
|
+
"_color": "__color_5siv0_gg_",
|
|
19
|
+
"--color": "--color_5siv0",
|
|
20
|
+
"_hide": "__hide_5siv0_gg_",
|
|
21
|
+
"_transparent": "__transparent_5siv0_gg_",
|
|
22
|
+
"__SNull": "___SNull_5siv0_gg_",
|
|
23
|
+
"__SLineArea": "___SLineArea_5siv0_gg_"
|
|
24
24
|
});
|
|
25
25
|
import { definedData, definedNullData, scaleOfBandwidth, getNullData, interpolateValue, getChartDefaultColorName, eventToPoint, invert } from './utils';
|
|
26
26
|
class LineRoot extends Component {
|
|
@@ -226,6 +226,12 @@ function Area(props) {
|
|
|
226
226
|
}));
|
|
227
227
|
}));
|
|
228
228
|
}
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* Line
|
|
232
|
+
*
|
|
233
|
+
* {@link https://developer.semrush.com/intergalactic/data-display/line-chart/line-chart-api/|API} | {@link https://developer.semrush.com/intergalactic/data-display/line-chart/line-chart-code/|Examples}
|
|
234
|
+
*/
|
|
229
235
|
export default createElement(LineRoot, {
|
|
230
236
|
Dots,
|
|
231
237
|
Null,
|
package/lib/es6/Line.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Line.js","names":["Component","sstyled","uniqueIDEnhancement","useUID","bisector","curveLinear","line","d3Line","area","d3Area","curveCardinal","React","AnimatedClipPath","createElement","Dots","resolvePatternDasharray","style","_sstyled","insert","definedData","definedNullData","scaleOfBandwidth","getNullData","interpolateValue","getChartDefaultColorName","eventToPoint","invert","LineRoot","getDotsProps","x","y","d3","color","resolveColor","duration","transparent","patterns","onClick","asProps","getNullProps","data","filter","item","getAreaProps","hide","scale","handlerOnClick","e","stopPropagation","rootRef","xScale","pX","current","vX","index","d","center","render","_ref","SLine","Element","styles","uid","size","dataHintsHandler","specifyDataRowFields","establishDataType","patternKey","Fragment","cn","undefined","bind","_defineProperty","$rootProps","curve","yScale","defined","p","Null","props","_ref2","SNull","Area","SLineArea","y0","y1","autoInterpolate","dataToArea","useMemo","chunked","reduce","acc","length","push","flat","map","chunk","_ref3"],"sources":["../../src/Line.jsx"],"sourcesContent":["import { Component, sstyled } from '@semcore/core';\nimport uniqueIDEnhancement, { useUID } from '@semcore/core/lib/utils/uniqueID';\nimport { bisector } from 'd3-array';\nimport { curveLinear, line as d3Line, area as d3Area, curveCardinal } from 'd3-shape';\nimport React from 'react';\n\nimport AnimatedClipPath from './AnimatedClipPath';\nimport createElement from './createElement';\nimport Dots from './Dots';\nimport { resolvePatternDasharray } from './Pattern';\nimport style from './style/line.shadow.css';\nimport {\n definedData,\n definedNullData,\n scaleOfBandwidth,\n getNullData,\n interpolateValue,\n getChartDefaultColorName,\n eventToPoint,\n invert,\n} from './utils';\n\nclass LineRoot extends Component {\n static displayName = 'Line';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = ({ x, y, $rootProps, curve = curveLinear, scale }) => {\n const [xScale, yScale] = scale || $rootProps.scale;\n return {\n d3: d3Line()\n .defined(definedData(x, y))\n .curve(curve)\n .x((p) => scaleOfBandwidth(xScale, p[x]))\n .y((p) => scaleOfBandwidth(yScale, p[y])),\n duration: 500,\n };\n };\n\n getDotsProps() {\n const { x, y, d3, color, resolveColor, duration, transparent, patterns, onClick } = this.asProps;\n return {\n x,\n y,\n d3,\n color,\n resolveColor,\n duration,\n transparent,\n patterns,\n onClick,\n };\n }\n\n getNullProps() {\n const { x, y, d3, color, resolveColor } = this.asProps;\n const data = this.asProps.data.filter((item) => item[y] !== interpolateValue);\n\n return {\n d3,\n // TODO: vertical\n data: getNullData(data, definedNullData(x, y), y),\n color,\n resolveColor,\n };\n }\n\n getAreaProps() {\n const { x, y, color, hide, duration, scale } = this.asProps;\n const data = this.asProps.data.filter((item) => item[y] !== interpolateValue);\n\n return {\n x,\n y,\n data,\n color,\n hide,\n duration,\n scale,\n };\n }\n\n handlerOnClick(e) {\n e.stopPropagation();\n\n const { rootRef, scale: [xScale], data, x, onClick } = this.asProps;\n\n if (!onClick) return;\n\n const [pX] = eventToPoint(e, rootRef.current);\n const vX = invert(xScale, pX);\n const index = bisector((d) => d[x]).center(data, vX);\n\n onClick(index, e);\n }\n\n render() {\n const SLine = this.Element;\n const {\n styles,\n hide,\n color,\n resolveColor,\n uid,\n size,\n d3,\n duration,\n x,\n y,\n transparent,\n patterns,\n } = this.asProps;\n const data = this.asProps.data.filter((item) => item[y] !== interpolateValue);\n\n this.asProps.dataHintsHandler.specifyDataRowFields(x, y);\n this.asProps.dataHintsHandler.establishDataType('time-series');\n\n const patternKey = color || getChartDefaultColorName(0);\n\n return sstyled(styles)(\n <>\n <SLine\n aria-hidden\n clipPath={`url(#${uid})`}\n render='path'\n hide={hide}\n color={resolveColor(color)}\n transparent={transparent}\n d={d3(data)}\n use:duration={`${duration}ms`}\n strokeDasharray={patterns ? resolvePatternDasharray(patternKey, patterns) : undefined}\n onClickCapture={this.handlerOnClick.bind(this)}\n pointerEvents='stroke'\n />\n {duration && (\n <AnimatedClipPath\n aria-hidden\n duration={duration}\n id={uid}\n x='0'\n y='0'\n width={0}\n height={size[1]}\n />\n )}\n </>,\n );\n }\n}\n\nfunction Null(props) {\n const { Element: SNull, styles, d3, data, hide } = props;\n return sstyled(styles)(<SNull render='path' d={d3(data)} hide={hide} />);\n}\n\nfunction Area(props) {\n const uid = useUID();\n const {\n Element: SLineArea,\n styles,\n data,\n hide,\n duration,\n color,\n scale,\n x,\n y0,\n y1,\n curve = curveCardinal,\n area,\n patterns,\n autoInterpolate = true,\n } = props;\n const [xScale, yScale] = scale;\n const dataToArea = React.useMemo(() => {\n if (area) return area;\n const chunked = data.reduce(\n (acc, d) => {\n if (d[y0] === interpolateValue || d[y1] === interpolateValue) return acc;\n if (definedData(y0, y1)(d)) {\n acc[acc.length - 1].push(d);\n } else if (acc[acc.length - 1].length > 0) {\n acc.push([]);\n }\n return acc;\n },\n [[]],\n );\n if (autoInterpolate) {\n return [chunked.flat()];\n }\n\n return chunked;\n }, [data, y0, y1, area, autoInterpolate]);\n\n return (\n <>\n {dataToArea.map((chunk, index) => {\n const d3 = d3Area()\n .curve(curve)\n .x((data) => xScale(data[x]))\n .y0((data) => yScale(data[y0]))\n .y1((data) => yScale(data[y1]));\n\n return sstyled(styles)(\n <SLineArea\n key={`${chunk.length}-${index}`}\n aria-hidden\n clipPath={`url(#${uid})`}\n render='path'\n hide={hide}\n color={color}\n d={d3(chunk)}\n use:duration={`${duration}ms`}\n patterns={patterns}\n />,\n );\n })}\n </>\n );\n}\n\nexport default createElement(LineRoot, {\n Dots,\n Null,\n Area,\n});\n"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,OAAO,QAAQ,eAAe;AAClD,OAAOC,mBAAmB,IAAIC,MAAM,QAAQ,kCAAkC;AAC9E,SAASC,QAAQ,QAAQ,UAAU;AACnC,SAASC,WAAW,EAAEC,IAAI,IAAIC,MAAM,EAAEC,IAAI,IAAIC,MAAM,EAAEC,aAAa,QAAQ,UAAU;AACrF,OAAOC,KAAK,MAAM,OAAO;AAEzB,OAAOC,gBAAgB,MAAM,oBAAoB;AACjD,OAAOC,aAAa,MAAM,iBAAiB;AAC3C,OAAOC,IAAI,MAAM,QAAQ;AACzB,SAASC,uBAAuB,QAAQ,WAAW;AAAC;AAAA,MAAAC,KAAA,8BAAAC,QAAA,CAAAC,MAAA;AAAA;AAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AAEpD,SACEC,WAAW,EACXC,eAAe,EACfC,gBAAgB,EAChBC,WAAW,EACXC,gBAAgB,EAChBC,wBAAwB,EACxBC,YAAY,EACZC,MAAM,QACD,SAAS;AAEhB,MAAMC,QAAQ,SAAS3B,SAAS,CAAC;EAiB/B4B,YAAYA,CAAA,EAAG;IACb,MAAM;MAAEC,CAAC;MAAEC,CAAC;MAAEC,EAAE;MAAEC,KAAK;MAAEC,YAAY;MAAEC,QAAQ;MAAEC,WAAW;MAAEC,QAAQ;MAAEC;IAAQ,CAAC,GAAG,IAAI,CAACC,OAAO;IAChG,OAAO;MACLT,CAAC;MACDC,CAAC;MACDC,EAAE;MACFC,KAAK;MACLC,YAAY;MACZC,QAAQ;MACRC,WAAW;MACXC,QAAQ;MACRC;IACF,CAAC;EACH;EAEAE,YAAYA,CAAA,EAAG;IACb,MAAM;MAAEV,CAAC;MAAEC,CAAC;MAAEC,EAAE;MAAEC,KAAK;MAAEC;IAAa,CAAC,GAAG,IAAI,CAACK,OAAO;IACtD,MAAME,IAAI,GAAG,IAAI,CAACF,OAAO,CAACE,IAAI,CAACC,MAAM,CAAEC,IAAI,IAAKA,IAAI,CAACZ,CAAC,CAAC,KAAKP,gBAAgB,CAAC;IAE7E,OAAO;MACLQ,EAAE;MACF;MACAS,IAAI,EAAElB,WAAW,CAACkB,IAAI,EAAEpB,eAAe,CAACS,CAAC,EAAEC,CAAC,CAAC,EAAEA,CAAC,CAAC;MACjDE,KAAK;MACLC;IACF,CAAC;EACH;EAEAU,YAAYA,CAAA,EAAG;IACb,MAAM;MAAEd,CAAC;MAAEC,CAAC;MAAEE,KAAK;MAAEY,IAAI;MAAEV,QAAQ;MAAEW;IAAM,CAAC,GAAG,IAAI,CAACP,OAAO;IAC3D,MAAME,IAAI,GAAG,IAAI,CAACF,OAAO,CAACE,IAAI,CAACC,MAAM,CAAEC,IAAI,IAAKA,IAAI,CAACZ,CAAC,CAAC,KAAKP,gBAAgB,CAAC;IAE7E,OAAO;MACLM,CAAC;MACDC,CAAC;MACDU,IAAI;MACJR,KAAK;MACLY,IAAI;MACJV,QAAQ;MACRW;IACF,CAAC;EACH;EAEAC,cAAcA,CAACC,CAAC,EAAE;IAChBA,CAAC,CAACC,eAAe,CAAC,CAAC;IAEnB,MAAM;MAAEC,OAAO;MAAEJ,KAAK,EAAE,CAACK,MAAM,CAAC;MAAEV,IAAI;MAAEX,CAAC;MAAEQ;IAAQ,CAAC,GAAG,IAAI,CAACC,OAAO;IAEnE,IAAI,CAACD,OAAO,EAAE;IAEd,MAAM,CAACc,EAAE,CAAC,GAAG1B,YAAY,CAACsB,CAAC,EAAEE,OAAO,CAACG,OAAO,CAAC;IAC7C,MAAMC,EAAE,GAAG3B,MAAM,CAACwB,MAAM,EAAEC,EAAE,CAAC;IAC7B,MAAMG,KAAK,GAAGlD,QAAQ,CAAEmD,CAAC,IAAKA,CAAC,CAAC1B,CAAC,CAAC,CAAC,CAAC2B,MAAM,CAAChB,IAAI,EAAEa,EAAE,CAAC;IAEpDhB,OAAO,CAACiB,KAAK,EAAEP,CAAC,CAAC;EACnB;EAEAU,MAAMA,CAAA,EAAG;IAAA,IAAAC,IAAA;IACP,MAAMC,KAAK,GAAG,IAAI,CAACC,OAAO;IAC1B,MAAM;MACJC,MAAM;MACNjB,IAAI;MACJZ,KAAK;MACLC,YAAY;MACZ6B,GAAG;MACHC,IAAI;MACJhC,EAAE;MACFG,QAAQ;MACRL,CAAC;MACDC,CAAC;MACDK,WAAW;MACXC;IACF,CAAC,GAAG,IAAI,CAACE,OAAO;IAChB,MAAME,IAAI,GAAG,IAAI,CAACF,OAAO,CAACE,IAAI,CAACC,MAAM,CAAEC,IAAI,IAAKA,IAAI,CAACZ,CAAC,CAAC,KAAKP,gBAAgB,CAAC;IAE7E,IAAI,CAACe,OAAO,CAAC0B,gBAAgB,CAACC,oBAAoB,CAACpC,CAAC,EAAEC,CAAC,CAAC;IACxD,IAAI,CAACQ,OAAO,CAAC0B,gBAAgB,CAACE,iBAAiB,CAAC,aAAa,CAAC;IAE9D,MAAMC,UAAU,GAAGnC,KAAK,IAAIR,wBAAwB,CAAC,CAAC,CAAC;IAEvD,OAAAkC,IAAA,GAAOzD,OAAO,CAAC4D,MAAM,CAAC,eACpBlD,KAAA,CAAAE,aAAA,CAAAF,KAAA,CAAAyD,QAAA,qBACEzD,KAAA,CAAAE,aAAA,CAAC8C,KAAK,EAAAD,IAAA,CAAAW,EAAA;MAAA;MAAA,YAEM,QAAQP,GAAG,GAAG;MAAA,UACjB,MAAM;MAAA,QACPlB,IAAI;MAAA,SACHX,YAAY,CAACD,KAAK,CAAC;MAAA,eACbG,WAAW;MAAA,KACrBJ,EAAE,CAACS,IAAI,CAAC;MAAA,gBACG,GAAGN,QAAQ,IAAI;MAAA,mBACZE,QAAQ,GAAGrB,uBAAuB,CAACoD,UAAU,EAAE/B,QAAQ,CAAC,GAAGkC,SAAS;MAAA,kBACrE,IAAI,CAACxB,cAAc,CAACyB,IAAI,CAAC,IAAI,CAAC;MAAA,iBAChC;IAAQ,EACvB,CAAC,EACDrC,QAAQ,iBACPvB,KAAA,CAAAE,aAAA,CAACD,gBAAgB,EAAA8C,IAAA,CAAAW,EAAA;MAAA;MAAA,YAELnC,QAAQ;MAAA,MACd4B,GAAG;MAAA,KACL,GAAG;MAAA,KACH,GAAG;MAAA,SACE,CAAC;MAAA,UACAC,IAAI,CAAC,CAAC;IAAC,EAChB,CAEH,CAAC;EAEP;AACF;AAACS,eAAA,CA9HK7C,QAAQ,iBACS,MAAM;AAAA6C,eAAA,CADvB7C,QAAQ,WAEGX,KAAK;AAAAwD,eAAA,CAFhB7C,QAAQ,aAGK,CAACzB,mBAAmB,CAAC,CAAC,CAAC;AAAAsE,eAAA,CAHpC7C,QAAQ,kBAKU,CAAC;EAAEE,CAAC;EAAEC,CAAC;EAAE2C,UAAU;EAAEC,KAAK,GAAGrE,WAAW;EAAEwC;AAAM,CAAC,KAAK;EAC1E,MAAM,CAACK,MAAM,EAAEyB,MAAM,CAAC,GAAG9B,KAAK,IAAI4B,UAAU,CAAC5B,KAAK;EAClD,OAAO;IACLd,EAAE,EAAExB,MAAM,CAAC,CAAC,CACTqE,OAAO,CAACzD,WAAW,CAACU,CAAC,EAAEC,CAAC,CAAC,CAAC,CAC1B4C,KAAK,CAACA,KAAK,CAAC,CACZ7C,CAAC,CAAEgD,CAAC,IAAKxD,gBAAgB,CAAC6B,MAAM,EAAE2B,CAAC,CAAChD,CAAC,CAAC,CAAC,CAAC,CACxCC,CAAC,CAAE+C,CAAC,IAAKxD,gBAAgB,CAACsD,MAAM,EAAEE,CAAC,CAAC/C,CAAC,CAAC,CAAC,CAAC;IAC3CI,QAAQ,EAAE;EACZ,CAAC;AACH,CAAC;AAiHH,SAAS4C,IAAIA,CAACC,KAAK,EAAE;EAAA,IAAAC,KAAA;EACnB,MAAM;IAAEpB,OAAO,EAAEqB,KAAK;IAAEpB,MAAM;IAAE9B,EAAE;IAAES,IAAI;IAAEI;EAAK,CAAC,GAAGmC,KAAK;EACxD,OAAAC,KAAA,GAAO/E,OAAO,CAAC4D,MAAM,CAAC,eAAClD,KAAA,CAAAE,aAAA,CAACoE,KAAK,EAAAD,KAAA,CAAAX,EAAA;IAAA,UAAQ,MAAM;IAAA,KAAItC,EAAE,CAACS,IAAI,CAAC;IAAA,QAAQI;EAAI,EAAG,CAAC;AACzE;AAEA,SAASsC,IAAIA,CAACH,KAAK,EAAE;EACnB,MAAMjB,GAAG,GAAG3D,MAAM,CAAC,CAAC;EACpB,MAAM;IACJyD,OAAO,EAAEuB,SAAS;IAClBtB,MAAM;IACNrB,IAAI;IACJI,IAAI;IACJV,QAAQ;IACRF,KAAK;IACLa,KAAK;IACLhB,CAAC;IACDuD,EAAE;IACFC,EAAE;IACFX,KAAK,GAAGhE,aAAa;IACrBF,IAAI;IACJ4B,QAAQ;IACRkD,eAAe,GAAG;EACpB,CAAC,GAAGP,KAAK;EACT,MAAM,CAAC7B,MAAM,EAAEyB,MAAM,CAAC,GAAG9B,KAAK;EAC9B,MAAM0C,UAAU,GAAG5E,KAAK,CAAC6E,OAAO,CAAC,MAAM;IACrC,IAAIhF,IAAI,EAAE,OAAOA,IAAI;IACrB,MAAMiF,OAAO,GAAGjD,IAAI,CAACkD,MAAM,CACzB,CAACC,GAAG,EAAEpC,CAAC,KAAK;MACV,IAAIA,CAAC,CAAC6B,EAAE,CAAC,KAAK7D,gBAAgB,IAAIgC,CAAC,CAAC8B,EAAE,CAAC,KAAK9D,gBAAgB,EAAE,OAAOoE,GAAG;MACxE,IAAIxE,WAAW,CAACiE,EAAE,EAAEC,EAAE,CAAC,CAAC9B,CAAC,CAAC,EAAE;QAC1BoC,GAAG,CAACA,GAAG,CAACC,MAAM,GAAG,CAAC,CAAC,CAACC,IAAI,CAACtC,CAAC,CAAC;MAC7B,CAAC,MAAM,IAAIoC,GAAG,CAACA,GAAG,CAACC,MAAM,GAAG,CAAC,CAAC,CAACA,MAAM,GAAG,CAAC,EAAE;QACzCD,GAAG,CAACE,IAAI,CAAC,EAAE,CAAC;MACd;MACA,OAAOF,GAAG;IACZ,CAAC,EACD,CAAC,EAAE,CACL,CAAC;IACD,IAAIL,eAAe,EAAE;MACnB,OAAO,CAACG,OAAO,CAACK,IAAI,CAAC,CAAC,CAAC;IACzB;IAEA,OAAOL,OAAO;EAChB,CAAC,EAAE,CAACjD,IAAI,EAAE4C,EAAE,EAAEC,EAAE,EAAE7E,IAAI,EAAE8E,eAAe,CAAC,CAAC;EAEzC,oBACE3E,KAAA,CAAAE,aAAA,CAAAF,KAAA,CAAAyD,QAAA,QACGmB,UAAU,CAACQ,GAAG,CAAC,CAACC,KAAK,EAAE1C,KAAK,KAAK;IAAA,IAAA2C,KAAA;IAChC,MAAMlE,EAAE,GAAGtB,MAAM,CAAC,CAAC,CAChBiE,KAAK,CAACA,KAAK,CAAC,CACZ7C,CAAC,CAAEW,IAAI,IAAKU,MAAM,CAACV,IAAI,CAACX,CAAC,CAAC,CAAC,CAAC,CAC5BuD,EAAE,CAAE5C,IAAI,IAAKmC,MAAM,CAACnC,IAAI,CAAC4C,EAAE,CAAC,CAAC,CAAC,CAC9BC,EAAE,CAAE7C,IAAI,IAAKmC,MAAM,CAACnC,IAAI,CAAC6C,EAAE,CAAC,CAAC,CAAC;IAEjC,OAAAY,KAAA,GAAOhG,OAAO,CAAC4D,MAAM,CAAC,eACpBlD,KAAA,CAAAE,aAAA,CAACsE,SAAS,EAAAc,KAAA,CAAA5B,EAAA;MAAA,OACH,GAAG2B,KAAK,CAACJ,MAAM,IAAItC,KAAK,EAAE;MAAA;MAAA,YAErB,QAAQQ,GAAG,GAAG;MAAA,UACjB,MAAM;MAAA,QACPlB,IAAI;MAAA,SACHZ,KAAK;MAAA,KACTD,EAAE,CAACiE,KAAK,CAAC;MAAA,gBACE,GAAG9D,QAAQ,IAAI;MAAA,YACnBE;IAAQ,EACnB,CAAC;EAEN,CAAC,CACD,CAAC;AAEP;AAEA,eAAevB,aAAa,CAACc,QAAQ,EAAE;EACrCb,IAAI;EACJgE,IAAI;EACJI;AACF,CAAC,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Line.js","names":["Component","sstyled","uniqueIDEnhancement","useUID","bisector","curveLinear","line","d3Line","area","d3Area","curveCardinal","React","AnimatedClipPath","createElement","Dots","resolvePatternDasharray","style","_sstyled","insert","definedData","definedNullData","scaleOfBandwidth","getNullData","interpolateValue","getChartDefaultColorName","eventToPoint","invert","LineRoot","getDotsProps","x","y","d3","color","resolveColor","duration","transparent","patterns","onClick","asProps","getNullProps","data","filter","item","getAreaProps","hide","scale","handlerOnClick","e","stopPropagation","rootRef","xScale","pX","current","vX","index","d","center","render","_ref","SLine","Element","styles","uid","size","dataHintsHandler","specifyDataRowFields","establishDataType","patternKey","Fragment","cn","undefined","bind","_defineProperty","$rootProps","curve","yScale","defined","p","Null","props","_ref2","SNull","Area","SLineArea","y0","y1","autoInterpolate","dataToArea","useMemo","chunked","reduce","acc","length","push","flat","map","chunk","_ref3"],"sources":["../../src/Line.jsx"],"sourcesContent":["import { Component, sstyled } from '@semcore/core';\nimport uniqueIDEnhancement, { useUID } from '@semcore/core/lib/utils/uniqueID';\nimport { bisector } from 'd3-array';\nimport { curveLinear, line as d3Line, area as d3Area, curveCardinal } from 'd3-shape';\nimport React from 'react';\n\nimport AnimatedClipPath from './AnimatedClipPath';\nimport createElement from './createElement';\nimport Dots from './Dots';\nimport { resolvePatternDasharray } from './Pattern';\nimport style from './style/line.shadow.css';\nimport {\n definedData,\n definedNullData,\n scaleOfBandwidth,\n getNullData,\n interpolateValue,\n getChartDefaultColorName,\n eventToPoint,\n invert,\n} from './utils';\n\nclass LineRoot extends Component {\n static displayName = 'Line';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = ({ x, y, $rootProps, curve = curveLinear, scale }) => {\n const [xScale, yScale] = scale || $rootProps.scale;\n return {\n d3: d3Line()\n .defined(definedData(x, y))\n .curve(curve)\n .x((p) => scaleOfBandwidth(xScale, p[x]))\n .y((p) => scaleOfBandwidth(yScale, p[y])),\n duration: 500,\n };\n };\n\n getDotsProps() {\n const { x, y, d3, color, resolveColor, duration, transparent, patterns, onClick } = this.asProps;\n return {\n x,\n y,\n d3,\n color,\n resolveColor,\n duration,\n transparent,\n patterns,\n onClick,\n };\n }\n\n getNullProps() {\n const { x, y, d3, color, resolveColor } = this.asProps;\n const data = this.asProps.data.filter((item) => item[y] !== interpolateValue);\n\n return {\n d3,\n // TODO: vertical\n data: getNullData(data, definedNullData(x, y), y),\n color,\n resolveColor,\n };\n }\n\n getAreaProps() {\n const { x, y, color, hide, duration, scale } = this.asProps;\n const data = this.asProps.data.filter((item) => item[y] !== interpolateValue);\n\n return {\n x,\n y,\n data,\n color,\n hide,\n duration,\n scale,\n };\n }\n\n handlerOnClick(e) {\n e.stopPropagation();\n\n const { rootRef, scale: [xScale], data, x, onClick } = this.asProps;\n\n if (!onClick) return;\n\n const [pX] = eventToPoint(e, rootRef.current);\n const vX = invert(xScale, pX);\n const index = bisector((d) => d[x]).center(data, vX);\n\n onClick(index, e);\n }\n\n render() {\n const SLine = this.Element;\n const {\n styles,\n hide,\n color,\n resolveColor,\n uid,\n size,\n d3,\n duration,\n x,\n y,\n transparent,\n patterns,\n } = this.asProps;\n const data = this.asProps.data.filter((item) => item[y] !== interpolateValue);\n\n this.asProps.dataHintsHandler.specifyDataRowFields(x, y);\n this.asProps.dataHintsHandler.establishDataType('time-series');\n\n const patternKey = color || getChartDefaultColorName(0);\n\n return sstyled(styles)(\n <>\n <SLine\n aria-hidden\n clipPath={`url(#${uid})`}\n render='path'\n hide={hide}\n color={resolveColor(color)}\n transparent={transparent}\n d={d3(data)}\n use:duration={`${duration}ms`}\n strokeDasharray={patterns ? resolvePatternDasharray(patternKey, patterns) : undefined}\n onClickCapture={this.handlerOnClick.bind(this)}\n pointerEvents='stroke'\n />\n {duration && (\n <AnimatedClipPath\n aria-hidden\n duration={duration}\n id={uid}\n x='0'\n y='0'\n width={0}\n height={size[1]}\n />\n )}\n </>,\n );\n }\n}\n\nfunction Null(props) {\n const { Element: SNull, styles, d3, data, hide } = props;\n return sstyled(styles)(<SNull render='path' d={d3(data)} hide={hide} />);\n}\n\nfunction Area(props) {\n const uid = useUID();\n const {\n Element: SLineArea,\n styles,\n data,\n hide,\n duration,\n color,\n scale,\n x,\n y0,\n y1,\n curve = curveCardinal,\n area,\n patterns,\n autoInterpolate = true,\n } = props;\n const [xScale, yScale] = scale;\n const dataToArea = React.useMemo(() => {\n if (area) return area;\n const chunked = data.reduce(\n (acc, d) => {\n if (d[y0] === interpolateValue || d[y1] === interpolateValue) return acc;\n if (definedData(y0, y1)(d)) {\n acc[acc.length - 1].push(d);\n } else if (acc[acc.length - 1].length > 0) {\n acc.push([]);\n }\n return acc;\n },\n [[]],\n );\n if (autoInterpolate) {\n return [chunked.flat()];\n }\n\n return chunked;\n }, [data, y0, y1, area, autoInterpolate]);\n\n return (\n <>\n {dataToArea.map((chunk, index) => {\n const d3 = d3Area()\n .curve(curve)\n .x((data) => xScale(data[x]))\n .y0((data) => yScale(data[y0]))\n .y1((data) => yScale(data[y1]));\n\n return sstyled(styles)(\n <SLineArea\n key={`${chunk.length}-${index}`}\n aria-hidden\n clipPath={`url(#${uid})`}\n render='path'\n hide={hide}\n color={color}\n d={d3(chunk)}\n use:duration={`${duration}ms`}\n patterns={patterns}\n />,\n );\n })}\n </>\n );\n}\n\n/**\n * Line\n *\n * {@link https://developer.semrush.com/intergalactic/data-display/line-chart/line-chart-api/|API} | {@link https://developer.semrush.com/intergalactic/data-display/line-chart/line-chart-code/|Examples}\n */\nexport default createElement(LineRoot, {\n Dots,\n Null,\n Area,\n});\n"],"mappings":"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","ignoreList":[]}
|
package/lib/es6/Plot.js
CHANGED
|
@@ -10,10 +10,10 @@ import React from 'react';
|
|
|
10
10
|
import { makeDataHintsHandlers, makeDataHintsContainer } from './a11y/hints';
|
|
11
11
|
import { PlotA11yModule } from './a11y/PlotA11yModule';
|
|
12
12
|
/*!__reshadow-styles__:"./style/plot.shadow.css"*/
|
|
13
|
-
const style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".
|
|
13
|
+
const style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".___SPlot_26u33_gg_{overflow:hidden}.___SPlot_26u33_gg_:focus{outline:none}.___SPlot_26u33_gg_:active{outline:0;-webkit-text-decoration:none;text-decoration:none}foreignObject[data-aria-only]{pointer-events:none}.___SPlot_26u33_gg_:has(foreignObject[data-aria-only]:focus-within){outline-color:var(--intergalactic-keyboard-focus-outline,#0020dd78);outline-style:solid;outline-width:2px;outline-offset:2px;transition-duration:calc(var(--intergalactic-duration-extra-fast, 100)*1ms);transition-timing-function:ease-in-out;transition-property:outline-color,outline-width,outline-offset;border-radius:var(--intergalactic-surface-rounded,8px)}@supports (color:color(display-p3 0 0 0%)){.___SPlot_26u33_gg_:has(foreignObject[data-aria-only]:focus-within){outline-color:var(--intergalactic-keyboard-focus-outline,#0020dd78)}@media (color-gamut:p3){.___SPlot_26u33_gg_:has(foreignObject[data-aria-only]:focus-within){outline-color:var(--intergalactic-keyboard-focus-outline,color(display-p3 .03256 .12227 .83249/.469))}}}", /*__inner_css_end__*/"26u33_gg_"),
|
|
14
14
|
/*__reshadow_css_end__*/
|
|
15
15
|
{
|
|
16
|
-
"__SPlot": "
|
|
16
|
+
"__SPlot": "___SPlot_26u33_gg_"
|
|
17
17
|
});
|
|
18
18
|
import { localizedMessages } from './translations/__intergalactic-dynamic-locales';
|
|
19
19
|
import { eventToPoint, uniqueId } from './utils';
|
|
@@ -120,6 +120,12 @@ class PlotRoot extends Component {
|
|
|
120
120
|
}))));
|
|
121
121
|
}
|
|
122
122
|
}
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Plot
|
|
126
|
+
*
|
|
127
|
+
* {@link https://developer.semrush.com/intergalactic/data-display/d3-chart/d3-chart-api#plot|API} | {@link https://developer.semrush.com/intergalactic/data-display/d3-chart/d3-chart-code#chart-plot|Examples}
|
|
128
|
+
*/
|
|
123
129
|
_defineProperty(PlotRoot, "displayName", 'Plot');
|
|
124
130
|
_defineProperty(PlotRoot, "style", style);
|
|
125
131
|
_defineProperty(PlotRoot, "defaultProps", () => ({
|
package/lib/es6/Plot.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Plot.js","names":["Box","createComponent","Component","Root","sstyled","i18nEnhance","colorResolverEnhance","EventEmitter","React","makeDataHintsHandlers","makeDataHintsContainer","PlotA11yModule","style","_sstyled","insert","localizedMessages","eventToPoint","uniqueId","PlotRoot","constructor","props","_defineProperty","createRef","dataHints","dataStructureHints","e","scale","asProps","eventEmitter","emit","length","xScale","yScale","pX","pY","rootRef","current","minX","maxX","range","maxY","minY","setContext","data","width","height","locale","resolveColor","patterns","duration","yScaleDomain","domain","dataHintsHandler","setPointsDensity","Math","abs","$rootProps","size","plotId","render","_ref","_ref2","SPlot","styles","Children","a11yAltTextConfig","label","getI18nText","ariaLabel","createElement","cn","_assignProps","handlerMouseMove","handlerMouseLeave"],"sources":["../../src/Plot.jsx"],"sourcesContent":["import { Box } from '@semcore/base-components';\nimport { createComponent, Component, Root, sstyled } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport colorResolverEnhance from '@semcore/core/lib/utils/enhances/resolveColorEnhance';\nimport EventEmitter from '@semcore/core/lib/utils/eventEmitter';\nimport React from 'react';\n\nimport { makeDataHintsHandlers, makeDataHintsContainer } from './a11y/hints';\nimport { PlotA11yModule } from './a11y/PlotA11yModule';\nimport style from './style/plot.shadow.css';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\nimport { eventToPoint, uniqueId } from './utils';\n\nclass PlotRoot extends Component {\n static displayName = 'Plot';\n static style = style;\n\n constructor(props) {\n super(props);\n this.eventEmitter = props.eventEmitter || new EventEmitter();\n }\n\n static defaultProps = () => ({\n width: 0,\n height: 0,\n });\n\n static enhance = [colorResolverEnhance(), i18nEnhance(localizedMessages)];\n\n plotId = uniqueId();\n\n rootRef = React.createRef();\n\n dataStructureHints = this.props.dataHints || makeDataHintsContainer();\n dataHintsHandler = makeDataHintsHandlers(this.dataStructureHints);\n\n handlerMouseMove = (e) => {\n const { scale } = this.asProps;\n this.eventEmitter.emit('onMouseMoveRoot', e);\n\n if (scale && scale.length >= 2) {\n const [xScale, yScale] = scale;\n const [pX, pY] = eventToPoint(e, this.rootRef.current);\n const [minX, maxX] = xScale.range();\n const [maxY, minY] = yScale.range();\n\n if (pX >= minX && pX <= maxX && pY >= minY && pY <= maxY) {\n this.eventEmitter.emit('onMouseMoveChart', e, this.rootRef.current);\n } else {\n this.eventEmitter.emit('onMouseLeaveChart', e);\n }\n }\n };\n\n handlerMouseLeave = (e) => {\n this.eventEmitter.emit('onMouseLeaveRoot', e);\n this.eventEmitter.emit('onMouseLeaveChart', e);\n };\n\n setContext() {\n const { scale, data, width, height, locale, resolveColor, patterns, duration } = this.asProps;\n\n const yScaleDomain = scale?.[1]?.domain?.();\n if (yScaleDomain?.length && data?.length) {\n this.dataHintsHandler.setPointsDensity(\n data.length / width,\n Math.abs(yScaleDomain[1] - yScaleDomain[0]) / height,\n );\n }\n\n return {\n $rootProps: {\n size: [width, height],\n data: data,\n locale,\n scale: scale,\n eventEmitter: this.eventEmitter,\n rootRef: this.rootRef,\n dataHintsHandler: this.dataHintsHandler,\n resolveColor,\n patterns,\n duration,\n plotId: this.plotId,\n },\n };\n }\n\n render() {\n const SPlot = Root;\n const { styles, width, height, Children, data, a11yAltTextConfig, label, locale, getI18nText } =\n this.asProps;\n\n if (!width || !height) return null;\n\n const ariaLabel = label ?? getI18nText('d3Chart.Plot:aria-label');\n\n return sstyled(styles)(\n <SPlot\n render={Box}\n tag='svg'\n __excludeProps={['data', 'scale']}\n ref={this.rootRef}\n onMouseMove={this.handlerMouseMove}\n onMouseLeave={this.handlerMouseLeave}\n aria-label={ariaLabel}\n data-plot-id={this.plotId}\n >\n <Children />\n <foreignObject width='100%' height='100%' data-aria-only>\n <PlotA11yModule\n id={this.plotId}\n payload={data}\n plotLabel={label}\n locale={locale}\n plotRef={this.rootRef}\n hints={this.dataStructureHints}\n config={a11yAltTextConfig}\n />\n </foreignObject>\n </SPlot>,\n );\n }\n}\n\nexport default createComponent(PlotRoot);\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Plot.js","names":["Box","createComponent","Component","Root","sstyled","i18nEnhance","colorResolverEnhance","EventEmitter","React","makeDataHintsHandlers","makeDataHintsContainer","PlotA11yModule","style","_sstyled","insert","localizedMessages","eventToPoint","uniqueId","PlotRoot","constructor","props","_defineProperty","createRef","dataHints","dataStructureHints","e","scale","asProps","eventEmitter","emit","length","xScale","yScale","pX","pY","rootRef","current","minX","maxX","range","maxY","minY","setContext","data","width","height","locale","resolveColor","patterns","duration","yScaleDomain","domain","dataHintsHandler","setPointsDensity","Math","abs","$rootProps","size","plotId","render","_ref","_ref2","SPlot","styles","Children","a11yAltTextConfig","label","getI18nText","ariaLabel","createElement","cn","_assignProps","handlerMouseMove","handlerMouseLeave"],"sources":["../../src/Plot.jsx"],"sourcesContent":["import { Box } from '@semcore/base-components';\nimport { createComponent, Component, Root, sstyled } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport colorResolverEnhance from '@semcore/core/lib/utils/enhances/resolveColorEnhance';\nimport EventEmitter from '@semcore/core/lib/utils/eventEmitter';\nimport React from 'react';\n\nimport { makeDataHintsHandlers, makeDataHintsContainer } from './a11y/hints';\nimport { PlotA11yModule } from './a11y/PlotA11yModule';\nimport style from './style/plot.shadow.css';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\nimport { eventToPoint, uniqueId } from './utils';\n\nclass PlotRoot extends Component {\n static displayName = 'Plot';\n static style = style;\n\n constructor(props) {\n super(props);\n this.eventEmitter = props.eventEmitter || new EventEmitter();\n }\n\n static defaultProps = () => ({\n width: 0,\n height: 0,\n });\n\n static enhance = [colorResolverEnhance(), i18nEnhance(localizedMessages)];\n\n plotId = uniqueId();\n\n rootRef = React.createRef();\n\n dataStructureHints = this.props.dataHints || makeDataHintsContainer();\n dataHintsHandler = makeDataHintsHandlers(this.dataStructureHints);\n\n handlerMouseMove = (e) => {\n const { scale } = this.asProps;\n this.eventEmitter.emit('onMouseMoveRoot', e);\n\n if (scale && scale.length >= 2) {\n const [xScale, yScale] = scale;\n const [pX, pY] = eventToPoint(e, this.rootRef.current);\n const [minX, maxX] = xScale.range();\n const [maxY, minY] = yScale.range();\n\n if (pX >= minX && pX <= maxX && pY >= minY && pY <= maxY) {\n this.eventEmitter.emit('onMouseMoveChart', e, this.rootRef.current);\n } else {\n this.eventEmitter.emit('onMouseLeaveChart', e);\n }\n }\n };\n\n handlerMouseLeave = (e) => {\n this.eventEmitter.emit('onMouseLeaveRoot', e);\n this.eventEmitter.emit('onMouseLeaveChart', e);\n };\n\n setContext() {\n const { scale, data, width, height, locale, resolveColor, patterns, duration } = this.asProps;\n\n const yScaleDomain = scale?.[1]?.domain?.();\n if (yScaleDomain?.length && data?.length) {\n this.dataHintsHandler.setPointsDensity(\n data.length / width,\n Math.abs(yScaleDomain[1] - yScaleDomain[0]) / height,\n );\n }\n\n return {\n $rootProps: {\n size: [width, height],\n data: data,\n locale,\n scale: scale,\n eventEmitter: this.eventEmitter,\n rootRef: this.rootRef,\n dataHintsHandler: this.dataHintsHandler,\n resolveColor,\n patterns,\n duration,\n plotId: this.plotId,\n },\n };\n }\n\n render() {\n const SPlot = Root;\n const { styles, width, height, Children, data, a11yAltTextConfig, label, locale, getI18nText } =\n this.asProps;\n\n if (!width || !height) return null;\n\n const ariaLabel = label ?? getI18nText('d3Chart.Plot:aria-label');\n\n return sstyled(styles)(\n <SPlot\n render={Box}\n tag='svg'\n __excludeProps={['data', 'scale']}\n ref={this.rootRef}\n onMouseMove={this.handlerMouseMove}\n onMouseLeave={this.handlerMouseLeave}\n aria-label={ariaLabel}\n data-plot-id={this.plotId}\n >\n <Children />\n <foreignObject width='100%' height='100%' data-aria-only>\n <PlotA11yModule\n id={this.plotId}\n payload={data}\n plotLabel={label}\n locale={locale}\n plotRef={this.rootRef}\n hints={this.dataStructureHints}\n config={a11yAltTextConfig}\n />\n </foreignObject>\n </SPlot>,\n );\n }\n}\n\n/**\n * Plot\n *\n * {@link https://developer.semrush.com/intergalactic/data-display/d3-chart/d3-chart-api#plot|API} | {@link https://developer.semrush.com/intergalactic/data-display/d3-chart/d3-chart-code#chart-plot|Examples}\n */\nexport default createComponent(PlotRoot);\n"],"mappings":"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","ignoreList":[]}
|