@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.
Files changed (260) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/lib/cjs/Area.js +17 -11
  3. package/lib/cjs/Area.js.map +1 -1
  4. package/lib/cjs/Axis.js +28 -16
  5. package/lib/cjs/Axis.js.map +1 -1
  6. package/lib/cjs/Bar.js +22 -16
  7. package/lib/cjs/Bar.js.map +1 -1
  8. package/lib/cjs/Bubble.js +20 -14
  9. package/lib/cjs/Bubble.js.map +1 -1
  10. package/lib/cjs/CompactHorizontalBar.js +22 -16
  11. package/lib/cjs/CompactHorizontalBar.js.map +1 -1
  12. package/lib/cjs/Donut.js +15 -9
  13. package/lib/cjs/Donut.js.map +1 -1
  14. package/lib/cjs/Dots.js +8 -8
  15. package/lib/cjs/GroupBar.js +6 -0
  16. package/lib/cjs/GroupBar.js.map +1 -1
  17. package/lib/cjs/HorizontalBar.js +22 -16
  18. package/lib/cjs/HorizontalBar.js.map +1 -1
  19. package/lib/cjs/Hover.js +3 -3
  20. package/lib/cjs/Line.js +15 -9
  21. package/lib/cjs/Line.js.map +1 -1
  22. package/lib/cjs/Plot.js +8 -2
  23. package/lib/cjs/Plot.js.map +1 -1
  24. package/lib/cjs/Radar.js +25 -19
  25. package/lib/cjs/Radar.js.map +1 -1
  26. package/lib/cjs/RadialTree.js +17 -12
  27. package/lib/cjs/RadialTree.js.map +1 -1
  28. package/lib/cjs/Reference.js +12 -12
  29. package/lib/cjs/ResponsiveContainer.js +6 -0
  30. package/lib/cjs/ResponsiveContainer.js.map +1 -1
  31. package/lib/cjs/ScatterPlot.js +15 -9
  32. package/lib/cjs/ScatterPlot.js.map +1 -1
  33. package/lib/cjs/StackBar.js +6 -0
  34. package/lib/cjs/StackBar.js.map +1 -1
  35. package/lib/cjs/StackedArea.js +6 -0
  36. package/lib/cjs/StackedArea.js.map +1 -1
  37. package/lib/cjs/Tooltip.js +10 -9
  38. package/lib/cjs/Tooltip.js.map +1 -1
  39. package/lib/cjs/Venn.js +15 -9
  40. package/lib/cjs/Venn.js.map +1 -1
  41. package/lib/cjs/a11y/PlotA11yModule.js +2 -2
  42. package/lib/cjs/a11y/PlotA11yView.js +2 -2
  43. package/lib/cjs/component/Chart/AbstractChart.js +4 -10
  44. package/lib/cjs/component/Chart/AbstractChart.js.map +1 -1
  45. package/lib/cjs/component/Chart/AreaChart.js +12 -0
  46. package/lib/cjs/component/Chart/AreaChart.js.map +1 -1
  47. package/lib/cjs/component/Chart/AreaChart.type.js.map +1 -1
  48. package/lib/cjs/component/Chart/BarChart.js +12 -0
  49. package/lib/cjs/component/Chart/BarChart.js.map +1 -1
  50. package/lib/cjs/component/Chart/BarChart.type.js.map +1 -1
  51. package/lib/cjs/component/Chart/BubbleChart.js +12 -0
  52. package/lib/cjs/component/Chart/BubbleChart.js.map +1 -1
  53. package/lib/cjs/component/Chart/BubbleChart.type.js.map +1 -1
  54. package/lib/cjs/component/Chart/CigaretteChart.js +9 -3
  55. package/lib/cjs/component/Chart/CigaretteChart.js.map +1 -1
  56. package/lib/cjs/component/Chart/CigaretteChart.type.js.map +1 -1
  57. package/lib/cjs/component/Chart/CompactHorizontalBarChart.js +7 -1
  58. package/lib/cjs/component/Chart/CompactHorizontalBarChart.js.map +1 -1
  59. package/lib/cjs/component/Chart/CompactHorizontalBarChart.type.js.map +1 -1
  60. package/lib/cjs/component/Chart/DonutChart.js +6 -0
  61. package/lib/cjs/component/Chart/DonutChart.js.map +1 -1
  62. package/lib/cjs/component/Chart/DonutChart.type.js.map +1 -1
  63. package/lib/cjs/component/Chart/HistogramChart.js +12 -0
  64. package/lib/cjs/component/Chart/HistogramChart.js.map +1 -1
  65. package/lib/cjs/component/Chart/HistogramChart.type.js.map +1 -1
  66. package/lib/cjs/component/Chart/LineChart.js +12 -0
  67. package/lib/cjs/component/Chart/LineChart.js.map +1 -1
  68. package/lib/cjs/component/Chart/LineChart.type.js.map +1 -1
  69. package/lib/cjs/component/Chart/RadarChart.js +12 -0
  70. package/lib/cjs/component/Chart/RadarChart.js.map +1 -1
  71. package/lib/cjs/component/Chart/RadarChart.type.js.map +1 -1
  72. package/lib/cjs/component/Chart/ScatterPlotChart.js +6 -0
  73. package/lib/cjs/component/Chart/ScatterPlotChart.js.map +1 -1
  74. package/lib/cjs/component/Chart/ScatterPlotChart.type.js.map +1 -1
  75. package/lib/cjs/component/Chart/VennChart.js +6 -0
  76. package/lib/cjs/component/Chart/VennChart.js.map +1 -1
  77. package/lib/cjs/component/Chart/VennChart.type.js.map +1 -1
  78. package/lib/cjs/component/ChartLegend/BaseLegend.js.map +1 -1
  79. package/lib/cjs/component/ChartLegend/LegendFlex/LegendFlex.js +10 -4
  80. package/lib/cjs/component/ChartLegend/LegendFlex/LegendFlex.js.map +1 -1
  81. package/lib/cjs/component/ChartLegend/LegendFlex/LegendFlex.type.js.map +1 -1
  82. package/lib/cjs/component/ChartLegend/LegendItem/LegendItem.js +80 -44
  83. package/lib/cjs/component/ChartLegend/LegendItem/LegendItem.js.map +1 -1
  84. package/lib/cjs/component/ChartLegend/LegendItem/LegendItem.type.js +4 -0
  85. package/lib/cjs/component/ChartLegend/LegendItem/LegendItem.type.js.map +1 -1
  86. package/lib/cjs/component/ChartLegend/LegendTable/LegendTable.js +12 -6
  87. package/lib/cjs/component/ChartLegend/LegendTable/LegendTable.js.map +1 -1
  88. package/lib/cjs/component/ChartLegend/LegendTable/LegendTable.type.js.map +1 -1
  89. package/lib/cjs/component/Cigarette/Cigarette.js +6 -0
  90. package/lib/cjs/component/Cigarette/Cigarette.js.map +1 -1
  91. package/lib/cjs/style/plot.shadow.css +1 -1
  92. package/lib/es6/Area.js +17 -11
  93. package/lib/es6/Area.js.map +1 -1
  94. package/lib/es6/Axis.js +28 -16
  95. package/lib/es6/Axis.js.map +1 -1
  96. package/lib/es6/Bar.js +22 -16
  97. package/lib/es6/Bar.js.map +1 -1
  98. package/lib/es6/Bubble.js +20 -14
  99. package/lib/es6/Bubble.js.map +1 -1
  100. package/lib/es6/CompactHorizontalBar.js +22 -16
  101. package/lib/es6/CompactHorizontalBar.js.map +1 -1
  102. package/lib/es6/Donut.js +15 -9
  103. package/lib/es6/Donut.js.map +1 -1
  104. package/lib/es6/Dots.js +8 -8
  105. package/lib/es6/GroupBar.js +6 -0
  106. package/lib/es6/GroupBar.js.map +1 -1
  107. package/lib/es6/HorizontalBar.js +22 -16
  108. package/lib/es6/HorizontalBar.js.map +1 -1
  109. package/lib/es6/Hover.js +3 -3
  110. package/lib/es6/Line.js +15 -9
  111. package/lib/es6/Line.js.map +1 -1
  112. package/lib/es6/Plot.js +8 -2
  113. package/lib/es6/Plot.js.map +1 -1
  114. package/lib/es6/Radar.js +25 -19
  115. package/lib/es6/Radar.js.map +1 -1
  116. package/lib/es6/RadialTree.js +17 -12
  117. package/lib/es6/RadialTree.js.map +1 -1
  118. package/lib/es6/Reference.js +12 -12
  119. package/lib/es6/ResponsiveContainer.js +6 -0
  120. package/lib/es6/ResponsiveContainer.js.map +1 -1
  121. package/lib/es6/ScatterPlot.js +15 -9
  122. package/lib/es6/ScatterPlot.js.map +1 -1
  123. package/lib/es6/StackBar.js +6 -0
  124. package/lib/es6/StackBar.js.map +1 -1
  125. package/lib/es6/StackedArea.js +6 -0
  126. package/lib/es6/StackedArea.js.map +1 -1
  127. package/lib/es6/Tooltip.js +10 -9
  128. package/lib/es6/Tooltip.js.map +1 -1
  129. package/lib/es6/Venn.js +15 -9
  130. package/lib/es6/Venn.js.map +1 -1
  131. package/lib/es6/a11y/PlotA11yModule.js +2 -2
  132. package/lib/es6/a11y/PlotA11yView.js +2 -2
  133. package/lib/es6/component/Chart/AbstractChart.js +4 -10
  134. package/lib/es6/component/Chart/AbstractChart.js.map +1 -1
  135. package/lib/es6/component/Chart/AreaChart.js +12 -0
  136. package/lib/es6/component/Chart/AreaChart.js.map +1 -1
  137. package/lib/es6/component/Chart/AreaChart.type.js.map +1 -1
  138. package/lib/es6/component/Chart/BarChart.js +12 -0
  139. package/lib/es6/component/Chart/BarChart.js.map +1 -1
  140. package/lib/es6/component/Chart/BarChart.type.js.map +1 -1
  141. package/lib/es6/component/Chart/BubbleChart.js +12 -0
  142. package/lib/es6/component/Chart/BubbleChart.js.map +1 -1
  143. package/lib/es6/component/Chart/BubbleChart.type.js.map +1 -1
  144. package/lib/es6/component/Chart/CigaretteChart.js +9 -3
  145. package/lib/es6/component/Chart/CigaretteChart.js.map +1 -1
  146. package/lib/es6/component/Chart/CigaretteChart.type.js.map +1 -1
  147. package/lib/es6/component/Chart/CompactHorizontalBarChart.js +7 -1
  148. package/lib/es6/component/Chart/CompactHorizontalBarChart.js.map +1 -1
  149. package/lib/es6/component/Chart/CompactHorizontalBarChart.type.js.map +1 -1
  150. package/lib/es6/component/Chart/DonutChart.js +6 -0
  151. package/lib/es6/component/Chart/DonutChart.js.map +1 -1
  152. package/lib/es6/component/Chart/DonutChart.type.js.map +1 -1
  153. package/lib/es6/component/Chart/HistogramChart.js +12 -0
  154. package/lib/es6/component/Chart/HistogramChart.js.map +1 -1
  155. package/lib/es6/component/Chart/HistogramChart.type.js.map +1 -1
  156. package/lib/es6/component/Chart/LineChart.js +12 -0
  157. package/lib/es6/component/Chart/LineChart.js.map +1 -1
  158. package/lib/es6/component/Chart/LineChart.type.js.map +1 -1
  159. package/lib/es6/component/Chart/RadarChart.js +12 -0
  160. package/lib/es6/component/Chart/RadarChart.js.map +1 -1
  161. package/lib/es6/component/Chart/RadarChart.type.js.map +1 -1
  162. package/lib/es6/component/Chart/ScatterPlotChart.js +6 -0
  163. package/lib/es6/component/Chart/ScatterPlotChart.js.map +1 -1
  164. package/lib/es6/component/Chart/ScatterPlotChart.type.js.map +1 -1
  165. package/lib/es6/component/Chart/VennChart.js +7 -0
  166. package/lib/es6/component/Chart/VennChart.js.map +1 -1
  167. package/lib/es6/component/Chart/VennChart.type.js.map +1 -1
  168. package/lib/es6/component/ChartLegend/BaseLegend.js.map +1 -1
  169. package/lib/es6/component/ChartLegend/LegendFlex/LegendFlex.js +10 -4
  170. package/lib/es6/component/ChartLegend/LegendFlex/LegendFlex.js.map +1 -1
  171. package/lib/es6/component/ChartLegend/LegendFlex/LegendFlex.type.js.map +1 -1
  172. package/lib/es6/component/ChartLegend/LegendItem/LegendItem.js +80 -44
  173. package/lib/es6/component/ChartLegend/LegendItem/LegendItem.js.map +1 -1
  174. package/lib/es6/component/ChartLegend/LegendItem/LegendItem.type.js +4 -0
  175. package/lib/es6/component/ChartLegend/LegendItem/LegendItem.type.js.map +1 -1
  176. package/lib/es6/component/ChartLegend/LegendTable/LegendTable.js +12 -6
  177. package/lib/es6/component/ChartLegend/LegendTable/LegendTable.js.map +1 -1
  178. package/lib/es6/component/ChartLegend/LegendTable/LegendTable.type.js.map +1 -1
  179. package/lib/es6/component/Cigarette/Cigarette.js +6 -0
  180. package/lib/es6/component/Cigarette/Cigarette.js.map +1 -1
  181. package/lib/es6/style/plot.shadow.css +1 -1
  182. package/lib/esm/AnimatedClipPath.mjs +2 -2
  183. package/lib/esm/Area.mjs +13 -13
  184. package/lib/esm/Axis.mjs +19 -19
  185. package/lib/esm/Bar.mjs +18 -18
  186. package/lib/esm/Bubble.mjs +16 -16
  187. package/lib/esm/CompactHorizontalBar.mjs +18 -18
  188. package/lib/esm/Donut.mjs +11 -11
  189. package/lib/esm/Dots.mjs +9 -9
  190. package/lib/esm/GroupBar.mjs +1 -1
  191. package/lib/esm/HorizontalBar.mjs +18 -18
  192. package/lib/esm/Hover.mjs +5 -5
  193. package/lib/esm/Line.mjs +11 -11
  194. package/lib/esm/Pattern.mjs +1 -1
  195. package/lib/esm/Plot.mjs +4 -4
  196. package/lib/esm/Radar.mjs +21 -21
  197. package/lib/esm/RadialTree.mjs +14 -14
  198. package/lib/esm/Reference.mjs +14 -14
  199. package/lib/esm/ResponsiveContainer.mjs +1 -1
  200. package/lib/esm/ScatterPlot.mjs +11 -11
  201. package/lib/esm/StackBar.mjs +1 -1
  202. package/lib/esm/StackedArea.mjs +1 -1
  203. package/lib/esm/Tooltip.mjs +12 -11
  204. package/lib/esm/Venn.mjs +12 -12
  205. package/lib/esm/a11y/PlotA11yModule.mjs +4 -4
  206. package/lib/esm/a11y/PlotA11yView.mjs +3 -3
  207. package/lib/esm/component/Chart/AbstractChart.mjs +6 -12
  208. package/lib/esm/component/Chart/AreaChart.mjs +7 -1
  209. package/lib/esm/component/Chart/BarChart.mjs +8 -2
  210. package/lib/esm/component/Chart/BubbleChart.mjs +7 -1
  211. package/lib/esm/component/Chart/CigaretteChart.mjs +3 -3
  212. package/lib/esm/component/Chart/CompactHorizontalBarChart.mjs +2 -2
  213. package/lib/esm/component/Chart/DonutChart.mjs +1 -1
  214. package/lib/esm/component/Chart/HistogramChart.mjs +8 -2
  215. package/lib/esm/component/Chart/LineChart.mjs +7 -1
  216. package/lib/esm/component/Chart/RadarChart.mjs +7 -1
  217. package/lib/esm/component/Chart/ScatterPlotChart.mjs +1 -1
  218. package/lib/esm/component/Chart/VennChart.mjs +1 -1
  219. package/lib/esm/component/ChartLegend/BaseLegend.mjs +1 -1
  220. package/lib/esm/component/ChartLegend/LegendFlex/LegendFlex.mjs +6 -6
  221. package/lib/esm/component/ChartLegend/LegendItem/LegendItem.mjs +76 -46
  222. package/lib/esm/component/ChartLegend/LegendItem/LegendItem.type.mjs +4 -0
  223. package/lib/esm/component/ChartLegend/LegendTable/LegendTable.mjs +8 -8
  224. package/lib/esm/component/Cigarette/Cigarette.mjs +1 -1
  225. package/lib/esm/component/StackGroupBar/StackGroupBar.mjs +1 -1
  226. package/lib/esm/createElement.mjs +1 -1
  227. package/lib/esm/style/plot.shadow.css +1 -1
  228. package/lib/types/RadialTree.d.ts +5 -0
  229. package/lib/types/component/Chart/AbstractChart.d.ts +2 -2
  230. package/lib/types/component/Chart/AreaChart.d.ts +5 -0
  231. package/lib/types/component/Chart/AreaChart.type.d.ts +6 -0
  232. package/lib/types/component/Chart/BarChart.d.ts +5 -0
  233. package/lib/types/component/Chart/BarChart.type.d.ts +6 -0
  234. package/lib/types/component/Chart/BubbleChart.d.ts +5 -0
  235. package/lib/types/component/Chart/BubbleChart.type.d.ts +6 -0
  236. package/lib/types/component/Chart/CigaretteChart.d.ts +5 -0
  237. package/lib/types/component/Chart/CigaretteChart.type.d.ts +14 -0
  238. package/lib/types/component/Chart/CompactHorizontalBarChart.d.ts +5 -0
  239. package/lib/types/component/Chart/CompactHorizontalBarChart.type.d.ts +7 -0
  240. package/lib/types/component/Chart/DonutChart.d.ts +5 -0
  241. package/lib/types/component/Chart/DonutChart.type.d.ts +7 -0
  242. package/lib/types/component/Chart/HistogramChart.d.ts +5 -0
  243. package/lib/types/component/Chart/HistogramChart.type.d.ts +6 -0
  244. package/lib/types/component/Chart/LineChart.d.ts +5 -0
  245. package/lib/types/component/Chart/LineChart.type.d.ts +6 -0
  246. package/lib/types/component/Chart/RadarChart.d.ts +5 -0
  247. package/lib/types/component/Chart/RadarChart.type.d.ts +6 -0
  248. package/lib/types/component/Chart/ScatterPlotChart.d.ts +5 -0
  249. package/lib/types/component/Chart/ScatterPlotChart.type.d.ts +7 -0
  250. package/lib/types/component/Chart/VennChart.d.ts +5 -0
  251. package/lib/types/component/Chart/VennChart.type.d.ts +6 -0
  252. package/lib/types/component/ChartLegend/BaseLegend.d.ts +2 -2
  253. package/lib/types/component/ChartLegend/LegendFlex/LegendFlex.d.ts +5 -0
  254. package/lib/types/component/ChartLegend/LegendFlex/LegendFlex.type.d.ts +4 -0
  255. package/lib/types/component/ChartLegend/LegendItem/LegendItem.d.ts +5 -0
  256. package/lib/types/component/ChartLegend/LegendItem/LegendItem.type.d.ts +15 -7
  257. package/lib/types/component/ChartLegend/LegendTable/LegendTable.d.ts +5 -0
  258. package/lib/types/component/ChartLegend/LegendTable/LegendTable.type.d.ts +3 -0
  259. package/lib/types/component/Cigarette/Cigarette.d.ts +5 -0
  260. package/package.json +14 -14
