@semcore/d3-chart 3.18.1 → 3.18.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. package/CHANGELOG.md +7 -1
  2. package/README.md +1 -1
  3. package/lib/cjs/Area.js +9 -9
  4. package/lib/cjs/Axis.js +14 -14
  5. package/lib/cjs/Bar.js +8 -8
  6. package/lib/cjs/Bubble.js +10 -10
  7. package/lib/cjs/Donut.js +7 -7
  8. package/lib/cjs/Dots.js +10 -10
  9. package/lib/cjs/HorizontalBar.js +8 -8
  10. package/lib/cjs/Hover.js +3 -3
  11. package/lib/cjs/Line.js +13 -11
  12. package/lib/cjs/Line.js.map +1 -1
  13. package/lib/cjs/Plot.js +3 -3
  14. package/lib/cjs/Radar.js +17 -17
  15. package/lib/cjs/RadialTree.js +10 -10
  16. package/lib/cjs/ReferenceLine.js +9 -9
  17. package/lib/cjs/ScatterPlot.js +8 -8
  18. package/lib/cjs/ScatterPlot.js.map +1 -1
  19. package/lib/cjs/Tooltip.js +8 -8
  20. package/lib/cjs/Venn.js +7 -7
  21. package/lib/cjs/a11y/PlotA11yModule.js +2 -2
  22. package/lib/cjs/a11y/PlotA11yView.js +2 -2
  23. package/lib/cjs/component/Chart/AbstractChart.js +420 -0
  24. package/lib/cjs/component/Chart/AbstractChart.js.map +1 -0
  25. package/lib/cjs/component/Chart/AbstractChart.type.js +2 -0
  26. package/lib/cjs/component/Chart/AbstractChart.type.js.map +1 -0
  27. package/lib/cjs/component/Chart/AreaChart.js +160 -0
  28. package/lib/cjs/component/Chart/AreaChart.js.map +1 -0
  29. package/lib/cjs/component/Chart/AreaChart.type.js +2 -0
  30. package/lib/cjs/component/Chart/AreaChart.type.js.map +1 -0
  31. package/lib/cjs/component/Chart/BarChart.js +253 -0
  32. package/lib/cjs/component/Chart/BarChart.js.map +1 -0
  33. package/lib/cjs/component/Chart/BarChart.type.js +2 -0
  34. package/lib/cjs/component/Chart/BarChart.type.js.map +1 -0
  35. package/lib/cjs/component/Chart/BubbleChart.js +145 -0
  36. package/lib/cjs/component/Chart/BubbleChart.js.map +1 -0
  37. package/lib/cjs/component/Chart/BubbleChart.type.js +2 -0
  38. package/lib/cjs/component/Chart/BubbleChart.type.js.map +1 -0
  39. package/lib/cjs/component/Chart/DonutChart.js +117 -0
  40. package/lib/cjs/component/Chart/DonutChart.js.map +1 -0
  41. package/lib/cjs/component/Chart/DonutChart.type.js +2 -0
  42. package/lib/cjs/component/Chart/DonutChart.type.js.map +1 -0
  43. package/lib/cjs/component/Chart/HistogramChart.js +189 -0
  44. package/lib/cjs/component/Chart/HistogramChart.js.map +1 -0
  45. package/lib/cjs/component/Chart/HistogramChart.type.js +2 -0
  46. package/lib/cjs/component/Chart/HistogramChart.type.js.map +1 -0
  47. package/lib/cjs/component/Chart/LineChart.js +147 -0
  48. package/lib/cjs/component/Chart/LineChart.js.map +1 -0
  49. package/lib/cjs/component/Chart/LineChart.type.js +2 -0
  50. package/lib/cjs/component/Chart/LineChart.type.js.map +1 -0
  51. package/lib/cjs/component/Chart/RadarChart.js +121 -0
  52. package/lib/cjs/component/Chart/RadarChart.js.map +1 -0
  53. package/lib/cjs/component/Chart/RadarChart.type.js +2 -0
  54. package/lib/cjs/component/Chart/RadarChart.type.js.map +1 -0
  55. package/lib/cjs/component/Chart/ScatterPlotChart.js +159 -0
  56. package/lib/cjs/component/Chart/ScatterPlotChart.js.map +1 -0
  57. package/lib/cjs/component/Chart/ScatterPlotChart.type.js +2 -0
  58. package/lib/cjs/component/Chart/ScatterPlotChart.type.js.map +1 -0
  59. package/lib/cjs/component/Chart/VennChart.js +144 -0
  60. package/lib/cjs/component/Chart/VennChart.js.map +1 -0
  61. package/lib/cjs/component/Chart/VennChart.type.js +2 -0
  62. package/lib/cjs/component/Chart/VennChart.type.js.map +1 -0
  63. package/lib/cjs/component/Chart/index.js +28 -0
  64. package/lib/cjs/component/Chart/index.js.map +1 -0
  65. package/lib/cjs/component/ChartLegend/BaseLegend.type.js.map +1 -1
  66. package/lib/cjs/component/ChartLegend/LegendFlex/LegendFlex.js +4 -4
  67. package/lib/cjs/component/ChartLegend/LegendItem/LegendItem.js +20 -17
  68. package/lib/cjs/component/ChartLegend/LegendItem/LegendItem.js.map +1 -1
  69. package/lib/cjs/component/ChartLegend/LegendTable/LegendTable.js +6 -7
  70. package/lib/cjs/component/ChartLegend/LegendTable/LegendTable.js.map +1 -1
  71. package/lib/cjs/component/ChartLegend/LegendTable/legend-table.shadow.css +5 -2
  72. package/lib/cjs/index.js +7 -0
  73. package/lib/cjs/index.js.map +1 -1
  74. package/lib/cjs/style/donut.shadow.css +3 -0
  75. package/lib/cjs/types/Line.d.js.map +1 -1
  76. package/lib/cjs/types/index.d.js +130 -1
  77. package/lib/cjs/types/index.d.js.map +1 -1
  78. package/lib/es6/Area.js +9 -9
  79. package/lib/es6/Axis.js +14 -14
  80. package/lib/es6/Bar.js +8 -8
  81. package/lib/es6/Bubble.js +10 -10
  82. package/lib/es6/Donut.js +7 -7
  83. package/lib/es6/Dots.js +10 -10
  84. package/lib/es6/HorizontalBar.js +8 -8
  85. package/lib/es6/Hover.js +3 -3
  86. package/lib/es6/Line.js +13 -11
  87. package/lib/es6/Line.js.map +1 -1
  88. package/lib/es6/Plot.js +3 -3
  89. package/lib/es6/Radar.js +17 -17
  90. package/lib/es6/RadialTree.js +10 -10
  91. package/lib/es6/ReferenceLine.js +9 -9
  92. package/lib/es6/ScatterPlot.js +8 -8
  93. package/lib/es6/ScatterPlot.js.map +1 -1
  94. package/lib/es6/Tooltip.js +8 -8
  95. package/lib/es6/Venn.js +7 -7
  96. package/lib/es6/a11y/PlotA11yModule.js +2 -2
  97. package/lib/es6/a11y/PlotA11yView.js +2 -2
  98. package/lib/es6/component/Chart/AbstractChart.js +412 -0
  99. package/lib/es6/component/Chart/AbstractChart.js.map +1 -0
  100. package/lib/es6/component/Chart/AbstractChart.type.js +2 -0
  101. package/lib/es6/component/Chart/AbstractChart.type.js.map +1 -0
  102. package/lib/es6/component/Chart/AreaChart.js +152 -0
  103. package/lib/es6/component/Chart/AreaChart.js.map +1 -0
  104. package/lib/es6/component/Chart/AreaChart.type.js +2 -0
  105. package/lib/es6/component/Chart/AreaChart.type.js.map +1 -0
  106. package/lib/es6/component/Chart/BarChart.js +245 -0
  107. package/lib/es6/component/Chart/BarChart.js.map +1 -0
  108. package/lib/es6/component/Chart/BarChart.type.js +2 -0
  109. package/lib/es6/component/Chart/BarChart.type.js.map +1 -0
  110. package/lib/es6/component/Chart/BubbleChart.js +137 -0
  111. package/lib/es6/component/Chart/BubbleChart.js.map +1 -0
  112. package/lib/es6/component/Chart/BubbleChart.type.js +2 -0
  113. package/lib/es6/component/Chart/BubbleChart.type.js.map +1 -0
  114. package/lib/es6/component/Chart/DonutChart.js +109 -0
  115. package/lib/es6/component/Chart/DonutChart.js.map +1 -0
  116. package/lib/es6/component/Chart/DonutChart.type.js +2 -0
  117. package/lib/es6/component/Chart/DonutChart.type.js.map +1 -0
  118. package/lib/es6/component/Chart/HistogramChart.js +181 -0
  119. package/lib/es6/component/Chart/HistogramChart.js.map +1 -0
  120. package/lib/es6/component/Chart/HistogramChart.type.js +2 -0
  121. package/lib/es6/component/Chart/HistogramChart.type.js.map +1 -0
  122. package/lib/es6/component/Chart/LineChart.js +139 -0
  123. package/lib/es6/component/Chart/LineChart.js.map +1 -0
  124. package/lib/es6/component/Chart/LineChart.type.js +2 -0
  125. package/lib/es6/component/Chart/LineChart.type.js.map +1 -0
  126. package/lib/es6/component/Chart/RadarChart.js +113 -0
  127. package/lib/es6/component/Chart/RadarChart.js.map +1 -0
  128. package/lib/es6/component/Chart/RadarChart.type.js +2 -0
  129. package/lib/es6/component/Chart/RadarChart.type.js.map +1 -0
  130. package/lib/es6/component/Chart/ScatterPlotChart.js +151 -0
  131. package/lib/es6/component/Chart/ScatterPlotChart.js.map +1 -0
  132. package/lib/es6/component/Chart/ScatterPlotChart.type.js +2 -0
  133. package/lib/es6/component/Chart/ScatterPlotChart.type.js.map +1 -0
  134. package/lib/es6/component/Chart/VennChart.js +136 -0
  135. package/lib/es6/component/Chart/VennChart.js.map +1 -0
  136. package/lib/es6/component/Chart/VennChart.type.js +2 -0
  137. package/lib/es6/component/Chart/VennChart.type.js.map +1 -0
  138. package/lib/es6/component/Chart/index.js +21 -0
  139. package/lib/es6/component/Chart/index.js.map +1 -0
  140. package/lib/es6/component/ChartLegend/BaseLegend.type.js.map +1 -1
  141. package/lib/es6/component/ChartLegend/LegendFlex/LegendFlex.js +4 -4
  142. package/lib/es6/component/ChartLegend/LegendItem/LegendItem.js +20 -17
  143. package/lib/es6/component/ChartLegend/LegendItem/LegendItem.js.map +1 -1
  144. package/lib/es6/component/ChartLegend/LegendTable/LegendTable.js +6 -7
  145. package/lib/es6/component/ChartLegend/LegendTable/LegendTable.js.map +1 -1
  146. package/lib/es6/component/ChartLegend/LegendTable/legend-table.shadow.css +5 -2
  147. package/lib/es6/index.js +1 -0
  148. package/lib/es6/index.js.map +1 -1
  149. package/lib/es6/style/donut.shadow.css +3 -0
  150. package/lib/es6/types/Line.d.js.map +1 -1
  151. package/lib/es6/types/index.d.js +12 -0
  152. package/lib/es6/types/index.d.js.map +1 -1
  153. package/lib/types/Line.d.ts +7 -2
  154. package/lib/types/component/Chart/AbstractChart.d.ts +50 -0
  155. package/lib/types/component/Chart/AbstractChart.type.d.ts +161 -0
  156. package/lib/types/component/Chart/AreaChart.d.ts +2 -0
  157. package/lib/types/component/Chart/AreaChart.type.d.ts +16 -0
  158. package/lib/types/component/Chart/BarChart.d.ts +2 -0
  159. package/lib/types/component/Chart/BarChart.type.d.ts +19 -0
  160. package/lib/types/component/Chart/BubbleChart.d.ts +2 -0
  161. package/lib/types/component/Chart/BubbleChart.type.d.ts +17 -0
  162. package/lib/types/component/Chart/DonutChart.d.ts +2 -0
  163. package/lib/types/component/Chart/DonutChart.type.d.ts +15 -0
  164. package/lib/types/component/Chart/HistogramChart.d.ts +2 -0
  165. package/lib/types/component/Chart/HistogramChart.type.d.ts +11 -0
  166. package/lib/types/component/Chart/LineChart.d.ts +2 -0
  167. package/lib/types/component/Chart/LineChart.type.d.ts +24 -0
  168. package/lib/types/component/Chart/RadarChart.d.ts +2 -0
  169. package/lib/types/component/Chart/RadarChart.type.d.ts +14 -0
  170. package/lib/types/component/Chart/ScatterPlotChart.d.ts +2 -0
  171. package/lib/types/component/Chart/ScatterPlotChart.type.d.ts +13 -0
  172. package/lib/types/component/Chart/VennChart.d.ts +2 -0
  173. package/lib/types/component/Chart/VennChart.type.d.ts +11 -0
  174. package/lib/types/component/Chart/index.d.ts +12 -0
  175. package/lib/types/component/ChartLegend/BaseLegend.type.d.ts +2 -2
  176. package/lib/types/index.d.ts +13 -0
  177. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AreaChart.js","names":["React","createComponent","scaleLinear","scaleTime","Area","minMax","HoverLine","StackedArea","AbstractChart","Flex","Box","Text","AreaChartComponent","_AbstractChart","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","key","get","_this$asProps","asProps","xScale","_this$asProps$marginY","marginY","plotWidth","data","groupKey","testItem","range","plotPadding","domain","Date","Number","isNaN","getMilliseconds","_this$asProps2","yScale","_this$asProps2$margin","marginX","plotHeight","stacked","flatValues","_get","_getPrototypeOf","prototype","min","Math","_toConsumableArray","max","value","renderChart","_this$asProps3","curve","showDots","_this$state","state","dataDefinitions","highlightedLine","createElement","x","map","item","index","checked","y","id","color","transparent","Dots","display","renderTooltip","_this","_this$asProps4","showTotalInTooltip","showTooltip","Tooltip","wMin","_ref","_dataItem$groupKey","xIndex","dataItem","total","totalValue","children","Fragment","Title","toString","justifyContent","Dot","mr","label","bold","tooltipValueFormatter","mt","_defineProperty","AreaChart"],"sources":["../../../../src/component/Chart/AreaChart.tsx"],"sourcesContent":["import React from 'react';\nimport createComponent from '@semcore/core';\nimport { ScaleLinear, scaleLinear, scaleTime } from 'd3-scale';\n// @ts-ignore\nimport { Area, minMax, HoverLine, StackedArea } from '../..';\nimport { AbstractChart } from './AbstractChart';\nimport { AreaChartData, AreaChartProps, AreaChartType } from './AreaChart.type';\nimport { Flex, Box } from '@semcore/flex-box';\nimport { Text } from '@semcore/typography';\n\nclass AreaChartComponent extends AbstractChart<AreaChartData, AreaChartProps> {\n static displayName = 'Chart.Area';\n\n get xScale() {\n const { xScale, marginY = 40, plotWidth, data, groupKey } = this.asProps;\n\n if (xScale) {\n return xScale;\n }\n\n const testItem = data[0][groupKey];\n const range = [marginY, plotWidth - this.plotPadding];\n const domain = minMax(data, groupKey);\n\n if (testItem instanceof Date && !Number.isNaN(testItem.getMilliseconds())) {\n return scaleTime(domain, range);\n }\n\n return scaleLinear(domain, range);\n }\n\n get yScale(): ScaleLinear<any, any> {\n const { yScale, marginX = 24, plotHeight, stacked, data, groupKey } = this.asProps;\n\n if (yScale) {\n return yScale;\n }\n\n const flatValues = super.flatValues;\n const min = Math.min(...flatValues);\n const max = stacked ? super.maxStackedValue : Math.max(...flatValues);\n\n return scaleLinear()\n .range([plotHeight - marginX, this.plotPadding])\n .domain([min, max]);\n }\n\n renderChart() {\n const { groupKey, curve, showDots, stacked } = this.asProps;\n const { dataDefinitions, highlightedLine } = this.state;\n\n if (stacked) {\n return (\n <StackedArea x={groupKey}>\n {dataDefinitions.map((item, index) => {\n return (\n item.checked && (\n <StackedArea.Area\n x={groupKey}\n y={item.id}\n key={item.id}\n color={item.color}\n transparent={highlightedLine !== -1 && highlightedLine !== index}\n curve={curve}\n >\n {showDots && <StackedArea.Area.Dots display />}\n </StackedArea.Area>\n )\n );\n })}\n </StackedArea>\n );\n }\n\n return dataDefinitions.map((item, index) => {\n return (\n item.checked && (\n <Area\n x={groupKey}\n y={item.id}\n key={item.id}\n color={item.color}\n transparent={highlightedLine !== -1 && highlightedLine !== index}\n curve={curve}\n >\n {showDots && <Area.Dots display />}\n </Area>\n )\n );\n });\n }\n\n renderTooltip() {\n const { data, groupKey, showTotalInTooltip, showTooltip } = this.asProps;\n const { dataDefinitions } = this.state;\n\n if (!showTooltip) {\n return null;\n }\n\n return (\n <HoverLine.Tooltip x={groupKey} wMin={100}>\n {({ xIndex }: any) => {\n const dataItem = data[xIndex];\n const total = this.totalValue(dataItem);\n\n return {\n children: (\n <>\n <HoverLine.Tooltip.Title>{dataItem[groupKey]?.toString()}</HoverLine.Tooltip.Title>\n\n {dataDefinitions.map((item) => {\n return (\n item.checked && (\n <Flex justifyContent='space-between' key={item.id}>\n <HoverLine.Tooltip.Dot mr={4} color={item.color}>\n {item.label}\n </HoverLine.Tooltip.Dot>\n <Text bold>{this.tooltipValueFormatter(dataItem[item.id])}</Text>\n </Flex>\n )\n );\n })}\n\n {showTotalInTooltip === true && (\n <Flex mt={2} justifyContent='space-between'>\n <Box mr={4}>Total</Box>\n <Text bold>{total}</Text>\n </Flex>\n )}\n </>\n ),\n };\n }}\n </HoverLine.Tooltip>\n );\n }\n}\n\nexport const AreaChart: AreaChartType = createComponent(AreaChartComponent);\n"],"mappings":";;;;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,eAAe,MAAM,eAAe;AAC3C,SAAsBC,WAAW,EAAEC,SAAS,QAAQ,UAAU;AAC9D;AACA,SAASC,IAAI,EAAEC,MAAM,EAAEC,SAAS,EAAEC,WAAW,QAAQ,OAAO;AAC5D,SAASC,aAAa,QAAQ,iBAAiB;AAE/C,SAASC,IAAI,EAAEC,GAAG,QAAQ,mBAAmB;AAC7C,SAASC,IAAI,QAAQ,qBAAqB;AAAC,IAErCC,kBAAkB,0BAAAC,cAAA;EAAAC,SAAA,CAAAF,kBAAA,EAAAC,cAAA;EAAA,IAAAE,MAAA,GAAAC,YAAA,CAAAJ,kBAAA;EAAA,SAAAA,mBAAA;IAAAK,eAAA,OAAAL,kBAAA;IAAA,OAAAG,MAAA,CAAAG,KAAA,OAAAC,SAAA;EAAA;EAAAC,YAAA,CAAAR,kBAAA;IAAAS,GAAA;IAAAC,GAAA,EAGtB,SAAAA,IAAA,EAAa;MACX,IAAAC,aAAA,GAA4D,IAAI,CAACC,OAAO;QAAhEC,MAAM,GAAAF,aAAA,CAANE,MAAM;QAAAC,qBAAA,GAAAH,aAAA,CAAEI,OAAO;QAAPA,OAAO,GAAAD,qBAAA,cAAG,EAAE,GAAAA,qBAAA;QAAEE,SAAS,GAAAL,aAAA,CAATK,SAAS;QAAEC,IAAI,GAAAN,aAAA,CAAJM,IAAI;QAAEC,QAAQ,GAAAP,aAAA,CAARO,QAAQ;MAEvD,IAAIL,MAAM,EAAE;QACV,OAAOA,MAAM;MACf;MAEA,IAAMM,QAAQ,GAAGF,IAAI,CAAC,CAAC,CAAC,CAACC,QAAQ,CAAC;MAClC,IAAME,KAAK,GAAG,CAACL,OAAO,EAAEC,SAAS,GAAG,IAAI,CAACK,WAAW,CAAC;MACrD,IAAMC,MAAM,GAAG7B,MAAM,CAACwB,IAAI,EAAEC,QAAQ,CAAC;MAErC,IAAIC,QAAQ,YAAYI,IAAI,IAAI,CAACC,MAAM,CAACC,KAAK,CAACN,QAAQ,CAACO,eAAe,EAAE,CAAC,EAAE;QACzE,OAAOnC,SAAS,CAAC+B,MAAM,EAAEF,KAAK,CAAC;MACjC;MAEA,OAAO9B,WAAW,CAACgC,MAAM,EAAEF,KAAK,CAAC;IACnC;EAAC;IAAAX,GAAA;IAAAC,GAAA,EAED,SAAAA,IAAA,EAAoC;MAClC,IAAAiB,cAAA,GAAsE,IAAI,CAACf,OAAO;QAA1EgB,MAAM,GAAAD,cAAA,CAANC,MAAM;QAAAC,qBAAA,GAAAF,cAAA,CAAEG,OAAO;QAAPA,OAAO,GAAAD,qBAAA,cAAG,EAAE,GAAAA,qBAAA;QAAEE,UAAU,GAAAJ,cAAA,CAAVI,UAAU;QAAEC,OAAO,GAAAL,cAAA,CAAPK,OAAO;QAAEf,IAAI,GAAAU,cAAA,CAAJV,IAAI;QAAEC,QAAQ,GAAAS,cAAA,CAART,QAAQ;MAEjE,IAAIU,MAAM,EAAE;QACV,OAAOA,MAAM;MACf;MAEA,IAAMK,UAAU,GAAAC,IAAA,CAAAC,eAAA,CAAAnC,kBAAA,CAAAoC,SAAA,sBAAmB;MACnC,IAAMC,GAAG,GAAGC,IAAI,CAACD,GAAG,CAAA/B,KAAA,CAARgC,IAAI,EAAAC,kBAAA,CAAQN,UAAU,EAAC;MACnC,IAAMO,GAAG,GAAGR,OAAO,GAAAE,IAAA,CAAAC,eAAA,CAAAnC,kBAAA,CAAAoC,SAAA,8BAA2BE,IAAI,CAACE,GAAG,CAAAlC,KAAA,CAARgC,IAAI,EAAAC,kBAAA,CAAQN,UAAU,EAAC;MAErE,OAAO3C,WAAW,EAAE,CACjB8B,KAAK,CAAC,CAACW,UAAU,GAAGD,OAAO,EAAE,IAAI,CAACT,WAAW,CAAC,CAAC,CAC/CC,MAAM,CAAC,CAACe,GAAG,EAAEG,GAAG,CAAC,CAAC;IACvB;EAAC;IAAA/B,GAAA;IAAAgC,KAAA,EAED,SAAAC,YAAA,EAAc;MACZ,IAAAC,cAAA,GAA+C,IAAI,CAAC/B,OAAO;QAAnDM,QAAQ,GAAAyB,cAAA,CAARzB,QAAQ;QAAE0B,KAAK,GAAAD,cAAA,CAALC,KAAK;QAAEC,QAAQ,GAAAF,cAAA,CAARE,QAAQ;QAAEb,OAAO,GAAAW,cAAA,CAAPX,OAAO;MAC1C,IAAAc,WAAA,GAA6C,IAAI,CAACC,KAAK;QAA/CC,eAAe,GAAAF,WAAA,CAAfE,eAAe;QAAEC,eAAe,GAAAH,WAAA,CAAfG,eAAe;MAExC,IAAIjB,OAAO,EAAE;QACX,oBACE5C,KAAA,CAAA8D,aAAA,CAACvD,WAAW;UAACwD,CAAC,EAAEjC;QAAS,GACtB8B,eAAe,CAACI,GAAG,CAAC,UAACC,IAAI,EAAEC,KAAK,EAAK;UACpC,OACED,IAAI,CAACE,OAAO,iBACVnE,KAAA,CAAA8D,aAAA,CAACvD,WAAW,CAACH,IAAI;YACf2D,CAAC,EAAEjC,QAAS;YACZsC,CAAC,EAAEH,IAAI,CAACI,EAAG;YACXhD,GAAG,EAAE4C,IAAI,CAACI,EAAG;YACbC,KAAK,EAAEL,IAAI,CAACK,KAAM;YAClBC,WAAW,EAAEV,eAAe,KAAK,CAAC,CAAC,IAAIA,eAAe,KAAKK,KAAM;YACjEV,KAAK,EAAEA;UAAM,GAEZC,QAAQ,iBAAIzD,KAAA,CAAA8D,aAAA,CAACvD,WAAW,CAACH,IAAI,CAACoE,IAAI;YAACC,OAAO;UAAA,EAAG,CAEjD;QAEL,CAAC,CAAC,CACU;MAElB;MAEA,OAAOb,eAAe,CAACI,GAAG,CAAC,UAACC,IAAI,EAAEC,KAAK,EAAK;QAC1C,OACED,IAAI,CAACE,OAAO,iBACVnE,KAAA,CAAA8D,aAAA,CAAC1D,IAAI;UACH2D,CAAC,EAAEjC,QAAS;UACZsC,CAAC,EAAEH,IAAI,CAACI,EAAG;UACXhD,GAAG,EAAE4C,IAAI,CAACI,EAAG;UACbC,KAAK,EAAEL,IAAI,CAACK,KAAM;UAClBC,WAAW,EAAEV,eAAe,KAAK,CAAC,CAAC,IAAIA,eAAe,KAAKK,KAAM;UACjEV,KAAK,EAAEA;QAAM,GAEZC,QAAQ,iBAAIzD,KAAA,CAAA8D,aAAA,CAAC1D,IAAI,CAACoE,IAAI;UAACC,OAAO;QAAA,EAAG,CAErC;MAEL,CAAC,CAAC;IACJ;EAAC;IAAApD,GAAA;IAAAgC,KAAA,EAED,SAAAqB,cAAA,EAAgB;MAAA,IAAAC,KAAA;MACd,IAAAC,cAAA,GAA4D,IAAI,CAACpD,OAAO;QAAhEK,IAAI,GAAA+C,cAAA,CAAJ/C,IAAI;QAAEC,QAAQ,GAAA8C,cAAA,CAAR9C,QAAQ;QAAE+C,kBAAkB,GAAAD,cAAA,CAAlBC,kBAAkB;QAAEC,WAAW,GAAAF,cAAA,CAAXE,WAAW;MACvD,IAAQlB,eAAe,GAAK,IAAI,CAACD,KAAK,CAA9BC,eAAe;MAEvB,IAAI,CAACkB,WAAW,EAAE;QAChB,OAAO,IAAI;MACb;MAEA,oBACE9E,KAAA,CAAA8D,aAAA,CAACxD,SAAS,CAACyE,OAAO;QAAChB,CAAC,EAAEjC,QAAS;QAACkD,IAAI,EAAE;MAAI,GACvC,UAAAC,IAAA,EAAqB;QAAA,IAAAC,kBAAA;QAAA,IAAlBC,MAAM,GAAAF,IAAA,CAANE,MAAM;QACR,IAAMC,QAAQ,GAAGvD,IAAI,CAACsD,MAAM,CAAC;QAC7B,IAAME,KAAK,GAAGV,KAAI,CAACW,UAAU,CAACF,QAAQ,CAAC;QAEvC,OAAO;UACLG,QAAQ,eACNvF,KAAA,CAAA8D,aAAA,CAAA9D,KAAA,CAAAwF,QAAA,qBACExF,KAAA,CAAA8D,aAAA,CAACxD,SAAS,CAACyE,OAAO,CAACU,KAAK,SAAAP,kBAAA,GAAEE,QAAQ,CAACtD,QAAQ,CAAC,cAAAoD,kBAAA,uBAAlBA,kBAAA,CAAoBQ,QAAQ,EAAE,CAA2B,EAElF9B,eAAe,CAACI,GAAG,CAAC,UAACC,IAAI,EAAK;YAC7B,OACEA,IAAI,CAACE,OAAO,iBACVnE,KAAA,CAAA8D,aAAA,CAACrD,IAAI;cAACkF,cAAc,EAAC,eAAe;cAACtE,GAAG,EAAE4C,IAAI,CAACI;YAAG,gBAChDrE,KAAA,CAAA8D,aAAA,CAACxD,SAAS,CAACyE,OAAO,CAACa,GAAG;cAACC,EAAE,EAAE,CAAE;cAACvB,KAAK,EAAEL,IAAI,CAACK;YAAM,GAC7CL,IAAI,CAAC6B,KAAK,CACW,eACxB9F,KAAA,CAAA8D,aAAA,CAACnD,IAAI;cAACoF,IAAI;YAAA,GAAEpB,KAAI,CAACqB,qBAAqB,CAACZ,QAAQ,CAACnB,IAAI,CAACI,EAAE,CAAC,CAAC,CAAQ,CAEpE;UAEL,CAAC,CAAC,EAEDQ,kBAAkB,KAAK,IAAI,iBAC1B7E,KAAA,CAAA8D,aAAA,CAACrD,IAAI;YAACwF,EAAE,EAAE,CAAE;YAACN,cAAc,EAAC;UAAe,gBACzC3F,KAAA,CAAA8D,aAAA,CAACpD,GAAG;YAACmF,EAAE,EAAE;UAAE,GAAC,OAAK,CAAM,eACvB7F,KAAA,CAAA8D,aAAA,CAACnD,IAAI;YAACoF,IAAI;UAAA,GAAEV,KAAK,CAAQ,CAE5B;QAGP,CAAC;MACH,CAAC,CACiB;IAExB;EAAC;EAAA,OAAAzE,kBAAA;AAAA,EA9H8BJ,aAAa;AAAA0F,eAAA,CAAxCtF,kBAAkB,iBACD,YAAY;AAgInC,OAAO,IAAMuF,SAAwB,GAAGlG,eAAe,CAACW,kBAAkB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=AreaChart.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AreaChart.type.js","names":[],"sources":["../../../../src/component/Chart/AreaChart.type.ts"],"sourcesContent":["import { Intergalactic } from '@semcore/core';\nimport { Flex } from '@semcore/flex-box';\nimport { interpolateValue } from '../../utils';\nimport { ScaleLinear, ScaleTime } from 'd3-scale';\nimport { CurveFactory } from 'd3-shape';\nimport { BaseChartProps } from './AbstractChart.type';\n\nexport type AreaChartData = Array<Record<string, number | typeof interpolateValue | Date>>;\n\nexport type AreaChartProps = BaseChartProps<AreaChartData> & {\n groupKey: string;\n xScale?: ScaleLinear<any, any> | ScaleTime<any, any>;\n yScale?: ScaleLinear<any, any>;\n showDots?: boolean;\n curve?: CurveFactory;\n stacked?: boolean;\n};\n\nexport type AreaChartType = Intergalactic.Component<typeof Flex, AreaChartProps>;\n"],"mappings":""}
