intergalactic 15.53.1-prerelease-f5568cd8 → 15.53.1-prerelease-56fa8ea6

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 (38) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/d3-chart/component/Chart/AbstractChart.d.ts +1 -0
  3. package/d3-chart/component/Chart/BubbleChart.type.d.ts +4 -0
  4. package/d3-chart/lib/cjs/Bubble.js +40 -35
  5. package/d3-chart/lib/cjs/Bubble.js.map +1 -1
  6. package/d3-chart/lib/cjs/ScatterPlot.js +1 -1
  7. package/d3-chart/lib/cjs/ScatterPlot.js.map +1 -1
  8. package/d3-chart/lib/cjs/component/Chart/AbstractChart.js +11 -0
  9. package/d3-chart/lib/cjs/component/Chart/AbstractChart.js.map +1 -1
  10. package/d3-chart/lib/cjs/component/Chart/BubbleChart.js +50 -16
  11. package/d3-chart/lib/cjs/component/Chart/BubbleChart.js.map +1 -1
  12. package/d3-chart/lib/cjs/component/Chart/BubbleChart.type.js.map +1 -1
  13. package/d3-chart/lib/cjs/component/Chart/ScatterPlotChart.js +15 -7
  14. package/d3-chart/lib/cjs/component/Chart/ScatterPlotChart.js.map +1 -1
  15. package/d3-chart/lib/cjs/index.js +12 -0
  16. package/d3-chart/lib/cjs/index.js.map +1 -1
  17. package/d3-chart/lib/cjs/utils.js +13 -1
  18. package/d3-chart/lib/cjs/utils.js.map +1 -1
  19. package/d3-chart/lib/es6/Bubble.js +41 -36
  20. package/d3-chart/lib/es6/Bubble.js.map +1 -1
  21. package/d3-chart/lib/es6/ScatterPlot.js +2 -2
  22. package/d3-chart/lib/es6/ScatterPlot.js.map +1 -1
  23. package/d3-chart/lib/es6/component/Chart/AbstractChart.js +11 -0
  24. package/d3-chart/lib/es6/component/Chart/AbstractChart.js.map +1 -1
  25. package/d3-chart/lib/es6/component/Chart/BubbleChart.js +51 -17
  26. package/d3-chart/lib/es6/component/Chart/BubbleChart.js.map +1 -1
  27. package/d3-chart/lib/es6/component/Chart/BubbleChart.type.js.map +1 -1
  28. package/d3-chart/lib/es6/component/Chart/ScatterPlotChart.js +16 -8
  29. package/d3-chart/lib/es6/component/Chart/ScatterPlotChart.js.map +1 -1
  30. package/d3-chart/lib/es6/index.js +1 -1
  31. package/d3-chart/lib/es6/index.js.map +1 -1
  32. package/d3-chart/lib/es6/utils.js +11 -1
  33. package/d3-chart/lib/es6/utils.js.map +1 -1
  34. package/d3-chart/lib/types/component/Chart/AbstractChart.d.ts +1 -0
  35. package/d3-chart/lib/types/component/Chart/BubbleChart.type.d.ts +4 -0
  36. package/d3-chart/lib/types/utils.d.ts +2 -0
  37. package/d3-chart/utils.d.ts +2 -0
  38. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"BubbleChart.js","names":["_react","_interopRequireDefault","require","_core","_d3Scale","_2","_AbstractChart2","_typography","BubbleChartComponent","_AbstractChart","_inherits2","_super","_createSuper2","_classCallCheck2","apply","arguments","_createClass2","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","minMax","scaleLinear","_this$asProps2","yScale","_this$asProps2$margin","marginX","plotHeight","value","defaultLegendProps","shape","renderChart","createElement","Bubble","x","y","renderTooltip","showTooltip","Tooltip","_ref2","children","Fragment","Title","Text","tag","AbstractChart","_defineProperty2","BubbleChart","createComponent","exports"],"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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"}
