bento-charts 2.2.0 → 2.3.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/dist/ChartConfigProvider.d.ts +3 -1
- package/dist/ChartConfigProvider.js +6 -1
- package/dist/ChartConfigProvider.js.map +1 -1
- package/dist/Components/Charts/BentoPie.d.ts +1 -1
- package/dist/Components/Charts/BentoPie.js +11 -11
- package/dist/Components/Charts/BentoPie.js.map +1 -1
- package/dist/constants/chartConstants.d.ts +0 -1
- package/dist/constants/chartConstants.js +0 -1
- package/dist/constants/chartConstants.js.map +1 -1
- package/dist/types/chartTypes.d.ts +1 -0
- package/package.json +1 -1
- package/src/ChartConfigProvider.tsx +9 -1
- package/src/Components/Charts/BentoPie.tsx +13 -8
- package/src/constants/chartConstants.ts +0 -1
- package/src/types/chartTypes.ts +1 -0
|
@@ -3,12 +3,14 @@ import { ChartTheme, LngDictionary, TranslationObject } from './types/chartTypes
|
|
|
3
3
|
export declare function useChartTheme(): ChartTheme;
|
|
4
4
|
export declare function useChartTranslation(): LngDictionary;
|
|
5
5
|
export declare function useChartThreshold(): number;
|
|
6
|
-
declare
|
|
6
|
+
export declare function useChartMaxLabelChars(): number;
|
|
7
|
+
declare const ChartConfigProvider: ({ theme, Lng, translationMap, children, globalThreshold, maxLabelChars }: ChartConfigProviderProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
7
8
|
type ChartConfigProviderProps = {
|
|
8
9
|
theme?: ChartTheme;
|
|
9
10
|
Lng: string;
|
|
10
11
|
translationMap?: TranslationObject;
|
|
11
12
|
children: React.ReactElement;
|
|
12
13
|
globalThreshold?: number;
|
|
14
|
+
maxLabelChars?: number;
|
|
13
15
|
};
|
|
14
16
|
export default ChartConfigProvider;
|
|
@@ -16,6 +16,7 @@ var DEFAULT_CONTEXT = {
|
|
|
16
16
|
theme: DEFAULT_CHART_THEME,
|
|
17
17
|
translation: defaultTranslationObject.en,
|
|
18
18
|
threshold: 0,
|
|
19
|
+
maxLabelChars: 14,
|
|
19
20
|
};
|
|
20
21
|
var ChartContext = React.createContext(DEFAULT_CONTEXT);
|
|
21
22
|
export function useChartTheme() {
|
|
@@ -27,8 +28,11 @@ export function useChartTranslation() {
|
|
|
27
28
|
export function useChartThreshold() {
|
|
28
29
|
return useContext(ChartContext).threshold;
|
|
29
30
|
}
|
|
31
|
+
export function useChartMaxLabelChars() {
|
|
32
|
+
return useContext(ChartContext).maxLabelChars;
|
|
33
|
+
}
|
|
30
34
|
var ChartConfigProvider = function (_a) {
|
|
31
|
-
var theme = _a.theme, Lng = _a.Lng, translationMap = _a.translationMap, children = _a.children, globalThreshold = _a.globalThreshold;
|
|
35
|
+
var theme = _a.theme, Lng = _a.Lng, translationMap = _a.translationMap, children = _a.children, globalThreshold = _a.globalThreshold, maxLabelChars = _a.maxLabelChars;
|
|
32
36
|
var lang = 'en';
|
|
33
37
|
try {
|
|
34
38
|
lang = Lng;
|
|
@@ -41,6 +45,7 @@ var ChartConfigProvider = function (_a) {
|
|
|
41
45
|
theme: theme !== null && theme !== void 0 ? theme : DEFAULT_CONTEXT.theme,
|
|
42
46
|
translation: translationMap ? translationMap[lang] : defaultTranslationObject[lang],
|
|
43
47
|
threshold: globalThreshold !== null && globalThreshold !== void 0 ? globalThreshold : DEFAULT_CONTEXT.threshold,
|
|
48
|
+
maxLabelChars: maxLabelChars !== null && maxLabelChars !== void 0 ? maxLabelChars : DEFAULT_CONTEXT.maxLabelChars,
|
|
44
49
|
};
|
|
45
50
|
return _jsx(ChartContext.Provider, __assign({ value: contextValue }, { children: children }));
|
|
46
51
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartConfigProvider.js","sourceRoot":"","sources":["../src/ChartConfigProvider.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"ChartConfigProvider.js","sourceRoot":"","sources":["../src/ChartConfigProvider.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAU3F,IAAM,eAAe,GAAqB;IACxC,KAAK,EAAE,mBAAmB;IAC1B,WAAW,EAAE,wBAAwB,CAAC,EAAE;IACxC,SAAS,EAAE,CAAC;IACZ,aAAa,EAAE,EAAE;CAClB,CAAC;AAEF,IAAM,YAAY,GAAG,KAAK,CAAC,aAAa,CAAmB,eAAe,CAAC,CAAC;AAE5E,MAAM,UAAU,aAAa;IAC3B,OAAO,UAAU,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,UAAU,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,UAAU,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,UAAU,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC;AAChD,CAAC;AAED,IAAM,mBAAmB,GAAG,UAAC,EAAkG;QAAhG,KAAK,WAAA,EAAE,GAAG,SAAA,EAAE,cAAc,oBAAA,EAAE,QAAQ,cAAA,EAAE,eAAe,qBAAA,EAAE,aAAa,mBAAA;IACjG,IAAI,IAAI,GAAiB,IAAI,CAAC;IAC9B,IAAI;QACF,IAAI,GAAG,GAAmB,CAAC;KAC5B;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;KACb;IACD,IAAM,YAAY,GAAG;QACnB,KAAK,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,eAAe,CAAC,KAAK;QACrC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,IAAI,CAAC;QACnF,SAAS,EAAE,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,eAAe,CAAC,SAAS;QACvD,aAAa,EAAE,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,eAAe,CAAC,aAAa;KAC9D,CAAC;IACF,OAAO,KAAC,YAAY,CAAC,QAAQ,aAAC,KAAK,EAAE,YAAY,gBAAG,QAAQ,IAAyB,CAAC;AACxF,CAAC,CAAC;AAWF,eAAe,mBAAmB,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { PieChartProps } from '../../types/chartTypes';
|
|
2
|
-
declare const BentoPie: ({ data, height, preFilter, dataMap, postFilter, onClick, sort, removeEmpty, colorTheme, chartThreshold, }: PieChartProps) => import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
declare const BentoPie: ({ data, height, preFilter, dataMap, postFilter, onClick, sort, removeEmpty, colorTheme, chartThreshold, maxLabelChars, }: PieChartProps) => import("react/jsx-runtime").JSX.Element;
|
|
3
3
|
export default BentoPie;
|
|
@@ -21,22 +21,22 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
21
21
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
22
22
|
import { useState } from 'react';
|
|
23
23
|
import { PieChart, Pie, Cell, Curve, Tooltip, Sector } from 'recharts';
|
|
24
|
-
import { TOOL_TIP_STYLE, LABEL_STYLE, COUNT_STYLE, CHART_MISSING_FILL, CHART_WRAPPER_STYLE, RADIAN,
|
|
25
|
-
import { useChartTheme, useChartTranslation, useChartThreshold } from
|
|
24
|
+
import { TOOL_TIP_STYLE, LABEL_STYLE, COUNT_STYLE, CHART_MISSING_FILL, CHART_WRAPPER_STYLE, RADIAN, CHART_ASPECT_RATIO, LABEL_THRESHOLD, COUNT_TEXT_STYLE, TEXT_STYLE, } from '../../constants/chartConstants';
|
|
25
|
+
import { useChartTheme, useChartTranslation, useChartThreshold, useChartMaxLabelChars } from "../../ChartConfigProvider";
|
|
26
26
|
import { polarToCartesian } from '../../util/chartUtils';
|
|
27
27
|
import NoData from '../NoData';
|
|
28
|
-
var labelShortName = function (name) {
|
|
29
|
-
if (name.length <=
|
|
28
|
+
var labelShortName = function (name, maxChars) {
|
|
29
|
+
if (name.length <= maxChars) {
|
|
30
30
|
return name;
|
|
31
31
|
}
|
|
32
32
|
// removing 3 character cause ... s add three characters
|
|
33
|
-
return "".concat(name.substring(0,
|
|
33
|
+
return "".concat(name.substring(0, maxChars - 3), "\u2026");
|
|
34
34
|
};
|
|
35
35
|
var BentoPie = function (_a) {
|
|
36
|
-
var data = _a.data, height = _a.height, preFilter = _a.preFilter, dataMap = _a.dataMap, postFilter = _a.postFilter, onClick = _a.onClick, _b = _a.sort, sort = _b === void 0 ? true : _b, _c = _a.removeEmpty, removeEmpty = _c === void 0 ? true : _c, _d = _a.colorTheme, colorTheme = _d === void 0 ? 'default' : _d, _e = _a.chartThreshold, chartThreshold = _e === void 0 ? useChartThreshold() : _e;
|
|
36
|
+
var data = _a.data, height = _a.height, preFilter = _a.preFilter, dataMap = _a.dataMap, postFilter = _a.postFilter, onClick = _a.onClick, _b = _a.sort, sort = _b === void 0 ? true : _b, _c = _a.removeEmpty, removeEmpty = _c === void 0 ? true : _c, _d = _a.colorTheme, colorTheme = _d === void 0 ? 'default' : _d, _e = _a.chartThreshold, chartThreshold = _e === void 0 ? useChartThreshold() : _e, _f = _a.maxLabelChars, maxLabelChars = _f === void 0 ? useChartMaxLabelChars() : _f;
|
|
37
37
|
var t = useChartTranslation();
|
|
38
38
|
var theme = useChartTheme().pie[colorTheme];
|
|
39
|
-
var
|
|
39
|
+
var _g = useState(undefined), activeIndex = _g[0], setActiveIndex = _g[1];
|
|
40
40
|
// ##################### Data processing #####################
|
|
41
41
|
data = __spreadArray([], data, true); // Changing immutable data to mutable data
|
|
42
42
|
if (preFilter)
|
|
@@ -79,7 +79,7 @@ var BentoPie = function (_a) {
|
|
|
79
79
|
var onLeave = function () {
|
|
80
80
|
setActiveIndex(undefined);
|
|
81
81
|
};
|
|
82
|
-
return (_jsx(_Fragment, { children: _jsx("div", __assign({ style: CHART_WRAPPER_STYLE }, { children: _jsxs(PieChart, __assign({ height: height, width: height * CHART_ASPECT_RATIO }, { children: [_jsx(Pie, __assign({ data: bentoFormatData, dataKey: "value", cx: "50%", cy: "50%", innerRadius: 35, outerRadius: 80, label: RenderLabel, labelLine: false, isAnimationActive: false, onMouseEnter: onEnter, onMouseLeave: onLeave, onMouseOver: onHover, activeIndex: activeIndex, activeShape: RenderActiveLabel, onClick: onClick }, { children: data.map(function (entry, index) {
|
|
82
|
+
return (_jsx(_Fragment, { children: _jsx("div", __assign({ style: CHART_WRAPPER_STYLE }, { children: _jsxs(PieChart, __assign({ height: height, width: height * CHART_ASPECT_RATIO }, { children: [_jsx(Pie, __assign({ data: bentoFormatData, dataKey: "value", cx: "50%", cy: "50%", innerRadius: 35, outerRadius: 80, label: RenderLabel(maxLabelChars), labelLine: false, isAnimationActive: false, onMouseEnter: onEnter, onMouseLeave: onLeave, onMouseOver: onHover, activeIndex: activeIndex, activeShape: RenderActiveLabel, onClick: onClick }, { children: data.map(function (entry, index) {
|
|
83
83
|
var fill = theme[index % theme.length];
|
|
84
84
|
fill = entry.x.toLowerCase() === 'missing' ? CHART_MISSING_FILL : fill;
|
|
85
85
|
return _jsx(Cell, { fill: fill }, index);
|
|
@@ -94,7 +94,7 @@ var toNumber = function (val, defaultValue) {
|
|
|
94
94
|
}
|
|
95
95
|
return defaultValue || 0;
|
|
96
96
|
};
|
|
97
|
-
var RenderLabel = function (params) {
|
|
97
|
+
var RenderLabel = function (maxLabelChars) { return function (params) {
|
|
98
98
|
var fill = params.fill, payload = params.payload, index = params.index, activeIndex = params.activeIndex;
|
|
99
99
|
var percent = params.percent || 0;
|
|
100
100
|
var midAngle = params.midAngle || 0;
|
|
@@ -122,8 +122,8 @@ var RenderLabel = function (params) {
|
|
|
122
122
|
var startPoint = polarToCartesian(cx, cy, outerRadius, midAngle);
|
|
123
123
|
var endPoint = polarToCartesian(cx, cy, outerRadius + offsetRadius, midAngle);
|
|
124
124
|
var lineProps = __assign(__assign({}, params), { fill: 'none', stroke: fill, points: [startPoint, endPoint] });
|
|
125
|
-
return (_jsxs("g", { children: [_jsx(Curve, __assign({}, lineProps, { type: "linear", className: "recharts-pie-label-line" })), _jsx("path", { d: "M".concat(sx, ",").concat(sy, "L").concat(mx, ",").concat(my, "L").concat(ex, ",").concat(ey), stroke: fill, fill: "none" }), _jsx("circle", { cx: ex, cy: ey, r: 2, fill: fill, stroke: "none" }), _jsx("text", __assign({ x: ex + (cos >= 0 ? 1 : -1) * 12, y: ey + 3, textAnchor: textAnchor, style: currentTextStyle }, { children: labelShortName(name) })), _jsx("text", __assign({ x: ex + (cos >= 0 ? 1 : -1) * 12, y: ey, dy: 14, textAnchor: textAnchor, style: COUNT_TEXT_STYLE }, { children: "(".concat(payload.value, ")") }))] }));
|
|
126
|
-
};
|
|
125
|
+
return (_jsxs("g", { children: [_jsx(Curve, __assign({}, lineProps, { type: "linear", className: "recharts-pie-label-line" })), _jsx("path", { d: "M".concat(sx, ",").concat(sy, "L").concat(mx, ",").concat(my, "L").concat(ex, ",").concat(ey), stroke: fill, fill: "none" }), _jsx("circle", { cx: ex, cy: ey, r: 2, fill: fill, stroke: "none" }), _jsx("text", __assign({ x: ex + (cos >= 0 ? 1 : -1) * 12, y: ey + 3, textAnchor: textAnchor, style: currentTextStyle }, { children: labelShortName(name, maxLabelChars) })), _jsx("text", __assign({ x: ex + (cos >= 0 ? 1 : -1) * 12, y: ey, dy: 14, textAnchor: textAnchor, style: COUNT_TEXT_STYLE }, { children: "(".concat(payload.value, ")") }))] }));
|
|
126
|
+
}; };
|
|
127
127
|
var RenderActiveLabel = function (params) {
|
|
128
128
|
var cx = params.cx, cy = params.cy, innerRadius = params.innerRadius, outerRadius = params.outerRadius, startAngle = params.startAngle, endAngle = params.endAngle, fill = params.fill;
|
|
129
129
|
// render arc around active segment
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BentoPie.js","sourceRoot":"","sources":["../../../src/Components/Charts/BentoPie.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,OAAc,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAiC,MAAM,UAAU,CAAC;AAGtG,OAAO,EACL,cAAc,EACd,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,MAAM,EACN,
|
|
1
|
+
{"version":3,"file":"BentoPie.js","sourceRoot":"","sources":["../../../src/Components/Charts/BentoPie.tsx"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,5 @@ export declare const TICKS_SHOW_ALL_LABELS_BELOW = 11;
|
|
|
19
19
|
export declare const TICK_MARGIN = 5;
|
|
20
20
|
export declare const CHART_ASPECT_RATIO = 1.4;
|
|
21
21
|
export declare const LABEL_THRESHOLD = 0.05;
|
|
22
|
-
export declare const MAX_LABEL_CHARS = 14;
|
|
23
22
|
export declare const OTHER_THRESHOLD = 0.01;
|
|
24
23
|
export declare const RADIAN: number;
|
|
@@ -98,7 +98,6 @@ export var TICK_MARGIN = 5; // vertical spacing between tick line and tick label
|
|
|
98
98
|
// pie chart
|
|
99
99
|
export var CHART_ASPECT_RATIO = 1.4;
|
|
100
100
|
export var LABEL_THRESHOLD = 0.05;
|
|
101
|
-
export var MAX_LABEL_CHARS = 14;
|
|
102
101
|
export var OTHER_THRESHOLD = 0.01;
|
|
103
102
|
// ################### UTIL CONSTANTS ###################
|
|
104
103
|
export var RADIAN = Math.PI / 180;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chartConstants.js","sourceRoot":"","sources":["../../src/constants/chartConstants.ts"],"names":[],"mappings":"AAGA,4DAA4D;AAC5D,MAAM,CAAC,IAAM,wBAAwB,GAAsB;IACzD,EAAE,EAAE;QACF,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,OAAO;KACf;IACD,EAAE,EAAE;QACF,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,OAAO;KACf;CACF,CAAC;AAEF,0DAA0D;AAC1D,oBAAoB;AACpB,MAAM,CAAC,IAAM,MAAM,GAAe;IAChC,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;CACV,CAAC;AAEF,MAAM,CAAC,IAAM,cAAc,GAAG,SAAS,CAAC;AACxC,MAAM,CAAC,IAAM,kBAAkB,GAAG,SAAS,CAAC;AAE5C,MAAM,CAAC,IAAM,mBAAmB,GAAe;IAC7C,GAAG,EAAE;QACH,OAAO,EAAE,MAAM;KAChB;IACD,GAAG,EAAE;QACH,OAAO,EAAE;YACP,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,kBAAkB;SAC5B;KACF;CACF,CAAC;AAEF,uDAAuD;AAEvD,SAAS;AACT,MAAM,CAAC,IAAM,cAAc,GAAmB;IAC5C,eAAe,EAAE,0BAA0B;IAC3C,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,gBAAgB;IACxB,SAAS,EAAE,gCAAgC;IAC3C,YAAY,EAAE,KAAK;IACnB,SAAS,EAAE,MAAM;CAClB,CAAC;AAEF,MAAM,CAAC,IAAM,WAAW,GAAmB;IACzC,UAAU,EAAE,MAAM;IAClB,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,GAAG;IACZ,MAAM,EAAE,GAAG;CACZ,CAAC;AAEF,MAAM,CAAC,IAAM,WAAW,GAAmB;IACzC,UAAU,EAAE,QAAQ;IACpB,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,GAAG;IACZ,MAAM,EAAE,GAAG;CACZ,CAAC;AAEF,MAAM,CAAC,IAAM,mBAAmB,GAAmB;IACjD,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,QAAQ;IACvB,UAAU,EAAE,QAAQ;CACrB,CAAC;AAEF,YAAY;AACZ,MAAM,CAAC,IAAM,WAAW,GAAmB;IACzC,SAAS,EAAE,QAAQ;IACnB,QAAQ,EAAE,OAAO;IACjB,SAAS,EAAE,QAAQ;CACpB,CAAC;AAEF,YAAY;AACZ,MAAM,CAAC,IAAM,UAAU,GAAmB;IACxC,QAAQ,EAAE,MAAM;IAChB,IAAI,EAAE,MAAM;CACb,CAAC;AACF,MAAM,CAAC,IAAM,gBAAgB,GAAmB;IAC9C,QAAQ,EAAE,MAAM;IAChB,IAAI,EAAE,MAAM;CACb,CAAC;AAEF,0DAA0D;AAC1D,YAAY;AACZ,MAAM,CAAC,IAAM,YAAY,GAAG,GAAG,CAAC;AAChC,MAAM,CAAC,IAAM,oBAAoB,GAAG,EAAE,CAAC;AACvC,MAAM,CAAC,IAAM,kBAAkB,GAAG,CAAC,EAAE,CAAC;AACtC,MAAM,CAAC,IAAM,2BAA2B,GAAG,EAAE,CAAC,CAAC,sDAAsD;AACrG,MAAM,CAAC,IAAM,WAAW,GAAG,CAAC,CAAC,CAAC,oDAAoD;AAElF,YAAY;AACZ,MAAM,CAAC,IAAM,kBAAkB,GAAG,GAAG,CAAC;AACtC,MAAM,CAAC,IAAM,eAAe,GAAG,IAAI,CAAC;AACpC,MAAM,CAAC,IAAM,eAAe,GAAG,
|
|
1
|
+
{"version":3,"file":"chartConstants.js","sourceRoot":"","sources":["../../src/constants/chartConstants.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,6 +55,7 @@ export interface PieChartProps extends BaseChartProps {
|
|
|
55
55
|
sort?: boolean;
|
|
56
56
|
onClick?: PieProps['onClick'];
|
|
57
57
|
chartThreshold?: number;
|
|
58
|
+
maxLabelChars?: number;
|
|
58
59
|
}
|
|
59
60
|
export interface BarChartProps extends BaseChartProps {
|
|
60
61
|
colorTheme?: keyof ChartTheme['bar'];
|
package/package.json
CHANGED
|
@@ -7,12 +7,14 @@ type ChartContextType = {
|
|
|
7
7
|
theme: ChartTheme;
|
|
8
8
|
translation: LngDictionary;
|
|
9
9
|
threshold: number;
|
|
10
|
+
maxLabelChars: number;
|
|
10
11
|
};
|
|
11
12
|
|
|
12
13
|
const DEFAULT_CONTEXT: ChartContextType = {
|
|
13
14
|
theme: DEFAULT_CHART_THEME,
|
|
14
15
|
translation: defaultTranslationObject.en,
|
|
15
16
|
threshold: 0,
|
|
17
|
+
maxLabelChars: 14,
|
|
16
18
|
};
|
|
17
19
|
|
|
18
20
|
const ChartContext = React.createContext<ChartContextType>(DEFAULT_CONTEXT);
|
|
@@ -29,7 +31,11 @@ export function useChartThreshold() {
|
|
|
29
31
|
return useContext(ChartContext).threshold;
|
|
30
32
|
}
|
|
31
33
|
|
|
32
|
-
|
|
34
|
+
export function useChartMaxLabelChars() {
|
|
35
|
+
return useContext(ChartContext).maxLabelChars;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const ChartConfigProvider = ({ theme, Lng, translationMap, children, globalThreshold, maxLabelChars }: ChartConfigProviderProps) => {
|
|
33
39
|
let lang: SupportedLng = 'en';
|
|
34
40
|
try {
|
|
35
41
|
lang = Lng as SupportedLng;
|
|
@@ -41,6 +47,7 @@ const ChartConfigProvider = ({ theme, Lng, translationMap, children, globalThres
|
|
|
41
47
|
theme: theme ?? DEFAULT_CONTEXT.theme,
|
|
42
48
|
translation: translationMap ? translationMap[lang] : defaultTranslationObject[lang],
|
|
43
49
|
threshold: globalThreshold ?? DEFAULT_CONTEXT.threshold,
|
|
50
|
+
maxLabelChars: maxLabelChars ?? DEFAULT_CONTEXT.maxLabelChars,
|
|
44
51
|
};
|
|
45
52
|
return <ChartContext.Provider value={contextValue}>{children}</ChartContext.Provider>;
|
|
46
53
|
};
|
|
@@ -51,6 +58,7 @@ type ChartConfigProviderProps = {
|
|
|
51
58
|
translationMap?: TranslationObject;
|
|
52
59
|
children: React.ReactElement;
|
|
53
60
|
globalThreshold?: number;
|
|
61
|
+
maxLabelChars?: number;
|
|
54
62
|
};
|
|
55
63
|
|
|
56
64
|
export default ChartConfigProvider;
|
|
@@ -9,23 +9,27 @@ import {
|
|
|
9
9
|
CHART_MISSING_FILL,
|
|
10
10
|
CHART_WRAPPER_STYLE,
|
|
11
11
|
RADIAN,
|
|
12
|
-
MAX_LABEL_CHARS,
|
|
13
12
|
CHART_ASPECT_RATIO,
|
|
14
13
|
LABEL_THRESHOLD,
|
|
15
14
|
COUNT_TEXT_STYLE,
|
|
16
15
|
TEXT_STYLE,
|
|
17
16
|
} from '../../constants/chartConstants';
|
|
18
17
|
import type { PieChartProps, TooltipPayload } from '../../types/chartTypes';
|
|
19
|
-
import {
|
|
18
|
+
import {
|
|
19
|
+
useChartTheme,
|
|
20
|
+
useChartTranslation,
|
|
21
|
+
useChartThreshold,
|
|
22
|
+
useChartMaxLabelChars
|
|
23
|
+
} from "../../ChartConfigProvider";
|
|
20
24
|
import { polarToCartesian } from '../../util/chartUtils';
|
|
21
25
|
import NoData from '../NoData';
|
|
22
26
|
|
|
23
|
-
const labelShortName = (name: string) => {
|
|
24
|
-
if (name.length <=
|
|
27
|
+
const labelShortName = (name: string, maxChars: number) => {
|
|
28
|
+
if (name.length <= maxChars) {
|
|
25
29
|
return name;
|
|
26
30
|
}
|
|
27
31
|
// removing 3 character cause ... s add three characters
|
|
28
|
-
return `${name.substring(0,
|
|
32
|
+
return `${name.substring(0, maxChars - 3)}\u2026`;
|
|
29
33
|
};
|
|
30
34
|
|
|
31
35
|
const BentoPie = ({
|
|
@@ -39,6 +43,7 @@ const BentoPie = ({
|
|
|
39
43
|
removeEmpty = true,
|
|
40
44
|
colorTheme = 'default',
|
|
41
45
|
chartThreshold = useChartThreshold(),
|
|
46
|
+
maxLabelChars = useChartMaxLabelChars(),
|
|
42
47
|
}: PieChartProps) => {
|
|
43
48
|
const t = useChartTranslation();
|
|
44
49
|
const theme = useChartTheme().pie[colorTheme];
|
|
@@ -103,7 +108,7 @@ const BentoPie = ({
|
|
|
103
108
|
cy="50%"
|
|
104
109
|
innerRadius={35}
|
|
105
110
|
outerRadius={80}
|
|
106
|
-
label={RenderLabel}
|
|
111
|
+
label={RenderLabel(maxLabelChars)}
|
|
107
112
|
labelLine={false}
|
|
108
113
|
isAnimationActive={false}
|
|
109
114
|
onMouseEnter={onEnter}
|
|
@@ -139,7 +144,7 @@ const toNumber = (val: number | string | undefined, defaultValue?: number): numb
|
|
|
139
144
|
return defaultValue || 0;
|
|
140
145
|
};
|
|
141
146
|
|
|
142
|
-
const RenderLabel: PieProps['label']
|
|
147
|
+
const RenderLabel = (maxLabelChars: number): PieProps['label'] => (params: PieLabelRenderProps ) => { // eslint-disable-line
|
|
143
148
|
const { fill, payload, index, activeIndex } = params;
|
|
144
149
|
const percent = params.percent || 0;
|
|
145
150
|
const midAngle = params.midAngle || 0;
|
|
@@ -189,7 +194,7 @@ const RenderLabel: PieProps['label'] = (params: PieLabelRenderProps) => {
|
|
|
189
194
|
<path d={`M${sx},${sy}L${mx},${my}L${ex},${ey}`} stroke={fill} fill="none" />
|
|
190
195
|
<circle cx={ex} cy={ey} r={2} fill={fill} stroke="none" />
|
|
191
196
|
<text x={ex + (cos >= 0 ? 1 : -1) * 12} y={ey + 3} textAnchor={textAnchor} style={currentTextStyle}>
|
|
192
|
-
{labelShortName(name)}
|
|
197
|
+
{labelShortName(name, maxLabelChars)}
|
|
193
198
|
</text>
|
|
194
199
|
<text x={ex + (cos >= 0 ? 1 : -1) * 12} y={ey} dy={14} textAnchor={textAnchor} style={COUNT_TEXT_STYLE}>
|
|
195
200
|
{`(${payload.value})`}
|
|
@@ -113,7 +113,6 @@ export const TICK_MARGIN = 5; // vertical spacing between tick line and tick lab
|
|
|
113
113
|
// pie chart
|
|
114
114
|
export const CHART_ASPECT_RATIO = 1.4;
|
|
115
115
|
export const LABEL_THRESHOLD = 0.05;
|
|
116
|
-
export const MAX_LABEL_CHARS = 14;
|
|
117
116
|
export const OTHER_THRESHOLD = 0.01;
|
|
118
117
|
|
|
119
118
|
// ################### UTIL CONSTANTS ###################
|
package/src/types/chartTypes.ts
CHANGED