@pie-lib/charting 6.1.0-next.0 → 6.1.0-next.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 -0
- package/package.json +7 -7
- package/lib/__tests__/axes.test.js +0 -129
- package/lib/__tests__/chart-setup.test.js +0 -57
- package/lib/__tests__/chart-type.test.js +0 -25
- package/lib/__tests__/chart.test.js +0 -103
- package/lib/__tests__/grid.test.js +0 -39
- package/lib/__tests__/mark-label.test.js +0 -46
- package/lib/__tests__/utils.js +0 -56
- package/lib/__tests__/utils.test.js +0 -186
- package/lib/actions-button.js +0 -145
- package/lib/actions-button.js.map +0 -1
- package/lib/axes.js +0 -586
- package/lib/axes.js.map +0 -1
- package/lib/bars/__tests__/bar.test.js +0 -53
- package/lib/bars/__tests__/histogram.test.js +0 -53
- package/lib/bars/__tests__/utils.js +0 -50
- package/lib/bars/bar.js +0 -58
- package/lib/bars/bar.js.map +0 -1
- package/lib/bars/common/__tests__/bars.test.js +0 -76
- package/lib/bars/common/__tests__/utils.js +0 -50
- package/lib/bars/common/bars.js +0 -277
- package/lib/bars/common/bars.js.map +0 -1
- package/lib/bars/common/correct-check-icon.js +0 -54
- package/lib/bars/common/correct-check-icon.js.map +0 -1
- package/lib/bars/histogram.js +0 -59
- package/lib/bars/histogram.js.map +0 -1
- package/lib/chart-setup.js +0 -382
- package/lib/chart-setup.js.map +0 -1
- package/lib/chart-type.js +0 -80
- package/lib/chart-type.js.map +0 -1
- package/lib/chart-types.js +0 -22
- package/lib/chart-types.js.map +0 -1
- package/lib/chart.js +0 -384
- package/lib/chart.js.map +0 -1
- package/lib/common/__tests__/drag-handle.test.js +0 -74
- package/lib/common/__tests__/utils.js +0 -50
- package/lib/common/correctness-indicators.js +0 -156
- package/lib/common/correctness-indicators.js.map +0 -1
- package/lib/common/drag-handle.js +0 -160
- package/lib/common/drag-handle.js.map +0 -1
- package/lib/common/drag-icon.js +0 -52
- package/lib/common/drag-icon.js.map +0 -1
- package/lib/common/styles.js +0 -22
- package/lib/common/styles.js.map +0 -1
- package/lib/grid.js +0 -101
- package/lib/grid.js.map +0 -1
- package/lib/index.js +0 -42
- package/lib/index.js.map +0 -1
- package/lib/key-legend.js +0 -87
- package/lib/key-legend.js.map +0 -1
- package/lib/line/__tests__/line-cross.test.js +0 -47
- package/lib/line/__tests__/line-dot.test.js +0 -47
- package/lib/line/__tests__/utils.js +0 -56
- package/lib/line/common/__tests__/drag-handle.test.js +0 -74
- package/lib/line/common/__tests__/line.test.js +0 -92
- package/lib/line/common/__tests__/utils.js +0 -50
- package/lib/line/common/drag-handle.js +0 -146
- package/lib/line/common/drag-handle.js.map +0 -1
- package/lib/line/common/line.js +0 -214
- package/lib/line/common/line.js.map +0 -1
- package/lib/line/line-cross.js +0 -214
- package/lib/line/line-cross.js.map +0 -1
- package/lib/line/line-dot.js +0 -158
- package/lib/line/line-dot.js.map +0 -1
- package/lib/mark-label.js +0 -236
- package/lib/mark-label.js.map +0 -1
- package/lib/plot/__tests__/dot.test.js +0 -53
- package/lib/plot/__tests__/line.test.js +0 -53
- package/lib/plot/__tests__/utils.js +0 -50
- package/lib/plot/common/__tests__/plot.test.js +0 -79
- package/lib/plot/common/__tests__/utils.js +0 -50
- package/lib/plot/common/plot.js +0 -349
- package/lib/plot/common/plot.js.map +0 -1
- package/lib/plot/dot.js +0 -110
- package/lib/plot/dot.js.map +0 -1
- package/lib/plot/line.js +0 -140
- package/lib/plot/line.js.map +0 -1
- package/lib/tool-menu.js +0 -106
- package/lib/tool-menu.js.map +0 -1
- package/lib/utils.js +0 -189
- package/lib/utils.js.map +0 -1
package/lib/utils.js
DELETED
|
@@ -1,189 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
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;
|
|
8
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
-
var _scale = require("@visx/scale");
|
|
10
|
-
var _plot = require("@pie-lib/plot");
|
|
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) {
|
|
17
|
-
return "".concat(index, "-").concat(d.label || '-');
|
|
18
|
-
};
|
|
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'];
|
|
22
|
-
switch (type) {
|
|
23
|
-
case 'bar':
|
|
24
|
-
case 'dotPlot':
|
|
25
|
-
case 'linePlot':
|
|
26
|
-
return (0, _scale.scaleBand)({
|
|
27
|
-
range: [0, chartWidth],
|
|
28
|
-
domain: domain,
|
|
29
|
-
padding: 0.2
|
|
30
|
-
});
|
|
31
|
-
case 'histogram':
|
|
32
|
-
return (0, _scale.scaleBand)({
|
|
33
|
-
range: [0, chartWidth],
|
|
34
|
-
domain: domain,
|
|
35
|
-
padding: 0
|
|
36
|
-
});
|
|
37
|
-
case 'lineCross':
|
|
38
|
-
case 'lineDot':
|
|
39
|
-
return (0, _scale.scalePoint)({
|
|
40
|
-
domain: domain,
|
|
41
|
-
range: [0, chartWidth]
|
|
42
|
-
});
|
|
43
|
-
default:
|
|
44
|
-
return (0, _scale.scaleBand)({
|
|
45
|
-
range: [0, chartWidth],
|
|
46
|
-
domain: domain,
|
|
47
|
-
padding: 0
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
|
-
var getTickValues = exports.getTickValues = function getTickValues() {
|
|
52
|
-
var prop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
53
|
-
var tickValues = [];
|
|
54
|
-
var tickVal = prop.min;
|
|
55
|
-
while (tickVal <= prop.max) {
|
|
56
|
-
tickValues.push(tickVal);
|
|
57
|
-
tickVal = Math.round((tickVal + prop.step) * 10000) / 10000;
|
|
58
|
-
}
|
|
59
|
-
return tickValues;
|
|
60
|
-
};
|
|
61
|
-
var getDomainAndRangeByChartType = exports.getDomainAndRangeByChartType = function getDomainAndRangeByChartType(domain, range, chartType) {
|
|
62
|
-
var _ref = range || {},
|
|
63
|
-
step = _ref.step,
|
|
64
|
-
labelStep = _ref.labelStep,
|
|
65
|
-
min = _ref.min,
|
|
66
|
-
max = _ref.max;
|
|
67
|
-
if (!min) {
|
|
68
|
-
min = 0;
|
|
69
|
-
}
|
|
70
|
-
if (!max || max < 0) {
|
|
71
|
-
max = range.min + 1;
|
|
72
|
-
}
|
|
73
|
-
if (!step) {
|
|
74
|
-
step = labelStep || 1;
|
|
75
|
-
}
|
|
76
|
-
if (!labelStep || isNaN(labelStep) && step) {
|
|
77
|
-
labelStep = step || 1;
|
|
78
|
-
}
|
|
79
|
-
range.max = max;
|
|
80
|
-
switch (chartType) {
|
|
81
|
-
// if chart is dot plot or line plot, we should ignore step and make sure that min & max are integer values
|
|
82
|
-
case 'dotPlot':
|
|
83
|
-
case 'linePlot':
|
|
84
|
-
{
|
|
85
|
-
var intMin = Math.round(min);
|
|
86
|
-
var intMax = Math.round(max);
|
|
87
|
-
return {
|
|
88
|
-
domain: _objectSpread(_objectSpread({}, domain), {}, {
|
|
89
|
-
step: 1,
|
|
90
|
-
labelStep: 1,
|
|
91
|
-
min: 0,
|
|
92
|
-
max: 1
|
|
93
|
-
}),
|
|
94
|
-
range: _objectSpread(_objectSpread({}, range), {}, {
|
|
95
|
-
min: intMin,
|
|
96
|
-
max: intMin === intMax ? intMin + 1 : intMax,
|
|
97
|
-
labelStep: labelStep,
|
|
98
|
-
step: 1
|
|
99
|
-
})
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
default:
|
|
103
|
-
return {
|
|
104
|
-
domain: _objectSpread(_objectSpread({}, domain), {}, {
|
|
105
|
-
step: 1,
|
|
106
|
-
labelStep: 1,
|
|
107
|
-
min: 0,
|
|
108
|
-
max: 1
|
|
109
|
-
}),
|
|
110
|
-
range: _objectSpread(_objectSpread({}, range), {}, {
|
|
111
|
-
labelStep: labelStep,
|
|
112
|
-
step: step
|
|
113
|
-
})
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
};
|
|
117
|
-
var getGridLinesAndAxisByChartType = exports.getGridLinesAndAxisByChartType = function getGridLinesAndAxisByChartType(range, chartType) {
|
|
118
|
-
switch (chartType) {
|
|
119
|
-
case 'lineDot':
|
|
120
|
-
case 'lineCross':
|
|
121
|
-
return {
|
|
122
|
-
verticalLines: undefined,
|
|
123
|
-
horizontalLines: getTickValues(range),
|
|
124
|
-
leftAxis: true
|
|
125
|
-
};
|
|
126
|
-
case 'dotPlot':
|
|
127
|
-
case 'linePlot':
|
|
128
|
-
return {
|
|
129
|
-
verticalLines: [],
|
|
130
|
-
horizontalLines: [],
|
|
131
|
-
leftAxis: false
|
|
132
|
-
};
|
|
133
|
-
default:
|
|
134
|
-
return {
|
|
135
|
-
verticalLines: [],
|
|
136
|
-
horizontalLines: getTickValues(range),
|
|
137
|
-
leftAxis: true
|
|
138
|
-
};
|
|
139
|
-
}
|
|
140
|
-
};
|
|
141
|
-
var getRotateAngle = exports.getRotateAngle = function getRotateAngle(fontSize, height) {
|
|
142
|
-
if (height >= fontSize * 2) {
|
|
143
|
-
return 25;
|
|
144
|
-
}
|
|
145
|
-
return 0;
|
|
146
|
-
};
|
|
147
|
-
var getTopPadding = exports.getTopPadding = function getTopPadding(barWidth) {
|
|
148
|
-
if (barWidth < 30) {
|
|
149
|
-
return 50;
|
|
150
|
-
}
|
|
151
|
-
if (barWidth < 40) {
|
|
152
|
-
return 30;
|
|
153
|
-
}
|
|
154
|
-
if (barWidth < 60) {
|
|
155
|
-
return 15;
|
|
156
|
-
}
|
|
157
|
-
return 0;
|
|
158
|
-
};
|
|
159
|
-
|
|
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) {
|
|
162
|
-
var scale, deltay;
|
|
163
|
-
if (width > 91) {
|
|
164
|
-
scale = 1.3;
|
|
165
|
-
deltay = -55;
|
|
166
|
-
} else if (width > 45) {
|
|
167
|
-
scale = 1.1;
|
|
168
|
-
deltay = -45;
|
|
169
|
-
} else if (width > 40) {
|
|
170
|
-
scale = 0.5 + (width - 34) * 0.02;
|
|
171
|
-
deltay = -25;
|
|
172
|
-
} else if (width > 30) {
|
|
173
|
-
scale = 0.5 + (width - 34) * 0.02;
|
|
174
|
-
deltay = -20;
|
|
175
|
-
} else {
|
|
176
|
-
scale = 0.5 * Math.pow(0.98, 34 - width); // 0.98 is the reduction factor. Adjust to control scaling.
|
|
177
|
-
deltay = -15;
|
|
178
|
-
}
|
|
179
|
-
return {
|
|
180
|
-
scale: scale,
|
|
181
|
-
deltay: deltay
|
|
182
|
-
};
|
|
183
|
-
};
|
|
184
|
-
var getAdjustedX = exports.getAdjustedX = function getAdjustedX(width, scaleValue) {
|
|
185
|
-
var innerWidthOriginal = 57;
|
|
186
|
-
var effectiveInnerWidth = innerWidthOriginal * scaleValue;
|
|
187
|
-
return (width - effectiveInnerWidth) / 2;
|
|
188
|
-
};
|
|
189
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc2NhbGUiLCJyZXF1aXJlIiwiX3Bsb3QiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsInRpY2tDb3VudCIsImV4cG9ydHMiLCJ1dGlscyIsImJvdW5kcyIsInBvaW50IiwiYmFuZEtleSIsImQiLCJpbmRleCIsImNvbmNhdCIsImxhYmVsIiwiZGF0YVRvWEJhbmQiLCJzY2FsZVgiLCJkYXRhIiwid2lkdGgiLCJ0eXBlIiwiY2hhcnRXaWR0aCIsImRvbWFpbiIsIm1hcCIsInNjYWxlQmFuZCIsInJhbmdlIiwicGFkZGluZyIsInNjYWxlUG9pbnQiLCJnZXRUaWNrVmFsdWVzIiwicHJvcCIsInVuZGVmaW5lZCIsInRpY2tWYWx1ZXMiLCJ0aWNrVmFsIiwibWluIiwibWF4IiwiTWF0aCIsInJvdW5kIiwic3RlcCIsImdldERvbWFpbkFuZFJhbmdlQnlDaGFydFR5cGUiLCJjaGFydFR5cGUiLCJfcmVmIiwibGFiZWxTdGVwIiwiaXNOYU4iLCJpbnRNaW4iLCJpbnRNYXgiLCJnZXRHcmlkTGluZXNBbmRBeGlzQnlDaGFydFR5cGUiLCJ2ZXJ0aWNhbExpbmVzIiwiaG9yaXpvbnRhbExpbmVzIiwibGVmdEF4aXMiLCJnZXRSb3RhdGVBbmdsZSIsImZvbnRTaXplIiwiaGVpZ2h0IiwiZ2V0VG9wUGFkZGluZyIsImJhcldpZHRoIiwiZ2V0U2NhbGUiLCJzY2FsZSIsImRlbHRheSIsInBvdyIsImdldEFkanVzdGVkWCIsInNjYWxlVmFsdWUiLCJpbm5lcldpZHRoT3JpZ2luYWwiLCJlZmZlY3RpdmVJbm5lcldpZHRoIl0sInNvdXJjZXMiOlsiLi4vc3JjL3V0aWxzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNjYWxlQmFuZCwgc2NhbGVQb2ludCB9IGZyb20gJ0B2aXN4L3NjYWxlJztcbmltcG9ydCB7IHV0aWxzIH0gZnJvbSAnQHBpZS1saWIvcGxvdCc7XG5cbmV4cG9ydCBjb25zdCB0aWNrQ291bnQgPSB1dGlscy50aWNrQ291bnQ7XG5leHBvcnQgY29uc3QgYm91bmRzID0gdXRpbHMuYm91bmRzO1xuZXhwb3J0IGNvbnN0IHBvaW50ID0gdXRpbHMucG9pbnQ7XG5cbmV4cG9ydCBjb25zdCBiYW5kS2V5ID0gKGQsIGluZGV4KSA9PiBgJHtpbmRleH0tJHtkLmxhYmVsIHx8ICctJ31gO1xuXG5leHBvcnQgY29uc3QgZGF0YVRvWEJhbmQgPSAoc2NhbGVYLCBkYXRhLCB3aWR0aCwgdHlwZSkgPT4ge1xuICBjb25zdCBjaGFydFdpZHRoID0gd2lkdGggfHwgNDAwOyAvLyBmYWxsYmFja1xuICBjb25zdCBkb21haW4gPSBkYXRhICYmIGRhdGEubGVuZ3RoID8gZGF0YS5tYXAoYmFuZEtleSkgOiBbJ2RlZmF1bHQnXTtcblxuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlICdiYXInOlxuICAgIGNhc2UgJ2RvdFBsb3QnOlxuICAgIGNhc2UgJ2xpbmVQbG90JzpcbiAgICAgIHJldHVybiBzY2FsZUJhbmQoe1xuICAgICAgICByYW5nZTogWzAsIGNoYXJ0V2lkdGhdLFxuICAgICAgICBkb21haW4sXG4gICAgICAgIHBhZGRpbmc6IDAuMixcbiAgICAgIH0pO1xuXG4gICAgY2FzZSAnaGlzdG9ncmFtJzpcbiAgICAgIHJldHVybiBzY2FsZUJhbmQoe1xuICAgICAgICByYW5nZTogWzAsIGNoYXJ0V2lkdGhdLFxuICAgICAgICBkb21haW4sXG4gICAgICAgIHBhZGRpbmc6IDAsXG4gICAgICB9KTtcblxuICAgIGNhc2UgJ2xpbmVDcm9zcyc6XG4gICAgY2FzZSAnbGluZURvdCc6XG4gICAgICByZXR1cm4gc2NhbGVQb2ludCh7XG4gICAgICAgIGRvbWFpbixcbiAgICAgICAgcmFuZ2U6IFswLCBjaGFydFdpZHRoXSxcbiAgICAgIH0pO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBzY2FsZUJhbmQoe1xuICAgICAgICByYW5nZTogWzAsIGNoYXJ0V2lkdGhdLFxuICAgICAgICBkb21haW4sXG4gICAgICAgIHBhZGRpbmc6IDAsXG4gICAgICB9KTtcbiAgfVxufTtcblxuXG5leHBvcnQgY29uc3QgZ2V0VGlja1ZhbHVlcyA9IChwcm9wID0ge30pID0+IHtcbiAgY29uc3QgdGlja1ZhbHVlcyA9IFtdO1xuICBsZXQgdGlja1ZhbCA9IHByb3AubWluO1xuXG4gIHdoaWxlICh0aWNrVmFsIDw9IHByb3AubWF4KSB7XG4gICAgdGlja1ZhbHVlcy5wdXNoKHRpY2tWYWwpO1xuICAgIHRpY2tWYWwgPSBNYXRoLnJvdW5kKCh0aWNrVmFsICsgcHJvcC5zdGVwKSAqIDEwMDAwKSAvIDEwMDAwO1xuICB9XG5cbiAgcmV0dXJuIHRpY2tWYWx1ZXM7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RG9tYWluQW5kUmFuZ2VCeUNoYXJ0VHlwZSA9IChkb21haW4sIHJhbmdlLCBjaGFydFR5cGUpID0+IHtcbiAgbGV0IHsgc3RlcCwgbGFiZWxTdGVwLCBtaW4sIG1heCB9ID0gcmFuZ2UgfHwge307XG5cbiAgaWYgKCFtaW4pIHtcbiAgICBtaW4gPSAwO1xuICB9XG5cbiAgaWYgKCFtYXggfHwgbWF4IDwgMCkge1xuICAgIG1heCA9IHJhbmdlLm1pbiArIDE7XG4gIH1cblxuICBpZiAoIXN0ZXApIHtcbiAgICBzdGVwID0gbGFiZWxTdGVwIHx8IDE7XG4gIH1cbiAgaWYgKCFsYWJlbFN0ZXAgfHwgKGlzTmFOKGxhYmVsU3RlcCkgJiYgc3RlcCkpIHtcbiAgICBsYWJlbFN0ZXAgPSBzdGVwIHx8IDE7XG4gIH1cblxuICByYW5nZS5tYXggPSBtYXg7XG5cbiAgc3dpdGNoIChjaGFydFR5cGUpIHtcbiAgICAvLyBpZiBjaGFydCBpcyBkb3QgcGxvdCBvciBsaW5lIHBsb3QsIHdlIHNob3VsZCBpZ25vcmUgc3RlcCBhbmQgbWFrZSBzdXJlIHRoYXQgbWluICYgbWF4IGFyZSBpbnRlZ2VyIHZhbHVlc1xuICAgIGNhc2UgJ2RvdFBsb3QnOlxuICAgIGNhc2UgJ2xpbmVQbG90Jzoge1xuICAgICAgY29uc3QgaW50TWluID0gTWF0aC5yb3VuZChtaW4pO1xuICAgICAgY29uc3QgaW50TWF4ID0gTWF0aC5yb3VuZChtYXgpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBkb21haW46IHtcbiAgICAgICAgICAuLi5kb21haW4sXG4gICAgICAgICAgc3RlcDogMSxcbiAgICAgICAgICBsYWJlbFN0ZXA6IDEsXG4gICAgICAgICAgbWluOiAwLFxuICAgICAgICAgIG1heDogMSxcbiAgICAgICAgfSxcbiAgICAgICAgcmFuZ2U6IHtcbiAgICAgICAgICAuLi5yYW5nZSxcbiAgICAgICAgICBtaW46IGludE1pbixcbiAgICAgICAgICBtYXg6IGludE1pbiA9PT0gaW50TWF4ID8gaW50TWluICsgMSA6IGludE1heCxcbiAgICAgICAgICBsYWJlbFN0ZXAsXG4gICAgICAgICAgc3RlcDogMSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRvbWFpbjoge1xuICAgICAgICAgIC4uLmRvbWFpbixcbiAgICAgICAgICBzdGVwOiAxLFxuICAgICAgICAgIGxhYmVsU3RlcDogMSxcbiAgICAgICAgICBtaW46IDAsXG4gICAgICAgICAgbWF4OiAxLFxuICAgICAgICB9LFxuICAgICAgICByYW5nZToge1xuICAgICAgICAgIC4uLnJhbmdlLFxuICAgICAgICAgIGxhYmVsU3RlcCxcbiAgICAgICAgICBzdGVwLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGdldEdyaWRMaW5lc0FuZEF4aXNCeUNoYXJ0VHlwZSA9IChyYW5nZSwgY2hhcnRUeXBlKSA9PiB7XG4gIHN3aXRjaCAoY2hhcnRUeXBlKSB7XG4gICAgY2FzZSAnbGluZURvdCc6XG4gICAgY2FzZSAnbGluZUNyb3NzJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHZlcnRpY2FsTGluZXM6IHVuZGVmaW5lZCxcbiAgICAgICAgaG9yaXpvbnRhbExpbmVzOiBnZXRUaWNrVmFsdWVzKHJhbmdlKSxcbiAgICAgICAgbGVmdEF4aXM6IHRydWUsXG4gICAgICB9O1xuXG4gICAgY2FzZSAnZG90UGxvdCc6XG4gICAgY2FzZSAnbGluZVBsb3QnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdmVydGljYWxMaW5lczogW10sXG4gICAgICAgIGhvcml6b250YWxMaW5lczogW10sXG4gICAgICAgIGxlZnRBeGlzOiBmYWxzZSxcbiAgICAgIH07XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdmVydGljYWxMaW5lczogW10sXG4gICAgICAgIGhvcml6b250YWxMaW5lczogZ2V0VGlja1ZhbHVlcyhyYW5nZSksXG4gICAgICAgIGxlZnRBeGlzOiB0cnVlLFxuICAgICAgfTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGdldFJvdGF0ZUFuZ2xlID0gKGZvbnRTaXplLCBoZWlnaHQpID0+IHtcbiAgaWYgKGhlaWdodCA+PSBmb250U2l6ZSAqIDIpIHtcbiAgICByZXR1cm4gMjU7XG4gIH1cblxuICByZXR1cm4gMDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRUb3BQYWRkaW5nID0gKGJhcldpZHRoKSA9PiB7XG4gIGlmIChiYXJXaWR0aCA8IDMwKSB7XG4gICAgcmV0dXJuIDUwO1xuICB9XG5cbiAgaWYgKGJhcldpZHRoIDwgNDApIHtcbiAgICByZXR1cm4gMzA7XG4gIH1cblxuICBpZiAoYmFyV2lkdGggPCA2MCkge1xuICAgIHJldHVybiAxNTtcbiAgfVxuXG4gIHJldHVybiAwO1xufTtcblxuLy8gVGhpcyBmdW5jdGlvbiBjYWxjdWxhdGVzIHRoZSB0cmFuc2Zvcm1hdGlvbiBzY2FsZSBmb3IgU1ZHIGFuZCB0aGUgaWNvbidzIHZlcnRpY2FsIGRpc3RhbmNlIGZyb20gaXRzIGNhdGVnb3J5XG5leHBvcnQgY29uc3QgZ2V0U2NhbGUgPSAod2lkdGgpID0+IHtcbiAgbGV0IHNjYWxlLCBkZWx0YXk7XG5cbiAgaWYgKHdpZHRoID4gOTEpIHtcbiAgICBzY2FsZSA9IDEuMztcbiAgICBkZWx0YXkgPSAtNTU7XG4gIH0gZWxzZSBpZiAod2lkdGggPiA0NSkge1xuICAgIHNjYWxlID0gMS4xO1xuICAgIGRlbHRheSA9IC00NTtcbiAgfSBlbHNlIGlmICh3aWR0aCA+IDQwKSB7XG4gICAgc2NhbGUgPSAwLjUgKyAod2lkdGggLSAzNCkgKiAwLjAyO1xuICAgIGRlbHRheSA9IC0yNTtcbiAgfSBlbHNlIGlmICh3aWR0aCA+IDMwKSB7XG4gICAgc2NhbGUgPSAwLjUgKyAod2lkdGggLSAzNCkgKiAwLjAyO1xuICAgIGRlbHRheSA9IC0yMDtcbiAgfSBlbHNlIHtcbiAgICBzY2FsZSA9IDAuNSAqIE1hdGgucG93KDAuOTgsIDM0IC0gd2lkdGgpOyAvLyAwLjk4IGlzIHRoZSByZWR1Y3Rpb24gZmFjdG9yLiBBZGp1c3QgdG8gY29udHJvbCBzY2FsaW5nLlxuICAgIGRlbHRheSA9IC0xNTtcbiAgfVxuXG4gIHJldHVybiB7IHNjYWxlLCBkZWx0YXkgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRBZGp1c3RlZFggPSAod2lkdGgsIHNjYWxlVmFsdWUpID0+IHtcbiAgY29uc3QgaW5uZXJXaWR0aE9yaWdpbmFsID0gNTc7XG4gIGNvbnN0IGVmZmVjdGl2ZUlubmVyV2lkdGggPSBpbm5lcldpZHRoT3JpZ2luYWwgKiBzY2FsZVZhbHVlO1xuICByZXR1cm4gKHdpZHRoIC0gZWZmZWN0aXZlSW5uZXJXaWR0aCkgLyAyO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLE9B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
|
package/lib/utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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":[]}
|