1
+ {"version":3,"file":"BubbleChart.js","names":["_react","_interopRequireDefault","require","_core","_d3Scale","_2","_AbstractChart2","_typography","BubbleChartComponent","_AbstractChart","_inherits2","_super","_createSuper2","_classCallCheck2","apply","arguments","_createClass2","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","asProps","getBubbleChartValueScale","_this2","_this$asProps","plotWidth","plotHeight","values","x","y","xValueScale","getValueScale","d","yValueScale","forEach","scaledValue","valueScale","value","push","_this$asProps2","xScale","_this$asProps2$margin","marginY","groupKey","range","plotPadding","scaleLinear","Math","min","_toConsumableArray2","scaledValues","max","_this$asProps3","yScale","_this$asProps3$margin","marginX","defaultLegendProps","shape","renderChart","createElement","Bubble","renderTooltip","showTooltip","Tooltip","_ref2","children","Fragment","Title","Text","tag","AbstractChart","_defineProperty2","BubbleChart","createComponent","exports"],"sources":["../../../../src/component/Chart/BubbleChart.tsx"],"sourcesContent":["import React from 'react';\nimport createComponent from '@semcore/core';\nimport { scaleLinear, ScaleLinear, ScalePower } from 'd3-scale';\n// @ts-ignore\nimport { Bubble, getBubbleChartValueScale } from '../..';\nimport { AbstractChart } from './AbstractChart';\nimport {\n BubbleChartData,\n BubbleChartProps,\n BubbleChartType,\n ScaledValues,\n} 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 valueScale(): ScalePower<number, number> {\n const { data } = this.asProps;\n\n return getBubbleChartValueScale(data, 'value');\n }\n\n get scaledValues(): ScaledValues {\n const { data, plotWidth, plotHeight } = this.asProps;\n const values: ScaledValues = { x: [], y: [] };\n\n const xValueScale = (plotWidth / plotHeight) * this.getValueScale(data.map((d) => d.x));\n const yValueScale = (plotHeight / plotWidth) * this.getValueScale(data.map((d) => d.y));\n\n data.forEach((item) => {\n const x = item.x;\n const y = item.y;\n const scaledValue = this.valueScale(item.value);\n\n values.x.push(x - scaledValue / xValueScale);\n values.x.push(x + scaledValue / xValueScale);\n values.y.push(y - scaledValue / yValueScale);\n values.y.push(y + scaledValue / yValueScale);\n });\n\n return values;\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\n return scaleLinear([Math.min(...this.scaledValues.x), Math.max(...this.scaledValues.x)], 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\n return scaleLinear([Math.min(...this.scaledValues.y), Math.max(...this.scaledValues.y)], 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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"}
@@ -1 +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":""}
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 ScaledValues = {\n x: number[];\n y: number[];\n};\n\nexport type BubbleChartData = Array<{\n x: number;\n y: number;\n value: number;\n label?: string;\n color?: string;\n}>;\n\nexport type BubbleChartProps = 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":""}
@@ -46,17 +46,19 @@ var ScatterPlotChartComponent = /*#__PURE__*/function (_AbstractChart) {
46
46
  marginY = _this$asProps$marginY === void 0 ? 30 : _this$asProps$marginY,
47
47
  plotWidth = _this$asProps.plotWidth,
48
48
  data = _this$asProps.data,
49
- groupKey = _this$asProps.groupKey;
49
+ groupKey = _this$asProps.groupKey,
50
+ valueKey = _this$asProps.valueKey;
50
51
  if (xScale) {
51
52
  return xScale;
52
53
  }
54
+ var radius = (0, _.getScatterPlotRadius)(valueKey) / this.getValueScale((0, _toConsumableArray2["default"])(this.flatValues));
53
55
  var testItem = data[0][groupKey];
54
56
  var range = [marginY, plotWidth - this.plotPadding];
55
57
  var domain = (0, _.minMax)(data, groupKey);
56
58
  if (testItem instanceof Date && !Number.isNaN(testItem.getMilliseconds())) {
57
- return (0, _d3Scale.scaleTime)([domain[0] * 0.8, domain[1] * 1.2], range);
59
+ return (0, _d3Scale.scaleTime)([domain[0] - radius, domain[1] + radius], range);
58
60
  }
59
- return (0, _d3Scale.scaleLinear)([domain[0] * 0.8, domain[1] * 1.2], range);
61
+ return (0, _d3Scale.scaleLinear)([domain[0] - radius, domain[1] + radius], range);
60
62
  }
61
63
  }, {
62
64
  key: "yScale",
@@ -65,14 +67,16 @@ var ScatterPlotChartComponent = /*#__PURE__*/function (_AbstractChart) {
65
67
  yScale = _this$asProps2.yScale,
66
68
  _this$asProps2$margin = _this$asProps2.marginX,
67
69
  marginX = _this$asProps2$margin === void 0 ? 30 : _this$asProps2$margin,
68
- plotHeight = _this$asProps2.plotHeight;
70
+ plotHeight = _this$asProps2.plotHeight,
71
+ valueKey = _this$asProps2.valueKey;
69
72
  if (yScale) {
70
73
  return yScale;
71
74
  }
72
75
  var flatValues = this.flatValues;
73
- var max = Math.max.apply(Math, (0, _toConsumableArray2["default"])(flatValues));
74
- var min = Math.min.apply(Math, (0, _toConsumableArray2["default"])(flatValues));
75
- return (0, _d3Scale.scaleLinear)().range([plotHeight - marginX, this.plotPadding]).domain([min * 0.8, max * 1.1]);
76
+ var radius = (0, _.getScatterPlotRadius)(valueKey) / this.getValueScale((0, _toConsumableArray2["default"])(flatValues));
77
+ var max = Math.max.apply(Math, (0, _toConsumableArray2["default"])(flatValues)) + radius;
78
+ var min = Math.min.apply(Math, (0, _toConsumableArray2["default"])(flatValues)) - radius;
79
+ return (0, _d3Scale.scaleLinear)().range([plotHeight - marginX, this.plotPadding]).domain([min, max]);
76
80
  }
77
81
  }, {
78
82
  key: "flatValues",
@@ -152,6 +156,10 @@ var ScatterPlotChartComponent = /*#__PURE__*/function (_AbstractChart) {
152
156
  }(_AbstractChart2.AbstractChart);
153
157
  (0, _defineProperty2["default"])(ScatterPlotChartComponent, "displayName", 'Chart.ScatterPlot');
154
158
  (0, _defineProperty2["default"])(ScatterPlotChartComponent, "defaultProps", {
159
+ direction: 'column',
160
+ showXAxis: true,
161
+ showYAxis: true,
162
+ showTooltip: true,
155
163
  showLegend: false
156
164
  });
157
165
  var ScatterPlotChart = (0, _core["default"])(ScatterPlotChartComponent);
@@ -1 +1 @@
1
- {"version":3,"file":"ScatterPlotChart.js","names":["_react","_interopRequireDefault","require","_core","_d3Scale","_","_AbstractChart2","_typography","ScatterPlotChartComponent","_AbstractChart","_inherits2","_super","_createSuper2","_classCallCheck2","apply","arguments","_createClass2","key","get","_this$props","props","data","groupKey","valueKey","Object","keys","filter","_this$asProps","asProps","xScale","_this$asProps$marginY","marginY","plotWidth","testItem","range","plotPadding","domain","minMax","Date","Number","isNaN","getMilliseconds","scaleTime","scaleLinear","_this$asProps2","yScale","_this$asProps2$margin","marginX","plotHeight","flatValues","max","Math","_toConsumableArray2","min","_this$asProps3","reduce","result","item","entries","forEach","_ref","_ref2","_slicedToArray2","value","add","Set","renderChart","_this$asProps4","dataDefinitions","state","map","checked","createElement","ScatterPlot","x","y","id","color","renderTooltip","_this","_this$asProps5","showTooltip","Tooltip","wMin","_ref3","index","children","Fragment","Dot","Text","tag","tooltipValueFormatter","AbstractChart","_defineProperty2","showLegend","ScatterPlotChart","createComponent","exports"],"sources":["../../../../src/component/Chart/ScatterPlotChart.tsx"],"sourcesContent":["import React from 'react';\nimport createComponent from '@semcore/core';\nimport { ScaleLinear, scaleLinear, scaleTime } from 'd3-scale';\n// @ts-ignore\nimport { minMax, ScatterPlot } from '../..';\nimport { AbstractChart } from './AbstractChart';\nimport {\n ScatterPlotChartData,\n ScatterPlotChartProps,\n ScatterPlotChartType,\n} from './ScatterPlotChart.type';\nimport { Text } from '@semcore/typography';\n\nclass ScatterPlotChartComponent extends AbstractChart<ScatterPlotChartData, ScatterPlotChartProps> {\n static displayName = 'Chart.ScatterPlot';\n static defaultProps: Partial<ScatterPlotChartProps> = {\n showLegend: false,\n };\n\n protected get dataKeys(): string[] {\n const { data, groupKey, valueKey } = this.props;\n\n return Object.keys(data[0]).filter((key) => key !== groupKey && key !== valueKey);\n }\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[0] * 0.8, domain[1] * 1.2], range);\n }\n\n return scaleLinear([domain[0] * 0.8, domain[1] * 1.2], 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 = this.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 * 0.8, max * 1.1]);\n }\n\n protected get flatValues(): Set<number> {\n const { data, groupKey, valueKey } = this.asProps;\n\n const flatValues = data.reduce<Set<number>>((result, item) => {\n Object.entries(item).forEach(([key, value]) => {\n if (key !== groupKey && key !== valueKey && typeof value === 'number') {\n result.add(value);\n }\n });\n\n return result;\n }, new Set());\n\n return flatValues;\n }\n\n protected renderChart() {\n const { groupKey, valueKey } = this.asProps;\n const { dataDefinitions } = this.state;\n\n return dataDefinitions.map((item) => {\n return (\n item.checked && (\n <ScatterPlot x={groupKey} y={item.id} key={item.id} color={item.color} value={valueKey} />\n )\n );\n });\n }\n\n protected renderTooltip() {\n const { data, groupKey, showTooltip } = this.asProps;\n const { dataDefinitions } = this.state;\n\n if (!showTooltip) {\n return null;\n }\n\n return dataDefinitions\n .filter((item) => item.checked)\n .map((item) => {\n return (\n <ScatterPlot.Tooltip key={item.id} x={groupKey} y={item.id} wMin={100}>\n {({ index, x, y }: any) => {\n return {\n children: (\n <>\n <ScatterPlot.Tooltip.Dot color={item.color}>Data</ScatterPlot.Tooltip.Dot>\n <Text tag='div'>X axis {this.tooltipValueFormatter(data[index][x])}</Text>\n <Text tag='div'>Y axis {this.tooltipValueFormatter(data[index][y])}</Text>\n </>\n ),\n };\n }}\n </ScatterPlot.Tooltip>\n );\n });\n }\n}\n\nexport const ScatterPlotChart: ScatterPlotChartType = createComponent(ScatterPlotChartComponent);\n"],"mappings":"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"}
1
+ {"version":3,"file":"ScatterPlotChart.js","names":["_react","_interopRequireDefault","require","_core","_d3Scale","_","_AbstractChart2","_typography","ScatterPlotChartComponent","_AbstractChart","_inherits2","_super","_createSuper2","_classCallCheck2","apply","arguments","_createClass2","key","get","_this$props","props","data","groupKey","valueKey","Object","keys","filter","_this$asProps","asProps","xScale","_this$asProps$marginY","marginY","plotWidth","radius","getScatterPlotRadius","getValueScale","_toConsumableArray2","flatValues","testItem","range","plotPadding","domain","minMax","Date","Number","isNaN","getMilliseconds","scaleTime","scaleLinear","_this$asProps2","yScale","_this$asProps2$margin","marginX","plotHeight","max","Math","min","_this$asProps3","reduce","result","item","entries","forEach","_ref","_ref2","_slicedToArray2","value","add","Set","renderChart","_this$asProps4","dataDefinitions","state","map","checked","createElement","ScatterPlot","x","y","id","color","renderTooltip","_this","_this$asProps5","showTooltip","Tooltip","wMin","_ref3","index","children","Fragment","Dot","Text","tag","tooltipValueFormatter","AbstractChart","_defineProperty2","direction","showXAxis","showYAxis","showLegend","ScatterPlotChart","createComponent","exports"],"sources":["../../../../src/component/Chart/ScatterPlotChart.tsx"],"sourcesContent":["import React from 'react';\nimport createComponent from '@semcore/core';\nimport { ScaleLinear, scaleLinear, scaleTime } from 'd3-scale';\n// @ts-ignore\nimport { minMax, ScatterPlot, getScatterPlotRadius } from '../..';\nimport { AbstractChart } from './AbstractChart';\nimport {\n ScatterPlotChartData,\n ScatterPlotChartProps,\n ScatterPlotChartType,\n} from './ScatterPlotChart.type';\nimport { Text } from '@semcore/typography';\nimport { BaseChartProps, ListData } from './AbstractChart.type';\n\nclass ScatterPlotChartComponent extends AbstractChart<ScatterPlotChartData, ScatterPlotChartProps> {\n static displayName = 'Chart.ScatterPlot';\n public static defaultProps: Partial<BaseChartProps<ListData>> = {\n direction: 'column',\n showXAxis: true,\n showYAxis: true,\n showTooltip: true,\n showLegend: false,\n };\n\n protected get dataKeys(): string[] {\n const { data, groupKey, valueKey } = this.props;\n\n return Object.keys(data[0]).filter((key) => key !== groupKey && key !== valueKey);\n }\n\n protected get xScale() {\n const { xScale, marginY = 30, plotWidth, data, groupKey, valueKey } = this.asProps;\n\n if (xScale) {\n return xScale;\n }\n\n const radius = getScatterPlotRadius(valueKey) / this.getValueScale([...this.flatValues]);\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[0] - radius, domain[1] + radius], range);\n }\n\n return scaleLinear([domain[0] - radius, domain[1] + radius], range);\n }\n\n protected get yScale(): ScaleLinear<any, any> {\n const { yScale, marginX = 30, plotHeight, valueKey } = this.asProps;\n\n if (yScale) {\n return yScale;\n }\n\n const flatValues = this.flatValues;\n const radius = getScatterPlotRadius(valueKey) / this.getValueScale([...flatValues]);\n\n const max = Math.max(...flatValues) + radius;\n const min = Math.min(...flatValues) - radius;\n\n return scaleLinear()\n .range([plotHeight - marginX, this.plotPadding])\n .domain([min, max]);\n }\n\n protected get flatValues(): Set<number> {\n const { data, groupKey, valueKey } = this.asProps;\n\n const flatValues = data.reduce<Set<number>>((result, item) => {\n Object.entries(item).forEach(([key, value]) => {\n if (key !== groupKey && key !== valueKey && typeof value === 'number') {\n result.add(value);\n }\n });\n\n return result;\n }, new Set());\n\n return flatValues;\n }\n\n protected renderChart() {\n const { groupKey, valueKey } = this.asProps;\n const { dataDefinitions } = this.state;\n\n return dataDefinitions.map((item) => {\n return (\n item.checked && (\n <ScatterPlot x={groupKey} y={item.id} key={item.id} color={item.color} value={valueKey} />\n )\n );\n });\n }\n\n protected renderTooltip() {\n const { data, groupKey, showTooltip } = this.asProps;\n const { dataDefinitions } = this.state;\n\n if (!showTooltip) {\n return null;\n }\n\n return dataDefinitions\n .filter((item) => item.checked)\n .map((item) => {\n return (\n <ScatterPlot.Tooltip key={item.id} x={groupKey} y={item.id} wMin={100}>\n {({ index, x, y }: any) => {\n return {\n children: (\n <>\n <ScatterPlot.Tooltip.Dot color={item.color}>Data</ScatterPlot.Tooltip.Dot>\n <Text tag='div'>X axis {this.tooltipValueFormatter(data[index][x])}</Text>\n <Text tag='div'>Y axis {this.tooltipValueFormatter(data[index][y])}</Text>\n </>\n ),\n };\n }}\n </ScatterPlot.Tooltip>\n );\n });\n }\n}\n\nexport const ScatterPlotChart: ScatterPlotChartType = createComponent(ScatterPlotChartComponent);\n"],"mappings":"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"}
@@ -167,6 +167,12 @@ Object.defineProperty(exports, "colors", {
167
167
  return _color.colors;
168
168
  }
169
169
  });
