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":"ScatterPlot.js","names":["React","transition","Component","Root","sstyled","canUseDOM","uniqueIDEnhancement","createElement","CONSTANT","Tooltip","PatternFill","style","_sstyled","insert","ScatterPlotRoot","_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","r","radius","selectRect","selection","selectAll","attr","selectRectNode","node","componentDidUpdate","componentDidMount","renderCircle","d","i","_ref2","_this$asProps2","color","scale","offset","styles","valueColor","transparent","resolveColor","patterns","_scale","_slicedToArray","xScale","yScale","SScatterPlot","Element","SValue","Number","isNaN","cn","bindHandlerTooltip","xIndex","index","render","_this$asProps3","data","_scale2","xSize","Math","abs","range","ySize","xMargin","min","yMargin","dataHintsHandler","specifyDataRowFields","establishDataType","Fragment","map","bind","id","ScatterPlotTooltip","_ref","arguments[0]","_ref3","SScatterPlotTooltip","_objectSpread","_assignProps","ScatterPlot","_______childrenComponents"],"sources":["../../src/ScatterPlot.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 { CONSTANT } from './utils';\nimport Tooltip from './Tooltip';\nimport { PatternFill } from './Pattern';\n\nimport style from './style/scatterplot.shadow.css';\n\nclass ScatterPlotRoot extends Component {\n static displayName = 'ScatterPlot';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = {\n offset: [0, 0],\n duration: 500,\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, r, value } = this.asProps;\n const radius = r ? r : value ? 12 : 5.5;\n const selectRect = transition().selection().selectAll(`[id^=${uid}]`).attr('r', 0);\n const selectRectNode = selectRect.node();\n\n if (duration > 0 && selectRectNode) {\n selectRect.transition().duration(duration).attr('r', radius);\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 r,\n offset,\n styles,\n uid,\n duration,\n value,\n valueColor,\n transparent,\n resolveColor,\n patterns,\n } = this.asProps;\n const [xScale, yScale] = scale;\n const SScatterPlot = this.Element;\n const SValue = 'text';\n\n if (Number.isNaN(d[x]) || Number.isNaN(d[y])) {\n return null;\n }\n\n return sstyled(styles)(\n <g\n aria-hidden\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 <SScatterPlot\n aria-hidden\n id={`${uid}${i}`}\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(color)}\n pattern={patterns ? `url(#${uid}-${i}-pattern)` : undefined}\n r={r}\n use:duration={`${duration}ms`}\n transparent={transparent}\n />\n {patterns && (\n <PatternFill\n id={`${uid}-${i}-pattern`}\n patternKey={color}\n color={resolveColor(color)}\n patterns={patterns}\n />\n )}\n {d[value] !== undefined && (\n <SValue\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(valueColor)}\n transparent={transparent}\n >\n {d[value]}\n </SValue>\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 id={uid}>\n <rect x={xMargin} y={yMargin} width={`${xSize}px`} height={`${ySize}px`} />\n </clipPath>\n </>\n );\n }\n}\n\nconst ScatterPlotTooltip = (props) => {\n const SScatterPlotTooltip = Root;\n return sstyled(props.styles)(<SScatterPlotTooltip render={Tooltip} excludeAnchorProps />);\n};\n\nconst ScatterPlot = createElement(ScatterPlotRoot, {\n Tooltip: [ScatterPlotTooltip, Tooltip._______childrenComponents],\n});\n\nexport default ScatterPlot;\n"],"mappings":"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"}
1
+ {"version":3,"file":"ScatterPlot.js","names":["React","transition","Component","Root","sstyled","canUseDOM","uniqueIDEnhancement","createElement","CONSTANT","getScatterPlotRadius","Tooltip","PatternFill","style","_sstyled","insert","ScatterPlotRoot","_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","r","radius","selectRect","selection","selectAll","attr","selectRectNode","node","componentDidUpdate","componentDidMount","renderCircle","d","i","_ref2","_this$asProps2","color","scale","offset","styles","valueColor","transparent","resolveColor","patterns","_scale","_slicedToArray","xScale","yScale","SScatterPlot","Element","SValue","Number","isNaN","cn","bindHandlerTooltip","xIndex","index","render","_this$asProps3","data","_scale2","xSize","Math","abs","range","ySize","xMargin","min","yMargin","dataHintsHandler","specifyDataRowFields","establishDataType","Fragment","map","bind","id","ScatterPlotTooltip","_ref","arguments[0]","_ref3","SScatterPlotTooltip","_objectSpread","_assignProps","ScatterPlot","_______childrenComponents"],"sources":["../../src/ScatterPlot.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 { CONSTANT, getScatterPlotRadius } from './utils';\nimport Tooltip from './Tooltip';\nimport { PatternFill } from './Pattern';\n\nimport style from './style/scatterplot.shadow.css';\n\nclass ScatterPlotRoot extends Component {\n static displayName = 'ScatterPlot';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = {\n offset: [0, 0],\n duration: 500,\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, r, value } = this.asProps;\n const radius = r ? r : getScatterPlotRadius(value);\n const selectRect = transition().selection().selectAll(`[id^=${uid}]`).attr('r', 0);\n const selectRectNode = selectRect.node();\n\n if (duration > 0 && selectRectNode) {\n selectRect.transition().duration(duration).attr('r', radius);\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 r,\n offset,\n styles,\n uid,\n duration,\n value,\n valueColor,\n transparent,\n resolveColor,\n patterns,\n } = this.asProps;\n const [xScale, yScale] = scale;\n const SScatterPlot = this.Element;\n const SValue = 'text';\n\n if (Number.isNaN(d[x]) || Number.isNaN(d[y])) {\n return null;\n }\n\n return sstyled(styles)(\n <g\n aria-hidden\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 <SScatterPlot\n aria-hidden\n id={`${uid}${i}`}\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(color)}\n pattern={patterns ? `url(#${uid}-${i}-pattern)` : undefined}\n r={r}\n use:duration={`${duration}ms`}\n transparent={transparent}\n />\n {patterns && (\n <PatternFill\n id={`${uid}-${i}-pattern`}\n patternKey={color}\n color={resolveColor(color)}\n patterns={patterns}\n />\n )}\n {d[value] !== undefined && (\n <SValue\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(valueColor)}\n transparent={transparent}\n >\n {d[value]}\n </SValue>\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 id={uid}>\n <rect x={xMargin} y={yMargin} width={`${xSize}px`} height={`${ySize}px`} />\n </clipPath>\n </>\n );\n }\n}\n\nconst ScatterPlotTooltip = (props) => {\n const SScatterPlotTooltip = Root;\n return sstyled(props.styles)(<SScatterPlotTooltip render={Tooltip} excludeAnchorProps />);\n};\n\nconst ScatterPlot = createElement(ScatterPlotRoot, {\n Tooltip: [ScatterPlotTooltip, Tooltip._______childrenComponents],\n});\n\nexport default ScatterPlot;\n"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
3
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
4
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
4
5
  import _createClass from "@babel/runtime/helpers/createClass";
@@ -230,6 +231,16 @@ export var AbstractChart = /*#__PURE__*/function (_Component) {
230
231
  }, 0);
231
232
  return total;
232
233
  }
