@semcore/d3-chart 3.37.2 → 3.38.0-prerelease.0

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 (96) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/lib/cjs/Area.js +11 -11
  3. package/lib/cjs/Axis.js +14 -14
  4. package/lib/cjs/Bar.js +10 -10
  5. package/lib/cjs/Bubble.js +12 -12
  6. package/lib/cjs/Donut.js +9 -9
  7. package/lib/cjs/Dots.js +10 -10
  8. package/lib/cjs/Dots.js.map +1 -1
  9. package/lib/cjs/HorizontalBar.js +10 -10
  10. package/lib/cjs/Hover.js +13 -5
  11. package/lib/cjs/Hover.js.map +1 -1
  12. package/lib/cjs/Line.js +9 -9
  13. package/lib/cjs/Plot.js +3 -3
  14. package/lib/cjs/Radar.js +19 -19
  15. package/lib/cjs/RadialTree.js +11 -11
  16. package/lib/cjs/ReferenceLine.js +9 -9
  17. package/lib/cjs/ScatterPlot.js +9 -9
  18. package/lib/cjs/Tooltip.js +13 -11
  19. package/lib/cjs/Tooltip.js.map +1 -1
  20. package/lib/cjs/Venn.js +9 -9
  21. package/lib/cjs/a11y/PlotA11yModule.js +2 -2
  22. package/lib/cjs/a11y/PlotA11yView.js +2 -2
  23. package/lib/cjs/component/Chart/AbstractChart.js +41 -24
  24. package/lib/cjs/component/Chart/AbstractChart.js.map +1 -1
  25. package/lib/cjs/component/Chart/AbstractChart.type.js.map +1 -1
  26. package/lib/cjs/component/Chart/BubbleChart.js +2 -2
  27. package/lib/cjs/component/Chart/BubbleChart.js.map +1 -1
  28. package/lib/cjs/component/Chart/CigaretteChart.js +325 -0
  29. package/lib/cjs/component/Chart/CigaretteChart.js.map +1 -0
  30. package/lib/cjs/component/Chart/CigaretteChart.type.js +2 -0
  31. package/lib/cjs/component/Chart/CigaretteChart.type.js.map +1 -0
  32. package/lib/cjs/component/Chart/index.js +3 -1
  33. package/lib/cjs/component/Chart/index.js.map +1 -1
  34. package/lib/cjs/component/ChartLegend/LegendFlex/LegendFlex.js +4 -4
  35. package/lib/cjs/component/ChartLegend/LegendFlex/legend-flex.shadow.css +2 -1
  36. package/lib/cjs/component/ChartLegend/LegendItem/LegendItem.js +17 -17
  37. package/lib/cjs/component/ChartLegend/LegendTable/LegendTable.js +6 -6
  38. package/lib/cjs/component/Cigarette/Cigarette.js +169 -0
  39. package/lib/cjs/component/Cigarette/Cigarette.js.map +1 -0
  40. package/lib/cjs/style/bar.shadow.css +1 -1
  41. package/lib/cjs/types/index.d.js +12 -0
  42. package/lib/cjs/types/index.d.js.map +1 -1
  43. package/lib/cjs/utils.js +32 -4
  44. package/lib/cjs/utils.js.map +1 -1
  45. package/lib/es6/Area.js +11 -11
  46. package/lib/es6/Axis.js +14 -14
  47. package/lib/es6/Bar.js +10 -10
  48. package/lib/es6/Bubble.js +12 -12
  49. package/lib/es6/Donut.js +9 -9
  50. package/lib/es6/Dots.js +10 -10
  51. package/lib/es6/Dots.js.map +1 -1
  52. package/lib/es6/HorizontalBar.js +10 -10
  53. package/lib/es6/Hover.js +13 -5
  54. package/lib/es6/Hover.js.map +1 -1
  55. package/lib/es6/Line.js +9 -9
  56. package/lib/es6/Plot.js +3 -3
  57. package/lib/es6/Radar.js +19 -19
  58. package/lib/es6/RadialTree.js +11 -11
  59. package/lib/es6/ReferenceLine.js +9 -9
  60. package/lib/es6/ScatterPlot.js +9 -9
  61. package/lib/es6/Tooltip.js +13 -11
  62. package/lib/es6/Tooltip.js.map +1 -1
  63. package/lib/es6/Venn.js +9 -9
  64. package/lib/es6/a11y/PlotA11yModule.js +2 -2
  65. package/lib/es6/a11y/PlotA11yView.js +2 -2
  66. package/lib/es6/component/Chart/AbstractChart.js +41 -24
  67. package/lib/es6/component/Chart/AbstractChart.js.map +1 -1
  68. package/lib/es6/component/Chart/AbstractChart.type.js.map +1 -1
  69. package/lib/es6/component/Chart/BubbleChart.js +2 -2
  70. package/lib/es6/component/Chart/BubbleChart.js.map +1 -1
  71. package/lib/es6/component/Chart/CigaretteChart.js +316 -0
  72. package/lib/es6/component/Chart/CigaretteChart.js.map +1 -0
  73. package/lib/es6/component/Chart/CigaretteChart.type.js +2 -0
  74. package/lib/es6/component/Chart/CigaretteChart.type.js.map +1 -0
  75. package/lib/es6/component/Chart/index.js +3 -1
  76. package/lib/es6/component/Chart/index.js.map +1 -1
  77. package/lib/es6/component/ChartLegend/LegendFlex/LegendFlex.js +4 -4
  78. package/lib/es6/component/ChartLegend/LegendFlex/legend-flex.shadow.css +2 -1
  79. package/lib/es6/component/ChartLegend/LegendItem/LegendItem.js +17 -17
  80. package/lib/es6/component/ChartLegend/LegendTable/LegendTable.js +6 -6
  81. package/lib/es6/component/Cigarette/Cigarette.js +161 -0
  82. package/lib/es6/component/Cigarette/Cigarette.js.map +1 -0
  83. package/lib/es6/style/bar.shadow.css +1 -1
  84. package/lib/es6/types/index.d.js +2 -0
  85. package/lib/es6/types/index.d.js.map +1 -1
  86. package/lib/es6/utils.js +32 -4
  87. package/lib/es6/utils.js.map +1 -1
  88. package/lib/types/component/Chart/AbstractChart.d.ts +2 -2
  89. package/lib/types/component/Chart/AbstractChart.type.d.ts +5 -0
  90. package/lib/types/component/Chart/CigaretteChart.d.ts +2 -0
  91. package/lib/types/component/Chart/CigaretteChart.type.d.ts +15 -0
  92. package/lib/types/component/Chart/index.d.ts +1 -0
  93. package/lib/types/component/Cigarette/Cigarette.d.ts +2 -0
  94. package/lib/types/index.d.ts +5 -1
  95. package/lib/types/utils.d.ts +1 -1
  96. package/package.json +7 -7