@@ -1 +1 @@
1
- {"version":3,"file":"CigaretteChart.js","names":["_core","require","_baseComponents","_i18nEnhance","_interopRequireDefault","_resolveColorEnhance","_rafTrottle","_uniqueID","_divider","_typography","_d3Scale","_react","_","_AbstractChart","_AnimatedClipPath","_intergalacticDynamicLocales","_utils","_Cigarette","DEFAULT_MINIMAL_BAR_WIDTH","DEFAULT_GAP","CigaretteChartComponent","AbstractChart","constructor","props","_defineProperty2","default","React","createRef","trottle","event","plotRef","current","pX","pY","eventToPoint","setState","prevState","state","activeDataDefinitions","dataDefinitions","filter","checked","activePositiveDataDefinitions","data","asProps","id","itemValue","resolveColor","index","colorMap","getDefaultDataDefinitions","map","dataDef","columns","slice","defaultLegendProps","legendType","w","totalValue","reduce","acc","computeCigaretteItems","plotWidth","plotHeight","invertAxis","minimalBarWidth","reverse","count","length","totalGapWidth","Math","max","availableSpace","dataDefinitionsItemSize","result","dd","value","dataWidth","visualWidth","isMinVisible","smallItems","r","extraNeeded","smallItem","donors","donorCapacity","s","d","donor","available","share","taken","xScale","scaleLinear","yScale","renderChart","uid","duration","patterns","onClick","highlightedLine","offset","items","createElement","Fragment","item","interpolateValue","height","width","y","x","key","dataKey","hide","color","direction","hovered","undefined","renderTooltip","_ref","tooltipTitle","tooltipViewType","showPercentValueInTooltip","styles","showTooltip","STooltipChildrenWrapper","Box","HoverRect","Tooltip","wMin","hideHoverLine","xIndex","visualScale","yIndex","tooltipProps","_ref4","showPercentColumn","_ref3","find","dataDefItem","children","sstyled","cn","assignProps","Dot","mr","label","Text","percentValue","tooltipValueFormatter","Flex","Title","style","opacity","textAlign","bold","renderTooltipTotalLine","percentFormatter","total","rawPercent","formattedPercent","round","NOT_A_VALUE","dataItem","showTotalInTooltip","mt","Number","isNaN","renderHeader","header","render","_ref2","_ref6","SChart","a11yAltTextConfig","_ref5","Plot","dataHints","onPlotMouseMove","onPlotMouseLeave","renderLegend","getLegendAriaLabel","getI18nText","chartType","cigaretteItems","range","domain","push","lastAddedDomain","scaleThreshold","showXAxis","showYAxis","showLegend","marginX","marginY","resolveColorEnhance","uniqueIDEnhancement","i18nEnhance","localizedMessages","CigaretteChart","exports","createComponent"],"sources":["../../../../src/component/Chart/CigaretteChart.tsx"],"sourcesContent":["import { Box, Flex } from '@semcore/base-components';\nimport { createComponent, Root, sstyled } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport resolveColorEnhance from '@semcore/core/lib/utils/enhances/resolveColorEnhance';\nimport trottle from '@semcore/core/lib/utils/rafTrottle';\nimport uniqueIDEnhancement from '@semcore/core/lib/utils/uniqueID';\nimport Divider from '@semcore/divider';\nimport { Text } from '@semcore/typography';\nimport { scaleThreshold, scaleLinear, scaleBand } from 'd3-scale';\nimport React from 'react';\n\nimport type { CigaretteChartData, CigaretteChartDataKey, CigaretteChartProps, CigaretteChartType } from './CigaretteChart.type';\n// @ts-ignore\nimport { HoverRect, Plot } from '../..';\nimport type { ChartState } from './AbstractChart';\nimport { AbstractChart, NOT_A_VALUE } from './AbstractChart';\nimport type { ObjectData } from './AbstractChart.type';\n// @ts-ignore\nimport AnimatedClipPath from '../../AnimatedClipPath';\nimport { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';\nimport { eventToPoint, interpolateValue } from '../../utils';\nimport type { LegendItem } from '../ChartLegend/LegendItem/LegendItem.type';\nimport Cigarette from '../Cigarette/Cigarette';\n\nconst DEFAULT_MINIMAL_BAR_WIDTH = 2;\nconst DEFAULT_GAP = 2;\n\ntype ScaleThresholdConfig = { range: Array<CigaretteChartDataKey>; domain: Array<number> };\n\ntype CigaretteChartState = ChartState & {\n pX: number | null;\n pY: number | null;\n};\n\nclass CigaretteChartComponent extends AbstractChart<\n CigaretteChartData,\n CigaretteChartProps,\n typeof CigaretteChartComponent.enhance,\n typeof CigaretteChartComponent.defaultProps,\n CigaretteChartState\n> {\n static displayName = 'Cigarette.Bar';\n\n static defaultProps: any = (props: CigaretteChartProps) => {\n const invertAxis = props.invertAxis ?? true;\n return {\n invertAxis: invertAxis,\n showXAxis: false,\n showYAxis: false,\n showTooltip: true,\n showLegend: false,\n marginX: 0,\n marginY: 0,\n duration: 500,\n plotWidth: !invertAxis && !props.plotWidth ? 44 : props.plotWidth,\n plotHeight: invertAxis && !props.plotHeight ? 28 : props.plotHeight,\n showPercentValueInTooltip: false,\n minimalBarWidth: DEFAULT_MINIMAL_BAR_WIDTH,\n };\n };\n\n static enhance = [\n resolveColorEnhance(),\n uniqueIDEnhancement(),\n i18nEnhance(localizedMessages),\n ] as const;\n\n constructor(props: CigaretteChartProps) {\n super(props);\n\n this.state = {\n ...this.state,\n pX: null,\n pY: null,\n };\n }\n\n private plotRef = React.createRef<SVGElement>();\n\n protected override plotPadding = 0;\n\n private offset = 0;\n\n private get activeDataDefinitions() {\n const { dataDefinitions } = this.state;\n\n return dataDefinitions.filter(({ checked }) => checked);\n }\n\n private get activePositiveDataDefinitions() {\n const { data } = this.asProps;\n\n return this.activeDataDefinitions.filter(({ id }) => {\n const itemValue = data[id];\n\n return typeof itemValue === 'number' && itemValue > 0;\n });\n }\n\n protected override resolveColor(id: string, index: number) {\n return this.props.colorMap?.[id] ?? `blue-${5 - index}00`;\n }\n\n protected override getDefaultDataDefinitions(): Array<\n LegendItem & { columns: React.ReactNode[] }\n > {\n const dataDefinitions = super.getDefaultDataDefinitions();\n\n return dataDefinitions.map((dataDef) => {\n dataDef.columns = dataDef.columns.slice(1);\n return dataDef;\n });\n }\n\n protected override defaultLegendProps() {\n return {\n legendType: 'Table' as const,\n w: 'fit-content',\n };\n }\n\n private onPlotMouseMove = trottle((event: React.MouseEvent<HTMLElement>) => {\n if (!this.plotRef.current) return;\n\n const [pX, pY] = eventToPoint(event, this.plotRef.current);\n\n this.setState((prevState) => ({ pX, pY }));\n });\n\n private onPlotMouseLeave = trottle(() => {\n this.setState((prevState) => ({ pX: null, pY: null }));\n });\n\n protected override totalValue() {\n const { data } = this.asProps;\n\n return this.activeDataDefinitions.reduce((acc, { id }) => {\n const itemValue = data[id];\n\n if (typeof itemValue === 'number') {\n acc += itemValue;\n }\n\n return acc;\n }, 0);\n }\n\n private computeCigaretteItems() {\n const { plotWidth, plotHeight, data, invertAxis, minimalBarWidth } = this.asProps;\n\n const dataDefinitions = invertAxis\n ? this.activeDataDefinitions\n : [...this.activeDataDefinitions].reverse();\n\n const count = this.activePositiveDataDefinitions.length;\n const totalGapWidth = DEFAULT_GAP * Math.max(0, count - 1);\n const availableSpace = Math.max(0, (invertAxis ? plotWidth : plotHeight) - totalGapWidth);\n\n const totalValue = this.totalValue();\n\n const dataDefinitionsItemSize = dataDefinitions.map(({ id }) => {\n if (totalValue === 0) {\n return 0;\n }\n\n const itemValue = data[id];\n\n if (typeof itemValue !== 'number') return 0;\n\n return (itemValue / totalValue) * availableSpace;\n });\n\n const result = dataDefinitions.map((dd, index) => ({\n ...dd,\n value: data[dd.id],\n dataWidth: dataDefinitionsItemSize[index],\n visualWidth: dataDefinitionsItemSize[index],\n isMinVisible: false,\n }));\n\n const smallItems = result.filter((r) => {\n const { value, dataWidth } = r;\n\n if (typeof value !== 'number') return false;\n\n return value > 0 && dataWidth < minimalBarWidth;\n });\n\n if (smallItems.length === 0) return result;\n\n let extraNeeded = 0;\n\n for (const smallItem of smallItems) {\n extraNeeded += minimalBarWidth - smallItem.dataWidth;\n smallItem.visualWidth = minimalBarWidth;\n smallItem.isMinVisible = true;\n }\n\n const donors = result.filter((r) => !r.isMinVisible && r.dataWidth > minimalBarWidth);\n const donorCapacity = donors.reduce(\n (s, d) => s + (d.dataWidth - minimalBarWidth),\n 0,\n );\n\n for (const donor of donors) {\n const available = donor.dataWidth - minimalBarWidth;\n const share = available / donorCapacity;\n const taken = share * extraNeeded;\n donor.visualWidth = donor.dataWidth - taken;\n }\n\n return result;\n };\n\n get xScale() {\n const { plotWidth } = this.asProps;\n\n return scaleLinear([0, plotWidth]);\n }\n\n get yScale() {\n const { plotHeight } = this.asProps;\n\n return scaleLinear([plotHeight, 0]);\n }\n\n renderChart() {\n const { invertAxis, data, uid, duration, patterns, plotHeight, plotWidth, onClick } =\n this.asProps;\n const { dataDefinitions, highlightedLine } = this.state;\n\n this.offset = 0;\n\n const items = this.computeCigaretteItems();\n\n return (\n <>\n {items.map((item, index) => {\n const { visualWidth, id } = item;\n const value = data[id];\n\n if (value === interpolateValue || value === null) {\n return null;\n }\n\n const height = invertAxis ? plotHeight - DEFAULT_GAP * 2 : plotWidth - DEFAULT_GAP * 2;\n const width = visualWidth;\n const y = DEFAULT_GAP;\n const x = this.offset;\n const r = height < 28 ? 2 : 4;\n\n this.offset += visualWidth;\n\n if (index < items.length - 1) {\n this.offset += DEFAULT_GAP;\n }\n\n return (\n <Cigarette\n key={item.id}\n dataKey={item.id}\n index={index}\n y={invertAxis ? y : x}\n x={invertAxis ? x : y}\n width={invertAxis ? width : height}\n height={invertAxis ? height : width}\n uid={uid}\n hide={!item.checked}\n duration={duration}\n r={index === 0 || index === dataDefinitions.length - 1 ? r : 0}\n color={item.color}\n patterns={patterns}\n direction={invertAxis ? 'horizontal' : 'vertical'}\n onClick={onClick}\n hovered={\n highlightedLine === index ? true : highlightedLine === -1 ? undefined : false\n }\n />\n );\n })}\n\n <AnimatedClipPath\n aria-hidden\n duration={duration}\n id={uid}\n x='0'\n y='0'\n width={invertAxis ? 0 : plotWidth}\n height={invertAxis ? plotHeight : 0}\n />\n </>\n );\n }\n\n renderTooltip(): React.ReactNode {\n const { data, invertAxis, tooltipTitle, tooltipViewType, showPercentValueInTooltip, styles, showTooltip } =\n this.asProps;\n const { dataDefinitions, pX, pY } = this.state;\n const STooltipChildrenWrapper = Root;\n\n if (!showTooltip) {\n return null;\n }\n\n return (\n <HoverRect.Tooltip\n x={invertAxis ? '' : undefined}\n y={invertAxis ? undefined : ''}\n wMin={100}\n hideHoverLine={true}\n xIndex={pX !== null ? this.visualScale(pX) : undefined}\n yIndex={pY !== null ? this.visualScale(pY) : undefined}\n >\n {(tooltipProps: any) => {\n const dataKey = invertAxis ? tooltipProps.xIndex : tooltipProps.yIndex;\n const showPercentColumn = showPercentValueInTooltip && this.totalValue() !== 0;\n\n if (tooltipViewType === 'single') {\n const item = dataDefinitions.find((dataDefItem) => dataDefItem.id === dataKey);\n if (!item) {\n return {\n children: null,\n };\n }\n\n return {\n children: sstyled(styles)(\n <STooltipChildrenWrapper render={Box} columnsCount={showPercentColumn ? '3' : '2'} __excludeProps={['data']}>\n <HoverRect.Tooltip.Dot mr={2} color={item.color}>\n {item.label}\n </HoverRect.Tooltip.Dot>\n { showPercentColumn && <Text textAlign='end' color='text-secondary'>{this.percentValue(data, item.id)}</Text> }\n <Text textAlign='end' bold>{this.tooltipValueFormatter(data[item.id])}</Text>\n </STooltipChildrenWrapper>,\n ),\n };\n }\n\n return {\n children: sstyled(styles)(\n <Flex direction='column'>\n {tooltipTitle && (\n <HoverRect.Tooltip.Title>Some tooltip title</HoverRect.Tooltip.Title>\n )}\n\n <STooltipChildrenWrapper render={Box} columnsCount={showPercentColumn ? '3' : '2'} __excludeProps={['data']}>\n {dataDefinitions.map((item) => {\n const style = { opacity: item.id === dataKey ? 1 : 0.3 };\n return (\n item.checked && (\n <React.Fragment key={item.id}>\n <HoverRect.Tooltip.Dot mr={2} color={item.color} style={style}>\n {item.label}\n </HoverRect.Tooltip.Dot>\n { showPercentColumn && <Text textAlign='end' color='text-secondary' style={style}>{this.percentValue(data, item.id)}</Text> }\n <Text textAlign='end' bold style={style}>{this.tooltipValueFormatter(data[item.id])}</Text>\n </React.Fragment>\n )\n );\n })}\n\n {this.renderTooltipTotalLine(data)}\n </STooltipChildrenWrapper>\n </Flex>,\n ),\n };\n }}\n </HoverRect.Tooltip>\n );\n }\n\n protected percentValue(data: ObjectData, key: string): string {\n const { percentFormatter } = this.asProps;\n\n const total = this.totalValue();\n\n const value = data[key];\n\n if (typeof value === 'number' && total !== 0) {\n const rawPercent = (100 * value) / total;\n const formattedPercent = percentFormatter ? percentFormatter(rawPercent) : Math.round(rawPercent);\n\n return `${formattedPercent}%`;\n }\n\n if (value === null) {\n return `0%`;\n }\n\n return NOT_A_VALUE;\n }\n\n protected override renderTooltipTotalLine<D extends ObjectData>(dataItem: D) {\n const { showTotalInTooltip, showPercentValueInTooltip } = this.asProps;\n\n if (!showTotalInTooltip) {\n return null;\n }\n\n const total = this.totalValue();\n\n return (\n <>\n <Box mt={2} mr={2}>Total</Box>\n { showPercentValueInTooltip && total !== 0 && <Text mt={2} textAlign='end' color='text-secondary'>{Number.isNaN(total) ? NOT_A_VALUE : '100%'}</Text> }\n <Text mt={2} textAlign='end' bold>{Number.isNaN(total) ? NOT_A_VALUE : total}</Text>\n </>\n );\n }\n\n renderHeader() {\n return this.asProps.header ?? null;\n }\n\n override render() {\n const SChart = Root;\n const { styles, plotWidth, plotHeight, data, patterns, invertAxis, a11yAltTextConfig } = this.asProps;\n\n const header = this.renderHeader();\n\n if (invertAxis) {\n return sstyled(styles)(\n <SChart render={Flex} gap={6} direction='column' __excludeProps={['onClick', 'data']}>\n <Flex direction='column'>\n {header}\n <Plot\n ref={this.plotRef}\n data={data}\n scale={[this.xScale, this.yScale]}\n width={plotWidth}\n height={plotHeight}\n dataHints={this.dataHints}\n patterns={patterns}\n a11yAltTextConfig={a11yAltTextConfig}\n onMouseMove={this.onPlotMouseMove}\n onMouseLeave={this.onPlotMouseLeave}\n >\n {this.renderTooltip()}\n {this.renderChart()}\n </Plot>\n </Flex>\n {this.renderLegend()}\n </SChart>,\n );\n }\n\n return sstyled(styles)(\n <SChart render={Flex} gap={6} __excludeProps={['onClick', 'data']}>\n <Plot\n ref={this.plotRef}\n data={data}\n scale={[this.xScale, this.yScale]}\n width={plotWidth}\n height={plotHeight}\n dataHints={this.dataHints}\n patterns={patterns}\n a11yAltTextConfig={a11yAltTextConfig}\n onMouseMove={this.onPlotMouseMove}\n onMouseLeave={this.onPlotMouseLeave}\n >\n {this.renderTooltip()}\n {this.renderChart()}\n </Plot>\n <Flex direction='column' gap={2}>\n {header && (\n <>\n <Box>{header}</Box>\n <Divider />\n </>\n )}\n {this.renderLegend()}\n </Flex>\n </SChart>,\n );\n }\n\n protected getLegendAriaLabel(): string {\n return this.asProps.getI18nText('legendForChart', { chartType: 'Cigarette' });\n }\n\n private get visualScale() {\n const cigaretteItems = this.computeCigaretteItems();\n\n const { range, domain } = cigaretteItems.reduce<ScaleThresholdConfig>((acc, { id, visualWidth }, index) => {\n const { range, domain } = acc;\n\n if (visualWidth) {\n range.push(id);\n\n if (domain.length === 0) {\n domain.push(visualWidth + DEFAULT_GAP);\n\n return acc;\n }\n\n if (index !== cigaretteItems.length - 1) {\n const lastAddedDomain = domain[domain.length - 1];\n domain.push(lastAddedDomain + visualWidth + DEFAULT_GAP);\n }\n }\n\n return acc;\n }, { range: [], domain: [] });\n\n return scaleThreshold(domain, range);\n }\n}\n\nexport const CigaretteChart: CigaretteChartType = createComponent(CigaretteChartComponent);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"CigaretteChart.js","names":["_core","require","_baseComponents","_i18nEnhance","_interopRequireDefault","_resolveColorEnhance","_rafTrottle","_uniqueID","_divider","_typography","_d3Scale","_react","_","_AbstractChart","_AnimatedClipPath","_intergalacticDynamicLocales","_utils","_Cigarette","DEFAULT_MINIMAL_BAR_WIDTH","DEFAULT_GAP","CigaretteChartComponent","AbstractChart","constructor","props","_defineProperty2","default","React","createRef","trottle","event","plotRef","current","pX","pY","eventToPoint","setState","state","activeDataDefinitions","dataDefinitions","filter","checked","activePositiveDataDefinitions","data","asProps","id","itemValue","resolveColor","index","colorMap","getDefaultDataDefinitions","map","dataDef","columns","slice","defaultLegendProps","legendType","w","totalValue","reduce","acc","computeCigaretteItems","plotWidth","plotHeight","invertAxis","minimalBarWidth","reverse","count","length","totalGapWidth","Math","max","availableSpace","dataDefinitionsItemSize","result","dd","value","dataWidth","visualWidth","isMinVisible","smallItems","r","extraNeeded","smallItem","donors","donorCapacity","s","d","donor","available","share","taken","xScale","scaleLinear","yScale","renderChart","uid","duration","patterns","onClick","highlightedLine","offset","items","createElement","Fragment","item","interpolateValue","height","width","y","x","key","dataKey","hide","color","direction","hovered","undefined","renderTooltip","_ref","tooltipTitle","tooltipViewType","showPercentValueInTooltip","styles","showTooltip","STooltipChildrenWrapper","Box","HoverRect","Tooltip","wMin","hideHoverLine","xIndex","visualScale","yIndex","tooltipProps","_ref4","showPercentColumn","_ref3","find","dataDefItem","children","sstyled","cn","assignProps","Dot","mr","label","Text","percentValue","tooltipValueFormatter","Flex","Title","style","opacity","textAlign","bold","renderTooltipTotalLine","percentFormatter","total","rawPercent","formattedPercent","round","NOT_A_VALUE","dataItem","showTotalInTooltip","mt","Number","isNaN","renderHeader","header","render","_ref2","_ref6","SChart","a11yAltTextConfig","_ref5","Plot","dataHints","onPlotMouseMove","onPlotMouseLeave","renderLegend","getLegendAriaLabel","getI18nText","chartType","cigaretteItems","range","domain","push","lastAddedDomain","scaleThreshold","showXAxis","showYAxis","showLegend","marginX","marginY","resolveColorEnhance","uniqueIDEnhancement","i18nEnhance","localizedMessages","CigaretteChart","exports","createComponent"],"sources":["../../../../src/component/Chart/CigaretteChart.tsx"],"sourcesContent":["import { Box, Flex } from '@semcore/base-components';\nimport { createComponent, Root, sstyled } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport resolveColorEnhance from '@semcore/core/lib/utils/enhances/resolveColorEnhance';\nimport trottle from '@semcore/core/lib/utils/rafTrottle';\nimport uniqueIDEnhancement from '@semcore/core/lib/utils/uniqueID';\nimport Divider from '@semcore/divider';\nimport { Text } from '@semcore/typography';\nimport { scaleThreshold, scaleLinear, scaleBand } from 'd3-scale';\nimport React from 'react';\n\nimport type { CigaretteChartData, CigaretteChartDataKey, CigaretteChartDefaultProps, CigaretteChartProps, CigaretteChartType } from './CigaretteChart.type';\n// @ts-ignore\nimport { HoverRect, Plot } from '../..';\nimport type { ChartState } from './AbstractChart';\nimport { AbstractChart, NOT_A_VALUE } from './AbstractChart';\nimport type { ObjectData } from './AbstractChart.type';\n// @ts-ignore\nimport AnimatedClipPath from '../../AnimatedClipPath';\nimport { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';\nimport { eventToPoint, interpolateValue } from '../../utils';\nimport type { LegendItem } from '../ChartLegend/LegendItem/LegendItem.type';\nimport Cigarette from '../Cigarette/Cigarette';\n\nconst DEFAULT_MINIMAL_BAR_WIDTH = 2;\nconst DEFAULT_GAP = 2;\n\ntype ScaleThresholdConfig = { range: Array<CigaretteChartDataKey>; domain: Array<number> };\n\ntype CigaretteChartState = ChartState & {\n pX: number | null;\n pY: number | null;\n};\n\nclass CigaretteChartComponent extends AbstractChart<\n CigaretteChartData,\n CigaretteChartProps,\n typeof CigaretteChartComponent.enhance,\n {},\n CigaretteChartState,\n CigaretteChartDefaultProps\n> {\n static displayName = 'Cigarette.Bar';\n\n static defaultProps = (props: CigaretteChartProps) => {\n const invertAxis = props.invertAxis ?? true;\n return {\n invertAxis,\n showXAxis: false,\n showYAxis: false,\n showTooltip: true,\n showLegend: false,\n marginX: 0,\n marginY: 0,\n duration: 500,\n plotWidth: !invertAxis && !props.plotWidth ? 44 : props.plotWidth,\n plotHeight: invertAxis && !props.plotHeight ? 28 : props.plotHeight,\n showPercentValueInTooltip: false,\n minimalBarWidth: DEFAULT_MINIMAL_BAR_WIDTH,\n } as const;\n };\n\n static enhance = [\n resolveColorEnhance(),\n uniqueIDEnhancement(),\n i18nEnhance(localizedMessages),\n ] as const;\n\n constructor(props: CigaretteChartProps) {\n super(props);\n\n this.state = {\n ...this.state,\n pX: null,\n pY: null,\n };\n }\n\n private plotRef = React.createRef<SVGElement>();\n\n protected override plotPadding = 0;\n\n private offset = 0;\n\n private get activeDataDefinitions() {\n const { dataDefinitions } = this.state;\n\n return dataDefinitions.filter(({ checked }) => checked);\n }\n\n private get activePositiveDataDefinitions() {\n const { data } = this.asProps;\n\n return this.activeDataDefinitions.filter(({ id }) => {\n const itemValue = data[id];\n\n return typeof itemValue === 'number' && itemValue > 0;\n });\n }\n\n protected override resolveColor(id: string, index: number) {\n return this.props.colorMap?.[id] ?? `blue-${5 - index}00`;\n }\n\n protected override getDefaultDataDefinitions(): Array<\n LegendItem & { columns: React.ReactNode[] }\n > {\n const dataDefinitions = super.getDefaultDataDefinitions();\n\n return dataDefinitions.map((dataDef) => {\n dataDef.columns = dataDef.columns.slice(1);\n return dataDef;\n });\n }\n\n protected override defaultLegendProps() {\n return {\n legendType: 'Table' as const,\n w: 'fit-content',\n };\n }\n\n private onPlotMouseMove = trottle((event: React.MouseEvent<HTMLElement>) => {\n if (!this.plotRef.current) return;\n\n const [pX, pY] = eventToPoint(event, this.plotRef.current);\n\n this.setState(() => ({ pX, pY }));\n });\n\n private onPlotMouseLeave = trottle(() => {\n this.setState(() => ({ pX: null, pY: null }));\n });\n\n protected override totalValue() {\n const { data } = this.asProps;\n\n return this.activeDataDefinitions.reduce((acc, { id }) => {\n const itemValue = data[id];\n\n if (typeof itemValue === 'number') {\n acc += itemValue;\n }\n\n return acc;\n }, 0);\n }\n\n private computeCigaretteItems() {\n const { plotWidth, plotHeight, data, invertAxis, minimalBarWidth } = this.asProps;\n\n const dataDefinitions = invertAxis\n ? this.activeDataDefinitions\n : [...this.activeDataDefinitions].reverse();\n\n const count = this.activePositiveDataDefinitions.length;\n const totalGapWidth = DEFAULT_GAP * Math.max(0, count - 1);\n const availableSpace = Math.max(0, (invertAxis ? plotWidth : plotHeight) - totalGapWidth);\n\n const totalValue = this.totalValue();\n\n const dataDefinitionsItemSize = dataDefinitions.map(({ id }) => {\n if (totalValue === 0) {\n return 0;\n }\n\n const itemValue = data[id];\n\n if (typeof itemValue !== 'number') return 0;\n\n return (itemValue / totalValue) * availableSpace;\n });\n\n const result = dataDefinitions.map((dd, index) => ({\n ...dd,\n value: data[dd.id],\n dataWidth: dataDefinitionsItemSize[index],\n visualWidth: dataDefinitionsItemSize[index],\n isMinVisible: false,\n }));\n\n const smallItems = result.filter((r) => {\n const { value, dataWidth } = r;\n\n if (typeof value !== 'number') return false;\n\n return value > 0 && dataWidth < minimalBarWidth;\n });\n\n if (smallItems.length === 0) return result;\n\n let extraNeeded = 0;\n\n for (const smallItem of smallItems) {\n extraNeeded += minimalBarWidth - smallItem.dataWidth;\n smallItem.visualWidth = minimalBarWidth;\n smallItem.isMinVisible = true;\n }\n\n const donors = result.filter((r) => !r.isMinVisible && r.dataWidth > minimalBarWidth);\n const donorCapacity = donors.reduce(\n (s, d) => s + (d.dataWidth - minimalBarWidth),\n 0,\n );\n\n for (const donor of donors) {\n const available = donor.dataWidth - minimalBarWidth;\n const share = available / donorCapacity;\n const taken = share * extraNeeded;\n donor.visualWidth = donor.dataWidth - taken;\n }\n\n return result;\n };\n\n get xScale() {\n const { plotWidth } = this.asProps;\n\n return scaleLinear([0, plotWidth]);\n }\n\n get yScale() {\n const { plotHeight } = this.asProps;\n\n return scaleLinear([plotHeight, 0]);\n }\n\n renderChart() {\n const { invertAxis, data, uid, duration, patterns, plotHeight, plotWidth, onClick } =\n this.asProps;\n const { dataDefinitions, highlightedLine } = this.state;\n\n this.offset = 0;\n\n const items = this.computeCigaretteItems();\n\n return (\n <>\n {items.map((item, index) => {\n const { visualWidth, id } = item;\n const value = data[id];\n\n if (value === interpolateValue || value === null) {\n return null;\n }\n\n const height = invertAxis ? plotHeight - DEFAULT_GAP * 2 : plotWidth - DEFAULT_GAP * 2;\n const width = visualWidth;\n const y = DEFAULT_GAP;\n const x = this.offset;\n const r = height < 28 ? 2 : 4;\n\n this.offset += visualWidth;\n\n if (index < items.length - 1) {\n this.offset += DEFAULT_GAP;\n }\n\n return (\n <Cigarette\n key={item.id}\n dataKey={item.id}\n index={index}\n y={invertAxis ? y : x}\n x={invertAxis ? x : y}\n width={invertAxis ? width : height}\n height={invertAxis ? height : width}\n uid={uid}\n hide={!item.checked}\n duration={duration}\n r={index === 0 || index === dataDefinitions.length - 1 ? r : 0}\n color={item.color}\n patterns={patterns}\n direction={invertAxis ? 'horizontal' : 'vertical'}\n onClick={onClick}\n hovered={\n highlightedLine === index ? true : highlightedLine === -1 ? undefined : false\n }\n />\n );\n })}\n\n <AnimatedClipPath\n aria-hidden\n duration={duration}\n id={uid}\n x='0'\n y='0'\n width={invertAxis ? 0 : plotWidth}\n height={invertAxis ? plotHeight : 0}\n />\n </>\n );\n }\n\n renderTooltip(): React.ReactNode {\n const { data, invertAxis, tooltipTitle, tooltipViewType, showPercentValueInTooltip, styles, showTooltip } =\n this.asProps;\n const { dataDefinitions, pX, pY } = this.state;\n const STooltipChildrenWrapper = Root;\n\n if (!showTooltip) {\n return null;\n }\n\n return (\n <HoverRect.Tooltip\n x={invertAxis ? '' : undefined}\n y={invertAxis ? undefined : ''}\n wMin={100}\n hideHoverLine={true}\n xIndex={pX !== null ? this.visualScale(pX) : undefined}\n yIndex={pY !== null ? this.visualScale(pY) : undefined}\n >\n {(tooltipProps: any) => {\n const dataKey = invertAxis ? tooltipProps.xIndex : tooltipProps.yIndex;\n const showPercentColumn = showPercentValueInTooltip && this.totalValue() !== 0;\n\n if (tooltipViewType === 'single') {\n const item = dataDefinitions.find((dataDefItem) => dataDefItem.id === dataKey);\n if (!item) {\n return {\n children: null,\n };\n }\n\n return {\n children: sstyled(styles)(\n <STooltipChildrenWrapper render={Box} columnsCount={showPercentColumn ? '3' : '2'} __excludeProps={['data']}>\n <HoverRect.Tooltip.Dot mr={2} color={item.color}>\n {item.label}\n </HoverRect.Tooltip.Dot>\n { showPercentColumn && <Text textAlign='end' color='text-secondary'>{this.percentValue(data, item.id)}</Text> }\n <Text textAlign='end' bold>{this.tooltipValueFormatter(data[item.id])}</Text>\n </STooltipChildrenWrapper>,\n ),\n };\n }\n\n return {\n children: sstyled(styles)(\n <Flex direction='column'>\n {tooltipTitle && (\n <HoverRect.Tooltip.Title>Some tooltip title</HoverRect.Tooltip.Title>\n )}\n\n <STooltipChildrenWrapper render={Box} columnsCount={showPercentColumn ? '3' : '2'} __excludeProps={['data']}>\n {dataDefinitions.map((item) => {\n const style = { opacity: item.id === dataKey ? 1 : 0.3 };\n return (\n item.checked && (\n <React.Fragment key={item.id}>\n <HoverRect.Tooltip.Dot mr={2} color={item.color} style={style}>\n {item.label}\n </HoverRect.Tooltip.Dot>\n { showPercentColumn && <Text textAlign='end' color='text-secondary' style={style}>{this.percentValue(data, item.id)}</Text> }\n <Text textAlign='end' bold style={style}>{this.tooltipValueFormatter(data[item.id])}</Text>\n </React.Fragment>\n )\n );\n })}\n\n {this.renderTooltipTotalLine(data)}\n </STooltipChildrenWrapper>\n </Flex>,\n ),\n };\n }}\n </HoverRect.Tooltip>\n );\n }\n\n protected percentValue(data: ObjectData, key: string): string {\n const { percentFormatter } = this.asProps;\n\n const total = this.totalValue();\n\n const value = data[key];\n\n if (typeof value === 'number' && total !== 0) {\n const rawPercent = (100 * value) / total;\n const formattedPercent = percentFormatter ? percentFormatter(rawPercent) : Math.round(rawPercent);\n\n return `${formattedPercent}%`;\n }\n\n if (value === null) {\n return `0%`;\n }\n\n return NOT_A_VALUE;\n }\n\n protected override renderTooltipTotalLine<D extends ObjectData>(dataItem: D) {\n const { showTotalInTooltip, showPercentValueInTooltip } = this.asProps;\n\n if (!showTotalInTooltip) {\n return null;\n }\n\n const total = this.totalValue();\n\n return (\n <>\n <Box mt={2} mr={2}>Total</Box>\n { showPercentValueInTooltip && total !== 0 && <Text mt={2} textAlign='end' color='text-secondary'>{Number.isNaN(total) ? NOT_A_VALUE : '100%'}</Text> }\n <Text mt={2} textAlign='end' bold>{Number.isNaN(total) ? NOT_A_VALUE : total}</Text>\n </>\n );\n }\n\n renderHeader() {\n return this.asProps.header ?? null;\n }\n\n override render() {\n const SChart = Root;\n const { styles, plotWidth, plotHeight, data, patterns, invertAxis, a11yAltTextConfig } = this.asProps;\n\n const header = this.renderHeader();\n\n if (invertAxis) {\n return sstyled(styles)(\n <SChart render={Flex} gap={6} direction='column' __excludeProps={['onClick', 'data']}>\n <Flex direction='column'>\n {header}\n <Plot\n ref={this.plotRef}\n data={data}\n scale={[this.xScale, this.yScale]}\n width={plotWidth}\n height={plotHeight}\n dataHints={this.dataHints}\n patterns={patterns}\n a11yAltTextConfig={a11yAltTextConfig}\n onMouseMove={this.onPlotMouseMove}\n onMouseLeave={this.onPlotMouseLeave}\n >\n {this.renderTooltip()}\n {this.renderChart()}\n </Plot>\n </Flex>\n {this.renderLegend()}\n </SChart>,\n );\n }\n\n return sstyled(styles)(\n <SChart render={Flex} gap={6} __excludeProps={['onClick', 'data']}>\n <Plot\n ref={this.plotRef}\n data={data}\n scale={[this.xScale, this.yScale]}\n width={plotWidth}\n height={plotHeight}\n dataHints={this.dataHints}\n patterns={patterns}\n a11yAltTextConfig={a11yAltTextConfig}\n onMouseMove={this.onPlotMouseMove}\n onMouseLeave={this.onPlotMouseLeave}\n >\n {this.renderTooltip()}\n {this.renderChart()}\n </Plot>\n <Flex direction='column' gap={2}>\n {header && (\n <>\n <Box>{header}</Box>\n <Divider />\n </>\n )}\n {this.renderLegend()}\n </Flex>\n </SChart>,\n );\n }\n\n protected getLegendAriaLabel(): string {\n return this.asProps.getI18nText('legendForChart', { chartType: 'Cigarette' });\n }\n\n private get visualScale() {\n const cigaretteItems = this.computeCigaretteItems();\n\n const { range, domain } = cigaretteItems.reduce<ScaleThresholdConfig>((acc, { id, visualWidth }, index) => {\n const { range, domain } = acc;\n\n if (visualWidth) {\n range.push(id);\n\n if (domain.length === 0) {\n domain.push(visualWidth + DEFAULT_GAP);\n\n return acc;\n }\n\n if (index !== cigaretteItems.length - 1) {\n const lastAddedDomain = domain[domain.length - 1];\n domain.push(lastAddedDomain + visualWidth + DEFAULT_GAP);\n }\n }\n\n return acc;\n }, { range: [], domain: [] });\n\n return scaleThreshold(domain, range);\n }\n}\n\n/**\n * CigaretteChart\n *\n * {@link https://developer.semrush.com/intergalactic/data-display/cigarette-chart/cigarette-chart-api/|API} | {@link https://developer.semrush.com/intergalactic/data-display/cigarette-chart/cigarette-chart-code/|Examples}\n */\nexport const CigaretteChart = createComponent<\n CigaretteChartType,\n typeof CigaretteChartComponent\n>(CigaretteChartComponent);\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"CigaretteChart.type.js","names":[],"sources":["../../../../src/component/Chart/CigaretteChart.type.ts"],"sourcesContent":["import type { Intergalactic } from '@semcore/core';\nimport type React from 'react';\n\nimport type { BaseChartProps } from './AbstractChart.type';\nimport type { interpolateValue } from '../../utils';\n\nexport type CigaretteChartDataKey = string;\n\nexport type CigaretteChartData = Record<CigaretteChartDataKey, number | typeof interpolateValue>;\n\nexport type CigaretteChartProps = Intergalactic.InternalTypings.EfficientOmit<\n BaseChartProps<CigaretteChartData>,\n 'xScale' | 'yScale'\n> & {\n /** Title text displayed in the tooltip */\n tooltipTitle?: string;\n /** Controls whether the tooltip shows all data or single item data */\n tooltipViewType?: 'all' | 'single';\n /** Show percent value in tooltip */\n showPercentValueInTooltip?: boolean;\n /** Custom percent formatter. */\n percentFormatter?: (value: number) => number;\n /** Header content for the chart */\n header?: React.ReactNode;\n /** Animation duration in milliseconds */\n duration?: number;\n /** Click handler that receives the data key and event */\n onClick?: (key: CigaretteChartDataKey, event: React.SyntheticEvent) => void;\n /** Minimal bar width in pixels. Default is `2`. */\n minimalBarWidth?: number;\n};\n\nexport type CigaretteChartType = Intergalactic.Component<'div', CigaretteChartProps>;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"CigaretteChart.type.js","names":[],"sources":["../../../../src/component/Chart/CigaretteChart.type.ts"],"sourcesContent":["import type { Intergalactic } from '@semcore/core';\nimport type React from 'react';\n\nimport type { BaseChartProps } from './AbstractChart.type';\nimport type { interpolateValue } from '../../utils';\n\nexport type CigaretteChartDataKey = string;\n\nexport type CigaretteChartData = Record<CigaretteChartDataKey, number | typeof interpolateValue>;\n\nexport type CigaretteChartProps = Intergalactic.InternalTypings.EfficientOmit<\n BaseChartProps<CigaretteChartData>,\n 'xScale' | 'yScale'\n> & {\n /** Title text displayed in the tooltip */\n tooltipTitle?: string;\n /** Controls whether the tooltip shows all data or single item data */\n tooltipViewType?: 'all' | 'single';\n /** Show percent value in tooltip */\n showPercentValueInTooltip?: boolean;\n /** Custom percent formatter. */\n percentFormatter?: (value: number) => number;\n /** Header content for the chart */\n header?: React.ReactNode;\n /** Animation duration in milliseconds */\n duration?: number;\n /** Click handler that receives the data key and event */\n onClick?: (key: CigaretteChartDataKey, event: React.SyntheticEvent) => void;\n /** Minimal bar width in pixels. Default is `2`. */\n minimalBarWidth?: number;\n};\n\nexport type CigaretteChartDefaultProps = {\n invertAxis: CigaretteChartProps['invertAxis'];\n showXAxis: false;\n showYAxis: false;\n showTooltip: true;\n showLegend: false;\n marginX: 0;\n marginY: 0;\n duration: 500;\n plotWidth: CigaretteChartProps['plotWidth'];\n plotHeight: CigaretteChartProps['plotHeight'];\n showPercentValueInTooltip: false;\n minimalBarWidth: 2;\n};\n\nexport type CigaretteChartType = Intergalactic.Component<'div', CigaretteChartProps>;\n"],"mappings":"","ignoreList":[]}
@@ -10,8 +10,8 @@ var _core = require("@semcore/core");
10
10
  var _i18nEnhance = _interopRequireDefault(require("@semcore/core/lib/utils/enhances/i18nEnhance"));
11
11
  var _d3Scale = require("d3-scale");
12
12
  var _react = _interopRequireDefault(require("react"));
13
- var _ = require("../..");
14
13
  var _AbstractChart = require("./AbstractChart");
14
+ var _ = require("../..");
15
15
  var _intergalacticDynamicLocales = require("../../translations/__intergalactic-dynamic-locales");
16
16
  // @ts-ignore
17
17
 
@@ -87,6 +87,12 @@ class CompactHorizontalBarChartComponent extends _AbstractChart.AbstractChart {
87
87
  return (0, _d3Scale.scaleLinear)().range([marginY, plotWidth]).domain([marginY, sum]);
88
88
  }
89
89
  }
90
+
91
+ /**
92
+ * CompactHorizontalBarChart
93
+ *
94
+ * {@link https://developer.semrush.com/intergalactic/data-display/bar-horizontal-compact/bar-horizontal-compact-api/|API} | {@link https://developer.semrush.com/intergalactic/data-display/bar-horizontal-compact/bar-horizontal-compact-code/|Examples}
95
+ */
90
96
  (0, _defineProperty2.default)(CompactHorizontalBarChartComponent, "displayName", 'Chart.CompactHorizontalBar');
91
97
  (0, _defineProperty2.default)(CompactHorizontalBarChartComponent, "defaultProps", {
92
98
  direction: 'column',
@@ -1 +1 @@
1
- {"version":3,"file":"CompactHorizontalBarChart.js","names":["_core","require","_i18nEnhance","_interopRequireDefault","_d3Scale","_react","_","_AbstractChart","_intergalacticDynamicLocales","CompactHorizontalBarChartComponent","AbstractChart","xScale","asProps","valueScale","yScale","categoryScale","defaultLegendProps","renderChart","x","y","onClickHoverRect","onClickBar","default","createElement","CompactHorizontalBar","renderCompactHorizontalBarTooltip","Hover","onClick","Annotation","Label","Percent","Value","Bar","Background","Fill","data","showTooltip","Tooltip","wMin","index","children","Fragment","Title","Dot","renderTooltip","getLegendAriaLabel","getI18nText","chartType","marginY","plotHeight","scaleBand","range","domain","reverse","map","d","paddingInner","paddingOuter","plotWidth","sum","flatValues","values","reduce","acc","scaleLinear","_defineProperty2","direction","showXAxis","showYAxis","showLegend","i18nEnhance","localizedMessages","CompactHorizontalBarChart","exports","createComponent"],"sources":["../../../../src/component/Chart/CompactHorizontalBarChart.tsx"],"sourcesContent":["import { createComponent } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport { scaleBand, scaleLinear } from 'd3-scale';\nimport React from 'react';\n\nimport type { BaseChartProps, BaseLegendProps } from './AbstractChart.type';\nimport type {\n CompactHorizontalBarChartData,\n CompactHorizontalBarChartProps,\n CompactHorizontalBarChartType,\n} from './CompactHorizontalBarChart.type';\n// @ts-ignore\nimport { CompactHorizontalBar } from '../..';\nimport { AbstractChart } from './AbstractChart';\nimport { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';\n\nclass CompactHorizontalBarChartComponent extends AbstractChart<\n CompactHorizontalBarChartData,\n CompactHorizontalBarChartProps,\n typeof CompactHorizontalBarChartComponent.enhance\n> {\n static displayName = 'Chart.CompactHorizontalBar';\n public static defaultProps: Partial<BaseChartProps<any>> = {\n direction: 'column',\n showXAxis: false,\n showYAxis: false,\n showTooltip: true,\n showLegend: false,\n };\n\n static enhance = [i18nEnhance(localizedMessages)] as const;\n\n get xScale() {\n return this.asProps.xScale ?? this.valueScale;\n }\n\n get yScale() {\n return this.asProps.yScale ?? this.categoryScale;\n }\n\n protected defaultLegendProps(): Partial<BaseLegendProps> {\n return {};\n }\n\n renderChart() {\n const { x, y, onClickHoverRect, onClickBar } = this.asProps;\n\n return (\n <CompactHorizontalBar x={x} y={y}>\n {this.renderCompactHorizontalBarTooltip()}\n <CompactHorizontalBar.Hover onClick={onClickHoverRect} />\n <CompactHorizontalBar.Annotation>\n <CompactHorizontalBar.Label />\n <CompactHorizontalBar.Percent />\n <CompactHorizontalBar.Value />\n </CompactHorizontalBar.Annotation>\n <CompactHorizontalBar.Bar onClick={onClickBar}>\n <CompactHorizontalBar.Bar.Background />\n <CompactHorizontalBar.Bar.Fill />\n </CompactHorizontalBar.Bar>\n </CompactHorizontalBar>\n );\n }\n\n protected renderCompactHorizontalBarTooltip(): React.ReactNode {\n const { data, x, y, showTooltip } = this.asProps;\n\n if (!showTooltip) {\n return null;\n }\n\n return (\n <CompactHorizontalBar.Tooltip wMin={100}>\n {({ index }: any) => {\n return {\n children: (\n <>\n <CompactHorizontalBar.Tooltip.Title>\n {data[index][y]}\n </CompactHorizontalBar.Tooltip.Title>\n\n <CompactHorizontalBar.Tooltip.Dot>\n {data[index][x]}\n </CompactHorizontalBar.Tooltip.Dot>\n </>\n ),\n };\n }}\n </CompactHorizontalBar.Tooltip>\n );\n }\n\n renderTooltip(): React.ReactNode {\n return null;\n }\n\n protected getLegendAriaLabel(): string {\n return this.asProps.getI18nText('legendForChart', { chartType: 'CompactHorizontalBar' });\n }\n\n private get categoryScale() {\n const { marginY = 40, plotHeight, data, y } = this.asProps;\n\n return scaleBand()\n .range([plotHeight - marginY, marginY])\n .domain([...data].reverse().map((d) => d[y]) as any)\n .paddingInner(0.6)\n .paddingOuter(0.2);\n }\n\n private get valueScale() {\n const { marginY = 0, plotWidth } = this.asProps;\n\n const sum = [...super.flatValues.values()].reduce((acc, d) => acc + d, 0);\n\n return scaleLinear().range([marginY, plotWidth]).domain([marginY, sum]);\n }\n}\n\nexport const CompactHorizontalBarChart: CompactHorizontalBarChartType = createComponent(\n CompactHorizontalBarChartComponent,\n);\n"],"mappings":";;;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAF,sBAAA,CAAAF,OAAA;AASA,IAAAK,CAAA,GAAAL,OAAA;AACA,IAAAM,cAAA,GAAAN,OAAA;AACA,IAAAO,4BAAA,GAAAP,OAAA;AAHA;;AAKA,MAAMQ,kCAAkC,SAASC,4BAAa,CAI5D;EAYA,IAAIC,MAAMA,CAAA,EAAG;IACX,OAAO,IAAI,CAACC,OAAO,CAACD,MAAM,IAAI,IAAI,CAACE,UAAU;EAC/C;EAEA,IAAIC,MAAMA,CAAA,EAAG;IACX,OAAO,IAAI,CAACF,OAAO,CAACE,MAAM,IAAI,IAAI,CAACC,aAAa;EAClD;EAEUC,kBAAkBA,CAAA,EAA6B;IACvD,OAAO,CAAC,CAAC;EACX;EAEAC,WAAWA,CAAA,EAAG;IACZ,MAAM;MAAEC,CAAC;MAAEC,CAAC;MAAEC,gBAAgB;MAAEC;IAAW,CAAC,GAAG,IAAI,CAACT,OAAO;IAE3D,oBACEP,MAAA,CAAAiB,OAAA,CAAAC,aAAA,CAACjB,CAAA,CAAAkB,oBAAoB;MAACN,CAAC,EAAEA,CAAE;MAACC,CAAC,EAAEA;IAAE,GAC9B,IAAI,CAACM,iCAAiC,CAAC,CAAC,eACzCpB,MAAA,CAAAiB,OAAA,CAAAC,aAAA,CAACjB,CAAA,CAAAkB,oBAAoB,CAACE,KAAK;MAACC,OAAO,EAAEP;IAAiB,CAAE,CAAC,eACzDf,MAAA,CAAAiB,OAAA,CAAAC,aAAA,CAACjB,CAAA,CAAAkB,oBAAoB,CAACI,UAAU,qBAC9BvB,MAAA,CAAAiB,OAAA,CAAAC,aAAA,CAACjB,CAAA,CAAAkB,oBAAoB,CAACK,KAAK,MAAE,CAAC,eAC9BxB,MAAA,CAAAiB,OAAA,CAAAC,aAAA,CAACjB,CAAA,CAAAkB,oBAAoB,CAACM,OAAO,MAAE,CAAC,eAChCzB,MAAA,CAAAiB,OAAA,CAAAC,aAAA,CAACjB,CAAA,CAAAkB,oBAAoB,CAACO,KAAK,MAAE,CACE,CAAC,eAClC1B,MAAA,CAAAiB,OAAA,CAAAC,aAAA,CAACjB,CAAA,CAAAkB,oBAAoB,CAACQ,GAAG;MAACL,OAAO,EAAEN;IAAW,gBAC5ChB,MAAA,CAAAiB,OAAA,CAAAC,aAAA,CAACjB,CAAA,CAAAkB,oBAAoB,CAACQ,GAAG,CAACC,UAAU,MAAE,CAAC,eACvC5B,MAAA,CAAAiB,OAAA,CAAAC,aAAA,CAACjB,CAAA,CAAAkB,oBAAoB,CAACQ,GAAG,CAACE,IAAI,MAAE,CACR,CACN,CAAC;EAE3B;EAEUT,iCAAiCA,CAAA,EAAoB;IAC7D,MAAM;MAAEU,IAAI;MAAEjB,CAAC;MAAEC,CAAC;MAAEiB;IAAY,CAAC,GAAG,IAAI,CAACxB,OAAO;IAEhD,IAAI,CAACwB,WAAW,EAAE;MAChB,OAAO,IAAI;IACb;IAEA,oBACE/B,MAAA,CAAAiB,OAAA,CAAAC,aAAA,CAACjB,CAAA,CAAAkB,oBAAoB,CAACa,OAAO;MAACC,IAAI,EAAE;IAAI,GACrC,CAAC;MAAEC;IAAW,CAAC,KAAK;MACnB,OAAO;QACLC,QAAQ,eACNnC,MAAA,CAAAiB,OAAA,CAAAC,aAAA,CAAAlB,MAAA,CAAAiB,OAAA,CAAAmB,QAAA,qBACEpC,MAAA,CAAAiB,OAAA,CAAAC,aAAA,CAACjB,CAAA,CAAAkB,oBAAoB,CAACa,OAAO,CAACK,KAAK,QAChCP,IAAI,CAACI,KAAK,CAAC,CAACpB,CAAC,CACoB,CAAC,eAErCd,MAAA,CAAAiB,OAAA,CAAAC,aAAA,CAACjB,CAAA,CAAAkB,oBAAoB,CAACa,OAAO,CAACM,GAAG,QAC9BR,IAAI,CAACI,KAAK,CAAC,CAACrB,CAAC,CACkB,CAClC;MAEN,CAAC;IACH,CAC4B,CAAC;EAEnC;EAEA0B,aAAaA,CAAA,EAAoB;IAC/B,OAAO,IAAI;EACb;EAEUC,kBAAkBA,CAAA,EAAW;IACrC,OAAO,IAAI,CAACjC,OAAO,CAACkC,WAAW,CAAC,gBAAgB,EAAE;MAAEC,SAAS,EAAE;IAAuB,CAAC,CAAC;EAC1F;EAEA,IAAYhC,aAAaA,CAAA,EAAG;IAC1B,MAAM;MAAEiC,OAAO,GAAG,EAAE;MAAEC,UAAU;MAAEd,IAAI;MAAEhB;IAAE,CAAC,GAAG,IAAI,CAACP,OAAO;IAE1D,OAAO,IAAAsC,kBAAS,EAAC,CAAC,CACfC,KAAK,CAAC,CAACF,UAAU,GAAGD,OAAO,EAAEA,OAAO,CAAC,CAAC,CACtCI,MAAM,CAAC,CAAC,GAAGjB,IAAI,CAAC,CAACkB,OAAO,CAAC,CAAC,CAACC,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACpC,CAAC,CAAC,CAAQ,CAAC,CACnDqC,YAAY,CAAC,GAAG,CAAC,CACjBC,YAAY,CAAC,GAAG,CAAC;EACtB;EAEA,IAAY5C,UAAUA,CAAA,EAAG;IACvB,MAAM;MAAEmC,OAAO,GAAG,CAAC;MAAEU;IAAU,CAAC,GAAG,IAAI,CAAC9C,OAAO;IAE/C,MAAM+C,GAAG,GAAG,CAAC,GAAG,KAAK,CAACC,UAAU,CAACC,MAAM,CAAC,CAAC,CAAC,CAACC,MAAM,CAAC,CAACC,GAAG,EAAER,CAAC,KAAKQ,GAAG,GAAGR,CAAC,EAAE,CAAC,CAAC;IAEzE,OAAO,IAAAS,oBAAW,EAAC,CAAC,CAACb,KAAK,CAAC,CAACH,OAAO,EAAEU,SAAS,CAAC,CAAC,CAACN,MAAM,CAAC,CAACJ,OAAO,EAAEW,GAAG,CAAC,CAAC;EACzE;AACF;AAAC,IAAAM,gBAAA,CAAA3C,OAAA,EArGKb,kCAAkC,iBAKjB,4BAA4B;AAAA,IAAAwD,gBAAA,CAAA3C,OAAA,EAL7Cb,kCAAkC,kBAMqB;EACzDyD,SAAS,EAAE,QAAQ;EACnBC,SAAS,EAAE,KAAK;EAChBC,SAAS,EAAE,KAAK;EAChBhC,WAAW,EAAE,IAAI;EACjBiC,UAAU,EAAE;AACd,CAAC;AAAA,IAAAJ,gBAAA,CAAA3C,OAAA,EAZGb,kCAAkC,aAcrB,CAAC,IAAA6D,oBAAW,EAACC,8CAAiB,CAAC,CAAC;AAyF5C,MAAMC,yBAAwD,GAAAC,OAAA,CAAAD,yBAAA,GAAG,IAAAE,qBAAe,EACrFjE,kCACF,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"CompactHorizontalBarChart.js","names":["_core","require","_i18nEnhance","_interopRequireDefault","_d3Scale","_react","_AbstractChart","_","_intergalacticDynamicLocales","CompactHorizontalBarChartComponent","AbstractChart","xScale","asProps","valueScale","yScale","categoryScale","defaultLegendProps","renderChart","x","y","onClickHoverRect","onClickBar","default","createElement","CompactHorizontalBar","renderCompactHorizontalBarTooltip","Hover","onClick","Annotation","Label","Percent","Value","Bar","Background","Fill","data","showTooltip","Tooltip","wMin","index","children","Fragment","Title","Dot","renderTooltip","getLegendAriaLabel","getI18nText","chartType","marginY","plotHeight","scaleBand","range","domain","reverse","map","d","paddingInner","paddingOuter","plotWidth","sum","flatValues","values","reduce","acc","scaleLinear","_defineProperty2","direction","showXAxis","showYAxis","showLegend","i18nEnhance","localizedMessages","CompactHorizontalBarChart","exports","createComponent"],"sources":["../../../../src/component/Chart/CompactHorizontalBarChart.tsx"],"sourcesContent":["import { createComponent } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport { scaleBand, scaleLinear } from 'd3-scale';\nimport React from 'react';\n\nimport type { ChartState } from './AbstractChart';\nimport { AbstractChart } from './AbstractChart';\nimport type { BaseLegendProps } from './AbstractChart.type';\nimport type {\n CompactHorizontalBarChartData,\n CompactHorizontalBarChartDefaultProps,\n CompactHorizontalBarChartProps,\n CompactHorizontalBarChartType,\n} from './CompactHorizontalBarChart.type';\n// @ts-ignore\nimport { CompactHorizontalBar } from '../..';\nimport { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';\n\nclass CompactHorizontalBarChartComponent extends AbstractChart<\n CompactHorizontalBarChartData,\n CompactHorizontalBarChartProps,\n typeof CompactHorizontalBarChartComponent.enhance,\n {},\n ChartState,\n CompactHorizontalBarChartDefaultProps\n> {\n static displayName = 'Chart.CompactHorizontalBar';\n public static defaultProps = {\n direction: 'column',\n showXAxis: false,\n showYAxis: false,\n showTooltip: true,\n showLegend: false,\n } as const;\n\n static enhance = [i18nEnhance(localizedMessages)] as const;\n\n get xScale() {\n return this.asProps.xScale ?? this.valueScale;\n }\n\n get yScale() {\n return this.asProps.yScale ?? this.categoryScale;\n }\n\n protected defaultLegendProps(): Partial<BaseLegendProps> {\n return {};\n }\n\n renderChart() {\n const { x, y, onClickHoverRect, onClickBar } = this.asProps;\n\n return (\n <CompactHorizontalBar x={x} y={y}>\n {this.renderCompactHorizontalBarTooltip()}\n <CompactHorizontalBar.Hover onClick={onClickHoverRect} />\n <CompactHorizontalBar.Annotation>\n <CompactHorizontalBar.Label />\n <CompactHorizontalBar.Percent />\n <CompactHorizontalBar.Value />\n </CompactHorizontalBar.Annotation>\n <CompactHorizontalBar.Bar onClick={onClickBar}>\n <CompactHorizontalBar.Bar.Background />\n <CompactHorizontalBar.Bar.Fill />\n </CompactHorizontalBar.Bar>\n </CompactHorizontalBar>\n );\n }\n\n protected renderCompactHorizontalBarTooltip(): React.ReactNode {\n const { data, x, y, showTooltip } = this.asProps;\n\n if (!showTooltip) {\n return null;\n }\n\n return (\n <CompactHorizontalBar.Tooltip wMin={100}>\n {({ index }: any) => {\n return {\n children: (\n <>\n <CompactHorizontalBar.Tooltip.Title>\n {data[index][y]}\n </CompactHorizontalBar.Tooltip.Title>\n\n <CompactHorizontalBar.Tooltip.Dot>\n {data[index][x]}\n </CompactHorizontalBar.Tooltip.Dot>\n </>\n ),\n };\n }}\n </CompactHorizontalBar.Tooltip>\n );\n }\n\n renderTooltip(): React.ReactNode {\n return null;\n }\n\n protected getLegendAriaLabel(): string {\n return this.asProps.getI18nText('legendForChart', { chartType: 'CompactHorizontalBar' });\n }\n\n private get categoryScale() {\n const { marginY = 40, plotHeight, data, y } = this.asProps;\n\n return scaleBand()\n .range([plotHeight - marginY, marginY])\n .domain([...data].reverse().map((d) => d[y]) as any)\n .paddingInner(0.6)\n .paddingOuter(0.2);\n }\n\n private get valueScale() {\n const { marginY = 0, plotWidth } = this.asProps;\n\n const sum = [...super.flatValues.values()].reduce((acc, d) => acc + d, 0);\n\n return scaleLinear().range([marginY, plotWidth]).domain([marginY, sum]);\n }\n}\n\n/**\n * CompactHorizontalBarChart\n *\n * {@link https://developer.semrush.com/intergalactic/data-display/bar-horizontal-compact/bar-horizontal-compact-api/|API} | {@link https://developer.semrush.com/intergalactic/data-display/bar-horizontal-compact/bar-horizontal-compact-code/|Examples}\n */\nexport const CompactHorizontalBarChart = createComponent<\n CompactHorizontalBarChartType,\n typeof CompactHorizontalBarChartComponent\n>(\n CompactHorizontalBarChartComponent,\n);\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"CompactHorizontalBarChart.type.js","names":[],"sources":["../../../../src/component/Chart/CompactHorizontalBarChart.type.ts"],"sourcesContent":["import type { Flex } from '@semcore/base-components';\nimport type { Intergalactic } from '@semcore/core';\nimport type { ScaleBand, ScaleLinear, ScaleTime } from 'd3-scale';\nimport type React from 'react';\n\nimport type { BaseChartProps } from './AbstractChart.type';\n\ntype BarKey = string;\n\nexport type CompactHorizontalBarChartData = Array<Record<BarKey, number | string>>;\n\nexport type CompactHorizontalBarChartProps = Intergalactic.InternalTypings.EfficientOmit<\n BaseChartProps<CompactHorizontalBarChartData>,\n 'showTotalInTooltip'\n> & {\n /** Field name from data array for the x-axis values */\n x: string;\n /** Field name from data array for the y-axis values */\n y: string;\n /** Custom x-axis scale */\n xScale?: ScaleBand<any> | ScaleTime<any, any>;\n /** Custom y-axis scale */\n yScale?: ScaleLinear<any, any>;\n\n /** Handle click by `HoverRect`. `index` is an index of the data array. */\n onClickHoverRect?: (index: number, e: React.SyntheticEvent) => void;\n\n /** Handle click by Bar. */\n onClickBar?: (barItem: number, e: React.SyntheticEvent) => void;\n};\n\nexport type CompactHorizontalBarChartType = Intergalactic.Component<\n typeof Flex,\n CompactHorizontalBarChartProps\n>;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"CompactHorizontalBarChart.type.js","names":[],"sources":["../../../../src/component/Chart/CompactHorizontalBarChart.type.ts"],"sourcesContent":["import type { Flex } from '@semcore/base-components';\nimport type { Intergalactic } from '@semcore/core';\nimport type { ScaleBand, ScaleLinear, ScaleTime } from 'd3-scale';\nimport type React from 'react';\n\nimport type { BaseChartProps } from './AbstractChart.type';\n\ntype BarKey = string;\n\nexport type CompactHorizontalBarChartData = Array<Record<BarKey, number | string>>;\n\nexport type CompactHorizontalBarChartProps = Intergalactic.InternalTypings.EfficientOmit<\n BaseChartProps<CompactHorizontalBarChartData>,\n 'showTotalInTooltip'\n> & {\n /** Field name from data array for the x-axis values */\n x: string;\n /** Field name from data array for the y-axis values */\n y: string;\n /** Custom x-axis scale */\n xScale?: ScaleBand<any> | ScaleTime<any, any>;\n /** Custom y-axis scale */\n yScale?: ScaleLinear<any, any>;\n\n /** Handle click by `HoverRect`. `index` is an index of the data array. */\n onClickHoverRect?: (index: number, e: React.SyntheticEvent) => void;\n\n /** Handle click by Bar. */\n onClickBar?: (barItem: number, e: React.SyntheticEvent) => void;\n};\n\nexport type CompactHorizontalBarChartDefaultProps = {\n direction: 'column';\n showXAxis: false;\n showYAxis: false;\n showTooltip: true;\n showLegend: false;\n};\n\nexport type CompactHorizontalBarChartType = Intergalactic.Component<\n typeof Flex,\n CompactHorizontalBarChartProps\n>;\n"],"mappings":"","ignoreList":[]}
@@ -93,6 +93,12 @@ class DonutChartComponent extends _AbstractChart.AbstractChart {
93
93
  });
94
94
  }
95
95
  }
96
+
97
+ /**
98
+ * DonutChart
99
+ *
100
+ * {@link https://developer.semrush.com/intergalactic/data-display/donut-chart/donut-chart-api/|API} | {@link https://developer.semrush.com/intergalactic/data-display/donut-chart/donut-chart-code/|Examples}
101
+ */
96
102
  (0, _defineProperty2.default)(DonutChartComponent, "displayName", 'Chart.Donut');
97
103
  (0, _defineProperty2.default)(DonutChartComponent, "defaultProps", {
98
104
  direction: 'row-reverse',
@@ -1 +1 @@
1
- {"version":3,"file":"DonutChart.js","names":["_baseComponents","require","_core","_i18nEnhance","_interopRequireDefault","_typography","_d3Scale","_react","_","_AbstractChart","_intergalacticDynamicLocales","DonutChartComponent","AbstractChart","xScale","asProps","scaleLinear","yScale","defaultLegendProps","legendType","renderChart","innerRadius","halfsize","innerLabel","onClickPie","dataDefinitions","highlightedLine","state","checkedLegendItems","filter","item","checked","default","createElement","Donut","onClick","length","EmptyData","map","index","Pie","key","id","dataKey","name","label","color","active","Label","renderTooltip","data","Tooltip","title","find","children","Fragment","Title","Flex","justifyContent","Text","bold","tooltipValueFormatter","getLegendAriaLabel","getI18nText","chartType","_defineProperty2","direction","alignItems","marginX","marginY","i18nEnhance","localizedMessages","DonutChart","exports","createComponent"],"sources":["../../../../src/component/Chart/DonutChart.tsx"],"sourcesContent":["import { Flex } from '@semcore/base-components';\nimport { createComponent } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport { Text } from '@semcore/typography';\nimport { scaleLinear } from 'd3-scale';\nimport React from 'react';\n\n// @ts-ignore\nimport { Donut } from '../..';\nimport { AbstractChart } from './AbstractChart';\nimport type { DonutChartData, DonutChartProps, DonutChartType } from './DonutChart.type';\nimport { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';\n\nclass DonutChartComponent extends AbstractChart<\n DonutChartData,\n DonutChartProps,\n typeof DonutChartComponent.enhance\n> {\n static displayName = 'Chart.Donut';\n static defaultProps: Partial<DonutChartProps> = {\n direction: 'row-reverse',\n alignItems: 'flex-start',\n innerRadius: 100,\n marginX: 0,\n marginY: 0,\n };\n\n static enhance = [i18nEnhance(localizedMessages)] as const;\n\n get xScale() {\n const { xScale } = this.asProps;\n\n if (xScale) {\n return xScale;\n }\n\n return scaleLinear();\n }\n\n get yScale() {\n const { yScale } = this.asProps;\n\n if (yScale) {\n return yScale;\n }\n\n return scaleLinear();\n }\n\n defaultLegendProps() {\n return {\n legendType: 'Table' as const,\n };\n }\n\n renderChart() {\n const { innerRadius, halfsize, innerLabel, onClickPie } = this.asProps;\n const { dataDefinitions, highlightedLine } = this.state;\n\n const checkedLegendItems = dataDefinitions.filter((item) => item.checked);\n\n return (\n <Donut onClick={onClickPie} halfsize={halfsize} innerRadius={innerRadius}>\n {checkedLegendItems.length === 0 && <Donut.EmptyData />}\n {checkedLegendItems.map((item, index) => {\n return (\n <Donut.Pie\n key={item.id}\n dataKey={item.id}\n name={item.label}\n color={item.color}\n active={highlightedLine === index}\n />\n );\n })}\n {innerLabel && <Donut.Label>{innerLabel}</Donut.Label>}\n </Donut>\n );\n }\n\n renderTooltip() {\n const { data } = this.asProps;\n const { dataDefinitions } = this.state;\n\n return (\n <Donut.Tooltip>\n {({ dataKey }: any) => {\n const title = dataDefinitions.find((item) => item.id === dataKey);\n\n return {\n children: (\n <>\n <Donut.Tooltip.Title>{title?.label || dataKey}</Donut.Tooltip.Title>\n <Flex justifyContent='space-between'>\n <Text bold>{this.tooltipValueFormatter(data[dataKey])}</Text>\n </Flex>\n </>\n ),\n };\n }}\n </Donut.Tooltip>\n );\n }\n\n protected getLegendAriaLabel(): string {\n return this.asProps.getI18nText('legendForChart', { chartType: 'Donut' });\n }\n}\n\nexport const DonutChart: DonutChartType = createComponent(DonutChartComponent);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DonutChart.js","names":["_baseComponents","require","_core","_i18nEnhance","_interopRequireDefault","_typography","_d3Scale","_react","_","_AbstractChart","_intergalacticDynamicLocales","DonutChartComponent","AbstractChart","xScale","asProps","scaleLinear","yScale","defaultLegendProps","legendType","renderChart","innerRadius","halfsize","innerLabel","onClickPie","dataDefinitions","highlightedLine","state","checkedLegendItems","filter","item","checked","default","createElement","Donut","onClick","length","EmptyData","map","index","Pie","key","id","dataKey","name","label","color","active","Label","renderTooltip","data","Tooltip","title","find","children","Fragment","Title","Flex","justifyContent","Text","bold","tooltipValueFormatter","getLegendAriaLabel","getI18nText","chartType","_defineProperty2","direction","alignItems","marginX","marginY","i18nEnhance","localizedMessages","DonutChart","exports","createComponent"],"sources":["../../../../src/component/Chart/DonutChart.tsx"],"sourcesContent":["import { Flex } from '@semcore/base-components';\nimport { createComponent } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport { Text } from '@semcore/typography';\nimport { scaleLinear } from 'd3-scale';\nimport React from 'react';\n\n// @ts-ignore\nimport { Donut } from '../..';\nimport type { ChartState } from './AbstractChart';\nimport { AbstractChart } from './AbstractChart';\nimport type { DonutChartData, DonutChartDefaultProps, DonutChartProps, DonutChartType } from './DonutChart.type';\nimport { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';\n\nclass DonutChartComponent extends AbstractChart<\n DonutChartData,\n DonutChartProps,\n typeof DonutChartComponent.enhance,\n {},\n ChartState,\n DonutChartDefaultProps\n> {\n static displayName = 'Chart.Donut';\n static defaultProps = {\n direction: 'row-reverse',\n alignItems: 'flex-start',\n innerRadius: 100,\n marginX: 0,\n marginY: 0,\n } as const;\n\n static enhance = [i18nEnhance(localizedMessages)] as const;\n\n get xScale() {\n const { xScale } = this.asProps;\n\n if (xScale) {\n return xScale;\n }\n\n return scaleLinear();\n }\n\n get yScale() {\n const { yScale } = this.asProps;\n\n if (yScale) {\n return yScale;\n }\n\n return scaleLinear();\n }\n\n defaultLegendProps() {\n return {\n legendType: 'Table' as const,\n };\n }\n\n renderChart() {\n const { innerRadius, halfsize, innerLabel, onClickPie } = this.asProps;\n const { dataDefinitions, highlightedLine } = this.state;\n\n const checkedLegendItems = dataDefinitions.filter((item) => item.checked);\n\n return (\n <Donut onClick={onClickPie} halfsize={halfsize} innerRadius={innerRadius}>\n {checkedLegendItems.length === 0 && <Donut.EmptyData />}\n {checkedLegendItems.map((item, index) => {\n return (\n <Donut.Pie\n key={item.id}\n dataKey={item.id}\n name={item.label}\n color={item.color}\n active={highlightedLine === index}\n />\n );\n })}\n {innerLabel && <Donut.Label>{innerLabel}</Donut.Label>}\n </Donut>\n );\n }\n\n renderTooltip() {\n const { data } = this.asProps;\n const { dataDefinitions } = this.state;\n\n return (\n <Donut.Tooltip>\n {({ dataKey }: any) => {\n const title = dataDefinitions.find((item) => item.id === dataKey);\n\n return {\n children: (\n <>\n <Donut.Tooltip.Title>{title?.label || dataKey}</Donut.Tooltip.Title>\n <Flex justifyContent='space-between'>\n <Text bold>{this.tooltipValueFormatter(data[dataKey])}</Text>\n </Flex>\n </>\n ),\n };\n }}\n </Donut.Tooltip>\n );\n }\n\n protected getLegendAriaLabel(): string {\n return this.asProps.getI18nText('legendForChart', { chartType: 'Donut' });\n }\n}\n\n/**\n * DonutChart\n *\n * {@link https://developer.semrush.com/intergalactic/data-display/donut-chart/donut-chart-api/|API} | {@link https://developer.semrush.com/intergalactic/data-display/donut-chart/donut-chart-code/|Examples}\n */\nexport const DonutChart = createComponent<\n DonutChartType,\n typeof DonutChartComponent\n>(DonutChartComponent);\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"DonutChart.type.js","names":[],"sources":["../../../../src/component/Chart/DonutChart.type.ts"],"sourcesContent":["import type { Flex } from '@semcore/base-components';\nimport type { Intergalactic } from '@semcore/core';\nimport type { ScaleLinear } from 'd3-scale';\nimport type React from 'react';\n\nimport type { BaseChartProps } from './AbstractChart.type';\n\nexport type DataKey = string;\n\nexport type DonutChartData = Record<DataKey, number>;\n\nexport type DonutChartProps = Intergalactic.InternalTypings.EfficientOmit<\n BaseChartProps<DonutChartData>,\n 'showTotalInTooltip'\n> & {\n /** Internal */\n groupKey?: never;\n /** Custom x-axis scale */\n xScale?: ScaleLinear<any, any>;\n /** Custom y-axis scale */\n yScale?: ScaleLinear<any, any>;\n /** Controls the inner radius of the donut */\n innerRadius?: number;\n /** Creates a semi-donut chart when enabled */\n halfsize?: boolean;\n /** Content displayed in the center of the donut */\n innerLabel?: React.ReactNode;\n /** Callback triggered when a user clicks on a pie */\n onClickPie?: (key: DataKey, e: React.SyntheticEvent) => void;\n};\n\nexport type DonutChartType = Intergalactic.Component<typeof Flex, DonutChartProps>;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"DonutChart.type.js","names":[],"sources":["../../../../src/component/Chart/DonutChart.type.ts"],"sourcesContent":["import type { Flex } from '@semcore/base-components';\nimport type { Intergalactic } from '@semcore/core';\nimport type { ScaleLinear } from 'd3-scale';\nimport type React from 'react';\n\nimport type { BaseChartProps } from './AbstractChart.type';\n\nexport type DataKey = string;\n\nexport type DonutChartData = Record<DataKey, number>;\n\nexport type DonutChartProps = Intergalactic.InternalTypings.EfficientOmit<\n BaseChartProps<DonutChartData>,\n 'showTotalInTooltip'\n> & {\n /** Internal */\n groupKey?: never;\n /** Custom x-axis scale */\n xScale?: ScaleLinear<any, any>;\n /** Custom y-axis scale */\n yScale?: ScaleLinear<any, any>;\n /** Controls the inner radius of the donut */\n innerRadius?: number;\n /** Creates a semi-donut chart when enabled */\n halfsize?: boolean;\n /** Content displayed in the center of the donut */\n innerLabel?: React.ReactNode;\n /** Callback triggered when a user clicks on a pie */\n onClickPie?: (key: DataKey, e: React.SyntheticEvent) => void;\n};\n\nexport type DonutChartDefaultProps = {\n direction: 'row-reverse';\n alignItems: 'flex-start';\n innerRadius: 100;\n marginX: 0;\n marginY: 0;\n};\n\nexport type DonutChartType = Intergalactic.Component<typeof Flex, DonutChartProps>;\n"],"mappings":"","ignoreList":[]}
@@ -143,7 +143,19 @@ class HistogramChartComponent extends _AbstractChart.AbstractChart {
143
143
  });
144
144
  }
145
145
  }
146
+
147
+ /**
148
+ * HistogramChart
149
+ *
150
+ * {@link https://developer.semrush.com/intergalactic/data-display/histogram-chart/histogram-chart-api/|API}
151
+ */
146
152
  (0, _defineProperty2.default)(HistogramChartComponent, "displayName", 'Chart.Histogram');
147
153
  (0, _defineProperty2.default)(HistogramChartComponent, "enhance", [(0, _i18nEnhance.default)(_intergalacticDynamicLocales.localizedMessages)]);
154
+ (0, _defineProperty2.default)(HistogramChartComponent, "defaultProps", {
155
+ direction: 'column',
156
+ showXAxis: true,
157
+ showYAxis: true,
158
+ showTooltip: true
159
+ });
148
160
  const HistogramChart = exports.HistogramChart = (0, _core.createComponent)(HistogramChartComponent);
149
161
  //# sourceMappingURL=HistogramChart.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HistogramChart.js","names":["_core","require","_i18nEnhance","_interopRequireDefault","_d3Scale","_react","_","_AbstractChart","_intergalacticDynamicLocales","HistogramChartComponent","AbstractChart","xScale","marginY","marginX","plotWidth","plotHeight","invertAxis","data","groupKey","asProps","testItem","range","plotPadding","Date","Number","isNaN","getMilliseconds","domain","minMax","scaleTime","map","item","scaleBand","paddingInner","paddingOuter","yScale","max","isStack","reduce","barSum","Object","values","sum","val","flatValues","Math","scaleLinear","dataDefinitions","state","length","renderChart","highlightedLine","default","createElement","StackBar","x","undefined","y","index","BarComponent","HorizontalBar","Bar","commonBarComponentProps","color","transparent","id","checked","_extends2","key","renderTooltip","HoverRect","Tooltip","wMin","xIndex","yIndex","dataItem","children","getTooltipChildren","getLegendAriaLabel","getI18nText","chartType","_defineProperty2","i18nEnhance","localizedMessages","HistogramChart","exports","createComponent"],"sources":["../../../../src/component/Chart/HistogramChart.tsx"],"sourcesContent":["import { createComponent } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport { scaleBand, scaleLinear, type ScaleLinear, scaleTime } from 'd3-scale';\nimport React from 'react';\n\n// @ts-ignore\nimport { Bar, minMax, HoverRect, StackBar, type BarProps } from '../..';\nimport { AbstractChart } from './AbstractChart';\nimport type { HistogramChartData, HistogramChartProps, HistogramChartType } from './HistogramChart.type';\nimport { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';\n\nclass HistogramChartComponent extends AbstractChart<\n HistogramChartData,\n HistogramChartProps,\n typeof HistogramChartComponent.enhance\n> {\n static displayName = 'Chart.Histogram';\n\n static enhance = [i18nEnhance(localizedMessages)] as const;\n\n get xScale() {\n const {\n xScale,\n marginY = 30,\n marginX = 30,\n plotWidth,\n plotHeight,\n invertAxis,\n data,\n groupKey,\n } = this.asProps;\n\n if (xScale) {\n return xScale;\n }\n\n const testItem = data[0][groupKey];\n const range = invertAxis\n ? [plotHeight - marginX, this.plotPadding]\n : [marginY, plotWidth - this.plotPadding];\n\n if (testItem instanceof Date && !Number.isNaN(testItem.getMilliseconds())) {\n const domain = minMax(data, groupKey);\n\n return scaleTime(domain, range);\n }\n\n const domain = data.map((item) => item[groupKey]);\n\n return scaleBand(domain, range).paddingInner(0.05).paddingOuter(0.2);\n }\n\n get yScale(): ScaleLinear<any, any> {\n const {\n yScale,\n marginY = 30,\n marginX = 30,\n plotHeight,\n plotWidth,\n invertAxis,\n data,\n } = this.asProps;\n\n let max: number;\n\n if (this.isStack) {\n max = data.reduce((max, item) => {\n const barSum = Object.values(item).reduce<number>((sum, val) => {\n if (val instanceof Date && !Number.isNaN(val.getMilliseconds())) {\n return sum + val.getMilliseconds();\n }\n\n return sum + (val as number);\n }, 0);\n\n if (barSum > max) {\n max = barSum;\n }\n\n return max;\n }, 0);\n } else {\n const flatValues = super.flatValues;\n\n max = Math.max(...flatValues);\n }\n\n return (\n yScale ??\n scaleLinear()\n .range(\n invertAxis\n ? [marginY, plotWidth - this.plotPadding]\n : [plotHeight - marginX, this.plotPadding],\n )\n .domain([0, max])\n );\n }\n\n get isStack(): boolean {\n const { dataDefinitions } = this.state;\n\n return dataDefinitions.length > 1;\n }\n\n renderChart() {\n const { groupKey, invertAxis } = this.asProps;\n const { dataDefinitions, highlightedLine } = this.state;\n\n if (this.isStack) {\n return (\n <StackBar x={invertAxis ? undefined : groupKey} y={invertAxis ? groupKey : undefined}>\n {dataDefinitions.map((item, index) => {\n const BarComponent = invertAxis ? StackBar.HorizontalBar : StackBar.Bar;\n\n const commonBarComponentProps: BarProps = {\n color: item.color,\n transparent: highlightedLine !== -1 && highlightedLine !== index,\n };\n\n if (invertAxis) {\n commonBarComponentProps.x = item.id;\n } else {\n commonBarComponentProps.y = item.id;\n }\n\n return item.checked && <BarComponent key={item.id} {...commonBarComponentProps} />;\n })}\n </StackBar>\n );\n }\n\n const item = dataDefinitions[0];\n\n return (\n item.checked && (\n <Bar\n x={invertAxis ? item.id : groupKey}\n y={invertAxis ? groupKey : item.id}\n key={item.id}\n color={item.color}\n />\n )\n );\n }\n\n renderTooltip(): React.ReactNode {\n const { data, groupKey, invertAxis } = this.asProps;\n\n return (\n <HoverRect.Tooltip\n x={invertAxis ? undefined : groupKey}\n y={invertAxis ? groupKey : undefined}\n wMin={100}\n >\n {({ xIndex, yIndex }: any) => {\n const index = invertAxis ? yIndex : xIndex;\n const dataItem = data[index];\n\n return {\n children: this.getTooltipChildren({\n Tooltip: HoverRect.Tooltip,\n dataItem,\n }),\n };\n }}\n </HoverRect.Tooltip>\n );\n }\n\n protected getLegendAriaLabel(): string {\n return this.asProps.getI18nText('legendForChart', { chartType: 'Histogram' });\n }\n}\n\nexport const HistogramChart: HistogramChartType = createComponent(HistogramChartComponent);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"HistogramChart.js","names":["_core","require","_i18nEnhance","_interopRequireDefault","_d3Scale","_react","_","_AbstractChart","_intergalacticDynamicLocales","HistogramChartComponent","AbstractChart","xScale","marginY","marginX","plotWidth","plotHeight","invertAxis","data","groupKey","asProps","testItem","range","plotPadding","Date","Number","isNaN","getMilliseconds","domain","minMax","scaleTime","map","item","scaleBand","paddingInner","paddingOuter","yScale","max","isStack","reduce","barSum","Object","values","sum","val","flatValues","Math","scaleLinear","dataDefinitions","state","length","renderChart","highlightedLine","default","createElement","StackBar","x","undefined","y","index","BarComponent","HorizontalBar","Bar","commonBarComponentProps","color","transparent","id","checked","_extends2","key","renderTooltip","HoverRect","Tooltip","wMin","xIndex","yIndex","dataItem","children","getTooltipChildren","getLegendAriaLabel","getI18nText","chartType","_defineProperty2","i18nEnhance","localizedMessages","direction","showXAxis","showYAxis","showTooltip","HistogramChart","exports","createComponent"],"sources":["../../../../src/component/Chart/HistogramChart.tsx"],"sourcesContent":["import { createComponent } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport { scaleBand, scaleLinear, type ScaleLinear, scaleTime } from 'd3-scale';\nimport React from 'react';\n\n// @ts-ignore\nimport { Bar, minMax, HoverRect, StackBar, type BarProps } from '../..';\nimport type { ChartState } from './AbstractChart';\nimport { AbstractChart } from './AbstractChart';\nimport type { HistogramChartData, HistogramChartDefaultProps, HistogramChartProps, HistogramChartType } from './HistogramChart.type';\nimport { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';\n\nclass HistogramChartComponent extends AbstractChart<\n HistogramChartData,\n HistogramChartProps,\n typeof HistogramChartComponent.enhance,\n {},\n ChartState,\n HistogramChartDefaultProps\n> {\n static displayName = 'Chart.Histogram';\n\n static enhance = [i18nEnhance(localizedMessages)] as const;\n\n static defaultProps = {\n direction: 'column',\n showXAxis: true,\n showYAxis: true,\n showTooltip: true,\n } as const;\n\n get xScale() {\n const {\n xScale,\n marginY = 30,\n marginX = 30,\n plotWidth,\n plotHeight,\n invertAxis,\n data,\n groupKey,\n } = this.asProps;\n\n if (xScale) {\n return xScale;\n }\n\n const testItem = data[0][groupKey];\n const range = invertAxis\n ? [plotHeight - marginX, this.plotPadding]\n : [marginY, plotWidth - this.plotPadding];\n\n if (testItem instanceof Date && !Number.isNaN(testItem.getMilliseconds())) {\n const domain = minMax(data, groupKey);\n\n return scaleTime(domain, range);\n }\n\n const domain = data.map((item) => item[groupKey]);\n\n return scaleBand(domain, range).paddingInner(0.05).paddingOuter(0.2);\n }\n\n get yScale(): ScaleLinear<any, any> {\n const {\n yScale,\n marginY = 30,\n marginX = 30,\n plotHeight,\n plotWidth,\n invertAxis,\n data,\n } = this.asProps;\n\n let max: number;\n\n if (this.isStack) {\n max = data.reduce((max, item) => {\n const barSum = Object.values(item).reduce<number>((sum, val) => {\n if (val instanceof Date && !Number.isNaN(val.getMilliseconds())) {\n return sum + val.getMilliseconds();\n }\n\n return sum + (val as number);\n }, 0);\n\n if (barSum > max) {\n max = barSum;\n }\n\n return max;\n }, 0);\n } else {\n const flatValues = super.flatValues;\n\n max = Math.max(...flatValues);\n }\n\n return (\n yScale ??\n scaleLinear()\n .range(\n invertAxis\n ? [marginY, plotWidth - this.plotPadding]\n : [plotHeight - marginX, this.plotPadding],\n )\n .domain([0, max])\n );\n }\n\n get isStack(): boolean {\n const { dataDefinitions } = this.state;\n\n return dataDefinitions.length > 1;\n }\n\n renderChart() {\n const { groupKey, invertAxis } = this.asProps;\n const { dataDefinitions, highlightedLine } = this.state;\n\n if (this.isStack) {\n return (\n <StackBar x={invertAxis ? undefined : groupKey} y={invertAxis ? groupKey : undefined}>\n {dataDefinitions.map((item, index) => {\n const BarComponent = invertAxis ? StackBar.HorizontalBar : StackBar.Bar;\n\n const commonBarComponentProps: BarProps = {\n color: item.color,\n transparent: highlightedLine !== -1 && highlightedLine !== index,\n };\n\n if (invertAxis) {\n commonBarComponentProps.x = item.id;\n } else {\n commonBarComponentProps.y = item.id;\n }\n\n return item.checked && <BarComponent key={item.id} {...commonBarComponentProps} />;\n })}\n </StackBar>\n );\n }\n\n const item = dataDefinitions[0];\n\n return (\n item.checked && (\n <Bar\n x={invertAxis ? item.id : groupKey}\n y={invertAxis ? groupKey : item.id}\n key={item.id}\n color={item.color}\n />\n )\n );\n }\n\n renderTooltip(): React.ReactNode {\n const { data, groupKey, invertAxis } = this.asProps;\n\n return (\n <HoverRect.Tooltip\n x={invertAxis ? undefined : groupKey}\n y={invertAxis ? groupKey : undefined}\n wMin={100}\n >\n {({ xIndex, yIndex }: any) => {\n const index = invertAxis ? yIndex : xIndex;\n const dataItem = data[index];\n\n return {\n children: this.getTooltipChildren({\n Tooltip: HoverRect.Tooltip,\n dataItem,\n }),\n };\n }}\n </HoverRect.Tooltip>\n );\n }\n\n protected getLegendAriaLabel(): string {\n return this.asProps.getI18nText('legendForChart', { chartType: 'Histogram' });\n }\n}\n\n/**\n * HistogramChart\n *\n * {@link https://developer.semrush.com/intergalactic/data-display/histogram-chart/histogram-chart-api/|API}\n */\nexport const HistogramChart = createComponent<\n HistogramChartType,\n typeof HistogramChartComponent\n>(HistogramChartComponent);\n"],"mappings":";;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAF,sBAAA,CAAAF,OAAA;AAGA,IAAAK,CAAA,GAAAL,OAAA;AAEA,IAAAM,cAAA,GAAAN,OAAA;AAEA,IAAAO,4BAAA,GAAAP,OAAA;AALA;;AAOA,MAAMQ,uBAAuB,SAASC,4BAAa,CAOjD;EAYA,IAAIC,MAAMA,CAAA,EAAG;IACX,MAAM;MACJA,MAAM;MACNC,OAAO,GAAG,EAAE;MACZC,OAAO,GAAG,EAAE;MACZC,SAAS;MACTC,UAAU;MACVC,UAAU;MACVC,IAAI;MACJC;IACF,CAAC,GAAG,IAAI,CAACC,OAAO;IAEhB,IAAIR,MAAM,EAAE;MACV,OAAOA,MAAM;IACf;IAEA,MAAMS,QAAQ,GAAGH,IAAI,CAAC,CAAC,CAAC,CAACC,QAAQ,CAAC;IAClC,MAAMG,KAAK,GAAGL,UAAU,GACpB,CAACD,UAAU,GAAGF,OAAO,EAAE,IAAI,CAACS,WAAW,CAAC,GACxC,CAACV,OAAO,EAAEE,SAAS,GAAG,IAAI,CAACQ,WAAW,CAAC;IAE3C,IAAIF,QAAQ,YAAYG,IAAI,IAAI,CAACC,MAAM,CAACC,KAAK,CAACL,QAAQ,CAACM,eAAe,CAAC,CAAC,CAAC,EAAE;MACzE,MAAMC,MAAM,GAAG,IAAAC,QAAM,EAACX,IAAI,EAAEC,QAAQ,CAAC;MAErC,OAAO,IAAAW,kBAAS,EAACF,MAAM,EAAEN,KAAK,CAAC;IACjC;IAEA,MAAMM,MAAM,GAAGV,IAAI,CAACa,GAAG,CAAEC,IAAI,IAAKA,IAAI,CAACb,QAAQ,CAAC,CAAC;IAEjD,OAAO,IAAAc,kBAAS,EAACL,MAAM,EAAEN,KAAK,CAAC,CAACY,YAAY,CAAC,IAAI,CAAC,CAACC,YAAY,CAAC,GAAG,CAAC;EACtE;EAEA,IAAIC,MAAMA,CAAA,EAA0B;IAClC,MAAM;MACJA,MAAM;MACNvB,OAAO,GAAG,EAAE;MACZC,OAAO,GAAG,EAAE;MACZE,UAAU;MACVD,SAAS;MACTE,UAAU;MACVC;IACF,CAAC,GAAG,IAAI,CAACE,OAAO;IAEhB,IAAIiB,GAAW;IAEf,IAAI,IAAI,CAACC,OAAO,EAAE;MAChBD,GAAG,GAAGnB,IAAI,CAACqB,MAAM,CAAC,CAACF,GAAG,EAAEL,IAAI,KAAK;QAC/B,MAAMQ,MAAM,GAAGC,MAAM,CAACC,MAAM,CAACV,IAAI,CAAC,CAACO,MAAM,CAAS,CAACI,GAAG,EAAEC,GAAG,KAAK;UAC9D,IAAIA,GAAG,YAAYpB,IAAI,IAAI,CAACC,MAAM,CAACC,KAAK,CAACkB,GAAG,CAACjB,eAAe,CAAC,CAAC,CAAC,EAAE;YAC/D,OAAOgB,GAAG,GAAGC,GAAG,CAACjB,eAAe,CAAC,CAAC;UACpC;UAEA,OAAOgB,GAAG,GAAIC,GAAc;QAC9B,CAAC,EAAE,CAAC,CAAC;QAEL,IAAIJ,MAAM,GAAGH,GAAG,EAAE;UAChBA,GAAG,GAAGG,MAAM;QACd;QAEA,OAAOH,GAAG;MACZ,CAAC,EAAE,CAAC,CAAC;IACP,CAAC,MAAM;MACL,MAAMQ,UAAU,GAAG,KAAK,CAACA,UAAU;MAEnCR,GAAG,GAAGS,IAAI,CAACT,GAAG,CAAC,GAAGQ,UAAU,CAAC;IAC/B;IAEA,OACET,MAAM,IACN,IAAAW,oBAAW,EAAC,CAAC,CACVzB,KAAK,CACJL,UAAU,GACN,CAACJ,OAAO,EAAEE,SAAS,GAAG,IAAI,CAACQ,WAAW,CAAC,GACvC,CAACP,UAAU,GAAGF,OAAO,EAAE,IAAI,CAACS,WAAW,CAC7C,CAAC,CACAK,MAAM,CAAC,CAAC,CAAC,EAAES,GAAG,CAAC,CAAC;EAEvB;EAEA,IAAIC,OAAOA,CAAA,EAAY;IACrB,MAAM;MAAEU;IAAgB,CAAC,GAAG,IAAI,CAACC,KAAK;IAEtC,OAAOD,eAAe,CAACE,MAAM,GAAG,CAAC;EACnC;EAEAC,WAAWA,CAAA,EAAG;IACZ,MAAM;MAAEhC,QAAQ;MAAEF;IAAW,CAAC,GAAG,IAAI,CAACG,OAAO;IAC7C,MAAM;MAAE4B,eAAe;MAAEI;IAAgB,CAAC,GAAG,IAAI,CAACH,KAAK;IAEvD,IAAI,IAAI,CAACX,OAAO,EAAE;MAChB,oBACEhC,MAAA,CAAA+C,OAAA,CAAAC,aAAA,CAAC/C,CAAA,CAAAgD,QAAQ;QAACC,CAAC,EAAEvC,UAAU,GAAGwC,SAAS,GAAGtC,QAAS;QAACuC,CAAC,EAAEzC,UAAU,GAAGE,QAAQ,GAAGsC;MAAU,GAClFT,eAAe,CAACjB,GAAG,CAAC,CAACC,IAAI,EAAE2B,KAAK,KAAK;QACpC,MAAMC,YAAY,GAAG3C,UAAU,GAAGsC,UAAQ,CAACM,aAAa,GAAGN,UAAQ,CAACO,GAAG;QAEvE,MAAMC,uBAAiC,GAAG;UACxCC,KAAK,EAAEhC,IAAI,CAACgC,KAAK;UACjBC,WAAW,EAAEb,eAAe,KAAK,CAAC,CAAC,IAAIA,eAAe,KAAKO;QAC7D,CAAC;QAED,IAAI1C,UAAU,EAAE;UACd8C,uBAAuB,CAACP,CAAC,GAAGxB,IAAI,CAACkC,EAAE;QACrC,CAAC,MAAM;UACLH,uBAAuB,CAACL,CAAC,GAAG1B,IAAI,CAACkC,EAAE;QACrC;QAEA,OAAOlC,IAAI,CAACmC,OAAO,iBAAI7D,MAAA,CAAA+C,OAAA,CAAAC,aAAA,CAACM,YAAY,MAAAQ,SAAA,CAAAf,OAAA;UAACgB,GAAG,EAAErC,IAAI,CAACkC;QAAG,GAAKH,uBAAuB,CAAG,CAAC;MACpF,CAAC,CACO,CAAC;IAEf;IAEA,MAAM/B,IAAI,GAAGgB,eAAe,CAAC,CAAC,CAAC;IAE/B,OACEhB,IAAI,CAACmC,OAAO,iBACV7D,MAAA,CAAA+C,OAAA,CAAAC,aAAA,CAAC/C,CAAA,CAAAuD,GAAG;MACFN,CAAC,EAAEvC,UAAU,GAAGe,IAAI,CAACkC,EAAE,GAAG/C,QAAS;MACnCuC,CAAC,EAAEzC,UAAU,GAAGE,QAAQ,GAAGa,IAAI,CAACkC,EAAG;MACnCG,GAAG,EAAErC,IAAI,CAACkC,EAAG;MACbF,KAAK,EAAEhC,IAAI,CAACgC;IAAM,CACnB,CACF;EAEL;EAEAM,aAAaA,CAAA,EAAoB;IAC/B,MAAM;MAAEpD,IAAI;MAAEC,QAAQ;MAAEF;IAAW,CAAC,GAAG,IAAI,CAACG,OAAO;IAEnD,oBACEd,MAAA,CAAA+C,OAAA,CAAAC,aAAA,CAAC/C,CAAA,CAAAgE,SAAS,CAACC,OAAO;MAChBhB,CAAC,EAAEvC,UAAU,GAAGwC,SAAS,GAAGtC,QAAS;MACrCuC,CAAC,EAAEzC,UAAU,GAAGE,QAAQ,GAAGsC,SAAU;MACrCgB,IAAI,EAAE;IAAI,GAET,CAAC;MAAEC,MAAM;MAAEC;IAAY,CAAC,KAAK;MAC5B,MAAMhB,KAAK,GAAG1C,UAAU,GAAG0D,MAAM,GAAGD,MAAM;MAC1C,MAAME,QAAQ,GAAG1D,IAAI,CAACyC,KAAK,CAAC;MAE5B,OAAO;QACLkB,QAAQ,EAAE,IAAI,CAACC,kBAAkB,CAAC;UAChCN,OAAO,EAAED,WAAS,CAACC,OAAO;UAC1BI;QACF,CAAC;MACH,CAAC;IACH,CACiB,CAAC;EAExB;EAEUG,kBAAkBA,CAAA,EAAW;IACrC,OAAO,IAAI,CAAC3D,OAAO,CAAC4D,WAAW,CAAC,gBAAgB,EAAE;MAAEC,SAAS,EAAE;IAAY,CAAC,CAAC;EAC/E;AACF;;AAEA;AACA;AACA;AACA;AACA;AAJA,IAAAC,gBAAA,CAAA7B,OAAA,EA9KM3C,uBAAuB,iBAQN,iBAAiB;AAAA,IAAAwE,gBAAA,CAAA7B,OAAA,EARlC3C,uBAAuB,aAUV,CAAC,IAAAyE,oBAAW,EAACC,8CAAiB,CAAC,CAAC;AAAA,IAAAF,gBAAA,CAAA7B,OAAA,EAV7C3C,uBAAuB,kBAYL;EACpB2E,SAAS,EAAE,QAAQ;EACnBC,SAAS,EAAE,IAAI;EACfC,SAAS,EAAE,IAAI;EACfC,WAAW,EAAE;AACf,CAAC;AAkKI,MAAMC,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG,IAAAE,qBAAe,EAG3CjF,uBAAuB,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"HistogramChart.type.js","names":[],"sources":["../../../../src/component/Chart/HistogramChart.type.ts"],"sourcesContent":["import type { Flex } from '@semcore/base-components';\nimport type { Intergalactic } from '@semcore/core';\nimport type { ScaleBand, ScaleLinear, ScaleTime } from 'd3-scale';\n\nimport type { BaseChartProps } from './AbstractChart.type';\n\nexport type HistogramChartData = Array<Record<string, number | Date>>;\n\nexport type HistogramChartProps = BaseChartProps<HistogramChartData> & {\n /** Field name that groups the data points */\n groupKey: string;\n /** Custom x-axis scale */\n xScale?: ScaleBand<any> | ScaleTime<any, any>;\n /** Custom y-axis scale */\n yScale?: ScaleLinear<any, any>;\n};\n\nexport type HistogramChartType = Intergalactic.Component<typeof Flex, HistogramChartProps>;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"HistogramChart.type.js","names":[],"sources":["../../../../src/component/Chart/HistogramChart.type.ts"],"sourcesContent":["import type { Flex } from '@semcore/base-components';\nimport type { Intergalactic } from '@semcore/core';\nimport type { ScaleBand, ScaleLinear, ScaleTime } from 'd3-scale';\n\nimport type { BaseChartProps } from './AbstractChart.type';\n\nexport type HistogramChartData = Array<Record<string, number | Date>>;\n\nexport type HistogramChartProps = BaseChartProps<HistogramChartData> & {\n /** Field name that groups the data points */\n groupKey: string;\n /** Custom x-axis scale */\n xScale?: ScaleBand<any> | ScaleTime<any, any>;\n /** Custom y-axis scale */\n yScale?: ScaleLinear<any, any>;\n};\n\nexport type HistogramChartDefaultProps = {\n direction: 'column';\n showXAxis: true;\n showYAxis: true;\n showTooltip: true;\n};\n\nexport type HistogramChartType = Intergalactic.Component<typeof Flex, HistogramChartProps>;\n"],"mappings":"","ignoreList":[]}
@@ -107,7 +107,19 @@ class LineChartComponent extends _AbstractChart.AbstractChart {
107
107
  });
108
108
  }