234
+ }, {
235
+ key: "getValueScale",
236
+ value: function getValueScale(values) {
237
+ var max = Math.max.apply(Math, _toConsumableArray(values));
238
+ var min = Math.min.apply(Math, _toConsumableArray(values));
239
+ var avg = (max + min) / 2;
240
+ var count = Math.round(Math.log10(avg));
241
+ var valueScale = 100 / Math.pow(10, count);
242
+ return valueScale;
243
+ }
233
244
  }, {
234
245
  key: "setHighlightedLine",
235
246
  value: function setHighlightedLine(index) {
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractChart.js","names":["makeDataHintsContainer","interpolateValue","React","Component","Root","sstyled","callAllEventHandlers","ChartLegend","ChartLegendTable","Flex","Plot","XAxis","YAxis","Text","AbstractChart","_Component","_inherits","_super","_createSuper","props","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","dataDefinitions","defaultDataDefinitions","highlightedLine","withTrend","setHighlightedLine","bind","handleChangeVisible","handleMouseEnter","handleMouseLeave","resolveColor","tooltipValueFormatter","handleWithTrendChange","_createClass","key","value","componentDidUpdate","prevProps","data","legendProps","setState","get","_this2","_this$props","dataKeys","map","index","_legendProps$legendMa","_legendData$label","_legendData$icon","_legendData$defaultCh","legendData","legendMap","dataDefinition","id","label","icon","undefined","checked","defaultChecked","color","columns","additionalInfo","count","Array","isArray","_ref3","Map","Number","total","Object","values","reduce","sum","i","percent","toFixed","createElement","concat","use","_this$props2","groupKey","keys","filter","_this$asProps","asProps","invertAxis","xTicksCount","yTicksCount","scale","xScale","ticks","_this$asProps2","yScale","_this$asProps3","flatValues","result","item","add","entries","forEach","_ref4","_ref5","_slicedToArray","Set","_this$asProps4","max","val","barSum","_ref6","_ref7","Date","isNaN","getMilliseconds","totalValue","state","legendItem","isVisible","prevState","findIndex","line","_this$props$colorMap$","_this$props$colorMap","colorMap","toDateString","toString","defaultLegendProps","legendType","renderLegend","_lProps$direction","_this$asProps5","direction","showLegend","patterns","length","_this$state","lProps","_objectSpread","commonLegendProps","dataHints","items","size","shape","onChangeVisibleItem","disableSelectItems","onMouseEnterItem","disableHoverItems","onMouseLeaveItem","flexLegendProps","trendLabel","trendIsVisible","onTrendIsVisibleChange","renderAxis","_this$asProps6","showXAxis","showYAxis","axisXValueFormatter","axisYValueFormatter","xTicks","yTicks","childrenX","_ref8","children","childrenY","_ref9","Fragment","Ticks","Grid","render","_ref","_ref2","SChart","_this$asProps7","styles","plotWidth","plotHeight","cn","_assignProps","renderTooltip","renderChart","showTooltip"],"sources":["../../../../src/component/Chart/AbstractChart.tsx"],"sourcesContent":["import { makeDataHintsContainer } from '../../a11y/hints';\nimport { LegendItem } from '../ChartLegend/LegendItem/LegendItem.type';\nimport { ScaleBand, ScaleLinear, ScaleTime } from 'd3-scale';\nimport { interpolateValue } from '../../utils';\nimport React from 'react';\nimport { Component, Root, sstyled } from '@semcore/core';\nimport { BaseChartProps, BaseLegendProps, ListData, ObjectData } from './AbstractChart.type';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\nimport ChartLegend, { ChartLegendTable } from '../ChartLegend';\nimport { Flex } from '@semcore/flex-box';\n// @ts-ignore\nimport { Plot, XAxis, YAxis } from '../..';\nimport { Text } from '@semcore/typography';\nimport { LegendFlexProps } from '../ChartLegend/LegendFlex/LegendFlex.type';\n\ntype ChartState = {\n dataDefinitions: Array<LegendItem & { columns: React.ReactNode[] }>;\n highlightedLine: number;\n withTrend: boolean;\n};\n\nexport abstract class AbstractChart<\n D extends ListData | ObjectData,\n T extends BaseChartProps<D>,\n> extends Component<T, {}, ChartState> {\n public static style = {};\n public static defaultProps: Partial<BaseChartProps<any>> = {\n direction: 'column',\n showXAxis: true,\n showYAxis: true,\n showTooltip: true,\n showLegend: true,\n };\n\n /**\n * Padding from the end's of chart to the container (except axis sides)\n */\n protected plotPadding = 6;\n\n protected dataHints = makeDataHintsContainer();\n\n public state: ChartState = {\n dataDefinitions: this.defaultDataDefinitions,\n highlightedLine: -1,\n withTrend: false,\n };\n\n constructor(props: T) {\n super(props);\n\n this.setHighlightedLine = this.setHighlightedLine.bind(this);\n this.handleChangeVisible = this.handleChangeVisible.bind(this);\n this.handleMouseEnter = this.handleMouseEnter.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.resolveColor = this.resolveColor.bind(this);\n this.tooltipValueFormatter = this.tooltipValueFormatter.bind(this);\n this.handleWithTrendChange = this.handleWithTrendChange.bind(this);\n }\n\n public componentDidUpdate(prevProps: T) {\n if (prevProps.data !== this.props.data || prevProps.legendProps !== this.props.legendProps) {\n this.setState({ dataDefinitions: this.defaultDataDefinitions });\n }\n }\n\n protected get defaultDataDefinitions(): Array<LegendItem & { columns: React.ReactNode[] }> {\n const { data, legendProps } = this.props;\n\n return this.dataKeys.map((key, index) => {\n const legendData = legendProps?.legendMap?.[key];\n\n const dataDefinition: LegendItem & { columns: React.ReactNode[] } = {\n id: key,\n label: legendData?.label ?? key,\n icon: legendData?.icon ?? undefined,\n checked: legendData?.defaultChecked ?? true,\n color: this.resolveColor(key, index),\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 if (legendData && 'columns' in legendData) {\n dataDefinition.columns = legendData.columns || [];\n } else if (!Array.isArray(data)) {\n const value = (data instanceof Map ? data.get(key) : Number(data[key])) ?? 0;\n const total = Object.values(data).reduce<number>((sum, i) => sum + Number(i), 0);\n const percent = ((value / total) * 100).toFixed(2);\n\n dataDefinition.columns = [\n <Text key={`${key}_percent`} use={'secondary'}>\n {percent}%\n </Text>,\n <Text key={`${key}_value`} use={'primary'}>\n {value}\n </Text>,\n ];\n }\n\n return dataDefinition;\n });\n }\n\n protected abstract get xScale(): ScaleBand<any> | ScaleLinear<any, any> | ScaleTime<any, any>;\n protected abstract get yScale(): ScaleBand<any> | ScaleLinear<any, any> | ScaleTime<any, any>;\n\n protected abstract renderChart(): React.ReactNode;\n protected abstract renderTooltip(): React.ReactNode;\n\n protected get dataKeys(): string[] {\n const { data, groupKey } = this.props;\n\n let dataKeys: string[];\n\n if (Array.isArray(data) && groupKey) {\n dataKeys = Object.keys(data[0]).filter((key) => key !== groupKey);\n } else {\n dataKeys = Object.keys(data);\n }\n\n return dataKeys;\n }\n\n protected get xTicks(): number[] | Date[] | undefined {\n const { data, invertAxis, xTicksCount, yTicksCount } = this.asProps;\n\n const scale = this.xScale;\n\n if (Array.isArray(data) && 'ticks' in scale) {\n if (invertAxis && yTicksCount) {\n return scale.ticks(yTicksCount);\n } else if (xTicksCount) {\n return scale.ticks(xTicksCount);\n }\n\n return undefined;\n }\n\n return undefined;\n }\n\n protected get yTicks(): number[] | Date[] | undefined {\n const { data, invertAxis, xTicksCount, yTicksCount } = this.asProps;\n\n const scale = this.yScale;\n\n if (Array.isArray(data) && 'ticks' in scale) {\n if (invertAxis && xTicksCount) {\n return scale.ticks(xTicksCount);\n } else if (yTicksCount) {\n return scale.ticks(yTicksCount);\n }\n\n return undefined;\n }\n\n return undefined;\n }\n\n protected get flatValues(): Set<number> {\n const { data, groupKey } = this.asProps;\n const values: any[] = Array.isArray(data) ? data : Object.values(data);\n\n const flatValues = values.reduce<Set<number>>((result, item) => {\n if (!groupKey && typeof item === 'number') {\n result.add(item);\n } else {\n Object.entries(item).forEach(([key, value]) => {\n if (key !== groupKey && typeof value === 'number') {\n result.add(value);\n }\n });\n }\n\n return result;\n }, new Set());\n\n return flatValues;\n }\n\n protected get maxStackedValue(): number {\n const { data, groupKey } = this.asProps;\n\n if (!Array.isArray(data)) {\n const max = Object.values(data).reduce<number>((sum, val) => {\n if (typeof val === 'number') {\n sum = sum + val;\n }\n\n return sum;\n }, 0);\n\n return max;\n }\n\n const max = data.reduce((max, item) => {\n const barSum = Object.entries(item).reduce<number>((sum, [key, val]) => {\n if (key === groupKey) {\n return sum;\n }\n\n if (typeof val === 'number') {\n return sum + val;\n }\n\n if (val instanceof Date && !Number.isNaN(val.getMilliseconds())) {\n return sum + val.getMilliseconds();\n }\n\n return sum;\n }, 0);\n\n if (barSum > max) {\n max = barSum;\n }\n\n return max;\n }, 0);\n\n return max;\n }\n\n protected totalValue(data: ObjectData): number {\n const { dataDefinitions } = this.state;\n\n const total = dataDefinitions.reduce((sum, legendItem) => {\n const item = data[legendItem.id];\n\n if (typeof item === 'number') {\n return sum + item;\n }\n\n if (item instanceof Date && !Number.isNaN(item.getMilliseconds())) {\n return sum + item.getMilliseconds();\n }\n\n return sum;\n }, 0);\n\n return total;\n }\n\n protected setHighlightedLine(index: number) {\n this.setState({ highlightedLine: index });\n }\n\n protected handleChangeVisible(id: string, isVisible: boolean) {\n this.setState((prevState) => {\n const dataDefinitions = prevState.dataDefinitions.map((item) => {\n if (item.id === id) {\n item.checked = isVisible;\n }\n\n return item;\n });\n\n return { dataDefinitions };\n });\n }\n\n protected handleWithTrendChange(isVisible: boolean) {\n this.setState({ withTrend: isVisible });\n }\n\n protected handleMouseEnter(id: string) {\n this.setHighlightedLine(this.state.dataDefinitions.findIndex((line) => line.id === id));\n }\n\n protected handleMouseLeave() {\n this.setHighlightedLine(-1);\n }\n\n protected resolveColor(id: string, index: number) {\n return this.props.colorMap?.[id] ?? `chart-palette-order-${index + 1}`;\n }\n\n protected tooltipValueFormatter(\n value?: string | number | typeof interpolateValue | Date,\n ): string {\n const { tooltipValueFormatter } = this.asProps;\n\n if (tooltipValueFormatter) {\n return tooltipValueFormatter(value);\n }\n\n if (value === undefined || value === interpolateValue) {\n return 'n/a';\n }\n\n if (value instanceof Date) {\n return value.toDateString();\n }\n\n return value.toString();\n }\n\n protected defaultLegendProps(): Partial<BaseLegendProps> {\n return {\n legendType: 'Flex',\n };\n }\n\n protected renderLegend() {\n const { legendProps, direction, showLegend, patterns } = this.asProps;\n\n if (\n !showLegend ||\n // we hide Legend for one item on chart except not manually set to show.\n (this.dataKeys.length === 1 && showLegend === true)\n ) {\n return null;\n }\n\n const { dataDefinitions, withTrend } = this.state;\n const lProps = {\n ...this.defaultLegendProps(),\n ...legendProps,\n };\n\n const commonLegendProps = {\n dataHints: this.dataHints,\n items: dataDefinitions,\n size: lProps.size,\n shape: lProps.shape,\n patterns,\n direction:\n lProps.direction ?? (direction === 'row' || direction === 'row-reverse' ? 'column' : 'row'),\n onChangeVisibleItem: lProps.disableSelectItems\n ? undefined\n : callAllEventHandlers(lProps.onChangeVisibleItem, this.handleChangeVisible),\n onMouseEnterItem: lProps.disableHoverItems\n ? undefined\n : callAllEventHandlers(lProps.onMouseEnterItem, this.handleMouseEnter),\n onMouseLeaveItem: lProps.disableHoverItems\n ? undefined\n : callAllEventHandlers(lProps.onMouseLeaveItem, this.handleMouseLeave),\n };\n\n if (lProps.legendType === 'Table') {\n return <ChartLegendTable {...commonLegendProps} />;\n }\n\n if ('withTrend' in lProps) {\n const flexLegendProps: LegendFlexProps = {\n ...commonLegendProps,\n withTrend: true,\n trendLabel: lProps.trendLabel,\n trendIsVisible: withTrend,\n onTrendIsVisibleChange: this.handleWithTrendChange,\n };\n\n return <ChartLegend {...flexLegendProps} />;\n }\n\n return <ChartLegend {...commonLegendProps} />;\n }\n\n protected renderAxis(): React.ReactNode {\n const { invertAxis, showXAxis, showYAxis, data, axisXValueFormatter, axisYValueFormatter } =\n this.asProps;\n\n if (!Array.isArray(data)) {\n return null;\n }\n\n const xTicks = this.xTicks;\n const yTicks = this.yTicks;\n\n const childrenX = axisXValueFormatter\n ? ({ value }: any) => ({ children: axisXValueFormatter(value) })\n : undefined;\n const childrenY = axisYValueFormatter\n ? ({ value }: any) => ({ children: axisYValueFormatter(value) })\n : undefined;\n\n return (\n <>\n {showYAxis && (\n <YAxis>\n {yTicks ? (\n <YAxis.Ticks ticks={yTicks}>{childrenY}</YAxis.Ticks>\n ) : (\n <YAxis.Ticks>{childrenY}</YAxis.Ticks>\n )}\n {invertAxis !== true && (yTicks ? <YAxis.Grid ticks={yTicks} /> : <YAxis.Grid />)}\n </YAxis>\n )}\n\n {showXAxis && (\n <XAxis>\n {xTicks ? (\n <XAxis.Ticks ticks={xTicks}>{childrenX}</XAxis.Ticks>\n ) : (\n <XAxis.Ticks>{childrenX}</XAxis.Ticks>\n )}\n {invertAxis === true && (xTicks ? <XAxis.Grid ticks={xTicks} /> : <XAxis.Grid />)}\n </XAxis>\n )}\n </>\n );\n }\n\n public render() {\n const SChart = Root;\n const { styles, plotWidth, plotHeight, data, patterns } = this.asProps;\n\n return sstyled(styles)(\n <SChart render={Flex} gap={5}>\n {this.renderLegend()}\n <Plot\n data={data}\n scale={[this.xScale, this.yScale]}\n width={plotWidth}\n height={plotHeight}\n dataHints={this.dataHints}\n patterns={patterns}\n >\n {this.renderAxis()}\n {this.renderTooltip()}\n {this.renderChart()}\n </Plot>\n </SChart>,\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"AbstractChart.js","names":["makeDataHintsContainer","interpolateValue","React","Component","Root","sstyled","callAllEventHandlers","ChartLegend","ChartLegendTable","Flex","Plot","XAxis","YAxis","Text","AbstractChart","_Component","_inherits","_super","_createSuper","props","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","dataDefinitions","defaultDataDefinitions","highlightedLine","withTrend","setHighlightedLine","bind","handleChangeVisible","handleMouseEnter","handleMouseLeave","resolveColor","tooltipValueFormatter","handleWithTrendChange","_createClass","key","value","componentDidUpdate","prevProps","data","legendProps","setState","get","_this2","_this$props","dataKeys","map","index","_legendProps$legendMa","_legendData$label","_legendData$icon","_legendData$defaultCh","legendData","legendMap","dataDefinition","id","label","icon","undefined","checked","defaultChecked","color","columns","additionalInfo","count","Array","isArray","_ref3","Map","Number","total","Object","values","reduce","sum","i","percent","toFixed","createElement","concat","use","_this$props2","groupKey","keys","filter","_this$asProps","asProps","invertAxis","xTicksCount","yTicksCount","scale","xScale","ticks","_this$asProps2","yScale","_this$asProps3","flatValues","result","item","add","entries","forEach","_ref4","_ref5","_slicedToArray","Set","_this$asProps4","max","val","barSum","_ref6","_ref7","Date","isNaN","getMilliseconds","totalValue","state","legendItem","getValueScale","Math","apply","_toConsumableArray","min","avg","round","log10","valueScale","pow","isVisible","prevState","findIndex","line","_this$props$colorMap$","_this$props$colorMap","colorMap","toDateString","toString","defaultLegendProps","legendType","renderLegend","_lProps$direction","_this$asProps5","direction","showLegend","patterns","length","_this$state","lProps","_objectSpread","commonLegendProps","dataHints","items","size","shape","onChangeVisibleItem","disableSelectItems","onMouseEnterItem","disableHoverItems","onMouseLeaveItem","flexLegendProps","trendLabel","trendIsVisible","onTrendIsVisibleChange","renderAxis","_this$asProps6","showXAxis","showYAxis","axisXValueFormatter","axisYValueFormatter","xTicks","yTicks","childrenX","_ref8","children","childrenY","_ref9","Fragment","Ticks","Grid","render","_ref","_ref2","SChart","_this$asProps7","styles","plotWidth","plotHeight","cn","_assignProps","renderTooltip","renderChart","showTooltip"],"sources":["../../../../src/component/Chart/AbstractChart.tsx"],"sourcesContent":["import { makeDataHintsContainer } from '../../a11y/hints';\nimport { LegendItem } from '../ChartLegend/LegendItem/LegendItem.type';\nimport { ScaleBand, ScaleLinear, ScaleTime } from 'd3-scale';\nimport { interpolateValue } from '../../utils';\nimport React from 'react';\nimport { Component, Root, sstyled } from '@semcore/core';\nimport { BaseChartProps, BaseLegendProps, ListData, ObjectData } from './AbstractChart.type';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\nimport ChartLegend, { ChartLegendTable } from '../ChartLegend';\nimport { Flex } from '@semcore/flex-box';\n// @ts-ignore\nimport { Plot, XAxis, YAxis } from '../..';\nimport { Text } from '@semcore/typography';\nimport { LegendFlexProps } from '../ChartLegend/LegendFlex/LegendFlex.type';\n\ntype ChartState = {\n dataDefinitions: Array<LegendItem & { columns: React.ReactNode[] }>;\n highlightedLine: number;\n withTrend: boolean;\n};\n\nexport abstract class AbstractChart<\n D extends ListData | ObjectData,\n T extends BaseChartProps<D>,\n> extends Component<T, {}, ChartState> {\n public static style = {};\n public static defaultProps: Partial<BaseChartProps<any>> = {\n direction: 'column',\n showXAxis: true,\n showYAxis: true,\n showTooltip: true,\n showLegend: true,\n };\n\n /**\n * Padding from the end's of chart to the container (except axis sides)\n */\n protected plotPadding = 6;\n\n protected dataHints = makeDataHintsContainer();\n\n public state: ChartState = {\n dataDefinitions: this.defaultDataDefinitions,\n highlightedLine: -1,\n withTrend: false,\n };\n\n constructor(props: T) {\n super(props);\n\n this.setHighlightedLine = this.setHighlightedLine.bind(this);\n this.handleChangeVisible = this.handleChangeVisible.bind(this);\n this.handleMouseEnter = this.handleMouseEnter.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.resolveColor = this.resolveColor.bind(this);\n this.tooltipValueFormatter = this.tooltipValueFormatter.bind(this);\n this.handleWithTrendChange = this.handleWithTrendChange.bind(this);\n }\n\n public componentDidUpdate(prevProps: T) {\n if (prevProps.data !== this.props.data || prevProps.legendProps !== this.props.legendProps) {\n this.setState({ dataDefinitions: this.defaultDataDefinitions });\n }\n }\n\n protected get defaultDataDefinitions(): Array<LegendItem & { columns: React.ReactNode[] }> {\n const { data, legendProps } = this.props;\n\n return this.dataKeys.map((key, index) => {\n const legendData = legendProps?.legendMap?.[key];\n\n const dataDefinition: LegendItem & { columns: React.ReactNode[] } = {\n id: key,\n label: legendData?.label ?? key,\n icon: legendData?.icon ?? undefined,\n checked: legendData?.defaultChecked ?? true,\n color: this.resolveColor(key, index),\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 if (legendData && 'columns' in legendData) {\n dataDefinition.columns = legendData.columns || [];\n } else if (!Array.isArray(data)) {\n const value = (data instanceof Map ? data.get(key) : Number(data[key])) ?? 0;\n const total = Object.values(data).reduce<number>((sum, i) => sum + Number(i), 0);\n const percent = ((value / total) * 100).toFixed(2);\n\n dataDefinition.columns = [\n <Text key={`${key}_percent`} use={'secondary'}>\n {percent}%\n </Text>,\n <Text key={`${key}_value`} use={'primary'}>\n {value}\n </Text>,\n ];\n }\n\n return dataDefinition;\n });\n }\n\n protected abstract get xScale(): ScaleBand<any> | ScaleLinear<any, any> | ScaleTime<any, any>;\n protected abstract get yScale(): ScaleBand<any> | ScaleLinear<any, any> | ScaleTime<any, any>;\n\n protected abstract renderChart(): React.ReactNode;\n protected abstract renderTooltip(): React.ReactNode;\n\n protected get dataKeys(): string[] {\n const { data, groupKey } = this.props;\n\n let dataKeys: string[];\n\n if (Array.isArray(data) && groupKey) {\n dataKeys = Object.keys(data[0]).filter((key) => key !== groupKey);\n } else {\n dataKeys = Object.keys(data);\n }\n\n return dataKeys;\n }\n\n protected get xTicks(): number[] | Date[] | undefined {\n const { data, invertAxis, xTicksCount, yTicksCount } = this.asProps;\n\n const scale = this.xScale;\n\n if (Array.isArray(data) && 'ticks' in scale) {\n if (invertAxis && yTicksCount) {\n return scale.ticks(yTicksCount);\n } else if (xTicksCount) {\n return scale.ticks(xTicksCount);\n }\n\n return undefined;\n }\n\n return undefined;\n }\n\n protected get yTicks(): number[] | Date[] | undefined {\n const { data, invertAxis, xTicksCount, yTicksCount } = this.asProps;\n\n const scale = this.yScale;\n\n if (Array.isArray(data) && 'ticks' in scale) {\n if (invertAxis && xTicksCount) {\n return scale.ticks(xTicksCount);\n } else if (yTicksCount) {\n return scale.ticks(yTicksCount);\n }\n\n return undefined;\n }\n\n return undefined;\n }\n\n protected get flatValues(): Set<number> {\n const { data, groupKey } = this.asProps;\n const values: any[] = Array.isArray(data) ? data : Object.values(data);\n\n const flatValues = values.reduce<Set<number>>((result, item) => {\n if (!groupKey && typeof item === 'number') {\n result.add(item);\n } else {\n Object.entries(item).forEach(([key, value]) => {\n if (key !== groupKey && typeof value === 'number') {\n result.add(value);\n }\n });\n }\n\n return result;\n }, new Set());\n\n return flatValues;\n }\n\n protected get maxStackedValue(): number {\n const { data, groupKey } = this.asProps;\n\n if (!Array.isArray(data)) {\n const max = Object.values(data).reduce<number>((sum, val) => {\n if (typeof val === 'number') {\n sum = sum + val;\n }\n\n return sum;\n }, 0);\n\n return max;\n }\n\n const max = data.reduce((max, item) => {\n const barSum = Object.entries(item).reduce<number>((sum, [key, val]) => {\n if (key === groupKey) {\n return sum;\n }\n\n if (typeof val === 'number') {\n return sum + val;\n }\n\n if (val instanceof Date && !Number.isNaN(val.getMilliseconds())) {\n return sum + val.getMilliseconds();\n }\n\n return sum;\n }, 0);\n\n if (barSum > max) {\n max = barSum;\n }\n\n return max;\n }, 0);\n\n return max;\n }\n\n protected totalValue(data: ObjectData): number {\n const { dataDefinitions } = this.state;\n\n const total = dataDefinitions.reduce((sum, legendItem) => {\n const item = data[legendItem.id];\n\n if (typeof item === 'number') {\n return sum + item;\n }\n\n if (item instanceof Date && !Number.isNaN(item.getMilliseconds())) {\n return sum + item.getMilliseconds();\n }\n\n return sum;\n }, 0);\n\n return total;\n }\n\n protected getValueScale(values: number[]): number {\n const max = Math.max(...values);\n const min = Math.min(...values);\n\n const avg = (max + min) / 2;\n const count = Math.round(Math.log10(avg));\n\n const valueScale = 100 / 10 ** count;\n\n return valueScale;\n }\n\n protected setHighlightedLine(index: number) {\n this.setState({ highlightedLine: index });\n }\n\n protected handleChangeVisible(id: string, isVisible: boolean) {\n this.setState((prevState) => {\n const dataDefinitions = prevState.dataDefinitions.map((item) => {\n if (item.id === id) {\n item.checked = isVisible;\n }\n\n return item;\n });\n\n return { dataDefinitions };\n });\n }\n\n protected handleWithTrendChange(isVisible: boolean) {\n this.setState({ withTrend: isVisible });\n }\n\n protected handleMouseEnter(id: string) {\n this.setHighlightedLine(this.state.dataDefinitions.findIndex((line) => line.id === id));\n }\n\n protected handleMouseLeave() {\n this.setHighlightedLine(-1);\n }\n\n protected resolveColor(id: string, index: number) {\n return this.props.colorMap?.[id] ?? `chart-palette-order-${index + 1}`;\n }\n\n protected tooltipValueFormatter(\n value?: string | number | typeof interpolateValue | Date,\n ): string {\n const { tooltipValueFormatter } = this.asProps;\n\n if (tooltipValueFormatter) {\n return tooltipValueFormatter(value);\n }\n\n if (value === undefined || value === interpolateValue) {\n return 'n/a';\n }\n\n if (value instanceof Date) {\n return value.toDateString();\n }\n\n return value.toString();\n }\n\n protected defaultLegendProps(): Partial<BaseLegendProps> {\n return {\n legendType: 'Flex',\n };\n }\n\n protected renderLegend() {\n const { legendProps, direction, showLegend, patterns } = this.asProps;\n\n if (\n !showLegend ||\n // we hide Legend for one item on chart except not manually set to show.\n (this.dataKeys.length === 1 && showLegend === true)\n ) {\n return null;\n }\n\n const { dataDefinitions, withTrend } = this.state;\n const lProps = {\n ...this.defaultLegendProps(),\n ...legendProps,\n };\n\n const commonLegendProps = {\n dataHints: this.dataHints,\n items: dataDefinitions,\n size: lProps.size,\n shape: lProps.shape,\n patterns,\n direction:\n lProps.direction ?? (direction === 'row' || direction === 'row-reverse' ? 'column' : 'row'),\n onChangeVisibleItem: lProps.disableSelectItems\n ? undefined\n : callAllEventHandlers(lProps.onChangeVisibleItem, this.handleChangeVisible),\n onMouseEnterItem: lProps.disableHoverItems\n ? undefined\n : callAllEventHandlers(lProps.onMouseEnterItem, this.handleMouseEnter),\n onMouseLeaveItem: lProps.disableHoverItems\n ? undefined\n : callAllEventHandlers(lProps.onMouseLeaveItem, this.handleMouseLeave),\n };\n\n if (lProps.legendType === 'Table') {\n return <ChartLegendTable {...commonLegendProps} />;\n }\n\n if ('withTrend' in lProps) {\n const flexLegendProps: LegendFlexProps = {\n ...commonLegendProps,\n withTrend: true,\n trendLabel: lProps.trendLabel,\n trendIsVisible: withTrend,\n onTrendIsVisibleChange: this.handleWithTrendChange,\n };\n\n return <ChartLegend {...flexLegendProps} />;\n }\n\n return <ChartLegend {...commonLegendProps} />;\n }\n\n protected renderAxis(): React.ReactNode {\n const { invertAxis, showXAxis, showYAxis, data, axisXValueFormatter, axisYValueFormatter } =\n this.asProps;\n\n if (!Array.isArray(data)) {\n return null;\n }\n\n const xTicks = this.xTicks;\n const yTicks = this.yTicks;\n\n const childrenX = axisXValueFormatter\n ? ({ value }: any) => ({ children: axisXValueFormatter(value) })\n : undefined;\n const childrenY = axisYValueFormatter\n ? ({ value }: any) => ({ children: axisYValueFormatter(value) })\n : undefined;\n\n return (\n <>\n {showYAxis && (\n <YAxis>\n {yTicks ? (\n <YAxis.Ticks ticks={yTicks}>{childrenY}</YAxis.Ticks>\n ) : (\n <YAxis.Ticks>{childrenY}</YAxis.Ticks>\n )}\n {invertAxis !== true && (yTicks ? <YAxis.Grid ticks={yTicks} /> : <YAxis.Grid />)}\n </YAxis>\n )}\n\n {showXAxis && (\n <XAxis>\n {xTicks ? (\n <XAxis.Ticks ticks={xTicks}>{childrenX}</XAxis.Ticks>\n ) : (\n <XAxis.Ticks>{childrenX}</XAxis.Ticks>\n )}\n {invertAxis === true && (xTicks ? <XAxis.Grid ticks={xTicks} /> : <XAxis.Grid />)}\n </XAxis>\n )}\n </>\n );\n }\n\n public render() {\n const SChart = Root;\n const { styles, plotWidth, plotHeight, data, patterns } = this.asProps;\n\n return sstyled(styles)(\n <SChart render={Flex} gap={5}>\n {this.renderLegend()}\n <Plot\n data={data}\n scale={[this.xScale, this.yScale]}\n width={plotWidth}\n height={plotHeight}\n dataHints={this.dataHints}\n patterns={patterns}\n >\n {this.renderAxis()}\n {this.renderTooltip()}\n {this.renderChart()}\n </Plot>\n </SChart>,\n );\n }\n}\n"],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
1
2
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
3
  import _createClass from "@babel/runtime/helpers/createClass";
3
4
  import _inherits from "@babel/runtime/helpers/inherits";
@@ -7,7 +8,7 @@ import React from 'react';
7
8
  import createComponent from 'intergalactic/core';
8
9
  import { scaleLinear } from 'd3-scale';
9
10
  // @ts-ignore
10
- import { Bubble, minMax } from '../..';
11
+ import { Bubble, getBubbleChartValueScale } from '../..';
11
12
  import { AbstractChart } from './AbstractChart';
12
13
  import { Text } from 'intergalactic/typography';
13
14
  var BubbleChartComponent = /*#__PURE__*/function (_AbstractChart) {
@@ -58,37 +59,70 @@ var BubbleChartComponent = /*#__PURE__*/function (_AbstractChart) {
58
59
  });
59
60
  }
60
61
  }, {
61
- key: "xScale",
62
+ key: "valueScale",
63
+ get: function get() {
64
+ var data = this.asProps.data;
65
+ return getBubbleChartValueScale(data, 'value');
66
+ }
67
+ }, {
68
+ key: "scaledValues",
62
69
  get: function get() {
70
+ var _this2 = this;
63
71
  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
72
  data = _this$asProps.data,
69
- groupKey = _this$asProps.groupKey;
73
+ plotWidth = _this$asProps.plotWidth,
74
+ plotHeight = _this$asProps.plotHeight;
75
+ var values = {
76
+ x: [],
77
+ y: []
78
+ };
79
+ var xValueScale = plotWidth / plotHeight * this.getValueScale(data.map(function (d) {
80
+ return d.x;
81
+ }));
82
+ var yValueScale = plotHeight / plotWidth * this.getValueScale(data.map(function (d) {
83
+ return d.y;
84
+ }));
85
+ data.forEach(function (item) {
86
+ var x = item.x;
87
+ var y = item.y;
88
+ var scaledValue = _this2.valueScale(item.value);
89
+ values.x.push(x - scaledValue / xValueScale);
90
+ values.x.push(x + scaledValue / xValueScale);
91
+ values.y.push(y - scaledValue / yValueScale);
92
+ values.y.push(y + scaledValue / yValueScale);
93
+ });
94
+ return values;
95
+ }
96
+ }, {
97
+ key: "xScale",
98
+ get: function get() {
99
+ var _this$asProps2 = this.asProps,
100
+ xScale = _this$asProps2.xScale,
101
+ _this$asProps2$margin = _this$asProps2.marginY,
102
+ marginY = _this$asProps2$margin === void 0 ? 30 : _this$asProps2$margin,
103
+ plotWidth = _this$asProps2.plotWidth,
104
+ data = _this$asProps2.data,
105
+ groupKey = _this$asProps2.groupKey;
70
106
  if (xScale) {
71
107
  return xScale;
72
108
  }
73
109
  var range = [marginY, plotWidth - this.plotPadding];
74
- var domain = minMax(data, 'x');
75
- return scaleLinear([domain[0] * 0.8, domain[1] * 1.2], range);
110
+ return scaleLinear([Math.min.apply(Math, _toConsumableArray(this.scaledValues.x)), Math.max.apply(Math, _toConsumableArray(this.scaledValues.x))], range);
76
111
  }
77
112
  }, {
78
113
  key: "yScale",
79
114
  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;
115
+ var _this$asProps3 = this.asProps,
116
+ yScale = _this$asProps3.yScale,
117
+ _this$asProps3$margin = _this$asProps3.marginX,
118
+ marginX = _this$asProps3$margin === void 0 ? 30 : _this$asProps3$margin,
119
+ plotHeight = _this$asProps3.plotHeight,
120
+ data = _this$asProps3.data;
86
121
  if (yScale) {
87
122
  return yScale;
88
123
  }
89
124
  var range = [plotHeight - marginX, this.plotPadding];
90
- var domain = minMax(data, 'y');
91
- return scaleLinear([domain[0] * 0.8, domain[1] * 1.2], range);
125
+ return scaleLinear([Math.min.apply(Math, _toConsumableArray(this.scaledValues.y)), Math.max.apply(Math, _toConsumableArray(this.scaledValues.y))], range);
92
126
  }