@@ -0,0 +1,161 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/createClass";
3
+ import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
4
+ import _inherits from "@babel/runtime/helpers/inherits";
5
+ import _createSuper from "@babel/runtime/helpers/createSuper";
6
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
7
+ import React from 'react';
8
+ import { Component, sstyled } from '@semcore/core';
9
+ import uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';
10
+ import createElement from '../../createElement';
11
+ import { roundedPath } from '../../utils';
12
+ import { PatternFill } from '../../Pattern';
13
+ import { callAllEventHandlers } from '@semcore/utils/lib/assignProps';
14
+ var CigaretteBarRoot = /*#__PURE__*/function (_Component) {
15
+ _inherits(CigaretteBarRoot, _Component);
16
+ var _super = _createSuper(CigaretteBarRoot);
17
+ function CigaretteBarRoot() {
18
+ var _this;
19
+ _classCallCheck(this, CigaretteBarRoot);
20
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
21
+ args[_key] = arguments[_key];
22
+ }
23
+ _this = _super.call.apply(_super, [this].concat(args));
24
+ _defineProperty(_assertThisInitialized(_this), "refElement", /*#__PURE__*/React.createRef());
25
+ _defineProperty(_assertThisInitialized(_this), "handleMouseMove", function () {
26
+ _this.handlers.hovered(true);
27
+ _this.setCursor('pointer');
28
+ });
29
+ _defineProperty(_assertThisInitialized(_this), "handleMouseLeave", function () {
30
+ _this.handlers.hovered(false);
31
+ _this.setCursor('auto');
32
+ });
33
+ _defineProperty(_assertThisInitialized(_this), "handleClick", function (e) {
34
+ var _this$asProps = _this.asProps,
35
+ onClick = _this$asProps.onClick,
36
+ dataKey = _this$asProps.dataKey;
37
+ if (onClick && e.currentTarget.tagName === 'path') {
38
+ e.stopPropagation();
39
+ onClick(dataKey, e);
40
+ return false;
41
+ }
42
+ });
43
+ _defineProperty(_assertThisInitialized(_this), "setCursor", function (value) {
44
+ var onClick = _this.asProps.onClick;
45
+ if (onClick) {
46
+ var _this$refElement$curr;
47
+ (_this$refElement$curr = _this.refElement.current) === null || _this$refElement$curr === void 0 ? void 0 : _this$refElement$curr.style.setProperty('cursor', value);
48
+ }
49
+ });
50
+ return _this;
51
+ }
52
+ _createClass(CigaretteBarRoot, [{
53
+ key: "uncontrolledProps",
54
+ value: function uncontrolledProps() {
55
+ return {
56
+ hovered: false
57
+ };
58
+ }
59
+ }, {
60
+ key: "getRect",
61
+ value: function getRect() {
62
+ var _this$asProps2 = this.asProps,
63
+ x = _this$asProps2.x,
64
+ y = _this$asProps2.y,
65
+ width = _this$asProps2.width,
66
+ height = _this$asProps2.height,
67
+ radius = _this$asProps2.r,
68
+ direction = _this$asProps2.direction,
69
+ index = _this$asProps2.index,
70
+ hovered = _this$asProps2.hovered;
71
+ var xV = x;
72
+ var yV = y;
73
+ var widthV = width;
74
+ var heightV = height;
75
+ if (hovered && direction === 'horizontal') {
76
+ yV = yV - 2;
77
+ heightV = heightV + 4;
78
+ }
79
+ if (hovered && direction === 'vertical') {
80
+ xV = xV - 2;
81
+ widthV = widthV + 4;
82
+ }
83
+ if (radius) {
84
+ if (direction === 'horizontal') {
85
+ if (index === 0) {
86
+ return roundedPath(xV, yV, widthV, heightV, radius, true, false, true, false);
87
+ } else {
88
+ return roundedPath(xV, yV, widthV, heightV, radius, false, true, false, true);
89
+ }
90
+ } else {
91
+ if (index === 0) {
92
+ return roundedPath(xV, yV, widthV, heightV, radius, true, true, false, false);
93
+ } else {
94
+ return roundedPath(xV, yV, widthV, heightV, radius, false, false, true, true);
95
+ }
96
+ }
97
+ }
98
+ return roundedPath(xV, yV, widthV, heightV, radius);
99
+ }
100
+ }, {
101
+ key: "render",
102
+ value: function render() {
103
+ var _ref;
104
+ // @ts-ignore
105
+ var SBar = this.Element;
106
+ var _this$asProps3 = this.asProps,
107
+ styles = _this$asProps3.styles,
108
+ color = _this$asProps3.color,
109
+ data = _this$asProps3.data,
110
+ dataKey = _this$asProps3.dataKey,
111
+ index = _this$asProps3.index,
112
+ hide = _this$asProps3.hide,
113
+ uid = _this$asProps3.uid,
114
+ duration = _this$asProps3.duration,
115
+ onMouseMove = _this$asProps3.onMouseMove,
116
+ onMouseLeave = _this$asProps3.onMouseLeave,
117
+ transparent = _this$asProps3.transparent,
118
+ resolveColor = _this$asProps3.resolveColor,
119
+ patterns = _this$asProps3.patterns;
120
+ var dSvg = this.getRect();
121
+ return /*#__PURE__*/React.createElement(React.Fragment, {
122
+ key: "horizontal-bar-".concat(index)
123
+ }, (_ref = sstyled(styles), /*#__PURE__*/React.createElement(SBar, _ref.cn("SBar", {
124
+ "ref": this.refElement,
125
+ "aria-hidden": true,
126
+ "render": 'path',
127
+ "clipPath": "url(#".concat(uid, ")"),
128
+ "__excludeProps": ['data', 'scale', 'value', 'offset'],
129
+ "childrenPosition": 'above',
130
+ "value": data[dataKey],
131
+ "index": index,
132
+ "hide": hide,
133
+ "fill": resolveColor(color),
134
+ "pattern": patterns ? "url(#".concat(uid, "-").concat(index, "-pattern)") : undefined,
135
+ "transparent": transparent,
136
+ "d": dSvg,
137
+ "use:duration": "".concat(duration, "ms"),
138
+ "onMouseMove": callAllEventHandlers(onMouseMove, this.handleMouseMove),
139
+ "onMouseLeave": callAllEventHandlers(onMouseLeave, this.handleMouseLeave),
140
+ "use:onClick": this.handleClick
141
+ }))), patterns && /*#__PURE__*/React.createElement(PatternFill, _ref.cn("PatternFill", {
142
+ "id": "".concat(uid, "-").concat(index, "-pattern"),
143
+ "patternKey": color,
144
+ "color": resolveColor(color),
145
+ "patterns": patterns
146
+ })));
147
+ }
148
+ }]);
149
+ return CigaretteBarRoot;
150
+ }(Component);
151
+ _defineProperty(CigaretteBarRoot, "displayName", 'Cigarette.BarItem');
152
+ _defineProperty(CigaretteBarRoot, "enhance", [uniqueIDEnhancement()]);
153
+ _defineProperty(CigaretteBarRoot, "style", {});
154
+ _defineProperty(CigaretteBarRoot, "defaultProps", {
155
+ offset: [0, 0],
156
+ duration: 500,
157
+ direction: 'horizontal',
158
+ defaultHovered: false
159
+ });
160
+ export default createElement(CigaretteBarRoot);
161
+ //# sourceMappingURL=Cigarette.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cigarette.js","names":["React","Component","sstyled","uniqueIDEnhancement","createElement","roundedPath","PatternFill","callAllEventHandlers","CigaretteBarRoot","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","createRef","handlers","hovered","setCursor","e","_this$asProps","asProps","onClick","dataKey","currentTarget","tagName","stopPropagation","value","_this$refElement$curr","refElement","current","style","setProperty","_createClass","key","uncontrolledProps","getRect","_this$asProps2","x","y","width","height","radius","r","direction","index","xV","yV","widthV","heightV","render","_ref","SBar","Element","_this$asProps3","styles","color","data","hide","uid","duration","onMouseMove","onMouseLeave","transparent","resolveColor","patterns","dSvg","Fragment","cn","undefined","handleMouseMove","handleMouseLeave","handleClick","offset","defaultHovered"],"sources":["../../../../src/component/Cigarette/Cigarette.tsx"],"sourcesContent":["import React from 'react';\nimport { Component, sstyled } from '@semcore/core';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport createElement from '../../createElement';\nimport { roundedPath } from '../../utils';\nimport { PatternFill } from '../../Pattern';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\n\nclass CigaretteBarRoot extends Component<any> {\n static displayName = 'Cigarette.BarItem';\n static enhance = [uniqueIDEnhancement()];\n static style = {};\n\n static defaultProps = {\n offset: [0, 0],\n duration: 500,\n direction: 'horizontal',\n defaultHovered: false,\n };\n\n refElement = React.createRef<SVGPathElement>();\n\n uncontrolledProps() {\n return {\n hovered: false,\n };\n }\n\n handleMouseMove = () => {\n this.handlers.hovered(true);\n this.setCursor('pointer');\n };\n\n handleMouseLeave = () => {\n this.handlers.hovered(false);\n this.setCursor('auto');\n };\n\n handleClick = (e: React.SyntheticEvent) => {\n const { onClick, dataKey } = this.asProps;\n\n if (onClick && e.currentTarget.tagName === 'path') {\n e.stopPropagation();\n\n onClick(dataKey, e);\n\n return false;\n }\n };\n\n setCursor = (value: 'pointer' | 'auto') => {\n const { onClick } = this.asProps;\n\n if (onClick) {\n this.refElement.current?.style.setProperty('cursor', value);\n }\n };\n\n getRect() {\n const { x, y, width, height, r: radius, direction, index, hovered } = this.asProps;\n\n let xV = x;\n let yV = y;\n let widthV = width;\n let heightV = height;\n\n if (hovered && direction === 'horizontal') {\n yV = yV - 2;\n heightV = heightV + 4;\n }\n\n if (hovered && direction === 'vertical') {\n xV = xV - 2;\n widthV = widthV + 4;\n }\n\n if (radius) {\n if (direction === 'horizontal') {\n if (index === 0) {\n return roundedPath(xV, yV, widthV, heightV, radius, true, false, true, false);\n } else {\n return roundedPath(xV, yV, widthV, heightV, radius, false, true, false, true);\n }\n } else {\n if (index === 0) {\n return roundedPath(xV, yV, widthV, heightV, radius, true, true, false, false);\n } else {\n return roundedPath(xV, yV, widthV, heightV, radius, false, false, true, true);\n }\n }\n }\n\n return roundedPath(xV, yV, widthV, heightV, radius);\n }\n\n render() {\n // @ts-ignore\n const SBar = this.Element;\n const {\n styles,\n color,\n data,\n dataKey,\n index,\n hide,\n uid,\n duration,\n onMouseMove,\n onMouseLeave,\n transparent,\n resolveColor,\n patterns,\n } = this.asProps;\n\n const dSvg = this.getRect();\n\n return (\n <React.Fragment key={`horizontal-bar-${index}`}>\n {sstyled(styles)(\n <SBar\n ref={this.refElement}\n aria-hidden\n render='path'\n clipPath={`url(#${uid})`}\n __excludeProps={['data', 'scale', 'value', 'offset']}\n childrenPosition='above'\n value={data[dataKey]}\n index={index}\n hide={hide}\n fill={resolveColor(color)}\n pattern={patterns ? `url(#${uid}-${index}-pattern)` : undefined}\n transparent={transparent}\n d={dSvg}\n use:duration={`${duration}ms`}\n onMouseMove={callAllEventHandlers(onMouseMove, this.handleMouseMove)}\n onMouseLeave={callAllEventHandlers(onMouseLeave, this.handleMouseLeave)}\n use:onClick={this.handleClick}\n />,\n )}\n {patterns && (\n <PatternFill\n id={`${uid}-${index}-pattern`}\n patternKey={color}\n color={resolveColor(color)}\n patterns={patterns}\n />\n )}\n </React.Fragment>\n );\n }\n}\n\nexport default createElement(CigaretteBarRoot);\n"],"mappings":"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"}
@@ -26,5 +26,5 @@ SBar[transparent] {
26
26
  }
27
27
 
