@fluentui/react-charting 5.19.13 → 5.19.15
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.json +43 -1
- package/CHANGELOG.md +22 -2
- package/README.md +1 -1
- package/dist/react-charting.d.ts +15 -2
- package/dist/react-charting.js +1 -1
- package/dist/react-charting.min.js +1 -1
- package/etc/react-charting.api.md +7 -2
- package/lib/components/VerticalBarChart/VerticalBarChart.base.d.ts +2 -1
- package/lib/components/VerticalBarChart/VerticalBarChart.base.js +105 -28
- package/lib/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.d.ts +1 -3
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +61 -38
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
- package/lib/types/IDataPoint.d.ts +14 -2
- package/lib/types/IDataPoint.js.map +1 -1
- package/lib/utilities/utilities.d.ts +14 -14
- package/lib/utilities/utilities.js +56 -38
- package/lib/utilities/utilities.js.map +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.d.ts +2 -1
- package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.js +104 -27
- package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
- package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.d.ts +1 -3
- package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +60 -37
- package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
- package/lib-amd/types/IDataPoint.d.ts +14 -2
- package/lib-amd/types/IDataPoint.js.map +1 -1
- package/lib-amd/utilities/utilities.d.ts +14 -14
- package/lib-amd/utilities/utilities.js +58 -40
- package/lib-amd/utilities/utilities.js.map +1 -1
- package/lib-amd/version.js +1 -1
- package/lib-amd/version.js.map +1 -1
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.d.ts +2 -1
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.js +104 -27
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.d.ts +1 -3
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +60 -37
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
- package/lib-commonjs/types/IDataPoint.d.ts +14 -2
- package/lib-commonjs/types/IDataPoint.js.map +1 -1
- package/lib-commonjs/utilities/utilities.d.ts +14 -14
- package/lib-commonjs/utilities/utilities.js +58 -40
- package/lib-commonjs/utilities/utilities.js.map +1 -1
- package/lib-commonjs/version.js +1 -1
- package/lib-commonjs/version.js.map +1 -1
- package/package.json +4 -4
|
@@ -34,8 +34,8 @@ var VerticalBarChartBase = /** @class */ (function (_super) {
|
|
|
34
34
|
var _a;
|
|
35
35
|
if (containerHeight === void 0) { containerHeight = 0; }
|
|
36
36
|
if (containerWidth === void 0) { containerWidth = 0; }
|
|
37
|
-
var
|
|
38
|
-
var xBarScale = _this._getScales(containerHeight, containerWidth
|
|
37
|
+
var isStringAxis = _this._xAxisType === index_2.XAxisTypes.StringAxis;
|
|
38
|
+
var xBarScale = _this._getScales(containerHeight, containerWidth).xBarScale;
|
|
39
39
|
var colorScale = _this._createColors();
|
|
40
40
|
var theme = _this.props.theme;
|
|
41
41
|
var _b = _this.props, data = _b.data, _c = _b.lineLegendColor, lineLegendColor = _c === void 0 ? theme.palette.yellow : _c, lineLegendText = _b.lineLegendText;
|
|
@@ -57,7 +57,7 @@ var VerticalBarChartBase = /** @class */ (function (_super) {
|
|
|
57
57
|
});
|
|
58
58
|
var linePath = (0, d3_shape_1.line)()
|
|
59
59
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
60
|
-
.x(function (d) { return (
|
|
60
|
+
.x(function (d) { return (isStringAxis ? xBarScale(d.x) + 0.5 * xBarScale.bandwidth() : xScale(d.x)); })
|
|
61
61
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
62
62
|
.y(function (d) { return (d.useSecondaryYScale && yScaleSecondary ? yScaleSecondary(d.y) : yScale(d.y)); });
|
|
63
63
|
var shouldHighlight = _this._legendHighlighted(lineLegendText) || _this._noLegendHighlighted() ? true : false;
|
|
@@ -70,7 +70,7 @@ var VerticalBarChartBase = /** @class */ (function (_super) {
|
|
|
70
70
|
line.push(React.createElement("path", { key: (0, Utilities_1.getId)('_VBC_line_'), id: (0, Utilities_1.getId)('_VBC_line_'), opacity: shouldHighlight ? 1 : 0.1, d: linePath(lineData), fill: "transparent", strokeLinecap: "square", strokeWidth: 3, stroke: lineLegendColor }));
|
|
71
71
|
var dots = lineData.map(function (item, index) {
|
|
72
72
|
var _a;
|
|
73
|
-
return (React.createElement("circle", { key: index, id: (0, Utilities_1.getId)('_VBC_point_'), cx:
|
|
73
|
+
return (React.createElement("circle", { key: index, id: (0, Utilities_1.getId)('_VBC_point_'), cx: isStringAxis ? xBarScale(item.x) + 0.5 * xBarScale.bandwidth() : xScale(item.x), cy: item.useSecondaryYScale && yScaleSecondary ? yScaleSecondary(item.y) : yScale(item.y), onMouseOver: _this._onBarHover.bind(_this, item.point, colorScale(item.y)), onMouseOut: _this._onBarLeave, r: 8, stroke: lineLegendColor, fill: _this.props.theme.palette.white, strokeWidth: 3, visibility: _this.state.activeXdataPoint === item.x ? CircleVisbility.show : CircleVisbility.hide, onClick: (_a = item.point.lineData) === null || _a === void 0 ? void 0 : _a.onClick }));
|
|
74
74
|
});
|
|
75
75
|
return (React.createElement(React.Fragment, null,
|
|
76
76
|
line,
|
|
@@ -107,11 +107,15 @@ var VerticalBarChartBase = /** @class */ (function (_super) {
|
|
|
107
107
|
? _this.props.onRenderCalloutPerDataPoint(_this.state.dataPointCalloutProps, _this._renderCallout)
|
|
108
108
|
: null;
|
|
109
109
|
};
|
|
110
|
-
_this._getGraphData = function (
|
|
110
|
+
_this._getGraphData = function (
|
|
111
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
112
|
+
xScale, yScale, containerHeight, containerWidth, xElement) {
|
|
111
113
|
return (_this._bars =
|
|
112
114
|
_this._xAxisType === index_2.XAxisTypes.NumericAxis
|
|
113
115
|
? _this._createNumericBars(containerHeight, containerWidth, xElement)
|
|
114
|
-
: _this.
|
|
116
|
+
: _this._xAxisType === index_2.XAxisTypes.DateAxis
|
|
117
|
+
? _this._createDateBars(containerHeight, containerWidth, xElement)
|
|
118
|
+
: _this._createStringBars(containerHeight, containerWidth, xElement));
|
|
115
119
|
};
|
|
116
120
|
_this._refCallback = function (element, legendTitle) {
|
|
117
121
|
_this._refArray.push({ index: legendTitle, refElement: element });
|
|
@@ -145,7 +149,11 @@ var VerticalBarChartBase = /** @class */ (function (_super) {
|
|
|
145
149
|
data: selectedPoint[0].yAxisCalloutData,
|
|
146
150
|
yAxisCalloutData: selectedPoint[0].yAxisCalloutData,
|
|
147
151
|
});
|
|
148
|
-
|
|
152
|
+
var hoverXValue = point.x instanceof Date ? point.x.toLocaleString() : point.x.toString();
|
|
153
|
+
return {
|
|
154
|
+
YValueHover: YValueHover,
|
|
155
|
+
hoverXValue: point.xAxisCalloutData || hoverXValue,
|
|
156
|
+
};
|
|
149
157
|
};
|
|
150
158
|
_this._onBarLeave = function () {
|
|
151
159
|
/**/
|
|
@@ -170,7 +178,7 @@ var VerticalBarChartBase = /** @class */ (function (_super) {
|
|
|
170
178
|
calloutLegend: point.legend,
|
|
171
179
|
dataForHoverCard: point.y,
|
|
172
180
|
color: point.color || color,
|
|
173
|
-
xCalloutValue: point.xAxisCalloutData || point.x.toString(),
|
|
181
|
+
xCalloutValue: point.xAxisCalloutData || (point.x instanceof Date ? point.x.toLocaleDateString() : point.x.toString()),
|
|
174
182
|
yCalloutValue: point.yAxisCalloutData,
|
|
175
183
|
dataPointCalloutProps: point,
|
|
176
184
|
activeXdataPoint: point.x,
|
|
@@ -181,34 +189,43 @@ var VerticalBarChartBase = /** @class */ (function (_super) {
|
|
|
181
189
|
}
|
|
182
190
|
});
|
|
183
191
|
};
|
|
184
|
-
_this._getScales = function (containerHeight, containerWidth
|
|
185
|
-
|
|
192
|
+
_this._getScales = function (containerHeight, containerWidth) {
|
|
193
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
194
|
+
var xBarScale;
|
|
195
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
196
|
+
var yBarScale = (0, d3_scale_1.scaleLinear)()
|
|
197
|
+
.domain([0, _this._yMax])
|
|
198
|
+
.range([0, containerHeight - _this.margins.bottom - _this.margins.top]);
|
|
199
|
+
if (_this._xAxisType === index_2.XAxisTypes.NumericAxis) {
|
|
186
200
|
var xMax = (0, d3_array_1.max)(_this._points, function (point) { return point.x; });
|
|
187
201
|
var xMin = (0, d3_array_1.min)(_this._points, function (point) { return point.x; });
|
|
188
|
-
|
|
202
|
+
xBarScale = (0, d3_scale_1.scaleLinear)()
|
|
189
203
|
.domain(_this._isRtl ? [xMax, xMin] : [xMin, xMax])
|
|
190
204
|
.nice()
|
|
191
205
|
.range([
|
|
192
206
|
_this.margins.left + _this._domainMargin,
|
|
193
207
|
containerWidth - _this.margins.right - _this._barWidth - _this._domainMargin,
|
|
194
208
|
]);
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
209
|
+
}
|
|
210
|
+
else if (_this._xAxisType === index_2.XAxisTypes.DateAxis) {
|
|
211
|
+
var sDate = (0, d3_array_1.min)(_this._points, function (point) { return point.x; });
|
|
212
|
+
var lDate = (0, d3_array_1.max)(_this._points, function (point) { return point.x; });
|
|
213
|
+
xBarScale = (0, d3_scale_1.scaleTime)()
|
|
214
|
+
.domain([sDate, lDate])
|
|
215
|
+
.range([
|
|
216
|
+
_this.margins.left + _this._domainMargin + _this._barWidth / 2,
|
|
217
|
+
containerWidth - _this.margins.right - _this._barWidth / 2 - _this._domainMargin,
|
|
218
|
+
]);
|
|
199
219
|
}
|
|
200
220
|
else {
|
|
201
|
-
|
|
221
|
+
xBarScale = (0, d3_scale_1.scaleBand)()
|
|
202
222
|
.domain(_this._xAxisLabels)
|
|
203
223
|
.range(_this._isRtl
|
|
204
224
|
? [containerWidth - _this.margins.right - _this._domainMargin, _this.margins.left + _this._domainMargin]
|
|
205
225
|
: [_this.margins.left + _this._domainMargin, containerWidth - _this.margins.right - _this._domainMargin])
|
|
206
226
|
.paddingInner(2 / 3);
|
|
207
|
-
var yBarScale = (0, d3_scale_1.scaleLinear)()
|
|
208
|
-
.domain([0, _this._yMax])
|
|
209
|
-
.range([0, containerHeight - _this.margins.bottom - _this.margins.top]);
|
|
210
|
-
return { xBarScale: xBarScale, yBarScale: yBarScale };
|
|
211
227
|
}
|
|
228
|
+
return { xBarScale: xBarScale, yBarScale: yBarScale };
|
|
212
229
|
};
|
|
213
230
|
_this._closeCallout = function () {
|
|
214
231
|
_this.setState({
|
|
@@ -283,7 +300,11 @@ var VerticalBarChartBase = /** @class */ (function (_super) {
|
|
|
283
300
|
};
|
|
284
301
|
_this._getAriaLabel = function (point) {
|
|
285
302
|
var _a, _b, _c;
|
|
286
|
-
var xValue = point.xAxisCalloutData
|
|
303
|
+
var xValue = point.xAxisCalloutData
|
|
304
|
+
? point.xAxisCalloutData
|
|
305
|
+
: point.x instanceof Date
|
|
306
|
+
? point.x.toLocaleString()
|
|
307
|
+
: point.x;
|
|
287
308
|
var legend = point.legend;
|
|
288
309
|
var yValue = point.yAxisCalloutData || point.y;
|
|
289
310
|
var lineLegend = _this.props.lineLegendText || 'Line';
|
|
@@ -295,7 +316,7 @@ var VerticalBarChartBase = /** @class */ (function (_super) {
|
|
|
295
316
|
(typeof lineYValue !== 'undefined' ? " ".concat(lineLegend, ", ").concat(lineYValue, ".") : ''));
|
|
296
317
|
};
|
|
297
318
|
_this._getDomainMargins = function (containerWidth) {
|
|
298
|
-
if (_this._xAxisType
|
|
319
|
+
if (_this._xAxisType === index_2.XAxisTypes.StringAxis) {
|
|
299
320
|
/** Total width available to render the bars */
|
|
300
321
|
var totalWidth = containerWidth - (_this.margins.left + MIN_DOMAIN_MARGIN) - (_this.margins.right + MIN_DOMAIN_MARGIN);
|
|
301
322
|
var barWidth = Math.min(_this.props.barWidth || 16, 24);
|
|
@@ -405,7 +426,7 @@ var VerticalBarChartBase = /** @class */ (function (_super) {
|
|
|
405
426
|
calloutLegend: point.legend,
|
|
406
427
|
color: point.color || color,
|
|
407
428
|
// To display callout value, if no callout value given, taking given point.x value as a string.
|
|
408
|
-
xCalloutValue: point.xAxisCalloutData || point.x.toString(),
|
|
429
|
+
xCalloutValue: point.xAxisCalloutData || (point.x instanceof Date ? point.x.toLocaleDateString() : point.x.toString()),
|
|
409
430
|
yCalloutValue: point.yAxisCalloutData,
|
|
410
431
|
dataPointCalloutProps: point,
|
|
411
432
|
activeXdataPoint: point.x,
|
|
@@ -418,7 +439,7 @@ var VerticalBarChartBase = /** @class */ (function (_super) {
|
|
|
418
439
|
VerticalBarChartBase.prototype._createNumericBars = function (containerHeight, containerWidth, xElement) {
|
|
419
440
|
var _this = this;
|
|
420
441
|
var _a = this.props.useSingleColor, useSingleColor = _a === void 0 ? false : _a;
|
|
421
|
-
var _b = this._getScales(containerHeight, containerWidth
|
|
442
|
+
var _b = this._getScales(containerHeight, containerWidth), xBarScale = _b.xBarScale, yBarScale = _b.yBarScale;
|
|
422
443
|
var colorScale = this._createColors();
|
|
423
444
|
var bars = this._points.map(function (point, index) {
|
|
424
445
|
var shouldHighlight = _this._legendHighlighted(point.legend) || _this._noLegendHighlighted() ? true : false;
|
|
@@ -473,13 +494,13 @@ var VerticalBarChartBase = /** @class */ (function (_super) {
|
|
|
473
494
|
};
|
|
474
495
|
VerticalBarChartBase.prototype._createStringBars = function (containerHeight, containerWidth, xElement) {
|
|
475
496
|
var _this = this;
|
|
476
|
-
var _a = this._getScales(containerHeight, containerWidth
|
|
497
|
+
var _a = this._getScales(containerHeight, containerWidth), xBarScale = _a.xBarScale, yBarScale = _a.yBarScale;
|
|
477
498
|
var colorScale = this._createColors();
|
|
478
499
|
var bars = this._points.map(function (point, index) {
|
|
479
500
|
var barHeight = Math.max(yBarScale(point.y), 0);
|
|
480
501
|
var adjustedBarHeight = 0;
|
|
481
502
|
if (barHeight <= 0) {
|
|
482
|
-
return React.createElement(React.Fragment, { key: point.x }, " ");
|
|
503
|
+
return React.createElement(React.Fragment, { key: point.x instanceof Date ? point.x.getTime() : point.x }, " ");
|
|
483
504
|
}
|
|
484
505
|
else if (barHeight <= Math.ceil(yBarScale(_this._yMax) / 100.0)) {
|
|
485
506
|
adjustedBarHeight = Math.ceil(yBarScale(_this._yMax) / 100.0);
|
|
@@ -489,7 +510,7 @@ var VerticalBarChartBase = /** @class */ (function (_super) {
|
|
|
489
510
|
}
|
|
490
511
|
var xPoint = xBarScale(point.x);
|
|
491
512
|
var yPoint = containerHeight - _this.margins.bottom - adjustedBarHeight;
|
|
492
|
-
return (React.createElement("g", { key: point.x, transform: "translate(".concat(0.5 * (xBarScale.bandwidth() - _this._barWidth), ", 0)") },
|
|
513
|
+
return (React.createElement("g", { key: point.x instanceof Date ? point.x.getTime() : point.x, transform: "translate(".concat(0.5 * (xBarScale.bandwidth() - _this._barWidth), ", 0)") },
|
|
493
514
|
React.createElement("rect", { id: (0, Utilities_1.getId)('_VBC_bar_'), x: xPoint, y: yPoint, width: _this._barWidth, height: adjustedBarHeight, "aria-label": _this._getAriaLabel(point), role: "img", ref: function (e) {
|
|
494
515
|
_this._refCallback(e, point.legend);
|
|
495
516
|
}, onClick: point.onClick, onMouseOver: _this._onBarHover.bind(_this, point, colorScale(point.y)), onMouseLeave: _this._onBarLeave, onBlur: _this._onBarLeave, "data-is-focusable": !_this.props.hideTooltip, onFocus: _this._onBarFocus.bind(_this, point, index, colorScale(point.y)), fill: point.color ? point.color : colorScale(point.y) }),
|
|
@@ -521,6 +542,62 @@ var VerticalBarChartBase = /** @class */ (function (_super) {
|
|
|
521
542
|
}
|
|
522
543
|
return bars;
|
|
523
544
|
};
|
|
545
|
+
VerticalBarChartBase.prototype._createDateBars = function (containerHeight, containerWidth, xElement) {
|
|
546
|
+
var _this = this;
|
|
547
|
+
var _a = this.props.useSingleColor, useSingleColor = _a === void 0 ? false : _a;
|
|
548
|
+
var _b = this._getScales(containerHeight, containerWidth), xBarScale = _b.xBarScale, yBarScale = _b.yBarScale;
|
|
549
|
+
var colorScale = this._createColors();
|
|
550
|
+
var bars = this._points.map(function (point, index) {
|
|
551
|
+
var shouldHighlight = _this._legendHighlighted(point.legend) || _this._noLegendHighlighted() ? true : false;
|
|
552
|
+
_this._classNames = getClassNames(_this.props.styles, {
|
|
553
|
+
theme: _this.props.theme,
|
|
554
|
+
legendColor: _this.state.color,
|
|
555
|
+
shouldHighlight: shouldHighlight,
|
|
556
|
+
});
|
|
557
|
+
var barHeight = Math.max(yBarScale(point.y), 0);
|
|
558
|
+
var adjustedBarHeight = 0;
|
|
559
|
+
if (barHeight <= 0) {
|
|
560
|
+
return React.createElement(React.Fragment, { key: point.x instanceof Date ? point.x.getTime() : point.x }, " ");
|
|
561
|
+
}
|
|
562
|
+
else if (barHeight <= Math.ceil(yBarScale(_this._yMax) / 100.0)) {
|
|
563
|
+
adjustedBarHeight = Math.ceil(yBarScale(_this._yMax) / 100.0);
|
|
564
|
+
}
|
|
565
|
+
else {
|
|
566
|
+
adjustedBarHeight = barHeight;
|
|
567
|
+
}
|
|
568
|
+
var xPoint = xBarScale(point.x) - _this._barWidth / 2;
|
|
569
|
+
var yPoint = containerHeight - _this.margins.bottom - adjustedBarHeight;
|
|
570
|
+
return (React.createElement("g", { key: point.x instanceof Date ? point.x.getTime() : point.x },
|
|
571
|
+
React.createElement("rect", { id: (0, Utilities_1.getId)('_VBC_bar_'), x: xPoint, className: _this._classNames.opacityChangeOnHover, y: yPoint, width: _this._barWidth, "data-is-focusable": !_this.props.hideTooltip, height: adjustedBarHeight, ref: function (e) {
|
|
572
|
+
_this._refCallback(e, point.legend);
|
|
573
|
+
}, onClick: point.onClick, onMouseOver: _this._onBarHover.bind(_this, point, colorScale(point.y)), "aria-label": _this._getAriaLabel(point), role: "img", onMouseLeave: _this._onBarLeave, onFocus: _this._onBarFocus.bind(_this, point, index, colorScale(point.y)), onBlur: _this._onBarLeave, fill: point.color && !useSingleColor ? point.color : colorScale(point.y) }),
|
|
574
|
+
_this._renderBarLabel(xPoint, yPoint, point.y, point.legend)));
|
|
575
|
+
});
|
|
576
|
+
// Removing un wanted tooltip div from DOM, when prop not provided.
|
|
577
|
+
if (!this.props.showXAxisLablesTooltip) {
|
|
578
|
+
try {
|
|
579
|
+
document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId).remove();
|
|
580
|
+
// eslint-disable-next-line no-empty
|
|
581
|
+
}
|
|
582
|
+
catch (e) { }
|
|
583
|
+
}
|
|
584
|
+
// Used to display tooltip at x axis labels.
|
|
585
|
+
if (!this.props.wrapXAxisLables && this.props.showXAxisLablesTooltip) {
|
|
586
|
+
var xAxisElement = (0, d3_selection_1.select)(xElement).call(xBarScale);
|
|
587
|
+
try {
|
|
588
|
+
document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId).remove();
|
|
589
|
+
// eslint-disable-next-line no-empty
|
|
590
|
+
}
|
|
591
|
+
catch (e) { }
|
|
592
|
+
var tooltipProps = {
|
|
593
|
+
tooltipCls: this._classNames.tooltip,
|
|
594
|
+
id: this._tooltipId,
|
|
595
|
+
xAxis: xAxisElement,
|
|
596
|
+
};
|
|
597
|
+
xAxisElement && (0, index_2.tooltipOfXAxislabels)(tooltipProps);
|
|
598
|
+
}
|
|
599
|
+
return bars;
|
|
600
|
+
};
|
|
524
601
|
VerticalBarChartBase.prototype._onLegendClick = function (legendTitle) {
|
|
525
602
|
if (this.state.selectedLegend === legendTitle) {
|
|
526
603
|
this.setState({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VerticalBarChart.base.js","sourceRoot":"../src/","sources":["components/VerticalBarChart/VerticalBarChart.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { max as d3Max, min as d3Min } from 'd3-array';\nimport { line as d3Line } from 'd3-shape';\nimport { select as d3Select } from 'd3-selection';\nimport { scaleLinear as d3ScaleLinear, ScaleLinear as D3ScaleLinear, scaleBand as d3ScaleBand } from 'd3-scale';\nimport { classNamesFunction, getId, getRTL } from '@fluentui/react/lib/Utilities';\nimport { IProcessedStyleSet, IPalette } from '@fluentui/react/lib/Styling';\nimport { DirectionalHint } from '@fluentui/react/lib/Callout';\nimport {\n IAccessibilityProps,\n CartesianChart,\n ChartHoverCard,\n IBasestate,\n IMargins,\n ILegend,\n IRefArrayData,\n IVerticalBarChartProps,\n IVerticalBarChartStyleProps,\n IVerticalBarChartStyles,\n IVerticalBarChartDataPoint,\n Legends,\n IChildProps,\n IYValueHover,\n} from '../../index';\nimport { FocusZoneDirection } from '@fluentui/react-focus';\nimport {\n ChartTypes,\n IAxisData,\n getAccessibleDataObject,\n XAxisTypes,\n NumericAxis,\n StringAxis,\n getTypeOfAxis,\n tooltipOfXAxislabels,\n formatValueWithSIPrefix,\n} from '../../utilities/index';\n\nenum CircleVisbility {\n show = 'visibility',\n hide = 'hidden',\n}\nconst getClassNames = classNamesFunction<IVerticalBarChartStyleProps, IVerticalBarChartStyles>();\n\nconst MIN_DOMAIN_MARGIN = 8;\n\nexport interface IVerticalBarChartState extends IBasestate {\n dataPointCalloutProps?: IVerticalBarChartDataPoint; // define this in hover and focus\n /**\n * data point of x, where rectangle is hovered or focused\n */\n activeXdataPoint: number | string | null;\n YValueHover: IYValueHover[];\n hoverXValue?: string | number | null;\n callOutAccessibilityData?: IAccessibilityProps;\n calloutLegend: string;\n}\n\ntype ColorScale = (_p?: number) => string;\n\nexport class VerticalBarChartBase extends React.Component<IVerticalBarChartProps, IVerticalBarChartState> {\n private _points: IVerticalBarChartDataPoint[];\n private _barWidth: number;\n private _colors: string[];\n private _classNames: IProcessedStyleSet<IVerticalBarChartStyles>;\n private _refArray: IRefArrayData[];\n private _calloutId: string;\n private margins: IMargins;\n private _isRtl: boolean = getRTL();\n private _bars: JSX.Element[];\n private _xAxisLabels: string[];\n private _yMax: number;\n private _isHavingLine: boolean;\n private _tooltipId: string;\n private _xAxisType: XAxisTypes;\n private _calloutAnchorPoint: IVerticalBarChartDataPoint | null;\n private _domainMargin: number;\n private _emptyChartId: string;\n\n public constructor(props: IVerticalBarChartProps) {\n super(props);\n this.state = {\n color: '',\n dataForHoverCard: 0,\n isCalloutVisible: false,\n refSelected: null,\n selectedLegend: '',\n activeLegend: '',\n xCalloutValue: '',\n yCalloutValue: '',\n activeXdataPoint: null,\n YValueHover: [],\n hoverXValue: '',\n calloutLegend: '',\n };\n this._isHavingLine = this._checkForLine();\n this._calloutId = getId('callout');\n this._tooltipId = getId('VCTooltipID_');\n this._refArray = [];\n this._xAxisType =\n this.props.data! && this.props.data!.length > 0\n ? (getTypeOfAxis(this.props.data![0].x, true) as XAxisTypes)\n : XAxisTypes.StringAxis;\n this._domainMargin = MIN_DOMAIN_MARGIN;\n this._emptyChartId = getId('_VBC_empty');\n }\n\n public render(): JSX.Element {\n this._adjustProps();\n this._xAxisLabels = this._points.map((point: IVerticalBarChartDataPoint) => point.x as string);\n this._yMax = Math.max(\n d3Max(this._points, (point: IVerticalBarChartDataPoint) => point.y)!,\n this.props.yMaxValue || 0,\n );\n const legendBars: JSX.Element = this._getLegendData(this._points, this.props.theme!.palette);\n this._classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n legendColor: this.state.color,\n });\n const calloutProps = {\n isCalloutVisible: this.state.isCalloutVisible,\n directionalHint: DirectionalHint.topAutoEdge,\n id: `toolTip${this._calloutId}`,\n target: this.state.refSelected,\n isBeakVisible: false,\n ...(this._isHavingLine && {\n YValueHover: this.state.YValueHover,\n hoverXValue: this.state.hoverXValue,\n }),\n gapSpace: 15,\n color: this.state.color,\n legend: this.state.calloutLegend,\n XValue: this.state.xCalloutValue,\n YValue: this.state.yCalloutValue ? this.state.yCalloutValue : this.state.dataForHoverCard,\n onDismiss: this._closeCallout,\n preventDismissOnLostFocus: true,\n ...this.props.calloutProps,\n ...getAccessibleDataObject(this.state.callOutAccessibilityData),\n };\n const tickParams = {\n tickValues: this.props.tickValues,\n tickFormat: this.props.tickFormat,\n };\n return !this._isChartEmpty() ? (\n <CartesianChart\n {...this.props}\n points={this._points}\n chartType={ChartTypes.VerticalBarChart}\n xAxisType={this._xAxisType}\n calloutProps={calloutProps}\n tickParams={tickParams}\n {...(this._isHavingLine && { isCalloutForStack: true })}\n legendBars={legendBars}\n datasetForXAxisDomain={this._xAxisLabels}\n barwidth={this._barWidth}\n focusZoneDirection={FocusZoneDirection.horizontal}\n customizedCallout={this._getCustomizedCallout()}\n getmargins={this._getMargins}\n getGraphData={this._getGraphData}\n getAxisData={this._getAxisData}\n onChartMouseLeave={this._handleChartMouseLeave}\n getDomainMargins={this._getDomainMargins}\n {...(this._xAxisType !== XAxisTypes.NumericAxis && { xAxisInnerPadding: 2 / 3, xAxisOuterPadding: 0 })}\n /* eslint-disable react/jsx-no-bind */\n // eslint-disable-next-line react/no-children-prop\n children={(props: IChildProps) => {\n return (\n <>\n <g>{this._bars}</g>\n {this._isHavingLine && (\n <g>\n {this._createLine(\n props.xScale!,\n props.yScale!,\n props.containerHeight,\n props.containerWidth,\n props.yScaleSecondary,\n )}\n </g>\n )}\n </>\n );\n }}\n />\n ) : (\n <div\n id={this._emptyChartId}\n role={'alert'}\n style={{ opacity: '0' }}\n aria-label={'Graph has no data to display'}\n />\n );\n }\n\n private _createLine = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n yScale: any,\n containerHeight: number = 0,\n containerWidth: number = 0,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n yScaleSecondary?: any,\n ): React.ReactNode => {\n const isNumericAxis = this._xAxisType === XAxisTypes.NumericAxis;\n const { xBarScale } = this._getScales(containerHeight, containerWidth, isNumericAxis);\n const colorScale = this._createColors();\n const { theme } = this.props;\n const { data, lineLegendColor = theme!.palette.yellow, lineLegendText } = this.props;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const lineData: Array<any> = [];\n const line: JSX.Element[] = [];\n data &&\n data.forEach((item: IVerticalBarChartDataPoint, index: number) => {\n if (item.lineData && item.lineData.y) {\n lineData.push({\n x: item.x,\n y: item.lineData!.y,\n useSecondaryYScale: item.lineData!.useSecondaryYScale ?? false,\n point: item,\n index,\n });\n }\n });\n const linePath = d3Line()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .x((d: any) => (!isNumericAxis ? xBarScale(d.x) + 0.5 * xBarScale.bandwidth() : xScale(d.x)))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .y((d: any) => (d.useSecondaryYScale && yScaleSecondary ? yScaleSecondary(d.y) : yScale(d.y)));\n const shouldHighlight = this._legendHighlighted(lineLegendText!) || this._noLegendHighlighted() ? true : false;\n const lineBorderWidth = this.props.lineOptions?.lineBorderWidth\n ? Number.parseFloat(this.props.lineOptions!.lineBorderWidth!.toString())\n : 0;\n\n if (lineBorderWidth > 0) {\n line.push(\n <path\n key={getId('_VBC_line_')}\n id={getId('_VBC_line_')}\n opacity={shouldHighlight ? 1 : 0.1}\n d={linePath(lineData)!}\n fill=\"transparent\"\n strokeLinecap=\"square\"\n strokeWidth={3 + lineBorderWidth * 2}\n stroke={theme!.palette.white}\n />,\n );\n }\n line.push(\n <path\n key={getId('_VBC_line_')}\n id={getId('_VBC_line_')}\n opacity={shouldHighlight ? 1 : 0.1}\n d={linePath(lineData)!}\n fill=\"transparent\"\n strokeLinecap=\"square\"\n strokeWidth={3}\n stroke={lineLegendColor}\n />,\n );\n\n const dots: React.ReactNode[] = lineData.map(\n (\n item: {\n x: number | string;\n y: number;\n useSecondaryYScale: boolean;\n point: IVerticalBarChartDataPoint;\n index: number;\n },\n index: number,\n ) => {\n return (\n <circle\n key={index}\n id={getId('_VBC_point_')}\n cx={!isNumericAxis ? xBarScale(item.x) + 0.5 * xBarScale.bandwidth() : xScale(item.x)}\n cy={item.useSecondaryYScale && yScaleSecondary ? yScaleSecondary(item.y) : yScale(item.y)}\n onMouseOver={this._onBarHover.bind(this, item.point, colorScale(item.y))}\n onMouseOut={this._onBarLeave}\n r={8}\n stroke={lineLegendColor}\n fill={this.props.theme!.palette.white}\n strokeWidth={3}\n visibility={this.state.activeXdataPoint === item.x ? CircleVisbility.show : CircleVisbility.hide}\n onClick={item.point.lineData?.onClick}\n />\n );\n },\n );\n\n return (\n <>\n {line}\n {dots}\n </>\n );\n };\n\n private _checkForLine = (): boolean => {\n const { data } = this.props;\n return data!.some((item: IVerticalBarChartDataPoint) => item?.lineData?.y !== undefined);\n };\n\n private _adjustProps(): void {\n this._points = this.props.data || [];\n this._barWidth = this.props.barWidth || 16;\n const { palette } = this.props.theme!;\n this._colors = this.props.colors || [palette.blueLight, palette.blue, palette.blueMid, palette.blueDark];\n this._isHavingLine = this._checkForLine();\n }\n\n private _getMargins = (margins: IMargins) => {\n this.margins = margins;\n };\n\n private _renderContentForBothLineAndBars = (point: IVerticalBarChartDataPoint): JSX.Element => {\n const { YValueHover, hoverXValue } = this._getCalloutContentForLineAndBar(point);\n const content: JSX.Element[] = YValueHover.map((item: IYValueHover, index: number) => {\n return (\n <ChartHoverCard\n key={index}\n Legend={item.legend}\n {...(index === 0 && { XValue: `${hoverXValue || item.data}` })}\n color={item.color}\n YValue={item.data || item.y}\n culture={this.props.culture}\n />\n );\n });\n return <>{content}</>;\n };\n private _renderContentForOnlyBars = (props: IVerticalBarChartDataPoint): JSX.Element => {\n const { useSingleColor = false } = this.props;\n return (\n <>\n <ChartHoverCard\n XValue={props.xAxisCalloutData || (props.x as string)}\n Legend={props.legend}\n YValue={props.yAxisCalloutData || props.y}\n color={!useSingleColor && props.color ? props.color : this._createColors()(props.y)}\n culture={this.props.culture}\n />\n </>\n );\n };\n\n private _renderCallout = (props?: IVerticalBarChartDataPoint): JSX.Element | null => {\n return props\n ? this._isHavingLine\n ? this._renderContentForBothLineAndBars(props)\n : this._renderContentForOnlyBars(props)\n : null;\n };\n\n private _getCustomizedCallout = () => {\n return this.props.onRenderCalloutPerDataPoint\n ? this.props.onRenderCalloutPerDataPoint(this.state.dataPointCalloutProps, this._renderCallout)\n : null;\n };\n\n private _getGraphData = (\n xScale: StringAxis,\n yScale: NumericAxis,\n containerHeight: number,\n containerWidth: number,\n xElement?: SVGElement | null,\n ) => {\n return (this._bars =\n this._xAxisType === XAxisTypes.NumericAxis\n ? this._createNumericBars(containerHeight, containerWidth, xElement!)\n : this._createStringBars(containerHeight, containerWidth, xElement!));\n };\n\n private _createColors(): D3ScaleLinear<string, string> | ColorScale {\n const increment = this._colors.length <= 1 ? 1 : 1 / (this._colors.length - 1);\n const { useSingleColor = false } = this.props;\n if (useSingleColor) {\n return (_p?: number) => {\n const { theme, colors } = this.props;\n return colors && colors.length > 0 ? colors[0] : theme!.palette.blueLight;\n };\n }\n const domainValues = [];\n for (let i = 0; i < this._colors.length; i++) {\n domainValues.push(increment * i * this._yMax);\n }\n const colorScale = d3ScaleLinear<string>().domain(domainValues).range(this._colors);\n return colorScale;\n }\n\n private _refCallback = (element: SVGRectElement, legendTitle: string): void => {\n this._refArray.push({ index: legendTitle, refElement: element });\n };\n\n private _getCalloutContentForLineAndBar = (\n point: IVerticalBarChartDataPoint,\n ): { YValueHover: IYValueHover[]; hoverXValue: string | number | null } => {\n const YValueHover: IYValueHover[] = [];\n const { theme, useSingleColor = false } = this.props;\n const { data, lineLegendText, lineLegendColor = theme!.palette.yellow } = this.props;\n const selectedPoint = data!.filter((xDataPoint: IVerticalBarChartDataPoint) => xDataPoint.x === point.x);\n // there might be no y value of the line for the hovered bar. so we need to check this condition\n if (this._isHavingLine && selectedPoint[0].lineData?.y !== undefined) {\n // callout data for the line\n YValueHover.push({\n legend: lineLegendText,\n color: lineLegendColor,\n y: selectedPoint[0].lineData?.y,\n data: selectedPoint[0].lineData?.yAxisCalloutData,\n yAxisCalloutData: selectedPoint[0].lineData?.yAxisCalloutData,\n });\n }\n // callout data for the bar\n YValueHover.push({\n legend: selectedPoint[0].legend,\n y: selectedPoint[0].y,\n color: !useSingleColor\n ? selectedPoint[0].color\n ? selectedPoint[0].color\n : this._createColors()(selectedPoint[0].y)\n : this._createColors()(1),\n data: selectedPoint[0].yAxisCalloutData,\n yAxisCalloutData: selectedPoint[0].yAxisCalloutData,\n });\n return { YValueHover, hoverXValue: point.xAxisCalloutData || point.x.toString() };\n };\n\n private _onBarHover(\n point: IVerticalBarChartDataPoint,\n color: string,\n mouseEvent: React.MouseEvent<SVGElement>,\n ): void {\n mouseEvent.persist();\n\n const { YValueHover, hoverXValue } = this._getCalloutContentForLineAndBar(point);\n if (this._calloutAnchorPoint !== point) {\n this._calloutAnchorPoint = point;\n this.setState({\n refSelected: mouseEvent,\n /** Show the callout if highlighted bar is hovered and Hide it if unhighlighted bar is hovered */\n isCalloutVisible: this.state.selectedLegend === '' || this.state.selectedLegend === point.legend,\n dataForHoverCard: point.y,\n calloutLegend: point.legend!,\n color: point.color || color,\n // To display callout value, if no callout value given, taking given point.x value as a string.\n xCalloutValue: point.xAxisCalloutData || point.x.toString(),\n yCalloutValue: point.yAxisCalloutData!,\n dataPointCalloutProps: point,\n activeXdataPoint: point.x,\n YValueHover,\n hoverXValue,\n callOutAccessibilityData: point.callOutAccessibilityData,\n });\n }\n }\n\n private _onBarLeave = (): void => {\n /**/\n };\n\n private _handleChartMouseLeave = (): void => {\n this._calloutAnchorPoint = null;\n this.setState({\n isCalloutVisible: false,\n activeXdataPoint: null,\n YValueHover: [],\n hoverXValue: '',\n });\n };\n\n private _onBarFocus = (point: IVerticalBarChartDataPoint, refArrayIndexNumber: number, color: string): void => {\n const { YValueHover, hoverXValue } = this._getCalloutContentForLineAndBar(point);\n this._refArray.forEach((obj: IRefArrayData, index: number) => {\n if (obj.index === point.legend! && refArrayIndexNumber === index) {\n this.setState({\n refSelected: obj.refElement,\n /** Show the callout if highlighted bar is focused and Hide it if unhighlighted bar is focused */\n isCalloutVisible: this.state.selectedLegend === '' || this.state.selectedLegend === point.legend,\n calloutLegend: point.legend!,\n dataForHoverCard: point.y,\n color: point.color || color,\n xCalloutValue: point.xAxisCalloutData || point.x.toString(),\n yCalloutValue: point.yAxisCalloutData!,\n dataPointCalloutProps: point,\n activeXdataPoint: point.x,\n YValueHover,\n hoverXValue,\n callOutAccessibilityData: point.callOutAccessibilityData,\n });\n }\n });\n };\n\n private _getScales = (\n containerHeight: number,\n containerWidth: number,\n isNumericScale: boolean,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): { xBarScale: any; yBarScale: any } => {\n if (isNumericScale) {\n const xMax = d3Max(this._points, (point: IVerticalBarChartDataPoint) => point.x as number)!;\n const xMin = d3Min(this._points, (point: IVerticalBarChartDataPoint) => point.x as number)!;\n const xBarScale = d3ScaleLinear()\n .domain(this._isRtl ? [xMax, xMin] : [xMin, xMax])\n .nice()\n .range([\n this.margins.left! + this._domainMargin,\n containerWidth - this.margins.right! - this._barWidth - this._domainMargin,\n ]);\n const yBarScale = d3ScaleLinear()\n .domain([0, this._yMax])\n .range([0, containerHeight - this.margins.bottom! - this.margins.top!]);\n return { xBarScale, yBarScale };\n } else {\n const xBarScale = d3ScaleBand()\n .domain(this._xAxisLabels)\n .range(\n this._isRtl\n ? [containerWidth - this.margins.right! - this._domainMargin, this.margins.left! + this._domainMargin]\n : [this.margins.left! + this._domainMargin, containerWidth - this.margins.right! - this._domainMargin],\n )\n .paddingInner(2 / 3);\n\n const yBarScale = d3ScaleLinear()\n .domain([0, this._yMax])\n .range([0, containerHeight - this.margins.bottom! - this.margins.top!]);\n return { xBarScale, yBarScale };\n }\n };\n\n private _createNumericBars(containerHeight: number, containerWidth: number, xElement: SVGElement): JSX.Element[] {\n const { useSingleColor = false } = this.props;\n const { xBarScale, yBarScale } = this._getScales(containerHeight, containerWidth, true);\n const colorScale = this._createColors();\n const bars = this._points.map((point: IVerticalBarChartDataPoint, index: number) => {\n const shouldHighlight = this._legendHighlighted(point.legend!) || this._noLegendHighlighted() ? true : false;\n this._classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n legendColor: this.state.color,\n shouldHighlight,\n });\n const barHeight: number = Math.max(yBarScale(point.y), 0);\n let adjustedBarHeight = 0;\n if (barHeight <= 0) {\n return <React.Fragment key={point.x}> </React.Fragment>;\n } else if (barHeight <= Math.ceil(yBarScale(this._yMax) / 100.0)) {\n adjustedBarHeight = Math.ceil(yBarScale(this._yMax) / 100.0);\n } else {\n adjustedBarHeight = barHeight;\n }\n const xPoint = xBarScale(point.x as number);\n const yPoint = containerHeight - this.margins.bottom! - adjustedBarHeight;\n return (\n <g key={point.x}>\n <rect\n id={getId('_VBC_bar_')}\n x={xPoint}\n className={this._classNames.opacityChangeOnHover}\n y={yPoint}\n width={this._barWidth}\n data-is-focusable={!this.props.hideTooltip}\n height={adjustedBarHeight}\n ref={(e: SVGRectElement) => {\n this._refCallback(e, point.legend!);\n }}\n onClick={point.onClick}\n onMouseOver={this._onBarHover.bind(this, point, colorScale(point.y))}\n aria-label={this._getAriaLabel(point)}\n role=\"img\"\n onMouseLeave={this._onBarLeave}\n onFocus={this._onBarFocus.bind(this, point, index, colorScale(point.y))}\n onBlur={this._onBarLeave}\n fill={point.color && !useSingleColor ? point.color : colorScale(point.y)}\n />\n {this._renderBarLabel(xPoint, yPoint, point.y, point.legend!)}\n </g>\n );\n });\n // Removing un wanted tooltip div from DOM, when prop not provided.\n if (!this.props.showXAxisLablesTooltip) {\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n // Used to display tooltip at x axis labels.\n if (!this.props.wrapXAxisLables && this.props.showXAxisLablesTooltip) {\n const xAxisElement = d3Select(xElement).call(xBarScale);\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n const tooltipProps = {\n tooltipCls: this._classNames.tooltip!,\n id: this._tooltipId,\n xAxis: xAxisElement,\n };\n xAxisElement && tooltipOfXAxislabels(tooltipProps);\n }\n return bars;\n }\n\n private _createStringBars(containerHeight: number, containerWidth: number, xElement: SVGElement): JSX.Element[] {\n const { xBarScale, yBarScale } = this._getScales(containerHeight, containerWidth, false);\n const colorScale = this._createColors();\n const bars = this._points.map((point: IVerticalBarChartDataPoint, index: number) => {\n const barHeight: number = Math.max(yBarScale(point.y), 0);\n let adjustedBarHeight = 0;\n if (barHeight <= 0) {\n return <React.Fragment key={point.x}> </React.Fragment>;\n } else if (barHeight <= Math.ceil(yBarScale(this._yMax) / 100.0)) {\n adjustedBarHeight = Math.ceil(yBarScale(this._yMax) / 100.0);\n } else {\n adjustedBarHeight = barHeight;\n }\n const xPoint = xBarScale(point.x);\n const yPoint = containerHeight - this.margins.bottom! - adjustedBarHeight;\n return (\n <g key={point.x} transform={`translate(${0.5 * (xBarScale.bandwidth() - this._barWidth)}, 0)`}>\n <rect\n id={getId('_VBC_bar_')}\n x={xPoint}\n y={yPoint}\n width={this._barWidth}\n height={adjustedBarHeight}\n aria-label={this._getAriaLabel(point)}\n role=\"img\"\n ref={(e: SVGRectElement) => {\n this._refCallback(e, point.legend!);\n }}\n onClick={point.onClick}\n onMouseOver={this._onBarHover.bind(this, point, colorScale(point.y))}\n onMouseLeave={this._onBarLeave}\n onBlur={this._onBarLeave}\n data-is-focusable={!this.props.hideTooltip}\n onFocus={this._onBarFocus.bind(this, point, index, colorScale(point.y))}\n fill={point.color ? point.color : colorScale(point.y)}\n />\n {this._renderBarLabel(xPoint, yPoint, point.y, point.legend!)}\n </g>\n );\n });\n\n // Removing un wanted tooltip div from DOM, when prop not provided.\n if (!this.props.showXAxisLablesTooltip) {\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n // Used to display tooltip at x axis labels.\n if (!this.props.wrapXAxisLables && this.props.showXAxisLablesTooltip) {\n const xAxisElement = d3Select(xElement).call(xBarScale);\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n const tooltipProps = {\n tooltipCls: this._classNames.tooltip!,\n id: this._tooltipId,\n xAxis: xAxisElement,\n showTooltip: this.props.showXAxisLablesTooltip,\n };\n xAxisElement && tooltipOfXAxislabels(tooltipProps);\n }\n return bars;\n }\n\n private _closeCallout = () => {\n this.setState({\n isCalloutVisible: false,\n });\n };\n\n private _onLegendClick(legendTitle: string): void {\n if (this.state.selectedLegend === legendTitle) {\n this.setState({\n selectedLegend: '',\n });\n } else {\n this.setState({\n selectedLegend: legendTitle,\n });\n }\n }\n\n private _onLegendHover(legendTitle: string): void {\n this.setState({\n activeLegend: legendTitle,\n });\n }\n\n private _onLegendLeave(): void {\n this.setState({\n activeLegend: '',\n });\n }\n\n private _getLegendData = (data: IVerticalBarChartDataPoint[], palette: IPalette): JSX.Element => {\n const { theme, useSingleColor } = this.props;\n const { lineLegendText, lineLegendColor = theme!.palette.yellow } = this.props;\n const actions: ILegend[] = [];\n data.forEach((point: IVerticalBarChartDataPoint, _index: number) => {\n const color: string = !useSingleColor ? point.color! : this._createColors()(1);\n // mapping data to the format Legends component needs\n const legend: ILegend = {\n title: point.legend!,\n color,\n action: () => {\n this._onLegendClick(point.legend!);\n },\n hoverAction: () => {\n this._handleChartMouseLeave();\n this._onLegendHover(point.legend!);\n },\n onMouseOutAction: () => {\n this._onLegendLeave();\n },\n };\n actions.push(legend);\n });\n if (this._isHavingLine && lineLegendText && lineLegendColor) {\n const lineLegend: ILegend = {\n title: lineLegendText,\n color: lineLegendColor,\n action: () => {\n this._onLegendClick(lineLegendText);\n },\n hoverAction: () => {\n this._handleChartMouseLeave();\n this._onLegendHover(lineLegendText);\n },\n onMouseOutAction: () => {\n this._onLegendLeave();\n },\n isLineLegendInBarChart: true,\n };\n actions.unshift(lineLegend);\n }\n const legends = (\n <Legends\n legends={actions}\n enabledWrapLines={this.props.enabledLegendsWrapLines}\n overflowProps={this.props.legendsOverflowProps}\n focusZonePropsInHoverCard={this.props.focusZonePropsForLegendsInHoverCard}\n overflowText={this.props.legendsOverflowText}\n {...this.props.legendProps}\n />\n );\n return legends;\n };\n\n private _getAxisData = (yAxisData: IAxisData) => {\n if (yAxisData && yAxisData.yAxisDomainValues.length) {\n const { yAxisDomainValues: domainValue } = yAxisData;\n this._yMax = Math.max(domainValue[domainValue.length - 1], this.props.yMaxValue || 0);\n }\n };\n\n /**\n * This function checks if the given legend is highlighted or not.\n * A legend can be highlighted in 2 ways:\n * 1. selection: if the user clicks on it\n * 2. hovering: if there is no selected legend and the user hovers over it\n */\n private _legendHighlighted = (legendTitle: string) => {\n return (\n this.state.selectedLegend === legendTitle ||\n (this.state.selectedLegend === '' && this.state.activeLegend === legendTitle)\n );\n };\n\n /**\n * This function checks if none of the legends is selected or hovered.\n */\n private _noLegendHighlighted = () => {\n return this.state.selectedLegend === '' && this.state.activeLegend === '';\n };\n\n private _getAriaLabel = (point: IVerticalBarChartDataPoint): string => {\n const xValue = point.xAxisCalloutData || point.x;\n const legend = point.legend;\n const yValue = point.yAxisCalloutData || point.y;\n const lineLegend = this.props.lineLegendText || 'Line';\n const lineYValue = point.lineData?.yAxisCalloutData || point.lineData?.y;\n return (\n point.callOutAccessibilityData?.ariaLabel ||\n `${xValue}. ` +\n (legend ? `${legend}, ` : '') +\n `${yValue}.` +\n (typeof lineYValue !== 'undefined' ? ` ${lineLegend}, ${lineYValue}.` : '')\n );\n };\n\n private _renderBarLabel(xPoint: number, yPoint: number, barValue: number, legend: string) {\n if (\n this.props.hideLabels ||\n this._barWidth < 16 ||\n !(this._legendHighlighted(legend) || this._noLegendHighlighted())\n ) {\n return null;\n }\n\n return (\n <text\n x={xPoint + this._barWidth / 2}\n y={yPoint - 6}\n textAnchor=\"middle\"\n className={this._classNames.barLabel}\n aria-hidden={true}\n >\n {formatValueWithSIPrefix(barValue)}\n </text>\n );\n }\n\n private _getDomainMargins = (containerWidth: number): IMargins => {\n if (this._xAxisType !== XAxisTypes.NumericAxis) {\n /** Total width available to render the bars */\n const totalWidth =\n containerWidth - (this.margins.left! + MIN_DOMAIN_MARGIN) - (this.margins.right! + MIN_DOMAIN_MARGIN);\n let barWidth = Math.min(this.props.barWidth || 16, 24);\n /** Total width required to render the bars. Directly proportional to bar width */\n const reqWidth = (3 * this._xAxisLabels.length - 2) * barWidth;\n\n this._domainMargin = MIN_DOMAIN_MARGIN;\n if (totalWidth >= reqWidth) {\n // Center align the chart by setting equal left and right margins for domain\n this._domainMargin += (totalWidth - reqWidth) / 2;\n } else {\n /** Maximum possible bar width to maintain 2:1 spacing */\n const maxBandwidth = totalWidth / (3 * this._xAxisLabels.length - 2);\n barWidth = maxBandwidth;\n }\n this._barWidth = barWidth;\n }\n\n return {\n ...this.margins,\n left: this.margins.left! + this._domainMargin,\n right: this.margins.right! + this._domainMargin,\n };\n };\n\n private _isChartEmpty(): boolean {\n return (\n this._points.length === 0 ||\n (d3Max(this._points, (point: IVerticalBarChartDataPoint) => point.y)! <= 0 && !this._isHavingLine)\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"VerticalBarChart.base.js","sourceRoot":"../src/","sources":["components/VerticalBarChart/VerticalBarChart.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { max as d3Max, min as d3Min } from 'd3-array';\nimport { line as d3Line } from 'd3-shape';\nimport { select as d3Select } from 'd3-selection';\nimport {\n scaleLinear as d3ScaleLinear,\n ScaleLinear as D3ScaleLinear,\n scaleBand as d3ScaleBand,\n scaleTime as d3ScaleTime,\n} from 'd3-scale';\nimport { classNamesFunction, getId, getRTL } from '@fluentui/react/lib/Utilities';\nimport { IProcessedStyleSet, IPalette } from '@fluentui/react/lib/Styling';\nimport { DirectionalHint } from '@fluentui/react/lib/Callout';\nimport {\n IAccessibilityProps,\n CartesianChart,\n ChartHoverCard,\n IBasestate,\n IMargins,\n ILegend,\n IRefArrayData,\n IVerticalBarChartProps,\n IVerticalBarChartStyleProps,\n IVerticalBarChartStyles,\n IVerticalBarChartDataPoint,\n Legends,\n IChildProps,\n IYValueHover,\n} from '../../index';\nimport { FocusZoneDirection } from '@fluentui/react-focus';\nimport {\n ChartTypes,\n IAxisData,\n getAccessibleDataObject,\n XAxisTypes,\n NumericAxis,\n getTypeOfAxis,\n tooltipOfXAxislabels,\n formatValueWithSIPrefix,\n} from '../../utilities/index';\n\nenum CircleVisbility {\n show = 'visibility',\n hide = 'hidden',\n}\nconst getClassNames = classNamesFunction<IVerticalBarChartStyleProps, IVerticalBarChartStyles>();\n\nconst MIN_DOMAIN_MARGIN = 8;\n\nexport interface IVerticalBarChartState extends IBasestate {\n dataPointCalloutProps?: IVerticalBarChartDataPoint; // define this in hover and focus\n /**\n * data point of x, where rectangle is hovered or focused\n */\n activeXdataPoint: number | string | Date | null;\n YValueHover: IYValueHover[];\n hoverXValue?: string | number | null;\n callOutAccessibilityData?: IAccessibilityProps;\n calloutLegend: string;\n}\n\ntype ColorScale = (_p?: number) => string;\n\nexport class VerticalBarChartBase extends React.Component<IVerticalBarChartProps, IVerticalBarChartState> {\n private _points: IVerticalBarChartDataPoint[];\n private _barWidth: number;\n private _colors: string[];\n private _classNames: IProcessedStyleSet<IVerticalBarChartStyles>;\n private _refArray: IRefArrayData[];\n private _calloutId: string;\n private margins: IMargins;\n private _isRtl: boolean = getRTL();\n private _bars: JSX.Element[];\n private _xAxisLabels: string[];\n private _yMax: number;\n private _isHavingLine: boolean;\n private _tooltipId: string;\n private _xAxisType: XAxisTypes;\n private _calloutAnchorPoint: IVerticalBarChartDataPoint | null;\n private _domainMargin: number;\n private _emptyChartId: string;\n\n public constructor(props: IVerticalBarChartProps) {\n super(props);\n this.state = {\n color: '',\n dataForHoverCard: 0,\n isCalloutVisible: false,\n refSelected: null,\n selectedLegend: '',\n activeLegend: '',\n xCalloutValue: '',\n yCalloutValue: '',\n activeXdataPoint: null,\n YValueHover: [],\n hoverXValue: '',\n calloutLegend: '',\n };\n this._isHavingLine = this._checkForLine();\n this._calloutId = getId('callout');\n this._tooltipId = getId('VCTooltipID_');\n this._refArray = [];\n this._xAxisType =\n this.props.data! && this.props.data!.length > 0\n ? (getTypeOfAxis(this.props.data![0].x, true) as XAxisTypes)\n : XAxisTypes.StringAxis;\n this._domainMargin = MIN_DOMAIN_MARGIN;\n this._emptyChartId = getId('_VBC_empty');\n }\n\n public render(): JSX.Element {\n this._adjustProps();\n this._xAxisLabels = this._points.map((point: IVerticalBarChartDataPoint) => point.x as string);\n this._yMax = Math.max(\n d3Max(this._points, (point: IVerticalBarChartDataPoint) => point.y)!,\n this.props.yMaxValue || 0,\n );\n const legendBars: JSX.Element = this._getLegendData(this._points, this.props.theme!.palette);\n this._classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n legendColor: this.state.color,\n });\n const calloutProps = {\n isCalloutVisible: this.state.isCalloutVisible,\n directionalHint: DirectionalHint.topAutoEdge,\n id: `toolTip${this._calloutId}`,\n target: this.state.refSelected,\n isBeakVisible: false,\n ...(this._isHavingLine && {\n YValueHover: this.state.YValueHover,\n hoverXValue: this.state.hoverXValue,\n }),\n gapSpace: 15,\n color: this.state.color,\n legend: this.state.calloutLegend,\n XValue: this.state.xCalloutValue,\n YValue: this.state.yCalloutValue ? this.state.yCalloutValue : this.state.dataForHoverCard,\n onDismiss: this._closeCallout,\n preventDismissOnLostFocus: true,\n ...this.props.calloutProps,\n ...getAccessibleDataObject(this.state.callOutAccessibilityData),\n };\n const tickParams = {\n tickValues: this.props.tickValues,\n tickFormat: this.props.tickFormat,\n };\n return !this._isChartEmpty() ? (\n <CartesianChart\n {...this.props}\n points={this._points}\n chartType={ChartTypes.VerticalBarChart}\n xAxisType={this._xAxisType}\n calloutProps={calloutProps}\n tickParams={tickParams}\n {...(this._isHavingLine && { isCalloutForStack: true })}\n legendBars={legendBars}\n datasetForXAxisDomain={this._xAxisLabels}\n barwidth={this._barWidth}\n focusZoneDirection={FocusZoneDirection.horizontal}\n customizedCallout={this._getCustomizedCallout()}\n getmargins={this._getMargins}\n getGraphData={this._getGraphData}\n getAxisData={this._getAxisData}\n onChartMouseLeave={this._handleChartMouseLeave}\n getDomainMargins={this._getDomainMargins}\n {...(this._xAxisType !== XAxisTypes.NumericAxis && { xAxisInnerPadding: 2 / 3, xAxisOuterPadding: 0 })}\n /* eslint-disable react/jsx-no-bind */\n // eslint-disable-next-line react/no-children-prop\n children={(props: IChildProps) => {\n return (\n <>\n <g>{this._bars}</g>\n {this._isHavingLine && (\n <g>\n {this._createLine(\n props.xScale!,\n props.yScale!,\n props.containerHeight,\n props.containerWidth,\n props.yScaleSecondary,\n )}\n </g>\n )}\n </>\n );\n }}\n />\n ) : (\n <div\n id={this._emptyChartId}\n role={'alert'}\n style={{ opacity: '0' }}\n aria-label={'Graph has no data to display'}\n />\n );\n }\n\n private _createLine = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n yScale: any,\n containerHeight: number = 0,\n containerWidth: number = 0,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n yScaleSecondary?: any,\n ): React.ReactNode => {\n const isStringAxis = this._xAxisType === XAxisTypes.StringAxis;\n const { xBarScale } = this._getScales(containerHeight, containerWidth);\n const colorScale = this._createColors();\n const { theme } = this.props;\n const { data, lineLegendColor = theme!.palette.yellow, lineLegendText } = this.props;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const lineData: Array<any> = [];\n const line: JSX.Element[] = [];\n data &&\n data.forEach((item: IVerticalBarChartDataPoint, index: number) => {\n if (item.lineData && item.lineData.y) {\n lineData.push({\n x: item.x,\n y: item.lineData!.y,\n useSecondaryYScale: item.lineData!.useSecondaryYScale ?? false,\n point: item,\n index,\n });\n }\n });\n const linePath = d3Line()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .x((d: any) => (isStringAxis ? xBarScale(d.x) + 0.5 * xBarScale.bandwidth() : xScale(d.x)))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .y((d: any) => (d.useSecondaryYScale && yScaleSecondary ? yScaleSecondary(d.y) : yScale(d.y)));\n const shouldHighlight = this._legendHighlighted(lineLegendText!) || this._noLegendHighlighted() ? true : false;\n const lineBorderWidth = this.props.lineOptions?.lineBorderWidth\n ? Number.parseFloat(this.props.lineOptions!.lineBorderWidth!.toString())\n : 0;\n\n if (lineBorderWidth > 0) {\n line.push(\n <path\n key={getId('_VBC_line_')}\n id={getId('_VBC_line_')}\n opacity={shouldHighlight ? 1 : 0.1}\n d={linePath(lineData)!}\n fill=\"transparent\"\n strokeLinecap=\"square\"\n strokeWidth={3 + lineBorderWidth * 2}\n stroke={theme!.palette.white}\n />,\n );\n }\n line.push(\n <path\n key={getId('_VBC_line_')}\n id={getId('_VBC_line_')}\n opacity={shouldHighlight ? 1 : 0.1}\n d={linePath(lineData)!}\n fill=\"transparent\"\n strokeLinecap=\"square\"\n strokeWidth={3}\n stroke={lineLegendColor}\n />,\n );\n\n const dots: React.ReactNode[] = lineData.map(\n (\n item: {\n x: number | string;\n y: number;\n useSecondaryYScale: boolean;\n point: IVerticalBarChartDataPoint;\n index: number;\n },\n index: number,\n ) => {\n return (\n <circle\n key={index}\n id={getId('_VBC_point_')}\n cx={isStringAxis ? xBarScale(item.x) + 0.5 * xBarScale.bandwidth() : xScale(item.x)}\n cy={item.useSecondaryYScale && yScaleSecondary ? yScaleSecondary(item.y) : yScale(item.y)}\n onMouseOver={this._onBarHover.bind(this, item.point, colorScale(item.y))}\n onMouseOut={this._onBarLeave}\n r={8}\n stroke={lineLegendColor}\n fill={this.props.theme!.palette.white}\n strokeWidth={3}\n visibility={this.state.activeXdataPoint === item.x ? CircleVisbility.show : CircleVisbility.hide}\n onClick={item.point.lineData?.onClick}\n />\n );\n },\n );\n\n return (\n <>\n {line}\n {dots}\n </>\n );\n };\n\n private _checkForLine = (): boolean => {\n const { data } = this.props;\n return data!.some((item: IVerticalBarChartDataPoint) => item?.lineData?.y !== undefined);\n };\n\n private _adjustProps(): void {\n this._points = this.props.data || [];\n this._barWidth = this.props.barWidth || 16;\n const { palette } = this.props.theme!;\n this._colors = this.props.colors || [palette.blueLight, palette.blue, palette.blueMid, palette.blueDark];\n this._isHavingLine = this._checkForLine();\n }\n\n private _getMargins = (margins: IMargins) => {\n this.margins = margins;\n };\n\n private _renderContentForBothLineAndBars = (point: IVerticalBarChartDataPoint): JSX.Element => {\n const { YValueHover, hoverXValue } = this._getCalloutContentForLineAndBar(point);\n const content: JSX.Element[] = YValueHover.map((item: IYValueHover, index: number) => {\n return (\n <ChartHoverCard\n key={index}\n Legend={item.legend}\n {...(index === 0 && { XValue: `${hoverXValue || item.data}` })}\n color={item.color}\n YValue={item.data || item.y}\n culture={this.props.culture}\n />\n );\n });\n return <>{content}</>;\n };\n private _renderContentForOnlyBars = (props: IVerticalBarChartDataPoint): JSX.Element => {\n const { useSingleColor = false } = this.props;\n return (\n <>\n <ChartHoverCard\n XValue={props.xAxisCalloutData || (props.x as string)}\n Legend={props.legend}\n YValue={props.yAxisCalloutData || props.y}\n color={!useSingleColor && props.color ? props.color : this._createColors()(props.y)}\n culture={this.props.culture}\n />\n </>\n );\n };\n\n private _renderCallout = (props?: IVerticalBarChartDataPoint): JSX.Element | null => {\n return props\n ? this._isHavingLine\n ? this._renderContentForBothLineAndBars(props)\n : this._renderContentForOnlyBars(props)\n : null;\n };\n\n private _getCustomizedCallout = () => {\n return this.props.onRenderCalloutPerDataPoint\n ? this.props.onRenderCalloutPerDataPoint(this.state.dataPointCalloutProps, this._renderCallout)\n : null;\n };\n\n private _getGraphData = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale: any,\n yScale: NumericAxis,\n containerHeight: number,\n containerWidth: number,\n xElement?: SVGElement | null,\n ) => {\n return (this._bars =\n this._xAxisType === XAxisTypes.NumericAxis\n ? this._createNumericBars(containerHeight, containerWidth, xElement!)\n : this._xAxisType === XAxisTypes.DateAxis\n ? this._createDateBars(containerHeight, containerWidth, xElement!)\n : this._createStringBars(containerHeight, containerWidth, xElement!));\n };\n\n private _createColors(): D3ScaleLinear<string, string> | ColorScale {\n const increment = this._colors.length <= 1 ? 1 : 1 / (this._colors.length - 1);\n const { useSingleColor = false } = this.props;\n if (useSingleColor) {\n return (_p?: number) => {\n const { theme, colors } = this.props;\n return colors && colors.length > 0 ? colors[0] : theme!.palette.blueLight;\n };\n }\n const domainValues = [];\n for (let i = 0; i < this._colors.length; i++) {\n domainValues.push(increment * i * this._yMax);\n }\n const colorScale = d3ScaleLinear<string>().domain(domainValues).range(this._colors);\n return colorScale;\n }\n\n private _refCallback = (element: SVGRectElement, legendTitle: string): void => {\n this._refArray.push({ index: legendTitle, refElement: element });\n };\n\n private _getCalloutContentForLineAndBar = (\n point: IVerticalBarChartDataPoint,\n ): { YValueHover: IYValueHover[]; hoverXValue: string | number | null } => {\n const YValueHover: IYValueHover[] = [];\n const { theme, useSingleColor = false } = this.props;\n const { data, lineLegendText, lineLegendColor = theme!.palette.yellow } = this.props;\n const selectedPoint = data!.filter((xDataPoint: IVerticalBarChartDataPoint) => xDataPoint.x === point.x);\n // there might be no y value of the line for the hovered bar. so we need to check this condition\n if (this._isHavingLine && selectedPoint[0].lineData?.y !== undefined) {\n // callout data for the line\n YValueHover.push({\n legend: lineLegendText,\n color: lineLegendColor,\n y: selectedPoint[0].lineData?.y,\n data: selectedPoint[0].lineData?.yAxisCalloutData,\n yAxisCalloutData: selectedPoint[0].lineData?.yAxisCalloutData,\n });\n }\n // callout data for the bar\n YValueHover.push({\n legend: selectedPoint[0].legend,\n y: selectedPoint[0].y,\n color: !useSingleColor\n ? selectedPoint[0].color\n ? selectedPoint[0].color\n : this._createColors()(selectedPoint[0].y)\n : this._createColors()(1),\n data: selectedPoint[0].yAxisCalloutData,\n yAxisCalloutData: selectedPoint[0].yAxisCalloutData,\n });\n const hoverXValue = point.x instanceof Date ? point.x.toLocaleString() : point.x.toString();\n return {\n YValueHover,\n hoverXValue: point.xAxisCalloutData || hoverXValue,\n };\n };\n\n private _onBarHover(\n point: IVerticalBarChartDataPoint,\n color: string,\n mouseEvent: React.MouseEvent<SVGElement>,\n ): void {\n mouseEvent.persist();\n\n const { YValueHover, hoverXValue } = this._getCalloutContentForLineAndBar(point);\n if (this._calloutAnchorPoint !== point) {\n this._calloutAnchorPoint = point;\n this.setState({\n refSelected: mouseEvent,\n /** Show the callout if highlighted bar is hovered and Hide it if unhighlighted bar is hovered */\n isCalloutVisible: this.state.selectedLegend === '' || this.state.selectedLegend === point.legend,\n dataForHoverCard: point.y,\n calloutLegend: point.legend!,\n color: point.color || color,\n // To display callout value, if no callout value given, taking given point.x value as a string.\n xCalloutValue:\n point.xAxisCalloutData || (point.x instanceof Date ? point.x.toLocaleDateString() : point.x.toString()),\n yCalloutValue: point.yAxisCalloutData!,\n dataPointCalloutProps: point,\n activeXdataPoint: point.x,\n YValueHover,\n hoverXValue,\n callOutAccessibilityData: point.callOutAccessibilityData,\n });\n }\n }\n\n private _onBarLeave = (): void => {\n /**/\n };\n\n private _handleChartMouseLeave = (): void => {\n this._calloutAnchorPoint = null;\n this.setState({\n isCalloutVisible: false,\n activeXdataPoint: null,\n YValueHover: [],\n hoverXValue: '',\n });\n };\n\n private _onBarFocus = (point: IVerticalBarChartDataPoint, refArrayIndexNumber: number, color: string): void => {\n const { YValueHover, hoverXValue } = this._getCalloutContentForLineAndBar(point);\n this._refArray.forEach((obj: IRefArrayData, index: number) => {\n if (obj.index === point.legend! && refArrayIndexNumber === index) {\n this.setState({\n refSelected: obj.refElement,\n /** Show the callout if highlighted bar is focused and Hide it if unhighlighted bar is focused */\n isCalloutVisible: this.state.selectedLegend === '' || this.state.selectedLegend === point.legend,\n calloutLegend: point.legend!,\n dataForHoverCard: point.y,\n color: point.color || color,\n xCalloutValue:\n point.xAxisCalloutData || (point.x instanceof Date ? point.x.toLocaleDateString() : point.x.toString()),\n yCalloutValue: point.yAxisCalloutData!,\n dataPointCalloutProps: point,\n activeXdataPoint: point.x,\n YValueHover,\n hoverXValue,\n callOutAccessibilityData: point.callOutAccessibilityData,\n });\n }\n });\n };\n\n private _getScales = (\n containerHeight: number,\n containerWidth: number,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): { xBarScale: any; yBarScale: any } => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let xBarScale: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const yBarScale: any = d3ScaleLinear()\n .domain([0, this._yMax])\n .range([0, containerHeight - this.margins.bottom! - this.margins.top!]);\n\n if (this._xAxisType === XAxisTypes.NumericAxis) {\n const xMax = d3Max(this._points, (point: IVerticalBarChartDataPoint) => point.x as number)!;\n const xMin = d3Min(this._points, (point: IVerticalBarChartDataPoint) => point.x as number)!;\n xBarScale = d3ScaleLinear()\n .domain(this._isRtl ? [xMax, xMin] : [xMin, xMax])\n .nice()\n .range([\n this.margins.left! + this._domainMargin,\n containerWidth - this.margins.right! - this._barWidth - this._domainMargin,\n ]);\n } else if (this._xAxisType === XAxisTypes.DateAxis) {\n const sDate = d3Min(this._points, (point: IVerticalBarChartDataPoint) => point.x as Date)!;\n const lDate = d3Max(this._points, (point: IVerticalBarChartDataPoint) => point.x as Date)!;\n xBarScale = d3ScaleTime()\n .domain([sDate, lDate])\n .range([\n this.margins.left! + this._domainMargin + this._barWidth / 2,\n containerWidth - this.margins.right! - this._barWidth / 2 - this._domainMargin,\n ]);\n } else {\n xBarScale = d3ScaleBand()\n .domain(this._xAxisLabels)\n .range(\n this._isRtl\n ? [containerWidth - this.margins.right! - this._domainMargin, this.margins.left! + this._domainMargin]\n : [this.margins.left! + this._domainMargin, containerWidth - this.margins.right! - this._domainMargin],\n )\n .paddingInner(2 / 3);\n }\n\n return { xBarScale, yBarScale };\n };\n\n private _createNumericBars(containerHeight: number, containerWidth: number, xElement: SVGElement): JSX.Element[] {\n const { useSingleColor = false } = this.props;\n const { xBarScale, yBarScale } = this._getScales(containerHeight, containerWidth);\n const colorScale = this._createColors();\n const bars = this._points.map((point: IVerticalBarChartDataPoint, index: number) => {\n const shouldHighlight = this._legendHighlighted(point.legend!) || this._noLegendHighlighted() ? true : false;\n this._classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n legendColor: this.state.color,\n shouldHighlight,\n });\n const barHeight: number = Math.max(yBarScale(point.y), 0);\n let adjustedBarHeight = 0;\n if (barHeight <= 0) {\n return <React.Fragment key={point.x as string}> </React.Fragment>;\n } else if (barHeight <= Math.ceil(yBarScale(this._yMax) / 100.0)) {\n adjustedBarHeight = Math.ceil(yBarScale(this._yMax) / 100.0);\n } else {\n adjustedBarHeight = barHeight;\n }\n const xPoint = xBarScale(point.x as number);\n const yPoint = containerHeight - this.margins.bottom! - adjustedBarHeight;\n return (\n <g key={point.x as string}>\n <rect\n id={getId('_VBC_bar_')}\n x={xPoint}\n className={this._classNames.opacityChangeOnHover}\n y={yPoint}\n width={this._barWidth}\n data-is-focusable={!this.props.hideTooltip}\n height={adjustedBarHeight}\n ref={(e: SVGRectElement) => {\n this._refCallback(e, point.legend!);\n }}\n onClick={point.onClick}\n onMouseOver={this._onBarHover.bind(this, point, colorScale(point.y))}\n aria-label={this._getAriaLabel(point)}\n role=\"img\"\n onMouseLeave={this._onBarLeave}\n onFocus={this._onBarFocus.bind(this, point, index, colorScale(point.y))}\n onBlur={this._onBarLeave}\n fill={point.color && !useSingleColor ? point.color : colorScale(point.y)}\n />\n {this._renderBarLabel(xPoint, yPoint, point.y, point.legend!)}\n </g>\n );\n });\n // Removing un wanted tooltip div from DOM, when prop not provided.\n if (!this.props.showXAxisLablesTooltip) {\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n // Used to display tooltip at x axis labels.\n if (!this.props.wrapXAxisLables && this.props.showXAxisLablesTooltip) {\n const xAxisElement = d3Select(xElement).call(xBarScale);\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n const tooltipProps = {\n tooltipCls: this._classNames.tooltip!,\n id: this._tooltipId,\n xAxis: xAxisElement,\n };\n xAxisElement && tooltipOfXAxislabels(tooltipProps);\n }\n return bars;\n }\n\n private _createStringBars(containerHeight: number, containerWidth: number, xElement: SVGElement): JSX.Element[] {\n const { xBarScale, yBarScale } = this._getScales(containerHeight, containerWidth);\n const colorScale = this._createColors();\n const bars = this._points.map((point: IVerticalBarChartDataPoint, index: number) => {\n const barHeight: number = Math.max(yBarScale(point.y), 0);\n let adjustedBarHeight = 0;\n if (barHeight <= 0) {\n return <React.Fragment key={point.x instanceof Date ? point.x.getTime() : point.x}> </React.Fragment>;\n } else if (barHeight <= Math.ceil(yBarScale(this._yMax) / 100.0)) {\n adjustedBarHeight = Math.ceil(yBarScale(this._yMax) / 100.0);\n } else {\n adjustedBarHeight = barHeight;\n }\n const xPoint = xBarScale(point.x);\n const yPoint = containerHeight - this.margins.bottom! - adjustedBarHeight;\n return (\n <g\n key={point.x instanceof Date ? point.x.getTime() : point.x}\n transform={`translate(${0.5 * (xBarScale.bandwidth() - this._barWidth)}, 0)`}\n >\n <rect\n id={getId('_VBC_bar_')}\n x={xPoint}\n y={yPoint}\n width={this._barWidth}\n height={adjustedBarHeight}\n aria-label={this._getAriaLabel(point)}\n role=\"img\"\n ref={(e: SVGRectElement) => {\n this._refCallback(e, point.legend!);\n }}\n onClick={point.onClick}\n onMouseOver={this._onBarHover.bind(this, point, colorScale(point.y))}\n onMouseLeave={this._onBarLeave}\n onBlur={this._onBarLeave}\n data-is-focusable={!this.props.hideTooltip}\n onFocus={this._onBarFocus.bind(this, point, index, colorScale(point.y))}\n fill={point.color ? point.color : colorScale(point.y)}\n />\n {this._renderBarLabel(xPoint, yPoint, point.y, point.legend!)}\n </g>\n );\n });\n\n // Removing un wanted tooltip div from DOM, when prop not provided.\n if (!this.props.showXAxisLablesTooltip) {\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n // Used to display tooltip at x axis labels.\n if (!this.props.wrapXAxisLables && this.props.showXAxisLablesTooltip) {\n const xAxisElement = d3Select(xElement).call(xBarScale);\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n const tooltipProps = {\n tooltipCls: this._classNames.tooltip!,\n id: this._tooltipId,\n xAxis: xAxisElement,\n showTooltip: this.props.showXAxisLablesTooltip,\n };\n xAxisElement && tooltipOfXAxislabels(tooltipProps);\n }\n return bars;\n }\n\n private _createDateBars(containerHeight: number, containerWidth: number, xElement: SVGElement): JSX.Element[] {\n const { useSingleColor = false } = this.props;\n const { xBarScale, yBarScale } = this._getScales(containerHeight, containerWidth);\n const colorScale = this._createColors();\n const bars = this._points.map((point: IVerticalBarChartDataPoint, index: number) => {\n const shouldHighlight = this._legendHighlighted(point.legend!) || this._noLegendHighlighted() ? true : false;\n this._classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n legendColor: this.state.color,\n shouldHighlight: shouldHighlight,\n });\n const barHeight: number = Math.max(yBarScale(point.y), 0);\n let adjustedBarHeight = 0;\n if (barHeight <= 0) {\n return <React.Fragment key={point.x instanceof Date ? point.x.getTime() : point.x}> </React.Fragment>;\n } else if (barHeight <= Math.ceil(yBarScale(this._yMax) / 100.0)) {\n adjustedBarHeight = Math.ceil(yBarScale(this._yMax) / 100.0);\n } else {\n adjustedBarHeight = barHeight;\n }\n const xPoint = xBarScale(point.x as number) - this._barWidth / 2;\n const yPoint = containerHeight - this.margins.bottom! - adjustedBarHeight;\n return (\n <g key={point.x instanceof Date ? point.x.getTime() : point.x}>\n <rect\n id={getId('_VBC_bar_')}\n x={xPoint}\n className={this._classNames.opacityChangeOnHover}\n y={yPoint}\n width={this._barWidth}\n data-is-focusable={!this.props.hideTooltip}\n height={adjustedBarHeight}\n ref={(e: SVGRectElement) => {\n this._refCallback(e, point.legend!);\n }}\n onClick={point.onClick}\n onMouseOver={this._onBarHover.bind(this, point, colorScale(point.y))}\n aria-label={this._getAriaLabel(point)}\n role=\"img\"\n onMouseLeave={this._onBarLeave}\n onFocus={this._onBarFocus.bind(this, point, index, colorScale(point.y))}\n onBlur={this._onBarLeave}\n fill={point.color && !useSingleColor ? point.color : colorScale(point.y)}\n />\n {this._renderBarLabel(xPoint, yPoint, point.y, point.legend!)}\n </g>\n );\n });\n // Removing un wanted tooltip div from DOM, when prop not provided.\n if (!this.props.showXAxisLablesTooltip) {\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n // Used to display tooltip at x axis labels.\n if (!this.props.wrapXAxisLables && this.props.showXAxisLablesTooltip) {\n const xAxisElement = d3Select(xElement).call(xBarScale);\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n const tooltipProps = {\n tooltipCls: this._classNames.tooltip!,\n id: this._tooltipId,\n xAxis: xAxisElement,\n };\n xAxisElement && tooltipOfXAxislabels(tooltipProps);\n }\n return bars;\n }\n\n private _closeCallout = () => {\n this.setState({\n isCalloutVisible: false,\n });\n };\n\n private _onLegendClick(legendTitle: string): void {\n if (this.state.selectedLegend === legendTitle) {\n this.setState({\n selectedLegend: '',\n });\n } else {\n this.setState({\n selectedLegend: legendTitle,\n });\n }\n }\n\n private _onLegendHover(legendTitle: string): void {\n this.setState({\n activeLegend: legendTitle,\n });\n }\n\n private _onLegendLeave(): void {\n this.setState({\n activeLegend: '',\n });\n }\n\n private _getLegendData = (data: IVerticalBarChartDataPoint[], palette: IPalette): JSX.Element => {\n const { theme, useSingleColor } = this.props;\n const { lineLegendText, lineLegendColor = theme!.palette.yellow } = this.props;\n const actions: ILegend[] = [];\n data.forEach((point: IVerticalBarChartDataPoint, _index: number) => {\n const color: string = !useSingleColor ? point.color! : this._createColors()(1);\n // mapping data to the format Legends component needs\n const legend: ILegend = {\n title: point.legend!,\n color,\n action: () => {\n this._onLegendClick(point.legend!);\n },\n hoverAction: () => {\n this._handleChartMouseLeave();\n this._onLegendHover(point.legend!);\n },\n onMouseOutAction: () => {\n this._onLegendLeave();\n },\n };\n actions.push(legend);\n });\n if (this._isHavingLine && lineLegendText && lineLegendColor) {\n const lineLegend: ILegend = {\n title: lineLegendText,\n color: lineLegendColor,\n action: () => {\n this._onLegendClick(lineLegendText);\n },\n hoverAction: () => {\n this._handleChartMouseLeave();\n this._onLegendHover(lineLegendText);\n },\n onMouseOutAction: () => {\n this._onLegendLeave();\n },\n isLineLegendInBarChart: true,\n };\n actions.unshift(lineLegend);\n }\n const legends = (\n <Legends\n legends={actions}\n enabledWrapLines={this.props.enabledLegendsWrapLines}\n overflowProps={this.props.legendsOverflowProps}\n focusZonePropsInHoverCard={this.props.focusZonePropsForLegendsInHoverCard}\n overflowText={this.props.legendsOverflowText}\n {...this.props.legendProps}\n />\n );\n return legends;\n };\n\n private _getAxisData = (yAxisData: IAxisData) => {\n if (yAxisData && yAxisData.yAxisDomainValues.length) {\n const { yAxisDomainValues: domainValue } = yAxisData;\n this._yMax = Math.max(domainValue[domainValue.length - 1], this.props.yMaxValue || 0);\n }\n };\n\n /**\n * This function checks if the given legend is highlighted or not.\n * A legend can be highlighted in 2 ways:\n * 1. selection: if the user clicks on it\n * 2. hovering: if there is no selected legend and the user hovers over it\n */\n private _legendHighlighted = (legendTitle: string) => {\n return (\n this.state.selectedLegend === legendTitle ||\n (this.state.selectedLegend === '' && this.state.activeLegend === legendTitle)\n );\n };\n\n /**\n * This function checks if none of the legends is selected or hovered.\n */\n private _noLegendHighlighted = () => {\n return this.state.selectedLegend === '' && this.state.activeLegend === '';\n };\n\n private _getAriaLabel = (point: IVerticalBarChartDataPoint): string => {\n const xValue = point.xAxisCalloutData\n ? point.xAxisCalloutData\n : point.x instanceof Date\n ? point.x.toLocaleString()\n : point.x;\n const legend = point.legend;\n const yValue = point.yAxisCalloutData || point.y;\n const lineLegend = this.props.lineLegendText || 'Line';\n const lineYValue = point.lineData?.yAxisCalloutData || point.lineData?.y;\n return (\n point.callOutAccessibilityData?.ariaLabel ||\n `${xValue}. ` +\n (legend ? `${legend}, ` : '') +\n `${yValue}.` +\n (typeof lineYValue !== 'undefined' ? ` ${lineLegend}, ${lineYValue}.` : '')\n );\n };\n\n private _renderBarLabel(xPoint: number, yPoint: number, barValue: number, legend: string) {\n if (\n this.props.hideLabels ||\n this._barWidth < 16 ||\n !(this._legendHighlighted(legend) || this._noLegendHighlighted())\n ) {\n return null;\n }\n\n return (\n <text\n x={xPoint + this._barWidth / 2}\n y={yPoint - 6}\n textAnchor=\"middle\"\n className={this._classNames.barLabel}\n aria-hidden={true}\n >\n {formatValueWithSIPrefix(barValue)}\n </text>\n );\n }\n\n private _getDomainMargins = (containerWidth: number): IMargins => {\n if (this._xAxisType === XAxisTypes.StringAxis) {\n /** Total width available to render the bars */\n const totalWidth =\n containerWidth - (this.margins.left! + MIN_DOMAIN_MARGIN) - (this.margins.right! + MIN_DOMAIN_MARGIN);\n let barWidth = Math.min(this.props.barWidth || 16, 24);\n /** Total width required to render the bars. Directly proportional to bar width */\n const reqWidth = (3 * this._xAxisLabels.length - 2) * barWidth;\n\n this._domainMargin = MIN_DOMAIN_MARGIN;\n if (totalWidth >= reqWidth) {\n // Center align the chart by setting equal left and right margins for domain\n this._domainMargin += (totalWidth - reqWidth) / 2;\n } else {\n /** Maximum possible bar width to maintain 2:1 spacing */\n const maxBandwidth = totalWidth / (3 * this._xAxisLabels.length - 2);\n barWidth = maxBandwidth;\n }\n this._barWidth = barWidth;\n }\n\n return {\n ...this.margins,\n left: this.margins.left! + this._domainMargin,\n right: this.margins.right! + this._domainMargin,\n };\n };\n\n private _isChartEmpty(): boolean {\n return (\n this._points.length === 0 ||\n (d3Max(this._points, (point: IVerticalBarChartDataPoint) => point.y)! <= 0 && !this._isHavingLine)\n );\n }\n}\n"]}
|
|
@@ -3,7 +3,7 @@ import { IAccessibilityProps, IBasestate, IVerticalStackedBarChartProps, IVertic
|
|
|
3
3
|
export interface IVerticalStackedBarChartState extends IBasestate {
|
|
4
4
|
dataPointCalloutProps?: IVSChartDataPoint;
|
|
5
5
|
stackCalloutProps?: IVerticalStackedChartProps;
|
|
6
|
-
activeXAxisDataPoint: number | string;
|
|
6
|
+
activeXAxisDataPoint: number | string | Date;
|
|
7
7
|
callOutAccessibilityData?: IAccessibilityProps;
|
|
8
8
|
calloutLegend: string;
|
|
9
9
|
}
|
|
@@ -65,8 +65,6 @@ export declare class VerticalStackedBarChartBase extends React.Component<IVertic
|
|
|
65
65
|
private _getBarGapAndScale;
|
|
66
66
|
private _createBar;
|
|
67
67
|
private _getScales;
|
|
68
|
-
private _createNumericBars;
|
|
69
|
-
private _createStringBars;
|
|
70
68
|
private _getGraphData;
|
|
71
69
|
private _closeCallout;
|
|
72
70
|
private _getAxisData;
|