@pie-lib/charting 5.36.3-next.0 → 5.36.3-next.162
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -87
- package/esm/package.json +3 -0
- package/lib/actions-button.js +60 -90
- package/lib/actions-button.js.map +1 -1
- package/lib/axes.js +162 -238
- package/lib/axes.js.map +1 -1
- package/lib/bars/bar.js +13 -41
- package/lib/bars/bar.js.map +1 -1
- package/lib/bars/common/bars.js +61 -137
- package/lib/bars/common/bars.js.map +1 -1
- package/lib/bars/common/correct-check-icon.js +5 -6
- package/lib/bars/common/correct-check-icon.js.map +1 -1
- package/lib/bars/histogram.js +13 -41
- package/lib/bars/histogram.js.map +1 -1
- package/lib/chart-setup.js +119 -195
- package/lib/chart-setup.js.map +1 -1
- package/lib/chart-type.js +52 -43
- package/lib/chart-type.js.map +1 -1
- package/lib/chart-types.js +1 -10
- package/lib/chart-types.js.map +1 -1
- package/lib/chart.js +73 -151
- package/lib/chart.js.map +1 -1
- package/lib/common/correctness-indicators.js +109 -52
- package/lib/common/correctness-indicators.js.map +1 -1
- package/lib/common/drag-handle.js +65 -108
- package/lib/common/drag-handle.js.map +1 -1
- package/lib/common/drag-icon.js +12 -12
- package/lib/common/drag-icon.js.map +1 -1
- package/lib/common/styles.js +6 -24
- package/lib/common/styles.js.map +1 -1
- package/lib/grid.js +43 -83
- package/lib/grid.js.map +1 -1
- package/lib/index.js +0 -6
- package/lib/index.js.map +1 -1
- package/lib/key-legend.js +63 -87
- package/lib/key-legend.js.map +1 -1
- package/lib/line/common/drag-handle.js +72 -100
- package/lib/line/common/drag-handle.js.map +1 -1
- package/lib/line/common/line.js +50 -96
- package/lib/line/common/line.js.map +1 -1
- package/lib/line/line-cross.js +79 -89
- package/lib/line/line-cross.js.map +1 -1
- package/lib/line/line-dot.js +58 -76
- package/lib/line/line-dot.js.map +1 -1
- package/lib/mark-label.js +84 -119
- package/lib/mark-label.js.map +1 -1
- package/lib/plot/common/plot.js +90 -148
- package/lib/plot/common/plot.js.map +1 -1
- package/lib/plot/dot.js +32 -58
- package/lib/plot/dot.js.map +1 -1
- package/lib/plot/line.js +39 -64
- package/lib/plot/line.js.map +1 -1
- package/lib/tool-menu.js +47 -83
- package/lib/tool-menu.js.map +1 -1
- package/lib/utils.js +31 -86
- package/lib/utils.js.map +1 -1
- package/package.json +30 -16
- package/src/__tests__/axes.test.jsx +85 -100
- package/src/__tests__/chart-type.test.jsx +5 -11
- package/src/__tests__/chart.test.jsx +41 -50
- package/src/__tests__/grid.test.jsx +23 -11
- package/src/__tests__/mark-label.test.jsx +13 -11
- package/src/__tests__/utils.js +8 -2
- package/src/actions-button.jsx +44 -39
- package/src/axes.jsx +67 -81
- package/src/bars/__tests__/bar.test.jsx +19 -11
- package/src/bars/__tests__/histogram.test.jsx +19 -12
- package/src/bars/common/__tests__/bars.test.jsx +23 -24
- package/src/bars/common/bars.jsx +42 -69
- package/src/bars/common/correct-check-icon.jsx +5 -0
- package/src/chart-setup.jsx +75 -88
- package/src/chart-type.js +45 -22
- package/src/chart.jsx +19 -34
- package/src/common/__tests__/drag-handle.test.jsx +16 -45
- package/src/common/correctness-indicators.jsx +91 -13
- package/src/common/drag-handle.jsx +44 -64
- package/src/common/drag-icon.jsx +9 -2
- package/src/common/styles.js +1 -1
- package/src/grid.jsx +10 -14
- package/src/key-legend.jsx +62 -60
- package/src/line/__tests__/line-cross.test.jsx +16 -13
- package/src/line/__tests__/line-dot.test.jsx +16 -13
- package/src/line/__tests__/utils.js +8 -2
- package/src/line/common/__tests__/drag-handle.test.jsx +20 -45
- package/src/line/common/__tests__/line.test.jsx +27 -30
- package/src/line/common/drag-handle.jsx +61 -55
- package/src/line/common/line.jsx +21 -11
- package/src/line/line-cross.js +39 -14
- package/src/line/line-dot.js +27 -32
- package/src/mark-label.jsx +51 -47
- package/src/plot/__tests__/dot.test.jsx +19 -12
- package/src/plot/__tests__/line.test.jsx +19 -12
- package/src/plot/common/__tests__/plot.test.jsx +23 -24
- package/src/plot/common/plot.jsx +29 -24
- package/src/plot/dot.js +11 -4
- package/src/plot/line.js +16 -8
- package/src/tool-menu.jsx +26 -30
- package/src/utils.js +13 -9
- package/src/__tests__/__snapshots__/axes.test.jsx.snap +0 -569
- package/src/__tests__/__snapshots__/chart-type.test.jsx.snap +0 -14
- package/src/__tests__/__snapshots__/chart.test.jsx.snap +0 -595
- package/src/__tests__/__snapshots__/grid.test.jsx.snap +0 -72
- package/src/__tests__/__snapshots__/mark-label.test.jsx.snap +0 -73
- package/src/bars/__tests__/__snapshots__/bar.test.jsx.snap +0 -43
- package/src/bars/__tests__/__snapshots__/histogram.test.jsx.snap +0 -45
- package/src/bars/common/__tests__/__snapshots__/bars.test.jsx.snap +0 -110
- package/src/common/__tests__/__snapshots__/drag-handle.test.jsx.snap +0 -48
- package/src/line/__tests__/__snapshots__/line-cross.test.jsx.snap +0 -45
- package/src/line/__tests__/__snapshots__/line-dot.test.jsx.snap +0 -45
- package/src/line/common/__tests__/__snapshots__/drag-handle.test.jsx.snap +0 -49
- package/src/line/common/__tests__/__snapshots__/line.test.jsx.snap +0 -143
- package/src/plot/__tests__/__snapshots__/dot.test.jsx.snap +0 -45
- package/src/plot/__tests__/__snapshots__/line.test.jsx.snap +0 -45
- package/src/plot/common/__tests__/__snapshots__/plot.test.jsx.snap +0 -97
package/lib/tool-menu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"tool-menu.js","names":["_react","_interopRequireDefault","require","_propTypes","_renderUi","_styles","_Button","_translator","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","ownKeys","r","Object","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","translator","Translator","StyledMiniButton","styled","Button","_ref","theme","selected","disabled","color","text","border","concat","secondary","fontSize","typography","backgroundColor","background","primaryDark","primary","MiniButton","exports","props","value","onClick","createElement","size","key","variant","propTypes","PropTypes","bool","className","string","func","ToolMenu","_React$Component","_classCallCheck2","_inherits2","_createClass2","render","_this$props","addCategory","language","lng","React","Component","_default"],"sources":["../src/tool-menu.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { color } from '@pie-lib/render-ui';\n\nimport { styled } from '@mui/material/styles';\nimport Button from '@mui/material/Button';\nimport Translator from '@pie-lib/translator';\n\nconst { translator } = Translator;\n\nconst StyledMiniButton = styled(Button)(({ theme, selected, disabled }) => ({\n color: color.text(),\n border: `1px solid ${color.secondary()}`,\n fontSize: theme.typography.fontSize,\n ...(selected && {\n backgroundColor: color.background(),\n '& span': {\n color: color.primaryDark(),\n },\n }),\n ...(!selected &&\n !disabled && {\n '& span': {\n color: color.primary(),\n },\n backgroundColor: color.background(),\n }),\n ...(disabled && {\n '& span': {\n color: color.primary(),\n },\n backgroundColor: color.disabled(),\n }),\n}));\n\nexport const MiniButton = (props) => {\n const { disabled, selected, value, onClick } = props;\n\n return (\n <StyledMiniButton\n size=\"small\"\n disabled={disabled}\n selected={selected}\n color={selected ? 'secondary' : 'default'}\n value={value}\n key={value}\n variant=\"outlined\"\n onClick={onClick}\n >\n {value}\n </StyledMiniButton>\n );\n};\nMiniButton.propTypes = {\n disabled: PropTypes.bool,\n className: PropTypes.string,\n selected: PropTypes.bool,\n value: PropTypes.string,\n onClick: PropTypes.func,\n};\n\nexport class ToolMenu extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n addCategory: PropTypes.func,\n disabled: PropTypes.bool,\n language: PropTypes.string,\n };\n\n static defaultProps = {};\n\n render() {\n const { className, disabled, addCategory, language } = this.props;\n\n return (\n <div className={className}>\n {!disabled && (\n <MiniButton value={translator.t('charting.addCategory', { lng: language })} onClick={addCategory} />\n )}\n </div>\n );\n }\n}\n\nexport default ToolMenu;\n"],"mappings":"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","ignoreList":[]}
|
package/lib/utils.js
CHANGED
|
@@ -1,111 +1,82 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.tickCount = exports.point = exports.getTopPadding = exports.getTickValues = exports.getScale = exports.getRotateAngle = exports.getGridLinesAndAxisByChartType = exports.getDomainAndRangeByChartType = exports.getAdjustedX = exports.dataToXBand = exports.bounds = exports.bandKey = void 0;
|
|
9
|
-
|
|
10
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
-
|
|
12
|
-
var _scale = require("@vx/scale");
|
|
13
|
-
|
|
9
|
+
var _scale = require("@visx/scale");
|
|
14
10
|
var _plot = require("@pie-lib/plot");
|
|
15
|
-
|
|
16
|
-
function
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
var
|
|
21
|
-
exports.tickCount = tickCount;
|
|
22
|
-
var bounds = _plot.utils.bounds;
|
|
23
|
-
exports.bounds = bounds;
|
|
24
|
-
var point = _plot.utils.point;
|
|
25
|
-
exports.point = point;
|
|
26
|
-
|
|
27
|
-
var bandKey = function bandKey(d, index) {
|
|
11
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
12
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13
|
+
var tickCount = exports.tickCount = _plot.utils.tickCount;
|
|
14
|
+
var bounds = exports.bounds = _plot.utils.bounds;
|
|
15
|
+
var point = exports.point = _plot.utils.point;
|
|
16
|
+
var bandKey = exports.bandKey = function bandKey(d, index) {
|
|
28
17
|
return "".concat(index, "-").concat(d.label || '-');
|
|
29
18
|
};
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
var dataToXBand = function dataToXBand(scaleX, data, width, type) {
|
|
19
|
+
var dataToXBand = exports.dataToXBand = function dataToXBand(scaleX, data, width, type) {
|
|
20
|
+
var chartWidth = width || 400; // fallback
|
|
21
|
+
var domain = data && data.length ? data.map(bandKey) : ['default'];
|
|
34
22
|
switch (type) {
|
|
35
23
|
case 'bar':
|
|
36
24
|
case 'dotPlot':
|
|
37
25
|
case 'linePlot':
|
|
38
26
|
return (0, _scale.scaleBand)({
|
|
39
|
-
|
|
40
|
-
domain:
|
|
27
|
+
range: [0, chartWidth],
|
|
28
|
+
domain: domain,
|
|
41
29
|
padding: 0.2
|
|
42
30
|
});
|
|
43
|
-
|
|
44
31
|
case 'histogram':
|
|
45
32
|
return (0, _scale.scaleBand)({
|
|
46
|
-
|
|
47
|
-
domain:
|
|
33
|
+
range: [0, chartWidth],
|
|
34
|
+
domain: domain,
|
|
48
35
|
padding: 0
|
|
49
36
|
});
|
|
50
|
-
|
|
51
37
|
case 'lineCross':
|
|
52
38
|
case 'lineDot':
|
|
53
39
|
return (0, _scale.scalePoint)({
|
|
54
|
-
domain:
|
|
55
|
-
|
|
40
|
+
domain: domain,
|
|
41
|
+
range: [0, chartWidth]
|
|
56
42
|
});
|
|
57
|
-
|
|
58
43
|
default:
|
|
59
44
|
return (0, _scale.scaleBand)({
|
|
60
|
-
range: [0,
|
|
61
|
-
domain:
|
|
45
|
+
range: [0, chartWidth],
|
|
46
|
+
domain: domain,
|
|
62
47
|
padding: 0
|
|
63
48
|
});
|
|
64
49
|
}
|
|
65
50
|
};
|
|
66
|
-
|
|
67
|
-
exports.dataToXBand = dataToXBand;
|
|
68
|
-
|
|
69
|
-
var getTickValues = function getTickValues() {
|
|
51
|
+
var getTickValues = exports.getTickValues = function getTickValues() {
|
|
70
52
|
var prop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
71
53
|
var tickValues = [];
|
|
72
54
|
var tickVal = prop.min;
|
|
73
|
-
|
|
74
55
|
while (tickVal <= prop.max) {
|
|
75
56
|
tickValues.push(tickVal);
|
|
76
57
|
tickVal = Math.round((tickVal + prop.step) * 10000) / 10000;
|
|
77
58
|
}
|
|
78
|
-
|
|
79
59
|
return tickValues;
|
|
80
60
|
};
|
|
81
|
-
|
|
82
|
-
exports.getTickValues = getTickValues;
|
|
83
|
-
|
|
84
|
-
var getDomainAndRangeByChartType = function getDomainAndRangeByChartType(domain, range, chartType) {
|
|
61
|
+
var getDomainAndRangeByChartType = exports.getDomainAndRangeByChartType = function getDomainAndRangeByChartType(domain, range, chartType) {
|
|
85
62
|
var _ref = range || {},
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
63
|
+
step = _ref.step,
|
|
64
|
+
labelStep = _ref.labelStep,
|
|
65
|
+
min = _ref.min,
|
|
66
|
+
max = _ref.max;
|
|
91
67
|
if (!min) {
|
|
92
68
|
min = 0;
|
|
93
69
|
}
|
|
94
|
-
|
|
95
70
|
if (!max || max < 0) {
|
|
96
71
|
max = range.min + 1;
|
|
97
72
|
}
|
|
98
|
-
|
|
99
73
|
if (!step) {
|
|
100
74
|
step = labelStep || 1;
|
|
101
75
|
}
|
|
102
|
-
|
|
103
76
|
if (!labelStep || isNaN(labelStep) && step) {
|
|
104
77
|
labelStep = step || 1;
|
|
105
78
|
}
|
|
106
|
-
|
|
107
79
|
range.max = max;
|
|
108
|
-
|
|
109
80
|
switch (chartType) {
|
|
110
81
|
// if chart is dot plot or line plot, we should ignore step and make sure that min & max are integer values
|
|
111
82
|
case 'dotPlot':
|
|
@@ -128,7 +99,6 @@ var getDomainAndRangeByChartType = function getDomainAndRangeByChartType(domain,
|
|
|
128
99
|
})
|
|
129
100
|
};
|
|
130
101
|
}
|
|
131
|
-
|
|
132
102
|
default:
|
|
133
103
|
return {
|
|
134
104
|
domain: _objectSpread(_objectSpread({}, domain), {}, {
|
|
@@ -144,10 +114,7 @@ var getDomainAndRangeByChartType = function getDomainAndRangeByChartType(domain,
|
|
|
144
114
|
};
|
|
145
115
|
}
|
|
146
116
|
};
|
|
147
|
-
|
|
148
|
-
exports.getDomainAndRangeByChartType = getDomainAndRangeByChartType;
|
|
149
|
-
|
|
150
|
-
var getGridLinesAndAxisByChartType = function getGridLinesAndAxisByChartType(range, chartType) {
|
|
117
|
+
var getGridLinesAndAxisByChartType = exports.getGridLinesAndAxisByChartType = function getGridLinesAndAxisByChartType(range, chartType) {
|
|
151
118
|
switch (chartType) {
|
|
152
119
|
case 'lineDot':
|
|
153
120
|
case 'lineCross':
|
|
@@ -156,7 +123,6 @@ var getGridLinesAndAxisByChartType = function getGridLinesAndAxisByChartType(ran
|
|
|
156
123
|
horizontalLines: getTickValues(range),
|
|
157
124
|
leftAxis: true
|
|
158
125
|
};
|
|
159
|
-
|
|
160
126
|
case 'dotPlot':
|
|
161
127
|
case 'linePlot':
|
|
162
128
|
return {
|
|
@@ -164,7 +130,6 @@ var getGridLinesAndAxisByChartType = function getGridLinesAndAxisByChartType(ran
|
|
|
164
130
|
horizontalLines: [],
|
|
165
131
|
leftAxis: false
|
|
166
132
|
};
|
|
167
|
-
|
|
168
133
|
default:
|
|
169
134
|
return {
|
|
170
135
|
verticalLines: [],
|
|
@@ -173,41 +138,28 @@ var getGridLinesAndAxisByChartType = function getGridLinesAndAxisByChartType(ran
|
|
|
173
138
|
};
|
|
174
139
|
}
|
|
175
140
|
};
|
|
176
|
-
|
|
177
|
-
exports.getGridLinesAndAxisByChartType = getGridLinesAndAxisByChartType;
|
|
178
|
-
|
|
179
|
-
var getRotateAngle = function getRotateAngle(fontSize, height) {
|
|
141
|
+
var getRotateAngle = exports.getRotateAngle = function getRotateAngle(fontSize, height) {
|
|
180
142
|
if (height >= fontSize * 2) {
|
|
181
143
|
return 25;
|
|
182
144
|
}
|
|
183
|
-
|
|
184
145
|
return 0;
|
|
185
146
|
};
|
|
186
|
-
|
|
187
|
-
exports.getRotateAngle = getRotateAngle;
|
|
188
|
-
|
|
189
|
-
var getTopPadding = function getTopPadding(barWidth) {
|
|
147
|
+
var getTopPadding = exports.getTopPadding = function getTopPadding(barWidth) {
|
|
190
148
|
if (barWidth < 30) {
|
|
191
149
|
return 50;
|
|
192
150
|
}
|
|
193
|
-
|
|
194
151
|
if (barWidth < 40) {
|
|
195
152
|
return 30;
|
|
196
153
|
}
|
|
197
|
-
|
|
198
154
|
if (barWidth < 60) {
|
|
199
155
|
return 15;
|
|
200
156
|
}
|
|
201
|
-
|
|
202
157
|
return 0;
|
|
203
|
-
};
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
exports.getTopPadding = getTopPadding;
|
|
158
|
+
};
|
|
207
159
|
|
|
208
|
-
|
|
160
|
+
// This function calculates the transformation scale for SVG and the icon's vertical distance from its category
|
|
161
|
+
var getScale = exports.getScale = function getScale(width) {
|
|
209
162
|
var scale, deltay;
|
|
210
|
-
|
|
211
163
|
if (width > 91) {
|
|
212
164
|
scale = 1.3;
|
|
213
165
|
deltay = -55;
|
|
@@ -222,23 +174,16 @@ var getScale = function getScale(width) {
|
|
|
222
174
|
deltay = -20;
|
|
223
175
|
} else {
|
|
224
176
|
scale = 0.5 * Math.pow(0.98, 34 - width); // 0.98 is the reduction factor. Adjust to control scaling.
|
|
225
|
-
|
|
226
177
|
deltay = -15;
|
|
227
178
|
}
|
|
228
|
-
|
|
229
179
|
return {
|
|
230
180
|
scale: scale,
|
|
231
181
|
deltay: deltay
|
|
232
182
|
};
|
|
233
183
|
};
|
|
234
|
-
|
|
235
|
-
exports.getScale = getScale;
|
|
236
|
-
|
|
237
|
-
var getAdjustedX = function getAdjustedX(width, scaleValue) {
|
|
184
|
+
var getAdjustedX = exports.getAdjustedX = function getAdjustedX(width, scaleValue) {
|
|
238
185
|
var innerWidthOriginal = 57;
|
|
239
186
|
var effectiveInnerWidth = innerWidthOriginal * scaleValue;
|
|
240
187
|
return (width - effectiveInnerWidth) / 2;
|
|
241
188
|
};
|
|
242
|
-
|
|
243
|
-
exports.getAdjustedX = getAdjustedX;
|
|
244
189
|
//# sourceMappingURL=utils.js.map
|
package/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils.js"],"names":["tickCount","utils","bounds","point","bandKey","d","index","label","dataToXBand","scaleX","data","width","type","rangeRound","domain","map","padding","range","getTickValues","prop","tickValues","tickVal","min","max","push","Math","round","step","getDomainAndRangeByChartType","chartType","labelStep","isNaN","intMin","intMax","getGridLinesAndAxisByChartType","verticalLines","undefined","horizontalLines","leftAxis","getRotateAngle","fontSize","height","getTopPadding","barWidth","getScale","scale","deltay","pow","getAdjustedX","scaleValue","innerWidthOriginal","effectiveInnerWidth"],"mappings":";;;;;;;;;;;AAAA;;AACA;;;;;;AAEO,IAAMA,SAAS,GAAGC,YAAMD,SAAxB;;AACA,IAAME,MAAM,GAAGD,YAAMC,MAArB;;AACA,IAAMC,KAAK,GAAGF,YAAME,KAApB;;;AAEA,IAAMC,OAAO,GAAG,SAAVA,OAAU,CAACC,CAAD,EAAIC,KAAJ;AAAA,mBAAiBA,KAAjB,cAA0BD,CAAC,CAACE,KAAF,IAAW,GAArC;AAAA,CAAhB;;;;AAEA,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAACC,MAAD,EAASC,IAAT,EAAeC,KAAf,EAAsBC,IAAtB,EAA+B;AACxD,UAAQA,IAAR;AACE,SAAK,KAAL;AACA,SAAK,SAAL;AACA,SAAK,UAAL;AACE,aAAO,sBAAU;AACfC,QAAAA,UAAU,EAAE,CAAC,CAAD,EAAIF,KAAJ,CADG;AAEfG,QAAAA,MAAM,EAAEJ,IAAI,IAAIA,IAAI,CAACK,GAAL,CAASX,OAAT,CAFD;AAGfY,QAAAA,OAAO,EAAE;AAHM,OAAV,CAAP;;AAMF,SAAK,WAAL;AACE,aAAO,sBAAU;AACfH,QAAAA,UAAU,EAAE,CAAC,CAAD,EAAIF,KAAJ,CADG;AAEfG,QAAAA,MAAM,EAAEJ,IAAI,IAAIA,IAAI,CAACK,GAAL,CAASX,OAAT,CAFD;AAGfY,QAAAA,OAAO,EAAE;AAHM,OAAV,CAAP;;AAMF,SAAK,WAAL;AACA,SAAK,SAAL;AACE,aAAO,uBAAW;AAChBF,QAAAA,MAAM,EAAEJ,IAAI,IAAIA,IAAI,CAACK,GAAL,CAASX,OAAT,CADA;AAEhBS,QAAAA,UAAU,EAAE,CAAC,CAAD,EAAIF,KAAJ;AAFI,OAAX,CAAP;;AAKF;AACE,aAAO,sBAAU;AACfM,QAAAA,KAAK,EAAE,CAAC,CAAD,EAAIN,KAAJ,CADQ;AAEfG,QAAAA,MAAM,EAAEJ,IAAI,IAAIA,IAAI,CAACK,GAAL,CAASX,OAAT,CAFD;AAGfY,QAAAA,OAAO,EAAE;AAHM,OAAV,CAAP;AAzBJ;AA+BD,CAhCM;;;;AAkCA,IAAME,aAAa,GAAG,SAAhBA,aAAgB,GAAe;AAAA,MAAdC,IAAc,uEAAP,EAAO;AAC1C,MAAMC,UAAU,GAAG,EAAnB;AACA,MAAIC,OAAO,GAAGF,IAAI,CAACG,GAAnB;;AAEA,SAAOD,OAAO,IAAIF,IAAI,CAACI,GAAvB,EAA4B;AAC1BH,IAAAA,UAAU,CAACI,IAAX,CAAgBH,OAAhB;AACAA,IAAAA,OAAO,GAAGI,IAAI,CAACC,KAAL,CAAW,CAACL,OAAO,GAAGF,IAAI,CAACQ,IAAhB,IAAwB,KAAnC,IAA4C,KAAtD;AACD;;AAED,SAAOP,UAAP;AACD,CAVM;;;;AAYA,IAAMQ,4BAA4B,GAAG,SAA/BA,4BAA+B,CAACd,MAAD,EAASG,KAAT,EAAgBY,SAAhB,EAA8B;AACxE,aAAoCZ,KAAK,IAAI,EAA7C;AAAA,MAAMU,IAAN,QAAMA,IAAN;AAAA,MAAYG,SAAZ,QAAYA,SAAZ;AAAA,MAAuBR,GAAvB,QAAuBA,GAAvB;AAAA,MAA4BC,GAA5B,QAA4BA,GAA5B;;AAEA,MAAI,CAACD,GAAL,EAAU;AACRA,IAAAA,GAAG,GAAG,CAAN;AACD;;AAED,MAAI,CAACC,GAAD,IAAQA,GAAG,GAAG,CAAlB,EAAqB;AACnBA,IAAAA,GAAG,GAAGN,KAAK,CAACK,GAAN,GAAY,CAAlB;AACD;;AAED,MAAI,CAACK,IAAL,EAAW;AACTA,IAAAA,IAAI,GAAGG,SAAS,IAAI,CAApB;AACD;;AACD,MAAI,CAACA,SAAD,IAAeC,KAAK,CAACD,SAAD,CAAL,IAAoBH,IAAvC,EAA8C;AAC5CG,IAAAA,SAAS,GAAGH,IAAI,IAAI,CAApB;AACD;;AAEDV,EAAAA,KAAK,CAACM,GAAN,GAAYA,GAAZ;;AAEA,UAAQM,SAAR;AACE;AACA,SAAK,SAAL;AACA,SAAK,UAAL;AAAiB;AACf,YAAMG,MAAM,GAAGP,IAAI,CAACC,KAAL,CAAWJ,GAAX,CAAf;AACA,YAAMW,MAAM,GAAGR,IAAI,CAACC,KAAL,CAAWH,GAAX,CAAf;AAEA,eAAO;AACLT,UAAAA,MAAM,kCACDA,MADC;AAEJa,YAAAA,IAAI,EAAE,CAFF;AAGJG,YAAAA,SAAS,EAAE,CAHP;AAIJR,YAAAA,GAAG,EAAE,CAJD;AAKJC,YAAAA,GAAG,EAAE;AALD,YADD;AAQLN,UAAAA,KAAK,kCACAA,KADA;AAEHK,YAAAA,GAAG,EAAEU,MAFF;AAGHT,YAAAA,GAAG,EAAES,MAAM,KAAKC,MAAX,GAAoBD,MAAM,GAAG,CAA7B,GAAiCC,MAHnC;AAIHH,YAAAA,SAAS,EAATA,SAJG;AAKHH,YAAAA,IAAI,EAAE;AALH;AARA,SAAP;AAgBD;;AAED;AACE,aAAO;AACLb,QAAAA,MAAM,kCACDA,MADC;AAEJa,UAAAA,IAAI,EAAE,CAFF;AAGJG,UAAAA,SAAS,EAAE,CAHP;AAIJR,UAAAA,GAAG,EAAE,CAJD;AAKJC,UAAAA,GAAG,EAAE;AALD,UADD;AAQLN,QAAAA,KAAK,kCACAA,KADA;AAEHa,UAAAA,SAAS,EAATA,SAFG;AAGHH,UAAAA,IAAI,EAAJA;AAHG;AARA,OAAP;AA1BJ;AAyCD,CA7DM;;;;AA+DA,IAAMO,8BAA8B,GAAG,SAAjCA,8BAAiC,CAACjB,KAAD,EAAQY,SAAR,EAAsB;AAClE,UAAQA,SAAR;AACE,SAAK,SAAL;AACA,SAAK,WAAL;AACE,aAAO;AACLM,QAAAA,aAAa,EAAEC,SADV;AAELC,QAAAA,eAAe,EAAEnB,aAAa,CAACD,KAAD,CAFzB;AAGLqB,QAAAA,QAAQ,EAAE;AAHL,OAAP;;AAMF,SAAK,SAAL;AACA,SAAK,UAAL;AACE,aAAO;AACLH,QAAAA,aAAa,EAAE,EADV;AAELE,QAAAA,eAAe,EAAE,EAFZ;AAGLC,QAAAA,QAAQ,EAAE;AAHL,OAAP;;AAMF;AACE,aAAO;AACLH,QAAAA,aAAa,EAAE,EADV;AAELE,QAAAA,eAAe,EAAEnB,aAAa,CAACD,KAAD,CAFzB;AAGLqB,QAAAA,QAAQ,EAAE;AAHL,OAAP;AAlBJ;AAwBD,CAzBM;;;;AA2BA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAACC,QAAD,EAAWC,MAAX,EAAsB;AAClD,MAAIA,MAAM,IAAID,QAAQ,GAAG,CAAzB,EAA4B;AAC1B,WAAO,EAAP;AACD;;AAED,SAAO,CAAP;AACD,CANM;;;;AAQA,IAAME,aAAa,GAAG,SAAhBA,aAAgB,CAACC,QAAD,EAAc;AACzC,MAAIA,QAAQ,GAAG,EAAf,EAAmB;AACjB,WAAO,EAAP;AACD;;AAED,MAAIA,QAAQ,GAAG,EAAf,EAAmB;AACjB,WAAO,EAAP;AACD;;AAED,MAAIA,QAAQ,GAAG,EAAf,EAAmB;AACjB,WAAO,EAAP;AACD;;AAED,SAAO,CAAP;AACD,CAdM,C,CAgBP;;;;;AACO,IAAMC,QAAQ,GAAG,SAAXA,QAAW,CAACjC,KAAD,EAAW;AACjC,MAAIkC,KAAJ,EAAWC,MAAX;;AAEA,MAAInC,KAAK,GAAG,EAAZ,EAAgB;AACdkC,IAAAA,KAAK,GAAG,GAAR;AACAC,IAAAA,MAAM,GAAG,CAAC,EAAV;AACD,GAHD,MAGO,IAAInC,KAAK,GAAG,EAAZ,EAAgB;AACrBkC,IAAAA,KAAK,GAAG,GAAR;AACAC,IAAAA,MAAM,GAAG,CAAC,EAAV;AACD,GAHM,MAGA,IAAInC,KAAK,GAAG,EAAZ,EAAgB;AACrBkC,IAAAA,KAAK,GAAG,MAAM,CAAClC,KAAK,GAAG,EAAT,IAAe,IAA7B;AACAmC,IAAAA,MAAM,GAAG,CAAC,EAAV;AACD,GAHM,MAGA,IAAInC,KAAK,GAAG,EAAZ,EAAgB;AACrBkC,IAAAA,KAAK,GAAG,MAAM,CAAClC,KAAK,GAAG,EAAT,IAAe,IAA7B;AACAmC,IAAAA,MAAM,GAAG,CAAC,EAAV;AACD,GAHM,MAGA;AACLD,IAAAA,KAAK,GAAG,MAAMpB,IAAI,CAACsB,GAAL,CAAS,IAAT,EAAe,KAAKpC,KAApB,CAAd,CADK,CACqC;;AAC1CmC,IAAAA,MAAM,GAAG,CAAC,EAAV;AACD;;AAED,SAAO;AAAED,IAAAA,KAAK,EAALA,KAAF;AAASC,IAAAA,MAAM,EAANA;AAAT,GAAP;AACD,CArBM;;;;AAuBA,IAAME,YAAY,GAAG,SAAfA,YAAe,CAACrC,KAAD,EAAQsC,UAAR,EAAuB;AACjD,MAAMC,kBAAkB,GAAG,EAA3B;AACA,MAAMC,mBAAmB,GAAGD,kBAAkB,GAAGD,UAAjD;AACA,SAAO,CAACtC,KAAK,GAAGwC,mBAAT,IAAgC,CAAvC;AACD,CAJM","sourcesContent":["import { scaleBand, scalePoint } from '@vx/scale';\nimport { utils } from '@pie-lib/plot';\n\nexport const tickCount = utils.tickCount;\nexport const bounds = utils.bounds;\nexport const point = utils.point;\n\nexport const bandKey = (d, index) => `${index}-${d.label || '-'}`;\n\nexport const dataToXBand = (scaleX, data, width, type) => {\n switch (type) {\n case 'bar':\n case 'dotPlot':\n case 'linePlot':\n return scaleBand({\n rangeRound: [0, width],\n domain: data && data.map(bandKey),\n padding: 0.2,\n });\n\n case 'histogram':\n return scaleBand({\n rangeRound: [0, width],\n domain: data && data.map(bandKey),\n padding: 0,\n });\n\n case 'lineCross':\n case 'lineDot':\n return scalePoint({\n domain: data && data.map(bandKey),\n rangeRound: [0, width],\n });\n\n default:\n return scaleBand({\n range: [0, width],\n domain: data && data.map(bandKey),\n padding: 0,\n });\n }\n};\n\nexport const getTickValues = (prop = {}) => {\n const tickValues = [];\n let tickVal = prop.min;\n\n while (tickVal <= prop.max) {\n tickValues.push(tickVal);\n tickVal = Math.round((tickVal + prop.step) * 10000) / 10000;\n }\n\n return tickValues;\n};\n\nexport const getDomainAndRangeByChartType = (domain, range, chartType) => {\n let { step, labelStep, min, max } = range || {};\n\n if (!min) {\n min = 0;\n }\n\n if (!max || max < 0) {\n max = range.min + 1;\n }\n\n if (!step) {\n step = labelStep || 1;\n }\n if (!labelStep || (isNaN(labelStep) && step)) {\n labelStep = step || 1;\n }\n\n range.max = max;\n\n switch (chartType) {\n // if chart is dot plot or line plot, we should ignore step and make sure that min & max are integer values\n case 'dotPlot':\n case 'linePlot': {\n const intMin = Math.round(min);\n const intMax = Math.round(max);\n\n return {\n domain: {\n ...domain,\n step: 1,\n labelStep: 1,\n min: 0,\n max: 1,\n },\n range: {\n ...range,\n min: intMin,\n max: intMin === intMax ? intMin + 1 : intMax,\n labelStep,\n step: 1,\n },\n };\n }\n\n default:\n return {\n domain: {\n ...domain,\n step: 1,\n labelStep: 1,\n min: 0,\n max: 1,\n },\n range: {\n ...range,\n labelStep,\n step,\n },\n };\n }\n};\n\nexport const getGridLinesAndAxisByChartType = (range, chartType) => {\n switch (chartType) {\n case 'lineDot':\n case 'lineCross':\n return {\n verticalLines: undefined,\n horizontalLines: getTickValues(range),\n leftAxis: true,\n };\n\n case 'dotPlot':\n case 'linePlot':\n return {\n verticalLines: [],\n horizontalLines: [],\n leftAxis: false,\n };\n\n default:\n return {\n verticalLines: [],\n horizontalLines: getTickValues(range),\n leftAxis: true,\n };\n }\n};\n\nexport const getRotateAngle = (fontSize, height) => {\n if (height >= fontSize * 2) {\n return 25;\n }\n\n return 0;\n};\n\nexport const getTopPadding = (barWidth) => {\n if (barWidth < 30) {\n return 50;\n }\n\n if (barWidth < 40) {\n return 30;\n }\n\n if (barWidth < 60) {\n return 15;\n }\n\n return 0;\n};\n\n// This function calculates the transformation scale for SVG and the icon's vertical distance from its category\nexport const getScale = (width) => {\n let scale, deltay;\n\n if (width > 91) {\n scale = 1.3;\n deltay = -55;\n } else if (width > 45) {\n scale = 1.1;\n deltay = -45;\n } else if (width > 40) {\n scale = 0.5 + (width - 34) * 0.02;\n deltay = -25;\n } else if (width > 30) {\n scale = 0.5 + (width - 34) * 0.02;\n deltay = -20;\n } else {\n scale = 0.5 * Math.pow(0.98, 34 - width); // 0.98 is the reduction factor. Adjust to control scaling.\n deltay = -15;\n }\n\n return { scale, deltay };\n};\n\nexport const getAdjustedX = (width, scaleValue) => {\n const innerWidthOriginal = 57;\n const effectiveInnerWidth = innerWidthOriginal * scaleValue;\n return (width - effectiveInnerWidth) / 2;\n};\n"],"file":"utils.js"}
|
|
1
|
+
{"version":3,"file":"utils.js","names":["_scale","require","_plot","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","tickCount","exports","utils","bounds","point","bandKey","d","index","concat","label","dataToXBand","scaleX","data","width","type","chartWidth","domain","map","scaleBand","range","padding","scalePoint","getTickValues","prop","undefined","tickValues","tickVal","min","max","Math","round","step","getDomainAndRangeByChartType","chartType","_ref","labelStep","isNaN","intMin","intMax","getGridLinesAndAxisByChartType","verticalLines","horizontalLines","leftAxis","getRotateAngle","fontSize","height","getTopPadding","barWidth","getScale","scale","deltay","pow","getAdjustedX","scaleValue","innerWidthOriginal","effectiveInnerWidth"],"sources":["../src/utils.js"],"sourcesContent":["import { scaleBand, scalePoint } from '@visx/scale';\nimport { utils } from '@pie-lib/plot';\n\nexport const tickCount = utils.tickCount;\nexport const bounds = utils.bounds;\nexport const point = utils.point;\n\nexport const bandKey = (d, index) => `${index}-${d.label || '-'}`;\n\nexport const dataToXBand = (scaleX, data, width, type) => {\n const chartWidth = width || 400; // fallback\n const domain = data && data.length ? data.map(bandKey) : ['default'];\n\n switch (type) {\n case 'bar':\n case 'dotPlot':\n case 'linePlot':\n return scaleBand({\n range: [0, chartWidth],\n domain,\n padding: 0.2,\n });\n\n case 'histogram':\n return scaleBand({\n range: [0, chartWidth],\n domain,\n padding: 0,\n });\n\n case 'lineCross':\n case 'lineDot':\n return scalePoint({\n domain,\n range: [0, chartWidth],\n });\n\n default:\n return scaleBand({\n range: [0, chartWidth],\n domain,\n padding: 0,\n });\n }\n};\n\n\nexport const getTickValues = (prop = {}) => {\n const tickValues = [];\n let tickVal = prop.min;\n\n while (tickVal <= prop.max) {\n tickValues.push(tickVal);\n tickVal = Math.round((tickVal + prop.step) * 10000) / 10000;\n }\n\n return tickValues;\n};\n\nexport const getDomainAndRangeByChartType = (domain, range, chartType) => {\n let { step, labelStep, min, max } = range || {};\n\n if (!min) {\n min = 0;\n }\n\n if (!max || max < 0) {\n max = range.min + 1;\n }\n\n if (!step) {\n step = labelStep || 1;\n }\n if (!labelStep || (isNaN(labelStep) && step)) {\n labelStep = step || 1;\n }\n\n range.max = max;\n\n switch (chartType) {\n // if chart is dot plot or line plot, we should ignore step and make sure that min & max are integer values\n case 'dotPlot':\n case 'linePlot': {\n const intMin = Math.round(min);\n const intMax = Math.round(max);\n\n return {\n domain: {\n ...domain,\n step: 1,\n labelStep: 1,\n min: 0,\n max: 1,\n },\n range: {\n ...range,\n min: intMin,\n max: intMin === intMax ? intMin + 1 : intMax,\n labelStep,\n step: 1,\n },\n };\n }\n\n default:\n return {\n domain: {\n ...domain,\n step: 1,\n labelStep: 1,\n min: 0,\n max: 1,\n },\n range: {\n ...range,\n labelStep,\n step,\n },\n };\n }\n};\n\nexport const getGridLinesAndAxisByChartType = (range, chartType) => {\n switch (chartType) {\n case 'lineDot':\n case 'lineCross':\n return {\n verticalLines: undefined,\n horizontalLines: getTickValues(range),\n leftAxis: true,\n };\n\n case 'dotPlot':\n case 'linePlot':\n return {\n verticalLines: [],\n horizontalLines: [],\n leftAxis: false,\n };\n\n default:\n return {\n verticalLines: [],\n horizontalLines: getTickValues(range),\n leftAxis: true,\n };\n }\n};\n\nexport const getRotateAngle = (fontSize, height) => {\n if (height >= fontSize * 2) {\n return 25;\n }\n\n return 0;\n};\n\nexport const getTopPadding = (barWidth) => {\n if (barWidth < 30) {\n return 50;\n }\n\n if (barWidth < 40) {\n return 30;\n }\n\n if (barWidth < 60) {\n return 15;\n }\n\n return 0;\n};\n\n// This function calculates the transformation scale for SVG and the icon's vertical distance from its category\nexport const getScale = (width) => {\n let scale, deltay;\n\n if (width > 91) {\n scale = 1.3;\n deltay = -55;\n } else if (width > 45) {\n scale = 1.1;\n deltay = -45;\n } else if (width > 40) {\n scale = 0.5 + (width - 34) * 0.02;\n deltay = -25;\n } else if (width > 30) {\n scale = 0.5 + (width - 34) * 0.02;\n deltay = -20;\n } else {\n scale = 0.5 * Math.pow(0.98, 34 - width); // 0.98 is the reduction factor. Adjust to control scaling.\n deltay = -15;\n }\n\n return { scale, deltay };\n};\n\nexport const getAdjustedX = (width, scaleValue) => {\n const innerWidthOriginal = 57;\n const effectiveInnerWidth = innerWidthOriginal * scaleValue;\n return (width - effectiveInnerWidth) / 2;\n};\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "5.36.3-next.
|
|
6
|
+
"version": "5.36.3-next.162+b5949758",
|
|
7
7
|
"description": "charting",
|
|
8
8
|
"keywords": [
|
|
9
9
|
"react",
|
|
@@ -17,31 +17,45 @@
|
|
|
17
17
|
"author": "",
|
|
18
18
|
"license": "ISC",
|
|
19
19
|
"dependencies": {
|
|
20
|
+
"@emotion/react": "^11.14.0",
|
|
21
|
+
"@emotion/style": "^0.8.0",
|
|
20
22
|
"@mapbox/point-geometry": "^0.1.0",
|
|
21
|
-
"@material
|
|
22
|
-
"@
|
|
23
|
-
"@pie-lib/
|
|
24
|
-
"@pie-lib/
|
|
25
|
-
"@pie-lib/
|
|
26
|
-
"@
|
|
27
|
-
"@
|
|
28
|
-
"@
|
|
29
|
-
"@
|
|
30
|
-
"@
|
|
31
|
-
"@
|
|
32
|
-
"@
|
|
23
|
+
"@mui/icons-material": "^7.3.4",
|
|
24
|
+
"@mui/material": "^7.3.4",
|
|
25
|
+
"@pie-lib/math-rendering": "3.22.2-next.164",
|
|
26
|
+
"@pie-lib/plot": "2.27.3-next.155",
|
|
27
|
+
"@pie-lib/render-ui": "4.35.3-next.155",
|
|
28
|
+
"@pie-lib/translator": "2.23.2-next.164",
|
|
29
|
+
"@visx/axis": "^3.0.0",
|
|
30
|
+
"@visx/event": "^3.0.0",
|
|
31
|
+
"@visx/grid": "^3.0.0",
|
|
32
|
+
"@visx/group": "^3.0.0",
|
|
33
|
+
"@visx/point": "^3.0.0",
|
|
34
|
+
"@visx/scale": "^3.0.0",
|
|
35
|
+
"@visx/shape": "^3.0.0",
|
|
33
36
|
"classnames": "^2.2.6",
|
|
34
37
|
"d3-scale": "^2.1.2",
|
|
35
38
|
"d3-selection": "^1.3.2",
|
|
36
39
|
"debug": "^4.1.1",
|
|
37
40
|
"invariant": "^2.2.4",
|
|
38
41
|
"lodash": "^4.17.11",
|
|
39
|
-
"react": "^
|
|
42
|
+
"react": "^18.2.0",
|
|
40
43
|
"react-draggable": "^3.1.1",
|
|
41
44
|
"react-input-autosize": "^2.2.1"
|
|
42
45
|
},
|
|
43
46
|
"peerDependencies": {
|
|
44
|
-
"react": "^
|
|
47
|
+
"react": "^18.2.0"
|
|
45
48
|
},
|
|
46
|
-
"
|
|
49
|
+
"devDependencies": {
|
|
50
|
+
"@pie-lib/test-utils": "0.22.2-next.164"
|
|
51
|
+
},
|
|
52
|
+
"gitHead": "b5949758ca5c537e02a14fbbf99d4cde4729255e",
|
|
53
|
+
"exports": {
|
|
54
|
+
".": {
|
|
55
|
+
"require": "./lib/index.js",
|
|
56
|
+
"import": "./src/index.js",
|
|
57
|
+
"default": "./lib/index.js"
|
|
58
|
+
},
|
|
59
|
+
"./esm": "./esm/index.js"
|
|
60
|
+
}
|
|
47
61
|
}
|
|
@@ -1,141 +1,126 @@
|
|
|
1
|
-
import { shallow } from 'enzyme';
|
|
2
1
|
import React from 'react';
|
|
2
|
+
import { render } from '@pie-lib/test-utils';
|
|
3
|
+
import { ThemeProvider, createTheme } from '@mui/material/styles';
|
|
3
4
|
import ChartAxes, { TickComponent, RawChartAxes } from '../axes';
|
|
4
|
-
import { graphProps } from './utils';
|
|
5
|
+
import { graphProps, createBandScale } from './utils';
|
|
6
|
+
|
|
7
|
+
const theme = createTheme();
|
|
5
8
|
|
|
6
9
|
describe('ChartAxes', () => {
|
|
7
|
-
const
|
|
10
|
+
const renderComponent = (extras) => {
|
|
8
11
|
const defaults = {
|
|
9
12
|
classes: {},
|
|
10
13
|
className: 'className',
|
|
11
14
|
graphProps: graphProps(),
|
|
12
|
-
xBand:
|
|
13
|
-
|
|
14
|
-
},
|
|
15
|
+
xBand: createBandScale(['a', 'b', 'c'], [0, 400]),
|
|
16
|
+
categories: [],
|
|
15
17
|
};
|
|
16
18
|
const props = { ...defaults, ...extras };
|
|
17
|
-
return
|
|
19
|
+
return render(
|
|
20
|
+
<ThemeProvider theme={theme}>
|
|
21
|
+
<svg>
|
|
22
|
+
<ChartAxes {...props} />
|
|
23
|
+
</svg>
|
|
24
|
+
</ThemeProvider>
|
|
25
|
+
);
|
|
18
26
|
};
|
|
19
27
|
|
|
20
|
-
describe('
|
|
21
|
-
it('renders', () =>
|
|
28
|
+
describe('rendering', () => {
|
|
29
|
+
it('renders axes container', () => {
|
|
30
|
+
const { container } = renderComponent();
|
|
31
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
it('renders SVG with axes group', () => {
|
|
35
|
+
const { container} = renderComponent();
|
|
36
|
+
const svg = container.querySelector('svg');
|
|
37
|
+
expect(svg).toBeInTheDocument();
|
|
38
|
+
// Component renders StyledAxesGroup which is a <g> element
|
|
39
|
+
const axesGroup = container.querySelector('g');
|
|
40
|
+
expect(axesGroup).toBeInTheDocument();
|
|
41
|
+
});
|
|
22
42
|
});
|
|
23
43
|
});
|
|
24
44
|
|
|
25
45
|
describe('RawChartAxes', () => {
|
|
26
|
-
const
|
|
46
|
+
const renderComponent = (extras) => {
|
|
27
47
|
const defaults = {
|
|
28
48
|
classes: {},
|
|
29
49
|
className: 'className',
|
|
30
50
|
graphProps: graphProps(),
|
|
31
|
-
xBand:
|
|
32
|
-
bandwidth: () => {},
|
|
33
|
-
rangeRound: () => {},
|
|
34
|
-
},
|
|
51
|
+
xBand: createBandScale(['a', 'b', 'c'], [0, 400]),
|
|
35
52
|
categories: [],
|
|
36
53
|
};
|
|
37
54
|
const props = { ...defaults, ...extras };
|
|
38
|
-
return
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
it('renders if categories are not defined', () => expect(wrapper({ categories: undefined })).toMatchSnapshot());
|
|
47
|
-
});
|
|
48
|
-
});
|
|
49
|
-
|
|
50
|
-
describe('splitText method', () => {
|
|
51
|
-
const wrapper = (extras) => {
|
|
52
|
-
const xBand = jest.fn();
|
|
53
|
-
xBand.bandwidth = jest.fn();
|
|
54
|
-
|
|
55
|
-
const defaults = {
|
|
56
|
-
graphProps: graphProps(),
|
|
57
|
-
xBand,
|
|
58
|
-
};
|
|
59
|
-
const props = { ...defaults, ...extras };
|
|
60
|
-
return shallow(<TickComponent {...props} />);
|
|
55
|
+
return render(
|
|
56
|
+
<ThemeProvider theme={theme}>
|
|
57
|
+
<svg>
|
|
58
|
+
<RawChartAxes {...props} />
|
|
59
|
+
</svg>
|
|
60
|
+
</ThemeProvider>
|
|
61
|
+
);
|
|
61
62
|
};
|
|
62
63
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
});
|
|
69
|
-
|
|
70
|
-
it('returns an array with a single string when the input is less than the specified length', () => {
|
|
71
|
-
const w = wrapper();
|
|
72
|
-
const input = 'Short text';
|
|
73
|
-
const output = w.instance().splitText(input, 20);
|
|
74
|
-
expect(output).toEqual(['Short text']);
|
|
75
|
-
});
|
|
76
|
-
|
|
77
|
-
it('splits a string into chunks of exact length when no spaces are present', () => {
|
|
78
|
-
const w = wrapper();
|
|
79
|
-
const input = 'ThisisateststringforsplitTextfunction';
|
|
80
|
-
const output = w.instance().splitText(input, 10);
|
|
81
|
-
expect(output).toEqual(['Thisisates', 'tstringfor', 'splitTextf', 'unction']);
|
|
82
|
-
});
|
|
83
|
-
|
|
84
|
-
it('returns an empty array when the input is an empty string', () => {
|
|
85
|
-
const w = wrapper();
|
|
86
|
-
const input = '';
|
|
87
|
-
const output = w.instance().splitText(input, 20);
|
|
88
|
-
expect(output).toEqual([]);
|
|
89
|
-
});
|
|
64
|
+
describe('rendering', () => {
|
|
65
|
+
it('renders raw axes container', () => {
|
|
66
|
+
const { container } = renderComponent();
|
|
67
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
68
|
+
});
|
|
90
69
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
70
|
+
it('renders SVG with axes group', () => {
|
|
71
|
+
const { container } = renderComponent();
|
|
72
|
+
const svg = container.querySelector('svg');
|
|
73
|
+
expect(svg).toBeInTheDocument();
|
|
74
|
+
// Component renders StyledAxesGroup which is a <g> element
|
|
75
|
+
const axesGroup = container.querySelector('g');
|
|
76
|
+
expect(axesGroup).toBeInTheDocument();
|
|
77
|
+
});
|
|
96
78
|
});
|
|
97
79
|
});
|
|
98
80
|
|
|
99
81
|
describe('TickComponent', () => {
|
|
100
|
-
const
|
|
101
|
-
const xBand = jest.fn();
|
|
102
|
-
xBand.bandwidth = jest.fn();
|
|
103
|
-
|
|
82
|
+
const renderComponent = (extras) => {
|
|
104
83
|
const defaults = {
|
|
105
84
|
graphProps: graphProps(),
|
|
106
|
-
xBand,
|
|
85
|
+
xBand: createBandScale(['a', 'b', 'c'], [0, 400]),
|
|
86
|
+
categories: [{ value: 1, label: 'test', editable: false, interactive: false }],
|
|
87
|
+
formattedValue: '0-test',
|
|
88
|
+
bandWidth: 100,
|
|
89
|
+
barWidth: 100,
|
|
90
|
+
x: 50,
|
|
91
|
+
y: 50,
|
|
107
92
|
};
|
|
108
93
|
const props = { ...defaults, ...extras };
|
|
109
|
-
return
|
|
94
|
+
return render(
|
|
95
|
+
<ThemeProvider theme={theme}>
|
|
96
|
+
<svg>
|
|
97
|
+
<TickComponent {...props} />
|
|
98
|
+
</svg>
|
|
99
|
+
</ThemeProvider>
|
|
100
|
+
);
|
|
110
101
|
};
|
|
111
102
|
|
|
112
|
-
describe('
|
|
113
|
-
it('renders', () =>
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
expect(
|
|
119
|
-
wrapper({
|
|
120
|
-
formattedValue: '0-test',
|
|
121
|
-
categories: [{ value: 1, label: 'test' }],
|
|
122
|
-
}),
|
|
123
|
-
).toMatchSnapshot());
|
|
124
|
-
});
|
|
125
|
-
|
|
126
|
-
describe('logic', () => {
|
|
127
|
-
const onChange = jest.fn();
|
|
128
|
-
const onChangeCategory = jest.fn();
|
|
129
|
-
const w = wrapper({
|
|
130
|
-
formattedValue: '0-test',
|
|
131
|
-
categories: [{ value: 1, label: 'test' }],
|
|
132
|
-
onChange,
|
|
133
|
-
onChangeCategory,
|
|
103
|
+
describe('rendering', () => {
|
|
104
|
+
it('renders tick component', () => {
|
|
105
|
+
const { container } = renderComponent();
|
|
106
|
+
const svg = container.querySelector('svg');
|
|
107
|
+
expect(svg).toBeInTheDocument();
|
|
108
|
+
// TickComponent renders a <g> element
|
|
109
|
+
expect(container.querySelector('g')).toBeInTheDocument();
|
|
134
110
|
});
|
|
135
111
|
|
|
136
|
-
it('
|
|
137
|
-
|
|
138
|
-
|
|
112
|
+
it('renders with categories', () => {
|
|
113
|
+
const { container } = renderComponent({
|
|
114
|
+
formattedValue: '0-test',
|
|
115
|
+
categories: [{ value: 1, label: 'test', editable: false, interactive: false }],
|
|
116
|
+
});
|
|
117
|
+
const svg = container.querySelector('svg');
|
|
118
|
+
expect(svg).toBeInTheDocument();
|
|
119
|
+
expect(container.querySelector('g')).toBeInTheDocument();
|
|
139
120
|
});
|
|
140
121
|
});
|
|
122
|
+
|
|
123
|
+
// Note: splitText and changeCategory are internal implementation details.
|
|
124
|
+
// In RTL philosophy, we test user-visible behavior rather than implementation.
|
|
125
|
+
// These methods would be tested indirectly through their effects on the rendered output.
|
|
141
126
|
});
|