109
109
  }
110
+
111
+ /**
112
+ * LineChart
113
+ *
114
+ * {@link https://developer.semrush.com/intergalactic/data-display/line-chart/line-chart-api/|API} | {@link https://developer.semrush.com/intergalactic/data-display/line-chart/line-chart-code/|Examples}
115
+ */
110
116
  (0, _defineProperty2.default)(LineChartComponent, "displayName", 'Chart.Line');
111
117
  (0, _defineProperty2.default)(LineChartComponent, "enhance", [(0, _i18nEnhance.default)(_intergalacticDynamicLocales.localizedMessages)]);
118
+ (0, _defineProperty2.default)(LineChartComponent, "defaultProps", {
119
+ direction: 'column',
120
+ showXAxis: true,
121
+ showYAxis: true,
122
+ showTooltip: true
123
+ });
112
124
  const LineChart = exports.LineChart = (0, _core.createComponent)(LineChartComponent);
113
125
  //# sourceMappingURL=LineChart.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LineChart.js","names":["_core","require","_i18nEnhance","_interopRequireDefault","_d3Scale","_react","_","_AbstractChart","_intergalacticDynamicLocales","LineChartComponent","AbstractChart","xScale","marginY","plotWidth","data","groupKey","asProps","testItem","range","plotPadding","domain","minMax","Date","Number","isNaN","getMilliseconds","scaleTime","scaleLinear","yScale","marginX","plotHeight","flatValues","max","Math","min","renderChart","curve","showDots","area","areaCurve","onClickLine","dataDefinitions","highlightedLine","state","map","item","index","checked","default","createElement","Line","x","toString","y","id","key","color","transparent","onClick","Dots","display","Area","y0","y1","renderTooltip","HoverLine","Tooltip","wMin","xIndex","dataItem","children","getTooltipChildren","getLegendAriaLabel","getI18nText","chartType","_defineProperty2","i18nEnhance","localizedMessages","LineChart","exports","createComponent"],"sources":["../../../../src/component/Chart/LineChart.tsx"],"sourcesContent":["import { createComponent } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport { type ScaleLinear, scaleLinear, scaleTime } from 'd3-scale';\nimport React from 'react';\n\nimport type { LineChartData, LineChartProps, LineChartType } from './LineChart.type';\n// @ts-ignore\nimport { Line, minMax, HoverLine } from '../..';\nimport { AbstractChart } from './AbstractChart';\nimport { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';\n\nclass LineChartComponent extends AbstractChart<\n LineChartData,\n LineChartProps,\n typeof LineChartComponent.enhance\n> {\n static displayName = 'Chart.Line';\n\n static enhance = [i18nEnhance(localizedMessages)] as const;\n\n protected get xScale() {\n const { xScale, marginY = 30, plotWidth, data, groupKey } = this.asProps;\n\n if (xScale) {\n return xScale;\n }\n\n const testItem = data[0][groupKey];\n const range = [marginY, plotWidth - this.plotPadding];\n const domain = minMax(data, groupKey);\n\n if (testItem instanceof Date && !Number.isNaN(testItem.getMilliseconds())) {\n return scaleTime(domain, range);\n }\n\n return scaleLinear(domain, range);\n }\n\n protected get yScale(): ScaleLinear<any, any> {\n const { yScale, marginX = 30, plotHeight } = this.asProps;\n\n if (yScale) {\n return yScale;\n }\n\n const flatValues = super.flatValues;\n\n const max = Math.max(...flatValues);\n const min = Math.min(...flatValues);\n\n return scaleLinear()\n .range([plotHeight - marginX, this.plotPadding])\n .domain([min, max]);\n }\n\n protected renderChart() {\n const { groupKey, curve, showDots, area, areaCurve, onClickLine } = this.asProps;\n const { dataDefinitions, highlightedLine } = this.state;\n\n return dataDefinitions.map((item, index) => {\n return (\n item.checked && (\n <Line\n x={groupKey.toString()}\n y={item.id}\n key={item.id}\n color={item.color}\n transparent={highlightedLine !== -1 && highlightedLine !== index}\n curve={curve}\n onClick={onClickLine}\n >\n {showDots && <Line.Dots display />}\n {area?.[item.id] && (\n <Line.Area area={area[item.id]} y0='y0' y1='y1' curve={areaCurve} />\n )}\n </Line>\n )\n );\n });\n }\n\n protected renderTooltip() {\n const { data, groupKey } = this.asProps;\n\n return (\n <HoverLine.Tooltip x={groupKey} wMin={100}>\n {({ xIndex }: any) => {\n const dataItem = data[xIndex];\n\n return {\n children: this.getTooltipChildren({\n Tooltip: HoverLine.Tooltip,\n dataItem,\n }),\n };\n }}\n </HoverLine.Tooltip>\n );\n }\n\n protected getLegendAriaLabel(): string {\n return this.asProps.getI18nText('legendForChart', { chartType: 'Line' });\n }\n}\n\nexport const LineChart: LineChartType = createComponent(LineChartComponent);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"LineChart.js","names":["_core","require","_i18nEnhance","_interopRequireDefault","_d3Scale","_react","_","_AbstractChart","_intergalacticDynamicLocales","LineChartComponent","AbstractChart","xScale","marginY","plotWidth","data","groupKey","asProps","testItem","range","plotPadding","domain","minMax","Date","Number","isNaN","getMilliseconds","scaleTime","scaleLinear","yScale","marginX","plotHeight","flatValues","max","Math","min","renderChart","curve","showDots","area","areaCurve","onClickLine","dataDefinitions","highlightedLine","state","map","item","index","checked","default","createElement","Line","x","toString","y","id","key","color","transparent","onClick","Dots","display","Area","y0","y1","renderTooltip","HoverLine","Tooltip","wMin","xIndex","dataItem","children","getTooltipChildren","getLegendAriaLabel","getI18nText","chartType","_defineProperty2","i18nEnhance","localizedMessages","direction","showXAxis","showYAxis","showTooltip","LineChart","exports","createComponent"],"sources":["../../../../src/component/Chart/LineChart.tsx"],"sourcesContent":["import { createComponent } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport { type ScaleLinear, scaleLinear, scaleTime } from 'd3-scale';\nimport React from 'react';\n\nimport type { LineChartData, LineChartDefaultProps, LineChartProps, LineChartType } from './LineChart.type';\n// @ts-ignore\nimport { Line, minMax, HoverLine } from '../..';\nimport type { ChartState } from './AbstractChart';\nimport { AbstractChart } from './AbstractChart';\nimport { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';\n\nclass LineChartComponent extends AbstractChart<\n LineChartData,\n LineChartProps,\n typeof LineChartComponent.enhance,\n {},\n ChartState,\n LineChartDefaultProps\n> {\n static displayName = 'Chart.Line';\n\n static enhance = [i18nEnhance(localizedMessages)] as const;\n\n static defaultProps = {\n direction: 'column',\n showXAxis: true,\n showYAxis: true,\n showTooltip: true,\n } as const;\n\n protected get xScale() {\n const { xScale, marginY = 30, plotWidth, data, groupKey } = this.asProps;\n\n if (xScale) {\n return xScale;\n }\n\n const testItem = data[0][groupKey];\n const range = [marginY, plotWidth - this.plotPadding];\n const domain = minMax(data, groupKey);\n\n if (testItem instanceof Date && !Number.isNaN(testItem.getMilliseconds())) {\n return scaleTime(domain, range);\n }\n\n return scaleLinear(domain, range);\n }\n\n protected get yScale(): ScaleLinear<any, any> {\n const { yScale, marginX = 30, plotHeight } = this.asProps;\n\n if (yScale) {\n return yScale;\n }\n\n const flatValues = super.flatValues;\n\n const max = Math.max(...flatValues);\n const min = Math.min(...flatValues);\n\n return scaleLinear()\n .range([plotHeight - marginX, this.plotPadding])\n .domain([min, max]);\n }\n\n protected renderChart() {\n const { groupKey, curve, showDots, area, areaCurve, onClickLine } = this.asProps;\n const { dataDefinitions, highlightedLine } = this.state;\n\n return dataDefinitions.map((item, index) => {\n return (\n item.checked && (\n <Line\n x={groupKey.toString()}\n y={item.id}\n key={item.id}\n color={item.color}\n transparent={highlightedLine !== -1 && highlightedLine !== index}\n curve={curve}\n onClick={onClickLine}\n >\n {showDots && <Line.Dots display />}\n {area?.[item.id] && (\n <Line.Area area={area[item.id]} y0='y0' y1='y1' curve={areaCurve} />\n )}\n </Line>\n )\n );\n });\n }\n\n protected renderTooltip() {\n const { data, groupKey } = this.asProps;\n\n return (\n <HoverLine.Tooltip x={groupKey} wMin={100}>\n {({ xIndex }: any) => {\n const dataItem = data[xIndex];\n\n return {\n children: this.getTooltipChildren({\n Tooltip: HoverLine.Tooltip,\n dataItem,\n }),\n };\n }}\n </HoverLine.Tooltip>\n );\n }\n\n protected getLegendAriaLabel(): string {\n return this.asProps.getI18nText('legendForChart', { chartType: 'Line' });\n }\n}\n\n/**\n * LineChart\n *\n * {@link https://developer.semrush.com/intergalactic/data-display/line-chart/line-chart-api/|API} | {@link https://developer.semrush.com/intergalactic/data-display/line-chart/line-chart-code/|Examples}\n */\nexport const LineChart = createComponent<\n LineChartType,\n typeof LineChartComponent\n>(LineChartComponent);\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"LineChart.type.js","names":[],"sources":["../../../../src/component/Chart/LineChart.type.ts"],"sourcesContent":["import type { Flex } from '@semcore/base-components';\nimport type { Intergalactic } from '@semcore/core';\nimport type { ScaleLinear, ScaleTime } from 'd3-scale';\nimport type { CurveFactory } from 'd3-shape';\n\nimport type { BaseChartProps } from './AbstractChart.type';\nimport type { interpolateValue } from '../../utils';\nimport type { LegendItemKey } from '../ChartLegend/LegendItem/LegendItem.type';\n\ntype AreaItem = {\n x: number;\n y0: number;\n y1: number;\n};\n\nexport type LineChartData = Array<Record<string, string | number | typeof interpolateValue | Date>>;\n\nexport type LineChartProps = BaseChartProps<LineChartData> & {\n /** Field name that groups the data points */\n groupKey: string;\n /** Optional area data for rendering filled areas under lines */\n area?: Record<LegendItemKey, AreaItem[]>;\n /** Custom x-axis scale */\n xScale?: ScaleLinear<any, any> | ScaleTime<any, any>;\n /** Custom y-axis scale */\n yScale?: ScaleLinear<any, any>;\n /** Controls whether to display dots on the line chart */\n showDots?: boolean;\n /** D3 curve factory for line interpolation */\n curve?: CurveFactory;\n /** Curve factory specifically for area rendering */\n areaCurve?: CurveFactory;\n /** Callback triggered when a user clicks on a line */\n onClickLine?: (index: number, event: React.SyntheticEvent) => void;\n};\n\nexport type LineChartType = Intergalactic.Component<typeof Flex, LineChartProps>;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"LineChart.type.js","names":[],"sources":["../../../../src/component/Chart/LineChart.type.ts"],"sourcesContent":["import type { Flex } from '@semcore/base-components';\nimport type { Intergalactic } from '@semcore/core';\nimport type { ScaleLinear, ScaleTime } from 'd3-scale';\nimport type { CurveFactory } from 'd3-shape';\n\nimport type { BaseChartProps } from './AbstractChart.type';\nimport type { interpolateValue } from '../../utils';\nimport type { LegendItemKey } from '../ChartLegend/LegendItem/LegendItem.type';\n\ntype AreaItem = {\n x: number;\n y0: number;\n y1: number;\n};\n\nexport type LineChartData = Array<Record<string, string | number | typeof interpolateValue | Date>>;\n\nexport type LineChartProps = BaseChartProps<LineChartData> & {\n /** Field name that groups the data points */\n groupKey: string;\n /** Optional area data for rendering filled areas under lines */\n area?: Record<LegendItemKey, AreaItem[]>;\n /** Custom x-axis scale */\n xScale?: ScaleLinear<any, any> | ScaleTime<any, any>;\n /** Custom y-axis scale */\n yScale?: ScaleLinear<any, any>;\n /** Controls whether to display dots on the line chart */\n showDots?: boolean;\n /** D3 curve factory for line interpolation */\n curve?: CurveFactory;\n /** Curve factory specifically for area rendering */\n areaCurve?: CurveFactory;\n /** Callback triggered when a user clicks on a line */\n onClickLine?: (index: number, event: React.SyntheticEvent) => void;\n};\n\nexport type LineChartDefaultProps = {\n direction: 'column';\n showXAxis: true;\n showYAxis: true;\n showTooltip: true;\n};\n\nexport type LineChartType = Intergalactic.Component<typeof Flex, LineChartProps>;\n"],"mappings":"","ignoreList":[]}
