@spaced-out/ui-design-system 0.1.86 → 0.1.87
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/.cspell/custom-words.txt +5 -1
- package/.storybook/preview-head.html +4 -0
- package/CHANGELOG.md +20 -0
- package/design-tokens/color/app-color.json +26 -0
- package/design-tokens/font/base-font.json +1 -1
- package/design-tokens/size/base-size.json +12 -0
- package/lib/components/ChartWrapper/ChartWrapper.js +124 -0
- package/lib/components/ChartWrapper/ChartWrapper.js.flow +156 -0
- package/lib/components/ChartWrapper/ChartWrapper.module.css +19 -0
- package/lib/components/ChartWrapper/index.js +16 -0
- package/lib/components/ChartWrapper/index.js.flow +3 -0
- package/lib/components/Charts/ChartTooltip.js +18 -0
- package/lib/components/Charts/ChartTooltip.js.flow +15 -0
- package/lib/components/Charts/ChartTooltip.module.css +36 -0
- package/lib/components/Charts/index.js +71 -0
- package/lib/components/Charts/index.js.flow +8 -0
- package/lib/components/ColumnChart/ColumnChart.js +82 -0
- package/lib/components/ColumnChart/ColumnChart.js.flow +109 -0
- package/lib/components/ColumnChart/ColumnChart.module.css +12 -0
- package/lib/components/ColumnChart/index.js +16 -0
- package/lib/components/ColumnChart/index.js.flow +3 -0
- package/lib/components/DonutChart/DonutChart.js +97 -0
- package/lib/components/DonutChart/DonutChart.js.flow +147 -0
- package/lib/components/DonutChart/DonutChart.module.css +65 -0
- package/lib/components/DonutChart/index.js +16 -0
- package/lib/components/DonutChart/index.js.flow +3 -0
- package/lib/components/Grid/Grid.js +3 -2
- package/lib/components/Grid/Grid.js.flow +3 -2
- package/lib/components/Icon/index.js +31 -25
- package/lib/components/Icon/index.js.flow +3 -6
- package/lib/components/LineChart/LineChart.js +72 -0
- package/lib/components/LineChart/LineChart.js.flow +96 -0
- package/lib/components/LineChart/LineChart.module.css +17 -0
- package/lib/components/LineChart/index.js +16 -0
- package/lib/components/LineChart/index.js.flow +3 -0
- package/lib/components/SpiderChart/SpiderChart.js +88 -0
- package/lib/components/SpiderChart/SpiderChart.js.flow +123 -0
- package/lib/components/SpiderChart/SpiderChart.module.css +17 -0
- package/lib/components/SpiderChart/index.js +16 -0
- package/lib/components/SpiderChart/index.js.flow +3 -0
- package/lib/components/index.js +11 -0
- package/lib/components/index.js.flow +1 -0
- package/lib/styles/index.css +25 -1
- package/lib/styles/index.js +28 -4
- package/lib/styles/index.js.flow +25 -1
- package/lib/styles/variables/_color.css +16 -0
- package/lib/styles/variables/_color.js +17 -1
- package/lib/styles/variables/_color.js.flow +16 -0
- package/lib/styles/variables/_font.css +1 -1
- package/lib/styles/variables/_font.js +1 -1
- package/lib/styles/variables/_font.js.flow +1 -1
- package/lib/styles/variables/_size.css +8 -0
- package/lib/styles/variables/_size.js +9 -1
- package/lib/styles/variables/_size.js.flow +8 -0
- package/lib/types/charts.js +0 -0
- package/lib/types/charts.js.flow +151 -0
- package/lib/utils/charts/charts.js +71 -0
- package/lib/utils/charts/charts.js.flow +89 -0
- package/lib/utils/charts/columnChart.js +55 -0
- package/lib/utils/charts/columnChart.js.flow +59 -0
- package/lib/utils/charts/donutChart.js +114 -0
- package/lib/utils/charts/donutChart.js.flow +138 -0
- package/lib/utils/charts/helpers.js +65 -0
- package/lib/utils/charts/helpers.js.flow +68 -0
- package/lib/utils/charts/index.js +82 -0
- package/lib/utils/charts/index.js.flow +9 -0
- package/lib/utils/charts/lineChart.js +47 -0
- package/lib/utils/charts/lineChart.js.flow +49 -0
- package/lib/utils/charts/spiderChart.js +59 -0
- package/lib/utils/charts/spiderChart.js.flow +72 -0
- package/lib/utils/charts/typography.js +59 -0
- package/lib/utils/charts/typography.js.flow +67 -0
- package/package.json +4 -1
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.LineChart = void 0;
|
|
7
|
+
var React = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _highcharts = _interopRequireDefault(require("highcharts"));
|
|
9
|
+
var _highchartsReactOfficial = _interopRequireDefault(require("highcharts-react-official"));
|
|
10
|
+
var _charts = require("../../utils/charts");
|
|
11
|
+
var _classify = _interopRequireDefault(require("../../utils/classify"));
|
|
12
|
+
var _ChartWrapper = require("../ChartWrapper");
|
|
13
|
+
var _LineChartModule = _interopRequireDefault(require("./LineChart.module.css"));
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
16
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
17
|
+
|
|
18
|
+
//$FlowFixMe[untyped-import]
|
|
19
|
+
|
|
20
|
+
//$FlowFixMe[untyped-import]
|
|
21
|
+
|
|
22
|
+
const LineChart = _ref => {
|
|
23
|
+
let {
|
|
24
|
+
classNames,
|
|
25
|
+
cardTitle,
|
|
26
|
+
customExportOptions,
|
|
27
|
+
series,
|
|
28
|
+
headerActions,
|
|
29
|
+
drilldown,
|
|
30
|
+
...userOptions
|
|
31
|
+
} = _ref;
|
|
32
|
+
const chartRef = /*#__PURE__*/React.createRef();
|
|
33
|
+
const lineChartSeries = series.map((seriesItem, index) => ({
|
|
34
|
+
...seriesItem,
|
|
35
|
+
name: seriesItem.name,
|
|
36
|
+
data: seriesItem.data,
|
|
37
|
+
color: (0, _charts.getDataVizColor)(index)
|
|
38
|
+
}));
|
|
39
|
+
const defaultLineChartOptions = (0, _charts.getLineChartOptions)();
|
|
40
|
+
const columnDrilldown = drilldown ? {
|
|
41
|
+
...drilldown,
|
|
42
|
+
breadcrumbs: {
|
|
43
|
+
floating: false
|
|
44
|
+
}
|
|
45
|
+
} : {};
|
|
46
|
+
|
|
47
|
+
//$FlowFixMe[cannot-spread-inexact]
|
|
48
|
+
const chartOptions = (0, _charts.mergeChartUserOptions)(defaultLineChartOptions, {
|
|
49
|
+
series: lineChartSeries,
|
|
50
|
+
drilldown: columnDrilldown,
|
|
51
|
+
...userOptions
|
|
52
|
+
});
|
|
53
|
+
const {
|
|
54
|
+
highChart,
|
|
55
|
+
...wrapperClassNames
|
|
56
|
+
} = classNames || {};
|
|
57
|
+
return /*#__PURE__*/React.createElement(_ChartWrapper.ChartWrapper, {
|
|
58
|
+
title: cardTitle,
|
|
59
|
+
ref: chartRef,
|
|
60
|
+
classNames: wrapperClassNames,
|
|
61
|
+
customExportOptions: customExportOptions,
|
|
62
|
+
headerActions: headerActions
|
|
63
|
+
}, /*#__PURE__*/React.createElement(_highchartsReactOfficial.default, {
|
|
64
|
+
highcharts: _highcharts.default,
|
|
65
|
+
containerProps: {
|
|
66
|
+
className: (0, _classify.default)(_LineChartModule.default.lineChartContainer, highChart)
|
|
67
|
+
},
|
|
68
|
+
ref: chartRef,
|
|
69
|
+
options: chartOptions
|
|
70
|
+
}));
|
|
71
|
+
};
|
|
72
|
+
exports.LineChart = LineChart;
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
// @flow strict
|
|
2
|
+
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
//$FlowFixMe[untyped-import]
|
|
5
|
+
import Highcharts from 'highcharts';
|
|
6
|
+
//$FlowFixMe[untyped-import]
|
|
7
|
+
import HighchartsReact from 'highcharts-react-official';
|
|
8
|
+
|
|
9
|
+
import type {Drilldown} from '../../types/charts';
|
|
10
|
+
import {
|
|
11
|
+
getDataVizColor,
|
|
12
|
+
getLineChartOptions,
|
|
13
|
+
mergeChartUserOptions,
|
|
14
|
+
} from '../../utils/charts';
|
|
15
|
+
import classify from '../../utils/classify';
|
|
16
|
+
import type {ChartWrapperClassNames, ExportOptionType} from '../ChartWrapper';
|
|
17
|
+
import {ChartWrapper} from '../ChartWrapper';
|
|
18
|
+
|
|
19
|
+
import css from './LineChart.module.css';
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
type ClassNames = $ReadOnly<{
|
|
23
|
+
...ChartWrapperClassNames,
|
|
24
|
+
highChart?: string,
|
|
25
|
+
}>;
|
|
26
|
+
|
|
27
|
+
type LineSeriesItem = {
|
|
28
|
+
name: string,
|
|
29
|
+
data: [],
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export type LineChartProps = {
|
|
33
|
+
classNames?: ClassNames,
|
|
34
|
+
cardTitle?: string,
|
|
35
|
+
customExportOptions?: Array<ExportOptionType> | null,
|
|
36
|
+
series: Array<LineSeriesItem>,
|
|
37
|
+
headerActions?: React.Node,
|
|
38
|
+
drilldown: Drilldown,
|
|
39
|
+
...
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export const LineChart = ({
|
|
43
|
+
classNames,
|
|
44
|
+
cardTitle,
|
|
45
|
+
customExportOptions,
|
|
46
|
+
series,
|
|
47
|
+
headerActions,
|
|
48
|
+
drilldown,
|
|
49
|
+
...userOptions
|
|
50
|
+
}: LineChartProps): React.Node => {
|
|
51
|
+
const chartRef = React.createRef();
|
|
52
|
+
|
|
53
|
+
const lineChartSeries = series.map((seriesItem, index) => ({
|
|
54
|
+
...seriesItem,
|
|
55
|
+
name: seriesItem.name,
|
|
56
|
+
data: seriesItem.data,
|
|
57
|
+
color: getDataVizColor(index),
|
|
58
|
+
}));
|
|
59
|
+
|
|
60
|
+
const defaultLineChartOptions = getLineChartOptions();
|
|
61
|
+
|
|
62
|
+
const columnDrilldown = drilldown
|
|
63
|
+
? {
|
|
64
|
+
...drilldown,
|
|
65
|
+
breadcrumbs: {floating: false},
|
|
66
|
+
}
|
|
67
|
+
: {};
|
|
68
|
+
|
|
69
|
+
//$FlowFixMe[cannot-spread-inexact]
|
|
70
|
+
const chartOptions = mergeChartUserOptions(defaultLineChartOptions, {
|
|
71
|
+
series: lineChartSeries,
|
|
72
|
+
drilldown: columnDrilldown,
|
|
73
|
+
...userOptions,
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
const {highChart, ...wrapperClassNames} = classNames || {};
|
|
77
|
+
|
|
78
|
+
return (
|
|
79
|
+
<ChartWrapper
|
|
80
|
+
title={cardTitle}
|
|
81
|
+
ref={chartRef}
|
|
82
|
+
classNames={wrapperClassNames}
|
|
83
|
+
customExportOptions={customExportOptions}
|
|
84
|
+
headerActions={headerActions}
|
|
85
|
+
>
|
|
86
|
+
<HighchartsReact
|
|
87
|
+
highcharts={Highcharts}
|
|
88
|
+
containerProps={{
|
|
89
|
+
className: classify(css.lineChartContainer, highChart),
|
|
90
|
+
}}
|
|
91
|
+
ref={chartRef}
|
|
92
|
+
options={chartOptions}
|
|
93
|
+
/>
|
|
94
|
+
</ChartWrapper>
|
|
95
|
+
);
|
|
96
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
@value (colorFillPrimary) from '../../styles/variables/_color.css';
|
|
2
|
+
@value (size400, size660, sizeFluid) from '../../styles/variables/_size.css';
|
|
3
|
+
|
|
4
|
+
.wrapper {
|
|
5
|
+
display: flex;
|
|
6
|
+
flex-direction: column;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.lineChartContainer {
|
|
10
|
+
width: sizeFluid;
|
|
11
|
+
min-width: size660;
|
|
12
|
+
min-height: size400;
|
|
13
|
+
max-height: size400;
|
|
14
|
+
display: flex;
|
|
15
|
+
align-items: center;
|
|
16
|
+
justify-content: center;
|
|
17
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _LineChart = require("./LineChart");
|
|
7
|
+
Object.keys(_LineChart).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _LineChart[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _LineChart[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.SpiderChart = void 0;
|
|
7
|
+
var React = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _highcharts = _interopRequireDefault(require("highcharts"));
|
|
9
|
+
var _highchartsMore = _interopRequireDefault(require("highcharts/highcharts-more"));
|
|
10
|
+
var _highchartsReactOfficial = _interopRequireDefault(require("highcharts-react-official"));
|
|
11
|
+
var _charts = require("../../utils/charts");
|
|
12
|
+
var _classify = _interopRequireDefault(require("../../utils/classify"));
|
|
13
|
+
var _ChartWrapper = require("../ChartWrapper");
|
|
14
|
+
var _SpiderChartModule = _interopRequireDefault(require("./SpiderChart.module.css"));
|
|
15
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
17
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
18
|
+
|
|
19
|
+
//$FlowFixMe[untyped-import]
|
|
20
|
+
|
|
21
|
+
//$FlowFixMe[untyped-import]
|
|
22
|
+
|
|
23
|
+
//$FlowFixMe[untyped-import]
|
|
24
|
+
|
|
25
|
+
(0, _highchartsMore.default)(_highcharts.default);
|
|
26
|
+
const SpiderChart = _ref => {
|
|
27
|
+
let {
|
|
28
|
+
classNames,
|
|
29
|
+
cardTitle,
|
|
30
|
+
customExportOptions,
|
|
31
|
+
headerActions,
|
|
32
|
+
legend,
|
|
33
|
+
series,
|
|
34
|
+
xAxis: {
|
|
35
|
+
categories,
|
|
36
|
+
tickmarkPlacement = 'on',
|
|
37
|
+
lineWidth: xAxisLineWidth = 0,
|
|
38
|
+
...xAxisProps
|
|
39
|
+
} = {},
|
|
40
|
+
yAxis: {
|
|
41
|
+
gridLineInterpolation = 'polygon',
|
|
42
|
+
lineWidth: yAxisLineWidth = 0,
|
|
43
|
+
min: yAxisMin = 0,
|
|
44
|
+
...yAxisProps
|
|
45
|
+
} = {},
|
|
46
|
+
...userOptions
|
|
47
|
+
} = _ref;
|
|
48
|
+
const chartRef = React.useRef(null);
|
|
49
|
+
const [chartWidth, setChartWidth] = React.useState(0);
|
|
50
|
+
React.useLayoutEffect(() => {
|
|
51
|
+
setChartWidth(chartRef.current?.chart.plotWidth);
|
|
52
|
+
}, []);
|
|
53
|
+
const spiderSeries = series.map((seriesItem, index) => ({
|
|
54
|
+
...seriesItem,
|
|
55
|
+
name: seriesItem.name,
|
|
56
|
+
data: seriesItem.data,
|
|
57
|
+
pointPlacement: 'on',
|
|
58
|
+
color: (0, _charts.getDataVizColor)(index)
|
|
59
|
+
}));
|
|
60
|
+
const defaultSpiderChartOptions = (0, _charts.getSpiderChartOptions)();
|
|
61
|
+
|
|
62
|
+
//$FlowFixMe[cannot-spread-inexact]
|
|
63
|
+
const chartOptions = (0, _charts.mergeChartUserOptions)(defaultSpiderChartOptions, {
|
|
64
|
+
series: spiderSeries,
|
|
65
|
+
...userOptions
|
|
66
|
+
});
|
|
67
|
+
const {
|
|
68
|
+
highChart,
|
|
69
|
+
...wrapperClassNames
|
|
70
|
+
} = classNames || {};
|
|
71
|
+
return /*#__PURE__*/React.createElement(_ChartWrapper.ChartWrapper, {
|
|
72
|
+
title: cardTitle
|
|
73
|
+
//$FlowFixMe[incompatible-type]
|
|
74
|
+
,
|
|
75
|
+
ref: chartRef,
|
|
76
|
+
customExportOptions: customExportOptions,
|
|
77
|
+
classNames: wrapperClassNames,
|
|
78
|
+
headerActions: headerActions
|
|
79
|
+
}, /*#__PURE__*/React.createElement(_highchartsReactOfficial.default, {
|
|
80
|
+
highcharts: _highcharts.default,
|
|
81
|
+
ref: chartRef,
|
|
82
|
+
containerProps: {
|
|
83
|
+
className: (0, _classify.default)(_SpiderChartModule.default.spiderChartContainer, highChart)
|
|
84
|
+
},
|
|
85
|
+
options: chartOptions
|
|
86
|
+
}));
|
|
87
|
+
};
|
|
88
|
+
exports.SpiderChart = SpiderChart;
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
// @flow strict
|
|
2
|
+
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
//$FlowFixMe[untyped-import]
|
|
5
|
+
import Highcharts from 'highcharts';
|
|
6
|
+
//$FlowFixMe[untyped-import]
|
|
7
|
+
import HighChartsMore from 'highcharts/highcharts-more';
|
|
8
|
+
//$FlowFixMe[untyped-import]
|
|
9
|
+
import HighchartsReact from 'highcharts-react-official';
|
|
10
|
+
|
|
11
|
+
import {
|
|
12
|
+
getDataVizColor,
|
|
13
|
+
getSpiderChartOptions,
|
|
14
|
+
mergeChartUserOptions,
|
|
15
|
+
} from '../../utils/charts';
|
|
16
|
+
import classify from '../../utils/classify';
|
|
17
|
+
import type {ChartWrapperClassNames, ExportOptionType} from '../ChartWrapper';
|
|
18
|
+
import {ChartWrapper} from '../ChartWrapper';
|
|
19
|
+
|
|
20
|
+
import css from './SpiderChart.module.css';
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
HighChartsMore(Highcharts);
|
|
24
|
+
|
|
25
|
+
type ClassNames = $ReadOnly<{
|
|
26
|
+
...ChartWrapperClassNames,
|
|
27
|
+
highChart?: string,
|
|
28
|
+
}>;
|
|
29
|
+
|
|
30
|
+
type SpiderSeriesItem = {
|
|
31
|
+
name: string,
|
|
32
|
+
data: [],
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
export type SpiderChartProps = {
|
|
36
|
+
classNames?: ClassNames,
|
|
37
|
+
cardTitle?: React.Node,
|
|
38
|
+
customExportOptions?: Array<ExportOptionType> | null,
|
|
39
|
+
headerActions?: React.Node,
|
|
40
|
+
series: Array<SpiderSeriesItem>,
|
|
41
|
+
legend: {...},
|
|
42
|
+
xAxis: {
|
|
43
|
+
categories: Array<string>,
|
|
44
|
+
tickmarkPlacement: string,
|
|
45
|
+
lineWidth: number,
|
|
46
|
+
...
|
|
47
|
+
},
|
|
48
|
+
yAxis: {
|
|
49
|
+
gridLineInterpolation: 'circle' | 'polygon',
|
|
50
|
+
lineWidth: 0,
|
|
51
|
+
min: 0,
|
|
52
|
+
...
|
|
53
|
+
},
|
|
54
|
+
...
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
export const SpiderChart = ({
|
|
58
|
+
classNames,
|
|
59
|
+
cardTitle,
|
|
60
|
+
customExportOptions,
|
|
61
|
+
headerActions,
|
|
62
|
+
legend,
|
|
63
|
+
series,
|
|
64
|
+
xAxis: {
|
|
65
|
+
categories,
|
|
66
|
+
tickmarkPlacement = 'on',
|
|
67
|
+
lineWidth: xAxisLineWidth = 0,
|
|
68
|
+
...xAxisProps
|
|
69
|
+
} = {},
|
|
70
|
+
yAxis: {
|
|
71
|
+
gridLineInterpolation = 'polygon',
|
|
72
|
+
lineWidth: yAxisLineWidth = 0,
|
|
73
|
+
min: yAxisMin = 0,
|
|
74
|
+
...yAxisProps
|
|
75
|
+
} = {},
|
|
76
|
+
|
|
77
|
+
...userOptions
|
|
78
|
+
}: SpiderChartProps): React.Node => {
|
|
79
|
+
const chartRef = React.useRef(null);
|
|
80
|
+
const [chartWidth, setChartWidth] = React.useState(0);
|
|
81
|
+
|
|
82
|
+
React.useLayoutEffect(() => {
|
|
83
|
+
setChartWidth(chartRef.current?.chart.plotWidth);
|
|
84
|
+
}, []);
|
|
85
|
+
|
|
86
|
+
const spiderSeries = series.map((seriesItem, index) => ({
|
|
87
|
+
...seriesItem,
|
|
88
|
+
name: seriesItem.name,
|
|
89
|
+
data: seriesItem.data,
|
|
90
|
+
pointPlacement: 'on',
|
|
91
|
+
color: getDataVizColor(index),
|
|
92
|
+
}));
|
|
93
|
+
|
|
94
|
+
const defaultSpiderChartOptions = getSpiderChartOptions();
|
|
95
|
+
|
|
96
|
+
//$FlowFixMe[cannot-spread-inexact]
|
|
97
|
+
const chartOptions = mergeChartUserOptions(defaultSpiderChartOptions, {
|
|
98
|
+
series: spiderSeries,
|
|
99
|
+
...userOptions,
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
const {highChart, ...wrapperClassNames} = classNames || {};
|
|
103
|
+
|
|
104
|
+
return (
|
|
105
|
+
<ChartWrapper
|
|
106
|
+
title={cardTitle}
|
|
107
|
+
//$FlowFixMe[incompatible-type]
|
|
108
|
+
ref={chartRef}
|
|
109
|
+
customExportOptions={customExportOptions}
|
|
110
|
+
classNames={wrapperClassNames}
|
|
111
|
+
headerActions={headerActions}
|
|
112
|
+
>
|
|
113
|
+
<HighchartsReact
|
|
114
|
+
highcharts={Highcharts}
|
|
115
|
+
ref={chartRef}
|
|
116
|
+
containerProps={{
|
|
117
|
+
className: classify(css.spiderChartContainer, highChart),
|
|
118
|
+
}}
|
|
119
|
+
options={chartOptions}
|
|
120
|
+
/>
|
|
121
|
+
</ChartWrapper>
|
|
122
|
+
);
|
|
123
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
@value (colorFillPrimary) from '../../styles/variables/_color.css';
|
|
2
|
+
@value (size400, size540, size660, size880, sizeFluid) from '../../styles/variables/_size.css';
|
|
3
|
+
|
|
4
|
+
.wrapper {
|
|
5
|
+
display: flex;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.spiderChartContainer {
|
|
9
|
+
width: sizeFluid;
|
|
10
|
+
min-width: size660;
|
|
11
|
+
max-width: size880;
|
|
12
|
+
min-height: size400;
|
|
13
|
+
max-height: size540;
|
|
14
|
+
display: flex;
|
|
15
|
+
align-items: center;
|
|
16
|
+
justify-content: center;
|
|
17
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _SpiderChart = require("./SpiderChart");
|
|
7
|
+
Object.keys(_SpiderChart).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _SpiderChart[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _SpiderChart[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
package/lib/components/index.js
CHANGED
|
@@ -102,6 +102,17 @@ Object.keys(_Card).forEach(function (key) {
|
|
|
102
102
|
}
|
|
103
103
|
});
|
|
104
104
|
});
|
|
105
|
+
var _Charts = require("./Charts");
|
|
106
|
+
Object.keys(_Charts).forEach(function (key) {
|
|
107
|
+
if (key === "default" || key === "__esModule") return;
|
|
108
|
+
if (key in exports && exports[key] === _Charts[key]) return;
|
|
109
|
+
Object.defineProperty(exports, key, {
|
|
110
|
+
enumerable: true,
|
|
111
|
+
get: function () {
|
|
112
|
+
return _Charts[key];
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
});
|
|
105
116
|
var _Checkbox = require("./Checkbox");
|
|
106
117
|
Object.keys(_Checkbox).forEach(function (key) {
|
|
107
118
|
if (key === "default" || key === "__esModule") return;
|
package/lib/styles/index.css
CHANGED
|
@@ -128,6 +128,22 @@
|
|
|
128
128
|
|
|
129
129
|
@value colorSubMenuStar: #DFBD0D;
|
|
130
130
|
|
|
131
|
+
@value colorDataViz1: #8dbaf8;
|
|
132
|
+
|
|
133
|
+
@value colorDataViz2: #b4a2e8;
|
|
134
|
+
|
|
135
|
+
@value colorDataViz3: #8bcfad;
|
|
136
|
+
|
|
137
|
+
@value colorDataViz4: #f0c48f;
|
|
138
|
+
|
|
139
|
+
@value colorDataViz5: #f297ad;
|
|
140
|
+
|
|
141
|
+
@value colorDataViz6: #B0F0E3;
|
|
142
|
+
|
|
143
|
+
@value colorDataViz7: #F5B8E1;
|
|
144
|
+
|
|
145
|
+
@value colorDataViz8: #F5EBB4;
|
|
146
|
+
|
|
131
147
|
@value colorGrayLightest: #EBEBEB;
|
|
132
148
|
|
|
133
149
|
@value colorNeutral: #706F9B;
|
|
@@ -194,7 +210,7 @@
|
|
|
194
210
|
|
|
195
211
|
@value elevationToast: 60;
|
|
196
212
|
|
|
197
|
-
@value fontFamilyCentra: "Centra
|
|
213
|
+
@value fontFamilyCentra: "Centra No 2";
|
|
198
214
|
|
|
199
215
|
@value fontWeightBook: 400;
|
|
200
216
|
|
|
@@ -400,6 +416,8 @@
|
|
|
400
416
|
|
|
401
417
|
@value size160: 160px;
|
|
402
418
|
|
|
419
|
+
@value size180: 180px;
|
|
420
|
+
|
|
403
421
|
@value size228: 228px;
|
|
404
422
|
|
|
405
423
|
@value size240: 240px;
|
|
@@ -422,12 +440,18 @@
|
|
|
422
440
|
|
|
423
441
|
@value size500: 500px;
|
|
424
442
|
|
|
443
|
+
@value size540: 540px;
|
|
444
|
+
|
|
425
445
|
@value size580: 580px;
|
|
426
446
|
|
|
427
447
|
@value size640: 640px;
|
|
428
448
|
|
|
449
|
+
@value size660: 660px;
|
|
450
|
+
|
|
429
451
|
@value size720: 720px;
|
|
430
452
|
|
|
453
|
+
@value size880: 880px;
|
|
454
|
+
|
|
431
455
|
@value size960: 960px;
|
|
432
456
|
|
|
433
457
|
@value size1280: 1280px;
|
package/lib/styles/index.js
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
7
|
-
exports.
|
|
8
|
-
exports.spaceXXSmall = exports.spaceXXLarge = exports.spaceXSmall = exports.spaceXLarge = exports.spaceSmall = exports.spaceNone = exports.spaceNegHalfFluid = exports.spaceNegFluid = exports.spaceMedium = exports.spaceLarge = exports.spaceHalfFluid = exports.spaceFluid = exports.sizeFullViewportWidth = exports.sizeFullViewportHeight = exports.sizeFluid = exports.size960 = exports.size90 = exports.size8 = exports.size720 = exports.size70 = exports.size640 = exports.size60 = exports.size580 = exports.size58 = exports.size500 = exports.size50 = exports.size5 = exports.size480 = exports.size48 = exports.size42 = exports.size400 = exports.size40 = void 0;
|
|
6
|
+
exports.elevationBackdrop = exports.colorWarningLightest = exports.colorWarningLight = exports.colorWarningDarkest = exports.colorWarningDark = exports.colorWarning = exports.colorTooltipFill = exports.colorTextWarning = exports.colorTextTertiary = exports.colorTextSuccess = exports.colorTextSecondary = exports.colorTextPrimary = exports.colorTextNeutral = exports.colorTextInverseSecondary = exports.colorTextInversePrimary = exports.colorTextInformation = exports.colorTextFavorite = exports.colorTextDisabled = exports.colorTextDanger = exports.colorTextClickable = exports.colorSuccessLightest = exports.colorSuccessLight = exports.colorSuccessDarkest = exports.colorSuccessDark = exports.colorSuccess = exports.colorSubMenuStar = exports.colorSubMenuBackgroundDefault = exports.colorSideMenuIconDefault = exports.colorSideMenuIconActive = exports.colorNeutralLightest = exports.colorNeutralLight = exports.colorNeutralDarkest = exports.colorNeutralDark = exports.colorNeutral = exports.colorInformationLightest = exports.colorInformationLight = exports.colorInformationDarkest = exports.colorInformationDark = exports.colorInformation = exports.colorGrayLightest = exports.colorFocusPrimary = exports.colorFocusDanger = exports.colorFillSecondary = exports.colorFillPrimary = exports.colorFillNone = exports.colorFillInversePrimary = exports.colorFillDisabled = exports.colorDataViz8 = exports.colorDataViz7 = exports.colorDataViz6 = exports.colorDataViz5 = exports.colorDataViz4 = exports.colorDataViz3 = exports.colorDataViz2 = exports.colorDataViz1 = exports.colorDangerLightest = exports.colorDangerLight = exports.colorDangerDarkest = exports.colorDangerDark = exports.colorDanger = exports.colorButtonFillTertiaryPressed = exports.colorButtonFillTertiaryHovered = exports.colorButtonFillTertiaryEnabled = exports.colorButtonFillTableActionPressed = exports.colorButtonFillTableActionHovered = exports.colorButtonFillTableActionEnabled = exports.colorButtonFillTableActionBorder = exports.colorButtonFillSecondaryPressed = exports.colorButtonFillSecondaryHovered = exports.colorButtonFillSecondaryEnabled = exports.colorButtonFillPrimaryPressed = exports.colorButtonFillPrimaryHovered = exports.colorButtonFillPrimaryEnabled = exports.colorButtonFillGhostPressed = exports.colorButtonFillGhostHovered = exports.colorButtonFillGhostEnabled = exports.colorButtonFillDangerPressed = exports.colorButtonFillDangerHovered = exports.colorButtonFillDangerEnabled = exports.colorBorderTertiary = exports.colorBorderSecondary = exports.colorBorderPrimary = exports.colorBorderDanger = exports.colorBackgroundTertiary = exports.colorBackgroundSecondary = exports.colorBackgroundPrimary = exports.colorBackgroundBrand = exports.colorBackdropFill = exports.borderWidthTertiary = exports.borderWidthSecondary = exports.borderWidthPrimary = exports.borderWidthNone = exports.borderRadiusXSmall = exports.borderRadiusXLarge = exports.borderRadiusSmall = exports.borderRadiusRadioButton = exports.borderRadiusNone = exports.borderRadiusMedium = exports.borderRadiusLarge = exports.borderRadiusCircle = void 0;
|
|
7
|
+
exports.size260 = exports.size26 = exports.size252 = exports.size240 = exports.size24 = exports.size228 = exports.size22 = exports.size20 = exports.size2 = exports.size180 = exports.size18 = exports.size160 = exports.size140 = exports.size1280 = exports.size125 = exports.size12 = exports.size110 = exports.size100 = exports.size10 = exports.shadowBoxShadow4Y = exports.shadowBoxShadow4X = exports.shadowBoxShadow4Type = exports.shadowBoxShadow4Spread = exports.shadowBoxShadow4Color = exports.shadowBoxShadow4Blur = exports.shadowBoxShadow3Y = exports.shadowBoxShadow3X = exports.shadowBoxShadow3Type = exports.shadowBoxShadow3Spread = exports.shadowBoxShadow3Color = exports.shadowBoxShadow3Blur = exports.shadowBoxShadow2Y = exports.shadowBoxShadow2X = exports.shadowBoxShadow2Type = exports.shadowBoxShadow2Spread = exports.shadowBoxShadow2Color = exports.shadowBoxShadow2Blur = exports.shadowBoxShadow1Y = exports.shadowBoxShadow1X = exports.shadowBoxShadow1Type = exports.shadowBoxShadow1Spread = exports.shadowBoxShadow1Color = exports.shadowBoxShadow1Blur = exports.opacity95 = exports.opacity90 = exports.opacity85 = exports.opacity80 = exports.opacity70 = exports.opacity60 = exports.opacity50 = exports.opacity5 = exports.opacity40 = exports.opacity30 = exports.opacity20 = exports.opacity15 = exports.opacity100 = exports.opacity10 = exports.opacity0 = exports.motionEaseInEaseOut = exports.motionDurationSlowest = exports.motionDurationSlower = exports.motionDurationSlow = exports.motionDurationNormal = exports.motionDurationFast = exports.fontWeightMedium = exports.fontWeightBook = exports.fontTextDecorationNone = exports.fontTextCaseNone = exports.fontSize46 = exports.fontSize36 = exports.fontSize26 = exports.fontSize24 = exports.fontSize18 = exports.fontSize16 = exports.fontSize14 = exports.fontSize13 = exports.fontSize12 = exports.fontParagraphSpacing0 = exports.fontLineHeight170 = exports.fontLineHeight150 = exports.fontLineHeight140 = exports.fontLineHeight130 = exports.fontLineHeight125 = exports.fontLineHeight120 = exports.fontLineHeight100 = exports.fontLetterSpacingMinus4 = exports.fontLetterSpacingMinus3 = exports.fontLetterSpacingMinus2 = exports.fontLetterSpacingMinus1 = exports.fontLetterSpacing4 = exports.fontLetterSpacing2 = exports.fontLetterSpacing1 = exports.fontLetterSpacing0 = exports.fontFamilyCentra = exports.elevationTooltip = exports.elevationToast = exports.elevationNone = exports.elevationModal = exports.elevationMenu = exports.elevationCard = void 0;
|
|
8
|
+
exports.spaceXXSmall = exports.spaceXXLarge = exports.spaceXSmall = exports.spaceXLarge = exports.spaceSmall = exports.spaceNone = exports.spaceNegHalfFluid = exports.spaceNegFluid = exports.spaceMedium = exports.spaceLarge = exports.spaceHalfFluid = exports.spaceFluid = exports.sizeFullViewportWidth = exports.sizeFullViewportHeight = exports.sizeFluid = exports.size960 = exports.size90 = exports.size880 = exports.size8 = exports.size720 = exports.size70 = exports.size660 = exports.size640 = exports.size60 = exports.size580 = exports.size58 = exports.size540 = exports.size500 = exports.size50 = exports.size5 = exports.size480 = exports.size48 = exports.size42 = exports.size400 = exports.size40 = exports.size4 = exports.size380 = exports.size38 = exports.size36 = exports.size34 = exports.size320 = exports.size300 = exports.size30 = exports.size276 = void 0;
|
|
9
9
|
|
|
10
10
|
const borderWidthNone = '0px';
|
|
11
11
|
exports.borderWidthNone = borderWidthNone;
|
|
@@ -137,6 +137,22 @@ const colorSubMenuBackgroundDefault = '#1F1F36';
|
|
|
137
137
|
exports.colorSubMenuBackgroundDefault = colorSubMenuBackgroundDefault;
|
|
138
138
|
const colorSubMenuStar = '#DFBD0D';
|
|
139
139
|
exports.colorSubMenuStar = colorSubMenuStar;
|
|
140
|
+
const colorDataViz1 = '#8dbaf8';
|
|
141
|
+
exports.colorDataViz1 = colorDataViz1;
|
|
142
|
+
const colorDataViz2 = '#b4a2e8';
|
|
143
|
+
exports.colorDataViz2 = colorDataViz2;
|
|
144
|
+
const colorDataViz3 = '#8bcfad';
|
|
145
|
+
exports.colorDataViz3 = colorDataViz3;
|
|
146
|
+
const colorDataViz4 = '#f0c48f';
|
|
147
|
+
exports.colorDataViz4 = colorDataViz4;
|
|
148
|
+
const colorDataViz5 = '#f297ad';
|
|
149
|
+
exports.colorDataViz5 = colorDataViz5;
|
|
150
|
+
const colorDataViz6 = '#B0F0E3';
|
|
151
|
+
exports.colorDataViz6 = colorDataViz6;
|
|
152
|
+
const colorDataViz7 = '#F5B8E1';
|
|
153
|
+
exports.colorDataViz7 = colorDataViz7;
|
|
154
|
+
const colorDataViz8 = '#F5EBB4';
|
|
155
|
+
exports.colorDataViz8 = colorDataViz8;
|
|
140
156
|
const colorGrayLightest = '#EBEBEB';
|
|
141
157
|
exports.colorGrayLightest = colorGrayLightest;
|
|
142
158
|
const colorNeutral = '#706F9B';
|
|
@@ -203,7 +219,7 @@ const elevationModal = '40';
|
|
|
203
219
|
exports.elevationModal = elevationModal;
|
|
204
220
|
const elevationToast = '60';
|
|
205
221
|
exports.elevationToast = elevationToast;
|
|
206
|
-
const fontFamilyCentra = '"Centra
|
|
222
|
+
const fontFamilyCentra = '"Centra No 2"';
|
|
207
223
|
exports.fontFamilyCentra = fontFamilyCentra;
|
|
208
224
|
const fontWeightBook = '400';
|
|
209
225
|
exports.fontWeightBook = fontWeightBook;
|
|
@@ -409,6 +425,8 @@ const size140 = '140px';
|
|
|
409
425
|
exports.size140 = size140;
|
|
410
426
|
const size160 = '160px';
|
|
411
427
|
exports.size160 = size160;
|
|
428
|
+
const size180 = '180px';
|
|
429
|
+
exports.size180 = size180;
|
|
412
430
|
const size228 = '228px';
|
|
413
431
|
exports.size228 = size228;
|
|
414
432
|
const size240 = '240px';
|
|
@@ -431,12 +449,18 @@ const size480 = '480px';
|
|
|
431
449
|
exports.size480 = size480;
|
|
432
450
|
const size500 = '500px';
|
|
433
451
|
exports.size500 = size500;
|
|
452
|
+
const size540 = '540px';
|
|
453
|
+
exports.size540 = size540;
|
|
434
454
|
const size580 = '580px';
|
|
435
455
|
exports.size580 = size580;
|
|
436
456
|
const size640 = '640px';
|
|
437
457
|
exports.size640 = size640;
|
|
458
|
+
const size660 = '660px';
|
|
459
|
+
exports.size660 = size660;
|
|
438
460
|
const size720 = '720px';
|
|
439
461
|
exports.size720 = size720;
|
|
462
|
+
const size880 = '880px';
|
|
463
|
+
exports.size880 = size880;
|
|
440
464
|
const size960 = '960px';
|
|
441
465
|
exports.size960 = size960;
|
|
442
466
|
const size1280 = '1280px';
|