93
127
  }, {
94
128
  key: "defaultLegendProps",
@@ -1 +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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"}
1
+ {"version":3,"file":"BubbleChart.js","names":["React","createComponent","scaleLinear","Bubble","getBubbleChartValueScale","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","asProps","_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","Math","min","_toConsumableArray","scaledValues","max","_this$asProps3","yScale","_this$asProps3$margin","marginX","defaultLegendProps","shape","renderChart","createElement","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, 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":";;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,eAAe,MAAM,eAAe;AAC3C,SAASC,WAAW,QAAiC,UAAU;AAC/D;AACA,SAASC,MAAM,EAAEC,wBAAwB,QAAQ,OAAO;AACxD,SAASC,aAAa,QAAQ,iBAAiB;AAO/C,SAASC,IAAI,QAAQ,qBAAqB;AAAC,IAGrCC,oBAAoB,0BAAAC,cAAA;EAAAC,SAAA,CAAAF,oBAAA,EAAAC,cAAA;EAAA,IAAAE,MAAA,GAAAC,YAAA,CAAAJ,oBAAA;EAAA,SAAAA,qBAAA;IAAAK,eAAA,OAAAL,oBAAA;IAAA,OAAAG,MAAA,CAAAG,KAAA,OAAAC,SAAA;EAAA;EAAAC,YAAA,CAAAR,oBAAA;IAAAS,GAAA;IAAAC,GAAA,EAGxB,SAAAA,IAAA,EAAmC;MACjC,IAAQC,IAAI,GAAK,IAAI,CAACC,KAAK,CAAnBD,IAAI;MAEZ,OAAOA,IAAI,CAACE,GAAG,CAAC,UAACC,CAAC,EAAEC,KAAK;QAAA,OAAKA,KAAK,CAACC,QAAQ,EAAE;MAAA,EAAC;IACjD;EAAC;IAAAP,GAAA;IAAAC,GAAA,EAED,SAAAA,IAAA,EAAiF;MAAA,IAAAO,KAAA;MAC/E,IAAAC,WAAA,GAA8B,IAAI,CAACN,KAAK;QAAhCO,WAAW,GAAAD,WAAA,CAAXC,WAAW;QAAER,IAAI,GAAAO,WAAA,CAAJP,IAAI;MAEzB,OAAOA,IAAI,CAACE,GAAG,CAAC,UAACO,IAAI,EAAEL,KAAK,EAAK;QAAA,IAAAM,qBAAA,EAAAC,IAAA,EAAAC,iBAAA,EAAAC,gBAAA,EAAAC,qBAAA;QAC/B,IAAMhB,GAAG,GAAGM,KAAK,CAACC,QAAQ,EAAE;QAC5B,IAAMU,UAAU,GAAGP,WAAW,aAAXA,WAAW,wBAAAE,qBAAA,GAAXF,WAAW,CAAEQ,SAAS,cAAAN,qBAAA,uBAAtBA,qBAAA,CAAyBZ,GAAG,CAAC;QAEhD,IAAIW,IAAI,CAACQ,KAAK,KAAKC,SAAS,EAAE;UAC5BT,IAAI,CAACQ,KAAK,GAAGX,KAAI,CAACa,YAAY,CAACrB,GAAG,EAAEM,KAAK,CAAC;QAC5C;QAEA,IAAMgB,cAA2D,GAAG;UAClEC,EAAE,EAAEvB,GAAG;UACPwB,KAAK,GAAAX,IAAA,IAAAC,iBAAA,GAAEG,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEO,KAAK,cAAAV,iBAAA,cAAAA,iBAAA,GAAIH,IAAI,CAACa,KAAK,cAAAX,IAAA,cAAAA,IAAA,GAAIb,GAAG;UAC7CyB,IAAI,GAAAV,gBAAA,GAAEE,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEQ,IAAI,cAAAV,gBAAA,cAAAA,gBAAA,GAAIK,SAAS;UACnCM,OAAO,GAAAV,qBAAA,GAAEC,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEU,cAAc,cAAAX,qBAAA,cAAAA,qBAAA,GAAI,IAAI;UAC3CG,KAAK,EAAER,IAAI,CAACQ,KAAK;UACjBS,OAAO,EAAE;QACX,CAAC;QAED,IAAIX,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAEY,cAAc,IAAIZ,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAEa,KAAK,EAAE;UACnDR,cAAc,CAACO,cAAc,GAAGZ,UAAU,CAACY,cAAc,GACrD;YAAEL,KAAK,EAAEP,UAAU,CAACY;UAAe,CAAC,GACpCZ,UAAU,CAACa,KAAK,GAChB;YAAEA,KAAK,EAAEb,UAAU,CAACa;UAAM,CAAC,GAC3BV,SAAS;QACf;QAEA,OAAOE,cAAc;MACvB,CAAC,CAAC;IACJ;EAAC;IAAAtB,GAAA;IAAAC,GAAA,EAED,SAAAA,IAAA,EAA6C;MAC3C,IAAQC,IAAI,GAAK,IAAI,CAAC6B,OAAO,CAArB7B,IAAI;MAEZ,OAAOd,wBAAwB,CAACc,IAAI,EAAE,OAAO,CAAC;IAChD;EAAC;IAAAF,GAAA;IAAAC,GAAA,EAED,SAAAA,IAAA,EAAiC;MAAA,IAAA+B,MAAA;MAC/B,IAAAC,aAAA,GAAwC,IAAI,CAACF,OAAO;QAA5C7B,IAAI,GAAA+B,aAAA,CAAJ/B,IAAI;QAAEgC,SAAS,GAAAD,aAAA,CAATC,SAAS;QAAEC,UAAU,GAAAF,aAAA,CAAVE,UAAU;MACnC,IAAMC,MAAoB,GAAG;QAAEC,CAAC,EAAE,EAAE;QAAEC,CAAC,EAAE;MAAG,CAAC;MAE7C,IAAMC,WAAW,GAAIL,SAAS,GAAGC,UAAU,GAAI,IAAI,CAACK,aAAa,CAACtC,IAAI,CAACE,GAAG,CAAC,UAACqC,CAAC;QAAA,OAAKA,CAAC,CAACJ,CAAC;MAAA,EAAC,CAAC;MACvF,IAAMK,WAAW,GAAIP,UAAU,GAAGD,SAAS,GAAI,IAAI,CAACM,aAAa,CAACtC,IAAI,CAACE,GAAG,CAAC,UAACqC,CAAC;QAAA,OAAKA,CAAC,CAACH,CAAC;MAAA,EAAC,CAAC;MAEvFpC,IAAI,CAACyC,OAAO,CAAC,UAAChC,IAAI,EAAK;QACrB,IAAM0B,CAAC,GAAG1B,IAAI,CAAC0B,CAAC;QAChB,IAAMC,CAAC,GAAG3B,IAAI,CAAC2B,CAAC;QAChB,IAAMM,WAAW,GAAGZ,MAAI,CAACa,UAAU,CAAClC,IAAI,CAACmC,KAAK,CAAC;QAE/CV,MAAM,CAACC,CAAC,CAACU,IAAI,CAACV,CAAC,GAAGO,WAAW,GAAGL,WAAW,CAAC;QAC5CH,MAAM,CAACC,CAAC,CAACU,IAAI,CAACV,CAAC,GAAGO,WAAW,GAAGL,WAAW,CAAC;QAC5CH,MAAM,CAACE,CAAC,CAACS,IAAI,CAACT,CAAC,GAAGM,WAAW,GAAGF,WAAW,CAAC;QAC5CN,MAAM,CAACE,CAAC,CAACS,IAAI,CAACT,CAAC,GAAGM,WAAW,GAAGF,WAAW,CAAC;MAC9C,CAAC,CAAC;MAEF,OAAON,MAAM;IACf;EAAC;IAAApC,GAAA;IAAAC,GAAA,EAED,SAAAA,IAAA,EAAa;MACX,IAAA+C,cAAA,GAA4D,IAAI,CAACjB,OAAO;QAAhEkB,MAAM,GAAAD,cAAA,CAANC,MAAM;QAAAC,qBAAA,GAAAF,cAAA,CAAEG,OAAO;QAAPA,OAAO,GAAAD,qBAAA,cAAG,EAAE,GAAAA,qBAAA;QAAEhB,SAAS,GAAAc,cAAA,CAATd,SAAS;QAAEhC,IAAI,GAAA8C,cAAA,CAAJ9C,IAAI;QAAEkD,QAAQ,GAAAJ,cAAA,CAARI,QAAQ;MAEvD,IAAIH,MAAM,EAAE;QACV,OAAOA,MAAM;MACf;MAEA,IAAMI,KAAK,GAAG,CAACF,OAAO,EAAEjB,SAAS,GAAG,IAAI,CAACoB,WAAW,CAAC;MAErD,OAAOpE,WAAW,CAAC,CAACqE,IAAI,CAACC,GAAG,CAAA3D,KAAA,CAAR0D,IAAI,EAAAE,kBAAA,CAAQ,IAAI,CAACC,YAAY,CAACrB,CAAC,EAAC,EAAEkB,IAAI,CAACI,GAAG,CAAA9D,KAAA,CAAR0D,IAAI,EAAAE,kBAAA,CAAQ,IAAI,CAACC,YAAY,CAACrB,CAAC,EAAC,CAAC,EAAEgB,KAAK,CAAC;IACjG;EAAC;IAAArD,GAAA;IAAAC,GAAA,EAED,SAAAA,IAAA,EAAoC;MAClC,IAAA2D,cAAA,GAAmD,IAAI,CAAC7B,OAAO;QAAvD8B,MAAM,GAAAD,cAAA,CAANC,MAAM;QAAAC,qBAAA,GAAAF,cAAA,CAAEG,OAAO;QAAPA,OAAO,GAAAD,qBAAA,cAAG,EAAE,GAAAA,qBAAA;QAAE3B,UAAU,GAAAyB,cAAA,CAAVzB,UAAU;QAAEjC,IAAI,GAAA0D,cAAA,CAAJ1D,IAAI;MAE9C,IAAI2D,MAAM,EAAE;QACV,OAAOA,MAAM;MACf;MAEA,IAAMR,KAAK,GAAG,CAAClB,UAAU,GAAG4B,OAAO,EAAE,IAAI,CAACT,WAAW,CAAC;MAEtD,OAAOpE,WAAW,CAAC,CAACqE,IAAI,CAACC,GAAG,CAAA3D,KAAA,CAAR0D,IAAI,EAAAE,kBAAA,CAAQ,IAAI,CAACC,YAAY,CAACpB,CAAC,EAAC,EAAEiB,IAAI,CAACI,GAAG,CAAA9D,KAAA,CAAR0D,IAAI,EAAAE,kBAAA,CAAQ,IAAI,CAACC,YAAY,CAACpB,CAAC,EAAC,CAAC,EAAEe,KAAK,CAAC;IACjG;EAAC;IAAArD,GAAA;IAAA8C,KAAA,EAED,SAAAkB,mBAAA,EAAqB;MACnB,OAAO;QACLC,KAAK,EAAE;MACT,CAAC;IACH;EAAC;IAAAjE,GAAA;IAAA8C,KAAA,EAED,SAAAoB,YAAA,EAAc;MACZ,oBAAOlF,KAAA,CAAAmF,aAAA,CAAChF,MAAM;QAACkD,CAAC,EAAC,GAAG;QAACC,CAAC,EAAC,GAAG;QAACQ,KAAK,EAAC,OAAO;QAAC3B,KAAK,EAAE,OAAQ;QAACK,KAAK,EAAE;MAAQ,EAAG;IAC7E;EAAC;IAAAxB,GAAA;IAAA8C,KAAA,EAED,SAAAsB,cAAA,EAAgB;MACd,IAAQC,WAAW,GAAK,IAAI,CAACtC,OAAO,CAA5BsC,WAAW;MAEnB,IAAI,CAACA,WAAW,EAAE;QAChB,OAAO,IAAI;MACb;MAEA,oBACErF,KAAA,CAAAmF,aAAA,CAAChF,MAAM,CAACmF,OAAO,QACZ,UAAAC,KAAA,EAA0B;QAAA,IAAvBjE,KAAK,GAAAiE,KAAA,CAALjE,KAAK;UAAEJ,IAAI,GAAAqE,KAAA,CAAJrE,IAAI;QACb,OAAO;UACLsE,QAAQ,eACNxF,KAAA,CAAAmF,aAAA,CAAAnF,KAAA,CAAAyF,QAAA,qBACEzF,KAAA,CAAAmF,aAAA,CAAChF,MAAM,CAACmF,OAAO,CAACI,KAAK,QAAC,MAAI,CAAuB,eACjD1F,KAAA,CAAAmF,aAAA,CAAC7E,IAAI;YAACqF,GAAG,EAAC;UAAK,GAAC,SAAO,EAACzE,IAAI,CAACI,KAAK,CAAC,CAAC+B,CAAC,CAAQ,eAC7CrD,KAAA,CAAAmF,aAAA,CAAC7E,IAAI;YAACqF,GAAG,EAAC;UAAK,GAAC,SAAO,EAACzE,IAAI,CAACI,KAAK,CAAC,CAACgC,CAAC,CAAQ,eAC7CtD,KAAA,CAAAmF,aAAA,CAAC7E,IAAI;YAACqF,GAAG,EAAC;UAAK,GAAC,QAAM,EAACzE,IAAI,CAACI,KAAK,CAAC,CAACwC,KAAK,CAAQ;QAGtD,CAAC;MACH,CAAC,CACc;IAErB;EAAC;EAAA,OAAAvD,oBAAA;AAAA,EA7HgCF,aAAa;AAAAuF,eAAA,CAA1CrF,oBAAoB,iBACH,cAAc;AA+HrC,OAAO,IAAMsF,WAA4B,GAAG5F,eAAe,CAACM,oBAAoB,CAAC"}
@@ -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":""}
@@ -9,7 +9,7 @@ import React from 'react';
9
9
  import createComponent from 'intergalactic/core';
10
10
  import { scaleLinear, scaleTime } from 'd3-scale';
11
11
  // @ts-ignore
12
- import { minMax, ScatterPlot } from '../..';
12
+ import { minMax, ScatterPlot, getScatterPlotRadius } from '../..';
13
13
  import { AbstractChart } from './AbstractChart';
14
14
  import { Text } from 'intergalactic/typography';
15
15
  var ScatterPlotChartComponent = /*#__PURE__*/function (_AbstractChart) {
@@ -39,17 +39,19 @@ var ScatterPlotChartComponent = /*#__PURE__*/function (_AbstractChart) {
39
39
  marginY = _this$asProps$marginY === void 0 ? 30 : _this$asProps$marginY,
40
40
  plotWidth = _this$asProps.plotWidth,
41
41
  data = _this$asProps.data,
42
- groupKey = _this$asProps.groupKey;
42
+ groupKey = _this$asProps.groupKey,
43
+ valueKey = _this$asProps.valueKey;
43
44
  if (xScale) {
44
45
  return xScale;
45
46
  }
47
+ var radius = getScatterPlotRadius(valueKey) / this.getValueScale(_toConsumableArray(this.flatValues));
46
48
  var testItem = data[0][groupKey];
47
49
  var range = [marginY, plotWidth - this.plotPadding];
48
50
  var domain = minMax(data, groupKey);
49
51
  if (testItem instanceof Date && !Number.isNaN(testItem.getMilliseconds())) {
50
- return scaleTime([domain[0] * 0.8, domain[1] * 1.2], range);
52
+ return scaleTime([domain[0] - radius, domain[1] + radius], range);
51
53
  }
52
- return scaleLinear([domain[0] * 0.8, domain[1] * 1.2], range);
54
+ return scaleLinear([domain[0] - radius, domain[1] + radius], range);
53
55
  }
54
56
  }, {
55
57
  key: "yScale",
@@ -58,14 +60,16 @@ var ScatterPlotChartComponent = /*#__PURE__*/function (_AbstractChart) {
58
60
  yScale = _this$asProps2.yScale,
59
61
  _this$asProps2$margin = _this$asProps2.marginX,
60
62
  marginX = _this$asProps2$margin === void 0 ? 30 : _this$asProps2$margin,
61
- plotHeight = _this$asProps2.plotHeight;
63
+ plotHeight = _this$asProps2.plotHeight,
64
+ valueKey = _this$asProps2.valueKey;
62
65
  if (yScale) {
63
66
  return yScale;
64
67
  }
65
68
  var flatValues = this.flatValues;
66
- var max = Math.max.apply(Math, _toConsumableArray(flatValues));
67
- var min = Math.min.apply(Math, _toConsumableArray(flatValues));
68
- return scaleLinear().range([plotHeight - marginX, this.plotPadding]).domain([min * 0.8, max * 1.1]);
69
+ var radius = getScatterPlotRadius(valueKey) / this.getValueScale(_toConsumableArray(flatValues));
70
+ var max = Math.max.apply(Math, _toConsumableArray(flatValues)) + radius;
71
+ var min = Math.min.apply(Math, _toConsumableArray(flatValues)) - radius;
72
+ return scaleLinear().range([plotHeight - marginX, this.plotPadding]).domain([min, max]);
69
73
  }
70
74
  }, {
71
75
  key: "flatValues",
@@ -145,6 +149,10 @@ var ScatterPlotChartComponent = /*#__PURE__*/function (_AbstractChart) {
145
149
  }(AbstractChart);
146
150
  _defineProperty(ScatterPlotChartComponent, "displayName", 'Chart.ScatterPlot');
147
151
  _defineProperty(ScatterPlotChartComponent, "defaultProps", {
152
+ direction: 'column',
153
+ showXAxis: true,
154
+ showYAxis: true,
155
+ showTooltip: true,
148
156
  showLegend: false
149
157
  });
150
158
  export var ScatterPlotChart = createComponent(ScatterPlotChartComponent);
@@ -1 +1 @@
1
- {"version":3,"file":"ScatterPlotChart.js","names":["React","createComponent","scaleLinear","scaleTime","minMax","ScatterPlot","AbstractChart","Text","ScatterPlotChartComponent","_AbstractChart","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","key","get","_this$props","props","data","groupKey","valueKey","Object","keys","filter","_this$asProps","asProps","xScale","_this$asProps$marginY","marginY","plotWidth","testItem","range","plotPadding","domain","Date","Number","isNaN","getMilliseconds","_this$asProps2","yScale","_this$asProps2$margin","marginX","plotHeight","flatValues","max","Math","_toConsumableArray","min","_this$asProps3","reduce","result","item","entries","forEach","_ref","_ref2","_slicedToArray","value","add","Set","renderChart","_this$asProps4","dataDefinitions","state","map","checked","createElement","x","y","id","color","renderTooltip","_this","_this$asProps5","showTooltip","Tooltip","wMin","_ref3","index","children","Fragment","Dot","tag","tooltipValueFormatter","_defineProperty","showLegend","ScatterPlotChart"],"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","createComponent","scaleLinear","scaleTime","minMax","ScatterPlot","getScatterPlotRadius","AbstractChart","Text","ScatterPlotChartComponent","_AbstractChart","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","key","get","_this$props","props","data","groupKey","valueKey","Object","keys","filter","_this$asProps","asProps","xScale","_this$asProps$marginY","marginY","plotWidth","radius","getValueScale","_toConsumableArray","flatValues","testItem","range","plotPadding","domain","Date","Number","isNaN","getMilliseconds","_this$asProps2","yScale","_this$asProps2$margin","marginX","plotHeight","max","Math","min","_this$asProps3","reduce","result","item","entries","forEach","_ref","_ref2","_slicedToArray","value","add","Set","renderChart","_this$asProps4","dataDefinitions","state","map","checked","createElement","x","y","id","color","renderTooltip","_this","_this$asProps5","showTooltip","Tooltip","wMin","_ref3","index","children","Fragment","Dot","tag","tooltipValueFormatter","_defineProperty","direction","showXAxis","showYAxis","showLegend","ScatterPlotChart"],"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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"}
@@ -19,7 +19,7 @@ export { default as Tooltip } from './Tooltip';
19
19
  export { default as ResponsiveContainer } from './ResponsiveContainer';
20
20
  export { default as ReferenceLine } from './ReferenceLine';
21
21
  export { HoverLine, HoverRect } from './Hover';
22
- export { minMax, interpolateValue } from './utils';
22
+ export { minMax, interpolateValue, getBubbleChartValueScale, getScatterPlotRadius } from './utils';
23
23
  export { colors } from './color';
24
24
  export { makeDataHintsContainer } from './a11y/hints';
25
25
  export { PatternFill, PatternSymbol, getPatternSymbolSize } from './Pattern';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","Plot","ChartLegend","ChartLegendTable","Chart","XAxis","YAxis","Line","Bar","HorizontalBar","GroupBar","StackBar","Area","StackedArea","ScatterPlot","Bubble","RadialTree","Donut","Venn","Radar","getLabelOffsetPosition","Tooltip","ResponsiveContainer","ReferenceLine","HoverLine","HoverRect","minMax","interpolateValue","colors","makeDataHintsContainer","PatternFill","PatternSymbol","getPatternSymbolSize"],"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,SAASA,OAAO,IAAIC,IAAI,QAAQ,QAAQ;AACxC,SAASC,WAAW,EAAEC,gBAAgB,QAAQ,yBAAyB;AACvE,SAASH,OAAO,IAAII,KAAK,QAAQ,mBAAmB;AACpD,SAASC,KAAK,EAAEC,KAAK,QAAQ,QAAQ;AAErC,SAASN,OAAO,IAAIO,IAAI,QAAQ,QAAQ;AAExC,SAASP,OAAO,IAAIQ,GAAG,QAAQ,OAAO;AACtC,SAASR,OAAO,IAAIS,aAAa,QAAQ,iBAAiB;AAC1D,SAAST,OAAO,IAAIU,QAAQ,QAAQ,YAAY;AAChD,SAASV,OAAO,IAAIW,QAAQ,QAAQ,YAAY;AAChD,SAASX,OAAO,IAAIY,IAAI,QAAQ,QAAQ;AACxC,SAASZ,OAAO,IAAIa,WAAW,QAAQ,eAAe;AACtD,SAASb,OAAO,IAAIc,WAAW,QAAQ,eAAe;AACtD,SAASd,OAAO,IAAIe,MAAM,QAAQ,UAAU;AAC5C,SAASf,OAAO,IAAIgB,UAAU,QAAQ,cAAc;AACpD,SAAShB,OAAO,IAAIiB,KAAK,QAAQ,SAAS;AAC1C,SAASjB,OAAO,IAAIkB,IAAI,QAAQ,QAAQ;AACxC,SAASlB,OAAO,IAAImB,KAAK,EAAEC,sBAAsB,QAAQ,SAAS;AAElE,SAASpB,OAAO,IAAIqB,OAAO,QAAQ,WAAW;AAE9C,SAASrB,OAAO,IAAIsB,mBAAmB,QAAQ,uBAAuB;AACtE,SAAStB,OAAO,IAAIuB,aAAa,QAAQ,iBAAiB;AAE1D,SAASC,SAAS,EAAEC,SAAS,QAAQ,SAAS;AAE9C,SAASC,MAAM,EAAEC,gBAAgB,QAAQ,SAAS;AAClD,SAASC,MAAM,QAAQ,SAAS;AAEhC,SAASC,sBAAsB,QAAQ,cAAc;AAErD,SAASC,WAAW,EAAEC,aAAa,EAAEC,oBAAoB,QAAQ,WAAW"}
1
+ {"version":3,"file":"index.js","names":["default","Plot","ChartLegend","ChartLegendTable","Chart","XAxis","YAxis","Line","Bar","HorizontalBar","GroupBar","StackBar","Area","StackedArea","ScatterPlot","Bubble","RadialTree","Donut","Venn","Radar","getLabelOffsetPosition","Tooltip","ResponsiveContainer","ReferenceLine","HoverLine","HoverRect","minMax","interpolateValue","getBubbleChartValueScale","getScatterPlotRadius","colors","makeDataHintsContainer","PatternFill","PatternSymbol","getPatternSymbolSize"],"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,SAASA,OAAO,IAAIC,IAAI,QAAQ,QAAQ;AACxC,SAASC,WAAW,EAAEC,gBAAgB,QAAQ,yBAAyB;AACvE,SAASH,OAAO,IAAII,KAAK,QAAQ,mBAAmB;AACpD,SAASC,KAAK,EAAEC,KAAK,QAAQ,QAAQ;AAErC,SAASN,OAAO,IAAIO,IAAI,QAAQ,QAAQ;AAExC,SAASP,OAAO,IAAIQ,GAAG,QAAQ,OAAO;AACtC,SAASR,OAAO,IAAIS,aAAa,QAAQ,iBAAiB;AAC1D,SAAST,OAAO,IAAIU,QAAQ,QAAQ,YAAY;AAChD,SAASV,OAAO,IAAIW,QAAQ,QAAQ,YAAY;AAChD,SAASX,OAAO,IAAIY,IAAI,QAAQ,QAAQ;AACxC,SAASZ,OAAO,IAAIa,WAAW,QAAQ,eAAe;AACtD,SAASb,OAAO,IAAIc,WAAW,QAAQ,eAAe;AACtD,SAASd,OAAO,IAAIe,MAAM,QAAQ,UAAU;AAC5C,SAASf,OAAO,IAAIgB,UAAU,QAAQ,cAAc;AACpD,SAAShB,OAAO,IAAIiB,KAAK,QAAQ,SAAS;AAC1C,SAASjB,OAAO,IAAIkB,IAAI,QAAQ,QAAQ;AACxC,SAASlB,OAAO,IAAImB,KAAK,EAAEC,sBAAsB,QAAQ,SAAS;AAElE,SAASpB,OAAO,IAAIqB,OAAO,QAAQ,WAAW;AAE9C,SAASrB,OAAO,IAAIsB,mBAAmB,QAAQ,uBAAuB;AACtE,SAAStB,OAAO,IAAIuB,aAAa,QAAQ,iBAAiB;AAE1D,SAASC,SAAS,EAAEC,SAAS,QAAQ,SAAS;AAE9C,SAASC,MAAM,EAAEC,gBAAgB,EAAEC,wBAAwB,EAAEC,oBAAoB,QAAQ,SAAS;AAClG,SAASC,MAAM,QAAQ,SAAS;AAEhC,SAASC,sBAAsB,QAAQ,cAAc;AAErD,SAASC,WAAW,EAAEC,aAAa,EAAEC,oBAAoB,QAAQ,WAAW"}
@@ -1,8 +1,9 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
1
2
  import _createForOfIteratorHelper from "@babel/runtime/helpers/createForOfIteratorHelper";
2
3
  import _objectSpread from "@babel/runtime/helpers/objectSpread2";
3
4
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
5
  import { extent, bisector } from 'd3-array';
5
- import { scaleQuantize, scaleBand } from 'd3-scale';
6
+ import { scaleQuantize, scaleBand, scaleSqrt } from 'd3-scale';
6
7
  var CONSTANT = {
7
8
  VIRTUAL_ELEMENT: Symbol('VIRTUAL_ELEMENT')
8
9
  };
@@ -186,4 +187,13 @@ export var getChartDefaultColorName = function getChartDefaultColorName(index) {
186
187
  if (index > 24) index %= 24;
187
188
  return "chart-palette-order-".concat(index);
188
189
  };
190
+ export var getBubbleChartValueScale = function getBubbleChartValueScale(data, key) {
191
+ var z = scaleSqrt().domain([0, Math.max.apply(Math, _toConsumableArray(data.map(function (el) {
192
+ return el[key];
193
+ })))]).range([5.5, 50.5]);
194
+ return z;
195
+ };
196
+ export var getScatterPlotRadius = function getScatterPlotRadius(valueKey) {
197
+ return valueKey !== undefined ? 12 : 5.5;
198
+ };
189
199
  //# sourceMappingURL=utils.js.map