@@ -97,6 +97,18 @@ class RadarChartComponent extends _AbstractChart.AbstractChart {
97
97
  return [Math.min(...super.flatValues), Math.max(...super.flatValues)];
98
98
  }
99
99
  }
100
+
101
+ /**
102
+ * RadarChart
103
+ *
104
+ * {@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}
105
+ */
100
106
  (0, _defineProperty2.default)(RadarChartComponent, "enhance", [(0, _i18nEnhance.default)(_intergalacticDynamicLocales.localizedMessages)]);
107
+ (0, _defineProperty2.default)(RadarChartComponent, "defaultProps", {
108
+ direction: 'column',
109
+ showXAxis: true,
110
+ showYAxis: true,
111
+ showTooltip: true
112
+ });
101
113
  const RadarChart = exports.RadarChart = (0, _core.createComponent)(RadarChartComponent);
102
114
  //# sourceMappingURL=RadarChart.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RadarChart.js","names":["_core","require","_i18nEnhance","_interopRequireDefault","_d3Scale","_react","_AbstractChart","_","_intergalacticDynamicLocales","RadarChartComponent","AbstractChart","renderChart","groupKey","showDots","circle","onClickRadar","asProps","dataDefinitions","state","default","createElement","Radar","onClick","scale","xScale","type","undefined","Axis","dataKey","Ticks","Labels","renderRadarTooltip","map","item","checked","Polygon","id","key","color","Line","Dots","data","showTooltip","Tooltip","wMin","index","children","Fragment","Title","value","Dot","tooltipValueFormatter","renderTooltip","dataKeys","props","legendKeys","Object","keys","filter","scaleLinear","domain","yScale","getLegendAriaLabel","getI18nText","chartType","Math","min","flatValues","max","_defineProperty2","i18nEnhance","localizedMessages","RadarChart","exports","createComponent"],"sources":["../../../../src/component/Chart/RadarChart.tsx"],"sourcesContent":["import { createComponent } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport { scaleLinear, type ScaleLinear } from 'd3-scale';\nimport React from 'react';\n\nimport { AbstractChart } from './AbstractChart';\nimport type { RadarChartData, RadarChartProps, RadarChartType } from './RadarChart.type';\n// @ts-ignore\nimport { Radar } from '../..';\nimport { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';\n\nclass RadarChartComponent extends AbstractChart<\n RadarChartData,\n RadarChartProps,\n typeof RadarChartComponent.enhance\n> {\n static enhance = [i18nEnhance(localizedMessages)] as const;\n\n protected renderChart(): React.ReactNode {\n const { groupKey, showDots, circle, onClickRadar } = this.asProps;\n const { dataDefinitions } = this.state;\n\n return (\n <Radar onClick={onClickRadar} scale={this.xScale} type={circle ? 'circle' : undefined}>\n <Radar.Axis dataKey={groupKey}>\n <Radar.Axis.Ticks />\n <Radar.Axis.Labels />\n </Radar.Axis>\n {this.renderRadarTooltip()}\n {dataDefinitions.map((item) => {\n return (\n item.checked && (\n <Radar.Polygon dataKey={item.id} key={item.id} color={item.color}>\n <Radar.Polygon.Line />\n {showDots && <Radar.Polygon.Dots />}\n </Radar.Polygon>\n )\n );\n })}\n </Radar>\n );\n }\n\n protected renderRadarTooltip(): React.ReactNode {\n const { data, groupKey, showTooltip } = this.asProps;\n const { dataDefinitions } = this.state;\n\n if (!showTooltip) {\n return null;\n }\n\n return (\n <Radar.Tooltip wMin={100}>\n {({ index }: any) => {\n return {\n children: (\n <>\n <Radar.Tooltip.Title>{data[groupKey]?.[index]}</Radar.Tooltip.Title>\n\n {dataDefinitions.map((item) => {\n const value = data[item.id]?.[index];\n\n return (\n item.checked && (\n <Radar.Tooltip.Dot color={item.color} key={item.id}>\n {this.tooltipValueFormatter(value)}\n </Radar.Tooltip.Dot>\n )\n );\n })}\n </>\n ),\n };\n }}\n </Radar.Tooltip>\n );\n }\n\n // By default, tooltip will render in Plot component.\n // In RadarChart, we need to render it in Radar component, so we use renderRadarTooltip method\n protected renderTooltip(): React.ReactNode {\n return null;\n }\n\n protected get dataKeys(): string[] {\n const { data, groupKey } = this.props;\n\n const legendKeys: string[] = Object.keys(data).filter((key) => key !== groupKey);\n\n return legendKeys;\n }\n\n protected get xScale(): ScaleLinear<any, any> {\n return this.asProps.scale ?? scaleLinear().domain(this.domain);\n }\n\n protected get yScale(): ScaleLinear<any, any> {\n return this.asProps.scale ?? scaleLinear().domain(this.domain);\n }\n\n protected getLegendAriaLabel(): string {\n return this.asProps.getI18nText('legendForChart', { chartType: 'Radar' });\n }\n\n private get domain(): [number, number] {\n return [Math.min(...super.flatValues), Math.max(...super.flatValues)];\n }\n}\n\nexport const RadarChart: RadarChartType = createComponent(RadarChartComponent);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"RadarChart.js","names":["_core","require","_i18nEnhance","_interopRequireDefault","_d3Scale","_react","_AbstractChart","_","_intergalacticDynamicLocales","RadarChartComponent","AbstractChart","renderChart","groupKey","showDots","circle","onClickRadar","asProps","dataDefinitions","state","default","createElement","Radar","onClick","scale","xScale","type","undefined","Axis","dataKey","Ticks","Labels","renderRadarTooltip","map","item","checked","Polygon","id","key","color","Line","Dots","data","showTooltip","Tooltip","wMin","index","children","Fragment","Title","value","Dot","tooltipValueFormatter","renderTooltip","dataKeys","props","legendKeys","Object","keys","filter","scaleLinear","domain","yScale","getLegendAriaLabel","getI18nText","chartType","Math","min","flatValues","max","_defineProperty2","i18nEnhance","localizedMessages","direction","showXAxis","showYAxis","RadarChart","exports","createComponent"],"sources":["../../../../src/component/Chart/RadarChart.tsx"],"sourcesContent":["import { createComponent } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport { scaleLinear, type ScaleLinear } from 'd3-scale';\nimport React from 'react';\n\nimport type { ChartState } from './AbstractChart';\nimport { AbstractChart } from './AbstractChart';\nimport type { RadarChartData, RadarChartDefaultProps, RadarChartProps, RadarChartType } from './RadarChart.type';\n// @ts-ignore\nimport { Radar } from '../..';\nimport { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';\n\nclass RadarChartComponent extends AbstractChart<\n RadarChartData,\n RadarChartProps,\n typeof RadarChartComponent.enhance,\n {},\n ChartState,\n RadarChartDefaultProps\n> {\n static enhance = [i18nEnhance(localizedMessages)] as const;\n\n static defaultProps = {\n direction: 'column',\n showXAxis: true,\n showYAxis: true,\n showTooltip: true,\n } as const;\n\n protected renderChart(): React.ReactNode {\n const { groupKey, showDots, circle, onClickRadar } = this.asProps;\n const { dataDefinitions } = this.state;\n\n return (\n <Radar onClick={onClickRadar} scale={this.xScale} type={circle ? 'circle' : undefined}>\n <Radar.Axis dataKey={groupKey}>\n <Radar.Axis.Ticks />\n <Radar.Axis.Labels />\n </Radar.Axis>\n {this.renderRadarTooltip()}\n {dataDefinitions.map((item) => {\n return (\n item.checked && (\n <Radar.Polygon dataKey={item.id} key={item.id} color={item.color}>\n <Radar.Polygon.Line />\n {showDots && <Radar.Polygon.Dots />}\n </Radar.Polygon>\n )\n );\n })}\n </Radar>\n );\n }\n\n protected renderRadarTooltip(): React.ReactNode {\n const { data, groupKey, showTooltip } = this.asProps;\n const { dataDefinitions } = this.state;\n\n if (!showTooltip) {\n return null;\n }\n\n return (\n <Radar.Tooltip wMin={100}>\n {({ index }: any) => {\n return {\n children: (\n <>\n <Radar.Tooltip.Title>{data[groupKey]?.[index]}</Radar.Tooltip.Title>\n\n {dataDefinitions.map((item) => {\n const value = data[item.id]?.[index];\n\n return (\n item.checked && (\n <Radar.Tooltip.Dot color={item.color} key={item.id}>\n {this.tooltipValueFormatter(value)}\n </Radar.Tooltip.Dot>\n )\n );\n })}\n </>\n ),\n };\n }}\n </Radar.Tooltip>\n );\n }\n\n // By default, tooltip will render in Plot component.\n // In RadarChart, we need to render it in Radar component, so we use renderRadarTooltip method\n protected renderTooltip(): React.ReactNode {\n return null;\n }\n\n protected get dataKeys(): string[] {\n const { data, groupKey } = this.props;\n\n const legendKeys: string[] = Object.keys(data).filter((key) => key !== groupKey);\n\n return legendKeys;\n }\n\n protected get xScale(): ScaleLinear<any, any> {\n return this.asProps.scale ?? scaleLinear().domain(this.domain);\n }\n\n protected get yScale(): ScaleLinear<any, any> {\n return this.asProps.scale ?? scaleLinear().domain(this.domain);\n }\n\n protected getLegendAriaLabel(): string {\n return this.asProps.getI18nText('legendForChart', { chartType: 'Radar' });\n }\n\n private get domain(): [number, number] {\n return [Math.min(...super.flatValues), Math.max(...super.flatValues)];\n }\n}\n\n/**\n * RadarChart\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 */\nexport const RadarChart: RadarChartType = createComponent<\n RadarChartType,\n typeof RadarChartComponent\n>(RadarChartComponent);\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"RadarChart.type.js","names":[],"sources":["../../../../src/component/Chart/RadarChart.type.ts"],"sourcesContent":["import type { Flex } from '@semcore/base-components';\nimport type { Intergalactic } from '@semcore/core';\nimport type { ScaleLinear } from 'd3-scale';\n\nimport type { BaseChartProps } from './AbstractChart.type';\n\nexport type RadarChartData = Record<string, string[] | number[]>;\n\nexport type RadarChartProps = Intergalactic.InternalTypings.EfficientOmit<\n BaseChartProps<RadarChartData>,\n 'showTotalInTooltip' | 'showPercentValueInTooltip'\n> & {\n groupKey: string;\n scale?: ScaleLinear<any, any>;\n xScale?: never;\n yScale?: never;\n showDots?: boolean;\n circle?: boolean;\n /** Callback triggered when a user clicks on a chart at a position corresponding to a category */\n onClickRadar?: (index: number, e: React.SyntheticEvent) => void;\n};\n\nexport type RadarChartType = Intergalactic.Component<typeof Flex, RadarChartProps>;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"RadarChart.type.js","names":[],"sources":["../../../../src/component/Chart/RadarChart.type.ts"],"sourcesContent":["import type { Flex } from '@semcore/base-components';\nimport type { Intergalactic } from '@semcore/core';\nimport type { ScaleLinear } from 'd3-scale';\n\nimport type { BaseChartProps } from './AbstractChart.type';\n\nexport type RadarChartData = Record<string, string[] | number[]>;\n\nexport type RadarChartProps = Intergalactic.InternalTypings.EfficientOmit<\n BaseChartProps<RadarChartData>,\n 'showTotalInTooltip' | 'showPercentValueInTooltip'\n> & {\n groupKey: string;\n scale?: ScaleLinear<any, any>;\n xScale?: never;\n yScale?: never;\n showDots?: boolean;\n circle?: boolean;\n /** Callback triggered when a user clicks on a chart at a position corresponding to a category */\n onClickRadar?: (index: number, e: React.SyntheticEvent) => void;\n};\n\nexport type RadarChartDefaultProps = {\n direction: 'column';\n showXAxis: true;\n showYAxis: true;\n showTooltip: true;\n};\n\nexport type RadarChartType = Intergalactic.Component<typeof Flex, RadarChartProps>;\n"],"mappings":"","ignoreList":[]}