@pie-lib/charting 5.15.7 → 5.16.0-beta.2
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 +40 -62
- package/NEXT.CHANGELOG.json +1 -0
- package/package.json +32 -5
- package/src/__tests__/__snapshots__/axes.test.jsx.snap +564 -0
- package/src/__tests__/__snapshots__/chart-type.test.jsx.snap +14 -0
- package/src/__tests__/__snapshots__/chart.test.jsx.snap +610 -0
- package/src/__tests__/__snapshots__/grid.test.jsx.snap +28 -0
- package/src/__tests__/__snapshots__/mark-label.test.jsx.snap +67 -0
- package/src/__tests__/axes.test.jsx +146 -0
- package/src/__tests__/chart-setup.test.jsx +47 -0
- package/src/__tests__/chart-type.test.jsx +29 -0
- package/src/__tests__/chart.test.jsx +87 -0
- package/src/__tests__/grid.test.jsx +25 -0
- package/src/__tests__/mark-label.test.jsx +31 -0
- package/src/__tests__/utils.js +30 -0
- package/src/__tests__/utils.test.js +100 -0
- package/src/axes.jsx +59 -23
- package/src/bars/__tests__/__snapshots__/bar.test.jsx.snap +43 -0
- package/src/bars/__tests__/__snapshots__/histogram.test.jsx.snap +45 -0
- package/src/bars/__tests__/bar.test.jsx +37 -0
- package/src/bars/__tests__/histogram.test.jsx +38 -0
- package/src/bars/__tests__/utils.js +30 -0
- package/src/bars/common/__tests__/__snapshots__/bars.test.jsx.snap +110 -0
- package/src/bars/common/__tests__/bars.test.jsx +69 -0
- package/src/bars/common/__tests__/utils.js +30 -0
- package/src/bars/common/bars.jsx +37 -1
- package/src/chart-type.js +7 -3
- package/src/chart-types.js +2 -2
- package/src/chart.jsx +15 -5
- package/src/common/__tests__/__snapshots__/drag-handle.test.jsx.snap +45 -0
- package/src/common/__tests__/drag-handle.test.jsx +88 -0
- package/src/common/__tests__/utils.js +30 -0
- package/src/common/drag-handle.jsx +18 -10
- package/src/common/drag-icon.jsx +6 -21
- package/src/line/__tests__/__snapshots__/line-cross.test.jsx.snap +45 -0
- package/src/line/__tests__/__snapshots__/line-dot.test.jsx.snap +45 -0
- package/src/line/__tests__/line-cross.test.jsx +38 -0
- package/src/line/__tests__/line-dot.test.jsx +38 -0
- package/src/line/__tests__/utils.js +30 -0
- package/src/line/common/__tests__/__snapshots__/drag-handle.test.jsx.snap +44 -0
- package/src/line/common/__tests__/__snapshots__/line.test.jsx.snap +141 -0
- package/src/line/common/__tests__/drag-handle.test.jsx +88 -0
- package/src/line/common/__tests__/line.test.jsx +82 -0
- package/src/line/common/__tests__/utils.js +30 -0
- package/src/line/common/drag-handle.jsx +9 -4
- package/src/line/line-cross.js +4 -1
- package/src/line/line-dot.js +17 -7
- package/src/mark-label.jsx +19 -7
- package/src/plot/__tests__/__snapshots__/dot.test.jsx.snap +45 -0
- package/src/plot/__tests__/__snapshots__/line.test.jsx.snap +45 -0
- package/src/plot/__tests__/dot.test.jsx +38 -0
- package/src/plot/__tests__/line.test.jsx +38 -0
- package/src/plot/__tests__/utils.js +30 -0
- package/src/plot/common/__tests__/__snapshots__/plot.test.jsx.snap +96 -0
- package/src/plot/common/__tests__/plot.test.jsx +70 -0
- package/src/plot/common/__tests__/utils.js +30 -0
- package/src/plot/common/plot.jsx +6 -1
- package/src/plot/dot.js +1 -1
- package/src/plot/line.js +1 -1
- package/src/tool-menu.jsx +0 -4
- package/lib/axes.js +0 -598
- package/lib/axes.js.map +0 -1
- package/lib/bars/bar.js +0 -86
- package/lib/bars/bar.js.map +0 -1
- package/lib/bars/common/bars.js +0 -267
- package/lib/bars/common/bars.js.map +0 -1
- package/lib/bars/histogram.js +0 -87
- package/lib/bars/histogram.js.map +0 -1
- package/lib/chart-setup.js +0 -458
- package/lib/chart-setup.js.map +0 -1
- package/lib/chart-type.js +0 -71
- package/lib/chart-type.js.map +0 -1
- package/lib/chart-types.js +0 -31
- package/lib/chart-types.js.map +0 -1
- package/lib/chart.js +0 -423
- package/lib/chart.js.map +0 -1
- package/lib/common/drag-handle.js +0 -169
- package/lib/common/drag-handle.js.map +0 -1
- package/lib/common/drag-icon.js +0 -69
- package/lib/common/drag-icon.js.map +0 -1
- package/lib/common/styles.js +0 -40
- package/lib/common/styles.js.map +0 -1
- package/lib/grid.js +0 -104
- package/lib/grid.js.map +0 -1
- package/lib/index.js +0 -40
- package/lib/index.js.map +0 -1
- package/lib/line/common/drag-handle.js +0 -152
- package/lib/line/common/drag-handle.js.map +0 -1
- package/lib/line/common/line.js +0 -261
- package/lib/line/common/line.js.map +0 -1
- package/lib/line/line-cross.js +0 -157
- package/lib/line/line-cross.js.map +0 -1
- package/lib/line/line-dot.js +0 -123
- package/lib/line/line-dot.js.map +0 -1
- package/lib/mark-label.js +0 -246
- package/lib/mark-label.js.map +0 -1
- package/lib/plot/common/plot.js +0 -278
- package/lib/plot/common/plot.js.map +0 -1
- package/lib/plot/dot.js +0 -123
- package/lib/plot/dot.js.map +0 -1
- package/lib/plot/line.js +0 -152
- package/lib/plot/line.js.map +0 -1
- package/lib/tool-menu.js +0 -146
- package/lib/tool-menu.js.map +0 -1
- package/lib/utils.js +0 -244
- package/lib/utils.js.map +0 -1
package/lib/utils.js
DELETED
|
@@ -1,244 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
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
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
-
|
|
12
|
-
var _scale = require("@vx/scale");
|
|
13
|
-
|
|
14
|
-
var _plot = require("@pie-lib/plot");
|
|
15
|
-
|
|
16
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
17
|
-
|
|
18
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
19
|
-
|
|
20
|
-
var tickCount = _plot.utils.tickCount;
|
|
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) {
|
|
28
|
-
return "".concat(index, "-").concat(d.label || '-');
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
exports.bandKey = bandKey;
|
|
32
|
-
|
|
33
|
-
var dataToXBand = function dataToXBand(scaleX, data, width, type) {
|
|
34
|
-
switch (type) {
|
|
35
|
-
case 'bar':
|
|
36
|
-
case 'dotPlot':
|
|
37
|
-
case 'linePlot':
|
|
38
|
-
return (0, _scale.scaleBand)({
|
|
39
|
-
rangeRound: [0, width],
|
|
40
|
-
domain: data && data.map(bandKey),
|
|
41
|
-
padding: 0.2
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
case 'histogram':
|
|
45
|
-
return (0, _scale.scaleBand)({
|
|
46
|
-
rangeRound: [0, width],
|
|
47
|
-
domain: data && data.map(bandKey),
|
|
48
|
-
padding: 0
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
case 'lineCross':
|
|
52
|
-
case 'lineDot':
|
|
53
|
-
return (0, _scale.scalePoint)({
|
|
54
|
-
domain: data && data.map(bandKey),
|
|
55
|
-
rangeRound: [0, width]
|
|
56
|
-
});
|
|
57
|
-
|
|
58
|
-
default:
|
|
59
|
-
return (0, _scale.scaleBand)({
|
|
60
|
-
range: [0, width],
|
|
61
|
-
domain: data && data.map(bandKey),
|
|
62
|
-
padding: 0
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
exports.dataToXBand = dataToXBand;
|
|
68
|
-
|
|
69
|
-
var getTickValues = function getTickValues() {
|
|
70
|
-
var prop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
71
|
-
var tickValues = [];
|
|
72
|
-
var tickVal = prop.min;
|
|
73
|
-
|
|
74
|
-
while (tickVal <= prop.max) {
|
|
75
|
-
tickValues.push(tickVal);
|
|
76
|
-
tickVal = Math.round((tickVal + prop.step) * 10000) / 10000;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
return tickValues;
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
exports.getTickValues = getTickValues;
|
|
83
|
-
|
|
84
|
-
var getDomainAndRangeByChartType = function getDomainAndRangeByChartType(domain, range, chartType) {
|
|
85
|
-
var _ref = range || {},
|
|
86
|
-
step = _ref.step,
|
|
87
|
-
labelStep = _ref.labelStep,
|
|
88
|
-
min = _ref.min,
|
|
89
|
-
max = _ref.max;
|
|
90
|
-
|
|
91
|
-
if (!min) {
|
|
92
|
-
min = 0;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
if (!max || max < 0) {
|
|
96
|
-
max = range.min + 1;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
if (!step) {
|
|
100
|
-
step = labelStep || 1;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
if (!labelStep || isNaN(labelStep) && step) {
|
|
104
|
-
labelStep = step || 1;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
range.max = max;
|
|
108
|
-
|
|
109
|
-
switch (chartType) {
|
|
110
|
-
// if chart is dot plot or line plot, we should ignore step and make sure that min & max are integer values
|
|
111
|
-
case 'dotPlot':
|
|
112
|
-
case 'linePlot':
|
|
113
|
-
{
|
|
114
|
-
var intMin = Math.round(min);
|
|
115
|
-
var intMax = Math.round(max);
|
|
116
|
-
return {
|
|
117
|
-
domain: _objectSpread(_objectSpread({}, domain), {}, {
|
|
118
|
-
step: 1,
|
|
119
|
-
labelStep: 1,
|
|
120
|
-
min: 0,
|
|
121
|
-
max: 1
|
|
122
|
-
}),
|
|
123
|
-
range: _objectSpread(_objectSpread({}, range), {}, {
|
|
124
|
-
min: intMin,
|
|
125
|
-
max: intMin === intMax ? intMin + 1 : intMax,
|
|
126
|
-
labelStep: labelStep,
|
|
127
|
-
step: 1
|
|
128
|
-
})
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
default:
|
|
133
|
-
return {
|
|
134
|
-
domain: _objectSpread(_objectSpread({}, domain), {}, {
|
|
135
|
-
step: 1,
|
|
136
|
-
labelStep: 1,
|
|
137
|
-
min: 0,
|
|
138
|
-
max: 1
|
|
139
|
-
}),
|
|
140
|
-
range: _objectSpread(_objectSpread({}, range), {}, {
|
|
141
|
-
labelStep: labelStep,
|
|
142
|
-
step: step
|
|
143
|
-
})
|
|
144
|
-
};
|
|
145
|
-
}
|
|
146
|
-
};
|
|
147
|
-
|
|
148
|
-
exports.getDomainAndRangeByChartType = getDomainAndRangeByChartType;
|
|
149
|
-
|
|
150
|
-
var getGridLinesAndAxisByChartType = function getGridLinesAndAxisByChartType(range, chartType) {
|
|
151
|
-
switch (chartType) {
|
|
152
|
-
case 'lineDot':
|
|
153
|
-
case 'lineCross':
|
|
154
|
-
return {
|
|
155
|
-
verticalLines: undefined,
|
|
156
|
-
horizontalLines: getTickValues(range),
|
|
157
|
-
leftAxis: true
|
|
158
|
-
};
|
|
159
|
-
|
|
160
|
-
case 'dotPlot':
|
|
161
|
-
case 'linePlot':
|
|
162
|
-
return {
|
|
163
|
-
verticalLines: [],
|
|
164
|
-
horizontalLines: [],
|
|
165
|
-
leftAxis: false
|
|
166
|
-
};
|
|
167
|
-
|
|
168
|
-
default:
|
|
169
|
-
return {
|
|
170
|
-
verticalLines: [],
|
|
171
|
-
horizontalLines: getTickValues(range),
|
|
172
|
-
leftAxis: true
|
|
173
|
-
};
|
|
174
|
-
}
|
|
175
|
-
};
|
|
176
|
-
|
|
177
|
-
exports.getGridLinesAndAxisByChartType = getGridLinesAndAxisByChartType;
|
|
178
|
-
|
|
179
|
-
var getRotateAngle = function getRotateAngle(fontSize, height) {
|
|
180
|
-
if (height >= fontSize * 2) {
|
|
181
|
-
return 25;
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
return 0;
|
|
185
|
-
};
|
|
186
|
-
|
|
187
|
-
exports.getRotateAngle = getRotateAngle;
|
|
188
|
-
|
|
189
|
-
var getTopPadding = function getTopPadding(barWidth) {
|
|
190
|
-
if (barWidth < 30) {
|
|
191
|
-
return 50;
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
if (barWidth < 40) {
|
|
195
|
-
return 30;
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
if (barWidth < 60) {
|
|
199
|
-
return 15;
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
return 0;
|
|
203
|
-
}; // This function calculates the transformation scale for SVG and the icon's vertical distance from its category
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
exports.getTopPadding = getTopPadding;
|
|
207
|
-
|
|
208
|
-
var getScale = function getScale(width) {
|
|
209
|
-
var scale, deltay;
|
|
210
|
-
|
|
211
|
-
if (width > 91) {
|
|
212
|
-
scale = 1.3;
|
|
213
|
-
deltay = -55;
|
|
214
|
-
} else if (width > 45) {
|
|
215
|
-
scale = 1.1;
|
|
216
|
-
deltay = -45;
|
|
217
|
-
} else if (width > 40) {
|
|
218
|
-
scale = 0.5 + (width - 34) * 0.02;
|
|
219
|
-
deltay = -25;
|
|
220
|
-
} else if (width > 30) {
|
|
221
|
-
scale = 0.5 + (width - 34) * 0.02;
|
|
222
|
-
deltay = -20;
|
|
223
|
-
} else {
|
|
224
|
-
scale = 0.5 * Math.pow(0.98, 34 - width); // 0.98 is the reduction factor. Adjust to control scaling.
|
|
225
|
-
|
|
226
|
-
deltay = -15;
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
return {
|
|
230
|
-
scale: scale,
|
|
231
|
-
deltay: deltay
|
|
232
|
-
};
|
|
233
|
-
};
|
|
234
|
-
|
|
235
|
-
exports.getScale = getScale;
|
|
236
|
-
|
|
237
|
-
var getAdjustedX = function getAdjustedX(width, scaleValue) {
|
|
238
|
-
var innerWidthOriginal = 57;
|
|
239
|
-
var effectiveInnerWidth = innerWidthOriginal * scaleValue;
|
|
240
|
-
return (width - effectiveInnerWidth) / 2;
|
|
241
|
-
};
|
|
242
|
-
|
|
243
|
-
exports.getAdjustedX = getAdjustedX;
|
|
244
|
-
//# sourceMappingURL=utils.js.map
|
package/lib/utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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":"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","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"}
|