@@ -0,0 +1,245 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
+ import _extends from "@babel/runtime/helpers/extends";
3
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
4
+ import _createClass from "@babel/runtime/helpers/createClass";
5
+ import _get from "@babel/runtime/helpers/get";
6
+ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
7
+ import _inherits from "@babel/runtime/helpers/inherits";
8
+ import _createSuper from "@babel/runtime/helpers/createSuper";
9
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
10
+ import React from 'react';
11
+ import createComponent from '@semcore/core';
12
+ import { scaleBand, scaleLinear, scaleTime } from 'd3-scale';
13
+ // @ts-ignore
14
+ import { minMax, GroupBar, HoverRect, StackBar, Line } from '../..';
15
+ import { AbstractChart } from './AbstractChart';
16
+ import { Box, Flex } from '@semcore/flex-box';
17
+ import { Text } from '@semcore/typography';
18
+ var BarChartComponent = /*#__PURE__*/function (_AbstractChart) {
19
+ _inherits(BarChartComponent, _AbstractChart);
20
+ var _super = _createSuper(BarChartComponent);
21
+ function BarChartComponent() {
22
+ _classCallCheck(this, BarChartComponent);
23
+ return _super.apply(this, arguments);
24
+ }
25
+ _createClass(BarChartComponent, [{
26
+ key: "xScale",
27
+ get: function get() {
28
+ var _this$asProps = this.asProps,
29
+ xScale = _this$asProps.xScale,
30
+ invertAxis = _this$asProps.invertAxis;
31
+ if (xScale) {
32
+ return xScale;
33
+ }
34
+ return invertAxis ? this.valueScale : this.categoryScale;
35
+ }
36
+ }, {
37
+ key: "yScale",
38
+ get: function get() {
39
+ var _this$asProps2 = this.asProps,
40
+ yScale = _this$asProps2.yScale,
41
+ invertAxis = _this$asProps2.invertAxis;
42
+ if (yScale) {
43
+ return yScale;
44
+ }
45
+ return invertAxis ? this.categoryScale : this.valueScale;
46
+ }
47
+ }, {
48
+ key: "defaultLegendProps",
49
+ value: function defaultLegendProps() {
50
+ if (this.props.trend !== undefined) {
51
+ return {
52
+ withTrend: true
53
+ };
54
+ }
55
+ return {};
56
+ }
57
+ }, {
58
+ key: "renderTrend",
59
+ value: function renderTrend(key) {
60
+ var _this$asProps3 = this.asProps,
61
+ groupKey = _this$asProps3.groupKey,
62
+ _this$asProps3$type = _this$asProps3.type,
63
+ type = _this$asProps3$type === void 0 ? 'group' : _this$asProps3$type,
64
+ invertAxis = _this$asProps3.invertAxis,
65
+ trend = _this$asProps3.trend;
66
+ var withTrend = this.state.withTrend;
67
+ var trendItem = trend === null || trend === void 0 ? void 0 : trend[key];
68
+ if (withTrend && trendItem) {
69
+ return /*#__PURE__*/React.createElement(Line, {
70
+ data: trendItem,
71
+ key: "".concat(key, "_").concat(groupKey),
72
+ x: invertAxis ? 'y' : 'x',
73
+ y: invertAxis ? 'x' : 'y',
74
+ color: 'wall',
75
+ style: {
76
+ strokeWidth: 3,
77
+ strokeDasharray: 5
78
+ }
79
+ }, /*#__PURE__*/React.createElement(Line.Dots, {
80
+ data: trendItem,
81
+ display: true
82
+ }));
83
+ }
84
+ return null;
85
+ }
86
+ }, {
87
+ key: "renderChart",
88
+ value: function renderChart() {
89
+ var _this = this;
90
+ var _this$asProps4 = this.asProps,
91
+ groupKey = _this$asProps4.groupKey,
92
+ _this$asProps4$type = _this$asProps4.type,
93
+ type = _this$asProps4$type === void 0 ? 'group' : _this$asProps4$type,
94
+ invertAxis = _this$asProps4.invertAxis;
95
+ var _this$state = this.state,
96
+ dataDefinitions = _this$state.dataDefinitions,
97
+ highlightedLine = _this$state.highlightedLine;
98
+ if (dataDefinitions.length === 1) {
99
+ var item = dataDefinitions[0];
100
+ var BarComponent = invertAxis ? GroupBar.HorizontalBar : GroupBar.Bar;
101
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(BarComponent, {
102
+ x: invertAxis ? item.id : groupKey,
103
+ y: invertAxis ? groupKey : item.id,
104
+ key: item.id,
105
+ color: item.color
106
+ }), this.renderTrend(item.id));
107
+ }
108
+ if (type === 'group') {
109
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(GroupBar, {
110
+ x: invertAxis ? undefined : groupKey,
111
+ y: invertAxis ? groupKey : undefined
112
+ }, dataDefinitions.map(function (item, index) {
113
+ var BarComponent = invertAxis ? GroupBar.HorizontalBar : GroupBar.Bar;
114
+ var commonBarComponentProps = {
115
+ color: item.color,
116
+ transparent: highlightedLine !== -1 && highlightedLine !== index
117
+ };
118
+ if (invertAxis) {
119
+ commonBarComponentProps.x = item.id;
120
+ } else {
121
+ commonBarComponentProps.y = item.id;
122
+ }
123
+ return item.checked && /*#__PURE__*/React.createElement(BarComponent, _extends({
124
+ key: item.id
125
+ }, commonBarComponentProps));
126
+ })), dataDefinitions.map(function (item) {
127
+ return item.checked && _this.renderTrend(item.id);
128
+ }));
129
+ }
130
+ if (type === 'stack') {
131
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(StackBar, {
132
+ x: invertAxis ? undefined : groupKey,
133
+ y: invertAxis ? groupKey : undefined
134
+ }, dataDefinitions.map(function (item, index) {
135
+ var BarComponent = invertAxis ? StackBar.HorizontalBar : StackBar.Bar;
136
+ var commonBarComponentProps = {
137
+ color: item.color,
138
+ transparent: highlightedLine !== -1 && highlightedLine !== index
139
+ };
140
+ if (invertAxis) {
141
+ commonBarComponentProps.x = item.id;
142
+ } else {
143
+ commonBarComponentProps.y = item.id;
144
+ }
145
+ return item.checked && /*#__PURE__*/React.createElement(BarComponent, _extends({
146
+ key: item.id
147
+ }, commonBarComponentProps));
148
+ })), dataDefinitions.map(function (item) {
149
+ return item.checked && _this.renderTrend(item.id);
150
+ }));
151
+ }
152
+ return null;
153
+ }
154
+ }, {
155
+ key: "renderTooltip",
156
+ value: function renderTooltip() {
157
+ var _this2 = this;
158
+ var _this$asProps5 = this.asProps,
159
+ data = _this$asProps5.data,
160
+ groupKey = _this$asProps5.groupKey,
161
+ showTotalInTooltip = _this$asProps5.showTotalInTooltip,
162
+ showTooltip = _this$asProps5.showTooltip,
163
+ invertAxis = _this$asProps5.invertAxis;
164
+ var dataDefinitions = this.state.dataDefinitions;
165
+ if (!showTooltip) {
166
+ return null;
167
+ }
168
+ return /*#__PURE__*/React.createElement(HoverRect.Tooltip, {
169
+ x: invertAxis ? undefined : groupKey,
170
+ y: invertAxis ? groupKey : undefined,
171
+ wMin: 100
172
+ }, function (_ref) {
173
+ var _dataItem$groupKey;
174
+ var xIndex = _ref.xIndex,
175
+ yIndex = _ref.yIndex;
176
+ var index = invertAxis ? yIndex : xIndex;
177
+ var dataItem = data[index];
178
+ var total = _this2.totalValue(dataItem);
179
+ return {
180
+ children: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(HoverRect.Tooltip.Title, null, (_dataItem$groupKey = dataItem[groupKey]) === null || _dataItem$groupKey === void 0 ? void 0 : _dataItem$groupKey.toString()), dataDefinitions.map(function (item) {
181
+ return item.checked && /*#__PURE__*/React.createElement(Flex, {
182
+ justifyContent: "space-between",
183
+ key: item.id
184
+ }, /*#__PURE__*/React.createElement(HoverRect.Tooltip.Dot, {
185
+ mr: 4,
186
+ color: item.color
187
+ }, item.label), /*#__PURE__*/React.createElement(Text, {
188
+ bold: true
189
+ }, _this2.tooltipValueFormatter(dataItem[item.id])));
190
+ }), showTotalInTooltip === true && /*#__PURE__*/React.createElement(Flex, {
191
+ mt: 2,
192
+ justifyContent: "space-between"
193
+ }, /*#__PURE__*/React.createElement(Box, {
194
+ mr: 4
195
+ }, "Total"), /*#__PURE__*/React.createElement(Text, {
196
+ bold: true
197
+ }, total)))
198
+ };
199
+ });
200
+ }
201
+ }, {
202
+ key: "categoryScale",
203
+ get: function get() {
204
+ var _this$asProps6 = this.asProps,
205
+ _this$asProps6$margin = _this$asProps6.marginY,
206
+ marginY = _this$asProps6$margin === void 0 ? 40 : _this$asProps6$margin,
207
+ _this$asProps6$margin2 = _this$asProps6.marginX,
208
+ marginX = _this$asProps6$margin2 === void 0 ? 24 : _this$asProps6$margin2,
209
+ plotWidth = _this$asProps6.plotWidth,
210
+ plotHeight = _this$asProps6.plotHeight,
211
+ invertAxis = _this$asProps6.invertAxis,
212
+ data = _this$asProps6.data,
213
+ groupKey = _this$asProps6.groupKey;
214
+ var testItem = data[0][groupKey];
215
+ var range = invertAxis ? [plotHeight - marginX, this.plotPadding] : [marginY, plotWidth - this.plotPadding];
216
+ if (testItem instanceof Date && !Number.isNaN(testItem.getMilliseconds())) {
217
+ var _domain = minMax(data, groupKey);
218
+ return scaleTime(_domain, range);
219
+ }
220
+ var domain = data.map(function (item) {
221
+ return item[groupKey];
222
+ });
223
+ return scaleBand(domain, range).paddingInner(0.4).paddingOuter(0.2);
224
+ }
225
+ }, {
226
+ key: "valueScale",
227
+ get: function get() {
228
+ var _this$asProps7 = this.asProps,
229
+ _this$asProps7$margin = _this$asProps7.marginY,
230
+ marginY = _this$asProps7$margin === void 0 ? 40 : _this$asProps7$margin,
231
+ _this$asProps7$margin2 = _this$asProps7.marginX,
232
+ marginX = _this$asProps7$margin2 === void 0 ? 24 : _this$asProps7$margin2,
233
+ plotWidth = _this$asProps7.plotWidth,
234
+ plotHeight = _this$asProps7.plotHeight,
235
+ invertAxis = _this$asProps7.invertAxis,
236
+ type = _this$asProps7.type;
237
+ var max = type === 'stack' ? _get(_getPrototypeOf(BarChartComponent.prototype), "maxStackedValue", this) : Math.max.apply(Math, _toConsumableArray(_get(_getPrototypeOf(BarChartComponent.prototype), "flatValues", this)));
238
+ return scaleLinear().range(invertAxis ? [marginY, plotWidth - this.plotPadding] : [plotHeight - marginX, this.plotPadding]).domain([0, max]);
239
+ }
240
+ }]);
241
+ return BarChartComponent;
242
+ }(AbstractChart);
243
+ _defineProperty(BarChartComponent, "displayName", 'Chart.Bar');
244
+ export var BarChart = createComponent(BarChartComponent);
245
+ //# sourceMappingURL=BarChart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BarChart.js","names":["React","createComponent","scaleBand","scaleLinear","scaleTime","minMax","GroupBar","HoverRect","StackBar","Line","AbstractChart","Box","Flex","Text","BarChartComponent","_AbstractChart","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","key","get","_this$asProps","asProps","xScale","invertAxis","valueScale","categoryScale","_this$asProps2","yScale","value","defaultLegendProps","props","trend","undefined","withTrend","renderTrend","_this$asProps3","groupKey","_this$asProps3$type","type","state","trendItem","createElement","data","concat","x","y","color","style","strokeWidth","strokeDasharray","Dots","display","renderChart","_this","_this$asProps4","_this$asProps4$type","_this$state","dataDefinitions","highlightedLine","length","item","BarComponent","HorizontalBar","Bar","Fragment","id","map","index","commonBarComponentProps","transparent","checked","_extends","renderTooltip","_this2","_this$asProps5","showTotalInTooltip","showTooltip","Tooltip","wMin","_ref","_dataItem$groupKey","xIndex","yIndex","dataItem","total","totalValue","children","Title","toString","justifyContent","Dot","mr","label","bold","tooltipValueFormatter","mt","_this$asProps6","_this$asProps6$margin","marginY","_this$asProps6$margin2","marginX","plotWidth","plotHeight","testItem","range","plotPadding","Date","Number","isNaN","getMilliseconds","domain","paddingInner","paddingOuter","_this$asProps7","_this$asProps7$margin","_this$asProps7$margin2","max","_get","_getPrototypeOf","prototype","Math","_toConsumableArray","_defineProperty","BarChart"],"sources":["../../../../src/component/Chart/BarChart.tsx"],"sourcesContent":["import React from 'react';\nimport createComponent from '@semcore/core';\nimport { BaseLegendProps } from './AbstractChart.type';\nimport { BarChartData, BarChartProps, BarChartType } from './BarChart.type';\nimport { scaleBand, scaleLinear, scaleTime } from 'd3-scale';\n// @ts-ignore\nimport { minMax, GroupBar, HoverRect, StackBar, Line } from '../..';\nimport { AbstractChart } from './AbstractChart';\nimport { BarProps } from '../../types';\nimport { Box, Flex } from '@semcore/flex-box';\nimport { Text } from '@semcore/typography';\nimport { LegendItemKey } from '../ChartLegend/LegendItem/LegendItem.type';\n\nclass BarChartComponent extends AbstractChart<BarChartData, BarChartProps> {\n static displayName = 'Chart.Bar';\n\n get xScale() {\n const { xScale, invertAxis } = this.asProps;\n\n if (xScale) {\n return xScale;\n }\n\n return invertAxis ? this.valueScale : this.categoryScale;\n }\n\n get yScale() {\n const { yScale, invertAxis } = this.asProps;\n\n if (yScale) {\n return yScale;\n }\n\n return invertAxis ? this.categoryScale : this.valueScale;\n }\n\n protected defaultLegendProps(): Partial<BaseLegendProps> {\n if (this.props.trend !== undefined) {\n return { withTrend: true };\n }\n\n return {};\n }\n\n renderTrend(key: LegendItemKey) {\n const { groupKey, type = 'group', invertAxis, trend } = this.asProps;\n const { withTrend } = this.state;\n const trendItem = trend?.[key];\n\n if (withTrend && trendItem) {\n return (\n <Line\n data={trendItem}\n key={`${key}_${groupKey}`}\n x={invertAxis ? 'y' : 'x'}\n y={invertAxis ? 'x' : 'y'}\n color={'wall'}\n style={{ strokeWidth: 3, strokeDasharray: 5 }}\n >\n <Line.Dots data={trendItem} display />\n </Line>\n );\n }\n\n return null;\n }\n\n renderChart() {\n const { groupKey, type = 'group', invertAxis } = this.asProps;\n const { dataDefinitions, highlightedLine } = this.state;\n\n if (dataDefinitions.length === 1) {\n const item = dataDefinitions[0];\n const BarComponent = invertAxis ? GroupBar.HorizontalBar : GroupBar.Bar;\n\n return (\n <>\n <BarComponent\n x={invertAxis ? item.id : groupKey}\n y={invertAxis ? groupKey : item.id}\n key={item.id}\n color={item.color}\n />\n {this.renderTrend(item.id)}\n </>\n );\n }\n\n if (type === 'group') {\n return (\n <>\n <GroupBar x={invertAxis ? undefined : groupKey} y={invertAxis ? groupKey : undefined}>\n {dataDefinitions.map((item, index) => {\n const BarComponent = invertAxis ? GroupBar.HorizontalBar : GroupBar.Bar;\n\n const commonBarComponentProps: BarProps = {\n color: item.color,\n transparent: highlightedLine !== -1 && highlightedLine !== index,\n };\n\n if (invertAxis) {\n commonBarComponentProps.x = item.id;\n } else {\n commonBarComponentProps.y = item.id;\n }\n\n return item.checked && <BarComponent key={item.id} {...commonBarComponentProps} />;\n })}\n </GroupBar>\n {dataDefinitions.map((item) => item.checked && this.renderTrend(item.id))}\n </>\n );\n }\n\n if (type === 'stack') {\n return (\n <>\n <StackBar x={invertAxis ? undefined : groupKey} y={invertAxis ? groupKey : undefined}>\n {dataDefinitions.map((item, index) => {\n const BarComponent = invertAxis ? StackBar.HorizontalBar : StackBar.Bar;\n\n const commonBarComponentProps: BarProps = {\n color: item.color,\n transparent: highlightedLine !== -1 && highlightedLine !== index,\n };\n\n if (invertAxis) {\n commonBarComponentProps.x = item.id;\n } else {\n commonBarComponentProps.y = item.id;\n }\n\n return item.checked && <BarComponent key={item.id} {...commonBarComponentProps} />;\n })}\n </StackBar>\n {dataDefinitions.map((item) => item.checked && this.renderTrend(item.id))}\n </>\n );\n }\n\n return null;\n }\n\n renderTooltip(): React.ReactNode {\n const { data, groupKey, showTotalInTooltip, showTooltip, invertAxis } = this.asProps;\n const { dataDefinitions } = this.state;\n\n if (!showTooltip) {\n return null;\n }\n\n return (\n <HoverRect.Tooltip\n x={invertAxis ? undefined : groupKey}\n y={invertAxis ? groupKey : undefined}\n wMin={100}\n >\n {({ xIndex, yIndex }: any) => {\n const index = invertAxis ? yIndex : xIndex;\n const dataItem = data[index];\n const total = this.totalValue(dataItem);\n\n return {\n children: (\n <>\n <HoverRect.Tooltip.Title>{dataItem[groupKey]?.toString()}</HoverRect.Tooltip.Title>\n\n {dataDefinitions.map((item) => {\n return (\n item.checked && (\n <Flex justifyContent='space-between' key={item.id}>\n <HoverRect.Tooltip.Dot mr={4} color={item.color}>\n {item.label}\n </HoverRect.Tooltip.Dot>\n <Text bold>{this.tooltipValueFormatter(dataItem[item.id])}</Text>\n </Flex>\n )\n );\n })}\n\n {showTotalInTooltip === true && (\n <Flex mt={2} justifyContent='space-between'>\n <Box mr={4}>Total</Box>\n <Text bold>{total}</Text>\n </Flex>\n )}\n </>\n ),\n };\n }}\n </HoverRect.Tooltip>\n );\n }\n\n private get categoryScale() {\n const {\n marginY = 40,\n marginX = 24,\n plotWidth,\n plotHeight,\n invertAxis,\n data,\n groupKey,\n } = this.asProps;\n\n const testItem = data[0][groupKey];\n const range = invertAxis\n ? [plotHeight - marginX, this.plotPadding]\n : [marginY, plotWidth - this.plotPadding];\n\n if (testItem instanceof Date && !Number.isNaN(testItem.getMilliseconds())) {\n const domain = minMax(data, groupKey);\n\n return scaleTime(domain, range);\n }\n\n const domain = data.map((item) => item[groupKey]);\n\n return scaleBand(domain, range).paddingInner(0.4).paddingOuter(0.2);\n }\n\n private get valueScale() {\n const { marginY = 40, marginX = 24, plotWidth, plotHeight, invertAxis, type } = this.asProps;\n\n const max = type === 'stack' ? super.maxStackedValue : Math.max(...super.flatValues);\n\n return scaleLinear()\n .range(\n invertAxis\n ? [marginY, plotWidth - this.plotPadding]\n : [plotHeight - marginX, this.plotPadding],\n )\n .domain([0, max]);\n }\n}\n\nexport const BarChart: BarChartType = createComponent(BarChartComponent);\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=BarChart.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BarChart.type.js","names":[],"sources":["../../../../src/component/Chart/BarChart.type.ts"],"sourcesContent":["import { Intergalactic } from '@semcore/core';\nimport { Flex } from '@semcore/flex-box';\nimport { ScaleBand, ScaleLinear, ScaleTime } from 'd3-scale';\nimport { BaseChartProps } from './AbstractChart.type';\nimport { LegendItemKey } from '../ChartLegend/LegendItem/LegendItem.type';\n\ntype TrendItem = {\n x: number;\n y: number;\n};\n\nexport type BarChartData = Array<Record<string, string | number | Date>>;\n\nexport type BarChartProps = BaseChartProps<BarChartData> & {\n groupKey: string;\n xScale?: ScaleBand<any> | ScaleTime<any, any>;\n yScale?: ScaleLinear<any, any>;\n type?: 'stack' | 'group';\n trend?: Record<LegendItemKey, TrendItem[]>;\n};\n\nexport type BarChartType = Intergalactic.Component<typeof Flex, BarChartProps>;\n"],"mappings":""}
@@ -0,0 +1,137 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/createClass";
3
+ import _inherits from "@babel/runtime/helpers/inherits";
4
+ import _createSuper from "@babel/runtime/helpers/createSuper";
5
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
6
+ import React from 'react';
7
+ import createComponent from '@semcore/core';
8
+ import { scaleLinear } from 'd3-scale';
9
+ // @ts-ignore
10
+ import { Bubble, minMax } from '../..';
11
+ import { AbstractChart } from './AbstractChart';
12
+ import { Text } from '@semcore/typography';
13
+ var BubbleChartComponent = /*#__PURE__*/function (_AbstractChart) {
14
+ _inherits(BubbleChartComponent, _AbstractChart);
15
+ var _super = _createSuper(BubbleChartComponent);
16
+ function BubbleChartComponent() {
17
+ _classCallCheck(this, BubbleChartComponent);
18
+ return _super.apply(this, arguments);
19
+ }
20
+ _createClass(BubbleChartComponent, [{
21
+ key: "dataKeys",
22
+ get: function get() {
23
+ var data = this.props.data;
24
+ return data.map(function (_, index) {
25
+ return index.toString();
26
+ });
27
+ }
28
+ }, {
29
+ key: "defaultDataDefinitions",
30
+ get: function get() {
31
+ var _this = this;
32
+ var _this$props = this.props,
33
+ legendProps = _this$props.legendProps,
34
+ data = _this$props.data;
35
+ return data.map(function (item, index) {
36
+ var _legendProps$legendMa, _ref, _legendData$label, _legendData$icon, _legendData$defaultCh;
37
+ var key = index.toString();
38
+ var legendData = legendProps === null || legendProps === void 0 ? void 0 : (_legendProps$legendMa = legendProps.legendMap) === null || _legendProps$legendMa === void 0 ? void 0 : _legendProps$legendMa[key];
39
+ if (item.color === undefined) {
40
+ item.color = _this.resolveColor(key, index);
41
+ }
42
+ var dataDefinition = {
43
+ id: key,
44
+ label: (_ref = (_legendData$label = legendData === null || legendData === void 0 ? void 0 : legendData.label) !== null && _legendData$label !== void 0 ? _legendData$label : item.label) !== null && _ref !== void 0 ? _ref : key,
45
+ icon: (_legendData$icon = legendData === null || legendData === void 0 ? void 0 : legendData.icon) !== null && _legendData$icon !== void 0 ? _legendData$icon : undefined,
46
+ checked: (_legendData$defaultCh = legendData === null || legendData === void 0 ? void 0 : legendData.defaultChecked) !== null && _legendData$defaultCh !== void 0 ? _legendData$defaultCh : true,
47
+ color: item.color,
48
+ columns: []
49
+ };
50
+ if (legendData !== null && legendData !== void 0 && legendData.additionalInfo || legendData !== null && legendData !== void 0 && legendData.count) {
51
+ dataDefinition.additionalInfo = legendData.additionalInfo ? {
52
+ label: legendData.additionalInfo
53
+ } : legendData.count ? {
54
+ count: legendData.count
55
+ } : undefined;
56
+ }
57
+ return dataDefinition;
58
+ });
59
+ }
60
+ }, {
61
+ key: "xScale",
62
+ get: function get() {
63
+ var _this$asProps = this.asProps,
64
+ xScale = _this$asProps.xScale,
65
+ _this$asProps$marginY = _this$asProps.marginY,
66
+ marginY = _this$asProps$marginY === void 0 ? 30 : _this$asProps$marginY,
67
+ plotWidth = _this$asProps.plotWidth,
68
+ data = _this$asProps.data,
69
+ groupKey = _this$asProps.groupKey;
70
+ if (xScale) {
71
+ return xScale;
72
+ }
73
+ var range = [marginY, plotWidth - this.plotPadding];
74
+ var domain = minMax(data, 'x');
75
+ return scaleLinear([domain[0] * 0.8, domain[1] * 1.2], range);
76
+ }
77
+ }, {
78
+ key: "yScale",
79
+ get: function get() {
80
+ var _this$asProps2 = this.asProps,
81
+ yScale = _this$asProps2.yScale,
82
+ _this$asProps2$margin = _this$asProps2.marginX,
83
+ marginX = _this$asProps2$margin === void 0 ? 30 : _this$asProps2$margin,
84
+ plotHeight = _this$asProps2.plotHeight,
85
+ data = _this$asProps2.data;
86
+ if (yScale) {
87
+ return yScale;
88
+ }
89
+ var range = [plotHeight - marginX, this.plotPadding];
90
+ var domain = minMax(data, 'y');
91
+ return scaleLinear([domain[0] * 0.8, domain[1] * 1.2], range);
92
+ }
93
+ }, {
94
+ key: "defaultLegendProps",
95
+ value: function defaultLegendProps() {
96
+ return {
97
+ shape: 'Circle'
98
+ };
99
+ }
100
+ }, {
101
+ key: "renderChart",
102
+ value: function renderChart() {
103
+ return /*#__PURE__*/React.createElement(Bubble, {
104
+ x: "x",
105
+ y: "y",
106
+ value: "value",
107
+ color: 'color',
108
+ label: 'label'
109
+ });
110
+ }
111
+ }, {
112
+ key: "renderTooltip",
113
+ value: function renderTooltip() {
114
+ var showTooltip = this.asProps.showTooltip;
115
+ if (!showTooltip) {
116
+ return null;
117
+ }
118
+ return /*#__PURE__*/React.createElement(Bubble.Tooltip, null, function (_ref2) {
119
+ var index = _ref2.index,
120
+ data = _ref2.data;
121
+ return {
122
+ children: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Bubble.Tooltip.Title, null, "Data"), /*#__PURE__*/React.createElement(Text, {
123
+ tag: "div"
124
+ }, "X axis ", data[index].x), /*#__PURE__*/React.createElement(Text, {
125
+ tag: "div"
126
+ }, "Y axis ", data[index].y), /*#__PURE__*/React.createElement(Text, {
127
+ tag: "div"
128
+ }, "Value ", data[index].value))
129
+ };
130
+ });
131
+ }
132
+ }]);
133
+ return BubbleChartComponent;
134
+ }(AbstractChart);
135
+ _defineProperty(BubbleChartComponent, "displayName", 'Chart.Bubble');
136
+ export var BubbleChart = createComponent(BubbleChartComponent);
137
+ //# sourceMappingURL=BubbleChart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BubbleChart.js","names":["React","createComponent","scaleLinear","Bubble","minMax","AbstractChart","Text","BubbleChartComponent","_AbstractChart","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","key","get","data","props","map","_","index","toString","_this","_this$props","legendProps","item","_legendProps$legendMa","_ref","_legendData$label","_legendData$icon","_legendData$defaultCh","legendData","legendMap","color","undefined","resolveColor","dataDefinition","id","label","icon","checked","defaultChecked","columns","additionalInfo","count","_this$asProps","asProps","xScale","_this$asProps$marginY","marginY","plotWidth","groupKey","range","plotPadding","domain","_this$asProps2","yScale","_this$asProps2$margin","marginX","plotHeight","value","defaultLegendProps","shape","renderChart","createElement","x","y","renderTooltip","showTooltip","Tooltip","_ref2","children","Fragment","Title","tag","_defineProperty","BubbleChart"],"sources":["../../../../src/component/Chart/BubbleChart.tsx"],"sourcesContent":["import React from 'react';\nimport createComponent from '@semcore/core';\nimport { scaleLinear, ScaleLinear } from 'd3-scale';\n// @ts-ignore\nimport { Bubble, minMax } from '../..';\nimport { AbstractChart } from './AbstractChart';\nimport { BubbleChartData, BubbleChartProps, BubbleChartType } from './BubbleChart.type';\nimport { Text } from '@semcore/typography';\nimport { LegendItem } from '../ChartLegend/LegendItem/LegendItem.type';\n\nclass BubbleChartComponent extends AbstractChart<BubbleChartData, BubbleChartProps> {\n static displayName = 'Chart.Bubble';\n\n protected get dataKeys(): string[] {\n const { data } = this.props;\n\n return data.map((_, index) => index.toString());\n }\n\n get defaultDataDefinitions(): Array<LegendItem & { columns: React.ReactNode[] }> {\n const { legendProps, data } = this.props;\n\n return data.map((item, index) => {\n const key = index.toString();\n const legendData = legendProps?.legendMap?.[key];\n\n if (item.color === undefined) {\n item.color = this.resolveColor(key, index);\n }\n\n const dataDefinition: LegendItem & { columns: React.ReactNode[] } = {\n id: key,\n label: legendData?.label ?? item.label ?? key,\n icon: legendData?.icon ?? undefined,\n checked: legendData?.defaultChecked ?? true,\n color: item.color,\n columns: [],\n };\n\n if (legendData?.additionalInfo || legendData?.count) {\n dataDefinition.additionalInfo = legendData.additionalInfo\n ? { label: legendData.additionalInfo }\n : legendData.count\n ? { count: legendData.count }\n : undefined;\n }\n\n return dataDefinition;\n });\n }\n\n get xScale() {\n const { xScale, marginY = 30, plotWidth, data, groupKey } = this.asProps;\n\n if (xScale) {\n return xScale;\n }\n\n const range = [marginY, plotWidth - this.plotPadding];\n const domain = minMax(data, 'x');\n\n return scaleLinear([domain[0] * 0.8, domain[1] * 1.2], range);\n }\n\n get yScale(): ScaleLinear<any, any> {\n const { yScale, marginX = 30, plotHeight, data } = this.asProps;\n\n if (yScale) {\n return yScale;\n }\n\n const range = [plotHeight - marginX, this.plotPadding];\n const domain = minMax(data, 'y');\n\n return scaleLinear([domain[0] * 0.8, domain[1] * 1.2], range);\n }\n\n defaultLegendProps() {\n return {\n shape: 'Circle' as const,\n };\n }\n\n renderChart() {\n return <Bubble x='x' y='y' value='value' color={'color'} label={'label'} />;\n }\n\n renderTooltip() {\n const { showTooltip } = this.asProps;\n\n if (!showTooltip) {\n return null;\n }\n\n return (\n <Bubble.Tooltip>\n {({ index, data }: any) => {\n return {\n children: (\n <>\n <Bubble.Tooltip.Title>Data</Bubble.Tooltip.Title>\n <Text tag='div'>X axis {data[index].x}</Text>\n <Text tag='div'>Y axis {data[index].y}</Text>\n <Text tag='div'>Value {data[index].value}</Text>\n </>\n ),\n };\n }}\n </Bubble.Tooltip>\n );\n }\n}\n\nexport const BubbleChart: BubbleChartType = createComponent(BubbleChartComponent);\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=BubbleChart.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BubbleChart.type.js","names":[],"sources":["../../../../src/component/Chart/BubbleChart.type.ts"],"sourcesContent":["import { Intergalactic } from '@semcore/core';\nimport { Flex } from '@semcore/flex-box';\nimport { ScaleLinear } from 'd3-scale';\nimport { BaseChartProps } from './AbstractChart.type';\n\nexport type BubbleChartData = Array<{\n x: number;\n y: number;\n value: number;\n label?: string;\n color?: string;\n}>;\n\nexport type BubbleChartProps = BaseChartProps<BubbleChartData> & {\n groupKey?: never;\n xScale?: ScaleLinear<any, any>;\n yScale?: ScaleLinear<any, any>;\n};\n\nexport type BubbleChartType = Intergalactic.Component<typeof Flex, BubbleChartProps>;\n"],"mappings":""}
@@ -0,0 +1,109 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/createClass";
3
+ import _inherits from "@babel/runtime/helpers/inherits";
4
+ import _createSuper from "@babel/runtime/helpers/createSuper";
5
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
6
+ import React from 'react';
7
+ import createComponent from '@semcore/core';
8
+ import { scaleLinear } from 'd3-scale';
9
+ // @ts-ignore
10
+ import { Donut } from '../..';
11
+ import { AbstractChart } from './AbstractChart';
12
+ import { Text } from '@semcore/typography';
13
+ import { Flex } from '@semcore/flex-box';
14
+ var DonutChartComponent = /*#__PURE__*/function (_AbstractChart) {
15
+ _inherits(DonutChartComponent, _AbstractChart);
16
+ var _super = _createSuper(DonutChartComponent);
17
+ function DonutChartComponent() {
18
+ _classCallCheck(this, DonutChartComponent);
19
+ return _super.apply(this, arguments);
20
+ }
21
+ _createClass(DonutChartComponent, [{
22
+ key: "xScale",
23
+ get: function get() {
24
+ var xScale = this.asProps.xScale;
25
+ if (xScale) {
26
+ return xScale;
27
+ }
28
+ return scaleLinear();
29
+ }
30
+ }, {
31
+ key: "yScale",
32
+ get: function get() {
33
+ var yScale = this.asProps.yScale;
34
+ if (yScale) {
35
+ return yScale;
36
+ }
37
+ return scaleLinear();
38
+ }
39
+ }, {
40
+ key: "defaultLegendProps",
41
+ value: function defaultLegendProps() {
42
+ return {
43
+ legendType: 'Table'
44
+ };
45
+ }
46
+ }, {
47
+ key: "renderChart",
48
+ value: function renderChart() {
49
+ var _this$asProps = this.asProps,
50
+ innerRadius = _this$asProps.innerRadius,
51
+ halfsize = _this$asProps.halfsize,
52
+ innerLabel = _this$asProps.innerLabel;
53
+ var _this$state = this.state,
54
+ dataDefinitions = _this$state.dataDefinitions,
55
+ highlightedLine = _this$state.highlightedLine;
56
+ var checkedLegendItems = dataDefinitions.filter(function (item) {
57
+ return item.checked;
58
+ });
59
+ return /*#__PURE__*/React.createElement(Donut, {
60
+ halfsize: halfsize,
61
+ innerRadius: innerRadius
62
+ }, checkedLegendItems.length === 0 && /*#__PURE__*/React.createElement(Donut.EmptyData, null), checkedLegendItems.map(function (item, index) {
63
+ return /*#__PURE__*/React.createElement(Donut.Pie, {
64
+ key: item.id,
65
+ dataKey: item.id,
66
+ name: item.label,
67
+ color: item.color,
68
+ active: highlightedLine === index
69
+ });
70
+ }), innerLabel && /*#__PURE__*/React.createElement(Donut.Label, null, innerLabel));
71
+ }
72
+ }, {
73
+ key: "renderTooltip",
74
+ value: function renderTooltip() {
75
+ var _this = this;
76
+ var _this$asProps2 = this.asProps,
77
+ data = _this$asProps2.data,
78
+ showTooltip = _this$asProps2.showTooltip;
79
+ var dataDefinitions = this.state.dataDefinitions;
80
+ if (!showTooltip) {
81
+ return null;
82
+ }
83
+ return /*#__PURE__*/React.createElement(Donut.Tooltip, null, function (_ref) {
84
+ var dataKey = _ref.dataKey;
85
+ var title = dataDefinitions.find(function (item) {
86
+ return item.id === dataKey;
87
+ });
88
+ return {
89
+ children: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Donut.Tooltip.Title, null, (title === null || title === void 0 ? void 0 : title.label) || dataKey), /*#__PURE__*/React.createElement(Flex, {
90
+ justifyContent: "space-between"
91
+ }, /*#__PURE__*/React.createElement(Text, {
92
+ bold: true
93
+ }, _this.tooltipValueFormatter(data[dataKey]))))
94
+ };
95
+ });
96
+ }
97
+ }]);
98
+ return DonutChartComponent;
99
+ }(AbstractChart);
100
+ _defineProperty(DonutChartComponent, "displayName", 'Chart.Donut');
101
+ _defineProperty(DonutChartComponent, "defaultProps", {
102
+ direction: 'row-reverse',
103
+ alignItems: 'flex-start',
104
+ innerRadius: 100,
105
+ marginX: 0,
106
+ marginY: 0
107
+ });
108
+ export var DonutChart = createComponent(DonutChartComponent);
109
+ //# sourceMappingURL=DonutChart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DonutChart.js","names":["React","createComponent","scaleLinear","Donut","AbstractChart","Text","Flex","DonutChartComponent","_AbstractChart","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","key","get","xScale","asProps","yScale","value","defaultLegendProps","legendType","renderChart","_this$asProps","innerRadius","halfsize","innerLabel","_this$state","state","dataDefinitions","highlightedLine","checkedLegendItems","filter","item","checked","createElement","length","EmptyData","map","index","Pie","id","dataKey","name","label","color","active","Label","renderTooltip","_this","_this$asProps2","data","showTooltip","Tooltip","_ref","title","find","children","Fragment","Title","justifyContent","bold","tooltipValueFormatter","_defineProperty","direction","alignItems","marginX","marginY","DonutChart"],"sources":["../../../../src/component/Chart/DonutChart.tsx"],"sourcesContent":["import React from 'react';\nimport createComponent from '@semcore/core';\nimport { scaleLinear } from 'd3-scale';\n// @ts-ignore\nimport { Donut } from '../..';\nimport { AbstractChart } from './AbstractChart';\nimport { Text } from '@semcore/typography';\nimport { DonutChartData, DonutChartProps, DonutChartType } from './DonutChart.type';\nimport { Flex } from '@semcore/flex-box';\n\nclass DonutChartComponent extends AbstractChart<DonutChartData, DonutChartProps> {\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 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 } = this.asProps;\n const { dataDefinitions, highlightedLine } = this.state;\n\n const checkedLegendItems = dataDefinitions.filter((item) => item.checked);\n\n return (\n <Donut 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, showTooltip } = this.asProps;\n const { dataDefinitions } = this.state;\n\n if (!showTooltip) {\n return null;\n }\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\nexport const DonutChart: DonutChartType = createComponent(DonutChartComponent);\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=DonutChart.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DonutChart.type.js","names":[],"sources":["../../../../src/component/Chart/DonutChart.type.ts"],"sourcesContent":["import React from 'react';\nimport { Intergalactic } from '@semcore/core';\nimport { Flex } from '@semcore/flex-box';\nimport { ScaleLinear } from 'd3-scale';\nimport { BaseChartProps } from './AbstractChart.type';\n\nexport type DonutChartData = Record<string, number>;\n\nexport type DonutChartProps = BaseChartProps<DonutChartData> & {\n groupKey?: never;\n xScale?: ScaleLinear<any, any>;\n yScale?: ScaleLinear<any, any>;\n innerRadius?: number;\n halfsize?: boolean;\n innerLabel?: React.ReactNode;\n};\n\nexport type DonutChartType = Intergalactic.Component<typeof Flex, DonutChartProps>;\n"],"mappings":""}