28
28
  SBackground {
29
- fill: var(--intergalactic-chart-palette-order-other-data, #c4c7cf);
29
+ fill: var(--intergalactic-chart-grid-bar-chart-base-bg, #e0e1e9);
30
30
  }
@@ -1,4 +1,5 @@
1
1
  // Utils
2
+ // @ts-ignore
2
3
 
3
4
  export { makeDataHintsContainer } from './a11y/hints';
4
5
 
@@ -75,4 +76,5 @@ export * from './component/Chart/DonutChart.type';
75
76
  export * from './component/Chart/VennChart.type';
76
77
  export * from './component/Chart/RadarChart.type';
77
78
  export * from './component/Chart/ScatterPlotChart.type';
79
+ export * from './component/Chart/CigaretteChart.type';
78
80
  //# sourceMappingURL=index.d.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.js","names":["makeDataHintsContainer","default","Plot","ResponsiveContainer","Line","Bar","HorizontalBar","GroupBar","StackBar","Area","StackedArea","Radar","Donut","Tooltip","ScatterPlot","Bubble","ReferenceLine","Venn","RadialTree","ChartLegend","ChartLegendTable","Chart"],"sources":["../../../src/types/index.d.ts"],"sourcesContent":["// Utils\nexport declare function minMax(data: any, key: string | number): any;\nexport declare const interpolateValue: Symbol;\nexport declare function calculateBubbleDomain(\n data: Array<{ value: number; x: number; y: number }>,\n key: 'x' | 'y',\n range: [number, number],\n): [min: number, max: number];\n\nexport { makeDataHintsContainer } from './a11y/hints';\n\n// Color\n/**\n * @deprecated\n * This export will be removed in the next major release.\n */\nexport declare const colors: { [key: string]: string };\n\nexport { default as Plot } from './Plot';\nexport * from './Plot';\n\nexport * from './Axis';\nexport * from './Hover';\n\nexport { default as ResponsiveContainer } from './ResponsiveContainer';\nexport * from './ResponsiveContainer';\n\nexport { default as Line } from './Line';\nexport * from './Line';\n\nexport { default as Bar } from './Bar';\nexport * from './Bar';\n\nexport { default as HorizontalBar } from './HorizontalBar';\nexport * from './HorizontalBar';\n\nexport { default as GroupBar } from './GroupBar';\nexport * from './GroupBar';\n\nexport { default as StackBar } from './StackBar';\nexport * from './StackBar';\n\nexport { default as Area } from './Area';\nexport * from './Area';\n\nexport { default as StackedArea } from './StackedArea';\nexport * from './StackedArea';\n\nexport { default as Radar } from './Radar';\nexport * from './Radar';\n\nexport { default as Donut } from './Donut';\nexport * from './Donut';\n\nexport { default as Tooltip } from './Tooltip';\nexport * from './Tooltip';\n\nexport { default as ScatterPlot } from './ScatterPlot';\nexport * from './ScatterPlot';\n\nexport { default as Bubble } from './Bubble';\nexport * from './Bubble';\n\nexport { default as ReferenceLine } from './ReferenceLine';\nexport * from './ReferenceLine';\n\nexport { default as Venn } from './Venn';\nexport * from './Venn';\n\n/** It becomes resolvable after building and moving file to lib dir */\n\n// @ts-ignore\nexport { default as RadialTree } from './RadialTree';\n\n// @ts-ignore\nexport * from './RadialTree';\n\n// @ts-ignore\nexport { ChartLegend, ChartLegendTable } from './component/ChartLegend';\n\n// @ts-ignore\nexport * from './component/ChartLegend/LegendFlex/LegendFlex.type';\n// @ts-ignore\nexport * from './component/ChartLegend/LegendTable/LegendTable.type';\n// @ts-ignore\nexport * from './component/ChartLegend/LegendItem/LegendItem.type';\n\n// @ts-ignore\nexport * from './Pattern';\n\nexport { default as Chart } from './component/Chart';\nexport * from './component/Chart/AbstractChart.type';\nexport * from './component/Chart/LineChart.type';\nexport * from './component/Chart/BarChart.type';\nexport * from './component/Chart/HistogramChart.type';\nexport * from './component/Chart/ScatterPlotChart.type';\nexport * from './component/Chart/AreaChart.type';\nexport * from './component/Chart/BubbleChart.type';\nexport * from './component/Chart/DonutChart.type';\nexport * from './component/Chart/VennChart.type';\nexport * from './component/Chart/RadarChart.type';\nexport * from './component/Chart/ScatterPlotChart.type';\n"],"mappings":"AAAA;;AASA,SAASA,sBAAsB,QAAQ,cAAc;;AAErD;AACA;AACA;AACA;AACA;;AAGA,SAASC,OAAO,IAAIC,IAAI,QAAQ,QAAQ;AACxC,cAAc,QAAQ;AAEtB,cAAc,QAAQ;AACtB,cAAc,SAAS;AAEvB,SAASD,OAAO,IAAIE,mBAAmB,QAAQ,uBAAuB;AACtE,cAAc,uBAAuB;AAErC,SAASF,OAAO,IAAIG,IAAI,QAAQ,QAAQ;AACxC,cAAc,QAAQ;AAEtB,SAASH,OAAO,IAAII,GAAG,QAAQ,OAAO;AACtC,cAAc,OAAO;AAErB,SAASJ,OAAO,IAAIK,aAAa,QAAQ,iBAAiB;AAC1D,cAAc,iBAAiB;AAE/B,SAASL,OAAO,IAAIM,QAAQ,QAAQ,YAAY;AAChD,cAAc,YAAY;AAE1B,SAASN,OAAO,IAAIO,QAAQ,QAAQ,YAAY;AAChD,cAAc,YAAY;AAE1B,SAASP,OAAO,IAAIQ,IAAI,QAAQ,QAAQ;AACxC,cAAc,QAAQ;AAEtB,SAASR,OAAO,IAAIS,WAAW,QAAQ,eAAe;AACtD,cAAc,eAAe;AAE7B,SAAST,OAAO,IAAIU,KAAK,QAAQ,SAAS;AAC1C,cAAc,SAAS;AAEvB,SAASV,OAAO,IAAIW,KAAK,QAAQ,SAAS;AAC1C,cAAc,SAAS;AAEvB,SAASX,OAAO,IAAIY,OAAO,QAAQ,WAAW;AAC9C,cAAc,WAAW;AAEzB,SAASZ,OAAO,IAAIa,WAAW,QAAQ,eAAe;AACtD,cAAc,eAAe;AAE7B,SAASb,OAAO,IAAIc,MAAM,QAAQ,UAAU;AAC5C,cAAc,UAAU;AAExB,SAASd,OAAO,IAAIe,aAAa,QAAQ,iBAAiB;AAC1D,cAAc,iBAAiB;AAE/B,SAASf,OAAO,IAAIgB,IAAI,QAAQ,QAAQ;AACxC,cAAc,QAAQ;;AAEtB;;AAEA;AACA,SAAShB,OAAO,IAAIiB,UAAU,QAAQ,cAAc;;AAEpD;AACA,cAAc,cAAc;;AAE5B;AACA,SAASC,WAAW,EAAEC,gBAAgB,QAAQ,yBAAyB;;AAEvE;AACA,cAAc,oDAAoD;AAClE;AACA,cAAc,sDAAsD;AACpE;AACA,cAAc,oDAAoD;;AAElE;AACA,cAAc,WAAW;AAEzB,SAASnB,OAAO,IAAIoB,KAAK,QAAQ,mBAAmB;AACpD,cAAc,sCAAsC;AACpD,cAAc,kCAAkC;AAChD,cAAc,iCAAiC;AAC/C,cAAc,uCAAuC;AACrD,cAAc,yCAAyC;AACvD,cAAc,kCAAkC;AAChD,cAAc,oCAAoC;AAClD,cAAc,mCAAmC;AACjD,cAAc,kCAAkC;AAChD,cAAc,mCAAmC;AACjD,cAAc,yCAAyC"}
1
+ {"version":3,"file":"index.d.js","names":["makeDataHintsContainer","default","Plot","ResponsiveContainer","Line","Bar","HorizontalBar","GroupBar","StackBar","Area","StackedArea","Radar","Donut","Tooltip","ScatterPlot","Bubble","ReferenceLine","Venn","RadialTree","ChartLegend","ChartLegendTable","Chart"],"sources":["../../../src/types/index.d.ts"],"sourcesContent":["// Utils\n// @ts-ignore\nimport { interpolateValue as intValue } from './utils';\n\nexport declare const interpolateValue: typeof intValue;\nexport declare function minMax(data: any, key: string | number): any;\nexport declare function calculateBubbleDomain(\n data: Array<{ value: number; x: number; y: number }>,\n key: 'x' | 'y',\n range: [number, number],\n): [min: number, max: number];\n\nexport { makeDataHintsContainer } from './a11y/hints';\n\n// Color\n/**\n * @deprecated\n * This export will be removed in the next major release.\n */\nexport declare const colors: { [key: string]: string };\n\nexport { default as Plot } from './Plot';\nexport * from './Plot';\n\nexport * from './Axis';\nexport * from './Hover';\n\nexport { default as ResponsiveContainer } from './ResponsiveContainer';\nexport * from './ResponsiveContainer';\n\nexport { default as Line } from './Line';\nexport * from './Line';\n\nexport { default as Bar } from './Bar';\nexport * from './Bar';\n\nexport { default as HorizontalBar } from './HorizontalBar';\nexport * from './HorizontalBar';\n\nexport { default as GroupBar } from './GroupBar';\nexport * from './GroupBar';\n\nexport { default as StackBar } from './StackBar';\nexport * from './StackBar';\n\nexport { default as Area } from './Area';\nexport * from './Area';\n\nexport { default as StackedArea } from './StackedArea';\nexport * from './StackedArea';\n\nexport { default as Radar } from './Radar';\nexport * from './Radar';\n\nexport { default as Donut } from './Donut';\nexport * from './Donut';\n\nexport { default as Tooltip } from './Tooltip';\nexport * from './Tooltip';\n\nexport { default as ScatterPlot } from './ScatterPlot';\nexport * from './ScatterPlot';\n\nexport { default as Bubble } from './Bubble';\nexport * from './Bubble';\n\nexport { default as ReferenceLine } from './ReferenceLine';\nexport * from './ReferenceLine';\n\nexport { default as Venn } from './Venn';\nexport * from './Venn';\n\n/** It becomes resolvable after building and moving file to lib dir */\n\n// @ts-ignore\nexport { default as RadialTree } from './RadialTree';\n\n// @ts-ignore\nexport * from './RadialTree';\n\n// @ts-ignore\nexport { ChartLegend, ChartLegendTable } from './component/ChartLegend';\n\n// @ts-ignore\nexport * from './component/ChartLegend/LegendFlex/LegendFlex.type';\n// @ts-ignore\nexport * from './component/ChartLegend/LegendTable/LegendTable.type';\n// @ts-ignore\nexport * from './component/ChartLegend/LegendItem/LegendItem.type';\n\n// @ts-ignore\nexport * from './Pattern';\n\nexport { default as Chart } from './component/Chart';\nexport * from './component/Chart/AbstractChart.type';\nexport * from './component/Chart/LineChart.type';\nexport * from './component/Chart/BarChart.type';\nexport * from './component/Chart/HistogramChart.type';\nexport * from './component/Chart/ScatterPlotChart.type';\nexport * from './component/Chart/AreaChart.type';\nexport * from './component/Chart/BubbleChart.type';\nexport * from './component/Chart/DonutChart.type';\nexport * from './component/Chart/VennChart.type';\nexport * from './component/Chart/RadarChart.type';\nexport * from './component/Chart/ScatterPlotChart.type';\nexport * from './component/Chart/CigaretteChart.type';\n"],"mappings":"AAAA;AACA;;AAWA,SAASA,sBAAsB,QAAQ,cAAc;;AAErD;AACA;AACA;AACA;AACA;;AAGA,SAASC,OAAO,IAAIC,IAAI,QAAQ,QAAQ;AACxC,cAAc,QAAQ;AAEtB,cAAc,QAAQ;AACtB,cAAc,SAAS;AAEvB,SAASD,OAAO,IAAIE,mBAAmB,QAAQ,uBAAuB;AACtE,cAAc,uBAAuB;AAErC,SAASF,OAAO,IAAIG,IAAI,QAAQ,QAAQ;AACxC,cAAc,QAAQ;AAEtB,SAASH,OAAO,IAAII,GAAG,QAAQ,OAAO;AACtC,cAAc,OAAO;AAErB,SAASJ,OAAO,IAAIK,aAAa,QAAQ,iBAAiB;AAC1D,cAAc,iBAAiB;AAE/B,SAASL,OAAO,IAAIM,QAAQ,QAAQ,YAAY;AAChD,cAAc,YAAY;AAE1B,SAASN,OAAO,IAAIO,QAAQ,QAAQ,YAAY;AAChD,cAAc,YAAY;AAE1B,SAASP,OAAO,IAAIQ,IAAI,QAAQ,QAAQ;AACxC,cAAc,QAAQ;AAEtB,SAASR,OAAO,IAAIS,WAAW,QAAQ,eAAe;AACtD,cAAc,eAAe;AAE7B,SAAST,OAAO,IAAIU,KAAK,QAAQ,SAAS;AAC1C,cAAc,SAAS;AAEvB,SAASV,OAAO,IAAIW,KAAK,QAAQ,SAAS;AAC1C,cAAc,SAAS;AAEvB,SAASX,OAAO,IAAIY,OAAO,QAAQ,WAAW;AAC9C,cAAc,WAAW;AAEzB,SAASZ,OAAO,IAAIa,WAAW,QAAQ,eAAe;AACtD,cAAc,eAAe;AAE7B,SAASb,OAAO,IAAIc,MAAM,QAAQ,UAAU;AAC5C,cAAc,UAAU;AAExB,SAASd,OAAO,IAAIe,aAAa,QAAQ,iBAAiB;AAC1D,cAAc,iBAAiB;AAE/B,SAASf,OAAO,IAAIgB,IAAI,QAAQ,QAAQ;AACxC,cAAc,QAAQ;;AAEtB;;AAEA;AACA,SAAShB,OAAO,IAAIiB,UAAU,QAAQ,cAAc;;AAEpD;AACA,cAAc,cAAc;;AAE5B;AACA,SAASC,WAAW,EAAEC,gBAAgB,QAAQ,yBAAyB;;AAEvE;AACA,cAAc,oDAAoD;AAClE;AACA,cAAc,sDAAsD;AACpE;AACA,cAAc,oDAAoD;;AAElE;AACA,cAAc,WAAW;AAEzB,SAASnB,OAAO,IAAIoB,KAAK,QAAQ,mBAAmB;AACpD,cAAc,sCAAsC;AACpD,cAAc,kCAAkC;AAChD,cAAc,iCAAiC;AAC/C,cAAc,uCAAuC;AACrD,cAAc,yCAAyC;AACvD,cAAc,kCAAkC;AAChD,cAAc,oCAAoC;AAClD,cAAc,mCAAmC;AACjD,cAAc,kCAAkC;AAChD,cAAc,mCAAmC;AACjD,cAAc,yCAAyC;AACvD,cAAc,uCAAuC"}
package/lib/es6/utils.js CHANGED
@@ -76,18 +76,46 @@ export var getNullData = function getNullData(data, defined, name) {
76
76
  };
77
77
  export var getIndexFromData = function getIndexFromData(data, scale, key, value) {
78
78
  // detect line chart
79
- if ('invert' in scale && typeof scale.invert === 'function') {
79
+ if ('invert' in scale && typeof scale.invert === 'function' && Array.isArray(data)) {
80
80
  var bisect = bisector(function (d) {
81
81
  return d[key];
82
82
  }).center;
83
83
  return bisect(data, value);
84
84
  }
85
85
  // detect bar chart
86
- else if ('step' in scale && typeof scale.step !== 'undefined') {
86
+ else if ('step' in scale && typeof scale.step !== 'undefined' && Array.isArray(data)) {
87
87
  var index = data.findIndex(function (d) {
88
88
  return d[key] === value;
89
89
  });
90
90
  return index >= 0 ? index : null;
91
+ }
92
+ // detect cigarette chart
93
+ else if ('invert' in scale && typeof scale.invert === 'function' && !Array.isArray(data)) {
94
+ var keys = Object.keys(data);
95
+ var domain = keys.map(function (key, index) {
96
+ return keys.slice(0, index).reduce(function (acc, item) {
97
+ if (data[item] !== interpolateValue) {
98
+ acc = acc + data[item];
99
+ }
100
+ return acc;
101
+ }, 0);
102
+ });
103
+ var _key = null;
104
+ var lastKeyIndex = keys.length - 1;
105
+ if (value > domain[lastKeyIndex]) {
106
+ _key = keys[lastKeyIndex];
107
+ } else {
108
+ for (var i = 0; i < lastKeyIndex; i++) {
109
+ if (i === 0 && value < domain[i]) {
110
+ break;
111
+ }
112
+ if (value > domain[i] && value < domain[i + 1]) {
113
+ _key = keys[i];
114
+ break;
115
+ }
116
+ }
117
+ }
118
+ return _key;
91
119
  } else {
92
120
  console.warn('[d3-chart/utils/getIndexFromData] encountered incompatible scale type');
93
121
  return null;
@@ -140,8 +168,8 @@ export var scaleToBand = function scaleToBand(scale) {
140
168
  export var memoize = function memoize(func) {
141
169
  var results = {};
142
170
  return function () {
143
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
144
- args[_key] = arguments[_key];
171
+ for (var _len = arguments.length, args = new Array(_len), _key2 = 0; _key2 < _len; _key2++) {
172
+ args[_key2] = arguments[_key2];
145
173
  }
146
174
  var argsKey = args.join(',');
147
175
  if (!results[argsKey]) {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["extent","bisector","scaleQuantize","scaleBand","scaleSqrt","CONSTANT","VIRTUAL_ELEMENT","Symbol","eventToPoint","event","svgRoot","node","currentTarget","target","rect","getBoundingClientRect","clientX","left","clientLeft","clientY","top","clientTop","invert","scale","value","range","domain","paddingOuter","step","slice","reverse","definedNullData","x","y","plot","definedData","undefined","scaleOfBandwidth","bandwidth","minMax","data","key","d","getNullData","defined","name","reduce","acc","i","push","_defineProperty","prev","next","defNext","find","_objectSpread","length","defPrev","getIndexFromData","bisect","center","index","findIndex","console","warn","roundedPath","w","h","r","tl","arguments","tr","bl","br","result","concat","scaleToBand","band","memoize","func","results","_len","args","Array","_key","argsKey","join","apply","measureText","text","fontSize","span","document","createElement","style","_iterator","_createForOfIteratorHelper","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","_toConsumableArray","map","el","getScatterPlotRadius","valueKey","calculateBubbleDomain","miniestValue","item","min","maxestValue","_minMax","_minMax2","_slicedToArray","pixelRatio","abs","valueScale","minValueShift","maxValueShift"],"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\ntype BubbleChartDataItem = {\n value: number;\n x: number;\n y: number;\n};\n\nexport const calculateBubbleDomain = (\n data: Array<BubbleChartDataItem>,\n key: 'x' | 'y',\n range: [number, number],\n): [min: number, max: number] => {\n const miniestValue = data.reduce(\n (acc, item) => {\n if (item[key] - item.value < acc.min) {\n acc.min = item[key] - item.value;\n acc.value = item.value;\n }\n return acc;\n },\n { value: data[0].value, min: data[0][key] - data[0].value },\n ).value;\n const maxestValue = data.reduce(\n (acc, item) => {\n if (item.value + item[key] > acc.max) {\n acc.max = item.value + item.x;\n acc.value = item.value;\n }\n return acc;\n },\n { value: data[0].value, max: data[0].value + data[0][key] },\n ).value;\n\n let [min, max] = minMax(data, key);\n\n const pixelRatio = Math.abs(max - min) / Math.abs(range[0] - range[1]);\n const valueScale = getBubbleChartValueScale(data, 'value');\n const minValueShift = valueScale(miniestValue) * pixelRatio;\n const maxValueShift = valueScale(maxestValue) * pixelRatio;\n min -= minValueShift * 2;\n max += maxValueShift * 2;\n\n return [min, max];\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","names":["extent","bisector","scaleQuantize","scaleBand","scaleSqrt","CONSTANT","VIRTUAL_ELEMENT","Symbol","eventToPoint","event","svgRoot","node","currentTarget","target","rect","getBoundingClientRect","clientX","left","clientLeft","clientY","top","clientTop","invert","scale","value","range","domain","paddingOuter","step","slice","reverse","definedNullData","x","y","plot","definedData","undefined","scaleOfBandwidth","bandwidth","minMax","data","key","d","getNullData","defined","name","reduce","acc","i","push","_defineProperty","prev","next","defNext","find","_objectSpread","length","defPrev","getIndexFromData","Array","isArray","bisect","center","index","findIndex","keys","Object","map","item","interpolateValue","lastKeyIndex","console","warn","roundedPath","w","h","r","tl","arguments","tr","bl","br","result","concat","scaleToBand","band","memoize","func","results","_len","args","_key2","argsKey","join","apply","measureText","text","fontSize","span","document","createElement","style","_iterator","_createForOfIteratorHelper","split","_step","s","n","done","line","append","createTextNode","err","e","f","display","body","textWidth","offsetWidth","textHeight","offsetHeight","remove","Math","max","idCounter","uniqueId","prefix","getChartDefaultColorName","getBubbleChartValueScale","z","_toConsumableArray","el","getScatterPlotRadius","valueKey","calculateBubbleDomain","miniestValue","min","maxestValue","_minMax","_minMax2","_slicedToArray","pixelRatio","abs","valueScale","minValueShift","maxValueShift"],"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' && Array.isArray(data)) {\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' && Array.isArray(data)) {\n const index = data.findIndex((d) => d[key] === value);\n return index >= 0 ? index : null;\n }\n // detect cigarette chart\n else if ('invert' in scale && typeof scale.invert === 'function' && !Array.isArray(data)) {\n const keys = Object.keys(data);\n const domain = keys.map((key, index) => {\n return keys.slice(0, index).reduce((acc, item) => {\n if (data[item] !== interpolateValue) {\n acc = acc + data[item];\n }\n\n return acc;\n }, 0);\n });\n\n let key = null;\n\n const lastKeyIndex = keys.length - 1;\n\n if (value > domain[lastKeyIndex]) {\n key = keys[lastKeyIndex];\n } else {\n for (let i = 0; i < lastKeyIndex; i++) {\n if (i === 0 && value < domain[i]) {\n break;\n }\n\n if (value > domain[i] && value < domain[i + 1]) {\n key = keys[i];\n break;\n }\n }\n }\n\n return key;\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\ntype BubbleChartDataItem = {\n value: number;\n x: number;\n y: number;\n};\n\nexport const calculateBubbleDomain = (\n data: Array<BubbleChartDataItem>,\n key: 'x' | 'y',\n range: [number, number],\n): [min: number, max: number] => {\n const miniestValue = data.reduce(\n (acc, item) => {\n if (item[key] - item.value < acc.min) {\n acc.min = item[key] - item.value;\n acc.value = item.value;\n }\n return acc;\n },\n { value: data[0].value, min: data[0][key] - data[0].value },\n ).value;\n const maxestValue = data.reduce(\n (acc, item) => {\n if (item.value + item[key] > acc.max) {\n acc.max = item.value + item.x;\n acc.value = item.value;\n }\n return acc;\n },\n { value: data[0].value, max: data[0].value + data[0][key] },\n ).value;\n\n let [min, max] = minMax(data, key);\n\n const pixelRatio = Math.abs(max - min) / Math.abs(range[0] - range[1]);\n const valueScale = getBubbleChartValueScale(data, 'value');\n const minValueShift = valueScale(miniestValue) * pixelRatio;\n const maxValueShift = valueScale(maxestValue) * pixelRatio;\n min -= minValueShift * 2;\n max += maxValueShift * 2;\n\n return [min, max];\n};\n"],"mappings":";;;;;AAAA,SAASA,MAAM,EAAEC,QAAQ,QAAiB,UAAU;AACpD,SACEC,aAAa,EAObC,SAAS,EACTC,SAAS,QACJ,UAAU;AAGjB,IAAMC,QAAQ,GAAG;EACfC,eAAe,EAAEC,MAAM,CAAC,iBAAiB;AAC3C,CAAU;AAEV,SAASF,QAAQ;AAEjB,OAAO,IAAMG,YAAY,GAAG,SAAfA,YAAYA,CAAIC,KAAoC,EAAEC,OAAmB,EAAK;EACzF,IAAMC,IAAI,GAAIF,KAAK,CAACG,aAAa,IAAIH,KAAK,CAACI,MAAsB;EACjE,IAAMC,IAAI,GAAGJ,OAAO,CAACK,qBAAqB,EAAE;EAC5C,OAAO,CAACN,KAAK,CAACO,OAAO,GAAGF,IAAI,CAACG,IAAI,GAAGN,IAAI,CAACO,UAAU,EAAET,KAAK,CAACU,OAAO,GAAGL,IAAI,CAACM,GAAG,GAAGT,IAAI,CAACU,SAAS,CAAC;AACjG,CAAC;AAOD,OAAO,IAAMC,MAAM,GAAG,SAATA,MAAMA,CACjBC,KAAY,EACZC,KAAa,EACV;EACH,IAAI,QAAQ,IAAID,KAAK,IAAIA,KAAK,CAACD,MAAM,EAAE,OAAOC,KAAK,CAACD,MAAM,CAACE,KAAK,CAAC;EAEjE,IAAMC,KAAK,GAAGF,KAAK,CAACE,KAAK,EAAsB;EAC/C,IAAMC,MAAM,GAAGH,KAAK,CAACG,MAAM,EAAE;EAC7B,IAAI,cAAc,IAAIH,KAAK,EAAE;IAC3BE,KAAK,CAAC,CAAC,CAAC,IAAIF,KAAK,CAACI,YAAY,EAAE,GAAGJ,KAAK,CAACK,IAAI,EAAE;IAC/CH,KAAK,CAAC,CAAC,CAAC,IAAIF,KAAK,CAACI,YAAY,EAAE,GAAGJ,KAAK,CAACK,IAAI,EAAE;EACjD;EAEA,OAAO1B,aAAa,EAAE,CACnBwB,MAAM,CAAED,KAAK,CAAC,CAAC,CAAC,IAAIA,KAAK,CAAC,CAAC,CAAC,GAAGA,KAAK,GAAGA,KAAK,CAACI,KAAK,EAAE,CAACC,OAAO,EAAE,CAAmB,CACjFL,KAAK,CAAEA,KAAK,CAAC,CAAC,CAAC,IAAIA,KAAK,CAAC,CAAC,CAAC,GAAGC,MAAM,GAAGA,MAAM,CAACG,KAAK,EAAE,CAACC,OAAO,EAAE,CAAc,CAACN,KAAK,CAAC;AACzF,CAAC;AAED,OAAO,IAAMO,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,CAAS,EAAEC,CAAS;EAAA,OAAK,UAACC,IAAiC;IAAA,OACzFA,IAAI,CAACF,CAAC,CAAC,KAAK,IAAI,IAAIE,IAAI,CAACD,CAAC,CAAC,KAAK,IAAI;EAAA;AAAA;AAEtC,OAAO,IAAME,WAAW,GAAG,SAAdA,WAAWA,CAAIH,CAAS,EAAEC,CAAS;EAAA,OAAK,UAACC,IAAiC;IAAA,OACrFA,IAAI,CAACF,CAAC,CAAC,KAAK,IAAI,IAAIE,IAAI,CAACF,CAAC,CAAC,KAAKI,SAAS,IAAIF,IAAI,CAACD,CAAC,CAAC,KAAK,IAAI,IAAIC,IAAI,CAACD,CAAC,CAAC,KAAKG,SAAS;EAAA;AAAA;AAExF,OAAO,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAiCd,KAAY,EAAEC,KAAa;EAAA,OACvFD,KAAK,CAACe,SAAS,GAAGf,KAAK,CAACC,KAAK,CAAC,GAAID,KAAK,CAACe,SAAS,EAAE,GAAG,CAAC,GAAGf,KAAK,CAACC,KAAK,CAAC;AAAA;AAExE,OAAO,IAAMe,MAAM,GAAG,SAATA,MAAMA,CAMjBC,IAAU,EACVC,GAAQ,EACmC;EAC3C,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;IAC3B,OAAOzC,MAAM,CAACwC,IAAI,EAAE,UAACE,CAAC;MAAA,OAAKA,CAAC,CAACD,GAAG,CAAC;IAAA,EAAC;EACpC;EACA,OAAOzC,MAAM,CAACwC,IAAI,EAAEC,GAAG,CAAC;AAC1B,CAAC;AAED,OAAO,IAAME,WAAW,GAAG,SAAdA,WAAWA,CAItBH,IAAY,EACZI,OAAgC,EAChCC,IAAU;EAAA,OAEVL,IAAI,CAACM,MAAM,CAAC,UAACC,GAAG,EAAEL,CAAC,EAAEM,CAAC,EAAER,IAAI,EAAK;IAC/B,IAAII,OAAO,CAACF,CAAC,CAAC,EAAE;MACdK,GAAG,CAACE,IAAI,CAAAC,eAAA,KACLL,IAAI,EAAG,IAAI,EACJ;IACZ,CAAC,MAAM;MACL,IAAMM,IAAI,GAAGX,IAAI,CAACQ,CAAC,GAAG,CAAC,CAAC;MACxB,IAAMI,IAAI,GAAGZ,IAAI,CAACQ,CAAC,GAAG,CAAC,CAAC;MAExB,IAAIA,CAAC,KAAK,CAAC,EAAE;QACX,IAAMK,OAAO,GAAGb,IAAI,CAACc,IAAI,CAACV,OAAO,CAAC;QAClCG,GAAG,CAACE,IAAI,CAAAM,aAAA,CAAAA,aAAA,KACHb,CAAC,OAAAQ,eAAA,KACHL,IAAI,EAAGQ,OAAO,GAAGA,OAAO,CAACR,IAAI,CAAC,GAAG,IAAI,GACtC;MACJ;;MAEA;MACA,IAAIM,IAAI,IAAIP,OAAO,CAACO,IAAI,CAAC,EAAE;QACzBJ,GAAG,CAACE,IAAI,CAACE,IAAI,CAAC;MAChB;;MAEA;MACA,IAAIC,IAAI,IAAIR,OAAO,CAACQ,IAAI,CAAC,EAAE;QACzBL,GAAG,CAACE,IAAI,CAACG,IAAI,CAAC;MAChB;MAEA,IAAIZ,IAAI,CAACgB,MAAM,GAAG,CAAC,KAAKR,CAAC,EAAE;QACzB,IAAMS,OAAO,GAAGjB,IAAI,CAACX,KAAK,EAAE,CAACC,OAAO,EAAE,CAACwB,IAAI,CAACV,OAAO,CAAC;QACpDG,GAAG,CAACE,IAAI,CAAAM,aAAA,CAAAA,aAAA,KACHb,CAAC,OAAAQ,eAAA,KACHL,IAAI,EAAGY,OAAO,GAAGA,OAAO,CAACZ,IAAI,CAAC,GAAG,IAAI,GACtC;MACJ;IACF;IACA,OAAOE,GAAG;EACZ,CAAC,EAAE,EAAE,CAAW;AAAA;AAQlB,OAAO,IAAMW,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAO3BlB,IAAY,EACZjB,KAAY,EACZkB,GAAQ,EACRjB,KAAa,EACV;EACH;EACA,IAAI,QAAQ,IAAID,KAAK,IAAI,OAAOA,KAAK,CAACD,MAAM,KAAK,UAAU,IAAIqC,KAAK,CAACC,OAAO,CAACpB,IAAI,CAAC,EAAE;IAClF,IAAMqB,MAAM,GAAG5D,QAAQ,CAAC,UAACyC,CAA4B;MAAA,OAAKA,CAAC,CAACD,GAAG,CAAC;IAAA,EAAC,CAACqB,MAAM;IACxE,OAAOD,MAAM,CAACrB,IAAI,EAAEhB,KAAK,CAAC;EAC5B;EACA;EAAA,KACK,IAAI,MAAM,IAAID,KAAK,IAAI,OAAOA,KAAK,CAACK,IAAI,KAAK,WAAW,IAAI+B,KAAK,CAACC,OAAO,CAACpB,IAAI,CAAC,EAAE;IACpF,IAAMuB,KAAK,GAAGvB,IAAI,CAACwB,SAAS,CAAC,UAACtB,CAAC;MAAA,OAAKA,CAAC,CAACD,GAAG,CAAC,KAAKjB,KAAK;IAAA,EAAC;IACrD,OAAOuC,KAAK,IAAI,CAAC,GAAGA,KAAK,GAAG,IAAI;EAClC;EACA;EAAA,KACK,IAAI,QAAQ,IAAIxC,KAAK,IAAI,OAAOA,KAAK,CAACD,MAAM,KAAK,UAAU,IAAI,CAACqC,KAAK,CAACC,OAAO,CAACpB,IAAI,CAAC,EAAE;IACxF,IAAMyB,IAAI,GAAGC,MAAM,CAACD,IAAI,CAACzB,IAAI,CAAC;IAC9B,IAAMd,MAAM,GAAGuC,IAAI,CAACE,GAAG,CAAC,UAAC1B,GAAG,EAAEsB,KAAK,EAAK;MACtC,OAAOE,IAAI,CAACpC,KAAK,CAAC,CAAC,EAAEkC,KAAK,CAAC,CAACjB,MAAM,CAAC,UAACC,GAAG,EAAEqB,IAAI,EAAK;QAChD,IAAI5B,IAAI,CAAC4B,IAAI,CAAC,KAAKC,gBAAgB,EAAE;UACnCtB,GAAG,GAAGA,GAAG,GAAGP,IAAI,CAAC4B,IAAI,CAAC;QACxB;QAEA,OAAOrB,GAAG;MACZ,CAAC,EAAE,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,IAAIN,IAAG,GAAG,IAAI;IAEd,IAAM6B,YAAY,GAAGL,IAAI,CAACT,MAAM,GAAG,CAAC;IAEpC,IAAIhC,KAAK,GAAGE,MAAM,CAAC4C,YAAY,CAAC,EAAE;MAChC7B,IAAG,GAAGwB,IAAI,CAACK,YAAY,CAAC;IAC1B,CAAC,MAAM;MACL,KAAK,IAAItB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGsB,YAAY,EAAEtB,CAAC,EAAE,EAAE;QACrC,IAAIA,CAAC,KAAK,CAAC,IAAIxB,KAAK,GAAGE,MAAM,CAACsB,CAAC,CAAC,EAAE;UAChC;QACF;QAEA,IAAIxB,KAAK,GAAGE,MAAM,CAACsB,CAAC,CAAC,IAAIxB,KAAK,GAAGE,MAAM,CAACsB,CAAC,GAAG,CAAC,CAAC,EAAE;UAC9CP,IAAG,GAAGwB,IAAI,CAACjB,CAAC,CAAC;UACb;QACF;MACF;IACF;IAEA,OAAOP,IAAG;EACZ,CAAC,MAAM;IACL8B,OAAO,CAACC,IAAI,CAAC,uEAAuE,CAAC;IACrF,OAAO,IAAI;EACb;AACF,CAAC;AAED,OAAO,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CACtBzC,CAAS,EACTC,CAAS,EACTyC,CAAS,EACTC,CAAS,EACTC,CAAS,EAKN;EAAA,IAJHC,EAAE,GAAAC,SAAA,CAAAtB,MAAA,QAAAsB,SAAA,QAAA1C,SAAA,GAAA0C,SAAA,MAAG,KAAK;EAAA,IACVC,EAAE,GAAAD,SAAA,CAAAtB,MAAA,QAAAsB,SAAA,QAAA1C,SAAA,GAAA0C,SAAA,MAAG,KAAK;EAAA,IACVE,EAAE,GAAAF,SAAA,CAAAtB,MAAA,QAAAsB,SAAA,QAAA1C,SAAA,GAAA0C,SAAA,MAAG,KAAK;EAAA,IACVG,EAAE,GAAAH,SAAA,CAAAtB,MAAA,QAAAsB,SAAA,QAAA1C,SAAA,GAAA0C,SAAA,MAAG,KAAK;EAEV,IAAII,MAAM,OAAAC,MAAA,CAAOnD,CAAC,GAAG4C,CAAC,OAAAO,MAAA,CAAIlD,CAAC,CAAE;EAC7BiD,MAAM,QAAAC,MAAA,CAAQT,CAAC,GAAG,CAAC,GAAGE,CAAC,CAAE;EACzB,IAAIG,EAAE,EAAE;IACNG,MAAM,QAAAC,MAAA,CAAQP,CAAC,OAAAO,MAAA,CAAIP,CAAC,aAAAO,MAAA,CAAUP,CAAC,OAAAO,MAAA,CAAIP,CAAC,CAAE;EACxC,CAAC,MAAM;IACLM,MAAM,QAAAC,MAAA,CAAQP,CAAC,CAAE;IACjBM,MAAM,QAAAC,MAAA,CAAQP,CAAC,CAAE;EACnB;EACAM,MAAM,QAAAC,MAAA,CAAQR,CAAC,GAAG,CAAC,GAAGC,CAAC,CAAE;EACzB,IAAIK,EAAE,EAAE;IACNC,MAAM,QAAAC,MAAA,CAAQP,CAAC,OAAAO,MAAA,CAAIP,CAAC,aAAAO,MAAA,CAAU,CAACP,CAAC,OAAAO,MAAA,CAAIP,CAAC,CAAE;EACzC,CAAC,MAAM;IACLM,MAAM,QAAAC,MAAA,CAAQP,CAAC,CAAE;IACjBM,MAAM,QAAAC,MAAA,CAAQ,CAACP,CAAC,CAAE;EACpB;EACAM,MAAM,QAAAC,MAAA,CAAQ,CAAC,GAAGP,CAAC,GAAGF,CAAC,CAAE;EACzB,IAAIM,EAAE,EAAE;IACNE,MAAM,QAAAC,MAAA,CAAQP,CAAC,OAAAO,MAAA,CAAIP,CAAC,aAAAO,MAAA,CAAU,CAACP,CAAC,OAAAO,MAAA,CAAI,CAACP,CAAC,CAAE;EAC1C,CAAC,MAAM;IACLM,MAAM,QAAAC,MAAA,CAAQ,CAACP,CAAC,CAAE;IAClBM,MAAM,QAAAC,MAAA,CAAQ,CAACP,CAAC,CAAE;EACpB;EACAM,MAAM,QAAAC,MAAA,CAAQ,CAAC,GAAGP,CAAC,GAAGD,CAAC,CAAE;EACzB,IAAIE,EAAE,EAAE;IACNK,MAAM,QAAAC,MAAA,CAAQP,CAAC,OAAAO,MAAA,CAAIP,CAAC,aAAAO,MAAA,CAAUP,CAAC,OAAAO,MAAA,CAAI,CAACP,CAAC,CAAE;EACzC,CAAC,MAAM;IACLM,MAAM,QAAAC,MAAA,CAAQ,CAACP,CAAC,CAAE;IAClBM,MAAM,QAAAC,MAAA,CAAQP,CAAC,CAAE;EACnB;EACAM,MAAM,IAAI,GAAG;EACb,OAAOA,MAAM;AACf,CAAC;AAED,OAAO,IAAME,WAAW,GAAG,SAAdA,WAAWA,CAAI7D,KAAoB,EAAK;EACnD,IAAI,WAAW,IAAIA,KAAK,EAAE;IACxB,OAAOA,KAAK;EACd;EAEA,IAAM8D,IAAI,GAAGlF,SAAS,EAAE,CACrBsB,KAAK,CAAEF,KAAK,CAASE,KAAK,EAAE,CAAC,CAC7BC,MAAM,CAAEH,KAAK,CAASG,MAAM,EAAE,CAAC;EAElC,OAAO2D,IAAI;AACb,CAAC;AAED,OAAO,IAAMC,OAAO,GAAG,SAAVA,OAAOA,CAA0CC,IAAU,EAAW;EACjF,IAAMC,OAAoC,GAAG,CAAC,CAAC;EAC/C,OAAQ,YAAoB;IAAA,SAAAC,IAAA,GAAAX,SAAA,CAAAtB,MAAA,EAAhBkC,IAAI,OAAA/B,KAAA,CAAA8B,IAAA,GAAAE,KAAA,MAAAA,KAAA,GAAAF,IAAA,EAAAE,KAAA;MAAJD,IAAI,CAAAC,KAAA,IAAAb,SAAA,CAAAa,KAAA;IAAA;IACd,IAAMC,OAAO,GAAGF,IAAI,CAACG,IAAI,CAAC,GAAG,CAAC;IAC9B,IAAI,CAACL,OAAO,CAACI,OAAO,CAAC,EAAE;MACrBJ,OAAO,CAACI,OAAO,CAAC,GAAGL,IAAI,CAAAO,KAAA,SAAIJ,IAAI,CAAC;IAClC;IACA,OAAOF,OAAO,CAACI,OAAO,CAAC;EACzB,CAAC;AACH,CAAC;AAED,OAAO,IAAMG,WAAW,GAAGT,OAAO,CAAC,UAACU,IAAY,EAAEC,QAAiB,EAAK;EACtE,IAAI,CAACD,IAAI,EAAE,OAAO,CAAC;EAEnB,IAAME,IAAI,GAAGC,QAAQ,CAACC,aAAa,CAAC,MAAM,CAAC;EAC3C,IAAIH,QAAQ,EAAE;IACZC,IAAI,CAACG,KAAK,CAACJ,QAAQ,MAAAd,MAAA,CAAMc,QAAQ,OAAI;EACvC;EAAC,IAAAK,SAAA,GAAAC,0BAAA,CACkBP,IAAI,CAACQ,KAAK,CAAC,IAAI,CAAC;IAAAC,KAAA;EAAA;IAAnC,KAAAH,SAAA,CAAAI,CAAA,MAAAD,KAAA,GAAAH,SAAA,CAAAK,CAAA,IAAAC,IAAA,GAAqC;MAAA,IAA1BC,IAAI,GAAAJ,KAAA,CAAAjF,KAAA;MACb0E,IAAI,CAACY,MAAM,CAACX,QAAQ,CAACY,cAAc,CAACF,IAAI,CAAC,CAAC;MAC1CX,IAAI,CAACY,MAAM,CAACX,QAAQ,CAACC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3C;EAAC,SAAAY,GAAA;IAAAV,SAAA,CAAAW,CAAA,CAAAD,GAAA;EAAA;IAAAV,SAAA,CAAAY,CAAA;EAAA;EACDhB,IAAI,CAACG,KAAK,CAACc,OAAO,GAAG,cAAc;EACnChB,QAAQ,CAACiB,IAAI,CAACN,MAAM,CAACZ,IAAI,CAAC;EAC1B,IAAMmB,SAAS,GAAGnB,IAAI,CAACoB,WAAW;EAClC,IAAMC,UAAU,GAAGrB,IAAI,CAACsB,YAAY;EACpCtB,IAAI,CAACuB,MAAM,EAAE;EACb,OAAOC,IAAI,CAACC,GAAG,CAACN,SAAS,EAAEE,UAAU,CAAC;AACxC,CAAC,CAAC;AAEF,IAAIK,SAAS,GAAG,CAAC;AACjB,OAAO,IAAMC,QAAQ,GAAG,SAAXA,QAAQA,CAAA;EAAA,IAAIC,MAAM,GAAAhD,SAAA,CAAAtB,MAAA,QAAAsB,SAAA,QAAA1C,SAAA,GAAA0C,SAAA,MAAG,KAAK;EAAA,UAAAK,MAAA,CAAQ2C,MAAM,EAAA3C,MAAA,CAAGyC,SAAS,EAAE;AAAA,CAAE;AAErE,OAAO,IAAMvD,gBAAgB,GAAG9D,MAAM,CAAC,yCAAyC,CAAC;AAEjF,OAAO,IAAMwH,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAIhE,KAAa,EAAK;EACzDA,KAAK,EAAE;EACP,IAAIA,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAG,CAAC;EACxB,IAAIA,KAAK,GAAG,EAAE,EAAEA,KAAK,IAAI,EAAE;EAE3B,8BAAAoB,MAAA,CAA8BpB,KAAK;AACrC,CAAC;AAED,OAAO,IAAMiE,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAIxF,IAAW,EAAEC,GAAW,EAAK;EACpE,IAAMwF,CAAC,GAAG7H,SAAS,EAAE,CAClBsB,MAAM,CAAC,CAAC,CAAC,EAAEgG,IAAI,CAACC,GAAG,CAAA7B,KAAA,CAAR4B,IAAI,EAAAQ,kBAAA,CAAQ1F,IAAI,CAAC2B,GAAG,CAAC,UAACgE,EAAE;IAAA,OAAKA,EAAE,CAAC1F,GAAG,CAAC;EAAA,EAAC,EAAC,CAAC,CAAC,CACnDhB,KAAK,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;EAErB,OAAOwG,CAAC;AACV,CAAC;AAED,OAAO,IAAMG,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAIC,QAAiB,EAAa;EACjE,OAAOA,QAAQ,KAAKjG,SAAS,GAAG,EAAE,GAAG,GAAG;AAC1C,CAAC;AAQD,OAAO,IAAMkG,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAChC9F,IAAgC,EAChCC,GAAc,EACdhB,KAAuB,EACQ;EAC/B,IAAM8G,YAAY,GAAG/F,IAAI,CAACM,MAAM,CAC9B,UAACC,GAAG,EAAEqB,IAAI,EAAK;IACb,IAAIA,IAAI,CAAC3B,GAAG,CAAC,GAAG2B,IAAI,CAAC5C,KAAK,GAAGuB,GAAG,CAACyF,GAAG,EAAE;MACpCzF,GAAG,CAACyF,GAAG,GAAGpE,IAAI,CAAC3B,GAAG,CAAC,GAAG2B,IAAI,CAAC5C,KAAK;MAChCuB,GAAG,CAACvB,KAAK,GAAG4C,IAAI,CAAC5C,KAAK;IACxB;IACA,OAAOuB,GAAG;EACZ,CAAC,EACD;IAAEvB,KAAK,EAAEgB,IAAI,CAAC,CAAC,CAAC,CAAChB,KAAK;IAAEgH,GAAG,EAAEhG,IAAI,CAAC,CAAC,CAAC,CAACC,GAAG,CAAC,GAAGD,IAAI,CAAC,CAAC,CAAC,CAAChB;EAAM,CAAC,CAC5D,CAACA,KAAK;EACP,IAAMiH,WAAW,GAAGjG,IAAI,CAACM,MAAM,CAC7B,UAACC,GAAG,EAAEqB,IAAI,EAAK;IACb,IAAIA,IAAI,CAAC5C,KAAK,GAAG4C,IAAI,CAAC3B,GAAG,CAAC,GAAGM,GAAG,CAAC4E,GAAG,EAAE;MACpC5E,GAAG,CAAC4E,GAAG,GAAGvD,IAAI,CAAC5C,KAAK,GAAG4C,IAAI,CAACpC,CAAC;MAC7Be,GAAG,CAACvB,KAAK,GAAG4C,IAAI,CAAC5C,KAAK;IACxB;IACA,OAAOuB,GAAG;EACZ,CAAC,EACD;IAAEvB,KAAK,EAAEgB,IAAI,CAAC,CAAC,CAAC,CAAChB,KAAK;IAAEmG,GAAG,EAAEnF,IAAI,CAAC,CAAC,CAAC,CAAChB,KAAK,GAAGgB,IAAI,CAAC,CAAC,CAAC,CAACC,GAAG;EAAE,CAAC,CAC5D,CAACjB,KAAK;EAEP,IAAAkH,OAAA,GAAiBnG,MAAM,CAACC,IAAI,EAAEC,GAAG,CAAC;IAAAkG,QAAA,GAAAC,cAAA,CAAAF,OAAA;IAA7BF,GAAG,GAAAG,QAAA;IAAEhB,GAAG,GAAAgB,QAAA;EAEb,IAAME,UAAU,GAAGnB,IAAI,CAACoB,GAAG,CAACnB,GAAG,GAAGa,GAAG,CAAC,GAAGd,IAAI,CAACoB,GAAG,CAACrH,KAAK,CAAC,CAAC,CAAC,GAAGA,KAAK,CAAC,CAAC,CAAC,CAAC;EACtE,IAAMsH,UAAU,GAAGf,wBAAwB,CAACxF,IAAI,EAAE,OAAO,CAAC;EAC1D,IAAMwG,aAAa,GAAGD,UAAU,CAACR,YAAY,CAAC,GAAGM,UAAU;EAC3D,IAAMI,aAAa,GAAGF,UAAU,CAACN,WAAW,CAAC,GAAGI,UAAU;EAC1DL,GAAG,IAAIQ,aAAa,GAAG,CAAC;EACxBrB,GAAG,IAAIsB,aAAa,GAAG,CAAC;EAExB,OAAO,CAACT,GAAG,EAAEb,GAAG,CAAC;AACnB,CAAC"}
@@ -11,7 +11,7 @@ type ChartState = {
11
11
  highlightedLine: number;
12
12
  withTrend: boolean;
13
13
  };
14
- export declare abstract class AbstractChart<D extends ListData | ObjectData, T extends BaseChartProps<D>> extends Component<T, {}, ChartState> {
14
+ export declare abstract class AbstractChart<D extends ListData | ObjectData, T extends BaseChartProps<D>, E = {}> extends Component<T, {}, ChartState, E> {
15
15
  static style: {};
16
16
  static defaultProps: Partial<BaseChartProps<any>>;
17
17
  /**
@@ -22,7 +22,7 @@ export declare abstract class AbstractChart<D extends ListData | ObjectData, T e
22
22
  state: ChartState;
23
23
  constructor(props: T);
24
24
  componentDidUpdate(prevProps: T): void;
25
- protected get defaultDataDefinitions(): Array<LegendItem & {
25
+ protected getDefaultDataDefinitions(): Array<LegendItem & {
26
26
  columns: React.ReactNode[];
27
27
  }>;
28
28
  protected abstract get xScale(): ScaleBand<any> | ScaleLinear<any, any> | ScaleTime<any, any>;
@@ -5,6 +5,7 @@ import Icon from '@semcore/icon';
5
5
  import { BaseChartLegendProps } from '../ChartLegend/BaseLegend.type';
6
6
  import { TrendProps } from '../ChartLegend/LegendFlex/LegendFlex.type';
7
7
  import { PatternsConfig } from '../../Pattern';
8
+ import { PlotSummarizerConfig } from '../../Plot';
8
9
  export type BaseLegendProps = BaseChartLegendProps & {
9
10
  /**
10
11
  * Disable hover (for transition items legend of each not hovered)
@@ -114,6 +115,10 @@ export type BaseChartProps<T extends ListData | ObjectData> = FlexProps & {
114
115
  * Function for format text for tooltip
115
116
  */
116
117
  tooltipValueFormatter?: (value?: unknown) => string;
118
+ /**
119
+ * Config for a11y summary
120
+ */
121
+ a11yAltTextConfig?: PlotSummarizerConfig;
117
122
  } /**
118
123
  * By default, we show the Legend for all charts with more the one data item.
119
124
  * For hide the Legend, you should set showLegend prop to `false`.
@@ -0,0 +1,2 @@
1
+ import { CigaretteChartType } from './CigaretteChart.type';
2
+ export declare const CigaretteChart: CigaretteChartType;
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import { Intergalactic } from '@semcore/core';
3
+ import { BaseChartProps } from './AbstractChart.type';
4
+ import { interpolateValue } from '../../utils';
5
+ type DataKey = string;
6
+ export type CigaretteChartData = Record<DataKey, number | typeof interpolateValue>;
7
+ export type CigaretteChartProps = Intergalactic.InternalTypings.EfficientOmit<BaseChartProps<CigaretteChartData>, 'xScale' | 'yScale'> & {
8
+ tooltipTitle?: string;
9
+ tooltipViewType?: 'all' | 'single';
10
+ header?: React.ReactNode;
11
+ duration?: number;
12
+ onClick?: (key: DataKey, event: React.SyntheticEvent) => void;
13
+ };
14
+ export type CigaretteChartType = Intergalactic.Component<'div', CigaretteChartProps>;
15
+ export {};
@@ -8,5 +8,6 @@ declare const _default: {
8
8
  Donut: import("./DonutChart.type").DonutChartType;
9
9
  Venn: import("./VennChart.type").VennChartType;
10
10
  Radar: import("./RadarChart.type").RadarChartType;
11
+ Cigarette: import("./CigaretteChart.type").CigaretteChartType;
11
12
  };
12
13
  export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;
@@ -1,6 +1,9 @@
1
1
  // Utils
2
+ // @ts-ignore
3
+ import { interpolateValue as intValue } from './utils';
4
+
5
+ export declare const interpolateValue: typeof intValue;
2
6
  export declare function minMax(data: any, key: string | number): any;
3
- export declare const interpolateValue: Symbol;
4
7
  export declare function calculateBubbleDomain(
5
8
  data: Array<{ value: number; x: number; y: number }>,
6
9
  key: 'x' | 'y',
@@ -100,3 +103,4 @@ export * from './component/Chart/DonutChart.type';
100
103
  export * from './component/Chart/VennChart.type';
101
104
  export * from './component/Chart/RadarChart.type';
102
105
  export * from './component/Chart/ScatterPlotChart.type';
106
+ export * from './component/Chart/CigaretteChart.type';
@@ -22,7 +22,7 @@ export declare const minMax: <Key extends string = string, Data extends {
22
22
  }[]>(data: Data, key: Key) => [min: Data[0][Key], max: Data[0][Key]];
23
23
  export declare const getNullData: <Name extends string = string, Data extends { [name in Name]?: unknown; } = {}>(data: Data[], defined: (data: Data) => boolean, name: Name) => Data[];
24
24
  type IndexFromDataScale = ScaleIdentity | ScaleTime<unknown, unknown> | ScaleContinuousNumeric<unknown, unknown> | ScaleBand<{}> | ScalePoint<{}>;
25
- export declare const getIndexFromData: <Key extends string, Data extends { [key in Key]: number; } = { [key_1 in Key]: number; }, Scale extends IndexFromDataScale = IndexFromDataScale>(data: Data[], scale: Scale, key: Key, value: number) => number | null;
25
+ export declare const getIndexFromData: <Key extends string, Data extends { [key in Key]: number; } = { [key_1 in Key]: number; }, Scale extends IndexFromDataScale = IndexFromDataScale>(data: Data[], scale: Scale, key: Key, value: number) => string | number | null;
26
26
  export declare const roundedPath: (x: number, y: number, w: number, h: number, r: number, tl?: boolean, tr?: boolean, bl?: boolean, br?: boolean) => string;
27
27
  export declare const scaleToBand: (scale: ScaleBand<{}>) => ScaleBand<{}> | ScaleBand<string>;
28
28
  export declare const memoize: <Func extends (...args: any[]) => any>(func: Func) => Func;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@semcore/d3-chart",
3
3
  "description": "Semrush D3 Chart Component",
4
- "version": "3.37.2",
4
+ "version": "3.38.0-prerelease.0",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es6/index.js",
7
7
  "typings": "lib/types/index.d.ts",
@@ -15,11 +15,11 @@
15
15
  },
16
16
  "dependencies": {
17
17
  "@formatjs/intl": "2.3.0",
18
- "@semcore/animation": "2.21.2",
19
- "@semcore/divider": "4.20.2",
20
- "@semcore/flex-box": "5.21.2",
21
- "@semcore/popper": "5.26.3",
22
- "@semcore/utils": "4.22.2",
18
+ "@semcore/animation": "2.22.0-prerelease.0",
19
+ "@semcore/divider": "4.21.0-prerelease.0",
20
+ "@semcore/flex-box": "5.22.0-prerelease.0",
21
+ "@semcore/popper": "5.27.0-prerelease.0",
22
+ "@semcore/utils": "4.23.0-prerelease.0",
23
23
  "@types/d3-shape": "^3.1.0",
24
24
  "@upsetjs/venn.js": "1.4.2",
25
25
  "d3-array": "3.1.6",
@@ -33,7 +33,7 @@
33
33
  "hoist-non-react-statics": "3.3.2"
34
34
  },
35
35
  "peerDependencies": {
36
- "@semcore/core": "^2.17.5",
36
+ "@semcore/core": "^2.20.0-prerelease.0",
37
37
  "react": "16.8 - 18",
38
38
  "react-dom": "16.8 - 18"
39
39
  },