@semcore/d3-chart 17.0.0-prerelease.9 → 17.0.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.
- package/CHANGELOG.md +14 -1
- package/lib/cjs/Bubble.js +20 -15
- package/lib/cjs/Bubble.js.map +1 -1
- package/lib/cjs/a11y/PlotA11yView.js +5 -5
- package/lib/cjs/a11y/PlotA11yView.js.map +1 -1
- package/lib/cjs/component/Chart/AbstractChart.js +5 -17
- package/lib/cjs/component/Chart/AbstractChart.js.map +1 -1
- package/lib/cjs/component/Chart/CigaretteChart.js +197 -57
- package/lib/cjs/component/Chart/CigaretteChart.js.map +1 -1
- package/lib/cjs/component/Chart/CigaretteChart.type.js.map +1 -1
- package/lib/cjs/style/bubble.shadow.css +4 -0
- package/lib/cjs/utils.js +3 -2
- package/lib/cjs/utils.js.map +1 -1
- package/lib/es6/Bubble.js +20 -15
- package/lib/es6/Bubble.js.map +1 -1
- package/lib/es6/a11y/PlotA11yView.js +4 -3
- package/lib/es6/a11y/PlotA11yView.js.map +1 -1
- package/lib/es6/component/Chart/AbstractChart.js +5 -17
- package/lib/es6/component/Chart/AbstractChart.js.map +1 -1
- package/lib/es6/component/Chart/CigaretteChart.js +199 -59
- package/lib/es6/component/Chart/CigaretteChart.js.map +1 -1
- package/lib/es6/component/Chart/CigaretteChart.type.js.map +1 -1
- package/lib/es6/style/bubble.shadow.css +4 -0
- package/lib/es6/utils.js +3 -2
- package/lib/es6/utils.js.map +1 -1
- package/lib/esm/AnimatedClipPath.mjs +1 -1
- package/lib/esm/Area.mjs +2 -3
- package/lib/esm/Axis.mjs +4 -7
- package/lib/esm/Bar.mjs +1 -2
- package/lib/esm/Bubble.mjs +24 -21
- package/lib/esm/CompactHorizontalBar.mjs +4 -4
- package/lib/esm/Donut.mjs +5 -4
- package/lib/esm/Dots.mjs +1 -2
- package/lib/esm/HorizontalBar.mjs +1 -2
- package/lib/esm/Hover.mjs +2 -3
- package/lib/esm/Line.mjs +2 -3
- package/lib/esm/Pattern.mjs +6 -7
- package/lib/esm/Plot.mjs +3 -5
- package/lib/esm/Radar.mjs +7 -10
- package/lib/esm/RadialTree.mjs +17 -63
- package/lib/esm/Reference.mjs +0 -1
- package/lib/esm/ResponsiveContainer.mjs +3 -5
- package/lib/esm/ScatterPlot.mjs +2 -2
- package/lib/esm/StackBar.mjs +2 -2
- package/lib/esm/StackedArea.mjs +2 -2
- package/lib/esm/Tooltip.mjs +5 -8
- package/lib/esm/Venn.mjs +3 -3
- package/lib/esm/a11y/DataAccessibilityTable.mjs +2 -4
- package/lib/esm/a11y/PlotA11yModule.mjs +2 -2
- package/lib/esm/a11y/PlotA11yView.mjs +11 -19
- package/lib/esm/a11y/focus.mjs +2 -2
- package/lib/esm/a11y/hints.mjs +3 -3
- package/lib/esm/a11y/insights.mjs +15 -20
- package/lib/esm/a11y/intl.mjs +1 -1
- package/lib/esm/a11y/locale.mjs +1 -2
- package/lib/esm/a11y/serialize.mjs +17 -17
- package/lib/esm/component/Chart/AbstractChart.mjs +20 -34
- package/lib/esm/component/Chart/AreaChart.mjs +5 -4
- package/lib/esm/component/Chart/BarChart.mjs +4 -3
- package/lib/esm/component/Chart/BubbleChart.mjs +8 -8
- package/lib/esm/component/Chart/CigaretteChart.mjs +204 -64
- package/lib/esm/component/Chart/CompactHorizontalBarChart.mjs +2 -1
- package/lib/esm/component/Chart/DonutChart.mjs +3 -2
- package/lib/esm/component/Chart/HistogramChart.mjs +5 -4
- package/lib/esm/component/Chart/LineChart.mjs +5 -4
- package/lib/esm/component/Chart/RadarChart.mjs +4 -5
- package/lib/esm/component/Chart/ScatterPlotChart.mjs +3 -2
- package/lib/esm/component/Chart/VennChart.mjs +3 -3
- package/lib/esm/component/ChartLegend/BaseLegend.mjs +9 -14
- package/lib/esm/component/ChartLegend/LegendFlex/LegendFlex.mjs +1 -2
- package/lib/esm/component/ChartLegend/LegendItem/LegendItem.mjs +1 -2
- package/lib/esm/component/ChartLegend/LegendTable/LegendTable.mjs +2 -4
- package/lib/esm/component/ChartLegend/index.mjs +2 -0
- package/lib/esm/component/Cigarette/Cigarette.mjs +1 -2
- package/lib/esm/component/StackGroupBar/StackGroupBar.mjs +2 -3
- package/lib/esm/createElement.mjs +1 -1
- package/lib/esm/index.mjs +1 -0
- package/lib/esm/style/bubble.shadow.css +4 -0
- package/lib/esm/utils.mjs +3 -3
- package/lib/types/a11y/PlotA11yView.d.ts +1 -1
- package/lib/types/component/Chart/AbstractChart.d.ts +4 -7
- package/lib/types/component/Chart/CigaretteChart.type.d.ts +7 -4
- package/package.json +17 -17
|
@@ -10,6 +10,7 @@ var _core = require("@semcore/core");
|
|
|
10
10
|
var _baseComponents = require("@semcore/base-components");
|
|
11
11
|
var _i18nEnhance = _interopRequireDefault(require("@semcore/core/lib/utils/enhances/i18nEnhance"));
|
|
12
12
|
var _resolveColorEnhance = _interopRequireDefault(require("@semcore/core/lib/utils/enhances/resolveColorEnhance"));
|
|
13
|
+
var _rafTrottle = _interopRequireDefault(require("@semcore/core/lib/utils/rafTrottle"));
|
|
13
14
|
var _uniqueID = _interopRequireDefault(require("@semcore/core/lib/utils/uniqueID"));
|
|
14
15
|
var _divider = _interopRequireDefault(require("@semcore/divider"));
|
|
15
16
|
var _typography = require("@semcore/typography");
|
|
@@ -25,12 +26,52 @@ var _Cigarette = _interopRequireDefault(require("../Cigarette/Cigarette"));
|
|
|
25
26
|
|
|
26
27
|
// @ts-ignore
|
|
27
28
|
|
|
28
|
-
const
|
|
29
|
+
const DEFAULT_MINIMAL_BAR_WIDTH = 2;
|
|
30
|
+
const DEFAULT_GAP = 2;
|
|
29
31
|
class CigaretteChartComponent extends _AbstractChart.AbstractChart {
|
|
30
|
-
constructor(
|
|
31
|
-
super(
|
|
32
|
+
constructor(props) {
|
|
33
|
+
super(props);
|
|
34
|
+
(0, _defineProperty2.default)(this, "plotRef", /*#__PURE__*/_react.default.createRef());
|
|
32
35
|
(0, _defineProperty2.default)(this, "plotPadding", 0);
|
|
33
36
|
(0, _defineProperty2.default)(this, "offset", 0);
|
|
37
|
+
(0, _defineProperty2.default)(this, "onPlotMouseMove", (0, _rafTrottle.default)(event => {
|
|
38
|
+
if (!this.plotRef.current) return;
|
|
39
|
+
const [pX, pY] = (0, _utils.eventToPoint)(event, this.plotRef.current);
|
|
40
|
+
this.setState(prevState => ({
|
|
41
|
+
pX,
|
|
42
|
+
pY
|
|
43
|
+
}));
|
|
44
|
+
}));
|
|
45
|
+
(0, _defineProperty2.default)(this, "onPlotMouseLeave", (0, _rafTrottle.default)(() => {
|
|
46
|
+
this.setState(prevState => ({
|
|
47
|
+
pX: null,
|
|
48
|
+
pY: null
|
|
49
|
+
}));
|
|
50
|
+
}));
|
|
51
|
+
this.state = {
|
|
52
|
+
...this.state,
|
|
53
|
+
pX: null,
|
|
54
|
+
pY: null
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
get activeDataDefinitions() {
|
|
58
|
+
const {
|
|
59
|
+
dataDefinitions
|
|
60
|
+
} = this.state;
|
|
61
|
+
return dataDefinitions.filter(({
|
|
62
|
+
checked
|
|
63
|
+
}) => checked);
|
|
64
|
+
}
|
|
65
|
+
get activePositiveDataDefinitions() {
|
|
66
|
+
const {
|
|
67
|
+
data
|
|
68
|
+
} = this.asProps;
|
|
69
|
+
return this.activeDataDefinitions.filter(({
|
|
70
|
+
id
|
|
71
|
+
}) => {
|
|
72
|
+
const itemValue = data[id];
|
|
73
|
+
return typeof itemValue === 'number' && itemValue > 0;
|
|
74
|
+
});
|
|
34
75
|
}
|
|
35
76
|
resolveColor(id, index) {
|
|
36
77
|
return this.props.colorMap?.[id] ?? `blue-${5 - index}00`;
|
|
@@ -48,17 +89,86 @@ class CigaretteChartComponent extends _AbstractChart.AbstractChart {
|
|
|
48
89
|
w: 'fit-content'
|
|
49
90
|
};
|
|
50
91
|
}
|
|
92
|
+
totalValue() {
|
|
93
|
+
const {
|
|
94
|
+
data
|
|
95
|
+
} = this.asProps;
|
|
96
|
+
return this.activeDataDefinitions.reduce((acc, {
|
|
97
|
+
id
|
|
98
|
+
}) => {
|
|
99
|
+
const itemValue = data[id];
|
|
100
|
+
if (typeof itemValue === 'number') {
|
|
101
|
+
acc += itemValue;
|
|
102
|
+
}
|
|
103
|
+
return acc;
|
|
104
|
+
}, 0);
|
|
105
|
+
}
|
|
106
|
+
computeCigaretteItems() {
|
|
107
|
+
const {
|
|
108
|
+
plotWidth,
|
|
109
|
+
plotHeight,
|
|
110
|
+
data,
|
|
111
|
+
invertAxis,
|
|
112
|
+
minimalBarWidth
|
|
113
|
+
} = this.asProps;
|
|
114
|
+
const dataDefinitions = invertAxis ? this.activeDataDefinitions : [...this.activeDataDefinitions].reverse();
|
|
115
|
+
const count = this.activePositiveDataDefinitions.length;
|
|
116
|
+
const totalGapWidth = DEFAULT_GAP * Math.max(0, count - 1);
|
|
117
|
+
const availableSpace = Math.max(0, (invertAxis ? plotWidth : plotHeight) - totalGapWidth);
|
|
118
|
+
const totalValue = this.totalValue();
|
|
119
|
+
const dataDefinitionsItemSize = dataDefinitions.map(({
|
|
120
|
+
id
|
|
121
|
+
}) => {
|
|
122
|
+
if (totalValue === 0) {
|
|
123
|
+
return 0;
|
|
124
|
+
}
|
|
125
|
+
const itemValue = data[id];
|
|
126
|
+
if (typeof itemValue !== 'number') return 0;
|
|
127
|
+
return itemValue / totalValue * availableSpace;
|
|
128
|
+
});
|
|
129
|
+
const result = dataDefinitions.map((dd, index) => ({
|
|
130
|
+
...dd,
|
|
131
|
+
value: data[dd.id],
|
|
132
|
+
dataWidth: dataDefinitionsItemSize[index],
|
|
133
|
+
visualWidth: dataDefinitionsItemSize[index],
|
|
134
|
+
isMinVisible: false
|
|
135
|
+
}));
|
|
136
|
+
const smallItems = result.filter(r => {
|
|
137
|
+
const {
|
|
138
|
+
value,
|
|
139
|
+
dataWidth
|
|
140
|
+
} = r;
|
|
141
|
+
if (typeof value !== 'number') return false;
|
|
142
|
+
return value > 0 && dataWidth < minimalBarWidth;
|
|
143
|
+
});
|
|
144
|
+
if (smallItems.length === 0) return result;
|
|
145
|
+
let extraNeeded = 0;
|
|
146
|
+
for (const smallItem of smallItems) {
|
|
147
|
+
extraNeeded += minimalBarWidth - smallItem.dataWidth;
|
|
148
|
+
smallItem.visualWidth = minimalBarWidth;
|
|
149
|
+
smallItem.isMinVisible = true;
|
|
150
|
+
}
|
|
151
|
+
const donors = result.filter(r => !r.isMinVisible && r.dataWidth > minimalBarWidth);
|
|
152
|
+
const donorCapacity = donors.reduce((s, d) => s + (d.dataWidth - minimalBarWidth), 0);
|
|
153
|
+
for (const donor of donors) {
|
|
154
|
+
const available = donor.dataWidth - minimalBarWidth;
|
|
155
|
+
const share = available / donorCapacity;
|
|
156
|
+
const taken = share * extraNeeded;
|
|
157
|
+
donor.visualWidth = donor.dataWidth - taken;
|
|
158
|
+
}
|
|
159
|
+
return result;
|
|
160
|
+
}
|
|
51
161
|
get xScale() {
|
|
52
162
|
const {
|
|
53
|
-
|
|
163
|
+
plotWidth
|
|
54
164
|
} = this.asProps;
|
|
55
|
-
return
|
|
165
|
+
return (0, _d3Scale.scaleLinear)([0, plotWidth]);
|
|
56
166
|
}
|
|
57
167
|
get yScale() {
|
|
58
168
|
const {
|
|
59
|
-
|
|
169
|
+
plotHeight
|
|
60
170
|
} = this.asProps;
|
|
61
|
-
return
|
|
171
|
+
return (0, _d3Scale.scaleLinear)([plotHeight, 0]);
|
|
62
172
|
}
|
|
63
173
|
renderChart() {
|
|
64
174
|
const {
|
|
@@ -76,18 +186,25 @@ class CigaretteChartComponent extends _AbstractChart.AbstractChart {
|
|
|
76
186
|
highlightedLine
|
|
77
187
|
} = this.state;
|
|
78
188
|
this.offset = 0;
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
189
|
+
const items = this.computeCigaretteItems();
|
|
190
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, items.map((item, index) => {
|
|
191
|
+
const {
|
|
192
|
+
visualWidth,
|
|
193
|
+
id
|
|
194
|
+
} = item;
|
|
195
|
+
const value = data[id];
|
|
196
|
+
if (value === _utils.interpolateValue || value === null) {
|
|
82
197
|
return null;
|
|
83
198
|
}
|
|
84
|
-
const
|
|
85
|
-
const
|
|
86
|
-
const
|
|
87
|
-
const
|
|
88
|
-
const x = index === 0 ? 0 : this.offset;
|
|
199
|
+
const height = invertAxis ? plotHeight - DEFAULT_GAP * 2 : plotWidth - DEFAULT_GAP * 2;
|
|
200
|
+
const width = visualWidth;
|
|
201
|
+
const y = DEFAULT_GAP;
|
|
202
|
+
const x = this.offset;
|
|
89
203
|
const r = height < 28 ? 2 : 4;
|
|
90
|
-
this.offset
|
|
204
|
+
this.offset += visualWidth;
|
|
205
|
+
if (index < items.length - 1) {
|
|
206
|
+
this.offset += DEFAULT_GAP;
|
|
207
|
+
}
|
|
91
208
|
return /*#__PURE__*/_react.default.createElement(_Cigarette.default, {
|
|
92
209
|
key: item.id,
|
|
93
210
|
dataKey: item.id,
|
|
@@ -128,7 +245,9 @@ class CigaretteChartComponent extends _AbstractChart.AbstractChart {
|
|
|
128
245
|
showTooltip
|
|
129
246
|
} = this.asProps;
|
|
130
247
|
const {
|
|
131
|
-
dataDefinitions
|
|
248
|
+
dataDefinitions,
|
|
249
|
+
pX,
|
|
250
|
+
pY
|
|
132
251
|
} = this.state;
|
|
133
252
|
const STooltipChildrenWrapper = _baseComponents.Box;
|
|
134
253
|
if (!showTooltip) {
|
|
@@ -138,16 +257,20 @@ class CigaretteChartComponent extends _AbstractChart.AbstractChart {
|
|
|
138
257
|
x: invertAxis ? '' : undefined,
|
|
139
258
|
y: invertAxis ? undefined : '',
|
|
140
259
|
wMin: 100,
|
|
141
|
-
hideHoverLine: true
|
|
260
|
+
hideHoverLine: true,
|
|
261
|
+
xIndex: pX !== null ? this.visualScale(pX) : undefined,
|
|
262
|
+
yIndex: pY !== null ? this.visualScale(pY) : undefined
|
|
142
263
|
}, tooltipProps => {
|
|
143
264
|
var _ref4;
|
|
144
265
|
const dataKey = invertAxis ? tooltipProps.xIndex : tooltipProps.yIndex;
|
|
145
|
-
const showPercentColumn = showPercentValueInTooltip && this.totalValue(
|
|
266
|
+
const showPercentColumn = showPercentValueInTooltip && this.totalValue() !== 0;
|
|
146
267
|
if (tooltipViewType === 'single') {
|
|
147
268
|
var _ref3;
|
|
148
269
|
const item = dataDefinitions.find(dataDefItem => dataDefItem.id === dataKey);
|
|
149
270
|
if (!item) {
|
|
150
|
-
return
|
|
271
|
+
return {
|
|
272
|
+
children: null
|
|
273
|
+
};
|
|
151
274
|
}
|
|
152
275
|
return {
|
|
153
276
|
children: (_ref3 = (0, _core.sstyled)(styles), /*#__PURE__*/_react.default.createElement(STooltipChildrenWrapper, _ref3.cn("STooltipChildrenWrapper", {
|
|
@@ -198,6 +321,22 @@ class CigaretteChartComponent extends _AbstractChart.AbstractChart {
|
|
|
198
321
|
};
|
|
199
322
|
});
|
|
200
323
|
}
|
|
324
|
+
percentValue(data, key) {
|
|
325
|
+
const {
|
|
326
|
+
percentFormatter
|
|
327
|
+
} = this.asProps;
|
|
328
|
+
const total = this.totalValue();
|
|
329
|
+
const value = data[key];
|
|
330
|
+
if (typeof value === 'number' && total !== 0) {
|
|
331
|
+
const rawPercent = 100 * value / total;
|
|
332
|
+
const formattedPercent = percentFormatter ? percentFormatter(rawPercent) : Math.round(rawPercent);
|
|
333
|
+
return `${formattedPercent}%`;
|
|
334
|
+
}
|
|
335
|
+
if (value === null) {
|
|
336
|
+
return `0%`;
|
|
337
|
+
}
|
|
338
|
+
return _AbstractChart.NOT_A_VALUE;
|
|
339
|
+
}
|
|
201
340
|
renderTooltipTotalLine(dataItem) {
|
|
202
341
|
const {
|
|
203
342
|
showTotalInTooltip,
|
|
@@ -206,7 +345,7 @@ class CigaretteChartComponent extends _AbstractChart.AbstractChart {
|
|
|
206
345
|
if (!showTotalInTooltip) {
|
|
207
346
|
return null;
|
|
208
347
|
}
|
|
209
|
-
const total = this.totalValue(
|
|
348
|
+
const total = this.totalValue();
|
|
210
349
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_baseComponents.Box, {
|
|
211
350
|
mt: 2,
|
|
212
351
|
mr: 2
|
|
@@ -248,13 +387,16 @@ class CigaretteChartComponent extends _AbstractChart.AbstractChart {
|
|
|
248
387
|
}), /*#__PURE__*/_react.default.createElement(_baseComponents.Flex, _ref5.cn("Flex", {
|
|
249
388
|
"direction": 'column'
|
|
250
389
|
}), header, /*#__PURE__*/_react.default.createElement(_.Plot, _ref5.cn("Plot", {
|
|
390
|
+
"ref": this.plotRef,
|
|
251
391
|
"data": data,
|
|
252
392
|
"scale": [this.xScale, this.yScale],
|
|
253
393
|
"width": plotWidth,
|
|
254
394
|
"height": plotHeight,
|
|
255
395
|
"dataHints": this.dataHints,
|
|
256
396
|
"patterns": patterns,
|
|
257
|
-
"a11yAltTextConfig": a11yAltTextConfig
|
|
397
|
+
"a11yAltTextConfig": a11yAltTextConfig,
|
|
398
|
+
"onMouseMove": this.onPlotMouseMove,
|
|
399
|
+
"onMouseLeave": this.onPlotMouseLeave
|
|
258
400
|
}), this.renderTooltip(), this.renderChart())), this.renderLegend());
|
|
259
401
|
}
|
|
260
402
|
return _ref6 = (0, _core.sstyled)(styles), /*#__PURE__*/_react.default.createElement(SChart, _ref6.cn("SChart", {
|
|
@@ -263,13 +405,16 @@ class CigaretteChartComponent extends _AbstractChart.AbstractChart {
|
|
|
263
405
|
"__excludeProps": ['onClick', 'data']
|
|
264
406
|
}, _ref2)
|
|
265
407
|
}), /*#__PURE__*/_react.default.createElement(_.Plot, _ref6.cn("Plot", {
|
|
408
|
+
"ref": this.plotRef,
|
|
266
409
|
"data": data,
|
|
267
410
|
"scale": [this.xScale, this.yScale],
|
|
268
411
|
"width": plotWidth,
|
|
269
412
|
"height": plotHeight,
|
|
270
413
|
"dataHints": this.dataHints,
|
|
271
414
|
"patterns": patterns,
|
|
272
|
-
"a11yAltTextConfig": a11yAltTextConfig
|
|
415
|
+
"a11yAltTextConfig": a11yAltTextConfig,
|
|
416
|
+
"onMouseMove": this.onPlotMouseMove,
|
|
417
|
+
"onMouseLeave": this.onPlotMouseLeave
|
|
273
418
|
}), this.renderTooltip(), this.renderChart()), /*#__PURE__*/_react.default.createElement(_baseComponents.Flex, _ref6.cn("Flex", {
|
|
274
419
|
"direction": 'column',
|
|
275
420
|
"gap": 2
|
|
@@ -280,42 +425,36 @@ class CigaretteChartComponent extends _AbstractChart.AbstractChart {
|
|
|
280
425
|
chartType: 'Cigarette'
|
|
281
426
|
});
|
|
282
427
|
}
|
|
283
|
-
get
|
|
428
|
+
get visualScale() {
|
|
429
|
+
const cigaretteItems = this.computeCigaretteItems();
|
|
284
430
|
const {
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
431
|
+
range,
|
|
432
|
+
domain
|
|
433
|
+
} = cigaretteItems.reduce((acc, {
|
|
434
|
+
id,
|
|
435
|
+
visualWidth
|
|
436
|
+
}, index) => {
|
|
437
|
+
const {
|
|
438
|
+
range,
|
|
439
|
+
domain
|
|
440
|
+
} = acc;
|
|
441
|
+
if (visualWidth) {
|
|
442
|
+
range.push(id);
|
|
443
|
+
if (domain.length === 0) {
|
|
444
|
+
domain.push(visualWidth + DEFAULT_GAP);
|
|
445
|
+
return acc;
|
|
446
|
+
}
|
|
447
|
+
if (index !== cigaretteItems.length - 1) {
|
|
448
|
+
const lastAddedDomain = domain[domain.length - 1];
|
|
449
|
+
domain.push(lastAddedDomain + visualWidth + DEFAULT_GAP);
|
|
450
|
+
}
|
|
295
451
|
}
|
|
452
|
+
return acc;
|
|
453
|
+
}, {
|
|
454
|
+
range: [],
|
|
455
|
+
domain: []
|
|
296
456
|
});
|
|
297
|
-
return
|
|
298
|
-
}
|
|
299
|
-
get categoryScale() {
|
|
300
|
-
const {
|
|
301
|
-
plotWidth,
|
|
302
|
-
plotHeight,
|
|
303
|
-
invertAxis
|
|
304
|
-
} = this.asProps;
|
|
305
|
-
const range = invertAxis ? [plotHeight, 0] : [0, plotWidth];
|
|
306
|
-
return (0, _d3Scale.scaleBand)([0], range);
|
|
307
|
-
}
|
|
308
|
-
get valueScale() {
|
|
309
|
-
const {
|
|
310
|
-
plotWidth,
|
|
311
|
-
plotHeight,
|
|
312
|
-
invertAxis
|
|
313
|
-
} = this.asProps;
|
|
314
|
-
let max = 0;
|
|
315
|
-
this.selectedData.forEach(value => {
|
|
316
|
-
max = max + value;
|
|
317
|
-
});
|
|
318
|
-
return (0, _d3Scale.scaleLinear)().range(invertAxis ? [0, plotWidth] : [plotHeight, 0]).domain([0, max]);
|
|
457
|
+
return (0, _d3Scale.scaleThreshold)(domain, range);
|
|
319
458
|
}
|
|
320
459
|
}
|
|
321
460
|
(0, _defineProperty2.default)(CigaretteChartComponent, "displayName", 'Cigarette.Bar');
|
|
@@ -332,7 +471,8 @@ class CigaretteChartComponent extends _AbstractChart.AbstractChart {
|
|
|
332
471
|
duration: 500,
|
|
333
472
|
plotWidth: !invertAxis && !props.plotWidth ? 44 : props.plotWidth,
|
|
334
473
|
plotHeight: invertAxis && !props.plotHeight ? 28 : props.plotHeight,
|
|
335
|
-
showPercentValueInTooltip: false
|
|
474
|
+
showPercentValueInTooltip: false,
|
|
475
|
+
minimalBarWidth: DEFAULT_MINIMAL_BAR_WIDTH
|
|
336
476
|
};
|
|
337
477
|
});
|
|
338
478
|
(0, _defineProperty2.default)(CigaretteChartComponent, "enhance", [(0, _resolveColorEnhance.default)(), (0, _uniqueID.default)(), (0, _i18nEnhance.default)(_intergalacticDynamicLocales.localizedMessages)]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CigaretteChart.js","names":["_core","require","_baseComponents","_i18nEnhance","_interopRequireDefault","_resolveColorEnhance","_uniqueID","_divider","_typography","_d3Scale","_react","_","_AbstractChart","_AnimatedClipPath","_intergalacticDynamicLocales","_utils","_Cigarette","wMin","CigaretteChartComponent","AbstractChart","constructor","args","_defineProperty2","default","resolveColor","id","index","props","colorMap","getDefaultDataDefinitions","dataDefinitions","map","dataDef","columns","slice","defaultLegendProps","legendType","w","xScale","invertAxis","asProps","valueScale","categoryScale","yScale","renderChart","data","uid","duration","patterns","plotHeight","plotWidth","onClick","highlightedLine","state","offset","createElement","Fragment","reverse","item","value","checked","interpolateValue","absWidth","Math","abs","max","domain","height","scaleToBand","bandwidth","width","y","x","r","key","dataKey","hide","length","color","direction","hovered","undefined","renderTooltip","_ref","tooltipTitle","tooltipViewType","showPercentValueInTooltip","styles","showTooltip","STooltipChildrenWrapper","Box","HoverRect","Tooltip","hideHoverLine","tooltipProps","_ref4","xIndex","yIndex","showPercentColumn","totalValue","_ref3","find","dataDefItem","children","sstyled","cn","assignProps","Dot","mr","label","Text","percentValue","tooltipValueFormatter","Flex","Title","style","opacity","textAlign","bold","renderTooltipTotalLine","dataItem","showTotalInTooltip","total","mt","Number","isNaN","NOT_A_VALUE","renderHeader","header","render","_ref2","_ref6","SChart","a11yAltTextConfig","_ref5","Plot","dataHints","renderLegend","getLegendAriaLabel","getI18nText","chartType","selectedData","result","Map","forEach","set","range","scaleBand","scaleLinear","showXAxis","showYAxis","showLegend","marginX","marginY","resolveColorEnhance","uniqueIDEnhancement","i18nEnhance","localizedMessages","CigaretteChart","exports","createComponent"],"sources":["../../../../src/component/Chart/CigaretteChart.tsx"],"sourcesContent":["import { Box, Flex } from '@semcore/base-components';\nimport { createComponent, Root, sstyled } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport resolveColorEnhance from '@semcore/core/lib/utils/enhances/resolveColorEnhance';\nimport uniqueIDEnhancement from '@semcore/core/lib/utils/uniqueID';\nimport Divider from '@semcore/divider';\nimport { Text } from '@semcore/typography';\nimport { scaleBand, scaleLinear } from 'd3-scale';\nimport React from 'react';\n\nimport type { CigaretteChartData, CigaretteChartProps, CigaretteChartType } from './CigaretteChart.type';\n// @ts-ignore\nimport { HoverRect, Plot } from '../..';\nimport { AbstractChart, NOT_A_VALUE } from './AbstractChart';\nimport type { ObjectData } from './AbstractChart.type';\n// @ts-ignore\nimport AnimatedClipPath from '../../AnimatedClipPath';\nimport { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';\nimport { interpolateValue, scaleToBand } from '../../utils';\nimport type { LegendItem } from '../ChartLegend/LegendItem/LegendItem.type';\nimport Cigarette from '../Cigarette/Cigarette';\n\nconst wMin = 2;\n\nclass CigaretteChartComponent extends AbstractChart<\n CigaretteChartData,\n CigaretteChartProps,\n typeof CigaretteChartComponent.enhance\n> {\n static displayName = 'Cigarette.Bar';\n\n static defaultProps: any = (props: CigaretteChartProps) => {\n const invertAxis = props.invertAxis ?? true;\n return {\n invertAxis: invertAxis,\n showXAxis: false,\n showYAxis: false,\n showTooltip: true,\n showLegend: false,\n marginX: 0,\n marginY: 0,\n duration: 500,\n plotWidth: !invertAxis && !props.plotWidth ? 44 : props.plotWidth,\n plotHeight: invertAxis && !props.plotHeight ? 28 : props.plotHeight,\n showPercentValueInTooltip: false,\n };\n };\n\n static enhance = [\n resolveColorEnhance(),\n uniqueIDEnhancement(),\n i18nEnhance(localizedMessages),\n ] as const;\n\n protected override plotPadding = 0;\n\n private offset = 0;\n\n protected override resolveColor(id: string, index: number) {\n return this.props.colorMap?.[id] ?? `blue-${5 - index}00`;\n }\n\n protected override getDefaultDataDefinitions(): Array<\n LegendItem & { columns: React.ReactNode[] }\n > {\n const dataDefinitions = super.getDefaultDataDefinitions();\n\n return dataDefinitions.map((dataDef) => {\n dataDef.columns = dataDef.columns.slice(1);\n return dataDef;\n });\n }\n\n protected override defaultLegendProps() {\n return {\n legendType: 'Table' as const,\n w: 'fit-content',\n };\n }\n\n get xScale() {\n const { invertAxis } = this.asProps;\n\n return invertAxis ? this.valueScale : this.categoryScale;\n }\n\n get yScale() {\n const { invertAxis } = this.asProps;\n\n return invertAxis ? this.categoryScale : this.valueScale;\n }\n\n renderChart() {\n const { invertAxis, data, uid, duration, patterns, plotHeight, plotWidth, onClick } =\n this.asProps;\n const { dataDefinitions, highlightedLine } = this.state;\n\n this.offset = 0;\n\n return (\n <>\n {(invertAxis ? dataDefinitions : [...dataDefinitions].reverse()).map((item, index) => {\n const value = data[item.id];\n\n if (!item.checked || value === interpolateValue || value === null) {\n return null;\n }\n\n const absWidth = Math.abs(\n this.valueScale(value) -\n Math.max(this.valueScale(this.valueScale.domain()[0]), this.valueScale(0)),\n );\n const height = scaleToBand(this.categoryScale).bandwidth() - 4;\n const width = value === 0 ? 0 : Math.max(absWidth, wMin * 2) - wMin;\n const y = 2;\n const x = index === 0 ? 0 : this.offset;\n const r = height < 28 ? 2 : 4;\n\n this.offset = this.offset + width + wMin;\n\n return (\n <Cigarette\n key={item.id}\n dataKey={item.id}\n index={index}\n y={invertAxis ? y : x}\n x={invertAxis ? x : y}\n width={invertAxis ? width : height}\n height={invertAxis ? height : width}\n uid={uid}\n hide={!item.checked}\n duration={duration}\n r={index === 0 || index === dataDefinitions.length - 1 ? r : 0}\n color={item.color}\n patterns={patterns}\n direction={invertAxis ? 'horizontal' : 'vertical'}\n onClick={onClick}\n hovered={\n highlightedLine === index ? true : highlightedLine === -1 ? undefined : false\n }\n />\n );\n })}\n\n <AnimatedClipPath\n aria-hidden\n duration={duration}\n id={uid}\n x='0'\n y='0'\n width={invertAxis ? 0 : plotWidth}\n height={invertAxis ? plotHeight : 0}\n />\n </>\n );\n }\n\n renderTooltip(): React.ReactNode {\n const { data, invertAxis, tooltipTitle, tooltipViewType, showPercentValueInTooltip, styles, showTooltip } =\n this.asProps;\n const { dataDefinitions } = this.state;\n const STooltipChildrenWrapper = Root;\n\n if (!showTooltip) {\n return null;\n }\n\n return (\n <HoverRect.Tooltip\n x={invertAxis ? '' : undefined}\n y={invertAxis ? undefined : ''}\n wMin={100}\n hideHoverLine={true}\n >\n {(tooltipProps: any) => {\n const dataKey = invertAxis ? tooltipProps.xIndex : tooltipProps.yIndex;\n const showPercentColumn = showPercentValueInTooltip && this.totalValue(data) !== 0;\n\n if (tooltipViewType === 'single') {\n const item = dataDefinitions.find((dataDefItem) => dataDefItem.id === dataKey);\n if (!item) {\n return null;\n }\n\n return {\n children: sstyled(styles)(\n <STooltipChildrenWrapper render={Box} columnsCount={showPercentColumn ? '3' : '2'} __excludeProps={['data']}>\n <HoverRect.Tooltip.Dot mr={2} color={item.color}>\n {item.label}\n </HoverRect.Tooltip.Dot>\n { showPercentColumn && <Text textAlign='end' color='text-secondary'>{this.percentValue(data, item.id)}</Text> }\n <Text textAlign='end' bold>{this.tooltipValueFormatter(data[item.id])}</Text>\n </STooltipChildrenWrapper>,\n ),\n };\n }\n\n return {\n children: sstyled(styles)(\n <Flex direction='column'>\n {tooltipTitle && (\n <HoverRect.Tooltip.Title>Some tooltip title</HoverRect.Tooltip.Title>\n )}\n\n <STooltipChildrenWrapper render={Box} columnsCount={showPercentColumn ? '3' : '2'} __excludeProps={['data']}>\n {dataDefinitions.map((item) => {\n const style = { opacity: item.id === dataKey ? 1 : 0.3 };\n return (\n item.checked && (\n <React.Fragment key={item.id}>\n <HoverRect.Tooltip.Dot mr={2} color={item.color} style={style}>\n {item.label}\n </HoverRect.Tooltip.Dot>\n { showPercentColumn && <Text textAlign='end' color='text-secondary' style={style}>{this.percentValue(data, item.id)}</Text> }\n <Text textAlign='end' bold style={style}>{this.tooltipValueFormatter(data[item.id])}</Text>\n </React.Fragment>\n )\n );\n })}\n\n {this.renderTooltipTotalLine(data)}\n </STooltipChildrenWrapper>\n </Flex>,\n ),\n };\n }}\n </HoverRect.Tooltip>\n );\n }\n\n protected override renderTooltipTotalLine<D extends ObjectData>(dataItem: D) {\n const { showTotalInTooltip, showPercentValueInTooltip } = this.asProps;\n\n if (!showTotalInTooltip) {\n return null;\n }\n\n const total = this.totalValue(dataItem);\n\n return (\n <>\n <Box mt={2} mr={2}>Total</Box>\n { showPercentValueInTooltip && total !== 0 && <Text mt={2} textAlign='end' color='text-secondary'>{Number.isNaN(total) ? NOT_A_VALUE : '100%'}</Text> }\n <Text mt={2} textAlign='end' bold>{Number.isNaN(total) ? NOT_A_VALUE : total}</Text>\n </>\n );\n }\n\n renderHeader() {\n return this.asProps.header ?? null;\n }\n\n override render() {\n const SChart = Root;\n const { styles, plotWidth, plotHeight, data, patterns, invertAxis, a11yAltTextConfig } =\n this.asProps;\n\n const header = this.renderHeader();\n\n if (invertAxis) {\n return sstyled(styles)(\n <SChart render={Flex} gap={6} direction='column' __excludeProps={['onClick', 'data']}>\n <Flex direction='column'>\n {header}\n <Plot\n data={data}\n scale={[this.xScale, this.yScale]}\n width={plotWidth}\n height={plotHeight}\n dataHints={this.dataHints}\n patterns={patterns}\n a11yAltTextConfig={a11yAltTextConfig}\n >\n {this.renderTooltip()}\n {this.renderChart()}\n </Plot>\n </Flex>\n {this.renderLegend()}\n </SChart>,\n );\n }\n\n return sstyled(styles)(\n <SChart render={Flex} gap={6} __excludeProps={['onClick', 'data']}>\n <Plot\n data={data}\n scale={[this.xScale, this.yScale]}\n width={plotWidth}\n height={plotHeight}\n dataHints={this.dataHints}\n patterns={patterns}\n a11yAltTextConfig={a11yAltTextConfig}\n >\n {this.renderTooltip()}\n {this.renderChart()}\n </Plot>\n <Flex direction='column' gap={2}>\n {header && (\n <>\n <Box>{header}</Box>\n <Divider />\n </>\n )}\n {this.renderLegend()}\n </Flex>\n </SChart>,\n );\n }\n\n protected getLegendAriaLabel(): string {\n return this.asProps.getI18nText('legendForChart', { chartType: 'Cigarette' });\n }\n\n private get selectedData() {\n const { data } = this.asProps;\n const { dataDefinitions } = this.state;\n\n const result = new Map<string, number>();\n\n dataDefinitions.forEach((dataDefItem) => {\n const value = data[dataDefItem.id];\n if (dataDefItem.checked && value !== interpolateValue) {\n result.set(dataDefItem.id, value);\n }\n });\n\n return result;\n }\n\n private get categoryScale() {\n const { plotWidth, plotHeight, invertAxis } = this.asProps;\n\n const range = invertAxis ? [plotHeight, 0] : [0, plotWidth];\n\n return scaleBand<{}>([0], range);\n }\n\n private get valueScale() {\n const { plotWidth, plotHeight, invertAxis } = this.asProps;\n\n let max = 0;\n\n this.selectedData.forEach((value) => {\n max = max + value;\n });\n\n return scaleLinear()\n .range(invertAxis ? [0, plotWidth] : [plotHeight, 0])\n .domain([0, max]);\n }\n}\n\nexport const CigaretteChart: CigaretteChartType = createComponent(CigaretteChartComponent);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"CigaretteChart.js","names":["_core","require","_baseComponents","_i18nEnhance","_interopRequireDefault","_resolveColorEnhance","_rafTrottle","_uniqueID","_divider","_typography","_d3Scale","_react","_","_AbstractChart","_AnimatedClipPath","_intergalacticDynamicLocales","_utils","_Cigarette","DEFAULT_MINIMAL_BAR_WIDTH","DEFAULT_GAP","CigaretteChartComponent","AbstractChart","constructor","props","_defineProperty2","default","React","createRef","trottle","event","plotRef","current","pX","pY","eventToPoint","setState","prevState","state","activeDataDefinitions","dataDefinitions","filter","checked","activePositiveDataDefinitions","data","asProps","id","itemValue","resolveColor","index","colorMap","getDefaultDataDefinitions","map","dataDef","columns","slice","defaultLegendProps","legendType","w","totalValue","reduce","acc","computeCigaretteItems","plotWidth","plotHeight","invertAxis","minimalBarWidth","reverse","count","length","totalGapWidth","Math","max","availableSpace","dataDefinitionsItemSize","result","dd","value","dataWidth","visualWidth","isMinVisible","smallItems","r","extraNeeded","smallItem","donors","donorCapacity","s","d","donor","available","share","taken","xScale","scaleLinear","yScale","renderChart","uid","duration","patterns","onClick","highlightedLine","offset","items","createElement","Fragment","item","interpolateValue","height","width","y","x","key","dataKey","hide","color","direction","hovered","undefined","renderTooltip","_ref","tooltipTitle","tooltipViewType","showPercentValueInTooltip","styles","showTooltip","STooltipChildrenWrapper","Box","HoverRect","Tooltip","wMin","hideHoverLine","xIndex","visualScale","yIndex","tooltipProps","_ref4","showPercentColumn","_ref3","find","dataDefItem","children","sstyled","cn","assignProps","Dot","mr","label","Text","percentValue","tooltipValueFormatter","Flex","Title","style","opacity","textAlign","bold","renderTooltipTotalLine","percentFormatter","total","rawPercent","formattedPercent","round","NOT_A_VALUE","dataItem","showTotalInTooltip","mt","Number","isNaN","renderHeader","header","render","_ref2","_ref6","SChart","a11yAltTextConfig","_ref5","Plot","dataHints","onPlotMouseMove","onPlotMouseLeave","renderLegend","getLegendAriaLabel","getI18nText","chartType","cigaretteItems","range","domain","push","lastAddedDomain","scaleThreshold","showXAxis","showYAxis","showLegend","marginX","marginY","resolveColorEnhance","uniqueIDEnhancement","i18nEnhance","localizedMessages","CigaretteChart","exports","createComponent"],"sources":["../../../../src/component/Chart/CigaretteChart.tsx"],"sourcesContent":["import { Box, Flex } from '@semcore/base-components';\nimport { createComponent, Root, sstyled } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport resolveColorEnhance from '@semcore/core/lib/utils/enhances/resolveColorEnhance';\nimport trottle from '@semcore/core/lib/utils/rafTrottle';\nimport uniqueIDEnhancement from '@semcore/core/lib/utils/uniqueID';\nimport Divider from '@semcore/divider';\nimport { Text } from '@semcore/typography';\nimport { scaleThreshold, scaleLinear, scaleBand } from 'd3-scale';\nimport React from 'react';\n\nimport type { CigaretteChartData, CigaretteChartDataKey, CigaretteChartProps, CigaretteChartType } from './CigaretteChart.type';\n// @ts-ignore\nimport { HoverRect, Plot } from '../..';\nimport type { ChartState } from './AbstractChart';\nimport { AbstractChart, NOT_A_VALUE } from './AbstractChart';\nimport type { ObjectData } from './AbstractChart.type';\n// @ts-ignore\nimport AnimatedClipPath from '../../AnimatedClipPath';\nimport { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';\nimport { eventToPoint, interpolateValue } from '../../utils';\nimport type { LegendItem } from '../ChartLegend/LegendItem/LegendItem.type';\nimport Cigarette from '../Cigarette/Cigarette';\n\nconst DEFAULT_MINIMAL_BAR_WIDTH = 2;\nconst DEFAULT_GAP = 2;\n\ntype ScaleThresholdConfig = { range: Array<CigaretteChartDataKey>; domain: Array<number> };\n\ntype CigaretteChartState = ChartState & {\n pX: number | null;\n pY: number | null;\n};\n\nclass CigaretteChartComponent extends AbstractChart<\n CigaretteChartData,\n CigaretteChartProps,\n typeof CigaretteChartComponent.enhance,\n typeof CigaretteChartComponent.defaultProps,\n CigaretteChartState\n> {\n static displayName = 'Cigarette.Bar';\n\n static defaultProps: any = (props: CigaretteChartProps) => {\n const invertAxis = props.invertAxis ?? true;\n return {\n invertAxis: invertAxis,\n showXAxis: false,\n showYAxis: false,\n showTooltip: true,\n showLegend: false,\n marginX: 0,\n marginY: 0,\n duration: 500,\n plotWidth: !invertAxis && !props.plotWidth ? 44 : props.plotWidth,\n plotHeight: invertAxis && !props.plotHeight ? 28 : props.plotHeight,\n showPercentValueInTooltip: false,\n minimalBarWidth: DEFAULT_MINIMAL_BAR_WIDTH,\n };\n };\n\n static enhance = [\n resolveColorEnhance(),\n uniqueIDEnhancement(),\n i18nEnhance(localizedMessages),\n ] as const;\n\n constructor(props: CigaretteChartProps) {\n super(props);\n\n this.state = {\n ...this.state,\n pX: null,\n pY: null,\n };\n }\n\n private plotRef = React.createRef<SVGElement>();\n\n protected override plotPadding = 0;\n\n private offset = 0;\n\n private get activeDataDefinitions() {\n const { dataDefinitions } = this.state;\n\n return dataDefinitions.filter(({ checked }) => checked);\n }\n\n private get activePositiveDataDefinitions() {\n const { data } = this.asProps;\n\n return this.activeDataDefinitions.filter(({ id }) => {\n const itemValue = data[id];\n\n return typeof itemValue === 'number' && itemValue > 0;\n });\n }\n\n protected override resolveColor(id: string, index: number) {\n return this.props.colorMap?.[id] ?? `blue-${5 - index}00`;\n }\n\n protected override getDefaultDataDefinitions(): Array<\n LegendItem & { columns: React.ReactNode[] }\n > {\n const dataDefinitions = super.getDefaultDataDefinitions();\n\n return dataDefinitions.map((dataDef) => {\n dataDef.columns = dataDef.columns.slice(1);\n return dataDef;\n });\n }\n\n protected override defaultLegendProps() {\n return {\n legendType: 'Table' as const,\n w: 'fit-content',\n };\n }\n\n private onPlotMouseMove = trottle((event: React.MouseEvent<HTMLElement>) => {\n if (!this.plotRef.current) return;\n\n const [pX, pY] = eventToPoint(event, this.plotRef.current);\n\n this.setState((prevState) => ({ pX, pY }));\n });\n\n private onPlotMouseLeave = trottle(() => {\n this.setState((prevState) => ({ pX: null, pY: null }));\n });\n\n protected override totalValue() {\n const { data } = this.asProps;\n\n return this.activeDataDefinitions.reduce((acc, { id }) => {\n const itemValue = data[id];\n\n if (typeof itemValue === 'number') {\n acc += itemValue;\n }\n\n return acc;\n }, 0);\n }\n\n private computeCigaretteItems() {\n const { plotWidth, plotHeight, data, invertAxis, minimalBarWidth } = this.asProps;\n\n const dataDefinitions = invertAxis\n ? this.activeDataDefinitions\n : [...this.activeDataDefinitions].reverse();\n\n const count = this.activePositiveDataDefinitions.length;\n const totalGapWidth = DEFAULT_GAP * Math.max(0, count - 1);\n const availableSpace = Math.max(0, (invertAxis ? plotWidth : plotHeight) - totalGapWidth);\n\n const totalValue = this.totalValue();\n\n const dataDefinitionsItemSize = dataDefinitions.map(({ id }) => {\n if (totalValue === 0) {\n return 0;\n }\n\n const itemValue = data[id];\n\n if (typeof itemValue !== 'number') return 0;\n\n return (itemValue / totalValue) * availableSpace;\n });\n\n const result = dataDefinitions.map((dd, index) => ({\n ...dd,\n value: data[dd.id],\n dataWidth: dataDefinitionsItemSize[index],\n visualWidth: dataDefinitionsItemSize[index],\n isMinVisible: false,\n }));\n\n const smallItems = result.filter((r) => {\n const { value, dataWidth } = r;\n\n if (typeof value !== 'number') return false;\n\n return value > 0 && dataWidth < minimalBarWidth;\n });\n\n if (smallItems.length === 0) return result;\n\n let extraNeeded = 0;\n\n for (const smallItem of smallItems) {\n extraNeeded += minimalBarWidth - smallItem.dataWidth;\n smallItem.visualWidth = minimalBarWidth;\n smallItem.isMinVisible = true;\n }\n\n const donors = result.filter((r) => !r.isMinVisible && r.dataWidth > minimalBarWidth);\n const donorCapacity = donors.reduce(\n (s, d) => s + (d.dataWidth - minimalBarWidth),\n 0,\n );\n\n for (const donor of donors) {\n const available = donor.dataWidth - minimalBarWidth;\n const share = available / donorCapacity;\n const taken = share * extraNeeded;\n donor.visualWidth = donor.dataWidth - taken;\n }\n\n return result;\n };\n\n get xScale() {\n const { plotWidth } = this.asProps;\n\n return scaleLinear([0, plotWidth]);\n }\n\n get yScale() {\n const { plotHeight } = this.asProps;\n\n return scaleLinear([plotHeight, 0]);\n }\n\n renderChart() {\n const { invertAxis, data, uid, duration, patterns, plotHeight, plotWidth, onClick } =\n this.asProps;\n const { dataDefinitions, highlightedLine } = this.state;\n\n this.offset = 0;\n\n const items = this.computeCigaretteItems();\n\n return (\n <>\n {items.map((item, index) => {\n const { visualWidth, id } = item;\n const value = data[id];\n\n if (value === interpolateValue || value === null) {\n return null;\n }\n\n const height = invertAxis ? plotHeight - DEFAULT_GAP * 2 : plotWidth - DEFAULT_GAP * 2;\n const width = visualWidth;\n const y = DEFAULT_GAP;\n const x = this.offset;\n const r = height < 28 ? 2 : 4;\n\n this.offset += visualWidth;\n\n if (index < items.length - 1) {\n this.offset += DEFAULT_GAP;\n }\n\n return (\n <Cigarette\n key={item.id}\n dataKey={item.id}\n index={index}\n y={invertAxis ? y : x}\n x={invertAxis ? x : y}\n width={invertAxis ? width : height}\n height={invertAxis ? height : width}\n uid={uid}\n hide={!item.checked}\n duration={duration}\n r={index === 0 || index === dataDefinitions.length - 1 ? r : 0}\n color={item.color}\n patterns={patterns}\n direction={invertAxis ? 'horizontal' : 'vertical'}\n onClick={onClick}\n hovered={\n highlightedLine === index ? true : highlightedLine === -1 ? undefined : false\n }\n />\n );\n })}\n\n <AnimatedClipPath\n aria-hidden\n duration={duration}\n id={uid}\n x='0'\n y='0'\n width={invertAxis ? 0 : plotWidth}\n height={invertAxis ? plotHeight : 0}\n />\n </>\n );\n }\n\n renderTooltip(): React.ReactNode {\n const { data, invertAxis, tooltipTitle, tooltipViewType, showPercentValueInTooltip, styles, showTooltip } =\n this.asProps;\n const { dataDefinitions, pX, pY } = this.state;\n const STooltipChildrenWrapper = Root;\n\n if (!showTooltip) {\n return null;\n }\n\n return (\n <HoverRect.Tooltip\n x={invertAxis ? '' : undefined}\n y={invertAxis ? undefined : ''}\n wMin={100}\n hideHoverLine={true}\n xIndex={pX !== null ? this.visualScale(pX) : undefined}\n yIndex={pY !== null ? this.visualScale(pY) : undefined}\n >\n {(tooltipProps: any) => {\n const dataKey = invertAxis ? tooltipProps.xIndex : tooltipProps.yIndex;\n const showPercentColumn = showPercentValueInTooltip && this.totalValue() !== 0;\n\n if (tooltipViewType === 'single') {\n const item = dataDefinitions.find((dataDefItem) => dataDefItem.id === dataKey);\n if (!item) {\n return {\n children: null,\n };\n }\n\n return {\n children: sstyled(styles)(\n <STooltipChildrenWrapper render={Box} columnsCount={showPercentColumn ? '3' : '2'} __excludeProps={['data']}>\n <HoverRect.Tooltip.Dot mr={2} color={item.color}>\n {item.label}\n </HoverRect.Tooltip.Dot>\n { showPercentColumn && <Text textAlign='end' color='text-secondary'>{this.percentValue(data, item.id)}</Text> }\n <Text textAlign='end' bold>{this.tooltipValueFormatter(data[item.id])}</Text>\n </STooltipChildrenWrapper>,\n ),\n };\n }\n\n return {\n children: sstyled(styles)(\n <Flex direction='column'>\n {tooltipTitle && (\n <HoverRect.Tooltip.Title>Some tooltip title</HoverRect.Tooltip.Title>\n )}\n\n <STooltipChildrenWrapper render={Box} columnsCount={showPercentColumn ? '3' : '2'} __excludeProps={['data']}>\n {dataDefinitions.map((item) => {\n const style = { opacity: item.id === dataKey ? 1 : 0.3 };\n return (\n item.checked && (\n <React.Fragment key={item.id}>\n <HoverRect.Tooltip.Dot mr={2} color={item.color} style={style}>\n {item.label}\n </HoverRect.Tooltip.Dot>\n { showPercentColumn && <Text textAlign='end' color='text-secondary' style={style}>{this.percentValue(data, item.id)}</Text> }\n <Text textAlign='end' bold style={style}>{this.tooltipValueFormatter(data[item.id])}</Text>\n </React.Fragment>\n )\n );\n })}\n\n {this.renderTooltipTotalLine(data)}\n </STooltipChildrenWrapper>\n </Flex>,\n ),\n };\n }}\n </HoverRect.Tooltip>\n );\n }\n\n protected percentValue(data: ObjectData, key: string): string {\n const { percentFormatter } = this.asProps;\n\n const total = this.totalValue();\n\n const value = data[key];\n\n if (typeof value === 'number' && total !== 0) {\n const rawPercent = (100 * value) / total;\n const formattedPercent = percentFormatter ? percentFormatter(rawPercent) : Math.round(rawPercent);\n\n return `${formattedPercent}%`;\n }\n\n if (value === null) {\n return `0%`;\n }\n\n return NOT_A_VALUE;\n }\n\n protected override renderTooltipTotalLine<D extends ObjectData>(dataItem: D) {\n const { showTotalInTooltip, showPercentValueInTooltip } = this.asProps;\n\n if (!showTotalInTooltip) {\n return null;\n }\n\n const total = this.totalValue();\n\n return (\n <>\n <Box mt={2} mr={2}>Total</Box>\n { showPercentValueInTooltip && total !== 0 && <Text mt={2} textAlign='end' color='text-secondary'>{Number.isNaN(total) ? NOT_A_VALUE : '100%'}</Text> }\n <Text mt={2} textAlign='end' bold>{Number.isNaN(total) ? NOT_A_VALUE : total}</Text>\n </>\n );\n }\n\n renderHeader() {\n return this.asProps.header ?? null;\n }\n\n override render() {\n const SChart = Root;\n const { styles, plotWidth, plotHeight, data, patterns, invertAxis, a11yAltTextConfig } = this.asProps;\n\n const header = this.renderHeader();\n\n if (invertAxis) {\n return sstyled(styles)(\n <SChart render={Flex} gap={6} direction='column' __excludeProps={['onClick', 'data']}>\n <Flex direction='column'>\n {header}\n <Plot\n ref={this.plotRef}\n data={data}\n scale={[this.xScale, this.yScale]}\n width={plotWidth}\n height={plotHeight}\n dataHints={this.dataHints}\n patterns={patterns}\n a11yAltTextConfig={a11yAltTextConfig}\n onMouseMove={this.onPlotMouseMove}\n onMouseLeave={this.onPlotMouseLeave}\n >\n {this.renderTooltip()}\n {this.renderChart()}\n </Plot>\n </Flex>\n {this.renderLegend()}\n </SChart>,\n );\n }\n\n return sstyled(styles)(\n <SChart render={Flex} gap={6} __excludeProps={['onClick', 'data']}>\n <Plot\n ref={this.plotRef}\n data={data}\n scale={[this.xScale, this.yScale]}\n width={plotWidth}\n height={plotHeight}\n dataHints={this.dataHints}\n patterns={patterns}\n a11yAltTextConfig={a11yAltTextConfig}\n onMouseMove={this.onPlotMouseMove}\n onMouseLeave={this.onPlotMouseLeave}\n >\n {this.renderTooltip()}\n {this.renderChart()}\n </Plot>\n <Flex direction='column' gap={2}>\n {header && (\n <>\n <Box>{header}</Box>\n <Divider />\n </>\n )}\n {this.renderLegend()}\n </Flex>\n </SChart>,\n );\n }\n\n protected getLegendAriaLabel(): string {\n return this.asProps.getI18nText('legendForChart', { chartType: 'Cigarette' });\n }\n\n private get visualScale() {\n const cigaretteItems = this.computeCigaretteItems();\n\n const { range, domain } = cigaretteItems.reduce<ScaleThresholdConfig>((acc, { id, visualWidth }, index) => {\n const { range, domain } = acc;\n\n if (visualWidth) {\n range.push(id);\n\n if (domain.length === 0) {\n domain.push(visualWidth + DEFAULT_GAP);\n\n return acc;\n }\n\n if (index !== cigaretteItems.length - 1) {\n const lastAddedDomain = domain[domain.length - 1];\n domain.push(lastAddedDomain + visualWidth + DEFAULT_GAP);\n }\n }\n\n return acc;\n }, { range: [], domain: [] });\n\n return scaleThreshold(domain, range);\n }\n}\n\nexport const CigaretteChart: CigaretteChartType = createComponent(CigaretteChartComponent);\n"],"mappings":";;;;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AADA,IAAAC,eAAA,GAAAD,OAAA;AAEA,IAAAE,YAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,oBAAA,GAAAD,sBAAA,CAAAH,OAAA;AACA,IAAAK,WAAA,GAAAF,sBAAA,CAAAH,OAAA;AACA,IAAAM,SAAA,GAAAH,sBAAA,CAAAH,OAAA;AACA,IAAAO,QAAA,GAAAJ,sBAAA,CAAAH,OAAA;AACA,IAAAQ,WAAA,GAAAR,OAAA;AACA,IAAAS,QAAA,GAAAT,OAAA;AACA,IAAAU,MAAA,GAAAP,sBAAA,CAAAH,OAAA;AAIA,IAAAW,CAAA,GAAAX,OAAA;AAEA,IAAAY,cAAA,GAAAZ,OAAA;AAGA,IAAAa,iBAAA,GAAAV,sBAAA,CAAAH,OAAA;AACA,IAAAc,4BAAA,GAAAd,OAAA;AACA,IAAAe,MAAA,GAAAf,OAAA;AAEA,IAAAgB,UAAA,GAAAb,sBAAA,CAAAH,OAAA;AAVA;;AAKA;;AAOA,MAAMiB,yBAAyB,GAAG,CAAC;AACnC,MAAMC,WAAW,GAAG,CAAC;AASrB,MAAMC,uBAAuB,SAASC,4BAAa,CAMjD;EA2BAC,WAAWA,CAACC,KAA0B,EAAE;IACtC,KAAK,CAACA,KAAK,CAAC;IAAC,IAAAC,gBAAA,CAAAC,OAAA,gCASGC,cAAK,CAACC,SAAS,CAAa,CAAC;IAAA,IAAAH,gBAAA,CAAAC,OAAA,uBAEd,CAAC;IAAA,IAAAD,gBAAA,CAAAC,OAAA,kBAEjB,CAAC;IAAA,IAAAD,gBAAA,CAAAC,OAAA,2BAwCQ,IAAAG,mBAAO,EAAEC,KAAoC,IAAK;MAC1E,IAAI,CAAC,IAAI,CAACC,OAAO,CAACC,OAAO,EAAE;MAE3B,MAAM,CAACC,EAAE,EAAEC,EAAE,CAAC,GAAG,IAAAC,mBAAY,EAACL,KAAK,EAAE,IAAI,CAACC,OAAO,CAACC,OAAO,CAAC;MAE1D,IAAI,CAACI,QAAQ,CAAEC,SAAS,KAAM;QAAEJ,EAAE;QAAEC;MAAG,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC;IAAA,IAAAT,gBAAA,CAAAC,OAAA,4BAEyB,IAAAG,mBAAO,EAAC,MAAM;MACvC,IAAI,CAACO,QAAQ,CAAEC,SAAS,KAAM;QAAEJ,EAAE,EAAE,IAAI;QAAEC,EAAE,EAAE;MAAK,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC;IA7DA,IAAI,CAACI,KAAK,GAAG;MACX,GAAG,IAAI,CAACA,KAAK;MACbL,EAAE,EAAE,IAAI;MACRC,EAAE,EAAE;IACN,CAAC;EACH;EAQA,IAAYK,qBAAqBA,CAAA,EAAG;IAClC,MAAM;MAAEC;IAAgB,CAAC,GAAG,IAAI,CAACF,KAAK;IAEtC,OAAOE,eAAe,CAACC,MAAM,CAAC,CAAC;MAAEC;IAAQ,CAAC,KAAKA,OAAO,CAAC;EACzD;EAEA,IAAYC,6BAA6BA,CAAA,EAAG;IAC1C,MAAM;MAAEC;IAAK,CAAC,GAAG,IAAI,CAACC,OAAO;IAE7B,OAAO,IAAI,CAACN,qBAAqB,CAACE,MAAM,CAAC,CAAC;MAAEK;IAAG,CAAC,KAAK;MACnD,MAAMC,SAAS,GAAGH,IAAI,CAACE,EAAE,CAAC;MAE1B,OAAO,OAAOC,SAAS,KAAK,QAAQ,IAAIA,SAAS,GAAG,CAAC;IACvD,CAAC,CAAC;EACJ;EAEmBC,YAAYA,CAACF,EAAU,EAAEG,KAAa,EAAE;IACzD,OAAO,IAAI,CAACzB,KAAK,CAAC0B,QAAQ,GAAGJ,EAAE,CAAC,IAAI,QAAQ,CAAC,GAAGG,KAAK,IAAI;EAC3D;EAEmBE,yBAAyBA,CAAA,EAE1C;IACA,MAAMX,eAAe,GAAG,KAAK,CAACW,yBAAyB,CAAC,CAAC;IAEzD,OAAOX,eAAe,CAACY,GAAG,CAAEC,OAAO,IAAK;MACtCA,OAAO,CAACC,OAAO,GAAGD,OAAO,CAACC,OAAO,CAACC,KAAK,CAAC,CAAC,CAAC;MAC1C,OAAOF,OAAO;IAChB,CAAC,CAAC;EACJ;EAEmBG,kBAAkBA,CAAA,EAAG;IACtC,OAAO;MACLC,UAAU,EAAE,OAAgB;MAC5BC,CAAC,EAAE;IACL,CAAC;EACH;EAcmBC,UAAUA,CAAA,EAAG;IAC9B,MAAM;MAAEf;IAAK,CAAC,GAAG,IAAI,CAACC,OAAO;IAE7B,OAAO,IAAI,CAACN,qBAAqB,CAACqB,MAAM,CAAC,CAACC,GAAG,EAAE;MAAEf;IAAG,CAAC,KAAK;MACxD,MAAMC,SAAS,GAAGH,IAAI,CAACE,EAAE,CAAC;MAE1B,IAAI,OAAOC,SAAS,KAAK,QAAQ,EAAE;QACjCc,GAAG,IAAId,SAAS;MAClB;MAEA,OAAOc,GAAG;IACZ,CAAC,EAAE,CAAC,CAAC;EACP;EAEQC,qBAAqBA,CAAA,EAAG;IAC9B,MAAM;MAAEC,SAAS;MAAEC,UAAU;MAAEpB,IAAI;MAAEqB,UAAU;MAAEC;IAAgB,CAAC,GAAG,IAAI,CAACrB,OAAO;IAEjF,MAAML,eAAe,GAAGyB,UAAU,GAC9B,IAAI,CAAC1B,qBAAqB,GAC1B,CAAC,GAAG,IAAI,CAACA,qBAAqB,CAAC,CAAC4B,OAAO,CAAC,CAAC;IAE7C,MAAMC,KAAK,GAAG,IAAI,CAACzB,6BAA6B,CAAC0B,MAAM;IACvD,MAAMC,aAAa,GAAGlD,WAAW,GAAGmD,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEJ,KAAK,GAAG,CAAC,CAAC;IAC1D,MAAMK,cAAc,GAAGF,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE,CAACP,UAAU,GAAGF,SAAS,GAAGC,UAAU,IAAIM,aAAa,CAAC;IAEzF,MAAMX,UAAU,GAAG,IAAI,CAACA,UAAU,CAAC,CAAC;IAEpC,MAAMe,uBAAuB,GAAGlC,eAAe,CAACY,GAAG,CAAC,CAAC;MAAEN;IAAG,CAAC,KAAK;MAC9D,IAAIa,UAAU,KAAK,CAAC,EAAE;QACpB,OAAO,CAAC;MACV;MAEA,MAAMZ,SAAS,GAAGH,IAAI,CAACE,EAAE,CAAC;MAE1B,IAAI,OAAOC,SAAS,KAAK,QAAQ,EAAE,OAAO,CAAC;MAE3C,OAAQA,SAAS,GAAGY,UAAU,GAAIc,cAAc;IAClD,CAAC,CAAC;IAEF,MAAME,MAAM,GAAGnC,eAAe,CAACY,GAAG,CAAC,CAACwB,EAAE,EAAE3B,KAAK,MAAM;MACjD,GAAG2B,EAAE;MACLC,KAAK,EAAEjC,IAAI,CAACgC,EAAE,CAAC9B,EAAE,CAAC;MAClBgC,SAAS,EAAEJ,uBAAuB,CAACzB,KAAK,CAAC;MACzC8B,WAAW,EAAEL,uBAAuB,CAACzB,KAAK,CAAC;MAC3C+B,YAAY,EAAE;IAChB,CAAC,CAAC,CAAC;IAEH,MAAMC,UAAU,GAAGN,MAAM,CAAClC,MAAM,CAAEyC,CAAC,IAAK;MACtC,MAAM;QAAEL,KAAK;QAAEC;MAAU,CAAC,GAAGI,CAAC;MAE9B,IAAI,OAAOL,KAAK,KAAK,QAAQ,EAAE,OAAO,KAAK;MAE3C,OAAOA,KAAK,GAAG,CAAC,IAAIC,SAAS,GAAGZ,eAAe;IACjD,CAAC,CAAC;IAEF,IAAIe,UAAU,CAACZ,MAAM,KAAK,CAAC,EAAE,OAAOM,MAAM;IAE1C,IAAIQ,WAAW,GAAG,CAAC;IAEnB,KAAK,MAAMC,SAAS,IAAIH,UAAU,EAAE;MAClCE,WAAW,IAAIjB,eAAe,GAAGkB,SAAS,CAACN,SAAS;MACpDM,SAAS,CAACL,WAAW,GAAGb,eAAe;MACvCkB,SAAS,CAACJ,YAAY,GAAG,IAAI;IAC/B;IAEA,MAAMK,MAAM,GAAGV,MAAM,CAAClC,MAAM,CAAEyC,CAAC,IAAK,CAACA,CAAC,CAACF,YAAY,IAAIE,CAAC,CAACJ,SAAS,GAAGZ,eAAe,CAAC;IACrF,MAAMoB,aAAa,GAAGD,MAAM,CAACzB,MAAM,CACjC,CAAC2B,CAAC,EAAEC,CAAC,KAAKD,CAAC,IAAIC,CAAC,CAACV,SAAS,GAAGZ,eAAe,CAAC,EAC7C,CACF,CAAC;IAED,KAAK,MAAMuB,KAAK,IAAIJ,MAAM,EAAE;MAC1B,MAAMK,SAAS,GAAGD,KAAK,CAACX,SAAS,GAAGZ,eAAe;MACnD,MAAMyB,KAAK,GAAGD,SAAS,GAAGJ,aAAa;MACvC,MAAMM,KAAK,GAAGD,KAAK,GAAGR,WAAW;MACjCM,KAAK,CAACV,WAAW,GAAGU,KAAK,CAACX,SAAS,GAAGc,KAAK;IAC7C;IAEA,OAAOjB,MAAM;EACf;EAEA,IAAIkB,MAAMA,CAAA,EAAG;IACX,MAAM;MAAE9B;IAAU,CAAC,GAAG,IAAI,CAAClB,OAAO;IAElC,OAAO,IAAAiD,oBAAW,EAAC,CAAC,CAAC,EAAE/B,SAAS,CAAC,CAAC;EACpC;EAEA,IAAIgC,MAAMA,CAAA,EAAG;IACX,MAAM;MAAE/B;IAAW,CAAC,GAAG,IAAI,CAACnB,OAAO;IAEnC,OAAO,IAAAiD,oBAAW,EAAC,CAAC9B,UAAU,EAAE,CAAC,CAAC,CAAC;EACrC;EAEAgC,WAAWA,CAAA,EAAG;IACZ,MAAM;MAAE/B,UAAU;MAAErB,IAAI;MAAEqD,GAAG;MAAEC,QAAQ;MAAEC,QAAQ;MAAEnC,UAAU;MAAED,SAAS;MAAEqC;IAAQ,CAAC,GACjF,IAAI,CAACvD,OAAO;IACd,MAAM;MAAEL,eAAe;MAAE6D;IAAgB,CAAC,GAAG,IAAI,CAAC/D,KAAK;IAEvD,IAAI,CAACgE,MAAM,GAAG,CAAC;IAEf,MAAMC,KAAK,GAAG,IAAI,CAACzC,qBAAqB,CAAC,CAAC;IAE1C,oBACElD,MAAA,CAAAc,OAAA,CAAA8E,aAAA,CAAA5F,MAAA,CAAAc,OAAA,CAAA+E,QAAA,QACGF,KAAK,CAACnD,GAAG,CAAC,CAACsD,IAAI,EAAEzD,KAAK,KAAK;MAC1B,MAAM;QAAE8B,WAAW;QAAEjC;MAAG,CAAC,GAAG4D,IAAI;MAChC,MAAM7B,KAAK,GAAGjC,IAAI,CAACE,EAAE,CAAC;MAEtB,IAAI+B,KAAK,KAAK8B,uBAAgB,IAAI9B,KAAK,KAAK,IAAI,EAAE;QAChD,OAAO,IAAI;MACb;MAEA,MAAM+B,MAAM,GAAG3C,UAAU,GAAGD,UAAU,GAAG5C,WAAW,GAAG,CAAC,GAAG2C,SAAS,GAAG3C,WAAW,GAAG,CAAC;MACtF,MAAMyF,KAAK,GAAG9B,WAAW;MACzB,MAAM+B,CAAC,GAAG1F,WAAW;MACrB,MAAM2F,CAAC,GAAG,IAAI,CAACT,MAAM;MACrB,MAAMpB,CAAC,GAAG0B,MAAM,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC;MAE7B,IAAI,CAACN,MAAM,IAAIvB,WAAW;MAE1B,IAAI9B,KAAK,GAAGsD,KAAK,CAAClC,MAAM,GAAG,CAAC,EAAE;QAC5B,IAAI,CAACiC,MAAM,IAAIlF,WAAW;MAC5B;MAEA,oBACER,MAAA,CAAAc,OAAA,CAAA8E,aAAA,CAACtF,UAAA,CAAAQ,OAAS;QACRsF,GAAG,EAAEN,IAAI,CAAC5D,EAAG;QACbmE,OAAO,EAAEP,IAAI,CAAC5D,EAAG;QACjBG,KAAK,EAAEA,KAAM;QACb6D,CAAC,EAAE7C,UAAU,GAAG6C,CAAC,GAAGC,CAAE;QACtBA,CAAC,EAAE9C,UAAU,GAAG8C,CAAC,GAAGD,CAAE;QACtBD,KAAK,EAAE5C,UAAU,GAAG4C,KAAK,GAAGD,MAAO;QACnCA,MAAM,EAAE3C,UAAU,GAAG2C,MAAM,GAAGC,KAAM;QACpCZ,GAAG,EAAEA,GAAI;QACTiB,IAAI,EAAE,CAACR,IAAI,CAAChE,OAAQ;QACpBwD,QAAQ,EAAEA,QAAS;QACnBhB,CAAC,EAAEjC,KAAK,KAAK,CAAC,IAAIA,KAAK,KAAKT,eAAe,CAAC6B,MAAM,GAAG,CAAC,GAAGa,CAAC,GAAG,CAAE;QAC/DiC,KAAK,EAAET,IAAI,CAACS,KAAM;QAClBhB,QAAQ,EAAEA,QAAS;QACnBiB,SAAS,EAAEnD,UAAU,GAAG,YAAY,GAAG,UAAW;QAClDmC,OAAO,EAAEA,OAAQ;QACjBiB,OAAO,EACLhB,eAAe,KAAKpD,KAAK,GAAG,IAAI,GAAGoD,eAAe,KAAK,CAAC,CAAC,GAAGiB,SAAS,GAAG;MACzE,CACF,CAAC;IAEN,CAAC,CAAC,eAEF1G,MAAA,CAAAc,OAAA,CAAA8E,aAAA,CAACzF,iBAAA,CAAAW,OAAgB;MACf,mBAAW;MACXwE,QAAQ,EAAEA,QAAS;MACnBpD,EAAE,EAAEmD,GAAI;MACRc,CAAC,EAAC,GAAG;MACLD,CAAC,EAAC,GAAG;MACLD,KAAK,EAAE5C,UAAU,GAAG,CAAC,GAAGF,SAAU;MAClC6C,MAAM,EAAE3C,UAAU,GAAGD,UAAU,GAAG;IAAE,CACrC,CACD,CAAC;EAEP;EAEAuD,aAAaA,CAAA,EAAoB;IAAA,IAAAC,IAAA,QAAA3E,OAAA;IAC/B,MAAM;MAAED,IAAI;MAAEqB,UAAU;MAAEwD,YAAY;MAAEC,eAAe;MAAEC,yBAAyB;MAAEC,MAAM;MAAEC;IAAY,CAAC,GACvG,IAAI,CAAChF,OAAO;IACd,MAAM;MAAEL,eAAe;MAAEP,EAAE;MAAEC;IAAG,CAAC,GAAG,IAAI,CAACI,KAAK;IAC9C,MAAMwF,uBAAuB,GA+CgBC,mBAAG;IA7ChD,IAAI,CAACF,WAAW,EAAE;MAChB,OAAO,IAAI;IACb;IAEA,oBACEjH,MAAA,CAAAc,OAAA,CAAA8E,aAAA,CAAC3F,CAAA,CAAAmH,SAAS,CAACC,OAAO;MAChBlB,CAAC,EAAE9C,UAAU,GAAG,EAAE,GAAGqD,SAAU;MAC/BR,CAAC,EAAE7C,UAAU,GAAGqD,SAAS,GAAG,EAAG;MAC/BY,IAAI,EAAE,GAAI;MACVC,aAAa,EAAE,IAAK;MACpBC,MAAM,EAAEnG,EAAE,KAAK,IAAI,GAAG,IAAI,CAACoG,WAAW,CAACpG,EAAE,CAAC,GAAGqF,SAAU;MACvDgB,MAAM,EAAEpG,EAAE,KAAK,IAAI,GAAG,IAAI,CAACmG,WAAW,CAACnG,EAAE,CAAC,GAAGoF;IAAU,GAErDiB,YAAiB,IAAK;MAAA,IAAAC,KAAA;MACtB,MAAMvB,OAAO,GAAGhD,UAAU,GAAGsE,YAAY,CAACH,MAAM,GAAGG,YAAY,CAACD,MAAM;MACtE,MAAMG,iBAAiB,GAAGd,yBAAyB,IAAI,IAAI,CAAChE,UAAU,CAAC,CAAC,KAAK,CAAC;MAE9E,IAAI+D,eAAe,KAAK,QAAQ,EAAE;QAAA,IAAAgB,KAAA;QAChC,MAAMhC,IAAI,GAAGlE,eAAe,CAACmG,IAAI,CAAEC,WAAW,IAAKA,WAAW,CAAC9F,EAAE,KAAKmE,OAAO,CAAC;QAC9E,IAAI,CAACP,IAAI,EAAE;UACT,OAAO;YACLmC,QAAQ,EAAE;UACZ,CAAC;QACH;QAEA,OAAO;UACLA,QAAQ,GAAAH,KAAA,GAAE,IAAAI,aAAO,EAAClB,MAAM,CAAC,eACvBhH,MAAA,CAAAc,OAAA,CAAA8E,aAAA,CAACsB,uBAAuB,EAAAY,KAAA,CAAAK,EAAA;YAAA,OAAA9I,KAAA,CAAA+I,WAAA;cAAA,gBAA4BP,iBAAiB,GAAG,GAAG,GAAG,GAAG;cAAA,kBAAkB,CAAC,MAAM;YAAC,GAAAjB,IAAA;UAAA,iBACzG5G,MAAA,CAAAc,OAAA,CAAA8E,aAAA,CAAC3F,CAAA,CAAAmH,SAAS,CAACC,OAAO,CAACgB,GAAG;YAACC,EAAE,EAAE,CAAE;YAAC/B,KAAK,EAAET,IAAI,CAACS;UAAM,GAC7CT,IAAI,CAACyC,KACe,CAAC,EACtBV,iBAAiB,iBAAI7H,MAAA,CAAAc,OAAA,CAAA8E,aAAA,CAAC9F,WAAA,CAAA0I,IAAI,EAAAV,KAAA,CAAAK,EAAA;YAAA,aAAW,KAAK;YAAA,SAAO;UAAgB,IAAE,IAAI,CAACM,YAAY,CAACzG,IAAI,EAAE8D,IAAI,CAAC5D,EAAE,CAAQ,CAAC,eAC7GlC,MAAA,CAAAc,OAAA,CAAA8E,aAAA,CAAC9F,WAAA,CAAA0I,IAAI,EAAAV,KAAA,CAAAK,EAAA;YAAA,aAAW,KAAK;YAAA;UAAA,IAAO,IAAI,CAACO,qBAAqB,CAAC1G,IAAI,CAAC8D,IAAI,CAAC5D,EAAE,CAAC,CAAQ,CACrD,CAAC;QAE9B,CAAC;MACH;MAEA,OAAO;QACL+F,QAAQ,GAAAL,KAAA,GAAE,IAAAM,aAAO,EAAClB,MAAM,CAAC,eACvBhH,MAAA,CAAAc,OAAA,CAAA8E,aAAA,CAACrG,eAAA,CAAAoJ,IAAI,EAAAf,KAAA,CAAAO,EAAA;UAAA,aAAW;QAAQ,IACrBtB,YAAY,iBACX7G,MAAA,CAAAc,OAAA,CAAA8E,aAAA,CAAC3F,CAAA,CAAAmH,SAAS,CAACC,OAAO,CAACuB,KAAK,QAAC,oBAA2C,CACrE,eAED5I,MAAA,CAAAc,OAAA,CAAA8E,aAAA,CAACsB,uBAAuB,EAAAU,KAAA,CAAAO,EAAA;UAAA,OAAA9I,KAAA,CAAA+I,WAAA;YAAA,gBAA4BP,iBAAiB,GAAG,GAAG,GAAG,GAAG;YAAA,kBAAkB,CAAC,MAAM;UAAC,GAAAjB,IAAA;QAAA,IACxGhF,eAAe,CAACY,GAAG,CAAEsD,IAAI,IAAK;UAC7B,MAAM+C,KAAK,GAAG;YAAEC,OAAO,EAAEhD,IAAI,CAAC5D,EAAE,KAAKmE,OAAO,GAAG,CAAC,GAAG;UAAI,CAAC;UACxD,OACEP,IAAI,CAAChE,OAAO,iBACV9B,MAAA,CAAAc,OAAA,CAAA8E,aAAA,CAAC5F,MAAA,CAAAc,OAAK,CAAC+E,QAAQ;YAACO,GAAG,EAAEN,IAAI,CAAC5D;UAAG,gBAC3BlC,MAAA,CAAAc,OAAA,CAAA8E,aAAA,CAAC3F,CAAA,CAAAmH,SAAS,CAACC,OAAO,CAACgB,GAAG;YAACC,EAAE,EAAE,CAAE;YAAC/B,KAAK,EAAET,IAAI,CAACS,KAAM;YAACsC,KAAK,EAAEA;UAAM,GAC3D/C,IAAI,CAACyC,KACe,CAAC,EACtBV,iBAAiB,iBAAI7H,MAAA,CAAAc,OAAA,CAAA8E,aAAA,CAAC9F,WAAA,CAAA0I,IAAI;YAACO,SAAS,EAAC,KAAK;YAACxC,KAAK,EAAC,gBAAgB;YAACsC,KAAK,EAAEA;UAAM,GAAE,IAAI,CAACJ,YAAY,CAACzG,IAAI,EAAE8D,IAAI,CAAC5D,EAAE,CAAQ,CAAC,eAC3HlC,MAAA,CAAAc,OAAA,CAAA8E,aAAA,CAAC9F,WAAA,CAAA0I,IAAI;YAACO,SAAS,EAAC,KAAK;YAACC,IAAI;YAACH,KAAK,EAAEA;UAAM,GAAE,IAAI,CAACH,qBAAqB,CAAC1G,IAAI,CAAC8D,IAAI,CAAC5D,EAAE,CAAC,CAAQ,CAC5E,CACjB;QAEL,CAAC,CAAC,EAED,IAAI,CAAC+G,sBAAsB,CAACjH,IAAI,CACV,CACrB,CAAC;MAEX,CAAC;IACH,CACiB,CAAC;EAExB;EAEUyG,YAAYA,CAACzG,IAAgB,EAAEoE,GAAW,EAAU;IAC5D,MAAM;MAAE8C;IAAiB,CAAC,GAAG,IAAI,CAACjH,OAAO;IAEzC,MAAMkH,KAAK,GAAG,IAAI,CAACpG,UAAU,CAAC,CAAC;IAE/B,MAAMkB,KAAK,GAAGjC,IAAI,CAACoE,GAAG,CAAC;IAEvB,IAAI,OAAOnC,KAAK,KAAK,QAAQ,IAAIkF,KAAK,KAAK,CAAC,EAAE;MAC5C,MAAMC,UAAU,GAAI,GAAG,GAAGnF,KAAK,GAAIkF,KAAK;MACxC,MAAME,gBAAgB,GAAGH,gBAAgB,GAAGA,gBAAgB,CAACE,UAAU,CAAC,GAAGzF,IAAI,CAAC2F,KAAK,CAACF,UAAU,CAAC;MAEjG,OAAO,GAAGC,gBAAgB,GAAG;IAC/B;IAEA,IAAIpF,KAAK,KAAK,IAAI,EAAE;MAClB,OAAO,IAAI;IACb;IAEA,OAAOsF,0BAAW;EACpB;EAEmBN,sBAAsBA,CAAuBO,QAAW,EAAE;IAC3E,MAAM;MAAEC,kBAAkB;MAAE1C;IAA0B,CAAC,GAAG,IAAI,CAAC9E,OAAO;IAEtE,IAAI,CAACwH,kBAAkB,EAAE;MACvB,OAAO,IAAI;IACb;IAEA,MAAMN,KAAK,GAAG,IAAI,CAACpG,UAAU,CAAC,CAAC;IAE/B,oBACE/C,MAAA,CAAAc,OAAA,CAAA8E,aAAA,CAAA5F,MAAA,CAAAc,OAAA,CAAA+E,QAAA,qBACE7F,MAAA,CAAAc,OAAA,CAAA8E,aAAA,CAACrG,eAAA,CAAA4H,GAAG;MAACuC,EAAE,EAAE,CAAE;MAACpB,EAAE,EAAE;IAAE,GAAC,OAAU,CAAC,EAC5BvB,yBAAyB,IAAIoC,KAAK,KAAK,CAAC,iBAAInJ,MAAA,CAAAc,OAAA,CAAA8E,aAAA,CAAC9F,WAAA,CAAA0I,IAAI;MAACkB,EAAE,EAAE,CAAE;MAACX,SAAS,EAAC,KAAK;MAACxC,KAAK,EAAC;IAAgB,GAAEoD,MAAM,CAACC,KAAK,CAACT,KAAK,CAAC,GAAGI,0BAAW,GAAG,MAAa,CAAC,eACrJvJ,MAAA,CAAAc,OAAA,CAAA8E,aAAA,CAAC9F,WAAA,CAAA0I,IAAI;MAACkB,EAAE,EAAE,CAAE;MAACX,SAAS,EAAC,KAAK;MAACC,IAAI;IAAA,GAAEW,MAAM,CAACC,KAAK,CAACT,KAAK,CAAC,GAAGI,0BAAW,GAAGJ,KAAY,CACnF,CAAC;EAEP;EAEAU,YAAYA,CAAA,EAAG;IACb,OAAO,IAAI,CAAC5H,OAAO,CAAC6H,MAAM,IAAI,IAAI;EACpC;EAESC,MAAMA,CAAA,EAAG;IAAA,IAAAC,KAAA,QAAA/H,OAAA;MAAAgI,KAAA;IAChB,MAAMC,MAAM,GAgCMvB,oBAAI;IA/BtB,MAAM;MAAE3B,MAAM;MAAE7D,SAAS;MAAEC,UAAU;MAAEpB,IAAI;MAAEuD,QAAQ;MAAElC,UAAU;MAAE8G;IAAkB,CAAC,GAAG,IAAI,CAAClI,OAAO;IAErG,MAAM6H,MAAM,GAAG,IAAI,CAACD,YAAY,CAAC,CAAC;IAElC,IAAIxG,UAAU,EAAE;MAAA,IAAA+G,KAAA;MACd,OAAAA,KAAA,GAAO,IAAAlC,aAAO,EAAClB,MAAM,CAAC,eACpBhH,MAAA,CAAAc,OAAA,CAAA8E,aAAA,CAACsE,MAAM,EAAAE,KAAA,CAAAjC,EAAA;QAAA,OAAA9I,KAAA,CAAA+I,WAAA;UAAA,OAAoB,CAAC;UAAA,aAAY,QAAQ;UAAA,kBAAiB,CAAC,SAAS,EAAE,MAAM;QAAC,GAAA4B,KAAA;MAAA,iBAClFhK,MAAA,CAAAc,OAAA,CAAA8E,aAAA,CAACrG,eAAA,CAAAoJ,IAAI,EAAAyB,KAAA,CAAAjC,EAAA;QAAA,aAAW;MAAQ,IACrB2B,MAAM,eACP9J,MAAA,CAAAc,OAAA,CAAA8E,aAAA,CAAC3F,CAAA,CAAAoK,IAAI,EAAAD,KAAA,CAAAjC,EAAA;QAAA,OACE,IAAI,CAAChH,OAAO;QAAA,QACXa,IAAI;QAAA,SACH,CAAC,IAAI,CAACiD,MAAM,EAAE,IAAI,CAACE,MAAM,CAAC;QAAA,SAC1BhC,SAAS;QAAA,UACRC,UAAU;QAAA,aACP,IAAI,CAACkH,SAAS;QAAA,YACf/E,QAAQ;QAAA,qBACC4E,iBAAiB;QAAA,eACvB,IAAI,CAACI,eAAe;QAAA,gBACnB,IAAI,CAACC;MAAgB,IAElC,IAAI,CAAC7D,aAAa,CAAC,CAAC,EACpB,IAAI,CAACvB,WAAW,CAAC,CACd,CACF,CAAC,EACN,IAAI,CAACqF,YAAY,CAAC,CACb,CAAC;IAEb;IAEA,OAAAR,KAAA,GAAO,IAAA/B,aAAO,EAAClB,MAAM,CAAC,eACpBhH,MAAA,CAAAc,OAAA,CAAA8E,aAAA,CAACsE,MAAM,EAAAD,KAAA,CAAA9B,EAAA;MAAA,OAAA9I,KAAA,CAAA+I,WAAA;QAAA,OAAoB,CAAC;QAAA,kBAAkB,CAAC,SAAS,EAAE,MAAM;MAAC,GAAA4B,KAAA;IAAA,iBAC/DhK,MAAA,CAAAc,OAAA,CAAA8E,aAAA,CAAC3F,CAAA,CAAAoK,IAAI,EAAAJ,KAAA,CAAA9B,EAAA;MAAA,OACE,IAAI,CAAChH,OAAO;MAAA,QACXa,IAAI;MAAA,SACH,CAAC,IAAI,CAACiD,MAAM,EAAE,IAAI,CAACE,MAAM,CAAC;MAAA,SAC1BhC,SAAS;MAAA,UACRC,UAAU;MAAA,aACP,IAAI,CAACkH,SAAS;MAAA,YACf/E,QAAQ;MAAA,qBACC4E,iBAAiB;MAAA,eACvB,IAAI,CAACI,eAAe;MAAA,gBACnB,IAAI,CAACC;IAAgB,IAElC,IAAI,CAAC7D,aAAa,CAAC,CAAC,EACpB,IAAI,CAACvB,WAAW,CAAC,CACd,CAAC,eACPpF,MAAA,CAAAc,OAAA,CAAA8E,aAAA,CAACrG,eAAA,CAAAoJ,IAAI,EAAAsB,KAAA,CAAA9B,EAAA;MAAA,aAAW,QAAQ;MAAA,OAAM;IAAC,IAC5B2B,MAAM,iBACL9J,MAAA,CAAAc,OAAA,CAAA8E,aAAA,CAAA5F,MAAA,CAAAc,OAAA,CAAA+E,QAAA,qBACE7F,MAAA,CAAAc,OAAA,CAAA8E,aAAA,CAACrG,eAAA,CAAA4H,GAAG,EAAA8C,KAAA,CAAA9B,EAAA,aAAE2B,MAAY,CAAC,eACnB9J,MAAA,CAAAc,OAAA,CAAA8E,aAAA,CAAC/F,QAAA,CAAAiB,OAAO,EAAAmJ,KAAA,CAAA9B,EAAA,eAAE,CACV,CACH,EACA,IAAI,CAACsC,YAAY,CAAC,CACf,CACA,CAAC;EAEb;EAEUC,kBAAkBA,CAAA,EAAW;IACrC,OAAO,IAAI,CAACzI,OAAO,CAAC0I,WAAW,CAAC,gBAAgB,EAAE;MAAEC,SAAS,EAAE;IAAY,CAAC,CAAC;EAC/E;EAEA,IAAYnD,WAAWA,CAAA,EAAG;IACxB,MAAMoD,cAAc,GAAG,IAAI,CAAC3H,qBAAqB,CAAC,CAAC;IAEnD,MAAM;MAAE4H,KAAK;MAAEC;IAAO,CAAC,GAAGF,cAAc,CAAC7H,MAAM,CAAuB,CAACC,GAAG,EAAE;MAAEf,EAAE;MAAEiC;IAAY,CAAC,EAAE9B,KAAK,KAAK;MACzG,MAAM;QAAEyI,KAAK;QAAEC;MAAO,CAAC,GAAG9H,GAAG;MAE7B,IAAIkB,WAAW,EAAE;QACf2G,KAAK,CAACE,IAAI,CAAC9I,EAAE,CAAC;QAEd,IAAI6I,MAAM,CAACtH,MAAM,KAAK,CAAC,EAAE;UACvBsH,MAAM,CAACC,IAAI,CAAC7G,WAAW,GAAG3D,WAAW,CAAC;UAEtC,OAAOyC,GAAG;QACZ;QAEA,IAAIZ,KAAK,KAAKwI,cAAc,CAACpH,MAAM,GAAG,CAAC,EAAE;UACvC,MAAMwH,eAAe,GAAGF,MAAM,CAACA,MAAM,CAACtH,MAAM,GAAG,CAAC,CAAC;UACjDsH,MAAM,CAACC,IAAI,CAACC,eAAe,GAAG9G,WAAW,GAAG3D,WAAW,CAAC;QAC1D;MACF;MAEA,OAAOyC,GAAG;IACZ,CAAC,EAAE;MAAE6H,KAAK,EAAE,EAAE;MAAEC,MAAM,EAAE;IAAG,CAAC,CAAC;IAE7B,OAAO,IAAAG,uBAAc,EAACH,MAAM,EAAED,KAAK,CAAC;EACtC;AACF;AAAC,IAAAjK,gBAAA,CAAAC,OAAA,EAxdKL,uBAAuB,iBAON,eAAe;AAAA,IAAAI,gBAAA,CAAAC,OAAA,EAPhCL,uBAAuB,kBASCG,KAA0B,IAAK;EACzD,MAAMyC,UAAU,GAAGzC,KAAK,CAACyC,UAAU,IAAI,IAAI;EAC3C,OAAO;IACLA,UAAU,EAAEA,UAAU;IACtB8H,SAAS,EAAE,KAAK;IAChBC,SAAS,EAAE,KAAK;IAChBnE,WAAW,EAAE,IAAI;IACjBoE,UAAU,EAAE,KAAK;IACjBC,OAAO,EAAE,CAAC;IACVC,OAAO,EAAE,CAAC;IACVjG,QAAQ,EAAE,GAAG;IACbnC,SAAS,EAAE,CAACE,UAAU,IAAI,CAACzC,KAAK,CAACuC,SAAS,GAAG,EAAE,GAAGvC,KAAK,CAACuC,SAAS;IACjEC,UAAU,EAAEC,UAAU,IAAI,CAACzC,KAAK,CAACwC,UAAU,GAAG,EAAE,GAAGxC,KAAK,CAACwC,UAAU;IACnE2D,yBAAyB,EAAE,KAAK;IAChCzD,eAAe,EAAE/C;EACnB,CAAC;AACH,CAAC;AAAA,IAAAM,gBAAA,CAAAC,OAAA,EAzBGL,uBAAuB,aA2BV,CACf,IAAA+K,4BAAmB,EAAC,CAAC,EACrB,IAAAC,iBAAmB,EAAC,CAAC,EACrB,IAAAC,oBAAW,EAACC,8CAAiB,CAAC,CAC/B;AA2bI,MAAMC,cAAkC,GAAAC,OAAA,CAAAD,cAAA,GAAG,IAAAE,qBAAe,EAACrL,uBAAuB,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CigaretteChart.type.js","names":[],"sources":["../../../../src/component/Chart/CigaretteChart.type.ts"],"sourcesContent":["import type { Intergalactic } from '@semcore/core';\nimport type React from 'react';\n\nimport type { BaseChartProps } from './AbstractChart.type';\nimport type { interpolateValue } from '../../utils';\n\
|
|
1
|
+
{"version":3,"file":"CigaretteChart.type.js","names":[],"sources":["../../../../src/component/Chart/CigaretteChart.type.ts"],"sourcesContent":["import type { Intergalactic } from '@semcore/core';\nimport type React from 'react';\n\nimport type { BaseChartProps } from './AbstractChart.type';\nimport type { interpolateValue } from '../../utils';\n\nexport type CigaretteChartDataKey = string;\n\nexport type CigaretteChartData = Record<CigaretteChartDataKey, number | typeof interpolateValue>;\n\nexport type CigaretteChartProps = Intergalactic.InternalTypings.EfficientOmit<\n BaseChartProps<CigaretteChartData>,\n 'xScale' | 'yScale'\n> & {\n /** Title text displayed in the tooltip */\n tooltipTitle?: string;\n /** Controls whether the tooltip shows all data or single item data */\n tooltipViewType?: 'all' | 'single';\n /** Show percent value in tooltip */\n showPercentValueInTooltip?: boolean;\n /** Custom percent formatter. */\n percentFormatter?: (value: number) => number;\n /** Header content for the chart */\n header?: React.ReactNode;\n /** Animation duration in milliseconds */\n duration?: number;\n /** Click handler that receives the data key and event */\n onClick?: (key: CigaretteChartDataKey, event: React.SyntheticEvent) => void;\n /** Minimal bar width in pixels. Default is `2`. */\n minimalBarWidth?: number;\n};\n\nexport type CigaretteChartType = Intergalactic.Component<'div', CigaretteChartProps>;\n"],"mappings":"","ignoreList":[]}
|
package/lib/cjs/utils.js
CHANGED
|
@@ -199,7 +199,8 @@ const getChartDefaultColorName = index => {
|
|
|
199
199
|
};
|
|
200
200
|
exports.getChartDefaultColorName = getChartDefaultColorName;
|
|
201
201
|
const getBubbleChartValueScale = (data, key) => {
|
|
202
|
-
const z = (0, _d3Scale.scaleSqrt)().domain([0, Math.max(...data.map(el => el[key]))]).range([5.5, 50.5]);
|
|
202
|
+
const z = (0, _d3Scale.scaleSqrt)().domain([0, Math.max(...data.map(el => el[key]))]).range([5.5, 50.5]); // min/max radius
|
|
203
|
+
|
|
203
204
|
return z;
|
|
204
205
|
};
|
|
205
206
|
exports.getBubbleChartValueScale = getBubbleChartValueScale;
|
|
@@ -235,7 +236,7 @@ const calculateBubbleDomain = (data, key, range) => {
|
|
|
235
236
|
const maxValueShift = valueScale(maxestValue) * pixelRatio;
|
|
236
237
|
min -= minValueShift * 2;
|
|
237
238
|
max += maxValueShift * 2;
|
|
238
|
-
return [min, max];
|
|
239
|
+
return [Math.floor(min), Math.floor(max)];
|
|
239
240
|
};
|
|
240
241
|
exports.calculateBubbleDomain = calculateBubbleDomain;
|
|
241
242
|
const PlotEventEmitter = exports.PlotEventEmitter = _eventEmitter.default;
|