@pie-lib/charting 5.16.1-beta.0 → 5.18.0
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.json +1 -581
- package/CHANGELOG.md +145 -1
- package/lib/actions-button.js +174 -0
- package/lib/actions-button.js.map +1 -0
- package/lib/axes.js +614 -0
- package/lib/axes.js.map +1 -0
- package/lib/bars/bar.js +86 -0
- package/lib/bars/bar.js.map +1 -0
- package/lib/bars/common/bars.js +299 -0
- package/lib/bars/common/bars.js.map +1 -0
- package/lib/bars/histogram.js +87 -0
- package/lib/bars/histogram.js.map +1 -0
- package/lib/chart-setup.js +458 -0
- package/lib/chart-setup.js.map +1 -0
- package/lib/chart-type.js +71 -0
- package/lib/chart-type.js.map +1 -0
- package/lib/chart-types.js +31 -0
- package/lib/chart-types.js.map +1 -0
- package/lib/chart.js +447 -0
- package/lib/chart.js.map +1 -0
- package/lib/common/drag-handle.js +175 -0
- package/lib/common/drag-handle.js.map +1 -0
- package/lib/common/drag-icon.js +52 -0
- package/lib/common/drag-icon.js.map +1 -0
- package/lib/common/styles.js +40 -0
- package/lib/common/styles.js.map +1 -0
- package/lib/grid.js +141 -0
- package/lib/grid.js.map +1 -0
- package/lib/index.js +48 -0
- package/lib/index.js.map +1 -0
- package/lib/key-legend.js +111 -0
- package/lib/key-legend.js.map +1 -0
- package/lib/line/common/drag-handle.js +151 -0
- package/lib/line/common/drag-handle.js.map +1 -0
- package/lib/line/common/line.js +257 -0
- package/lib/line/common/line.js.map +1 -0
- package/lib/line/line-cross.js +203 -0
- package/lib/line/line-cross.js.map +1 -0
- package/lib/line/line-dot.js +156 -0
- package/lib/line/line-dot.js.map +1 -0
- package/lib/mark-label.js +260 -0
- package/lib/mark-label.js.map +1 -0
- package/lib/plot/common/plot.js +281 -0
- package/lib/plot/common/plot.js.map +1 -0
- package/lib/plot/dot.js +123 -0
- package/lib/plot/dot.js.map +1 -0
- package/lib/plot/line.js +152 -0
- package/lib/plot/line.js.map +1 -0
- package/lib/shared/index.js +136 -0
- package/lib/tool-menu.js +142 -0
- package/lib/tool-menu.js.map +1 -0
- package/lib/utils.js +244 -0
- package/lib/utils.js.map +1 -0
- package/package.json +5 -38
- package/src/__tests__/__snapshots__/axes.test.jsx.snap +1 -0
- package/src/__tests__/__snapshots__/chart.test.jsx.snap +0 -18
- package/src/__tests__/__snapshots__/grid.test.jsx.snap +61 -17
- package/src/__tests__/axes.test.jsx +0 -5
- package/src/__tests__/chart.test.jsx +8 -0
- package/src/actions-button.jsx +109 -0
- package/src/axes.jsx +4 -30
- package/src/bars/common/bars.jsx +8 -10
- package/src/chart-setup.jsx +1 -1
- package/src/chart.jsx +31 -26
- package/src/common/drag-handle.jsx +3 -3
- package/src/common/styles.js +1 -1
- package/src/grid.jsx +38 -13
- package/src/index.js +2 -1
- package/src/key-legend.jsx +75 -0
- package/src/line/common/drag-handle.jsx +3 -9
- package/src/line/common/line.jsx +2 -6
- package/src/line/line-cross.js +29 -2
- package/src/line/line-dot.js +36 -19
- package/src/mark-label.jsx +7 -2
- package/src/plot/common/plot.jsx +8 -5
- package/src/tool-menu.jsx +1 -1
package/lib/utils.js
ADDED
|
@@ -0,0 +1,244 @@
|
|
|
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
ADDED
|
@@ -0,0 +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":"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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"}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "5.
|
|
6
|
+
"version": "5.18.0",
|
|
7
7
|
"description": "charting",
|
|
8
8
|
"keywords": [
|
|
9
9
|
"react",
|
|
@@ -19,20 +19,8 @@
|
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@mapbox/point-geometry": "^0.1.0",
|
|
21
21
|
"@material-ui/core": "^3.8.3",
|
|
22
|
-
"@
|
|
23
|
-
"@pie-
|
|
24
|
-
"@pie-framework/mathquill": "1.1.4",
|
|
25
|
-
"@pie-lib/config-ui": "beta",
|
|
26
|
-
"@pie-lib/drag": "beta",
|
|
27
|
-
"@pie-lib/editable-html": "beta",
|
|
28
|
-
"@pie-lib/icons": "beta",
|
|
29
|
-
"@pie-lib/math-input": "beta",
|
|
30
|
-
"@pie-lib/math-rendering": "beta",
|
|
31
|
-
"@pie-lib/math-toolbar": "beta",
|
|
32
|
-
"@pie-lib/plot": "^2.8.1-beta.0",
|
|
33
|
-
"@pie-lib/render-ui": "beta",
|
|
34
|
-
"@pie-lib/test-utils": "beta",
|
|
35
|
-
"@pie-lib/translator": "^2.4.1-beta.0",
|
|
22
|
+
"@pie-lib/plot": "beta",
|
|
23
|
+
"@pie-lib/translator": "beta",
|
|
36
24
|
"@vx/axis": "^0.0.183",
|
|
37
25
|
"@vx/event": "^0.0.182",
|
|
38
26
|
"@vx/grid": "^0.0.183",
|
|
@@ -44,38 +32,17 @@
|
|
|
44
32
|
"d3-scale": "^2.1.2",
|
|
45
33
|
"d3-selection": "^1.3.2",
|
|
46
34
|
"debug": "^4.1.1",
|
|
47
|
-
"immutable": "^4.0.0-rc.12",
|
|
48
35
|
"invariant": "^2.2.4",
|
|
49
36
|
"lodash": "^4.17.11",
|
|
50
|
-
"mathjax-full": "3.2.2",
|
|
51
|
-
"mathjs": "^7.0.1",
|
|
52
|
-
"prop-types": "^15.7.2",
|
|
53
37
|
"react": "^16.8.1",
|
|
54
|
-
"react-attr-converter": "^0.3.1",
|
|
55
|
-
"react-dnd": "^14.0.5",
|
|
56
|
-
"react-dnd-html5-backend": "^14.0.2",
|
|
57
|
-
"react-dnd-multi-backend": "^6.0.2",
|
|
58
|
-
"react-dnd-touch-backend": "^12.0.0",
|
|
59
|
-
"react-dom": "^16.9.0",
|
|
60
38
|
"react-draggable": "^3.1.1",
|
|
61
39
|
"react-input-autosize": "^2.2.1",
|
|
62
|
-
"react-measure": "^2.2.2",
|
|
63
40
|
"react-redux": "^6.0.0",
|
|
64
|
-
"react-transition-group": "^2.5.2",
|
|
65
41
|
"redux": "^4.0.1",
|
|
66
|
-
"redux-undo": "
|
|
67
|
-
"slate": "^0.36.2",
|
|
68
|
-
"slate-edit-list": "^0.12.1",
|
|
69
|
-
"slate-edit-table": "^0.17.0",
|
|
70
|
-
"slate-html-serializer": "^0.6.12",
|
|
71
|
-
"slate-plain-serializer": "^0.5.26",
|
|
72
|
-
"slate-prop-types": "^0.4.38",
|
|
73
|
-
"slate-react": "^0.14.3",
|
|
74
|
-
"slate-soft-break": "^0.8.1",
|
|
75
|
-
"to-style": "^1.3.3"
|
|
42
|
+
"redux-undo": "latest"
|
|
76
43
|
},
|
|
77
44
|
"peerDependencies": {
|
|
78
45
|
"react": "^16.8.1"
|
|
79
46
|
},
|
|
80
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "ecb1ca31aa1c24d23af00d5ad04ce73ed8871057"
|
|
81
48
|
}
|
|
@@ -4,12 +4,6 @@ exports[`ChartAxes snapshot renders 1`] = `
|
|
|
4
4
|
<div
|
|
5
5
|
className="className"
|
|
6
6
|
>
|
|
7
|
-
<div>
|
|
8
|
-
<ToolMenu
|
|
9
|
-
addCategory={[Function]}
|
|
10
|
-
disabled={true}
|
|
11
|
-
/>
|
|
12
|
-
</div>
|
|
13
7
|
<WithStyles(Root)
|
|
14
8
|
defineChart={false}
|
|
15
9
|
disabledLabels={true}
|
|
@@ -205,12 +199,6 @@ exports[`ChartAxes snapshot renders if size is not defined 1`] = `
|
|
|
205
199
|
<div
|
|
206
200
|
className="className"
|
|
207
201
|
>
|
|
208
|
-
<div>
|
|
209
|
-
<ToolMenu
|
|
210
|
-
addCategory={[Function]}
|
|
211
|
-
disabled={true}
|
|
212
|
-
/>
|
|
213
|
-
</div>
|
|
214
202
|
<WithStyles(Root)
|
|
215
203
|
defineChart={false}
|
|
216
204
|
disabledLabels={true}
|
|
@@ -410,12 +398,6 @@ exports[`ChartAxes snapshot renders without chartType property 1`] = `
|
|
|
410
398
|
<div
|
|
411
399
|
className="className"
|
|
412
400
|
>
|
|
413
|
-
<div>
|
|
414
|
-
<ToolMenu
|
|
415
|
-
addCategory={[Function]}
|
|
416
|
-
disabled={true}
|
|
417
|
-
/>
|
|
418
|
-
</div>
|
|
419
401
|
<WithStyles(Root)
|
|
420
402
|
defineChart={false}
|
|
421
403
|
disabledLabels={true}
|
|
@@ -1,28 +1,72 @@
|
|
|
1
1
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
2
|
|
|
3
3
|
exports[`Grid snapshot renders 1`] = `
|
|
4
|
-
<
|
|
4
|
+
<g
|
|
5
5
|
className="className"
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
>
|
|
7
|
+
<q
|
|
8
|
+
lineStyle={
|
|
9
|
+
Object {
|
|
10
|
+
"stroke": "var(--pie-faded-primary, #DCDAFB)",
|
|
11
|
+
"strokeWidth": 1,
|
|
12
|
+
}
|
|
12
13
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
scale={[MockFunction]}
|
|
15
|
+
tickValues={Array []}
|
|
16
|
+
width={400}
|
|
17
|
+
/>
|
|
18
|
+
<q
|
|
19
|
+
lineStyle={
|
|
20
|
+
Object {
|
|
21
|
+
"stroke": "#8E88EA",
|
|
22
|
+
"strokeWidth": 1,
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
scale={[MockFunction]}
|
|
26
|
+
tickValues={Array []}
|
|
27
|
+
width={400}
|
|
28
|
+
/>
|
|
29
|
+
<V
|
|
30
|
+
height={400}
|
|
31
|
+
offset={NaN}
|
|
32
|
+
scale={
|
|
33
|
+
Object {
|
|
34
|
+
"bandwidth": [Function],
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/>
|
|
38
|
+
</g>
|
|
16
39
|
`;
|
|
17
40
|
|
|
18
41
|
exports[`Grid snapshot renders if graphProps is not defined 1`] = `
|
|
19
|
-
<
|
|
42
|
+
<g
|
|
20
43
|
className="className"
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
44
|
+
>
|
|
45
|
+
<q
|
|
46
|
+
lineStyle={
|
|
47
|
+
Object {
|
|
48
|
+
"stroke": "var(--pie-faded-primary, #DCDAFB)",
|
|
49
|
+
"strokeWidth": 1,
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
tickValues={Array []}
|
|
53
|
+
/>
|
|
54
|
+
<q
|
|
55
|
+
lineStyle={
|
|
56
|
+
Object {
|
|
57
|
+
"stroke": "#8E88EA",
|
|
58
|
+
"strokeWidth": 1,
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
tickValues={Array []}
|
|
62
|
+
/>
|
|
63
|
+
<V
|
|
64
|
+
offset={NaN}
|
|
65
|
+
scale={
|
|
66
|
+
Object {
|
|
67
|
+
"bandwidth": [Function],
|
|
68
|
+
}
|
|
25
69
|
}
|
|
26
|
-
|
|
27
|
-
|
|
70
|
+
/>
|
|
71
|
+
</g>
|
|
28
72
|
`;
|
|
@@ -137,10 +137,5 @@ describe('TickComponent', () => {
|
|
|
137
137
|
w.instance().changeCategory(0, 'new label');
|
|
138
138
|
expect(onChangeCategory).toHaveBeenCalledWith(0, { value: 1, label: 'new label' });
|
|
139
139
|
});
|
|
140
|
-
|
|
141
|
-
it('calls onChange', () => {
|
|
142
|
-
w.instance().deleteCategory(0);
|
|
143
|
-
expect(onChange).toHaveBeenCalledWith([]);
|
|
144
|
-
});
|
|
145
140
|
});
|
|
146
141
|
});
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import { withStyles } from '@material-ui/core/styles';
|
|
4
|
+
import Button from '@material-ui/core/Button';
|
|
5
|
+
import Popover from '@material-ui/core/Popover';
|
|
6
|
+
import Paper from '@material-ui/core/Paper';
|
|
7
|
+
|
|
8
|
+
import { color } from '../../render-ui/src/index';
|
|
9
|
+
import Translator from '@pie-lib/translator';
|
|
10
|
+
|
|
11
|
+
const { translator } = Translator;
|
|
12
|
+
|
|
13
|
+
export class ActionsButton extends React.Component {
|
|
14
|
+
constructor(props) {
|
|
15
|
+
super(props);
|
|
16
|
+
this.state = {
|
|
17
|
+
actionsAnchorEl: null,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
static propTypes = {
|
|
22
|
+
classes: PropTypes.object.isRequired,
|
|
23
|
+
categories: PropTypes.array,
|
|
24
|
+
addCategory: PropTypes.func.isRequired,
|
|
25
|
+
deleteCategory: PropTypes.func.isRequired,
|
|
26
|
+
language: PropTypes.string.isRequired,
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
handleActionsClick = (event) => {
|
|
30
|
+
this.setState({ actionsAnchorEl: event.currentTarget });
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
handleActionsClose = () => {
|
|
34
|
+
this.setState({ actionsAnchorEl: null });
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
handleAddCategory = () => {
|
|
38
|
+
const { addCategory } = this.props;
|
|
39
|
+
addCategory();
|
|
40
|
+
this.handleActionsClose();
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
handleDeleteCategory = (index) => {
|
|
44
|
+
const { deleteCategory } = this.props;
|
|
45
|
+
deleteCategory(index);
|
|
46
|
+
this.handleActionsClose();
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
render() {
|
|
50
|
+
const { classes, categories, language } = this.props;
|
|
51
|
+
|
|
52
|
+
return (
|
|
53
|
+
<div className={classes.actions}>
|
|
54
|
+
<div role="button" tabIndex={0} className={classes.trigger} onClick={this.handleActionsClick}>
|
|
55
|
+
Actions
|
|
56
|
+
</div>
|
|
57
|
+
<Popover
|
|
58
|
+
open={Boolean(this.state.actionsAnchorEl)}
|
|
59
|
+
anchorEl={this.state.actionsAnchorEl}
|
|
60
|
+
onClose={this.handleActionsClose}
|
|
61
|
+
anchorOrigin={{ vertical: 'bottom', horizontal: 'left' }}
|
|
62
|
+
transformOrigin={{ vertical: 'top', horizontal: 'left' }}
|
|
63
|
+
>
|
|
64
|
+
<Paper className={classes.actionsPaper}>
|
|
65
|
+
<Button onClick={() => this.handleAddCategory()}>
|
|
66
|
+
+ {translator.t('charting.add', { lng: language })}
|
|
67
|
+
</Button>
|
|
68
|
+
{categories.length > 0 &&
|
|
69
|
+
categories.map(
|
|
70
|
+
(category, index) =>
|
|
71
|
+
category.deletable &&
|
|
72
|
+
!category.correctness && (
|
|
73
|
+
<Button key={index} onClick={() => this.handleDeleteCategory(index)}>
|
|
74
|
+
{`${translator.t('charting.delete', { lng: language })} <${category.label ||
|
|
75
|
+
translator.t('charting.newLabel', { lng: language })}>`}
|
|
76
|
+
</Button>
|
|
77
|
+
),
|
|
78
|
+
)}
|
|
79
|
+
</Paper>
|
|
80
|
+
</Popover>
|
|
81
|
+
</div>
|
|
82
|
+
);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
const styles = (theme) => ({
|
|
87
|
+
actions: {
|
|
88
|
+
alignSelf: 'flex-end',
|
|
89
|
+
},
|
|
90
|
+
trigger: {
|
|
91
|
+
cursor: 'pointer',
|
|
92
|
+
fontSize: theme.typography.fontSize,
|
|
93
|
+
color: color.tertiary(),
|
|
94
|
+
},
|
|
95
|
+
actionsPaper: {
|
|
96
|
+
padding: theme.spacing.unit,
|
|
97
|
+
display: 'flex',
|
|
98
|
+
flexDirection: 'column',
|
|
99
|
+
gap: theme.spacing.unit,
|
|
100
|
+
'& button': {
|
|
101
|
+
textTransform: 'none',
|
|
102
|
+
fontSize: theme.typography.fontSize,
|
|
103
|
+
color: color.text(),
|
|
104
|
+
justifyContent: 'flex-start',
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
export default withStyles(styles)(ActionsButton);
|
package/src/axes.jsx
CHANGED
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import { withStyles } from '@material-ui/core/styles';
|
|
4
4
|
import { types } from '@pie-lib/plot';
|
|
5
|
-
import { color } from '
|
|
5
|
+
import { color } from '../../render-ui/src/index';
|
|
6
6
|
import { AlertDialog } from '@pie-lib/config-ui';
|
|
7
7
|
import { AxisLeft, AxisBottom } from '@vx/axis';
|
|
8
8
|
import { bandKey, getTickValues, getRotateAngle } from './utils';
|
|
@@ -45,14 +45,6 @@ export class TickComponent extends React.Component {
|
|
|
45
45
|
onChangeCategory(index, { ...category, label: newLabel });
|
|
46
46
|
};
|
|
47
47
|
|
|
48
|
-
deleteCategory = (index) => {
|
|
49
|
-
const { categories, onChange } = this.props;
|
|
50
|
-
|
|
51
|
-
if (index >= 0 && categories[index]) {
|
|
52
|
-
onChange([...categories.slice(0, index), ...categories.slice(index + 1)]);
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
|
|
56
48
|
changeInteractive = (index, value) => {
|
|
57
49
|
const { categories, onChangeCategory } = this.props;
|
|
58
50
|
const category = categories[index];
|
|
@@ -144,7 +136,7 @@ export class TickComponent extends React.Component {
|
|
|
144
136
|
const { changeEditable, changeInteractive } = chartingOptions || {};
|
|
145
137
|
const index = parseInt(formattedValue.split('-')[0], 10);
|
|
146
138
|
const category = categories[index];
|
|
147
|
-
const {
|
|
139
|
+
const { editable, interactive, label, correctness } = category || {};
|
|
148
140
|
const barX = xBand(bandKey({ label }, index));
|
|
149
141
|
const longestCategory = (categories || []).reduce((a, b) => {
|
|
150
142
|
const lengthA = a && a.label ? a.label.length : 0;
|
|
@@ -185,6 +177,7 @@ export class TickComponent extends React.Component {
|
|
|
185
177
|
rotate={rotate}
|
|
186
178
|
correctness={correctness}
|
|
187
179
|
error={error && error[index]}
|
|
180
|
+
limitCharacters
|
|
188
181
|
/>
|
|
189
182
|
</foreignObject>
|
|
190
183
|
|
|
@@ -194,24 +187,6 @@ export class TickComponent extends React.Component {
|
|
|
194
187
|
</text>
|
|
195
188
|
)}
|
|
196
189
|
|
|
197
|
-
{deletable && !correctness && (
|
|
198
|
-
<line x1={x} y1={0} x2={x} y2={y + 4 + top} className={classes.dottedLine} strokeDasharray="4 2" />
|
|
199
|
-
)}
|
|
200
|
-
|
|
201
|
-
{deletable && !correctness && (
|
|
202
|
-
<svg
|
|
203
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
204
|
-
x={x - 8}
|
|
205
|
-
y={y + 60 + top}
|
|
206
|
-
width={16}
|
|
207
|
-
height={16}
|
|
208
|
-
viewBox="0 0 512 512"
|
|
209
|
-
onClick={() => this.deleteCategory(index)}
|
|
210
|
-
>
|
|
211
|
-
<path d="M128 405.429C128 428.846 147.198 448 170.667 448h170.667C364.802 448 384 428.846 384 405.429V160H128v245.429zM416 96h-80l-26.785-32H202.786L176 96H96v32h320V96z" />
|
|
212
|
-
</svg>
|
|
213
|
-
)}
|
|
214
|
-
|
|
215
190
|
{defineChart && index === 0 && (
|
|
216
191
|
<svg
|
|
217
192
|
x={-55}
|
|
@@ -493,7 +468,7 @@ const ChartAxes = withStyles(
|
|
|
493
468
|
strokeWidth: 2,
|
|
494
469
|
},
|
|
495
470
|
axisLine: {
|
|
496
|
-
stroke: color.
|
|
471
|
+
stroke: color.visualElementsColors.AXIS_LINE_COLOR,
|
|
497
472
|
strokeWidth: 2,
|
|
498
473
|
},
|
|
499
474
|
tick: {
|
|
@@ -501,7 +476,6 @@ const ChartAxes = withStyles(
|
|
|
501
476
|
stroke: color.primaryDark(),
|
|
502
477
|
strokeWidth: 2,
|
|
503
478
|
},
|
|
504
|
-
fill: color.primaryDark(),
|
|
505
479
|
fontFamily: theme.typography.body1.fontFamily,
|
|
506
480
|
fontSize: theme.typography.fontSize,
|
|
507
481
|
textAnchor: 'middle',
|