170
+ Object.defineProperty(exports, "getBubbleChartValueScale", {
171
+ enumerable: true,
172
+ get: function get() {
173
+ return _utils.getBubbleChartValueScale;
174
+ }
175
+ });
170
176
  Object.defineProperty(exports, "getLabelOffsetPosition", {
171
177
  enumerable: true,
172
178
  get: function get() {
@@ -179,6 +185,12 @@ Object.defineProperty(exports, "getPatternSymbolSize", {
179
185
  return _Pattern.getPatternSymbolSize;
180
186
  }
181
187
  });
188
+ Object.defineProperty(exports, "getScatterPlotRadius", {
189
+ enumerable: true,
190
+ get: function get() {
191
+ return _utils.getScatterPlotRadius;
192
+ }
193
+ });
182
194
  Object.defineProperty(exports, "interpolateValue", {
183
195
  enumerable: true,
184
196
  get: function get() {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_Plot","_interopRequireDefault","require","_ChartLegend","_Chart","_Axis","_Line","_Bar","_HorizontalBar","_GroupBar","_StackBar","_Area","_StackedArea","_ScatterPlot","_Bubble","_RadialTree","_Donut","_Venn","_Radar","_interopRequireWildcard","_Tooltip","_ResponsiveContainer","_ReferenceLine","_Hover","_utils","_color","_hints","_Pattern"],"sources":["../../src/index.js"],"sourcesContent":["export { default as Plot } from './Plot';\nexport { ChartLegend, ChartLegendTable } from './component/ChartLegend';\nexport { default as Chart } from './component/Chart';\nexport { XAxis, YAxis } from './Axis';\n\nexport { default as Line } from './Line';\n\nexport { default as Bar } from './Bar';\nexport { default as HorizontalBar } from './HorizontalBar';\nexport { default as GroupBar } from './GroupBar';\nexport { default as StackBar } from './StackBar';\nexport { default as Area } from './Area';\nexport { default as StackedArea } from './StackedArea';\nexport { default as ScatterPlot } from './ScatterPlot';\nexport { default as Bubble } from './Bubble';\nexport { default as RadialTree } from './RadialTree';\nexport { default as Donut } from './Donut';\nexport { default as Venn } from './Venn';\nexport { default as Radar, getLabelOffsetPosition } from './Radar';\n\nexport { default as Tooltip } from './Tooltip';\n\nexport { default as ResponsiveContainer } from './ResponsiveContainer';\nexport { default as ReferenceLine } from './ReferenceLine';\n\nexport { HoverLine, HoverRect } from './Hover';\n\nexport { minMax, interpolateValue } from './utils';\nexport { colors } from './color';\n\nexport { makeDataHintsContainer } from './a11y/hints';\n\nexport { PatternFill, PatternSymbol, getPatternSymbolSize } from './Pattern';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAEA,IAAAI,KAAA,GAAAL,sBAAA,CAAAC,OAAA;AAEA,IAAAK,IAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,cAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,SAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,SAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,KAAA,GAAAV,sBAAA,CAAAC,OAAA;AACA,IAAAU,YAAA,GAAAX,sBAAA,CAAAC,OAAA;AACA,IAAAW,YAAA,GAAAZ,sBAAA,CAAAC,OAAA;AACA,IAAAY,OAAA,GAAAb,sBAAA,CAAAC,OAAA;AACA,IAAAa,WAAA,GAAAd,sBAAA,CAAAC,OAAA;AACA,IAAAc,MAAA,GAAAf,sBAAA,CAAAC,OAAA;AACA,IAAAe,KAAA,GAAAhB,sBAAA,CAAAC,OAAA;AACA,IAAAgB,MAAA,GAAAC,uBAAA,CAAAjB,OAAA;AAEA,IAAAkB,QAAA,GAAAnB,sBAAA,CAAAC,OAAA;AAEA,IAAAmB,oBAAA,GAAApB,sBAAA,CAAAC,OAAA;AACA,IAAAoB,cAAA,GAAArB,sBAAA,CAAAC,OAAA;AAEA,IAAAqB,MAAA,GAAArB,OAAA;AAEA,IAAAsB,MAAA,GAAAtB,OAAA;AACA,IAAAuB,MAAA,GAAAvB,OAAA;AAEA,IAAAwB,MAAA,GAAAxB,OAAA;AAEA,IAAAyB,QAAA,GAAAzB,OAAA"}
1
+ {"version":3,"file":"index.js","names":["_Plot","_interopRequireDefault","require","_ChartLegend","_Chart","_Axis","_Line","_Bar","_HorizontalBar","_GroupBar","_StackBar","_Area","_StackedArea","_ScatterPlot","_Bubble","_RadialTree","_Donut","_Venn","_Radar","_interopRequireWildcard","_Tooltip","_ResponsiveContainer","_ReferenceLine","_Hover","_utils","_color","_hints","_Pattern"],"sources":["../../src/index.js"],"sourcesContent":["export { default as Plot } from './Plot';\nexport { ChartLegend, ChartLegendTable } from './component/ChartLegend';\nexport { default as Chart } from './component/Chart';\nexport { XAxis, YAxis } from './Axis';\n\nexport { default as Line } from './Line';\n\nexport { default as Bar } from './Bar';\nexport { default as HorizontalBar } from './HorizontalBar';\nexport { default as GroupBar } from './GroupBar';\nexport { default as StackBar } from './StackBar';\nexport { default as Area } from './Area';\nexport { default as StackedArea } from './StackedArea';\nexport { default as ScatterPlot } from './ScatterPlot';\nexport { default as Bubble } from './Bubble';\nexport { default as RadialTree } from './RadialTree';\nexport { default as Donut } from './Donut';\nexport { default as Venn } from './Venn';\nexport { default as Radar, getLabelOffsetPosition } from './Radar';\n\nexport { default as Tooltip } from './Tooltip';\n\nexport { default as ResponsiveContainer } from './ResponsiveContainer';\nexport { default as ReferenceLine } from './ReferenceLine';\n\nexport { HoverLine, HoverRect } from './Hover';\n\nexport { minMax, interpolateValue, getBubbleChartValueScale, getScatterPlotRadius } from './utils';\nexport { colors } from './color';\n\nexport { makeDataHintsContainer } from './a11y/hints';\n\nexport { PatternFill, PatternSymbol, getPatternSymbolSize } from './Pattern';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAEA,IAAAI,KAAA,GAAAL,sBAAA,CAAAC,OAAA;AAEA,IAAAK,IAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,cAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,SAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,SAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,KAAA,GAAAV,sBAAA,CAAAC,OAAA;AACA,IAAAU,YAAA,GAAAX,sBAAA,CAAAC,OAAA;AACA,IAAAW,YAAA,GAAAZ,sBAAA,CAAAC,OAAA;AACA,IAAAY,OAAA,GAAAb,sBAAA,CAAAC,OAAA;AACA,IAAAa,WAAA,GAAAd,sBAAA,CAAAC,OAAA;AACA,IAAAc,MAAA,GAAAf,sBAAA,CAAAC,OAAA;AACA,IAAAe,KAAA,GAAAhB,sBAAA,CAAAC,OAAA;AACA,IAAAgB,MAAA,GAAAC,uBAAA,CAAAjB,OAAA;AAEA,IAAAkB,QAAA,GAAAnB,sBAAA,CAAAC,OAAA;AAEA,IAAAmB,oBAAA,GAAApB,sBAAA,CAAAC,OAAA;AACA,IAAAoB,cAAA,GAAArB,sBAAA,CAAAC,OAAA;AAEA,IAAAqB,MAAA,GAAArB,OAAA;AAEA,IAAAsB,MAAA,GAAAtB,OAAA;AACA,IAAAuB,MAAA,GAAAvB,OAAA;AAEA,IAAAwB,MAAA,GAAAxB,OAAA;AAEA,IAAAyB,QAAA,GAAAzB,OAAA"}
@@ -4,7 +4,8 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.uniqueId = exports.scaleToBand = exports.scaleOfBandwidth = exports.roundedPath = exports.minMax = exports.memoize = exports.measureText = exports.invert = exports.interpolateValue = exports.getNullData = exports.getIndexFromData = exports.getChartDefaultColorName = exports.eventToPoint = exports.definedNullData = exports.definedData = exports.CONSTANT = void 0;
7
+ exports.uniqueId = exports.scaleToBand = exports.scaleOfBandwidth = exports.roundedPath = exports.minMax = exports.memoize = exports.measureText = exports.invert = exports.interpolateValue = exports.getScatterPlotRadius = exports.getNullData = exports.getIndexFromData = exports.getChartDefaultColorName = exports.getBubbleChartValueScale = exports.eventToPoint = exports.definedNullData = exports.definedData = exports.CONSTANT = void 0;
8
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
8
9
  var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
9
10
  var _objectSpread4 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
10
11
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
@@ -208,4 +209,15 @@ var getChartDefaultColorName = function getChartDefaultColorName(index) {
208
209
  return "chart-palette-order-".concat(index);
209
210
  };
210
211
  exports.getChartDefaultColorName = getChartDefaultColorName;
212
+ var getBubbleChartValueScale = function getBubbleChartValueScale(data, key) {
213
+ var z = (0, _d3Scale.scaleSqrt)().domain([0, Math.max.apply(Math, (0, _toConsumableArray2["default"])(data.map(function (el) {
214
+ return el[key];
215
+ })))]).range([5.5, 50.5]);
216
+ return z;
217
+ };
218
+ exports.getBubbleChartValueScale = getBubbleChartValueScale;
219
+ var getScatterPlotRadius = function getScatterPlotRadius(valueKey) {
220
+ return valueKey !== undefined ? 12 : 5.5;
221
+ };
222
+ exports.getScatterPlotRadius = getScatterPlotRadius;
211
223
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["_d3Array","require","_d3Scale","CONSTANT","VIRTUAL_ELEMENT","Symbol","exports","eventToPoint","event","svgRoot","node","currentTarget","target","rect","getBoundingClientRect","clientX","left","clientLeft","clientY","top","clientTop","invert","scale","value","range","domain","paddingOuter","step","scaleQuantize","slice","reverse","definedNullData","x","y","plot","definedData","undefined","scaleOfBandwidth","bandwidth","minMax","data","key","extent","d","getNullData","defined","name","reduce","acc","i","push","_defineProperty2","prev","next","defNext","find","_objectSpread4","length","defPrev","getIndexFromData","bisect","bisector","center","index","findIndex","console","warn","roundedPath","w","h","r","tl","arguments","tr","bl","br","result","concat","scaleToBand","band","scaleBand","memoize","func","results","_len","args","Array","_key","argsKey","join","apply","measureText","text","fontSize","span","document","createElement","style","_iterator","_createForOfIteratorHelper2","split","_step","s","n","done","line","append","createTextNode","err","e","f","display","body","textWidth","offsetWidth","textHeight","offsetHeight","remove","Math","max","idCounter","uniqueId","prefix","interpolateValue","getChartDefaultColorName"],"sources":["../../src/utils.ts"],"sourcesContent":["import { extent, bisector, Numeric } from 'd3-array';\nimport {\n scaleQuantize,\n ScaleIdentity,\n ScaleTime,\n ScaleContinuousNumeric,\n ScaleBand,\n ScalePoint,\n NumberValue,\n scaleBand,\n} from 'd3-scale';\nimport React from 'react';\n\nconst CONSTANT = {\n VIRTUAL_ELEMENT: Symbol('VIRTUAL_ELEMENT'),\n} as const;\n\nexport { CONSTANT };\n\nexport const eventToPoint = (event: React.MouseEvent<HTMLElement>, svgRoot: SVGElement) => {\n const node = (event.currentTarget || event.target) as HTMLElement;\n const rect = svgRoot.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n};\n\ntype InvertableScale =\n | ScaleIdentity\n | ScaleBand<{}>\n | ScaleTime<unknown, unknown>\n | ScaleContinuousNumeric<unknown, unknown>;\nexport const invert = <Scale extends InvertableScale = InvertableScale>(\n scale: Scale,\n value: number,\n) => {\n if ('invert' in scale && scale.invert) return scale.invert(value);\n\n const range = scale.range() as [number, number];\n const domain = scale.domain();\n if ('paddingOuter' in scale) {\n range[0] += scale.paddingOuter() * scale.step();\n range[1] -= scale.paddingOuter() * scale.step();\n }\n\n return scaleQuantize()\n .domain((range[0] <= range[1] ? range : range.slice().reverse()) as NumberValue[])\n .range((range[0] <= range[1] ? domain : domain.slice().reverse()) as number[])(value);\n};\n\nexport const definedNullData = (x: number, y: number) => (plot: { [xOrY: number]: unknown }) =>\n plot[x] !== null && plot[y] !== null;\n\nexport const definedData = (x: number, y: number) => (plot: { [xOrY: number]: unknown }) =>\n plot[x] !== null && plot[x] !== undefined && plot[y] !== null && plot[y] !== undefined;\n\nexport const scaleOfBandwidth = <Scale extends ScaleBand<{}>>(scale: Scale, value: number) =>\n scale.bandwidth ? scale(value)! + scale.bandwidth() / 2 : scale(value);\n\nexport const minMax = <\n Key extends string = string,\n Data extends { [key: string]: Numeric | null | undefined }[] = {\n [key: string]: Numeric | null | undefined;\n }[],\n>(\n data: Data,\n key: Key,\n): [min: Data[0][Key], max: Data[0][Key]] => {\n if (typeof key === 'string') {\n return extent(data, (d) => d[key]) as any;\n }\n return extent(data, key) as any;\n};\n\nexport const getNullData = <\n Name extends string = string,\n Data extends { [name in Name]?: unknown | null } = {},\n>(\n data: Data[],\n defined: (data: Data) => boolean,\n name: Name,\n) =>\n data.reduce((acc, d, i, data) => {\n if (defined(d)) {\n acc.push({\n [name]: null,\n } as Data);\n } else {\n const prev = data[i - 1];\n const next = data[i + 1];\n\n if (i === 0) {\n const defNext = data.find(defined);\n acc.push({\n ...d,\n [name]: defNext ? defNext[name] : null,\n });\n }\n\n // prev\n if (prev && defined(prev)) {\n acc.push(prev);\n }\n\n // next\n if (next && defined(next)) {\n acc.push(next);\n }\n\n if (data.length - 1 === i) {\n const defPrev = data.slice().reverse().find(defined);\n acc.push({\n ...d,\n [name]: defPrev ? defPrev[name] : null,\n });\n }\n }\n return acc;\n }, [] as Data[]);\n\ntype IndexFromDataScale =\n | ScaleIdentity\n | ScaleTime<unknown, unknown>\n | ScaleContinuousNumeric<unknown, unknown>\n | ScaleBand<{}>\n | ScalePoint<{}>;\nexport const getIndexFromData = <\n Key extends string,\n Data extends {\n [key in Key]: number;\n } = { [key in Key]: number },\n Scale extends IndexFromDataScale = IndexFromDataScale,\n>(\n data: Data[],\n scale: Scale,\n key: Key,\n value: number,\n) => {\n // detect line chart\n if ('invert' in scale && typeof scale.invert === 'function') {\n const bisect = bisector((d: { [key: string]: number }) => d[key]).center;\n return bisect(data, value);\n }\n // detect bar chart\n else if ('step' in scale && typeof scale.step !== 'undefined') {\n const index = data.findIndex((d) => d[key] === value);\n return index >= 0 ? index : null;\n } else {\n console.warn('[d3-chart/utils/getIndexFromData] encountered incompatible scale type');\n return null;\n }\n};\n\nexport const roundedPath = (\n x: number,\n y: number,\n w: number,\n h: number,\n r: number,\n tl = false,\n tr = false,\n bl = false,\n br = false,\n) => {\n let result = `M${x + r},${y}`;\n result += `h${w - 2 * r}`;\n if (tr) {\n result += `a${r},${r} 0 0 1 ${r},${r}`;\n } else {\n result += `h${r}`;\n result += `v${r}`;\n }\n result += `v${h - 2 * r}`;\n if (br) {\n result += `a${r},${r} 0 0 1 ${-r},${r}`;\n } else {\n result += `v${r}`;\n result += `h${-r}`;\n }\n result += `h${2 * r - w}`;\n if (bl) {\n result += `a${r},${r} 0 0 1 ${-r},${-r}`;\n } else {\n result += `h${-r}`;\n result += `v${-r}`;\n }\n result += `v${2 * r - h}`;\n if (tl) {\n result += `a${r},${r} 0 0 1 ${r},${-r}`;\n } else {\n result += `v${-r}`;\n result += `h${r}`;\n }\n result += 'z';\n return result;\n};\n\nexport const scaleToBand = (scale: ScaleBand<{}>) => {\n if ('bandwidth' in scale) {\n return scale;\n }\n\n const band = scaleBand()\n .range((scale as any).range())\n .domain((scale as any).domain());\n\n return band;\n};\n\nexport const memoize = <Func extends (...args: any[]) => any>(func: Func): Func => {\n const results: { [cacheKey: string]: any } = {};\n return ((...args: any[]) => {\n const argsKey = args.join(',');\n if (!results[argsKey]) {\n results[argsKey] = func(...args);\n }\n return results[argsKey];\n }) as Func;\n};\n\nexport const measureText = memoize((text: string, fontSize?: number) => {\n if (!text) return 0;\n\n const span = document.createElement('span');\n if (fontSize) {\n span.style.fontSize = `${fontSize}px`;\n }\n for (const line of text.split('\\n')) {\n span.append(document.createTextNode(line));\n span.append(document.createElement('br'));\n }\n span.style.display = 'inline-block';\n document.body.append(span);\n const textWidth = span.offsetWidth;\n const textHeight = span.offsetHeight;\n span.remove();\n return Math.max(textWidth, textHeight);\n});\n\nlet idCounter = 0;\nexport const uniqueId = (prefix = 'id-') => `${prefix}${idCounter++}`;\n\nexport const interpolateValue = Symbol('intergalactic-d3-chart-line-interpolate');\n\nexport const getChartDefaultColorName = (index: number) => {\n index++;\n if (index < 1) index = 1;\n if (index > 24) index %= 24;\n\n return `chart-palette-order-${index}`;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","names":["_d3Array","require","_d3Scale","CONSTANT","VIRTUAL_ELEMENT","Symbol","exports","eventToPoint","event","svgRoot","node","currentTarget","target","rect","getBoundingClientRect","clientX","left","clientLeft","clientY","top","clientTop","invert","scale","value","range","domain","paddingOuter","step","scaleQuantize","slice","reverse","definedNullData","x","y","plot","definedData","undefined","scaleOfBandwidth","bandwidth","minMax","data","key","extent","d","getNullData","defined","name","reduce","acc","i","push","_defineProperty2","prev","next","defNext","find","_objectSpread4","length","defPrev","getIndexFromData","bisect","bisector","center","index","findIndex","console","warn","roundedPath","w","h","r","tl","arguments","tr","bl","br","result","concat","scaleToBand","band","scaleBand","memoize","func","results","_len","args","Array","_key","argsKey","join","apply","measureText","text","fontSize","span","document","createElement","style","_iterator","_createForOfIteratorHelper2","split","_step","s","n","done","line","append","createTextNode","err","e","f","display","body","textWidth","offsetWidth","textHeight","offsetHeight","remove","Math","max","idCounter","uniqueId","prefix","interpolateValue","getChartDefaultColorName","getBubbleChartValueScale","z","scaleSqrt","_toConsumableArray2","map","el","getScatterPlotRadius","valueKey"],"sources":["../../src/utils.ts"],"sourcesContent":["import { extent, bisector, Numeric } from 'd3-array';\nimport {\n scaleQuantize,\n ScaleIdentity,\n ScaleTime,\n ScaleContinuousNumeric,\n ScaleBand,\n ScalePoint,\n NumberValue,\n scaleBand,\n scaleSqrt,\n} from 'd3-scale';\nimport React from 'react';\n\nconst CONSTANT = {\n VIRTUAL_ELEMENT: Symbol('VIRTUAL_ELEMENT'),\n} as const;\n\nexport { CONSTANT };\n\nexport const eventToPoint = (event: React.MouseEvent<HTMLElement>, svgRoot: SVGElement) => {\n const node = (event.currentTarget || event.target) as HTMLElement;\n const rect = svgRoot.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n};\n\ntype InvertableScale =\n | ScaleIdentity\n | ScaleBand<{}>\n | ScaleTime<unknown, unknown>\n | ScaleContinuousNumeric<unknown, unknown>;\nexport const invert = <Scale extends InvertableScale = InvertableScale>(\n scale: Scale,\n value: number,\n) => {\n if ('invert' in scale && scale.invert) return scale.invert(value);\n\n const range = scale.range() as [number, number];\n const domain = scale.domain();\n if ('paddingOuter' in scale) {\n range[0] += scale.paddingOuter() * scale.step();\n range[1] -= scale.paddingOuter() * scale.step();\n }\n\n return scaleQuantize()\n .domain((range[0] <= range[1] ? range : range.slice().reverse()) as NumberValue[])\n .range((range[0] <= range[1] ? domain : domain.slice().reverse()) as number[])(value);\n};\n\nexport const definedNullData = (x: number, y: number) => (plot: { [xOrY: number]: unknown }) =>\n plot[x] !== null && plot[y] !== null;\n\nexport const definedData = (x: number, y: number) => (plot: { [xOrY: number]: unknown }) =>\n plot[x] !== null && plot[x] !== undefined && plot[y] !== null && plot[y] !== undefined;\n\nexport const scaleOfBandwidth = <Scale extends ScaleBand<{}>>(scale: Scale, value: number) =>\n scale.bandwidth ? scale(value)! + scale.bandwidth() / 2 : scale(value);\n\nexport const minMax = <\n Key extends string = string,\n Data extends { [key: string]: Numeric | null | undefined }[] = {\n [key: string]: Numeric | null | undefined;\n }[],\n>(\n data: Data,\n key: Key,\n): [min: Data[0][Key], max: Data[0][Key]] => {\n if (typeof key === 'string') {\n return extent(data, (d) => d[key]) as any;\n }\n return extent(data, key) as any;\n};\n\nexport const getNullData = <\n Name extends string = string,\n Data extends { [name in Name]?: unknown | null } = {},\n>(\n data: Data[],\n defined: (data: Data) => boolean,\n name: Name,\n) =>\n data.reduce((acc, d, i, data) => {\n if (defined(d)) {\n acc.push({\n [name]: null,\n } as Data);\n } else {\n const prev = data[i - 1];\n const next = data[i + 1];\n\n if (i === 0) {\n const defNext = data.find(defined);\n acc.push({\n ...d,\n [name]: defNext ? defNext[name] : null,\n });\n }\n\n // prev\n if (prev && defined(prev)) {\n acc.push(prev);\n }\n\n // next\n if (next && defined(next)) {\n acc.push(next);\n }\n\n if (data.length - 1 === i) {\n const defPrev = data.slice().reverse().find(defined);\n acc.push({\n ...d,\n [name]: defPrev ? defPrev[name] : null,\n });\n }\n }\n return acc;\n }, [] as Data[]);\n\ntype IndexFromDataScale =\n | ScaleIdentity\n | ScaleTime<unknown, unknown>\n | ScaleContinuousNumeric<unknown, unknown>\n | ScaleBand<{}>\n | ScalePoint<{}>;\nexport const getIndexFromData = <\n Key extends string,\n Data extends {\n [key in Key]: number;\n } = { [key in Key]: number },\n Scale extends IndexFromDataScale = IndexFromDataScale,\n>(\n data: Data[],\n scale: Scale,\n key: Key,\n value: number,\n) => {\n // detect line chart\n if ('invert' in scale && typeof scale.invert === 'function') {\n const bisect = bisector((d: { [key: string]: number }) => d[key]).center;\n return bisect(data, value);\n }\n // detect bar chart\n else if ('step' in scale && typeof scale.step !== 'undefined') {\n const index = data.findIndex((d) => d[key] === value);\n return index >= 0 ? index : null;\n } else {\n console.warn('[d3-chart/utils/getIndexFromData] encountered incompatible scale type');\n return null;\n }\n};\n\nexport const roundedPath = (\n x: number,\n y: number,\n w: number,\n h: number,\n r: number,\n tl = false,\n tr = false,\n bl = false,\n br = false,\n) => {\n let result = `M${x + r},${y}`;\n result += `h${w - 2 * r}`;\n if (tr) {\n result += `a${r},${r} 0 0 1 ${r},${r}`;\n } else {\n result += `h${r}`;\n result += `v${r}`;\n }\n result += `v${h - 2 * r}`;\n if (br) {\n result += `a${r},${r} 0 0 1 ${-r},${r}`;\n } else {\n result += `v${r}`;\n result += `h${-r}`;\n }\n result += `h${2 * r - w}`;\n if (bl) {\n result += `a${r},${r} 0 0 1 ${-r},${-r}`;\n } else {\n result += `h${-r}`;\n result += `v${-r}`;\n }\n result += `v${2 * r - h}`;\n if (tl) {\n result += `a${r},${r} 0 0 1 ${r},${-r}`;\n } else {\n result += `v${-r}`;\n result += `h${r}`;\n }\n result += 'z';\n return result;\n};\n\nexport const scaleToBand = (scale: ScaleBand<{}>) => {\n if ('bandwidth' in scale) {\n return scale;\n }\n\n const band = scaleBand()\n .range((scale as any).range())\n .domain((scale as any).domain());\n\n return band;\n};\n\nexport const memoize = <Func extends (...args: any[]) => any>(func: Func): Func => {\n const results: { [cacheKey: string]: any } = {};\n return ((...args: any[]) => {\n const argsKey = args.join(',');\n if (!results[argsKey]) {\n results[argsKey] = func(...args);\n }\n return results[argsKey];\n }) as Func;\n};\n\nexport const measureText = memoize((text: string, fontSize?: number) => {\n if (!text) return 0;\n\n const span = document.createElement('span');\n if (fontSize) {\n span.style.fontSize = `${fontSize}px`;\n }\n for (const line of text.split('\\n')) {\n span.append(document.createTextNode(line));\n span.append(document.createElement('br'));\n }\n span.style.display = 'inline-block';\n document.body.append(span);\n const textWidth = span.offsetWidth;\n const textHeight = span.offsetHeight;\n span.remove();\n return Math.max(textWidth, textHeight);\n});\n\nlet idCounter = 0;\nexport const uniqueId = (prefix = 'id-') => `${prefix}${idCounter++}`;\n\nexport const interpolateValue = Symbol('intergalactic-d3-chart-line-interpolate');\n\nexport const getChartDefaultColorName = (index: number) => {\n index++;\n if (index < 1) index = 1;\n if (index > 24) index %= 24;\n\n return `chart-palette-order-${index}`;\n};\n\nexport const getBubbleChartValueScale = (data: any[], key: string) => {\n const z = scaleSqrt()\n .domain([0, Math.max(...data.map((el) => el[key]))])\n .range([5.5, 50.5]);\n\n return z;\n};\n\nexport const getScatterPlotRadius = (valueKey?: string): number => {\n return valueKey !== undefined ? 12 : 5.5;\n};\n"],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
- import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
4
3
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
5
4
  import _createClass from "@babel/runtime/helpers/createClass";
6
5
  import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
@@ -10,13 +9,12 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
10
9
  import { sstyled as _sstyled } from 'intergalactic/core';
11
10
  import { assignProps as _assignProps } from 'intergalactic/core';
12
11
  import React from 'react';
13
- import { scaleSqrt } from 'd3-scale';
14
12
  import { transition } from 'd3-transition';
15
13
  import { Component, Root, sstyled } from 'intergalactic/core';
16
14
  import canUseDOM from 'intergalactic/utils/lib/canUseDOM';
17
15
  import uniqueIDEnhancement from 'intergalactic/utils/lib/uniqueID';
18
16
  import createElement from './createElement';
19
- import { CONSTANT, measureText } from './utils';
17
+ import { getBubbleChartValueScale, CONSTANT, measureText } from './utils';
20
18
  import Tooltip from './Tooltip';
21
19
  import { PatternFill } from './Pattern';
22
20
  /*__reshadow-styles__:"./style/bubble.shadow.css"*/
@@ -80,9 +78,7 @@ var BubbleRoot = /*#__PURE__*/function (_Component) {
80
78
  uid = _this$asProps.uid,
81
79
  data = _this$asProps.data,
82
80
  value = _this$asProps.value;
83
- var z = scaleSqrt().domain([0, Math.max.apply(Math, _toConsumableArray(data.map(function (el) {
84
- return el[value];
85
- })))]).range([5.5, 50.5]);
81
+ var z = getBubbleChartValueScale(data, value);
86
82
  var selectRect = transition().selection().selectAll("[id^=".concat(uid).concat(uid, "]")).attr('r', 0);
87
83
  var selectRectNode = selectRect.node();
88
84
  if (selectRectNode) {
@@ -94,8 +90,19 @@ var BubbleRoot = /*#__PURE__*/function (_Component) {
94
90
  }
95
91
  }, {
96
92
  key: "componentDidUpdate",
97
- value: function componentDidUpdate() {
98
- this.animationCircle();
93
+ value: function componentDidUpdate(prevProps) {
94
+ var _this$asProps2 = this.asProps,
95
+ data = _this$asProps2.data,
96
+ x = _this$asProps2.x,
97
+ y = _this$asProps2.y,
98
+ value = _this$asProps2.value;
99
+ var prevX = prevProps.x,
100
+ prevY = prevProps.y,
101
+ prevValue = prevProps.value;
102
+ var prevData = prevProps.$rootProps.data;
103
+ if (data !== prevData || x !== prevX || y !== prevY || value !== prevValue) {
104
+ this.animationCircle();
105
+ }
99
106
  }
100
107
  }, {
101
108
  key: "componentDidMount",
@@ -106,32 +113,30 @@ var BubbleRoot = /*#__PURE__*/function (_Component) {
106
113
  key: "renderCircle",
107
114
  value: function renderCircle(d, i) {
108
115
  var _ref2, _d$color;
109
- var _this$asProps2 = this.asProps,
110
- color = _this$asProps2.color,
111
- scale = _this$asProps2.scale,
112
- x = _this$asProps2.x,
113
- y = _this$asProps2.y,
114
- offset = _this$asProps2.offset,
115
- styles = _this$asProps2.styles,
116
- uid = _this$asProps2.uid,
117
- duration = _this$asProps2.duration,
118
- value = _this$asProps2.value,
119
- label = _this$asProps2.label,
120
- markedCross = _this$asProps2.markedCross,
121
- size = _this$asProps2.size,
122
- data = _this$asProps2.data,
123
- transparent = _this$asProps2.transparent,
124
- resolveColor = _this$asProps2.resolveColor,
125
- patterns = _this$asProps2.patterns;
116
+ var _this$asProps3 = this.asProps,
117
+ color = _this$asProps3.color,
118
+ scale = _this$asProps3.scale,
119
+ x = _this$asProps3.x,
120
+ y = _this$asProps3.y,
121
+ offset = _this$asProps3.offset,
122
+ styles = _this$asProps3.styles,
123
+ uid = _this$asProps3.uid,
124
+ duration = _this$asProps3.duration,
125
+ value = _this$asProps3.value,
126
+ label = _this$asProps3.label,
127
+ markedCross = _this$asProps3.markedCross,
128
+ size = _this$asProps3.size,
129
+ data = _this$asProps3.data,
130
+ transparent = _this$asProps3.transparent,
131
+ resolveColor = _this$asProps3.resolveColor,
132
+ patterns = _this$asProps3.patterns;
126
133
  var _scale = _slicedToArray(scale, 2),
127
134
  xScale = _scale[0],
128
135
  yScale = _scale[1];
129
136
  var SBubble = this.Element;
130
137
  var SCenter = 'text';
131
138
  var SLabel = 'text';
132
- var z = scaleSqrt().domain([0, Math.max.apply(Math, _toConsumableArray(data.map(function (el) {
133
- return el[value];
134
- })))]).range([5.5, 50.5]);
139
+ var z = getBubbleChartValueScale(data, value);
135
140
  var margin = Math.min(xScale.range()[0], xScale.range()[1]);
136
141
  var labelPosition = size[0] - 2 * margin - (xScale(d[x]) + offset[0] + z(d[value])) < measureText(d[label]) ? 'right' : 'left';
137
142
  var labelDistance = {
@@ -190,13 +195,13 @@ var BubbleRoot = /*#__PURE__*/function (_Component) {
190
195
  }, {
191
196
  key: "render",
192
197
  value: function render() {
193
- var _this$asProps3 = this.asProps,
194
- data = _this$asProps3.data,
195
- uid = _this$asProps3.uid,
196
- scale = _this$asProps3.scale,
197
- x = _this$asProps3.x,
198
- y = _this$asProps3.y,
199
- value = _this$asProps3.value;
198
+ var _this$asProps4 = this.asProps,
199
+ data = _this$asProps4.data,
200
+ uid = _this$asProps4.uid,
201
+ scale = _this$asProps4.scale,
202
+ x = _this$asProps4.x,
203
+ y = _this$asProps4.y,
204
+ value = _this$asProps4.value;
200
205
  var _scale2 = _slicedToArray(scale, 2),
201
206
  xScale = _scale2[0],
202
207
  yScale = _scale2[1];
@@ -206,7 +211,7 @@ var BubbleRoot = /*#__PURE__*/function (_Component) {
206
211
  var yMargin = Math.min(yScale.range()[0], yScale.range()[1]);
207
212
  this.asProps.dataHintsHandler.specifyDataRowFields(x, y, value);
208
213
  this.asProps.dataHintsHandler.establishDataType('points-cloud');
209
- return /*#__PURE__*/React.createElement(React.Fragment, null, data.map(this.renderCircle.bind(this)), data.map(this.animationCircle.bind(this)), /*#__PURE__*/React.createElement("clipPath", {
214
+ return /*#__PURE__*/React.createElement(React.Fragment, null, data.map(this.renderCircle.bind(this)), /*#__PURE__*/React.createElement("clipPath", {
210
215
  "aria-hidden": true,
211
216
  id: uid
212
217
  }, /*#__PURE__*/React.createElement("rect", {
@@ -1 +1 @@
1
- {"version":3,"file":"Bubble.js","names":["React","scaleSqrt","transition","Component","Root","sstyled","canUseDOM","uniqueIDEnhancement","createElement","CONSTANT","measureText","Tooltip","PatternFill","style","_sstyled","insert","BubbleRoot","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","document","visible","props","tooltipProps","_ref4","x","clientX","y","clientY","eventEmitter","asProps","virtualElement","getBoundingClientRect","generateGetBoundingClientRect","VIRTUAL_ELEMENT","emit","_createClass","key","value","undefined","width","height","top","right","bottom","left","animationCircle","_this$asProps","duration","uid","data","z","domain","Math","max","_toConsumableArray","map","el","range","selectRect","selection","selectAll","attr","selectRectNode","node","_","ind","_data$ind","componentDidUpdate","componentDidMount","renderCircle","d","i","_ref2","_d$color","_this$asProps2","color","scale","offset","styles","label","markedCross","size","transparent","resolveColor","patterns","_scale","_slicedToArray","xScale","yScale","SBubble","Element","SCenter","SLabel","margin","min","labelPosition","labelDistance","cn","bindHandlerTooltip","xIndex","index","render","_this$asProps3","_scale2","xSize","abs","ySize","xMargin","yMargin","dataHintsHandler","specifyDataRowFields","establishDataType","Fragment","bind","id","BubbleTooltip","_ref","arguments[0]","_ref3","SBubbleTooltip","_objectSpread","_assignProps","Bubble","_______childrenComponents"],"sources":["../../src/Bubble.jsx"],"sourcesContent":["import React from 'react';\nimport { scaleSqrt } from 'd3-scale';\nimport { transition } from 'd3-transition';\nimport { Component, Root, sstyled } from '@semcore/core';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport createElement from './createElement';\nimport { CONSTANT, measureText } from './utils';\nimport Tooltip from './Tooltip';\nimport { PatternFill } from './Pattern';\n\nimport style from './style/bubble.shadow.css';\n\nclass BubbleRoot extends Component {\n static displayName = 'Bubble';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = {\n offset: [0, 0],\n duration: 500,\n markedCross: true,\n };\n\n virtualElement = canUseDOM() ? document.createElement('div') : {};\n\n generateGetBoundingClientRect(x = 0, y = 0) {\n return () => ({ width: 0, height: 0, top: y, right: x, bottom: y, left: x });\n }\n\n bindHandlerTooltip = (visible, props, tooltipProps) => ({ clientX: x, clientY: y }) => {\n const { eventEmitter } = this.asProps;\n this.virtualElement.getBoundingClientRect = this.generateGetBoundingClientRect(x, y);\n this.virtualElement[CONSTANT.VIRTUAL_ELEMENT] = true;\n eventEmitter.emit('onTooltipVisible', visible, props, tooltipProps, this.virtualElement);\n };\n\n animationCircle() {\n const { duration, uid, data, value } = this.asProps;\n const z = scaleSqrt()\n .domain([0, Math.max(...data.map((el) => el[value]))])\n .range([5.5, 50.5]);\n\n const selectRect = transition().selection().selectAll(`[id^=${uid}${uid}]`).attr('r', 0);\n\n const selectRectNode = selectRect.node();\n if (selectRectNode) {\n selectRect\n .transition()\n .duration(duration)\n .attr('r', function (_, ind) {\n return z(data[ind]?.[value]);\n });\n }\n }\n\n componentDidUpdate() {\n this.animationCircle();\n }\n\n componentDidMount() {\n this.animationCircle();\n }\n\n renderCircle(d, i) {\n const {\n color,\n scale,\n x,\n y,\n offset,\n styles,\n uid,\n duration,\n value,\n label,\n markedCross,\n size,\n data,\n transparent,\n resolveColor,\n patterns,\n } = this.asProps;\n const [xScale, yScale] = scale;\n\n const SBubble = this.Element;\n const SCenter = 'text';\n const SLabel = 'text';\n const z = scaleSqrt()\n .domain([0, Math.max(...data.map((el) => el[value]))])\n .range([5.5, 50.5]);\n\n const margin = Math.min(xScale.range()[0], xScale.range()[1]);\n\n const labelPosition =\n size[0] - 2 * margin - (xScale(d[x]) + offset[0] + z(d[value])) < measureText(d[label])\n ? 'right'\n : 'left';\n const labelDistance = {\n right: xScale(d[x]) + offset[0] - z(d[value]),\n left: xScale(d[x]) + offset[0] + z(d[value]),\n }[labelPosition];\n\n return sstyled(styles)(\n <g\n key={`circle(#${i})`}\n onMouseMove={this.bindHandlerTooltip(true, this.props, { xIndex: i, index: i, patterns })}\n onMouseLeave={this.bindHandlerTooltip(false, this.props, { xIndex: i, index: i, patterns })}\n >\n {markedCross && (\n <SCenter\n aria-hidden\n x={xScale(d[x]) + offset[0]}\n y={yScale(d[y]) + offset[1]}\n dy='.3em'\n clipPath={`url(#${uid})`}\n color={resolveColor(d[color] ?? color)}\n transparent={transparent}\n >\n &#43;\n </SCenter>\n )}\n <SBubble\n aria-hidden\n id={`${uid}${uid}`}\n index={i}\n render='circle'\n clipPath={`url(#${uid})`}\n cx={xScale(d[x]) + offset[0]}\n cy={yScale(d[y]) + offset[1]}\n color={resolveColor(d[color])}\n pattern={patterns ? `url(#${uid}-${i}-pattern)` : undefined}\n r={z(d[value])}\n use:duration={`${duration}ms`}\n transparent={transparent}\n />\n {patterns && (\n <PatternFill\n id={`${uid}-${i}-pattern`}\n patternKey={d[color]}\n color={resolveColor(d[color])}\n patterns={patterns}\n />\n )}\n {d[label] && (\n <SLabel\n aria-hidden\n x={labelDistance}\n y={yScale(d[y]) + offset[1]}\n dy='.3em'\n clipPath={`url(#${uid})`}\n position={labelPosition}\n color={resolveColor(d[color])}\n transparent={transparent}\n >\n {d[label]}\n </SLabel>\n )}\n </g>,\n );\n }\n\n render() {\n const { data, uid, scale, x, y, value } = this.asProps;\n const [xScale, yScale] = scale;\n const xSize = Math.abs(xScale.range()[0] - xScale.range()[1]);\n const ySize = Math.abs(yScale.range()[0] - yScale.range()[1]);\n const xMargin = Math.min(xScale.range()[0], xScale.range()[1]);\n const yMargin = Math.min(yScale.range()[0], yScale.range()[1]);\n\n this.asProps.dataHintsHandler.specifyDataRowFields(x, y, value);\n this.asProps.dataHintsHandler.establishDataType('points-cloud');\n\n return (\n <>\n {data.map(this.renderCircle.bind(this))}\n {data.map(this.animationCircle.bind(this))}\n <clipPath aria-hidden id={uid}>\n <rect x={xMargin} y={yMargin} width={`${xSize}px`} height={`${ySize}px`} />{' '}\n </clipPath>\n </>\n );\n }\n}\n\nconst BubbleTooltip = (props) => {\n const SBubbleTooltip = Root;\n return sstyled(props.styles)(<SBubbleTooltip render={Tooltip} excludeAnchorProps />);\n};\n\nconst Bubble = createElement(BubbleRoot, {\n Tooltip: [BubbleTooltip, Tooltip._______childrenComponents],\n});\n\nexport default Bubble;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Bubble.js","names":["React","transition","Component","Root","sstyled","canUseDOM","uniqueIDEnhancement","createElement","getBubbleChartValueScale","CONSTANT","measureText","Tooltip","PatternFill","style","_sstyled","insert","BubbleRoot","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","document","visible","props","tooltipProps","_ref4","x","clientX","y","clientY","eventEmitter","asProps","virtualElement","getBoundingClientRect","generateGetBoundingClientRect","VIRTUAL_ELEMENT","emit","_createClass","key","value","undefined","width","height","top","right","bottom","left","animationCircle","_this$asProps","duration","uid","data","z","selectRect","selection","selectAll","attr","selectRectNode","node","_","ind","_data$ind","componentDidUpdate","prevProps","_this$asProps2","prevX","prevY","prevValue","prevData","$rootProps","componentDidMount","renderCircle","d","i","_ref2","_d$color","_this$asProps3","color","scale","offset","styles","label","markedCross","size","transparent","resolveColor","patterns","_scale","_slicedToArray","xScale","yScale","SBubble","Element","SCenter","SLabel","margin","Math","min","range","labelPosition","labelDistance","cn","bindHandlerTooltip","xIndex","index","render","_this$asProps4","_scale2","xSize","abs","ySize","xMargin","yMargin","dataHintsHandler","specifyDataRowFields","establishDataType","Fragment","map","bind","id","BubbleTooltip","_ref","arguments[0]","_ref3","SBubbleTooltip","_objectSpread","_assignProps","Bubble","_______childrenComponents"],"sources":["../../src/Bubble.jsx"],"sourcesContent":["import React from 'react';\nimport { transition } from 'd3-transition';\nimport { Component, Root, sstyled } from '@semcore/core';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport createElement from './createElement';\nimport { getBubbleChartValueScale, CONSTANT, measureText } from './utils';\nimport Tooltip from './Tooltip';\nimport { PatternFill } from './Pattern';\n\nimport style from './style/bubble.shadow.css';\n\nclass BubbleRoot extends Component {\n static displayName = 'Bubble';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = {\n offset: [0, 0],\n duration: 500,\n markedCross: true,\n };\n\n virtualElement = canUseDOM() ? document.createElement('div') : {};\n\n generateGetBoundingClientRect(x = 0, y = 0) {\n return () => ({ width: 0, height: 0, top: y, right: x, bottom: y, left: x });\n }\n\n bindHandlerTooltip = (visible, props, tooltipProps) => ({ clientX: x, clientY: y }) => {\n const { eventEmitter } = this.asProps;\n this.virtualElement.getBoundingClientRect = this.generateGetBoundingClientRect(x, y);\n this.virtualElement[CONSTANT.VIRTUAL_ELEMENT] = true;\n eventEmitter.emit('onTooltipVisible', visible, props, tooltipProps, this.virtualElement);\n };\n\n animationCircle() {\n const { duration, uid, data, value } = this.asProps;\n const z = getBubbleChartValueScale(data, value);\n\n const selectRect = transition().selection().selectAll(`[id^=${uid}${uid}]`).attr('r', 0);\n\n const selectRectNode = selectRect.node();\n if (selectRectNode) {\n selectRect\n .transition()\n .duration(duration)\n .attr('r', function (_, ind) {\n return z(data[ind]?.[value]);\n });\n }\n }\n\n componentDidUpdate(prevProps) {\n const { data, x, y, value } = this.asProps;\n const { x: prevX, y: prevY, value: prevValue } = prevProps;\n const prevData = prevProps.$rootProps.data;\n\n if (data !== prevData || x !== prevX || y !== prevY || value !== prevValue) {\n this.animationCircle();\n }\n }\n\n componentDidMount() {\n this.animationCircle();\n }\n\n renderCircle(d, i) {\n const {\n color,\n scale,\n x,\n y,\n offset,\n styles,\n uid,\n duration,\n value,\n label,\n markedCross,\n size,\n data,\n transparent,\n resolveColor,\n patterns,\n } = this.asProps;\n const [xScale, yScale] = scale;\n\n const SBubble = this.Element;\n const SCenter = 'text';\n const SLabel = 'text';\n const z = getBubbleChartValueScale(data, value);\n\n const margin = Math.min(xScale.range()[0], xScale.range()[1]);\n\n const labelPosition =\n size[0] - 2 * margin - (xScale(d[x]) + offset[0] + z(d[value])) < measureText(d[label])\n ? 'right'\n : 'left';\n const labelDistance = {\n right: xScale(d[x]) + offset[0] - z(d[value]),\n left: xScale(d[x]) + offset[0] + z(d[value]),\n }[labelPosition];\n\n return sstyled(styles)(\n <g\n key={`circle(#${i})`}\n onMouseMove={this.bindHandlerTooltip(true, this.props, { xIndex: i, index: i, patterns })}\n onMouseLeave={this.bindHandlerTooltip(false, this.props, { xIndex: i, index: i, patterns })}\n >\n {markedCross && (\n <SCenter\n aria-hidden\n x={xScale(d[x]) + offset[0]}\n y={yScale(d[y]) + offset[1]}\n dy='.3em'\n clipPath={`url(#${uid})`}\n color={resolveColor(d[color] ?? color)}\n transparent={transparent}\n >\n &#43;\n </SCenter>\n )}\n <SBubble\n aria-hidden\n id={`${uid}${uid}`}\n index={i}\n render='circle'\n clipPath={`url(#${uid})`}\n cx={xScale(d[x]) + offset[0]}\n cy={yScale(d[y]) + offset[1]}\n color={resolveColor(d[color])}\n pattern={patterns ? `url(#${uid}-${i}-pattern)` : undefined}\n r={z(d[value])}\n use:duration={`${duration}ms`}\n transparent={transparent}\n />\n {patterns && (\n <PatternFill\n id={`${uid}-${i}-pattern`}\n patternKey={d[color]}\n color={resolveColor(d[color])}\n patterns={patterns}\n />\n )}\n {d[label] && (\n <SLabel\n aria-hidden\n x={labelDistance}\n y={yScale(d[y]) + offset[1]}\n dy='.3em'\n clipPath={`url(#${uid})`}\n position={labelPosition}\n color={resolveColor(d[color])}\n transparent={transparent}\n >\n {d[label]}\n </SLabel>\n )}\n </g>,\n );\n }\n\n render() {\n const { data, uid, scale, x, y, value } = this.asProps;\n const [xScale, yScale] = scale;\n const xSize = Math.abs(xScale.range()[0] - xScale.range()[1]);\n const ySize = Math.abs(yScale.range()[0] - yScale.range()[1]);\n const xMargin = Math.min(xScale.range()[0], xScale.range()[1]);\n const yMargin = Math.min(yScale.range()[0], yScale.range()[1]);\n\n this.asProps.dataHintsHandler.specifyDataRowFields(x, y, value);\n this.asProps.dataHintsHandler.establishDataType('points-cloud');\n\n return (\n <>\n {data.map(this.renderCircle.bind(this))}\n <clipPath aria-hidden id={uid}>\n <rect x={xMargin} y={yMargin} width={`${xSize}px`} height={`${ySize}px`} />{' '}\n </clipPath>\n </>\n );\n }\n}\n\nconst BubbleTooltip = (props) => {\n const SBubbleTooltip = Root;\n return sstyled(props.styles)(<SBubbleTooltip render={Tooltip} excludeAnchorProps />);\n};\n\nconst Bubble = createElement(BubbleRoot, {\n Tooltip: [BubbleTooltip, Tooltip._______childrenComponents],\n});\n\nexport default Bubble;\n"],"mappings":"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"}
@@ -14,7 +14,7 @@ import { Component, Root, sstyled } from 'intergalactic/core';
14
14
  import canUseDOM from 'intergalactic/utils/lib/canUseDOM';
15
15
  import uniqueIDEnhancement from 'intergalactic/utils/lib/uniqueID';
16
16
  import createElement from './createElement';
17
- import { CONSTANT } from './utils';
17
+ import { CONSTANT, getScatterPlotRadius } from './utils';
18
18
  import Tooltip from './Tooltip';
19
19
  import { PatternFill } from './Pattern';
20
20
  /*__reshadow-styles__:"./style/scatterplot.shadow.css"*/
@@ -75,7 +75,7 @@ var ScatterPlotRoot = /*#__PURE__*/function (_Component) {
75
75
  uid = _this$asProps.uid,
76
76
  r = _this$asProps.r,
77
77
  value = _this$asProps.value;
78
- var radius = r ? r : value ? 12 : 5.5;
78
+ var radius = r ? r : getScatterPlotRadius(value);
79
79
  var selectRect = transition().selection().selectAll("[id^=".concat(uid, "]")).attr('r', 0);
80
80
  var selectRectNode = selectRect.node();
81
81
  if (duration > 0 && selectRectNode) {