bento-charts 1.0.6 → 1.0.8
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 +30 -0
- package/.github/workflows/lint.yml +15 -0
- package/.github/workflows/release.yml +26 -0
- package/README.md +72 -1
- package/commitlint.config.js +1 -0
- package/dist/Charts/BentoPie.js +15 -4
- package/dist/Charts/BentoPie.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types/chartTypes.d.ts +2 -4
- package/package.json +33 -9
- package/src/Charts/BentoPie.tsx +19 -8
- package/src/index.ts +3 -3
- package/src/types/chartTypes.ts +2 -2
package/.eslintrc.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
"env": {
|
|
3
|
+
"browser": true,
|
|
4
|
+
"es2021": true
|
|
5
|
+
},
|
|
6
|
+
"extends": [
|
|
7
|
+
"eslint:recommended",
|
|
8
|
+
"plugin:react/recommended",
|
|
9
|
+
"plugin:@typescript-eslint/recommended"
|
|
10
|
+
],
|
|
11
|
+
"overrides": [
|
|
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
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
on:
|
|
3
|
+
push:
|
|
4
|
+
branches:
|
|
5
|
+
- main
|
|
6
|
+
jobs:
|
|
7
|
+
release:
|
|
8
|
+
name: Release
|
|
9
|
+
runs-on: ubuntu-latest
|
|
10
|
+
steps:
|
|
11
|
+
- name: Checkout
|
|
12
|
+
uses: actions/checkout@v3
|
|
13
|
+
with:
|
|
14
|
+
fetch-depth: 0
|
|
15
|
+
persist-credentials: false
|
|
16
|
+
- name: Setup Node.js
|
|
17
|
+
uses: actions/setup-node@v3
|
|
18
|
+
with:
|
|
19
|
+
node-version: "lts/*"
|
|
20
|
+
- name: Install dependencies
|
|
21
|
+
run: npm ci
|
|
22
|
+
- name: Release
|
|
23
|
+
env:
|
|
24
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
25
|
+
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
26
|
+
run: npx semantic-release
|
package/README.md
CHANGED
|
@@ -4,9 +4,12 @@
|
|
|
4
4
|
[](https://coveralls.io/github/bento-platform/Bento-Charts?branch=master)
|
|
5
5
|
[](https://badge.fury.io/js/bento-charts)
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
This repository hosts the code for Bento-Charts, a library in React, TypeScript and Recharts.
|
|
8
|
+
|
|
9
|
+
Bento charts offers Bar and Pie charts for Bento project UI web applications in React.
|
|
8
10
|
|
|
9
11
|
## Installation
|
|
12
|
+
Add Bento-Charts as a dependency to another project:
|
|
10
13
|
|
|
11
14
|
```bash
|
|
12
15
|
npm install bento-charts
|
|
@@ -44,3 +47,71 @@ refer to [theme](https://github.com/bento-platform/Bento-Charts/blob/eee46541eec
|
|
|
44
47
|
import { BarChart, PieChart } from 'bento-charts';
|
|
45
48
|
```
|
|
46
49
|
Refer to [Props](https://github.com/bento-platform/Bento-Charts/blob/eee46541eec68e2dd7f62f8d786148480ce5105f/src/types/chartTypes.ts#L51) for information on their props.
|
|
50
|
+
|
|
51
|
+
## Release procedure
|
|
52
|
+
|
|
53
|
+
A commit on the `main` branch will trigger a build and release of the package to the npm Registry, no need to manually create tags thanks to semantic-release.
|
|
54
|
+
|
|
55
|
+
**Please follow the instructions bellow when writing your commits.**
|
|
56
|
+
|
|
57
|
+
### Semantic release
|
|
58
|
+
Bento-Charts adheres to the [semver](https://semver.org/) versioning convention (Semantic Versioning). This repository uses the
|
|
59
|
+
[semantic-release](https://github.com/semantic-release/semantic-release) library to automate the release of semver compliant packages to
|
|
60
|
+
the npm Registry.
|
|
61
|
+
|
|
62
|
+
Semantic-release parses the commit messages in the release branch in order to determine the versioning changes. It does not rely on magic to work, but rather on specific commit message formats, which are described bellow.
|
|
63
|
+
|
|
64
|
+
### Commit message guidelines
|
|
65
|
+
Semantic-release uses the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification in order to parse relevant information.
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
<type>(<scope>): <short summary>
|
|
69
|
+
│ │ │
|
|
70
|
+
│ │ └─⫸ Summary in present tense. Not capitalized. No period at the end.
|
|
71
|
+
│ │
|
|
72
|
+
│ └─⫸ Commit Scope: Optional, what was changed.
|
|
73
|
+
│
|
|
74
|
+
└─⫸ Commit Type: build|ci|docs|feat|fix|perf|refactor|test
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Both `<type>` and `<short summary>` are mandatory, while `<scope>` is optional, but recommended for pretty release notes.
|
|
78
|
+
|
|
79
|
+
**Example commit messages**
|
|
80
|
+
|
|
81
|
+
After fixing a dependency issue:
|
|
82
|
+
```
|
|
83
|
+
fix(dependencies): resolve peer dependencies issues caused by React version
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
After adding a new Rechart feature:
|
|
87
|
+
```
|
|
88
|
+
feat(charts): add support for mixmarchart
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
After adding unit tests to the charts
|
|
92
|
+
```
|
|
93
|
+
test(charts): add unit tests for mixbarchart
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Commit with commitlint
|
|
97
|
+
[Commitlint](https://commitlint.js.org/#/) is a safeguard for commit message formats, which you can use to help write semver
|
|
98
|
+
compliant commits. [Husky](https://github.com/typicode/husky) is a git hooks tool that binds commitlint to the `git commit` command.
|
|
99
|
+
|
|
100
|
+
### Installation
|
|
101
|
+
Run these steps once to setup commitlint + husky.
|
|
102
|
+
```shell
|
|
103
|
+
# Install dev dependencies (commitlint & husky)
|
|
104
|
+
npm install
|
|
105
|
+
# Install husky git hook
|
|
106
|
+
npx husky install
|
|
107
|
+
# Add commitlint as a hook to husky
|
|
108
|
+
npx husky add .husky/commit-msg 'npx --no -- commitlint --edit ${1}'
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Usage
|
|
112
|
+
Use the git cli as you normally would to make your commits, commitlint will intercept your commit if it is malformed.
|
|
113
|
+
|
|
114
|
+
Example:
|
|
115
|
+
```bash
|
|
116
|
+
git commit -m "ci(semantic-release): add commitlint and husky as dev tools to write valid commits"
|
|
117
|
+
```
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = { extends: ['@commitlint/config-conventional'] };
|
package/dist/Charts/BentoPie.js
CHANGED
|
@@ -78,14 +78,25 @@ var BentoPie = function (_a) {
|
|
|
78
78
|
return _jsx(Cell, { fill: fill }, index);
|
|
79
79
|
}) })), _jsx(Tooltip, { content: _jsx(CustomTooltip, { totalCount: sum }), isAnimationActive: false, allowEscapeViewBox: { x: true, y: true } })] })) })));
|
|
80
80
|
};
|
|
81
|
+
var toNumber = function (val, defaultValue) {
|
|
82
|
+
if (val && typeof val === "string") {
|
|
83
|
+
return Number(val);
|
|
84
|
+
}
|
|
85
|
+
return defaultValue || 0;
|
|
86
|
+
};
|
|
81
87
|
var RenderLabel = function (params) {
|
|
82
|
-
var
|
|
88
|
+
var fill = params.fill, payload = params.payload, index = params.index, activeIndex = params.activeIndex;
|
|
89
|
+
var percent = params.percent || 0;
|
|
90
|
+
var midAngle = params.midAngle || 0;
|
|
83
91
|
// skip rendering this static label if the sector is selected.
|
|
84
92
|
// this will let the 'renderActiveState' draw without overlapping.
|
|
85
93
|
// also, skip rendering if segment is too small a percentage (avoids label clutter)
|
|
86
|
-
if (index === activeIndex ||
|
|
94
|
+
if (index === activeIndex || percent < LABEL_THRESHOLD) {
|
|
87
95
|
return;
|
|
88
96
|
}
|
|
97
|
+
var outerRadius = toNumber(params.outerRadius);
|
|
98
|
+
var cx = toNumber(params.cx);
|
|
99
|
+
var cy = toNumber(params.cy);
|
|
89
100
|
var name = payload.name === 'null' ? '(Empty)' : payload.name;
|
|
90
101
|
var sin = Math.sin(-RADIAN * midAngle);
|
|
91
102
|
var cos = Math.cos(-RADIAN * midAngle);
|
|
@@ -98,8 +109,8 @@ var RenderLabel = function (params) {
|
|
|
98
109
|
var textAnchor = cos >= 0 ? 'start' : 'end';
|
|
99
110
|
var currentTextStyle = __assign(__assign({}, TEXT_STYLE), { fontWeight: payload.selected ? 'bold' : 'normal', fontStyle: payload.name === 'null' ? 'italic' : 'normal' });
|
|
100
111
|
var offsetRadius = 20;
|
|
101
|
-
var startPoint = polarToCartesian(
|
|
102
|
-
var endPoint = polarToCartesian(
|
|
112
|
+
var startPoint = polarToCartesian(cx, cy, outerRadius, midAngle);
|
|
113
|
+
var endPoint = polarToCartesian(cx, cy, outerRadius + offsetRadius, midAngle);
|
|
103
114
|
var lineProps = __assign(__assign({}, params), { fill: 'none', stroke: fill, points: [startPoint, endPoint] });
|
|
104
115
|
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, ")") }))] }));
|
|
105
116
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BentoPie.js","sourceRoot":"","sources":["../../src/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,
|
|
1
|
+
{"version":3,"file":"BentoPie.js","sourceRoot":"","sources":["../../src/Charts/BentoPie.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,wBAAwB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
export
|
|
2
|
-
}
|
|
1
|
+
export type ChartDataType = ChartDataItem[];
|
|
3
2
|
export interface ChartDataItem {
|
|
4
3
|
x: string;
|
|
5
4
|
y: number;
|
|
6
5
|
}
|
|
7
|
-
export
|
|
8
|
-
}
|
|
6
|
+
export type TooltipPayload = TooltipPayloadItem[];
|
|
9
7
|
interface TooltipPayloadItem {
|
|
10
8
|
name: string;
|
|
11
9
|
payload: {
|
package/package.json
CHANGED
|
@@ -1,12 +1,26 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bento-charts",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.8",
|
|
4
4
|
"description": "Charts library for Bento-platform",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"build": "npx tsc",
|
|
9
|
-
"prepublishOnly": "npm run build"
|
|
9
|
+
"prepublishOnly": "npm run build",
|
|
10
|
+
"lint": "npx eslint src/**"
|
|
11
|
+
},
|
|
12
|
+
"release": {
|
|
13
|
+
"branches": [
|
|
14
|
+
"main"
|
|
15
|
+
],
|
|
16
|
+
"dryRun": false,
|
|
17
|
+
"plugins": [
|
|
18
|
+
"@semantic-release/commit-analyzer",
|
|
19
|
+
"@semantic-release/release-notes-generator",
|
|
20
|
+
"@semantic-release/npm",
|
|
21
|
+
"@semantic-release/github",
|
|
22
|
+
"@semantic-release/git"
|
|
23
|
+
]
|
|
10
24
|
},
|
|
11
25
|
"repository": {
|
|
12
26
|
"type": "git",
|
|
@@ -22,16 +36,26 @@
|
|
|
22
36
|
"url": "https://github.com/bento-platform/Bento-Charts/issues"
|
|
23
37
|
},
|
|
24
38
|
"homepage": "https://github.com/bento-platform/Bento-Charts#readme",
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"react-dom": "^16.13.1",
|
|
30
|
-
"recharts": "^2.4.3",
|
|
31
|
-
"ts-loader": "^9.4.2"
|
|
39
|
+
"peerDependencies": {
|
|
40
|
+
"react": "^18.2.0",
|
|
41
|
+
"react-dom": "^18.2.0",
|
|
42
|
+
"recharts": "^2.4.3"
|
|
32
43
|
},
|
|
33
44
|
"devDependencies": {
|
|
45
|
+
"@commitlint/cli": "^17.4.4",
|
|
46
|
+
"@commitlint/config-conventional": "^17.4.4",
|
|
47
|
+
"@semantic-release/git": "^10.0.1",
|
|
48
|
+
"@types/react": "^18.0.28",
|
|
49
|
+
"@types/react-dom": "^18.0.10",
|
|
50
|
+
"@types/recharts": "^1.8.24",
|
|
51
|
+
"@typescript-eslint/eslint-plugin": "^5.56.0",
|
|
52
|
+
"@typescript-eslint/parser": "^5.56.0",
|
|
53
|
+
"eslint": "^8.36.0",
|
|
54
|
+
"eslint-plugin-react": "^7.32.2",
|
|
55
|
+
"husky": "^8.0.3",
|
|
34
56
|
"prettier": "2.7.1",
|
|
57
|
+
"semantic-release": "^20.1.3",
|
|
58
|
+
"ts-loader": "^9.4.2",
|
|
35
59
|
"typescript": "^4.9.5"
|
|
36
60
|
}
|
|
37
61
|
}
|
package/src/Charts/BentoPie.tsx
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import React, { useState } from 'react';
|
|
2
|
-
import { PieChart, Pie, Cell, Curve, Tooltip, Sector } from 'recharts';
|
|
3
|
-
import { Props } from 'recharts/types/polar/Pie';
|
|
4
|
-
type PieProps = Props;
|
|
2
|
+
import { PieChart, Pie, Cell, Curve, Tooltip, Sector, PieProps, PieLabelRenderProps } from 'recharts';
|
|
5
3
|
import type CSS from 'csstype';
|
|
6
4
|
|
|
7
5
|
import {
|
|
@@ -119,16 +117,29 @@ const BentoPie = ({
|
|
|
119
117
|
);
|
|
120
118
|
};
|
|
121
119
|
|
|
122
|
-
const
|
|
123
|
-
|
|
120
|
+
const toNumber = (val: number | string | undefined, defaultValue?: number): number => {
|
|
121
|
+
if (val && typeof val === "string") {
|
|
122
|
+
return Number(val);
|
|
123
|
+
}
|
|
124
|
+
return defaultValue || 0;
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
const RenderLabel: PieProps['label'] = (params: PieLabelRenderProps) => {
|
|
128
|
+
const { fill, payload, index, activeIndex } = params;
|
|
129
|
+
const percent = params.percent || 0;
|
|
130
|
+
const midAngle = params.midAngle || 0;
|
|
124
131
|
|
|
125
132
|
// skip rendering this static label if the sector is selected.
|
|
126
133
|
// this will let the 'renderActiveState' draw without overlapping.
|
|
127
134
|
// also, skip rendering if segment is too small a percentage (avoids label clutter)
|
|
128
|
-
if (index === activeIndex ||
|
|
135
|
+
if (index === activeIndex || percent < LABEL_THRESHOLD) {
|
|
129
136
|
return;
|
|
130
137
|
}
|
|
131
138
|
|
|
139
|
+
const outerRadius = toNumber(params.outerRadius);
|
|
140
|
+
const cx = toNumber(params.cx);
|
|
141
|
+
const cy = toNumber(params.cy);
|
|
142
|
+
|
|
132
143
|
const name = payload.name === 'null' ? '(Empty)' : payload.name;
|
|
133
144
|
|
|
134
145
|
const sin = Math.sin(-RADIAN * midAngle);
|
|
@@ -148,8 +159,8 @@ const RenderLabel: PieProps['label'] = (params) => {
|
|
|
148
159
|
};
|
|
149
160
|
|
|
150
161
|
const offsetRadius = 20;
|
|
151
|
-
const startPoint = polarToCartesian(
|
|
152
|
-
const endPoint = polarToCartesian(
|
|
162
|
+
const startPoint = polarToCartesian(cx, cy, outerRadius, midAngle);
|
|
163
|
+
const endPoint = polarToCartesian(cx, cy, outerRadius + offsetRadius, midAngle);
|
|
153
164
|
const lineProps = {
|
|
154
165
|
...params,
|
|
155
166
|
fill: 'none',
|
package/src/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { default as BarChart } from './Charts/BentoBarChart'
|
|
2
|
-
export { default as PieChart } from './Charts/BentoPie'
|
|
1
|
+
export { default as BarChart } from './Charts/BentoBarChart';
|
|
2
|
+
export { default as PieChart } from './Charts/BentoPie';
|
|
3
3
|
|
|
4
|
-
export { default as ChartConfigProvider } from './ChartConfigProvider'
|
|
4
|
+
export { default as ChartConfigProvider } from './ChartConfigProvider';
|
package/src/types/chartTypes.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export
|
|
1
|
+
export type ChartDataType = ChartDataItem[]
|
|
2
2
|
|
|
3
3
|
export interface ChartDataItem {
|
|
4
4
|
x: string;
|
|
5
5
|
y: number;
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
-
export
|
|
8
|
+
export type TooltipPayload = TooltipPayloadItem[]
|
|
9
9
|
|
|
10
10
|
interface TooltipPayloadItem {
|
|
11
11
|
name: string;
|