bento-charts 2.7.1 → 2.8.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/.eslintrc.js +27 -28
- package/.github/workflows/lint.yml +16 -4
- package/dist/Components/Charts/BentoPie.js +13 -9
- package/dist/Components/Charts/BentoPie.js.map +1 -1
- package/dist/Components/Maps/BentoChoroplethMap.js +2 -2
- package/dist/Components/Maps/BentoChoroplethMap.js.map +1 -1
- package/dist/util/chartUtils.js +1 -1
- package/dist/util/chartUtils.js.map +1 -1
- package/package.json +10 -5
- package/src/Components/Charts/BentoPie.tsx +14 -8
- package/src/Components/Maps/BentoChoroplethMap.tsx +2 -2
- package/src/types/chartTypes.ts +7 -8
- package/src/util/chartUtils.ts +2 -2
package/.eslintrc.js
CHANGED
|
@@ -1,30 +1,29 @@
|
|
|
1
1
|
module.exports = {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
env: {
|
|
3
|
+
browser: true,
|
|
4
|
+
es2021: true,
|
|
5
|
+
},
|
|
6
|
+
extends: [
|
|
7
|
+
'eslint:recommended',
|
|
8
|
+
'plugin:@typescript-eslint/recommended',
|
|
9
|
+
'plugin:react/recommended',
|
|
10
|
+
'plugin:react-hooks/recommended',
|
|
11
|
+
'plugin:prettier/recommended',
|
|
12
|
+
],
|
|
13
|
+
plugins: ['@typescript-eslint', 'react', 'react-hooks', 'prettier'],
|
|
14
|
+
parser: '@typescript-eslint/parser',
|
|
15
|
+
parserOptions: {
|
|
16
|
+
ecmaVersion: 'latest',
|
|
17
|
+
sourceType: 'module',
|
|
18
|
+
},
|
|
19
|
+
settings: {
|
|
20
|
+
react: {
|
|
21
|
+
version: 'detect',
|
|
5
22
|
},
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
],
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
"parser": "@typescript-eslint/parser",
|
|
14
|
-
"parserOptions": {
|
|
15
|
-
"ecmaVersion": "latest",
|
|
16
|
-
"sourceType": "module"
|
|
17
|
-
},
|
|
18
|
-
"plugins": [
|
|
19
|
-
"react",
|
|
20
|
-
"@typescript-eslint"
|
|
21
|
-
],
|
|
22
|
-
"rules": {
|
|
23
|
-
"semi": [2, "always"]
|
|
24
|
-
},
|
|
25
|
-
"settings": {
|
|
26
|
-
"react": {
|
|
27
|
-
"version": "^18.2.0"
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|
|
23
|
+
},
|
|
24
|
+
rules: {
|
|
25
|
+
'prettier/prettier': 'error',
|
|
26
|
+
'react/prop-types': 'off',
|
|
27
|
+
semi: [2, 'always'],
|
|
28
|
+
},
|
|
29
|
+
};
|
|
@@ -1,15 +1,27 @@
|
|
|
1
|
-
name: Lint
|
|
1
|
+
name: Lint and Format
|
|
2
|
+
|
|
2
3
|
on:
|
|
3
4
|
push:
|
|
4
5
|
branches:
|
|
5
6
|
- main
|
|
6
7
|
pull_request:
|
|
8
|
+
branches:
|
|
9
|
+
- main
|
|
10
|
+
|
|
7
11
|
jobs:
|
|
8
12
|
lint:
|
|
9
13
|
runs-on: ubuntu-latest
|
|
10
14
|
steps:
|
|
11
|
-
-
|
|
12
|
-
|
|
15
|
+
- name: Checkout code
|
|
16
|
+
uses: actions/checkout@v4
|
|
17
|
+
|
|
18
|
+
- name: Set up Node.js
|
|
19
|
+
uses: actions/setup-node@v4
|
|
20
|
+
with:
|
|
21
|
+
node-version: 'lts/*'
|
|
22
|
+
|
|
23
|
+
- name: Install dependencies
|
|
13
24
|
run: npm install
|
|
14
|
-
|
|
25
|
+
|
|
26
|
+
- name: Run Linter (Checks for Eslint and Prettier errors)
|
|
15
27
|
run: npm run lint
|
|
@@ -45,18 +45,22 @@ var labelShortName = function (name, maxChars) {
|
|
|
45
45
|
return "".concat(name.substring(0, maxChars - 3), "\u2026");
|
|
46
46
|
};
|
|
47
47
|
var BentoPie = function (_a) {
|
|
48
|
-
var height = _a.height, width = _a.width, onClick = _a.onClick, _b = _a.sort, sort = _b === void 0 ? true : _b, _c = _a.colorTheme, colorTheme = _c === void 0 ? 'default' : _c,
|
|
48
|
+
var height = _a.height, width = _a.width, onClick = _a.onClick, _b = _a.sort, sort = _b === void 0 ? true : _b, _c = _a.colorTheme, colorTheme = _c === void 0 ? 'default' : _c, chartThreshold = _a.chartThreshold, maxLabelChars = _a.maxLabelChars, params = __rest(_a, ["height", "width", "onClick", "sort", "colorTheme", "chartThreshold", "maxLabelChars"]);
|
|
49
49
|
var t = useChartTranslation();
|
|
50
50
|
var theme = useChartTheme().pie[colorTheme].fill;
|
|
51
|
-
var
|
|
51
|
+
var defaultChartThreshold = useChartThreshold();
|
|
52
|
+
var defaultMaxLabelChars = useChartMaxLabelChars();
|
|
53
|
+
var resolvedChartThreshold = chartThreshold !== null && chartThreshold !== void 0 ? chartThreshold : defaultChartThreshold;
|
|
54
|
+
var resolvedMaxLabelChars = maxLabelChars !== null && maxLabelChars !== void 0 ? maxLabelChars : defaultMaxLabelChars;
|
|
55
|
+
var _d = useState(undefined), activeIndex = _d[0], setActiveIndex = _d[1];
|
|
52
56
|
// ##################### Data processing #####################
|
|
53
57
|
var transformedData = useTransformedChartData(params, true, sort);
|
|
54
|
-
var
|
|
58
|
+
var _e = useMemo(function () {
|
|
55
59
|
var data = __spreadArray([], transformedData, true);
|
|
56
60
|
// combining sections with less than chartThreshold
|
|
57
61
|
var sum = data.reduce(function (acc, e) { return acc + e.y; }, 0);
|
|
58
62
|
var length = data.length;
|
|
59
|
-
var threshold =
|
|
63
|
+
var threshold = resolvedChartThreshold * sum;
|
|
60
64
|
var dataAboveThreshold = data.filter(function (e) { return e.y > threshold; });
|
|
61
65
|
// length - 1 intentional: if there is just one category below threshold, the "Other" category is not necessary.
|
|
62
66
|
data = dataAboveThreshold.length === length - 1 ? data : dataAboveThreshold;
|
|
@@ -70,7 +74,7 @@ var BentoPie = function (_a) {
|
|
|
70
74
|
data: data.map(function (e) { return ({ name: e.x, value: e.y }); }),
|
|
71
75
|
sum: sum,
|
|
72
76
|
};
|
|
73
|
-
}, [
|
|
77
|
+
}, [t, transformedData, resolvedChartThreshold]), data = _e.data, sum = _e.sum;
|
|
74
78
|
// ##################### Rendering #####################
|
|
75
79
|
var onEnter = useCallback(function (_data, index) {
|
|
76
80
|
setActiveIndex(index);
|
|
@@ -79,14 +83,14 @@ var BentoPie = function (_a) {
|
|
|
79
83
|
var target = e.target;
|
|
80
84
|
if (onClick && target && data.name !== t[OTHER_KEY])
|
|
81
85
|
target.style.cursor = 'pointer';
|
|
82
|
-
}, [onClick]);
|
|
86
|
+
}, [t, onClick]);
|
|
83
87
|
var onLeave = useCallback(function () {
|
|
84
88
|
setActiveIndex(undefined);
|
|
85
89
|
}, []);
|
|
86
90
|
if (data.length === 0) {
|
|
87
91
|
return _jsx(NoData, { height: height });
|
|
88
92
|
}
|
|
89
|
-
return (_jsx(ChartWrapper, { responsive: typeof width !== 'number', children: _jsx(ResponsiveContainer, { width: width !== null && width !== void 0 ? width : '100%', height: height, children: _jsxs(PieChart, { children: [_jsx(Pie, { data: data, dataKey: "value", cx: "50%", cy: "50%", innerRadius: "25%", outerRadius: "55%", label: renderLabel(
|
|
93
|
+
return (_jsx(ChartWrapper, { responsive: typeof width !== 'number', children: _jsx(ResponsiveContainer, { width: width !== null && width !== void 0 ? width : '100%', height: height, children: _jsxs(PieChart, { children: [_jsx(Pie, { data: data, dataKey: "value", cx: "50%", cy: "50%", innerRadius: "25%", outerRadius: "55%", label: renderLabel(resolvedMaxLabelChars), labelLine: false, isAnimationActive: false, onMouseEnter: onEnter, onMouseLeave: onLeave, onMouseOver: onHover, activeIndex: activeIndex, activeShape: RenderActiveLabel, onClick: onClick, children: data.map(function (entry, index) {
|
|
90
94
|
var fill = entry.name.toLowerCase() === 'missing' ? CHART_MISSING_FILL : theme[index % theme.length];
|
|
91
95
|
return _jsx(Cell, { fill: fill }, index);
|
|
92
96
|
}) }), _jsx(Tooltip, __assign({}, TOOLTIP_OTHER_PROPS, { content: _jsx(CustomTooltip, { totalCount: sum }), isAnimationActive: false }))] }) }) }));
|
|
@@ -100,7 +104,7 @@ var toNumber = function (val, defaultValue) {
|
|
|
100
104
|
}
|
|
101
105
|
return defaultValue || 0;
|
|
102
106
|
};
|
|
103
|
-
var renderLabel = function (
|
|
107
|
+
var renderLabel = function (resolvedMaxLabelChars) {
|
|
104
108
|
var BentoPieLabel = function (params) {
|
|
105
109
|
var fill = params.fill, payload = params.payload, index = params.index, activeIndex = params.activeIndex;
|
|
106
110
|
var percent = params.percent || 0;
|
|
@@ -129,7 +133,7 @@ var renderLabel = function (maxLabelChars) {
|
|
|
129
133
|
var startPoint = polarToCartesian(cx, cy, outerRadius, midAngle);
|
|
130
134
|
var endPoint = polarToCartesian(cx, cy, outerRadius + offsetRadius, midAngle);
|
|
131
135
|
var lineProps = __assign(__assign({}, params), { fill: 'none', stroke: fill, points: [startPoint, endPoint] });
|
|
132
|
-
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", { x: ex + (cos >= 0 ? 1 : -1) * 12, y: ey + 3, textAnchor: textAnchor, style: currentTextStyle, children: labelShortName(name,
|
|
136
|
+
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", { x: ex + (cos >= 0 ? 1 : -1) * 12, y: ey + 3, textAnchor: textAnchor, style: currentTextStyle, children: labelShortName(name, resolvedMaxLabelChars) }), _jsx("text", { x: ex + (cos >= 0 ? 1 : -1) * 12, y: ey, dy: 14, textAnchor: textAnchor, style: COUNT_TEXT_STYLE, children: "(".concat(payload.value, ")") })] }));
|
|
133
137
|
};
|
|
134
138
|
BentoPieLabel.displayName = BentoPieLabel;
|
|
135
139
|
return BentoPieLabel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BentoPie.js","sourceRoot":"","sources":["../../../src/Components/Charts/BentoPie.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAc,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC9D,OAAO,EACL,QAAQ,EACR,GAAG,EACH,IAAI,EACJ,KAAK,EACL,OAAO,EACP,MAAM,EAGN,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,MAAM,EACN,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,SAAS,GACV,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAE1C,IAAM,cAAc,GAAG,UAAC,IAAY,EAAE,QAAgB;IACpD,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,wDAAwD;IACxD,OAAO,UAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,WAAQ,CAAC;AACpD,CAAC,CAAC;AAEF,IAAM,QAAQ,GAAG,UAAC,EASF;IARd,IAAA,MAAM,YAAA,EACN,KAAK,WAAA,EACL,OAAO,aAAA,EACP,YAAW,EAAX,IAAI,mBAAG,IAAI,KAAA,EACX,kBAAsB,EAAtB,UAAU,mBAAG,SAAS,KAAA,EACtB,
|
|
1
|
+
{"version":3,"file":"BentoPie.js","sourceRoot":"","sources":["../../../src/Components/Charts/BentoPie.tsx"],"names":[],"mappings":"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"}
|
|
@@ -43,7 +43,7 @@ var BentoChoroplethMap = function (_a) {
|
|
|
43
43
|
fillColor: calculateColor(dataByFeatureCat[cat]),
|
|
44
44
|
fillOpacity: 1, // actual opacity set by fillColor
|
|
45
45
|
};
|
|
46
|
-
}, [
|
|
46
|
+
}, [calculateColor, categoryProp, dataByFeatureCat]);
|
|
47
47
|
var _b = useState(null), popupContents = _b[0], setPopupContents = _b[1];
|
|
48
48
|
var eventHandlers = useMemo(function () {
|
|
49
49
|
return ({
|
|
@@ -59,7 +59,7 @@ var BentoChoroplethMap = function (_a) {
|
|
|
59
59
|
}, children: title })) : (_jsx("span", { children: title })) }), renderPopupBody ? renderPopupBody(feature, dataByFeatureCat[fProps[categoryProp]]) : null] }));
|
|
60
60
|
},
|
|
61
61
|
});
|
|
62
|
-
}, [onClick, categoryProp, renderPopupBody]);
|
|
62
|
+
}, [onClick, categoryProp, dataByFeatureCat, renderPopupBody]);
|
|
63
63
|
var geoJsonLayer = useRef(null);
|
|
64
64
|
useEffect(function () {
|
|
65
65
|
// Bizarre workaround needed for react-leaflet when handling `features` change:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BentoChoroplethMap.js","sourceRoot":"","sources":["../../../src/Components/Maps/BentoChoroplethMap.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAc,EAAO,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAYhD,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,mBAAmB,MAAM,gCAAgC,CAAC;AACjE,OAAO,iBAAiB,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,IAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,IAAM,gBAAgB,GAAoB,aAAa,CAAC;AAExD,IAAM,kBAAkB,GAAG,UAAC,EAWP;IAVnB,IAAA,MAAM,YAAA,EACN,MAAM,YAAA,EACN,IAAI,UAAA,EACJ,SAAS,eAAA,EACT,SAAS,eAAA,EACT,QAAQ,cAAA,EACR,YAAY,kBAAA,EACZ,OAAO,aAAA,EACP,eAAe,qBAAA,EACZ,MAAM,cAViB,gHAW3B,CADU;IAET,IAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAE7C,IAAM,gBAAgB,GAAG,OAAO,CAAC,cAAM,OAAA,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAV,CAAU,CAAC,CAAC,EAA/C,CAA+C,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEhG,IAAM,OAAO,GAAG,OAAO,CAAC,cAAM,OAAA,IAAI,CAAC,GAAG,OAAR,IAAI,EAAQ,IAAI,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,EAAH,CAAG,CAAC,GAAhC,CAAiC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACzE,IAAM,OAAO,GAAG,OAAO,CAAC,cAAM,OAAA,IAAI,CAAC,GAAG,OAAR,IAAI,EAAQ,IAAI,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,EAAH,CAAG,CAAC,GAAhC,CAAiC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEzE,IAAM,cAAc,GAAG,WAAW,CAChC,UAAC,CAAqB;QACpB,OAAA,SAAS,CAAC,IAAI,KAAK,YAAY;YAC7B,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,aAAD,CAAC,cAAD,CAAC,GAAI,OAAO,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC;YAC1G,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;IAF9B,CAE8B,EAChC,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAC9B,CAAC;IAEF,IAAM,UAAU,GAAG,WAAW,CAC5B,UAAC,CAAqB;;QACpB,IAAM,MAAM,GAAG,MAAA,CAAC,CAAC,UAAU,mCAAI,EAAE,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,2CAAoC,YAAY,CAAE,EAAE,CAAC,CAAC,CAAC;QACtE,CAAC;QACD,IAAM,GAAG,GAAW,MAAA,MAAM,CAAC,YAAY,CAAC,mCAAI,gBAAgB,CAAC;QAC7D,OAAO;YACL,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,CAAC;YACT,SAAS,EAAE,cAAc,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAChD,WAAW,EAAE,CAAC,EAAE,kCAAkC;SACnD,CAAC;IACJ,CAAC,EACD,CAAC,
|
|
1
|
+
{"version":3,"file":"BentoChoroplethMap.js","sourceRoot":"","sources":["../../../src/Components/Maps/BentoChoroplethMap.tsx"],"names":[],"mappings":"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"}
|
package/dist/util/chartUtils.js
CHANGED
|
@@ -33,6 +33,6 @@ export var useTransformedChartData = function (_a, defaultRemoveEmpty, sortY) {
|
|
|
33
33
|
if (sortY)
|
|
34
34
|
data.sort(function (a, b) { return a.y - b.y; });
|
|
35
35
|
return data;
|
|
36
|
-
}, [originalData,
|
|
36
|
+
}, [dataMap, defaultRemoveEmpty, originalData, origRemoveEmpty, preFilter, postFilter, sortY]);
|
|
37
37
|
};
|
|
38
38
|
//# sourceMappingURL=chartUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chartUtils.js","sourceRoot":"","sources":["../../src/util/chartUtils.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAGrD,MAAM,CAAC,IAAM,gBAAgB,GAAG,UAAC,EAAU,EAAE,EAAU,EAAE,MAAc,EAAE,KAAa;IACpF,OAAO;QACL,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,MAAM;QAC1C,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,MAAM;KAC3C,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,uBAAuB,GAAG,UACrC,EAMqC,EACrC,kBAAyB,EACzB,KAAa;QAPL,YAAY,UAAA,EAClB,SAAS,eAAA,EACT,OAAO,aAAA,EACP,UAAU,gBAAA,EACG,eAAe,iBAAA;IAE9B,mCAAA,EAAA,yBAAyB;IACzB,sBAAA,EAAA,aAAa;IAEb,OAAA,OAAO,CAAC;QACN,IAAM,WAAW,GAAG,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,kBAAkB,CAAC;QAE1D,IAAI,IAAI,qBAAO,YAAY,OAAC,CAAC;QAE7B,IAAI,SAAS;YAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,OAAO;YAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,UAAU;YAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAE/C,IAAI,WAAW;YAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,KAAK,CAAC,EAAT,CAAS,CAAC,CAAC;QAEtD,IAAI,KAAK;YAAE,IAAI,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAT,CAAS,CAAC,CAAC;QAE1C,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,CAAC,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"chartUtils.js","sourceRoot":"","sources":["../../src/util/chartUtils.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAGrD,MAAM,CAAC,IAAM,gBAAgB,GAAG,UAAC,EAAU,EAAE,EAAU,EAAE,MAAc,EAAE,KAAa;IACpF,OAAO;QACL,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,MAAM;QAC1C,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,MAAM;KAC3C,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,uBAAuB,GAAG,UACrC,EAMqC,EACrC,kBAAyB,EACzB,KAAa;QAPL,YAAY,UAAA,EAClB,SAAS,eAAA,EACT,OAAO,aAAA,EACP,UAAU,gBAAA,EACG,eAAe,iBAAA;IAE9B,mCAAA,EAAA,yBAAyB;IACzB,sBAAA,EAAA,aAAa;IAEb,OAAA,OAAO,CAAC;QACN,IAAM,WAAW,GAAG,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,kBAAkB,CAAC;QAE1D,IAAI,IAAI,qBAAO,YAAY,OAAC,CAAC;QAE7B,IAAI,SAAS;YAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,OAAO;YAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,UAAU;YAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAE/C,IAAI,WAAW;YAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,KAAK,CAAC,EAAT,CAAS,CAAC,CAAC;QAEtD,IAAI,KAAK;YAAE,IAAI,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAT,CAAS,CAAC,CAAC;QAE1C,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;AAd9F,CAc8F,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bento-charts",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.8.0",
|
|
4
4
|
"description": "Charts library for Bento-platform",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -8,7 +8,9 @@
|
|
|
8
8
|
"build": "npx tsc && npm run copy-files",
|
|
9
9
|
"copy-files": "cp ./src/styles.css ./dist/",
|
|
10
10
|
"prepublishOnly": "npm run build",
|
|
11
|
-
"lint": "npx eslint src",
|
|
11
|
+
"lint": "npx eslint 'src/**/*.{js,ts,tsx}'",
|
|
12
|
+
"lint:fix": "npx eslint 'src/**/*.{js,ts,tsx}' --fix",
|
|
13
|
+
"format": "npx prettier --write 'src/**/*.{js,ts,tsx}'",
|
|
12
14
|
"buildpack": "rm ./packs/*.tgz && tsc && npm pack --pack-destination ./packs",
|
|
13
15
|
"test": "npx webpack-dev-server"
|
|
14
16
|
},
|
|
@@ -85,18 +87,21 @@
|
|
|
85
87
|
"@types/react-dom": "^18.2.8",
|
|
86
88
|
"@types/react-leaflet": "^3.0.0",
|
|
87
89
|
"@types/recharts": "^1.8.25",
|
|
88
|
-
"@typescript-eslint/eslint-plugin": "^7.0
|
|
90
|
+
"@typescript-eslint/eslint-plugin": "^7.11.0",
|
|
89
91
|
"@typescript-eslint/parser": "^7.0.1",
|
|
90
92
|
"@webpack-cli/serve": "^2.0.5",
|
|
91
93
|
"antd": "^5.9.4",
|
|
92
94
|
"css-loader": "^6.8.1",
|
|
93
95
|
"eslint": "^8.50.0",
|
|
94
|
-
"eslint-
|
|
96
|
+
"eslint-config-prettier": "^9.1.0",
|
|
97
|
+
"eslint-plugin-prettier": "^5.1.3",
|
|
98
|
+
"eslint-plugin-react": "^7.34.2",
|
|
99
|
+
"eslint-plugin-react-hooks": "^4.6.2",
|
|
95
100
|
"file-loader": "^6.2.0",
|
|
96
101
|
"geojson": "^0.5.0",
|
|
97
102
|
"html-webpack-plugin": "^5.5.3",
|
|
98
103
|
"husky": "^8.0.3",
|
|
99
|
-
"prettier": "3.2.5",
|
|
104
|
+
"prettier": "^3.2.5",
|
|
100
105
|
"react-router-dom": "^6.16.0",
|
|
101
106
|
"semantic-release": "^23.0.2",
|
|
102
107
|
"style-loader": "^3.3.3",
|
|
@@ -49,13 +49,19 @@ const BentoPie = ({
|
|
|
49
49
|
onClick,
|
|
50
50
|
sort = true,
|
|
51
51
|
colorTheme = 'default',
|
|
52
|
-
chartThreshold
|
|
53
|
-
maxLabelChars
|
|
52
|
+
chartThreshold,
|
|
53
|
+
maxLabelChars,
|
|
54
54
|
...params
|
|
55
55
|
}: PieChartProps) => {
|
|
56
56
|
const t = useChartTranslation();
|
|
57
57
|
const { fill: theme } = useChartTheme().pie[colorTheme];
|
|
58
58
|
|
|
59
|
+
const defaultChartThreshold = useChartThreshold();
|
|
60
|
+
const defaultMaxLabelChars = useChartMaxLabelChars();
|
|
61
|
+
|
|
62
|
+
const resolvedChartThreshold = chartThreshold ?? defaultChartThreshold;
|
|
63
|
+
const resolvedMaxLabelChars = maxLabelChars ?? defaultMaxLabelChars;
|
|
64
|
+
|
|
59
65
|
const [activeIndex, setActiveIndex] = useState<number | undefined>(undefined);
|
|
60
66
|
|
|
61
67
|
// ##################### Data processing #####################
|
|
@@ -67,7 +73,7 @@ const BentoPie = ({
|
|
|
67
73
|
// combining sections with less than chartThreshold
|
|
68
74
|
const sum = data.reduce((acc, e) => acc + e.y, 0);
|
|
69
75
|
const length = data.length;
|
|
70
|
-
const threshold =
|
|
76
|
+
const threshold = resolvedChartThreshold * sum;
|
|
71
77
|
const dataAboveThreshold = data.filter((e) => e.y > threshold);
|
|
72
78
|
// length - 1 intentional: if there is just one category below threshold, the "Other" category is not necessary.
|
|
73
79
|
data = dataAboveThreshold.length === length - 1 ? data : dataAboveThreshold;
|
|
@@ -82,7 +88,7 @@ const BentoPie = ({
|
|
|
82
88
|
data: data.map((e) => ({ name: e.x, value: e.y })),
|
|
83
89
|
sum,
|
|
84
90
|
};
|
|
85
|
-
}, [
|
|
91
|
+
}, [t, transformedData, resolvedChartThreshold]);
|
|
86
92
|
|
|
87
93
|
// ##################### Rendering #####################
|
|
88
94
|
const onEnter: PieProps['onMouseEnter'] = useCallback((_data, index) => {
|
|
@@ -94,7 +100,7 @@ const BentoPie = ({
|
|
|
94
100
|
const { target } = e;
|
|
95
101
|
if (onClick && target && data.name !== t[OTHER_KEY]) (target as SVGElement).style.cursor = 'pointer';
|
|
96
102
|
},
|
|
97
|
-
[onClick]
|
|
103
|
+
[t, onClick]
|
|
98
104
|
);
|
|
99
105
|
|
|
100
106
|
const onLeave: PieProps['onMouseLeave'] = useCallback(() => {
|
|
@@ -116,7 +122,7 @@ const BentoPie = ({
|
|
|
116
122
|
cy="50%"
|
|
117
123
|
innerRadius="25%"
|
|
118
124
|
outerRadius="55%"
|
|
119
|
-
label={renderLabel(
|
|
125
|
+
label={renderLabel(resolvedMaxLabelChars)}
|
|
120
126
|
labelLine={false}
|
|
121
127
|
isAnimationActive={false}
|
|
122
128
|
onMouseEnter={onEnter}
|
|
@@ -147,7 +153,7 @@ const toNumber = (val: number | string | undefined, defaultValue?: number): numb
|
|
|
147
153
|
return defaultValue || 0;
|
|
148
154
|
};
|
|
149
155
|
|
|
150
|
-
const renderLabel = (
|
|
156
|
+
const renderLabel = (resolvedMaxLabelChars: number): PieProps['label'] => {
|
|
151
157
|
const BentoPieLabel = (params: PieLabelRenderProps) => {
|
|
152
158
|
const { fill, payload, index, activeIndex } = params;
|
|
153
159
|
const percent = params.percent || 0;
|
|
@@ -198,7 +204,7 @@ const renderLabel = (maxLabelChars: number): PieProps['label'] => {
|
|
|
198
204
|
<path d={`M${sx},${sy}L${mx},${my}L${ex},${ey}`} stroke={fill} fill="none" />
|
|
199
205
|
<circle cx={ex} cy={ey} r={2} fill={fill} stroke="none" />
|
|
200
206
|
<text x={ex + (cos >= 0 ? 1 : -1) * 12} y={ey + 3} textAnchor={textAnchor} style={currentTextStyle}>
|
|
201
|
-
{labelShortName(name,
|
|
207
|
+
{labelShortName(name, resolvedMaxLabelChars)}
|
|
202
208
|
</text>
|
|
203
209
|
<text x={ex + (cos >= 0 ? 1 : -1) * 12} y={ey} dy={14} textAnchor={textAnchor} style={COUNT_TEXT_STYLE}>
|
|
204
210
|
{`(${payload.value})`}
|
|
@@ -61,7 +61,7 @@ const BentoChoroplethMap = ({
|
|
|
61
61
|
fillOpacity: 1, // actual opacity set by fillColor
|
|
62
62
|
};
|
|
63
63
|
},
|
|
64
|
-
[
|
|
64
|
+
[calculateColor, categoryProp, dataByFeatureCat]
|
|
65
65
|
);
|
|
66
66
|
|
|
67
67
|
const [popupContents, setPopupContents] = useState<React.ReactNode | null>(null);
|
|
@@ -95,7 +95,7 @@ const BentoChoroplethMap = ({
|
|
|
95
95
|
);
|
|
96
96
|
},
|
|
97
97
|
}) as LeafletEventHandlerFnMap,
|
|
98
|
-
[onClick, categoryProp, renderPopupBody]
|
|
98
|
+
[onClick, categoryProp, dataByFeatureCat, renderPopupBody]
|
|
99
99
|
);
|
|
100
100
|
|
|
101
101
|
const geoJsonLayer: Ref<LeafletGeoJSON> = useRef(null);
|
package/src/types/chartTypes.ts
CHANGED
|
@@ -22,14 +22,14 @@ export type HexColor = `#${string}`;
|
|
|
22
22
|
|
|
23
23
|
export type ChartThemeContext = { fill: HexColor[]; other: HexColor };
|
|
24
24
|
export type ChartTypeContext = {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
[key in string]: ChartThemeContext;
|
|
26
|
+
} & {
|
|
27
|
+
default: ChartThemeContext;
|
|
28
|
+
};
|
|
29
29
|
export type ChartTheme = {
|
|
30
|
-
pie: ChartTypeContext
|
|
31
|
-
bar: ChartTypeContext
|
|
32
|
-
histogram: ChartTypeContext
|
|
30
|
+
pie: ChartTypeContext;
|
|
31
|
+
bar: ChartTypeContext;
|
|
32
|
+
histogram: ChartTypeContext;
|
|
33
33
|
};
|
|
34
34
|
|
|
35
35
|
export type FilterCallback<T> = (value: T, index: number, array: T[]) => boolean;
|
|
@@ -91,4 +91,3 @@ export interface BarChartProps extends Omit<BaseBarChartProps, 'chartFill' | 'ot
|
|
|
91
91
|
export interface HistogramProps extends Omit<BaseBarChartProps, 'chartFill' | 'otherFill'> {
|
|
92
92
|
colorTheme?: keyof ChartTheme['bar'];
|
|
93
93
|
}
|
|
94
|
-
|
package/src/util/chartUtils.ts
CHANGED
|
@@ -18,7 +18,7 @@ export const useTransformedChartData = (
|
|
|
18
18
|
removeEmpty: origRemoveEmpty,
|
|
19
19
|
}: CategoricalChartDataWithTransforms,
|
|
20
20
|
defaultRemoveEmpty = true,
|
|
21
|
-
sortY = false
|
|
21
|
+
sortY = false
|
|
22
22
|
) =>
|
|
23
23
|
useMemo(() => {
|
|
24
24
|
const removeEmpty = origRemoveEmpty ?? defaultRemoveEmpty;
|
|
@@ -34,4 +34,4 @@ export const useTransformedChartData = (
|
|
|
34
34
|
if (sortY) data.sort((a, b) => a.y - b.y);
|
|
35
35
|
|
|
36
36
|
return data;
|
|
37
|
-
}, [originalData,
|
|
37
|
+
}, [dataMap, defaultRemoveEmpty, originalData, origRemoveEmpty, preFilter, postFilter, sortY]);
|