@semcore/d3-chart 17.1.0-prerelease.3 → 17.2.0-prerelease.3
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 +14 -14
package/lib/cjs/Radar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Radar.js","names":["_core","require","_canUseDOM","_interopRequireDefault","_getOriginChildren","_rafTrottle","_uniqueID","_d3Polygon","_d3Shape","_react","_interopRequireWildcard","_createElement","_Pattern","_Tooltip","_utils","style","sstyled","insert","clampAngle","angle","Math","PI","getBoxAxesValue","i","range","axes","total","angleOffset","func","sin","cos","getRadianPosition","getLabelXPlacement","getLabelYPlacement","getLabelPlacement","computeTextWidth","texts","textSize","defaultWidth","defaultHeight","widths","map","text","measureText","React","isValidElement","max","props","width","height","getTicks","tickSize","radius","ticks","trunc","Array","keys","reduce","_t","push","length","pieContains","startAngle","endAngle","x","y","distance","sqrt","atan2","prevAngle","nextAngle","getLabelOffsetPosition","xDirection","yDirection","xOffset","yOffset","MINIMUM_OFFSET","RadarRoot","Component","constructor","args","_defineProperty2","default","id","uid","asProps","offset","computeOffset","getAxisProps","type","getPolygonProps","dataKey","index","data","scale","patterns","color","getChartDefaultColorName","getHoverProps","categories","categoriesKey","getIndex","bind","getPolygon","getPie","point","findIndex","_c","polygonContains","size","diam","min","prevIndex","nextIndex","prevX1","prevY1","nextX1","nextY1","handlerOnClick","e","stopPropagation","rootRef","onClick","pointX","pointY","eventToPoint","current","r","centerX","centerY","render","_ref2","SRadar","Element","Children","styles","dataHintsHandler","establishDataType","toArray","getOriginChildren","forEach","child","Radar","Axis","undefined","createElement","cn","uniqueIDEnhancement","PolygonRoot","getDotsProps","resolveColor","transparent","categoryKey","getLineProps","d3","_ref3","SPolygon","fill","Fragment","PatternFill","curve","curveLinearClosed","lineRadial","d","_d","PolygonLine","_ref4","SPolygonLine","PolygonDots","SPolygonDot","value","_ref6","describeGroupedValues","cx","cy","_ref5","patternKey","getPatternSymbolSize","PatternSymbol","AxisRoot","activeLineIndex","_anchorProps","setState","createLineRadial","getTicksProps","getLabelsProps","labelOffset","componentDidMount","eventEmitter","unsubscribeTooltipVisible","subscribe","handleTooltipRenderingProps","componentWillUnmount","_ref7","SAxis","state","_category","className","active","key","x1","y1","x2","y2","AxisTicks","SAxisTick","tick","_ref8","AxisLabels","SAxisLabel","category","_ref9","labelKey","lines","split","lineText","lineIndex","cloneElement","Hover","canUseDOM","document","trottle","plotId","clientX","clientY","emit","generateGetBoundingClientRect","top","right","bottom","left","unsubscribeMouseMoveRoot","persist","handlerMouseMoveRoot","unsubscribeMouseLeaveRoot","handlerMouseLeaveRoot","SPieRect","_ref0","circle","arc","innerRadius","outerRadius","_ref1","line","Ticks","Labels","Polygon","Line","Dots","RadarTooltip","_ref","arguments[0]","_ref10","SRadarTooltip","Tooltip","assignProps","_______childrenComponents","_default","exports"],"sources":["../../src/Radar.jsx"],"sourcesContent":["import { Component, sstyled, Root } from '@semcore/core';\nimport canUseDOM from '@semcore/core/lib/utils/canUseDOM';\nimport getOriginChildren from '@semcore/core/lib/utils/getOriginChildren';\nimport trottle from '@semcore/core/lib/utils/rafTrottle';\nimport uniqueIDEnhancement from '@semcore/core/lib/utils/uniqueID';\nimport { polygonContains } from 'd3-polygon';\nimport { line, lineRadial, curveLinearClosed, arc } from 'd3-shape';\nimport React, { cloneElement } from 'react';\n\nimport createElement from './createElement';\nimport { PatternFill, PatternSymbol, getPatternSymbolSize } from './Pattern';\nimport style from './style/radar.shadow.css';\nimport Tooltip from './Tooltip';\nimport { eventToPoint, getChartDefaultColorName, measureText } from './utils';\n\nconst clampAngle = (angle) => {\n angle = angle % (2 * Math.PI);\n if (angle < 0) angle += 2 * Math.PI;\n return angle;\n};\n\nfunction getBoxAxesValue(i, range, axes, total, angleOffset) {\n const func = axes === 'y' ? Math.sin : Math.cos;\n\n const angle = clampAngle(((total - i) * 2 * Math.PI) / total + angleOffset);\n return range * (1 - func(angle)) - range;\n}\n\nfunction getRadianPosition(i, range, total, angleOffset) {\n return [\n getBoxAxesValue(i, range, 'y', total, angleOffset),\n getBoxAxesValue(i, range, 'x', total, angleOffset),\n ];\n}\n\nconst getLabelXPlacement = (i, total, angleOffset) => {\n const angle = clampAngle((i / total) * (Math.PI * 2) - angleOffset);\n if (angle >= Math.PI + Math.PI * (8 / 9) || angle <= Math.PI * (1 / 9)) return 'middle';\n if (angle >= Math.PI * (8 / 9) && angle <= Math.PI + Math.PI * (1 / 9)) return 'middle';\n\n return angle < Math.PI ? 'start' : 'end';\n};\nconst getLabelYPlacement = (i, total, angleOffset) => {\n const angle = clampAngle((i / total) * (Math.PI * 2) - angleOffset);\n if (angle >= Math.PI + Math.PI * (8 / 9) || angle <= Math.PI * (1 / 9)) return 'alphabetic';\n if (angle >= Math.PI * (8 / 9) && angle <= Math.PI + Math.PI * (1 / 9)) return 'mathematical';\n\n return 'middle';\n};\n\nfunction getLabelPlacement(i, total, angleOffset) {\n return [getLabelXPlacement(i, total, angleOffset), getLabelYPlacement(i, total, angleOffset)];\n}\n\nfunction computeTextWidth(texts, textSize, defaultWidth = 50, defaultHeight = 20) {\n const widths = texts.map((text) => {\n if (typeof text === 'string') {\n return measureText(text, textSize);\n }\n if (React.isValidElement(text)) {\n // @ts-ignore\n return Math.max(text.props?.width || defaultWidth, text.props?.height || defaultHeight);\n }\n return defaultWidth;\n });\n return Math.max(...widths);\n}\n\nfunction getTicks(tickSize, radius) {\n let ticks = 0;\n while (Math.trunc(radius / (tickSize / 2)) > ticks) {\n ticks += 1;\n }\n return [...Array(ticks).keys()].reduce((ticks, _t, i, total) => {\n if (i) ticks.push(i / total.length);\n return ticks;\n }, []);\n}\n\nfunction pieContains([startAngle, endAngle, radius], [x, y]) {\n const distance = Math.sqrt(x ** 2 + y ** 2);\n if (distance > radius) return false;\n\n startAngle = clampAngle(startAngle);\n endAngle = clampAngle(endAngle);\n startAngle = startAngle < endAngle ? startAngle : startAngle - 2 * Math.PI;\n\n const angle = clampAngle(Math.atan2(y, x) + Math.PI / 2);\n const prevAngle = angle - Math.PI * 2;\n const nextAngle = angle + Math.PI * 2;\n\n if (angle > startAngle && angle < endAngle) return true;\n if (prevAngle > startAngle && prevAngle < endAngle) return true;\n if (nextAngle > startAngle && nextAngle < endAngle) return true;\n return false;\n}\n\nexport function getLabelOffsetPosition(xDirection, yDirection, width, height) {\n let xOffset = 0;\n let yOffset = 0;\n switch (`${xDirection}-${yDirection}`) {\n case 'middle-alphabetic':\n yOffset = height / 2;\n break;\n case 'start-middle':\n xOffset = -width / 2;\n break;\n case 'middle-mathematical':\n yOffset = -height / 2;\n break;\n case 'end-middle':\n xOffset = width / 2;\n break;\n }\n return [xOffset + width / 2, yOffset + height / 2];\n}\n\nconst MINIMUM_OFFSET = 5;\n\nclass RadarRoot extends Component {\n static displayName = 'Line';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n computeOffset = 0;\n\n categoriesKey = null;\n\n static defaultProps = {\n type: 'polygon',\n angleOffset: 0,\n };\n\n get id() {\n const { id, uid } = this.asProps;\n return id || uid;\n }\n\n get offset() {\n const { offset } = this.asProps;\n return offset ?? this.computeOffset;\n }\n\n get textSize() {\n const { textSize } = this.asProps;\n return textSize ?? 12;\n }\n\n getAxisProps() {\n return {\n offset: this.offset,\n textSize: this.textSize,\n type: this.asProps.type,\n angleOffset: this.asProps.angleOffset,\n };\n }\n\n getPolygonProps({ dataKey }, index) {\n const { data, scale, angleOffset, uid, patterns } = this.asProps;\n\n return {\n offset: this.offset,\n data: data[dataKey] || [],\n scale,\n angleOffset,\n color: getChartDefaultColorName(index),\n uid: `${uid}-${index}`,\n patterns,\n };\n }\n\n getHoverProps() {\n return {\n type: this.asProps.type,\n offset: this.offset,\n categories: this.asProps.data[this.categoriesKey],\n angleOffset: this.asProps.angleOffset,\n getIndex: this.getIndex.bind(this),\n getPolygon: this.getPolygon.bind(this),\n getPie: this.getPie.bind(this),\n };\n }\n\n getIndex(point) {\n const { data, type } = this.asProps;\n const categories = data[this.categoriesKey];\n\n let index;\n if (type === 'circle') {\n index = categories.findIndex((_c, i) => pieContains(this.getPie(i), point));\n } else {\n index = categories.findIndex((_c, i) => polygonContains(this.getPolygon(i), point));\n }\n return index === -1 ? null : index;\n }\n\n getPolygon(index) {\n const { data, size, angleOffset } = this.asProps;\n const offset = this.offset;\n const categories = data[this.categoriesKey];\n const total = categories.length;\n const diam = Math.min(size[0], size[1]);\n const radius = diam / 2 - offset;\n const prevIndex = (index - 1 + total) % total;\n const nextIndex = (index + 1 + total) % total;\n const [prevX1, prevY1] = getRadianPosition(prevIndex, radius, total, angleOffset);\n const [x, y] = getRadianPosition(index, radius, total, angleOffset);\n const [nextX1, nextY1] = getRadianPosition(nextIndex, radius, total, angleOffset);\n return [\n [0, 0],\n [(prevX1 + x) / 2, (prevY1 + y) / 2],\n [x, y],\n [(nextX1 + x) / 2, (nextY1 + y) / 2],\n ];\n }\n\n getPie(index) {\n const { data, size, angleOffset } = this.asProps;\n const categories = data[this.categoriesKey];\n const offset = this.offset;\n const angle = (Math.PI * 2) / categories.length;\n const radius = Math.min(size[0], size[1]) / 2 - offset;\n return [\n index * angle - angle / 2 - angleOffset,\n (index + 1) * angle - angle / 2 - angleOffset,\n radius,\n ];\n }\n\n handlerOnClick(e) {\n e.stopPropagation();\n\n const { rootRef, size, onClick } = this.asProps;\n\n if (!onClick) return;\n\n const [pointX, pointY] = eventToPoint(e, rootRef.current);\n const r = Math.min(size[0], size[1]) / 2;\n const centerX = pointX - r;\n const centerY = pointY - r;\n\n const index = this.getIndex([centerX, centerY]);\n\n if (index === null) return;\n\n onClick(index, e);\n }\n\n render() {\n const SRadar = this.Element;\n const { Children, styles, size, data, offset } = this.asProps;\n const [width, height] = size;\n\n this.asProps.dataHintsHandler.establishDataType('indexed-groups');\n\n let dataKey;\n React.Children.toArray(getOriginChildren(Children)).forEach((child) => {\n if (React.isValidElement(child) && child.type === Radar.Axis) {\n dataKey = child.props.dataKey;\n }\n });\n if (dataKey) {\n if (offset === undefined) {\n // +5 because font might not be loaded and just in case)\n this.computeOffset = computeTextWidth(data[dataKey], this.textSize) + MINIMUM_OFFSET;\n }\n this.categoriesKey = dataKey;\n }\n\n return sstyled(styles)(\n <SRadar\n aria-hidden\n id={this.id}\n render='g'\n childrenPosition='inside'\n transform={`translate(${width / 2},${height / 2})`}\n onClickCapture={this.handlerOnClick.bind(this)}\n />,\n );\n }\n}\n\nclass PolygonRoot extends Component {\n static displayName = 'Polygon';\n static style = style;\n\n static defaultProps = ({ scale, curve = curveLinearClosed, size, offset, angleOffset }) => {\n scale.range([0, Math.min(size[0], size[1]) / 2 - offset]);\n\n return {\n d3: lineRadial()\n .curve(curve)\n .radius((d) => {\n return scale(d || 0);\n })\n .angle((_d, i, data) => {\n return (i / data.length) * 2 * Math.PI - angleOffset;\n }),\n };\n };\n\n getDotsProps() {\n const {\n data,\n scale,\n color,\n resolveColor,\n transparent,\n dataKey,\n dataHintsHandler,\n angleOffset,\n patterns,\n } = this.asProps;\n return {\n data,\n scale,\n color,\n resolveColor,\n transparent,\n categoryKey: dataKey,\n dataHintsHandler,\n angleOffset,\n patterns,\n };\n }\n\n getLineProps() {\n const { d3, data, color, resolveColor, transparent } = this.asProps;\n return {\n data,\n color,\n resolveColor,\n transparent,\n d3,\n };\n }\n\n render() {\n const {\n Element: SPolygon,\n styles,\n d3,\n data,\n color,\n resolveColor,\n fill,\n uid,\n patterns,\n } = this.asProps;\n return (\n <>\n {sstyled(styles)(\n <SPolygon\n render='path'\n d={d3(data)}\n color={resolveColor(fill || color)}\n pattern={patterns ? `url(#${uid}-pattern)` : undefined}\n />,\n )}\n {patterns && (\n <PatternFill\n id={`${uid}-pattern`}\n patternKey={color}\n color={resolveColor(fill || color)}\n patterns={patterns}\n />\n )}\n </>\n );\n }\n}\n\nfunction PolygonLine(props) {\n const { Element: SPolygonLine, styles, d3, color, resolveColor, data, transparent } = props;\n return sstyled(styles)(\n <SPolygonLine\n render='path'\n d={d3(data)}\n color={resolveColor(color)}\n transparent={transparent}\n />,\n );\n}\n\nfunction PolygonDots(props) {\n const {\n Element: SPolygonDot,\n styles,\n color,\n resolveColor,\n data,\n scale,\n transparent,\n categoryKey,\n angleOffset,\n patterns,\n } = props;\n return data.map((value, i) => {\n if (value === null || value === undefined) return;\n const radius = scale(value);\n props.dataHintsHandler.describeGroupedValues(categoryKey, `${categoryKey}.${i}`);\n const [cx, cy] = getRadianPosition(i, radius, data.length, angleOffset);\n\n if (!patterns) {\n return sstyled(styles)(\n <SPolygonDot\n render='circle'\n color={resolveColor(color)}\n transparent={transparent}\n patternKey={color}\n key={`${i}`}\n cx={cx}\n cy={cy}\n />,\n );\n }\n\n const patternKey = color || getChartDefaultColorName(0);\n const [width, height] = getPatternSymbolSize({\n patternKey,\n patterns,\n });\n\n return sstyled(styles)(\n <SPolygonDot\n render={PatternSymbol}\n color={resolveColor(color)}\n transparent={transparent}\n patternKey={color}\n key={`${i}`}\n x={cx - width / 2}\n y={cy - height / 2}\n />,\n );\n });\n}\n\nclass AxisRoot extends Component {\n static displayName = 'Polygon';\n static style = style;\n\n static defaultProps = ({ data, dataKey }) => {\n const categories = data[dataKey];\n return {\n categories,\n };\n };\n\n unsubscribeTooltipVisible = null;\n\n state = {\n activeLineIndex: null,\n };\n\n createLineRadial(radius, total) {\n return lineRadial()\n .curve(curveLinearClosed)\n .radius(() => {\n return radius;\n })\n .angle((_d, i) => {\n return (i / total) * 2 * Math.PI;\n });\n }\n\n getTicksProps({ tickSize = 100 }) {\n const { data, offset, categories, size, type } = this.asProps;\n const radius = Math.min(size[0], size[1]) / 2 - offset;\n return {\n type,\n data,\n categories,\n ticks: getTicks(tickSize, radius),\n offset,\n d3: this.createLineRadial(radius, categories.length),\n };\n }\n\n getLabelsProps({ labelOffset = 10 }) {\n const { offset, categories, textSize, angleOffset } = this.asProps;\n return {\n categories,\n textSize,\n offset: offset - labelOffset,\n angleOffset,\n };\n }\n\n handleTooltipRenderingProps = (_anchorProps, { index }) => {\n this.setState({ activeLineIndex: index });\n };\n\n componentDidMount() {\n const { eventEmitter } = this.asProps;\n this.unsubscribeTooltipVisible = eventEmitter.subscribe(\n 'setTooltipRenderingProps',\n this.handleTooltipRenderingProps,\n );\n }\n\n componentWillUnmount() {\n this.unsubscribeTooltipVisible?.();\n }\n\n render() {\n const { Element: SAxis, styles, categories, size, offset, type, angleOffset } = this.asProps;\n const { activeLineIndex } = this.state;\n const radius = Math.min(size[0], size[1]) / 2 - offset;\n const total = categories.length;\n\n return sstyled(styles)(\n <>\n {type === 'circle'\n ? (\n <SAxis render='circle' cx={0} cy={0} r={radius} />\n )\n : (\n <SAxis render='path' d={this.createLineRadial(radius, total)(categories)} />\n )}\n {categories.map((_category, i) => {\n const [x, y] = getRadianPosition(i, radius, total, angleOffset);\n const { className } = sstyled(styles).cn('SAxisLine', {\n active: activeLineIndex === i,\n });\n return <line key={i} x1={0} y1={0} x2={x} y2={y} className={className} />;\n })}\n </>,\n );\n }\n}\n\nfunction AxisTicks(props) {\n const { Element: SAxisTick, styles, size, ticks, d3, categories, offset, type } = props;\n const radius = Math.min(size[0], size[1]) / 2 - offset;\n\n return ticks.map((tick, i) => {\n d3.radius(() => radius * tick);\n return sstyled(styles)(\n type === 'circle'\n ? (\n <SAxisTick key={i} render='circle' cx={0} cy={0} r={radius * tick} />\n )\n : (\n <SAxisTick render='path' key={i} d={d3(categories)} />\n ),\n );\n });\n}\n\nfunction AxisLabels(props) {\n const { Element: SAxisLabel, styles, textSize, size, offset, categories, angleOffset } = props;\n const radius = Math.min(size[0], size[1]) / 2 - offset;\n\n return categories.map((category, i) => {\n const [x, y] = getRadianPosition(i, radius, categories.length, angleOffset);\n const [xDirection, yDirection] = getLabelPlacement(i, categories.length, angleOffset);\n if (typeof category === 'string') {\n props.dataHintsHandler.labelKey('value', i, category);\n\n const lines = category.split('\\n');\n return sstyled(styles)(\n <SAxisLabel\n key={i}\n render='text'\n childrenPosition='inside'\n x={x}\n y={y}\n xDirection={xDirection}\n yDirection={yDirection}\n >\n {lines.map((lineText, lineIndex) => (\n <tspan\n x={x}\n y={y + (lineIndex - (lines.length - 1) / 2) * textSize}\n key={`#${lineIndex}-${lineText}`}\n >\n {lineText}\n </tspan>\n ))}\n </SAxisLabel>,\n );\n }\n if (React.isValidElement(category)) {\n const { width = 0, height = 0 } = category?.props ?? {};\n const [xOffset, yOffset] = getLabelOffsetPosition(xDirection, yDirection, width, height);\n return cloneElement(category, {\n key: i,\n x: x - xOffset,\n y: y - yOffset,\n });\n }\n });\n}\n\nclass Hover extends Component {\n state = {\n index: null,\n };\n\n virtualElement = canUseDOM() ? document.createElement('div') : {};\n\n unsubscribeMouseMoveRoot = null;\n unsubscribeMouseLeaveRoot = null;\n\n generateGetBoundingClientRect(x = 0, y = 0) {\n return () => ({ width: 0, height: 0, top: y, right: x, bottom: y, left: x });\n }\n\n handlerMouseMoveRoot = trottle((e) => {\n const { eventEmitter, size, rootRef, patterns, getIndex, plotId } = this.asProps;\n const point = eventToPoint(e, rootRef.current);\n const diam = Math.min(size[0], size[1]);\n const centerX = point[0] - diam / 2;\n const centerY = point[1] - diam / 2;\n const { clientX, clientY } = e;\n\n const index = getIndex([centerX, centerY]);\n\n this.setState({ index }, () => {\n eventEmitter.emit(`setTooltipPosition_${plotId}`, clientX, clientY);\n eventEmitter.emit(`setTooltipRenderingProps_${plotId}`, {}, { index, patterns });\n eventEmitter.emit(`setTooltipVisible_${plotId}`, index !== null);\n });\n });\n\n handlerMouseLeaveRoot = trottle(() => {\n this.setState({ index: null }, () => {\n this.asProps.eventEmitter.emit(`setTooltipVisible_${this.asProps.plotId}`, false);\n });\n });\n\n componentDidMount() {\n const { eventEmitter } = this.asProps;\n this.unsubscribeMouseMoveRoot = eventEmitter.subscribe('onMouseMoveRoot', (e) => {\n e.persist();\n this.handlerMouseMoveRoot(e);\n });\n this.unsubscribeMouseLeaveRoot = eventEmitter.subscribe(\n 'onMouseLeaveRoot',\n this.handlerMouseLeaveRoot,\n );\n }\n\n componentWillUnmount() {\n if (this.unsubscribeMouseMoveRoot) {\n this.unsubscribeMouseMoveRoot();\n }\n if (this.unsubscribeMouseLeaveRoot) {\n this.unsubscribeMouseLeaveRoot();\n }\n }\n\n render() {\n const { styles, type, getPie, getPolygon } = this.asProps;\n const { index } = this.state;\n const SPieRect = this.Element;\n\n if (index !== null) {\n if (type === 'circle') {\n const [startAngle, endAngle, radius] = getPie(index);\n const circle = arc()\n .innerRadius(0)\n .outerRadius(radius)\n .startAngle(startAngle)\n .endAngle(endAngle);\n return sstyled(styles)(\n <SPieRect\n render='path'\n // @ts-ignore\n d={circle()}\n />,\n );\n } else {\n return sstyled(styles)(\n <SPieRect\n render='path'\n // @ts-ignore\n d={line()(getPolygon(index))}\n />,\n );\n }\n }\n\n return null;\n }\n}\n\nconst Axis = createElement(AxisRoot, {\n Ticks: AxisTicks,\n Labels: AxisLabels,\n});\n\nconst Polygon = createElement(PolygonRoot, {\n Line: PolygonLine,\n Dots: PolygonDots,\n});\n\nfunction RadarTooltip(props) {\n const SRadarTooltip = Root;\n return sstyled(props.styles)(\n <SRadarTooltip render={Tooltip} tag={Radar.Hover} excludeAnchorProps />,\n );\n}\n\nconst Radar = createElement(RadarRoot, {\n Axis,\n Polygon,\n Hover,\n Tooltip: [RadarTooltip, Tooltip._______childrenComponents],\n});\n\nexport default Radar;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Radar.js","names":["_core","require","_canUseDOM","_interopRequireDefault","_getOriginChildren","_rafTrottle","_uniqueID","_d3Polygon","_d3Shape","_react","_interopRequireWildcard","_createElement","_Pattern","_Tooltip","_utils","style","sstyled","insert","clampAngle","angle","Math","PI","getBoxAxesValue","i","range","axes","total","angleOffset","func","sin","cos","getRadianPosition","getLabelXPlacement","getLabelYPlacement","getLabelPlacement","computeTextWidth","texts","textSize","defaultWidth","defaultHeight","widths","map","text","measureText","React","isValidElement","max","props","width","height","getTicks","tickSize","radius","ticks","trunc","Array","keys","reduce","_t","push","length","pieContains","startAngle","endAngle","x","y","distance","sqrt","atan2","prevAngle","nextAngle","getLabelOffsetPosition","xDirection","yDirection","xOffset","yOffset","MINIMUM_OFFSET","RadarRoot","Component","constructor","args","_defineProperty2","default","id","uid","asProps","offset","computeOffset","getAxisProps","type","getPolygonProps","dataKey","index","data","scale","patterns","color","getChartDefaultColorName","getHoverProps","categories","categoriesKey","getIndex","bind","getPolygon","getPie","point","findIndex","_c","polygonContains","size","diam","min","prevIndex","nextIndex","prevX1","prevY1","nextX1","nextY1","handlerOnClick","e","stopPropagation","rootRef","onClick","pointX","pointY","eventToPoint","current","r","centerX","centerY","render","_ref2","SRadar","Element","Children","styles","dataHintsHandler","establishDataType","toArray","getOriginChildren","forEach","child","Radar","Axis","undefined","createElement","cn","uniqueIDEnhancement","PolygonRoot","getDotsProps","resolveColor","transparent","categoryKey","getLineProps","d3","_ref3","SPolygon","fill","Fragment","PatternFill","curve","curveLinearClosed","lineRadial","d","_d","PolygonLine","_ref4","SPolygonLine","PolygonDots","SPolygonDot","value","_ref6","describeGroupedValues","cx","cy","_ref5","patternKey","getPatternSymbolSize","PatternSymbol","AxisRoot","activeLineIndex","_anchorProps","setState","createLineRadial","getTicksProps","getLabelsProps","labelOffset","componentDidMount","eventEmitter","unsubscribeTooltipVisible","subscribe","handleTooltipRenderingProps","componentWillUnmount","_ref7","SAxis","state","_category","className","active","key","x1","y1","x2","y2","AxisTicks","SAxisTick","tick","_ref8","AxisLabels","SAxisLabel","category","_ref9","labelKey","lines","split","lineText","lineIndex","cloneElement","Hover","canUseDOM","document","trottle","plotId","clientX","clientY","emit","generateGetBoundingClientRect","top","right","bottom","left","unsubscribeMouseMoveRoot","persist","handlerMouseMoveRoot","unsubscribeMouseLeaveRoot","handlerMouseLeaveRoot","SPieRect","_ref0","circle","arc","innerRadius","outerRadius","_ref1","line","Ticks","Labels","Polygon","Line","Dots","RadarTooltip","_ref","arguments[0]","_ref10","SRadarTooltip","Tooltip","assignProps","_______childrenComponents","_default","exports"],"sources":["../../src/Radar.jsx"],"sourcesContent":["import { Component, sstyled, Root } from '@semcore/core';\nimport canUseDOM from '@semcore/core/lib/utils/canUseDOM';\nimport getOriginChildren from '@semcore/core/lib/utils/getOriginChildren';\nimport trottle from '@semcore/core/lib/utils/rafTrottle';\nimport uniqueIDEnhancement from '@semcore/core/lib/utils/uniqueID';\nimport { polygonContains } from 'd3-polygon';\nimport { line, lineRadial, curveLinearClosed, arc } from 'd3-shape';\nimport React, { cloneElement } from 'react';\n\nimport createElement from './createElement';\nimport { PatternFill, PatternSymbol, getPatternSymbolSize } from './Pattern';\nimport style from './style/radar.shadow.css';\nimport Tooltip from './Tooltip';\nimport { eventToPoint, getChartDefaultColorName, measureText } from './utils';\n\nconst clampAngle = (angle) => {\n angle = angle % (2 * Math.PI);\n if (angle < 0) angle += 2 * Math.PI;\n return angle;\n};\n\nfunction getBoxAxesValue(i, range, axes, total, angleOffset) {\n const func = axes === 'y' ? Math.sin : Math.cos;\n\n const angle = clampAngle(((total - i) * 2 * Math.PI) / total + angleOffset);\n return range * (1 - func(angle)) - range;\n}\n\nfunction getRadianPosition(i, range, total, angleOffset) {\n return [\n getBoxAxesValue(i, range, 'y', total, angleOffset),\n getBoxAxesValue(i, range, 'x', total, angleOffset),\n ];\n}\n\nconst getLabelXPlacement = (i, total, angleOffset) => {\n const angle = clampAngle((i / total) * (Math.PI * 2) - angleOffset);\n if (angle >= Math.PI + Math.PI * (8 / 9) || angle <= Math.PI * (1 / 9)) return 'middle';\n if (angle >= Math.PI * (8 / 9) && angle <= Math.PI + Math.PI * (1 / 9)) return 'middle';\n\n return angle < Math.PI ? 'start' : 'end';\n};\nconst getLabelYPlacement = (i, total, angleOffset) => {\n const angle = clampAngle((i / total) * (Math.PI * 2) - angleOffset);\n if (angle >= Math.PI + Math.PI * (8 / 9) || angle <= Math.PI * (1 / 9)) return 'alphabetic';\n if (angle >= Math.PI * (8 / 9) && angle <= Math.PI + Math.PI * (1 / 9)) return 'mathematical';\n\n return 'middle';\n};\n\nfunction getLabelPlacement(i, total, angleOffset) {\n return [getLabelXPlacement(i, total, angleOffset), getLabelYPlacement(i, total, angleOffset)];\n}\n\nfunction computeTextWidth(texts, textSize, defaultWidth = 50, defaultHeight = 20) {\n const widths = texts.map((text) => {\n if (typeof text === 'string') {\n return measureText(text, textSize);\n }\n if (React.isValidElement(text)) {\n // @ts-ignore\n return Math.max(text.props?.width || defaultWidth, text.props?.height || defaultHeight);\n }\n return defaultWidth;\n });\n return Math.max(...widths);\n}\n\nfunction getTicks(tickSize, radius) {\n let ticks = 0;\n while (Math.trunc(radius / (tickSize / 2)) > ticks) {\n ticks += 1;\n }\n return [...Array(ticks).keys()].reduce((ticks, _t, i, total) => {\n if (i) ticks.push(i / total.length);\n return ticks;\n }, []);\n}\n\nfunction pieContains([startAngle, endAngle, radius], [x, y]) {\n const distance = Math.sqrt(x ** 2 + y ** 2);\n if (distance > radius) return false;\n\n startAngle = clampAngle(startAngle);\n endAngle = clampAngle(endAngle);\n startAngle = startAngle < endAngle ? startAngle : startAngle - 2 * Math.PI;\n\n const angle = clampAngle(Math.atan2(y, x) + Math.PI / 2);\n const prevAngle = angle - Math.PI * 2;\n const nextAngle = angle + Math.PI * 2;\n\n if (angle > startAngle && angle < endAngle) return true;\n if (prevAngle > startAngle && prevAngle < endAngle) return true;\n if (nextAngle > startAngle && nextAngle < endAngle) return true;\n return false;\n}\n\nexport function getLabelOffsetPosition(xDirection, yDirection, width, height) {\n let xOffset = 0;\n let yOffset = 0;\n switch (`${xDirection}-${yDirection}`) {\n case 'middle-alphabetic':\n yOffset = height / 2;\n break;\n case 'start-middle':\n xOffset = -width / 2;\n break;\n case 'middle-mathematical':\n yOffset = -height / 2;\n break;\n case 'end-middle':\n xOffset = width / 2;\n break;\n }\n return [xOffset + width / 2, yOffset + height / 2];\n}\n\nconst MINIMUM_OFFSET = 5;\n\nclass RadarRoot extends Component {\n static displayName = 'Line';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n computeOffset = 0;\n\n categoriesKey = null;\n\n static defaultProps = {\n type: 'polygon',\n angleOffset: 0,\n };\n\n get id() {\n const { id, uid } = this.asProps;\n return id || uid;\n }\n\n get offset() {\n const { offset } = this.asProps;\n return offset ?? this.computeOffset;\n }\n\n get textSize() {\n const { textSize } = this.asProps;\n return textSize ?? 12;\n }\n\n getAxisProps() {\n return {\n offset: this.offset,\n textSize: this.textSize,\n type: this.asProps.type,\n angleOffset: this.asProps.angleOffset,\n };\n }\n\n getPolygonProps({ dataKey }, index) {\n const { data, scale, angleOffset, uid, patterns } = this.asProps;\n\n return {\n offset: this.offset,\n data: data[dataKey] || [],\n scale,\n angleOffset,\n color: getChartDefaultColorName(index),\n uid: `${uid}-${index}`,\n patterns,\n };\n }\n\n getHoverProps() {\n return {\n type: this.asProps.type,\n offset: this.offset,\n categories: this.asProps.data[this.categoriesKey],\n angleOffset: this.asProps.angleOffset,\n getIndex: this.getIndex.bind(this),\n getPolygon: this.getPolygon.bind(this),\n getPie: this.getPie.bind(this),\n };\n }\n\n getIndex(point) {\n const { data, type } = this.asProps;\n const categories = data[this.categoriesKey];\n\n let index;\n if (type === 'circle') {\n index = categories.findIndex((_c, i) => pieContains(this.getPie(i), point));\n } else {\n index = categories.findIndex((_c, i) => polygonContains(this.getPolygon(i), point));\n }\n return index === -1 ? null : index;\n }\n\n getPolygon(index) {\n const { data, size, angleOffset } = this.asProps;\n const offset = this.offset;\n const categories = data[this.categoriesKey];\n const total = categories.length;\n const diam = Math.min(size[0], size[1]);\n const radius = diam / 2 - offset;\n const prevIndex = (index - 1 + total) % total;\n const nextIndex = (index + 1 + total) % total;\n const [prevX1, prevY1] = getRadianPosition(prevIndex, radius, total, angleOffset);\n const [x, y] = getRadianPosition(index, radius, total, angleOffset);\n const [nextX1, nextY1] = getRadianPosition(nextIndex, radius, total, angleOffset);\n return [\n [0, 0],\n [(prevX1 + x) / 2, (prevY1 + y) / 2],\n [x, y],\n [(nextX1 + x) / 2, (nextY1 + y) / 2],\n ];\n }\n\n getPie(index) {\n const { data, size, angleOffset } = this.asProps;\n const categories = data[this.categoriesKey];\n const offset = this.offset;\n const angle = (Math.PI * 2) / categories.length;\n const radius = Math.min(size[0], size[1]) / 2 - offset;\n return [\n index * angle - angle / 2 - angleOffset,\n (index + 1) * angle - angle / 2 - angleOffset,\n radius,\n ];\n }\n\n handlerOnClick(e) {\n e.stopPropagation();\n\n const { rootRef, size, onClick } = this.asProps;\n\n if (!onClick) return;\n\n const [pointX, pointY] = eventToPoint(e, rootRef.current);\n const r = Math.min(size[0], size[1]) / 2;\n const centerX = pointX - r;\n const centerY = pointY - r;\n\n const index = this.getIndex([centerX, centerY]);\n\n if (index === null) return;\n\n onClick(index, e);\n }\n\n render() {\n const SRadar = this.Element;\n const { Children, styles, size, data, offset } = this.asProps;\n const [width, height] = size;\n\n this.asProps.dataHintsHandler.establishDataType('indexed-groups');\n\n let dataKey;\n React.Children.toArray(getOriginChildren(Children)).forEach((child) => {\n if (React.isValidElement(child) && child.type === Radar.Axis) {\n dataKey = child.props.dataKey;\n }\n });\n if (dataKey) {\n if (offset === undefined) {\n // +5 because font might not be loaded and just in case)\n this.computeOffset = computeTextWidth(data[dataKey], this.textSize) + MINIMUM_OFFSET;\n }\n this.categoriesKey = dataKey;\n }\n\n return sstyled(styles)(\n <SRadar\n aria-hidden\n id={this.id}\n render='g'\n childrenPosition='inside'\n transform={`translate(${width / 2},${height / 2})`}\n onClickCapture={this.handlerOnClick.bind(this)}\n />,\n );\n }\n}\n\nclass PolygonRoot extends Component {\n static displayName = 'Polygon';\n static style = style;\n\n static defaultProps = ({ scale, curve = curveLinearClosed, size, offset, angleOffset }) => {\n scale.range([0, Math.min(size[0], size[1]) / 2 - offset]);\n\n return {\n d3: lineRadial()\n .curve(curve)\n .radius((d) => {\n return scale(d || 0);\n })\n .angle((_d, i, data) => {\n return (i / data.length) * 2 * Math.PI - angleOffset;\n }),\n };\n };\n\n getDotsProps() {\n const {\n data,\n scale,\n color,\n resolveColor,\n transparent,\n dataKey,\n dataHintsHandler,\n angleOffset,\n patterns,\n } = this.asProps;\n return {\n data,\n scale,\n color,\n resolveColor,\n transparent,\n categoryKey: dataKey,\n dataHintsHandler,\n angleOffset,\n patterns,\n };\n }\n\n getLineProps() {\n const { d3, data, color, resolveColor, transparent } = this.asProps;\n return {\n data,\n color,\n resolveColor,\n transparent,\n d3,\n };\n }\n\n render() {\n const {\n Element: SPolygon,\n styles,\n d3,\n data,\n color,\n resolveColor,\n fill,\n uid,\n patterns,\n } = this.asProps;\n return (\n <>\n {sstyled(styles)(\n <SPolygon\n render='path'\n d={d3(data)}\n color={resolveColor(fill || color)}\n pattern={patterns ? `url(#${uid}-pattern)` : undefined}\n />,\n )}\n {patterns && (\n <PatternFill\n id={`${uid}-pattern`}\n patternKey={color}\n color={resolveColor(fill || color)}\n patterns={patterns}\n />\n )}\n </>\n );\n }\n}\n\nfunction PolygonLine(props) {\n const { Element: SPolygonLine, styles, d3, color, resolveColor, data, transparent } = props;\n return sstyled(styles)(\n <SPolygonLine\n render='path'\n d={d3(data)}\n color={resolveColor(color)}\n transparent={transparent}\n />,\n );\n}\n\nfunction PolygonDots(props) {\n const {\n Element: SPolygonDot,\n styles,\n color,\n resolveColor,\n data,\n scale,\n transparent,\n categoryKey,\n angleOffset,\n patterns,\n } = props;\n return data.map((value, i) => {\n if (value === null || value === undefined) return;\n const radius = scale(value);\n props.dataHintsHandler.describeGroupedValues(categoryKey, `${categoryKey}.${i}`);\n const [cx, cy] = getRadianPosition(i, radius, data.length, angleOffset);\n\n if (!patterns) {\n return sstyled(styles)(\n <SPolygonDot\n render='circle'\n color={resolveColor(color)}\n transparent={transparent}\n patternKey={color}\n key={`${i}`}\n cx={cx}\n cy={cy}\n />,\n );\n }\n\n const patternKey = color || getChartDefaultColorName(0);\n const [width, height] = getPatternSymbolSize({\n patternKey,\n patterns,\n });\n\n return sstyled(styles)(\n <SPolygonDot\n render={PatternSymbol}\n color={resolveColor(color)}\n transparent={transparent}\n patternKey={color}\n key={`${i}`}\n x={cx - width / 2}\n y={cy - height / 2}\n />,\n );\n });\n}\n\nclass AxisRoot extends Component {\n static displayName = 'Polygon';\n static style = style;\n\n static defaultProps = ({ data, dataKey }) => {\n const categories = data[dataKey];\n return {\n categories,\n };\n };\n\n unsubscribeTooltipVisible = null;\n\n state = {\n activeLineIndex: null,\n };\n\n createLineRadial(radius, total) {\n return lineRadial()\n .curve(curveLinearClosed)\n .radius(() => {\n return radius;\n })\n .angle((_d, i) => {\n return (i / total) * 2 * Math.PI;\n });\n }\n\n getTicksProps({ tickSize = 100 }) {\n const { data, offset, categories, size, type } = this.asProps;\n const radius = Math.min(size[0], size[1]) / 2 - offset;\n return {\n type,\n data,\n categories,\n ticks: getTicks(tickSize, radius),\n offset,\n d3: this.createLineRadial(radius, categories.length),\n };\n }\n\n getLabelsProps({ labelOffset = 10 }) {\n const { offset, categories, textSize, angleOffset } = this.asProps;\n return {\n categories,\n textSize,\n offset: offset - labelOffset,\n angleOffset,\n };\n }\n\n handleTooltipRenderingProps = (_anchorProps, { index }) => {\n this.setState({ activeLineIndex: index });\n };\n\n componentDidMount() {\n const { eventEmitter } = this.asProps;\n this.unsubscribeTooltipVisible = eventEmitter.subscribe(\n 'setTooltipRenderingProps',\n this.handleTooltipRenderingProps,\n );\n }\n\n componentWillUnmount() {\n this.unsubscribeTooltipVisible?.();\n }\n\n render() {\n const { Element: SAxis, styles, categories, size, offset, type, angleOffset } = this.asProps;\n const { activeLineIndex } = this.state;\n const radius = Math.min(size[0], size[1]) / 2 - offset;\n const total = categories.length;\n\n return sstyled(styles)(\n <>\n {type === 'circle'\n ? (\n <SAxis render='circle' cx={0} cy={0} r={radius} />\n )\n : (\n <SAxis render='path' d={this.createLineRadial(radius, total)(categories)} />\n )}\n {categories.map((_category, i) => {\n const [x, y] = getRadianPosition(i, radius, total, angleOffset);\n const { className } = sstyled(styles).cn('SAxisLine', {\n active: activeLineIndex === i,\n });\n return <line key={i} x1={0} y1={0} x2={x} y2={y} className={className} />;\n })}\n </>,\n );\n }\n}\n\nfunction AxisTicks(props) {\n const { Element: SAxisTick, styles, size, ticks, d3, categories, offset, type } = props;\n const radius = Math.min(size[0], size[1]) / 2 - offset;\n\n return ticks.map((tick, i) => {\n d3.radius(() => radius * tick);\n return sstyled(styles)(\n type === 'circle'\n ? (\n <SAxisTick key={i} render='circle' cx={0} cy={0} r={radius * tick} />\n )\n : (\n <SAxisTick render='path' key={i} d={d3(categories)} />\n ),\n );\n });\n}\n\nfunction AxisLabels(props) {\n const { Element: SAxisLabel, styles, textSize, size, offset, categories, angleOffset } = props;\n const radius = Math.min(size[0], size[1]) / 2 - offset;\n\n return categories.map((category, i) => {\n const [x, y] = getRadianPosition(i, radius, categories.length, angleOffset);\n const [xDirection, yDirection] = getLabelPlacement(i, categories.length, angleOffset);\n if (typeof category === 'string') {\n props.dataHintsHandler.labelKey('value', i, category);\n\n const lines = category.split('\\n');\n return sstyled(styles)(\n <SAxisLabel\n key={i}\n render='text'\n childrenPosition='inside'\n x={x}\n y={y}\n xDirection={xDirection}\n yDirection={yDirection}\n >\n {lines.map((lineText, lineIndex) => (\n <tspan\n x={x}\n y={y + (lineIndex - (lines.length - 1) / 2) * textSize}\n key={`#${lineIndex}-${lineText}`}\n >\n {lineText}\n </tspan>\n ))}\n </SAxisLabel>,\n );\n }\n if (React.isValidElement(category)) {\n const { width = 0, height = 0 } = category?.props ?? {};\n const [xOffset, yOffset] = getLabelOffsetPosition(xDirection, yDirection, width, height);\n return cloneElement(category, {\n key: i,\n x: x - xOffset,\n y: y - yOffset,\n });\n }\n });\n}\n\nclass Hover extends Component {\n state = {\n index: null,\n };\n\n virtualElement = canUseDOM() ? document.createElement('div') : {};\n\n unsubscribeMouseMoveRoot = null;\n unsubscribeMouseLeaveRoot = null;\n\n generateGetBoundingClientRect(x = 0, y = 0) {\n return () => ({ width: 0, height: 0, top: y, right: x, bottom: y, left: x });\n }\n\n handlerMouseMoveRoot = trottle((e) => {\n const { eventEmitter, size, rootRef, patterns, getIndex, plotId } = this.asProps;\n const point = eventToPoint(e, rootRef.current);\n const diam = Math.min(size[0], size[1]);\n const centerX = point[0] - diam / 2;\n const centerY = point[1] - diam / 2;\n const { clientX, clientY } = e;\n\n const index = getIndex([centerX, centerY]);\n\n this.setState({ index }, () => {\n eventEmitter.emit(`setTooltipPosition_${plotId}`, clientX, clientY);\n eventEmitter.emit(`setTooltipRenderingProps_${plotId}`, {}, { index, patterns });\n eventEmitter.emit(`setTooltipVisible_${plotId}`, index !== null);\n });\n });\n\n handlerMouseLeaveRoot = trottle(() => {\n this.setState({ index: null }, () => {\n this.asProps.eventEmitter.emit(`setTooltipVisible_${this.asProps.plotId}`, false);\n });\n });\n\n componentDidMount() {\n const { eventEmitter } = this.asProps;\n this.unsubscribeMouseMoveRoot = eventEmitter.subscribe('onMouseMoveRoot', (e) => {\n e.persist();\n this.handlerMouseMoveRoot(e);\n });\n this.unsubscribeMouseLeaveRoot = eventEmitter.subscribe(\n 'onMouseLeaveRoot',\n this.handlerMouseLeaveRoot,\n );\n }\n\n componentWillUnmount() {\n if (this.unsubscribeMouseMoveRoot) {\n this.unsubscribeMouseMoveRoot();\n }\n if (this.unsubscribeMouseLeaveRoot) {\n this.unsubscribeMouseLeaveRoot();\n }\n }\n\n render() {\n const { styles, type, getPie, getPolygon } = this.asProps;\n const { index } = this.state;\n const SPieRect = this.Element;\n\n if (index !== null) {\n if (type === 'circle') {\n const [startAngle, endAngle, radius] = getPie(index);\n const circle = arc()\n .innerRadius(0)\n .outerRadius(radius)\n .startAngle(startAngle)\n .endAngle(endAngle);\n return sstyled(styles)(\n <SPieRect\n render='path'\n // @ts-ignore\n d={circle()}\n />,\n );\n } else {\n return sstyled(styles)(\n <SPieRect\n render='path'\n // @ts-ignore\n d={line()(getPolygon(index))}\n />,\n );\n }\n }\n\n return null;\n }\n}\n\nconst Axis = createElement(AxisRoot, {\n Ticks: AxisTicks,\n Labels: AxisLabels,\n});\n\nconst Polygon = createElement(PolygonRoot, {\n Line: PolygonLine,\n Dots: PolygonDots,\n});\n\nfunction RadarTooltip(props) {\n const SRadarTooltip = Root;\n return sstyled(props.styles)(\n <SRadarTooltip render={Tooltip} tag={Radar.Hover} excludeAnchorProps />,\n );\n}\n\n/**\n * Radar\n *\n * {@link https://developer.semrush.com/intergalactic/data-display/radar-chart/radar-chart-api/|API} | {@link https://developer.semrush.com/intergalactic/data-display/radar-chart/radar-chart-code/|Examples}\n */\nconst Radar = createElement(RadarRoot, {\n Axis,\n Polygon,\n Hover,\n Tooltip: [RadarTooltip, Tooltip._______childrenComponents],\n});\n\nexport default Radar;\n"],"mappings":"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","ignoreList":[]}
|
package/lib/cjs/RadialTree.js
CHANGED
|
@@ -17,20 +17,20 @@ var _createElement = _interopRequireDefault(require("./createElement"));
|
|
|
17
17
|
var _Pattern = require("./Pattern");
|
|
18
18
|
var _utils = require("./utils");
|
|
19
19
|
/*!__reshadow-styles__:"./style/radial-tree.shadow.css"*/
|
|
20
|
-
const style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".
|
|
20
|
+
const style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SRadian_mwmal_gg_{cursor:pointer;fill:var(--intergalactic-text-large-info,#5c5cc4)}.___SLine_mwmal_gg_{stroke:var(--intergalactic-text-large-info,#5c5cc4)}.___SLine_mwmal_gg_.__stroke_mwmal_gg_{stroke:var(--stroke_mwmal)}.___SLine_mwmal_gg_.__transparent_mwmal_gg_{opacity:.3}.___SCap_mwmal_gg_{transition:r .1s}.___SCap_mwmal_gg_.__pattern_mwmal_gg_{stroke:var(--intergalactic-chart-grid-border,#fff);stroke-width:1px}.___SCap_mwmal_gg_.__transparent_mwmal_gg_,.___SIcon_mwmal_gg_.__transparent_mwmal_gg_{opacity:.3}.___SLabel_mwmal_gg_{fill:var(--color_mwmal)}.___SLabel_mwmal_gg_.__transparent_mwmal_gg_{opacity:.3}@media (hover:hover){.___SRadian_mwmal_gg_:hover .___SLabel_mwmal_gg_{cursor:pointer;filter:brightness(.6)}}@media (prefers-reduced-motion){.___SLineCap_mwmal_gg_{transition:none}}", /*__inner_css_end__*/"mwmal_gg_"),
|
|
21
21
|
/*__reshadow_css_end__*/
|
|
22
22
|
{
|
|
23
|
-
"__SRadian": "
|
|
24
|
-
"__SLine": "
|
|
25
|
-
"_stroke": "
|
|
26
|
-
"--stroke": "--
|
|
27
|
-
"_transparent": "
|
|
28
|
-
"__SCap": "
|
|
29
|
-
"_pattern": "
|
|
30
|
-
"__SIcon": "
|
|
31
|
-
"__SLabel": "
|
|
32
|
-
"--color": "--
|
|
33
|
-
"__SLineCap": "
|
|
23
|
+
"__SRadian": "___SRadian_mwmal_gg_",
|
|
24
|
+
"__SLine": "___SLine_mwmal_gg_",
|
|
25
|
+
"_stroke": "__stroke_mwmal_gg_",
|
|
26
|
+
"--stroke": "--stroke_mwmal",
|
|
27
|
+
"_transparent": "__transparent_mwmal_gg_",
|
|
28
|
+
"__SCap": "___SCap_mwmal_gg_",
|
|
29
|
+
"_pattern": "__pattern_mwmal_gg_",
|
|
30
|
+
"__SIcon": "___SIcon_mwmal_gg_",
|
|
31
|
+
"__SLabel": "___SLabel_mwmal_gg_",
|
|
32
|
+
"--color": "--color_mwmal",
|
|
33
|
+
"__SLineCap": "___SLineCap_mwmal_gg_"
|
|
34
34
|
});
|
|
35
35
|
const baseAngle = -Math.PI / 2; // The top vertical line
|
|
36
36
|
|
|
@@ -647,6 +647,11 @@ function Title({
|
|
|
647
647
|
"y": y
|
|
648
648
|
}), /*#__PURE__*/_react.default.createElement(Children, _ref9.cn("Children", {})));
|
|
649
649
|
}
|
|
650
|
+
/**
|
|
651
|
+
* RadialTree
|
|
652
|
+
*
|
|
653
|
+
* {@link https://developer.semrush.com/intergalactic/data-display/radial-tree-chart/radial-tree-chart-api/|API} | {@link https://developer.semrush.com/intergalactic/data-display/radial-tree-chart/radial-tree-chart-code/|Examples}
|
|
654
|
+
*/
|
|
650
655
|
const RadialTree = (0, _createElement.default)(RadialTreeBase, {
|
|
651
656
|
Title,
|
|
652
657
|
Radian
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RadialTree.js","names":["_core","require","_assignProps","_interopRequireDefault","_canUseDOM","_getOriginChildren","_uniqueID","_d3Transition","_react","_createElement","_Pattern","_utils","style","sstyled","insert","baseAngle","Math","PI","RadialTreeBase","Component","constructor","props","_defineProperty2","default","handleRadianClick","bind","uncontrolledProps","activeKey","runAppearAnimation","duration","uid","asProps","canUseDOM","preferReduceMotion","window","matchMedia","matches","circlesAnimation","transition","selection","selectAll","interrupt","iconsAnimation","linesAnimation","labelsAnimation","circlesNodes","nodes","iconsNodes","linesNodes","labelsNodes","length","attrs","map","node","radianIndex","Number","parseInt","dataset","lineNode","from","cx","x1","baseVal","value","cy","y1","to","attr","_","index","width","height","x","y","x2","y2","componentDidUpdate","prevProps","$rootProps","data","componentDidMount","key","event","newKey","handlers","computeTextWidth","textSize","widths","label","measureText","max","getTitleProps","size","center","getRadianProps","restRootProps","textWidth","radiansCount","onRadianClick","render","_ref","SRadialTree","Element","Children","dataHintsHandler","establishDataType","styles","createElement","cn","uniqueIDEnhancement","angleOffset","centralMargin","labelMargin","iconColor","capSize","iconSize","defaultActiveKey","RadialTreeRadian","renderRadian","getInteractiveAreaProps","xStart","yStart","xLabelCenter","yLabelCenter","computeRadianPosition","strokeWidth","getLineProps","xEnd","yEnd","transparent","resolveColor","color","stroke","getCapProps","patterns","radius","getIconProps","isActive","icon","tag","getLabelProps","labelAngle","isHorizontal","angle","getRadianKey","baseCapSize","minDemSize","min","topAngle","xCenter","yCenter","start","cos","sin","end","labelCenter","_ref2","SRadian","children","getOriginChildren","_child","mergedProps","assignProps","describeValueEntity","InteractiveArea","RadialTree","Radian","_ref3","SRadianList","SInteractiveArea","_ref4","Line","SLine","_ref5","Cap","SCap","_ref7","_ref6","patternKey","getChartDefaultColorName","getPatternSymbolSize","PatternSymbol","Icon","SIcon","_ref8","Label","SLabel","lines","String","split","linesCount","SLabelLine","angleDegs","toFixed","transformOrigin","transform","join","sstyles","sLabelStyles","textAnchor","dominantBaseline","className","lineText","lineIndex","Title","STitle","_ref9","setTitle","_default","exports"],"sources":["../../src/RadialTree.tsx"],"sourcesContent":["import { Component, sstyled, type UnknownProperties, type Intergalactic } from '@semcore/core';\nimport assignProps 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 { transition } from 'd3-transition';\nimport React from 'react';\n\nimport type { DataHintsHandler } from './a11y/hints';\nimport createElement from './createElement';\nimport { PatternSymbol, type PatternsConfig, getPatternSymbolSize } from './Pattern';\nimport style from './style/radial-tree.shadow.css';\nimport { getChartDefaultColorName, measureText } from './utils';\n\nconst baseAngle = -Math.PI / 2; // The top vertical line\n\ntype RadianData = {\n /**\n * Text label on the end of radian.\n */\n label: string;\n /**\n * Radian key. Radian, which `key` is equal to `activeKey` is displayed as active.\n */\n key: string;\n /**\n * Size of the cap (filled circle on the end of the radian).\n * @default 16\n */\n capSize?: number;\n /**\n * Icon, that displayed in the cap of the active radian (usage example `icon: UserM`).\n */\n icon?: React.FC;\n /**\n * Color of radian's line, cap and label.\n * @default #008FF8\n */\n color?: string;\n /**\n * Color of icon.\n * @default #fff\n */\n iconColor?: string;\n /**\n * Size of icon.\n * @default 16\n */\n iconSize?: number;\n};\n\n/** @deprecated */\nexport interface IRadialTreeProps extends RadialTreeProps, UnknownProperties {}\nexport type RadialTreeProps = {\n /**\n * List of radians. `{ label: string; key: string; capSize?: number; icon?: React.FC; color?: string; iconColor?: string; iconSize?: number; }`\n */\n data?: RadianData[];\n /**\n * Angel (in rads) that rotates chart. 0 means that first radian is exactly on top vertical line.\n * @default 0\n */\n angleOffset?: number;\n /**\n * Duration of appear and update animation.\n * @default 300\n */\n duration?: number;\n /**\n * Gap between the chart center and radians start point.\n * @default 50\n */\n centralMargin?: number;\n /**\n * Gap around text label.\n * @default 2\n */\n labelMargin?: number;\n /**\n * Color of all radian's line, cap and label.\n * @default #008FF8\n */\n color?: string;\n /**\n * Size of the cap (filled circle on the end of the radian).\n * @default 16\n */\n capSize?: number;\n /**\n * Icon, that displayed in the cap of the active radian (usage example `icon: UserM`).\n */\n icon?: React.FC;\n /**\n * Color of icon.\n * @default #fff\n */\n iconColor?: string;\n /**\n * Size of icon.\n * @default 16\n */\n iconSize?: number;\n /**\n * Text size in radians' labels. 1.5x is used as default text size of center text.\n * @default 14\n */\n textSize?: number;\n /**\n * Used to define the active radian in controlled way. Active radian is highlighted with inreased cap size.\n */\n activeKey?: string | null;\n /** Callback when active key changes */\n onActiveKeyChange?: (activeKey: string | null) => void;\n /**\n * Default value for `activeKey` property.\n */\n defaultActiveKey?: string | null;\n /** Enables element transparency */\n transparent?: boolean;\n};\n\ntype RootAsProps = IRadialTreeProps & {\n uid: string;\n styles: React.CSSProperties;\n activeKey: string | null;\n Children: React.FC;\n size: [width: number, height: number];\n data: RadianData[];\n duration: number;\n textSize: number;\n capSize: number;\n centralMargin: number;\n labelMargin: number;\n angleOffset: number;\n transparent: boolean;\n $rootProps: RootAsProps;\n dataHintsHandler: DataHintsHandler;\n};\n\nclass RadialTreeBase extends Component<RootAsProps, [], { activeKey: null }> {\n static displayName = 'RadialTree';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps: Partial<IRadialTreeProps> = {\n angleOffset: 0,\n duration: 300,\n centralMargin: 50,\n labelMargin: 5,\n iconColor: '#fff',\n capSize: 8,\n iconSize: 8,\n textSize: 14,\n defaultActiveKey: null,\n };\n\n Element!: React.FC<{ children?: React.ReactNode; render: string }>;\n\n constructor(props: any) {\n super(props);\n this.handleRadianClick = this.handleRadianClick.bind(this);\n }\n\n uncontrolledProps() {\n return {\n activeKey: null,\n };\n }\n\n runAppearAnimation() {\n const { duration, uid } = this.asProps;\n if (!canUseDOM()) return;\n const preferReduceMotion = window.matchMedia('(prefers-reduced-motion: reduce)')?.matches;\n\n /** using `!(>)` instead of `<=` to get true on Number.NaN and non numbers stuff */\n if (!(duration > 0)) return;\n if (preferReduceMotion) return;\n\n const circlesAnimation = transition()\n .selection()\n .selectAll(`[data-radial-animation=${uid}-cap-circle]`)\n .interrupt();\n const iconsAnimation = transition()\n .selection()\n .selectAll(`[data-radial-animation=${uid}-cap-icon]`)\n .interrupt();\n const linesAnimation = transition()\n .selection()\n .selectAll(`[data-radial-animation=${uid}-line]`)\n .interrupt();\n const labelsAnimation = transition()\n .selection()\n .selectAll(`[data-radial-animation=${uid}-label]`)\n .interrupt();\n const circlesNodes = circlesAnimation.nodes() as SVGCircleElement[];\n const iconsNodes = iconsAnimation.nodes() as SVGRectElement[];\n const linesNodes = linesAnimation.nodes() as SVGLineElement[];\n const labelsNodes = linesAnimation.nodes() as SVGTextElement[];\n\n if (circlesNodes.length > 0) {\n const attrs = circlesNodes.map((node) => {\n const radianIndex = Number.parseInt(node.dataset.radianIndex!, 10);\n const lineNode = linesNodes[radianIndex];\n return {\n from: {\n cx: lineNode.x1?.baseVal?.value,\n cy: lineNode.y1?.baseVal?.value,\n },\n to: {\n cx: node.dataset['cx'],\n cy: node.dataset['cy'],\n },\n };\n });\n\n circlesAnimation\n .attr('opacity', 0)\n .attr('cx', (_, index) => attrs[index].from?.cx)\n .attr('cy', (_, index) => attrs[index].from?.cy)\n .transition()\n .duration(duration)\n .attr('opacity', 1)\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n .attr('cx', (_, index) => attrs[index].to?.cx!)\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n .attr('cy', (_, index) => attrs[index].to?.cy!);\n }\n if (iconsNodes.length > 0) {\n const attrs = iconsNodes.map((node) => {\n const width = node.width?.baseVal?.value;\n const height = node.height?.baseVal?.value;\n const radianIndex = Number.parseInt(node.dataset.radianIndex!, 10);\n const lineNode = linesNodes[radianIndex];\n return {\n from: {\n x: lineNode.x1?.baseVal?.value - width / 2,\n y: lineNode.y1?.baseVal?.value - height / 2,\n },\n to: {\n x: node.dataset['x'],\n y: node.dataset['y'],\n },\n };\n });\n\n iconsAnimation\n .attr('opacity', 0)\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n .attr('x', (_, index) => attrs[index].from?.x!)\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n .attr('y', (_, index) => attrs[index].from?.y!)\n .transition()\n .duration(duration)\n .attr('opacity', 1)\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n .attr('x', (_, index) => attrs[index].to?.x!)\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n .attr('y', (_, index) => attrs[index].to?.y!);\n }\n if (linesNodes.length > 0) {\n const attrs = linesNodes.map((node) => {\n return {\n from: {\n x2: node.x1?.baseVal?.value,\n y2: node.y1?.baseVal?.value,\n },\n to: {\n x2: node.dataset['x2'],\n y2: node.dataset['y2'],\n },\n };\n });\n\n linesAnimation\n .attr('opacity', 0)\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n .attr('x2', (_, index) => attrs[index].from?.x2!)\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n .attr('y2', (_, index) => attrs[index].from?.y2!)\n .transition()\n .duration(duration)\n .attr('opacity', 1)\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n .attr('x2', (_, index) => attrs[index].to?.x2!)\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n .attr('y2', (_, index) => attrs[index].to?.y2!);\n }\n if (labelsNodes.length > 0) {\n labelsAnimation.attr('opacity', 0);\n labelsAnimation.transition().duration(duration).attr('opacity', 1);\n }\n }\n\n componentDidUpdate(prevProps: RootAsProps) {\n if (prevProps.$rootProps.data !== this.asProps.data) {\n this.runAppearAnimation();\n }\n }\n\n componentDidMount() {\n this.runAppearAnimation();\n }\n\n handleRadianClick(key: string) {\n return (event: React.MouseEvent) => {\n const newKey = key !== this.asProps.activeKey ? key : null;\n this.handlers.activeKey(newKey, event);\n };\n }\n\n computeTextWidth() {\n const { data, textSize } = this.asProps;\n const widths = data.map(({ label }) => measureText(label, textSize));\n\n return Math.max(...widths);\n }\n\n getTitleProps() {\n const { uid, size, textSize } = this.asProps;\n\n const [width, height] = size;\n const center = [width / 2, height / 2];\n const [x, y] = center;\n return {\n x,\n y,\n textSize: textSize * 1.5,\n ['data-radial-animation']: `${uid}-label`,\n } as IRadialTreeTitleProps;\n }\n\n getRadianProps() {\n const { data, ...restRootProps } = this.asProps;\n const textWidth = this.computeTextWidth();\n\n return {\n ...restRootProps,\n radiansCount: data.length,\n data,\n textWidth,\n onRadianClick: this.handleRadianClick,\n } as IRadialTreeRadianProps;\n }\n\n render() {\n const SRadialTree = this.Element;\n const { Children } = this.asProps;\n this.asProps.dataHintsHandler.establishDataType('values-set');\n\n return sstyled(this.asProps.styles)(\n <SRadialTree render='g'>\n <Children />\n </SRadialTree>,\n );\n }\n}\n\n/** @deprecated */\nexport interface IRadialTreeRadianProps extends RadialTreeRadianProps, UnknownProperties {}\nexport type RadialTreeRadianProps = RadialTreeProps & {\n radiansCount?: number;\n textWidth?: number;\n onRadianClick?: (key: string) => (event: React.MouseEvent) => void;\n};\n\ntype RadianAsProps = RootAsProps & {\n radiansCount: number;\n textWidth: number;\n onRadianClick: (key: string) => (event: React.MouseEvent) => void;\n};\n\nclass RadialTreeRadian extends Component<RadianAsProps> {\n static displayName = 'RadialTreeRadian';\n static style = style;\n\n static defaultProps: Partial<IRadialTreeRadianProps> = {\n centralMargin: 50,\n labelMargin: 2,\n iconColor: '#fff',\n capSize: 16,\n iconSize: 16,\n textSize: 14,\n };\n\n Element!: React.FC<{ render: string }>;\n\n constructor(props: any) {\n super(props);\n this.renderRadian = this.renderRadian.bind(this);\n }\n\n getInteractiveAreaProps({ $rootProps }: { $rootProps: IRadialTreeProps }, index: number) {\n const data = $rootProps.data?.[index];\n const { xStart, yStart, xLabelCenter, yLabelCenter, capSize } = this.computeRadianPosition(\n data!,\n index,\n );\n\n return {\n x1: xStart,\n y1: yStart,\n x2: xLabelCenter,\n y2: yLabelCenter,\n strokeWidth: capSize * 3,\n } as IRadialTreeRadianInteractiveAreaProps;\n }\n\n getLineProps({ $rootProps }: { $rootProps: IRadialTreeProps }, index: number) {\n const data = $rootProps.data?.[index];\n const { xStart, yStart, xEnd, yEnd } = this.computeRadianPosition(data!, index);\n const { uid, transparent, resolveColor } = this.asProps;\n const color = data!.color ?? this.asProps.color;\n\n return {\n x1: xStart,\n y1: yStart,\n x2: xEnd,\n y2: yEnd,\n stroke: color,\n resolveColor,\n transparent,\n ['data-x1']: xStart,\n ['data-y1']: yStart,\n ['data-x2']: xEnd,\n ['data-y2']: yEnd,\n ['data-radial-animation']: `${uid}-line`,\n ['data-radian-index']: index,\n } as IRadialTreeRadianLineProps;\n }\n\n getCapProps({ $rootProps }: { $rootProps: IRadialTreeProps }, index: number) {\n const data = $rootProps.data?.[index];\n const { xEnd, yEnd, capSize } = this.computeRadianPosition(data!, index);\n const { uid, transparent, resolveColor, patterns } = this.asProps;\n const color = data!.color ?? this.asProps.color;\n\n return {\n x: xEnd,\n y: yEnd,\n ['data-cx']: xEnd,\n ['data-cy']: yEnd,\n radius: capSize,\n color,\n resolveColor,\n transparent,\n patterns,\n uid: `${uid}-cap-${index}`,\n ['data-radial-animation']: `${uid}-cap-circle`,\n ['data-radian-index']: index,\n } as IRadialTreeRadianCapProps;\n }\n\n getIconProps({ $rootProps }: { $rootProps: IRadialTreeProps }, index: number) {\n const data = $rootProps.data?.[index];\n const { xEnd, yEnd, isActive } = this.computeRadianPosition(data!, index);\n const { uid, resolveColor } = this.asProps;\n const iconColor = data!.iconColor ?? this.asProps.iconColor;\n const iconSize = data!.iconSize ?? this.asProps.iconSize;\n const icon = data!.icon ?? this.asProps.icon;\n const x = xEnd - iconSize! / 2;\n const y = yEnd - iconSize! / 2;\n return {\n x,\n y,\n ['data-x']: x,\n ['data-y']: y,\n iconSize,\n color: iconColor ?? '#fff',\n resolveColor,\n ['data-radial-animation']: `${uid}-cap-icon`,\n ['data-radian-index']: index,\n icon,\n tag: icon,\n isActive,\n } as IRadialTreeRadianIconProps;\n }\n\n getLabelProps({ $rootProps }: { $rootProps: IRadialTreeProps }, index: number) {\n const data = $rootProps.data?.[index];\n const { xLabelCenter, yLabelCenter, labelAngle, isHorizontal } = this.computeRadianPosition(\n data!,\n index,\n );\n const { uid, textSize, transparent, resolveColor } = this.asProps;\n const { label } = data!;\n const color = data!.color ?? this.asProps.color;\n\n return {\n x: xLabelCenter,\n y: yLabelCenter,\n angle: labelAngle,\n ['data-radial-animation']: `${uid}-label`,\n ['data-radian-index']: index,\n label,\n color,\n resolveColor,\n isHorizontal,\n textSize,\n transparent,\n } as IRadialTreeRadianLabelProps;\n }\n\n getRadianKey(data: RadianData, index: number) {\n return data.key ?? `radian-${index}`;\n }\n\n computeRadianPosition(data: RadianData, index: number) {\n const { centralMargin, labelMargin, angleOffset, activeKey, size, radiansCount, textWidth } =\n this.asProps;\n const [width, height] = size;\n const key = this.getRadianKey(data, index);\n const isActive = activeKey === key;\n const baseCapSize = data.capSize ?? this.asProps.capSize;\n const capSize = baseCapSize * (isActive ? 1 : 0.5);\n\n const minDemSize = Math.min(width, height) / 2;\n const length = Math.max(\n minDemSize - textWidth - baseCapSize - centralMargin - labelMargin * 2,\n 10,\n );\n\n const angle = baseAngle + angleOffset + (index / radiansCount) * (Math.PI * 2);\n const isHorizontal =\n (angle - baseAngle > (1 / 6) * Math.PI && angle - baseAngle < (5 / 6) * Math.PI) ||\n (angle - baseAngle > (7 / 6) * Math.PI && angle - baseAngle < (11 / 6) * Math.PI);\n const topAngle = -Math.PI / 2;\n const labelAngle = ((angle - topAngle) % Math.PI) + topAngle;\n\n const center = [width / 2, height / 2];\n const [xCenter, yCenter] = center;\n const start = [\n xCenter + Math.cos(angle) * centralMargin,\n yCenter + Math.sin(angle) * centralMargin,\n ];\n const end = [\n xCenter + Math.cos(angle) * (centralMargin + length),\n yCenter + Math.sin(angle) * (centralMargin + length),\n ];\n const [xStart, yStart] = start;\n const [xEnd, yEnd] = end;\n\n const labelCenter = [\n xCenter +\n Math.cos(angle) * (centralMargin + length + baseCapSize + textWidth / 2 + labelMargin),\n yCenter +\n Math.sin(angle) * (centralMargin + length + baseCapSize + textWidth / 2 + labelMargin),\n ];\n const [xLabelCenter, yLabelCenter] = labelCenter;\n\n return {\n xStart,\n yStart,\n xEnd,\n yEnd,\n xLabelCenter,\n yLabelCenter,\n labelAngle,\n isHorizontal,\n capSize,\n isActive,\n };\n }\n\n renderRadian(data: RadianData, index: number) {\n const { styles, Children, onRadianClick } = this.asProps;\n const key = this.getRadianKey(data, index);\n const SRadian = 'g';\n\n let children = getOriginChildren(Children);\n\n if (typeof children === 'function') {\n const _child = this.asProps.children;\n const mergedProps = assignProps(children(this.asProps), this.asProps as any);\n children = mergedProps.children;\n mergedProps.children = _child;\n }\n\n this.asProps.dataHintsHandler.describeValueEntity(`${index}.${data.label}`, data.label);\n\n // hidden from publicly typed export\n const InteractiveArea = (RadialTree.Radian as any).InteractiveArea;\n\n return sstyled(styles)(\n <SRadian aria-hidden key={key} onClick={onRadianClick(key)}>\n <InteractiveArea />\n {children}\n </SRadian>,\n );\n }\n\n render() {\n const { data } = this.asProps;\n const SRadianList = 'g';\n\n return sstyled(this.asProps.styles)(\n <SRadianList>{data.map((data, index) => this.renderRadian(data, index))}</SRadianList>,\n );\n }\n}\n\n/** @deprecated */\nexport interface IRadialTreeRadianInteractiveAreaProps\n extends RadialTreeRadianInteractiveAreaProps {}\nexport type RadialTreeRadianInteractiveAreaProps = {\n x1?: number;\n y1?: number;\n x2?: number;\n y2?: number;\n strokeWidth?: number;\n};\n\ntype RadialTreeRadianInteractiveAreaAsProps = IRadialTreeRadianInteractiveAreaProps & {\n Element: React.FC<{ render: string } & React.SVGProps<any>>;\n styles: React.CSSProperties;\n};\nfunction InteractiveArea({\n Element: SInteractiveArea,\n styles,\n}: RadialTreeRadianInteractiveAreaAsProps) {\n return sstyled(styles)(\n <SInteractiveArea stroke='transparent' render='line' />,\n ) as React.ReactElement;\n}\n\n/** @deprecated */\nexport interface IRadialTreeRadianLineProps extends RadialTreeRadianLineProps, UnknownProperties {}\nexport type RadialTreeRadianLineProps = {\n x1?: number;\n y1?: number;\n x2?: number;\n y2?: number;\n stroke?: string;\n transparent?: boolean;\n ['data-radial-animation']?: `${string}-line`;\n ['data-radian-index']?: number;\n};\n\ntype RadialTreeRadianLineAsProps = IRadialTreeRadianLineProps & {\n Element: React.FC<{ render: string; transparent: boolean } & React.SVGProps<any>>;\n styles: React.CSSProperties;\n resolveColor: (color?: string) => string;\n};\nfunction Line({\n Element: SLine,\n styles,\n stroke,\n resolveColor,\n transparent,\n}: RadialTreeRadianLineAsProps) {\n return sstyled(styles)(\n <SLine render='line' stroke={resolveColor(stroke)} transparent={transparent!} />,\n ) as React.ReactElement;\n}\n\n/** @deprecated */\nexport interface IRadialTreeRadianCapProps extends RadialTreeRadianCapProps, UnknownProperties {}\nexport type RadialTreeRadianCapProps = {\n x?: number;\n y?: number;\n radius?: number;\n color?: string;\n transparent?: boolean;\n ['data-radial-animation']?: `${string}-cap-circle`;\n ['data-radian-index']?: number;\n /** Enables charts patterns that enhances charts accessibility */\n patterns?: PatternsConfig;\n};\n\ntype RadialTreeRadianCapAsProps = RadialTreeRadianCapProps & {\n Element: React.FC<\n {\n render: React.FC<any> | string;\n transparent: boolean;\n patternKey?: string;\n pattern?: boolean;\n } & React.SVGProps<any>\n >;\n styles: React.CSSProperties;\n resolveColor: (color?: string) => string;\n};\nfunction Cap({\n Element: SCap,\n styles,\n x = 0,\n y = 0,\n radius,\n color,\n resolveColor,\n transparent,\n patterns,\n}: RadialTreeRadianCapAsProps) {\n if (!patterns) {\n return sstyled(styles)(\n <SCap\n render='circle'\n cx={x}\n cy={y}\n r={radius}\n fill={resolveColor(color)}\n transparent={transparent!}\n />,\n ) as React.ReactElement;\n }\n\n const patternKey = color || getChartDefaultColorName(0);\n const [width, height] = getPatternSymbolSize({\n patternKey,\n patterns,\n });\n\n return sstyled(styles)(\n <SCap\n render={PatternSymbol}\n patternKey={color}\n x={x - (width || 0) / 2}\n y={y - (height || 0) / 2}\n fill={resolveColor(color)}\n transparent={transparent!}\n pattern\n />,\n ) as React.ReactElement;\n}\n\n/** @deprecated */\nexport interface IRadialTreeRadianIconProps extends RadialTreeRadianIconProps, UnknownProperties {}\nexport type RadialTreeRadianIconProps = {\n x?: number;\n y?: number;\n iconSize?: number;\n color?: string;\n ['data-radial-animation']?: `${string}-cap-icon`;\n ['data-radian-index']?: number;\n isActive?: boolean;\n transparent?: boolean;\n};\n\ntype RadialTreeRadianIconAsProps = IRadialTreeRadianIconProps & {\n Element: React.FC<{ render: string | React.FC; transparent: boolean } & React.SVGProps<any>>;\n x: number;\n y: number;\n iconSize: number;\n styles: React.CSSProperties;\n tag?: React.FC;\n};\nfunction Icon({\n Element: SIcon,\n styles,\n isActive,\n tag,\n x,\n y,\n iconSize,\n transparent,\n}: RadialTreeRadianIconAsProps) {\n if (!(isActive && tag)) return null;\n const width = iconSize;\n const height = iconSize;\n return sstyled(styles)(\n <SIcon x={x} y={y} width={width} height={height} render={tag} transparent={transparent!} />,\n ) as React.ReactElement;\n}\n\n/** @deprecated */\nexport interface IRadialTreeRadianLabelProps\n extends RadialTreeRadianLabelProps,\n UnknownProperties {}\nexport type RadialTreeRadianLabelProps = {\n x?: number;\n y?: number;\n color?: string;\n textSize?: number;\n ['data-radial-animation']?: `${string}-label`;\n ['data-radian-index']?: number;\n label?: string;\n isHorizontal?: boolean;\n angle?: number;\n transparent?: boolean;\n};\n\ntype RadialTreeRadianLabelAsProps = IRadialTreeRadianLabelProps & {\n Element: React.FC<{ render: string } & React.SVGProps<any>>;\n Children: React.FC;\n styles: React.CSSProperties;\n x: number;\n y: number;\n angle: number;\n textSize: number;\n resolveColor: (color?: string) => string;\n};\nfunction Label({\n Element: SLabel,\n Children,\n styles,\n label,\n color,\n resolveColor,\n isHorizontal,\n x,\n y,\n textSize,\n angle,\n transparent,\n}: RadialTreeRadianLabelAsProps) {\n const lines = String(label).split('\\n');\n const linesCount = lines.length;\n const SLabelLine = 'tspan';\n\n const angleDegs = ((angle / Math.PI) * 180).toFixed(2);\n const transformOrigin = [x.toFixed(2), y.toFixed(2)];\n const transform = `rotate(${[angleDegs, ...transformOrigin].join(', ')})`;\n\n const sstyles = sstyled(styles);\n const sLabelStyles = sstyles.cn('SLabel', {\n 'color': resolveColor(color),\n 'text-cursor': isHorizontal ? 'text' : 'vertical-text',\n transparent,\n });\n\n return (\n <SLabel\n aria-hidden\n render='text'\n textAnchor='middle'\n dominantBaseline='central'\n className={sLabelStyles.className}\n style={sLabelStyles.style}\n x={x.toFixed(2)}\n y={y.toFixed(2)}\n transform={transform}\n >\n {lines.map((lineText, lineIndex) => (\n <SLabelLine\n x={x}\n y={y + (lineIndex - (linesCount - 1) / 2) * textSize}\n key={`#${lineIndex}-${lineText}`}\n >\n {lineText}\n </SLabelLine>\n ))}\n <Children />\n </SLabel>\n ) as React.ReactElement;\n}\n\nconst Radian = createElement(RadialTreeRadian, {\n InteractiveArea,\n Line,\n Cap,\n Icon,\n Label,\n});\n\n/** @deprecated */\nexport interface IRadialTreeTitleProps extends RadialTreeTitleProps, UnknownProperties {}\nexport type RadialTreeTitleProps = {\n x?: number;\n y?: number;\n textSize?: number;\n ['data-radial-animation']?: `${string}-label`;\n color?: string;\n};\n\ntype RadialTreeTitleAsProps = IRadialTreeTitleProps & {\n Element: React.FC<{ render: string } & React.SVGProps<any>>;\n Children: React.FC;\n children: React.ReactNode;\n styles: React.CSSProperties;\n dataHintsHandler: DataHintsHandler;\n resolveColor: (color?: string) => string;\n};\nfunction Title({\n Element: STitle,\n Children,\n children,\n styles,\n textSize,\n color,\n resolveColor,\n x,\n y,\n dataHintsHandler,\n}: RadialTreeTitleAsProps) {\n if (typeof children === 'string') {\n dataHintsHandler.setTitle('vertical', children);\n }\n return sstyled(styles)(\n <STitle\n aria-hidden\n render='text'\n textAnchor='middle'\n dominantBaseline='central'\n fontSize={textSize}\n fill={resolveColor(color)}\n x={x}\n y={y}\n >\n <Children />\n </STitle>,\n ) as React.ReactElement;\n}\n\ntype IntergalacticD3Component<BaseTag extends Intergalactic.Tag, Props, Context = {}> = (<\n Tag extends Intergalactic.Tag = Intergalactic.Tag,\n>(\n props: Intergalactic.InternalTypings.PropsRenderingResultComponentProps<Tag, Props, Context>,\n) => Intergalactic.InternalTypings.ComponentRenderingResults) &\nIntergalactic.InternalTypings.ComponentAdditive<BaseTag, BaseTag, Props>;\n\nconst RadialTree = createElement(RadialTreeBase, { Title, Radian }) as IntergalacticD3Component<\n 'g',\n RadialTreeProps\n> & {\n Title: IntergalacticD3Component<'text', RadialTreeTitleProps>;\n Radian: IntergalacticD3Component<'g', RadialTreeRadianProps> & {\n Line: IntergalacticD3Component<'line', RadialTreeRadianLineProps>;\n Cap: IntergalacticD3Component<'circle', RadialTreeRadianCapProps>;\n Icon: IntergalacticD3Component<'g', RadialTreeRadianIconProps>;\n Label: IntergalacticD3Component<'text', RadialTreeRadianLabelProps>;\n };\n};\n\nexport default RadialTree;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"RadialTree.js","names":["_core","require","_assignProps","_interopRequireDefault","_canUseDOM","_getOriginChildren","_uniqueID","_d3Transition","_react","_createElement","_Pattern","_utils","style","sstyled","insert","baseAngle","Math","PI","RadialTreeBase","Component","constructor","props","_defineProperty2","default","handleRadianClick","bind","uncontrolledProps","activeKey","runAppearAnimation","duration","uid","asProps","canUseDOM","preferReduceMotion","window","matchMedia","matches","circlesAnimation","transition","selection","selectAll","interrupt","iconsAnimation","linesAnimation","labelsAnimation","circlesNodes","nodes","iconsNodes","linesNodes","labelsNodes","length","attrs","map","node","radianIndex","Number","parseInt","dataset","lineNode","from","cx","x1","baseVal","value","cy","y1","to","attr","_","index","width","height","x","y","x2","y2","componentDidUpdate","prevProps","$rootProps","data","componentDidMount","key","event","newKey","handlers","computeTextWidth","textSize","widths","label","measureText","max","getTitleProps","size","center","getRadianProps","restRootProps","textWidth","radiansCount","onRadianClick","render","_ref","SRadialTree","Element","Children","dataHintsHandler","establishDataType","styles","createElement","cn","uniqueIDEnhancement","angleOffset","centralMargin","labelMargin","iconColor","capSize","iconSize","defaultActiveKey","RadialTreeRadian","renderRadian","getInteractiveAreaProps","xStart","yStart","xLabelCenter","yLabelCenter","computeRadianPosition","strokeWidth","getLineProps","xEnd","yEnd","transparent","resolveColor","color","stroke","getCapProps","patterns","radius","getIconProps","isActive","icon","tag","getLabelProps","labelAngle","isHorizontal","angle","getRadianKey","baseCapSize","minDemSize","min","topAngle","xCenter","yCenter","start","cos","sin","end","labelCenter","_ref2","SRadian","children","getOriginChildren","_child","mergedProps","assignProps","describeValueEntity","InteractiveArea","RadialTree","Radian","_ref3","SRadianList","SInteractiveArea","_ref4","Line","SLine","_ref5","Cap","SCap","_ref7","_ref6","patternKey","getChartDefaultColorName","getPatternSymbolSize","PatternSymbol","Icon","SIcon","_ref8","Label","SLabel","lines","String","split","linesCount","SLabelLine","angleDegs","toFixed","transformOrigin","transform","join","sstyles","sLabelStyles","textAnchor","dominantBaseline","className","lineText","lineIndex","Title","STitle","_ref9","setTitle","_default","exports"],"sources":["../../src/RadialTree.tsx"],"sourcesContent":["import { Component, sstyled, type UnknownProperties, type Intergalactic } from '@semcore/core';\nimport assignProps 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 { transition } from 'd3-transition';\nimport React from 'react';\n\nimport type { DataHintsHandler } from './a11y/hints';\nimport createElement from './createElement';\nimport { PatternSymbol, type PatternsConfig, getPatternSymbolSize } from './Pattern';\nimport style from './style/radial-tree.shadow.css';\nimport { getChartDefaultColorName, measureText } from './utils';\n\nconst baseAngle = -Math.PI / 2; // The top vertical line\n\ntype RadianData = {\n /**\n * Text label on the end of radian.\n */\n label: string;\n /**\n * Radian key. Radian, which `key` is equal to `activeKey` is displayed as active.\n */\n key: string;\n /**\n * Size of the cap (filled circle on the end of the radian).\n * @default 16\n */\n capSize?: number;\n /**\n * Icon, that displayed in the cap of the active radian (usage example `icon: UserM`).\n */\n icon?: React.FC;\n /**\n * Color of radian's line, cap and label.\n * @default #008FF8\n */\n color?: string;\n /**\n * Color of icon.\n * @default #fff\n */\n iconColor?: string;\n /**\n * Size of icon.\n * @default 16\n */\n iconSize?: number;\n};\n\n/** @deprecated */\nexport interface IRadialTreeProps extends RadialTreeProps, UnknownProperties {}\nexport type RadialTreeProps = {\n /**\n * List of radians. `{ label: string; key: string; capSize?: number; icon?: React.FC; color?: string; iconColor?: string; iconSize?: number; }`\n */\n data?: RadianData[];\n /**\n * Angel (in rads) that rotates chart. 0 means that first radian is exactly on top vertical line.\n * @default 0\n */\n angleOffset?: number;\n /**\n * Duration of appear and update animation.\n * @default 300\n */\n duration?: number;\n /**\n * Gap between the chart center and radians start point.\n * @default 50\n */\n centralMargin?: number;\n /**\n * Gap around text label.\n * @default 2\n */\n labelMargin?: number;\n /**\n * Color of all radian's line, cap and label.\n * @default #008FF8\n */\n color?: string;\n /**\n * Size of the cap (filled circle on the end of the radian).\n * @default 16\n */\n capSize?: number;\n /**\n * Icon, that displayed in the cap of the active radian (usage example `icon: UserM`).\n */\n icon?: React.FC;\n /**\n * Color of icon.\n * @default #fff\n */\n iconColor?: string;\n /**\n * Size of icon.\n * @default 16\n */\n iconSize?: number;\n /**\n * Text size in radians' labels. 1.5x is used as default text size of center text.\n * @default 14\n */\n textSize?: number;\n /**\n * Used to define the active radian in controlled way. Active radian is highlighted with inreased cap size.\n */\n activeKey?: string | null;\n /** Callback when active key changes */\n onActiveKeyChange?: (activeKey: string | null) => void;\n /**\n * Default value for `activeKey` property.\n */\n defaultActiveKey?: string | null;\n /** Enables element transparency */\n transparent?: boolean;\n};\n\ntype RootAsProps = IRadialTreeProps & {\n uid: string;\n styles: React.CSSProperties;\n activeKey: string | null;\n Children: React.FC;\n size: [width: number, height: number];\n data: RadianData[];\n duration: number;\n textSize: number;\n capSize: number;\n centralMargin: number;\n labelMargin: number;\n angleOffset: number;\n transparent: boolean;\n $rootProps: RootAsProps;\n dataHintsHandler: DataHintsHandler;\n};\n\nclass RadialTreeBase extends Component<RootAsProps, [], { activeKey: null }> {\n static displayName = 'RadialTree';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps: Partial<IRadialTreeProps> = {\n angleOffset: 0,\n duration: 300,\n centralMargin: 50,\n labelMargin: 5,\n iconColor: '#fff',\n capSize: 8,\n iconSize: 8,\n textSize: 14,\n defaultActiveKey: null,\n };\n\n Element!: React.FC<{ children?: React.ReactNode; render: string }>;\n\n constructor(props: any) {\n super(props);\n this.handleRadianClick = this.handleRadianClick.bind(this);\n }\n\n uncontrolledProps() {\n return {\n activeKey: null,\n };\n }\n\n runAppearAnimation() {\n const { duration, uid } = this.asProps;\n if (!canUseDOM()) return;\n const preferReduceMotion = window.matchMedia('(prefers-reduced-motion: reduce)')?.matches;\n\n /** using `!(>)` instead of `<=` to get true on Number.NaN and non numbers stuff */\n if (!(duration > 0)) return;\n if (preferReduceMotion) return;\n\n const circlesAnimation = transition()\n .selection()\n .selectAll(`[data-radial-animation=${uid}-cap-circle]`)\n .interrupt();\n const iconsAnimation = transition()\n .selection()\n .selectAll(`[data-radial-animation=${uid}-cap-icon]`)\n .interrupt();\n const linesAnimation = transition()\n .selection()\n .selectAll(`[data-radial-animation=${uid}-line]`)\n .interrupt();\n const labelsAnimation = transition()\n .selection()\n .selectAll(`[data-radial-animation=${uid}-label]`)\n .interrupt();\n const circlesNodes = circlesAnimation.nodes() as SVGCircleElement[];\n const iconsNodes = iconsAnimation.nodes() as SVGRectElement[];\n const linesNodes = linesAnimation.nodes() as SVGLineElement[];\n const labelsNodes = linesAnimation.nodes() as SVGTextElement[];\n\n if (circlesNodes.length > 0) {\n const attrs = circlesNodes.map((node) => {\n const radianIndex = Number.parseInt(node.dataset.radianIndex!, 10);\n const lineNode = linesNodes[radianIndex];\n return {\n from: {\n cx: lineNode.x1?.baseVal?.value,\n cy: lineNode.y1?.baseVal?.value,\n },\n to: {\n cx: node.dataset['cx'],\n cy: node.dataset['cy'],\n },\n };\n });\n\n circlesAnimation\n .attr('opacity', 0)\n .attr('cx', (_, index) => attrs[index].from?.cx)\n .attr('cy', (_, index) => attrs[index].from?.cy)\n .transition()\n .duration(duration)\n .attr('opacity', 1)\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n .attr('cx', (_, index) => attrs[index].to?.cx!)\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n .attr('cy', (_, index) => attrs[index].to?.cy!);\n }\n if (iconsNodes.length > 0) {\n const attrs = iconsNodes.map((node) => {\n const width = node.width?.baseVal?.value;\n const height = node.height?.baseVal?.value;\n const radianIndex = Number.parseInt(node.dataset.radianIndex!, 10);\n const lineNode = linesNodes[radianIndex];\n return {\n from: {\n x: lineNode.x1?.baseVal?.value - width / 2,\n y: lineNode.y1?.baseVal?.value - height / 2,\n },\n to: {\n x: node.dataset['x'],\n y: node.dataset['y'],\n },\n };\n });\n\n iconsAnimation\n .attr('opacity', 0)\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n .attr('x', (_, index) => attrs[index].from?.x!)\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n .attr('y', (_, index) => attrs[index].from?.y!)\n .transition()\n .duration(duration)\n .attr('opacity', 1)\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n .attr('x', (_, index) => attrs[index].to?.x!)\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n .attr('y', (_, index) => attrs[index].to?.y!);\n }\n if (linesNodes.length > 0) {\n const attrs = linesNodes.map((node) => {\n return {\n from: {\n x2: node.x1?.baseVal?.value,\n y2: node.y1?.baseVal?.value,\n },\n to: {\n x2: node.dataset['x2'],\n y2: node.dataset['y2'],\n },\n };\n });\n\n linesAnimation\n .attr('opacity', 0)\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n .attr('x2', (_, index) => attrs[index].from?.x2!)\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n .attr('y2', (_, index) => attrs[index].from?.y2!)\n .transition()\n .duration(duration)\n .attr('opacity', 1)\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n .attr('x2', (_, index) => attrs[index].to?.x2!)\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n .attr('y2', (_, index) => attrs[index].to?.y2!);\n }\n if (labelsNodes.length > 0) {\n labelsAnimation.attr('opacity', 0);\n labelsAnimation.transition().duration(duration).attr('opacity', 1);\n }\n }\n\n componentDidUpdate(prevProps: RootAsProps) {\n if (prevProps.$rootProps.data !== this.asProps.data) {\n this.runAppearAnimation();\n }\n }\n\n componentDidMount() {\n this.runAppearAnimation();\n }\n\n handleRadianClick(key: string) {\n return (event: React.MouseEvent) => {\n const newKey = key !== this.asProps.activeKey ? key : null;\n this.handlers.activeKey(newKey, event);\n };\n }\n\n computeTextWidth() {\n const { data, textSize } = this.asProps;\n const widths = data.map(({ label }) => measureText(label, textSize));\n\n return Math.max(...widths);\n }\n\n getTitleProps() {\n const { uid, size, textSize } = this.asProps;\n\n const [width, height] = size;\n const center = [width / 2, height / 2];\n const [x, y] = center;\n return {\n x,\n y,\n textSize: textSize * 1.5,\n ['data-radial-animation']: `${uid}-label`,\n } as IRadialTreeTitleProps;\n }\n\n getRadianProps() {\n const { data, ...restRootProps } = this.asProps;\n const textWidth = this.computeTextWidth();\n\n return {\n ...restRootProps,\n radiansCount: data.length,\n data,\n textWidth,\n onRadianClick: this.handleRadianClick,\n } as IRadialTreeRadianProps;\n }\n\n render() {\n const SRadialTree = this.Element;\n const { Children } = this.asProps;\n this.asProps.dataHintsHandler.establishDataType('values-set');\n\n return sstyled(this.asProps.styles)(\n <SRadialTree render='g'>\n <Children />\n </SRadialTree>,\n );\n }\n}\n\n/** @deprecated */\nexport interface IRadialTreeRadianProps extends RadialTreeRadianProps, UnknownProperties {}\nexport type RadialTreeRadianProps = RadialTreeProps & {\n radiansCount?: number;\n textWidth?: number;\n onRadianClick?: (key: string) => (event: React.MouseEvent) => void;\n};\n\ntype RadianAsProps = RootAsProps & {\n radiansCount: number;\n textWidth: number;\n onRadianClick: (key: string) => (event: React.MouseEvent) => void;\n};\n\nclass RadialTreeRadian extends Component<RadianAsProps> {\n static displayName = 'RadialTreeRadian';\n static style = style;\n\n static defaultProps: Partial<IRadialTreeRadianProps> = {\n centralMargin: 50,\n labelMargin: 2,\n iconColor: '#fff',\n capSize: 16,\n iconSize: 16,\n textSize: 14,\n };\n\n Element!: React.FC<{ render: string }>;\n\n constructor(props: any) {\n super(props);\n this.renderRadian = this.renderRadian.bind(this);\n }\n\n getInteractiveAreaProps({ $rootProps }: { $rootProps: IRadialTreeProps }, index: number) {\n const data = $rootProps.data?.[index];\n const { xStart, yStart, xLabelCenter, yLabelCenter, capSize } = this.computeRadianPosition(\n data!,\n index,\n );\n\n return {\n x1: xStart,\n y1: yStart,\n x2: xLabelCenter,\n y2: yLabelCenter,\n strokeWidth: capSize * 3,\n } as IRadialTreeRadianInteractiveAreaProps;\n }\n\n getLineProps({ $rootProps }: { $rootProps: IRadialTreeProps }, index: number) {\n const data = $rootProps.data?.[index];\n const { xStart, yStart, xEnd, yEnd } = this.computeRadianPosition(data!, index);\n const { uid, transparent, resolveColor } = this.asProps;\n const color = data!.color ?? this.asProps.color;\n\n return {\n x1: xStart,\n y1: yStart,\n x2: xEnd,\n y2: yEnd,\n stroke: color,\n resolveColor,\n transparent,\n ['data-x1']: xStart,\n ['data-y1']: yStart,\n ['data-x2']: xEnd,\n ['data-y2']: yEnd,\n ['data-radial-animation']: `${uid}-line`,\n ['data-radian-index']: index,\n } as IRadialTreeRadianLineProps;\n }\n\n getCapProps({ $rootProps }: { $rootProps: IRadialTreeProps }, index: number) {\n const data = $rootProps.data?.[index];\n const { xEnd, yEnd, capSize } = this.computeRadianPosition(data!, index);\n const { uid, transparent, resolveColor, patterns } = this.asProps;\n const color = data!.color ?? this.asProps.color;\n\n return {\n x: xEnd,\n y: yEnd,\n ['data-cx']: xEnd,\n ['data-cy']: yEnd,\n radius: capSize,\n color,\n resolveColor,\n transparent,\n patterns,\n uid: `${uid}-cap-${index}`,\n ['data-radial-animation']: `${uid}-cap-circle`,\n ['data-radian-index']: index,\n } as IRadialTreeRadianCapProps;\n }\n\n getIconProps({ $rootProps }: { $rootProps: IRadialTreeProps }, index: number) {\n const data = $rootProps.data?.[index];\n const { xEnd, yEnd, isActive } = this.computeRadianPosition(data!, index);\n const { uid, resolveColor } = this.asProps;\n const iconColor = data!.iconColor ?? this.asProps.iconColor;\n const iconSize = data!.iconSize ?? this.asProps.iconSize;\n const icon = data!.icon ?? this.asProps.icon;\n const x = xEnd - iconSize! / 2;\n const y = yEnd - iconSize! / 2;\n return {\n x,\n y,\n ['data-x']: x,\n ['data-y']: y,\n iconSize,\n color: iconColor ?? '#fff',\n resolveColor,\n ['data-radial-animation']: `${uid}-cap-icon`,\n ['data-radian-index']: index,\n icon,\n tag: icon,\n isActive,\n } as IRadialTreeRadianIconProps;\n }\n\n getLabelProps({ $rootProps }: { $rootProps: IRadialTreeProps }, index: number) {\n const data = $rootProps.data?.[index];\n const { xLabelCenter, yLabelCenter, labelAngle, isHorizontal } = this.computeRadianPosition(\n data!,\n index,\n );\n const { uid, textSize, transparent, resolveColor } = this.asProps;\n const { label } = data!;\n const color = data!.color ?? this.asProps.color;\n\n return {\n x: xLabelCenter,\n y: yLabelCenter,\n angle: labelAngle,\n ['data-radial-animation']: `${uid}-label`,\n ['data-radian-index']: index,\n label,\n color,\n resolveColor,\n isHorizontal,\n textSize,\n transparent,\n } as IRadialTreeRadianLabelProps;\n }\n\n getRadianKey(data: RadianData, index: number) {\n return data.key ?? `radian-${index}`;\n }\n\n computeRadianPosition(data: RadianData, index: number) {\n const { centralMargin, labelMargin, angleOffset, activeKey, size, radiansCount, textWidth } =\n this.asProps;\n const [width, height] = size;\n const key = this.getRadianKey(data, index);\n const isActive = activeKey === key;\n const baseCapSize = data.capSize ?? this.asProps.capSize;\n const capSize = baseCapSize * (isActive ? 1 : 0.5);\n\n const minDemSize = Math.min(width, height) / 2;\n const length = Math.max(\n minDemSize - textWidth - baseCapSize - centralMargin - labelMargin * 2,\n 10,\n );\n\n const angle = baseAngle + angleOffset + (index / radiansCount) * (Math.PI * 2);\n const isHorizontal =\n (angle - baseAngle > (1 / 6) * Math.PI && angle - baseAngle < (5 / 6) * Math.PI) ||\n (angle - baseAngle > (7 / 6) * Math.PI && angle - baseAngle < (11 / 6) * Math.PI);\n const topAngle = -Math.PI / 2;\n const labelAngle = ((angle - topAngle) % Math.PI) + topAngle;\n\n const center = [width / 2, height / 2];\n const [xCenter, yCenter] = center;\n const start = [\n xCenter + Math.cos(angle) * centralMargin,\n yCenter + Math.sin(angle) * centralMargin,\n ];\n const end = [\n xCenter + Math.cos(angle) * (centralMargin + length),\n yCenter + Math.sin(angle) * (centralMargin + length),\n ];\n const [xStart, yStart] = start;\n const [xEnd, yEnd] = end;\n\n const labelCenter = [\n xCenter +\n Math.cos(angle) * (centralMargin + length + baseCapSize + textWidth / 2 + labelMargin),\n yCenter +\n Math.sin(angle) * (centralMargin + length + baseCapSize + textWidth / 2 + labelMargin),\n ];\n const [xLabelCenter, yLabelCenter] = labelCenter;\n\n return {\n xStart,\n yStart,\n xEnd,\n yEnd,\n xLabelCenter,\n yLabelCenter,\n labelAngle,\n isHorizontal,\n capSize,\n isActive,\n };\n }\n\n renderRadian(data: RadianData, index: number) {\n const { styles, Children, onRadianClick } = this.asProps;\n const key = this.getRadianKey(data, index);\n const SRadian = 'g';\n\n let children = getOriginChildren(Children);\n\n if (typeof children === 'function') {\n const _child = this.asProps.children;\n const mergedProps = assignProps(children(this.asProps), this.asProps as any);\n children = mergedProps.children;\n mergedProps.children = _child;\n }\n\n this.asProps.dataHintsHandler.describeValueEntity(`${index}.${data.label}`, data.label);\n\n // hidden from publicly typed export\n const InteractiveArea = (RadialTree.Radian as any).InteractiveArea;\n\n return sstyled(styles)(\n <SRadian aria-hidden key={key} onClick={onRadianClick(key)}>\n <InteractiveArea />\n {children}\n </SRadian>,\n );\n }\n\n render() {\n const { data } = this.asProps;\n const SRadianList = 'g';\n\n return sstyled(this.asProps.styles)(\n <SRadianList>{data.map((data, index) => this.renderRadian(data, index))}</SRadianList>,\n );\n }\n}\n\n/** @deprecated */\nexport interface IRadialTreeRadianInteractiveAreaProps\n extends RadialTreeRadianInteractiveAreaProps {}\nexport type RadialTreeRadianInteractiveAreaProps = {\n x1?: number;\n y1?: number;\n x2?: number;\n y2?: number;\n strokeWidth?: number;\n};\n\ntype RadialTreeRadianInteractiveAreaAsProps = IRadialTreeRadianInteractiveAreaProps & {\n Element: React.FC<{ render: string } & React.SVGProps<any>>;\n styles: React.CSSProperties;\n};\nfunction InteractiveArea({\n Element: SInteractiveArea,\n styles,\n}: RadialTreeRadianInteractiveAreaAsProps) {\n return sstyled(styles)(\n <SInteractiveArea stroke='transparent' render='line' />,\n ) as React.ReactElement;\n}\n\n/** @deprecated */\nexport interface IRadialTreeRadianLineProps extends RadialTreeRadianLineProps, UnknownProperties {}\nexport type RadialTreeRadianLineProps = {\n x1?: number;\n y1?: number;\n x2?: number;\n y2?: number;\n stroke?: string;\n transparent?: boolean;\n ['data-radial-animation']?: `${string}-line`;\n ['data-radian-index']?: number;\n};\n\ntype RadialTreeRadianLineAsProps = IRadialTreeRadianLineProps & {\n Element: React.FC<{ render: string; transparent: boolean } & React.SVGProps<any>>;\n styles: React.CSSProperties;\n resolveColor: (color?: string) => string;\n};\nfunction Line({\n Element: SLine,\n styles,\n stroke,\n resolveColor,\n transparent,\n}: RadialTreeRadianLineAsProps) {\n return sstyled(styles)(\n <SLine render='line' stroke={resolveColor(stroke)} transparent={transparent!} />,\n ) as React.ReactElement;\n}\n\n/** @deprecated */\nexport interface IRadialTreeRadianCapProps extends RadialTreeRadianCapProps, UnknownProperties {}\nexport type RadialTreeRadianCapProps = {\n x?: number;\n y?: number;\n radius?: number;\n color?: string;\n transparent?: boolean;\n ['data-radial-animation']?: `${string}-cap-circle`;\n ['data-radian-index']?: number;\n /** Enables charts patterns that enhances charts accessibility */\n patterns?: PatternsConfig;\n};\n\ntype RadialTreeRadianCapAsProps = RadialTreeRadianCapProps & {\n Element: React.FC<\n {\n render: React.FC<any> | string;\n transparent: boolean;\n patternKey?: string;\n pattern?: boolean;\n } & React.SVGProps<any>\n >;\n styles: React.CSSProperties;\n resolveColor: (color?: string) => string;\n};\nfunction Cap({\n Element: SCap,\n styles,\n x = 0,\n y = 0,\n radius,\n color,\n resolveColor,\n transparent,\n patterns,\n}: RadialTreeRadianCapAsProps) {\n if (!patterns) {\n return sstyled(styles)(\n <SCap\n render='circle'\n cx={x}\n cy={y}\n r={radius}\n fill={resolveColor(color)}\n transparent={transparent!}\n />,\n ) as React.ReactElement;\n }\n\n const patternKey = color || getChartDefaultColorName(0);\n const [width, height] = getPatternSymbolSize({\n patternKey,\n patterns,\n });\n\n return sstyled(styles)(\n <SCap\n render={PatternSymbol}\n patternKey={color}\n x={x - (width || 0) / 2}\n y={y - (height || 0) / 2}\n fill={resolveColor(color)}\n transparent={transparent!}\n pattern\n />,\n ) as React.ReactElement;\n}\n\n/** @deprecated */\nexport interface IRadialTreeRadianIconProps extends RadialTreeRadianIconProps, UnknownProperties {}\nexport type RadialTreeRadianIconProps = {\n x?: number;\n y?: number;\n iconSize?: number;\n color?: string;\n ['data-radial-animation']?: `${string}-cap-icon`;\n ['data-radian-index']?: number;\n isActive?: boolean;\n transparent?: boolean;\n};\n\ntype RadialTreeRadianIconAsProps = IRadialTreeRadianIconProps & {\n Element: React.FC<{ render: string | React.FC; transparent: boolean } & React.SVGProps<any>>;\n x: number;\n y: number;\n iconSize: number;\n styles: React.CSSProperties;\n tag?: React.FC;\n};\nfunction Icon({\n Element: SIcon,\n styles,\n isActive,\n tag,\n x,\n y,\n iconSize,\n transparent,\n}: RadialTreeRadianIconAsProps) {\n if (!(isActive && tag)) return null;\n const width = iconSize;\n const height = iconSize;\n return sstyled(styles)(\n <SIcon x={x} y={y} width={width} height={height} render={tag} transparent={transparent!} />,\n ) as React.ReactElement;\n}\n\n/** @deprecated */\nexport interface IRadialTreeRadianLabelProps\n extends RadialTreeRadianLabelProps,\n UnknownProperties {}\nexport type RadialTreeRadianLabelProps = {\n x?: number;\n y?: number;\n color?: string;\n textSize?: number;\n ['data-radial-animation']?: `${string}-label`;\n ['data-radian-index']?: number;\n label?: string;\n isHorizontal?: boolean;\n angle?: number;\n transparent?: boolean;\n};\n\ntype RadialTreeRadianLabelAsProps = IRadialTreeRadianLabelProps & {\n Element: React.FC<{ render: string } & React.SVGProps<any>>;\n Children: React.FC;\n styles: React.CSSProperties;\n x: number;\n y: number;\n angle: number;\n textSize: number;\n resolveColor: (color?: string) => string;\n};\nfunction Label({\n Element: SLabel,\n Children,\n styles,\n label,\n color,\n resolveColor,\n isHorizontal,\n x,\n y,\n textSize,\n angle,\n transparent,\n}: RadialTreeRadianLabelAsProps) {\n const lines = String(label).split('\\n');\n const linesCount = lines.length;\n const SLabelLine = 'tspan';\n\n const angleDegs = ((angle / Math.PI) * 180).toFixed(2);\n const transformOrigin = [x.toFixed(2), y.toFixed(2)];\n const transform = `rotate(${[angleDegs, ...transformOrigin].join(', ')})`;\n\n const sstyles = sstyled(styles);\n const sLabelStyles = sstyles.cn('SLabel', {\n 'color': resolveColor(color),\n 'text-cursor': isHorizontal ? 'text' : 'vertical-text',\n transparent,\n });\n\n return (\n <SLabel\n aria-hidden\n render='text'\n textAnchor='middle'\n dominantBaseline='central'\n className={sLabelStyles.className}\n style={sLabelStyles.style}\n x={x.toFixed(2)}\n y={y.toFixed(2)}\n transform={transform}\n >\n {lines.map((lineText, lineIndex) => (\n <SLabelLine\n x={x}\n y={y + (lineIndex - (linesCount - 1) / 2) * textSize}\n key={`#${lineIndex}-${lineText}`}\n >\n {lineText}\n </SLabelLine>\n ))}\n <Children />\n </SLabel>\n ) as React.ReactElement;\n}\n\nconst Radian = createElement(RadialTreeRadian, {\n InteractiveArea,\n Line,\n Cap,\n Icon,\n Label,\n});\n\n/** @deprecated */\nexport interface IRadialTreeTitleProps extends RadialTreeTitleProps, UnknownProperties {}\nexport type RadialTreeTitleProps = {\n x?: number;\n y?: number;\n textSize?: number;\n ['data-radial-animation']?: `${string}-label`;\n color?: string;\n};\n\ntype RadialTreeTitleAsProps = IRadialTreeTitleProps & {\n Element: React.FC<{ render: string } & React.SVGProps<any>>;\n Children: React.FC;\n children: React.ReactNode;\n styles: React.CSSProperties;\n dataHintsHandler: DataHintsHandler;\n resolveColor: (color?: string) => string;\n};\nfunction Title({\n Element: STitle,\n Children,\n children,\n styles,\n textSize,\n color,\n resolveColor,\n x,\n y,\n dataHintsHandler,\n}: RadialTreeTitleAsProps) {\n if (typeof children === 'string') {\n dataHintsHandler.setTitle('vertical', children);\n }\n return sstyled(styles)(\n <STitle\n aria-hidden\n render='text'\n textAnchor='middle'\n dominantBaseline='central'\n fontSize={textSize}\n fill={resolveColor(color)}\n x={x}\n y={y}\n >\n <Children />\n </STitle>,\n ) as React.ReactElement;\n}\n\ntype IntergalacticD3Component<BaseTag extends Intergalactic.Tag, Props, Context = {}> = (<\n Tag extends Intergalactic.Tag = Intergalactic.Tag,\n>(\n props: Intergalactic.InternalTypings.PropsRenderingResultComponentProps<Tag, Props, Context>,\n) => Intergalactic.InternalTypings.ComponentRenderingResults) &\nIntergalactic.InternalTypings.ComponentAdditive<BaseTag, BaseTag, Props>;\n\n/**\n * RadialTree\n *\n * {@link https://developer.semrush.com/intergalactic/data-display/radial-tree-chart/radial-tree-chart-api/|API} | {@link https://developer.semrush.com/intergalactic/data-display/radial-tree-chart/radial-tree-chart-code/|Examples}\n */\nconst RadialTree = createElement(RadialTreeBase, { Title, Radian }) as IntergalacticD3Component<\n 'g',\n RadialTreeProps\n> & {\n Title: IntergalacticD3Component<'text', RadialTreeTitleProps>;\n Radian: IntergalacticD3Component<'g', RadialTreeRadianProps> & {\n Line: IntergalacticD3Component<'line', RadialTreeRadianLineProps>;\n Cap: IntergalacticD3Component<'circle', RadialTreeRadianCapProps>;\n Icon: IntergalacticD3Component<'g', RadialTreeRadianIconProps>;\n Label: IntergalacticD3Component<'text', RadialTreeRadianLabelProps>;\n };\n};\n\nexport default RadialTree;\n"],"mappings":"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","ignoreList":[]}
|
package/lib/cjs/Reference.js
CHANGED
|
@@ -12,20 +12,20 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
12
12
|
var _createElement = _interopRequireDefault(require("./createElement"));
|
|
13
13
|
var _utils = require("./utils");
|
|
14
14
|
/*!__reshadow-styles__:"./style/reference.shadow.css"*/
|
|
15
|
-
const style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".
|
|
15
|
+
const style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SReferenceLine_1j9xa_gg_{fill:none;stroke:var(--intergalactic-chart-grid-y-accent-hover-line,#d6d8d7)}.___STitle_1j9xa_gg_{font-size:var(--intergalactic-fs-100,12px);fill:var(--intergalactic-chart-grid-text-label,#00030095);transform-origin:var(--transform-origin_1j9xa)}@supports (color:color(display-p3 0 0 0%)){.___STitle_1j9xa_gg_{fill:var(--intergalactic-chart-grid-text-label,#00030095)}@media (color-gamut:p3){.___STitle_1j9xa_gg_{fill:var(--intergalactic-chart-grid-text-label,color(display-p3 .00228 .01289 .00252/.583))}}}.___STitle_1j9xa_gg_._position_top_1j9xa_gg_{text-anchor:middle}.___STitle_1j9xa_gg_._position_bottom_1j9xa_gg_{text-anchor:middle;dominant-baseline:hanging}.___STitle_1j9xa_gg_._position_left_1j9xa_gg_,.___STitle_1j9xa_gg_._position_right_1j9xa_gg_{transform:rotate(-90deg);dominant-baseline:middle;text-anchor:middle}.___SBackground_1j9xa_gg_{fill:var(--intergalactic-chart-grid-period-bg,#f1f2f2)}.___SStripes_1j9xa_gg_{fill:var(--fill_1j9xa)}.___SStripesPatternPath_1j9xa_gg_{stroke:var(--intergalactic-chart-grid-period-pattern,#edefee);stroke-width:1px}", /*__inner_css_end__*/"1j9xa_gg_"),
|
|
16
16
|
/*__reshadow_css_end__*/
|
|
17
17
|
{
|
|
18
|
-
"__SReferenceLine": "
|
|
19
|
-
"__STitle": "
|
|
20
|
-
"--transform-origin": "--transform-
|
|
21
|
-
"_position_top": "
|
|
22
|
-
"_position_bottom": "
|
|
23
|
-
"_position_right": "
|
|
24
|
-
"_position_left": "
|
|
25
|
-
"__SBackground": "
|
|
26
|
-
"__SStripes": "
|
|
27
|
-
"--fill": "--
|
|
28
|
-
"__SStripesPatternPath": "
|
|
18
|
+
"__SReferenceLine": "___SReferenceLine_1j9xa_gg_",
|
|
19
|
+
"__STitle": "___STitle_1j9xa_gg_",
|
|
20
|
+
"--transform-origin": "--transform-origin_1j9xa",
|
|
21
|
+
"_position_top": "_position_top_1j9xa_gg_",
|
|
22
|
+
"_position_bottom": "_position_bottom_1j9xa_gg_",
|
|
23
|
+
"_position_right": "_position_right_1j9xa_gg_",
|
|
24
|
+
"_position_left": "_position_left_1j9xa_gg_",
|
|
25
|
+
"__SBackground": "___SBackground_1j9xa_gg_",
|
|
26
|
+
"__SStripes": "___SStripes_1j9xa_gg_",
|
|
27
|
+
"--fill": "--fill_1j9xa",
|
|
28
|
+
"__SStripesPatternPath": "___SStripesPatternPath_1j9xa_gg_"
|
|
29
29
|
});
|
|
30
30
|
const side2direction = {
|
|
31
31
|
left: 'vertical',
|
|
@@ -87,6 +87,12 @@ class ResponsiveContainerRoot extends _core.Component {
|
|
|
87
87
|
}));
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* ResponsiveContainer
|
|
93
|
+
*
|
|
94
|
+
* {@link https://developer.semrush.com/intergalactic/data-display/d3-chart/d3-chart-api#responsivecontainer|API}
|
|
95
|
+
*/
|
|
90
96
|
(0, _defineProperty2.default)(ResponsiveContainerRoot, "displayName", 'ResponsiveContainer');
|
|
91
97
|
const ResponsiveContainer = (0, _core.createComponent)(ResponsiveContainerRoot);
|
|
92
98
|
var _default = exports.default = ResponsiveContainer;
|