@pie-lib/charting 5.1.8 → 5.2.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 +15 -0
- package/CHANGELOG.md +21 -0
- package/lib/axes.js +14 -23
- package/lib/axes.js.map +1 -1
- package/lib/chart.js +28 -7
- package/lib/chart.js.map +1 -1
- package/lib/common/drag-handle.js +1 -1
- package/lib/common/drag-handle.js.map +1 -1
- package/package.json +3 -3
- package/src/axes.jsx +50 -58
- package/src/chart.jsx +24 -7
- package/src/common/drag-handle.jsx +1 -1
package/CHANGELOG.json
CHANGED
|
@@ -578,5 +578,20 @@
|
|
|
578
578
|
"committerDate": "2021-03-19 19:13:17 +0200",
|
|
579
579
|
"isTagged": true,
|
|
580
580
|
"tag": "@pie-lib/charting@4.5.11"
|
|
581
|
+
},
|
|
582
|
+
{
|
|
583
|
+
"type": "fix",
|
|
584
|
+
"scope": "charting",
|
|
585
|
+
"subject": "fix conflicts",
|
|
586
|
+
"merge": null,
|
|
587
|
+
"header": "fix(charting): fix conflicts",
|
|
588
|
+
"body": null,
|
|
589
|
+
"footer": null,
|
|
590
|
+
"notes": [],
|
|
591
|
+
"hash": "2b3da1b4b87a518b5c18daf6f6c57db1ccc1c536",
|
|
592
|
+
"gitTags": "",
|
|
593
|
+
"committerDate": "2022-09-19 15:27:23 +0300",
|
|
594
|
+
"isTagged": true,
|
|
595
|
+
"tag": "@pie-lib/charting@5.2.0"
|
|
581
596
|
}
|
|
582
597
|
]
|
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,27 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [5.2.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@5.1.8...@pie-lib/charting@5.2.0) (2022-09-28)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **charting:** arrange the position of the checkboxes labels, fix style amd arrangement ([c5f2f7a](https://github.com/pie-framework/pie-lib/commit/c5f2f7acf60898e77ecc0b47b190256537605c8e))
|
|
12
|
+
* **charting:** change position for checbox labels in order to fit without overlapping the checboxes ([98a56cb](https://github.com/pie-framework/pie-lib/commit/98a56cbae47c4bcadd0d4087d6b7df3c4d5d3e2e))
|
|
13
|
+
* **charting:** fix conflicts ([2b3da1b](https://github.com/pie-framework/pie-lib/commit/2b3da1b4b87a518b5c18daf6f6c57db1ccc1c536))
|
|
14
|
+
* **charting:** increase height for category draggable zone ([922e107](https://github.com/pie-framework/pie-lib/commit/922e107101981358647937c12133fef6b78a6ea9))
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Features
|
|
18
|
+
|
|
19
|
+
* **charting:** refactor ability to edit chart title and labels, fix style ([6edcdfb](https://github.com/pie-framework/pie-lib/commit/6edcdfbfbd83806a8487c29c42ae447b11850ac7))
|
|
20
|
+
* **charting:** try to set up labels for charting, work in progress ([c6cd049](https://github.com/pie-framework/pie-lib/commit/c6cd049723dadab329748511da2f6c4f1fa943db))
|
|
21
|
+
* **graphing, plot:** moved graphing labels to plot package + fixed math input + added support for labels rotation PD-1962 ([a85ec39](https://github.com/pie-framework/pie-lib/commit/a85ec3911dd1f6bc89e4eb20a19ef8f957deebf1))
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
6
27
|
## [5.1.8](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@5.1.7...@pie-lib/charting@5.1.8) (2022-09-12)
|
|
7
28
|
|
|
8
29
|
**Note:** Version bump only for package @pie-lib/charting
|
package/lib/axes.js
CHANGED
|
@@ -238,7 +238,7 @@ var TickComponent = /*#__PURE__*/function (_React$Component) {
|
|
|
238
238
|
}), deletable && !correctness && /*#__PURE__*/_react["default"].createElement("svg", {
|
|
239
239
|
xmlns: "http://www.w3.org/2000/svg",
|
|
240
240
|
x: x - 8,
|
|
241
|
-
y: y +
|
|
241
|
+
y: y + 60 + top,
|
|
242
242
|
width: 16,
|
|
243
243
|
height: 16,
|
|
244
244
|
viewBox: "0 0 512 512",
|
|
@@ -247,16 +247,19 @@ var TickComponent = /*#__PURE__*/function (_React$Component) {
|
|
|
247
247
|
}
|
|
248
248
|
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
249
249
|
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"
|
|
250
|
-
})), defineChart && index === 0 && /*#__PURE__*/_react["default"].createElement("
|
|
251
|
-
x:
|
|
252
|
-
|
|
250
|
+
})), defineChart && index === 0 && /*#__PURE__*/_react["default"].createElement("svg", {
|
|
251
|
+
x: -55,
|
|
252
|
+
style: {
|
|
253
|
+
overflow: 'visible'
|
|
254
|
+
}
|
|
255
|
+
}, /*#__PURE__*/_react["default"].createElement("text", {
|
|
256
|
+
y: y + 90 + top,
|
|
253
257
|
width: barWidth,
|
|
254
258
|
height: 4,
|
|
255
259
|
style: {
|
|
256
260
|
position: 'absolute',
|
|
257
261
|
pointerEvents: 'none',
|
|
258
262
|
wordBreak: 'break-word',
|
|
259
|
-
overflow: 'visible',
|
|
260
263
|
maxWidth: barWidth,
|
|
261
264
|
display: 'inline-block'
|
|
262
265
|
}
|
|
@@ -266,16 +269,14 @@ var TickComponent = /*#__PURE__*/function (_React$Component) {
|
|
|
266
269
|
}, ' ', "Student can", ' '), /*#__PURE__*/_react["default"].createElement("tspan", {
|
|
267
270
|
x: "0",
|
|
268
271
|
dy: "1.2em"
|
|
269
|
-
}, ' ', "set value")),
|
|
270
|
-
|
|
271
|
-
y: y + 80 + top,
|
|
272
|
+
}, ' ', "set value")), /*#__PURE__*/_react["default"].createElement("text", {
|
|
273
|
+
y: y + 145 + top,
|
|
272
274
|
width: barWidth,
|
|
273
275
|
height: 4,
|
|
274
276
|
style: {
|
|
275
277
|
position: 'absolute',
|
|
276
278
|
pointerEvents: 'none',
|
|
277
279
|
wordBreak: 'break-word',
|
|
278
|
-
overflow: 'visible',
|
|
279
280
|
maxWidth: barWidth,
|
|
280
281
|
display: 'inline-block'
|
|
281
282
|
}
|
|
@@ -285,9 +286,9 @@ var TickComponent = /*#__PURE__*/function (_React$Component) {
|
|
|
285
286
|
}, ' ', "Student can", ' '), /*#__PURE__*/_react["default"].createElement("tspan", {
|
|
286
287
|
x: "0",
|
|
287
288
|
dy: "1.2em"
|
|
288
|
-
}, ' ', "edit name")), defineChart && /*#__PURE__*/_react["default"].createElement("foreignObject", {
|
|
289
|
+
}, ' ', "edit name"))), defineChart && /*#__PURE__*/_react["default"].createElement("foreignObject", {
|
|
289
290
|
x: x - 24,
|
|
290
|
-
y: y +
|
|
291
|
+
y: y + 80 + top,
|
|
291
292
|
width: barWidth,
|
|
292
293
|
height: 4,
|
|
293
294
|
style: {
|
|
@@ -304,7 +305,7 @@ var TickComponent = /*#__PURE__*/function (_React$Component) {
|
|
|
304
305
|
}
|
|
305
306
|
})), defineChart && /*#__PURE__*/_react["default"].createElement("foreignObject", {
|
|
306
307
|
x: x - 24,
|
|
307
|
-
y: y +
|
|
308
|
+
y: y + 130 + top,
|
|
308
309
|
width: barWidth,
|
|
309
310
|
height: 4,
|
|
310
311
|
style: {
|
|
@@ -403,8 +404,7 @@ var RawChartAxes = /*#__PURE__*/function (_React$Component2) {
|
|
|
403
404
|
theme = _this$props6.theme;
|
|
404
405
|
var axis = classes.axis,
|
|
405
406
|
axisLine = classes.axisLine,
|
|
406
|
-
tick = classes.tick
|
|
407
|
-
axisLabel = classes.axisLabel;
|
|
407
|
+
tick = classes.tick;
|
|
408
408
|
|
|
409
409
|
var _ref2 = graphProps || {},
|
|
410
410
|
_ref2$scale = _ref2.scale,
|
|
@@ -463,16 +463,12 @@ var RawChartAxes = /*#__PURE__*/function (_React$Component2) {
|
|
|
463
463
|
tickFormat: function tickFormat(value) {
|
|
464
464
|
return value;
|
|
465
465
|
},
|
|
466
|
-
label: range.label,
|
|
467
|
-
labelClassName: axisLabel,
|
|
468
466
|
tickValues: rowTickValues,
|
|
469
467
|
tickLabelProps: getTickLabelProps
|
|
470
468
|
}), /*#__PURE__*/_react["default"].createElement(_axis.AxisBottom, {
|
|
471
469
|
axisLineClassName: axisLine,
|
|
472
|
-
labelClassName: axisLabel,
|
|
473
470
|
tickClassName: tick,
|
|
474
471
|
scale: bottomScale,
|
|
475
|
-
label: domain.label,
|
|
476
472
|
labelProps: {
|
|
477
473
|
y: 60 + top
|
|
478
474
|
},
|
|
@@ -507,11 +503,6 @@ exports.RawChartAxes = RawChartAxes;
|
|
|
507
503
|
});
|
|
508
504
|
var ChartAxes = (0, _styles.withStyles)(function (theme) {
|
|
509
505
|
return {
|
|
510
|
-
axisLabel: {
|
|
511
|
-
fontFamily: theme.typography.body1.fontFamily,
|
|
512
|
-
fontSize: theme.typography.fontSize,
|
|
513
|
-
fill: _renderUi.color.secondary()
|
|
514
|
-
},
|
|
515
506
|
axis: {
|
|
516
507
|
stroke: _renderUi.color.primaryDark(),
|
|
517
508
|
strokeWidth: 2
|
package/lib/axes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/axes.jsx"],"names":["TickComponent","props","open","callback","setState","dialog","index","newLabel","categories","onChangeCategory","category","label","onChange","slice","value","title","text","onConfirm","handleAlertDialog","interactive","onClose","editable","state","classes","xBand","bandWidth","barWidth","rotate","top","graphProps","defineChart","x","y","formattedValue","parseInt","split","deletable","correctness","autoFocus","inDefineChart","barX","longestCategory","reduce","a","b","lengthA","length","lengthB","longestLabel","pointerEvents","overflow","position","visibility","wordBreak","maxWidth","display","r","input","changeCategory","dottedLine","deleteCategory","e","changeInteractive","target","checked","changeEditable","React","Component","propTypes","PropTypes","array","func","number","object","string","RawChartAxes","height","document","getElementById","offsetHeight","leftAxis","theme","axis","axisLine","tick","axisLabel","scale","range","domain","size","bottomScale","rangeRound","width","bandwidth","max","rowTickValues","step","labelStep","fontSize","typography","getTickLabelProps","dy","dx","toLocaleString","getTickComponent","properties","min","textAnchor","count","isRequired","types","GraphPropsType","bool","ChartAxes","fontFamily","body1","fill","color","secondary","stroke","primaryDark","strokeWidth","primaryLight","opacity","withTheme"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { types } from '@pie-lib/plot';\nimport { color } from '@pie-lib/render-ui';\nimport { AlertDialog } from '@pie-lib/config-ui';\nimport { AxisLeft, AxisBottom } from '@vx/axis';\nimport { bandKey, getTickValues, getRotateAngle } from './utils';\nimport MarkLabel from './mark-label';\nimport Checkbox from '@material-ui/core/Checkbox';\n\nexport class TickComponent extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n dialog: {\n open: false\n }\n };\n }\n\n handleAlertDialog = (open, callback) =>\n this.setState(\n {\n dialog: { open }\n },\n callback\n );\n\n changeCategory = (index, newLabel) => {\n const { categories, onChangeCategory } = this.props;\n const category = categories[index];\n\n onChangeCategory(index, { ...category, label: newLabel });\n };\n\n deleteCategory = index => {\n const { categories, onChange } = this.props;\n\n if (index >= 0 && categories[index]) {\n onChange([...categories.slice(0, index), ...categories.slice(index + 1)]);\n }\n };\n\n changeInteractive = (index, value) => {\n const { categories, onChangeCategory } = this.props;\n const category = categories[index];\n\n if (!value) {\n this.setState({\n dialog: {\n open: true,\n title: 'Warning',\n text:\n 'This will remove the correct answer value that has been defined for this category.',\n onConfirm: () =>\n this.handleAlertDialog(\n false,\n onChangeCategory(index, { ...category, interactive: !category.interactive })\n ),\n onClose: () => this.handleAlertDialog(false)\n }\n });\n } else {\n onChangeCategory(index, { ...category, interactive: !category.interactive });\n }\n };\n\n changeEditable = (index, value) => {\n const { categories, onChangeCategory } = this.props;\n const category = categories[index];\n\n if (!value) {\n this.setState({\n dialog: {\n open: true,\n title: 'Warning',\n text:\n 'This will remove the correct answer category name that has been defined for this category.',\n onConfirm: () =>\n this.handleAlertDialog(\n false,\n onChangeCategory(index, { ...category, editable: !category.editable || false })\n ),\n onClose: () => this.handleAlertDialog(false)\n }\n });\n } else {\n onChangeCategory(index, { ...category, editable: !category.editable || false });\n }\n };\n\n render() {\n const {\n classes,\n categories,\n xBand,\n bandWidth,\n barWidth,\n rotate,\n top,\n graphProps,\n defineChart,\n x,\n y,\n formattedValue\n } = this.props;\n\n if (!formattedValue) {\n return null;\n }\n\n const { dialog } = this.state;\n const index = parseInt(formattedValue.split('-')[0], 10);\n const category = categories[index];\n const { deletable, editable, interactive, label, correctness, autoFocus, inDefineChart } =\n category || {};\n const barX = xBand(bandKey({ label }, index));\n const longestCategory = (categories || []).reduce((a, b) => {\n const lengthA = a && a.label ? a.label.length : 0;\n const lengthB = b && b.label ? b.label.length : 0;\n\n return lengthA > lengthB ? a : b;\n });\n\n const longestLabel = (longestCategory && longestCategory.label) || '';\n\n return (\n <g>\n <foreignObject\n x={bandWidth ? barX : x - barWidth / 2}\n y={6}\n width={barWidth}\n height={4}\n style={{ pointerEvents: 'none', overflow: 'visible' }}\n >\n {index === 0 && (\n <div\n id=\"hiddenLabel\"\n style={{\n position: 'absolute',\n visibility: 'hidden',\n wordBreak: 'break-word',\n overflow: 'visible',\n maxWidth: barWidth,\n display: 'block'\n }}\n >\n {longestLabel}\n </div>\n )}\n <MarkLabel\n autoFocus={inDefineChart ? defineChart && autoFocus : autoFocus}\n inputRef={r => (this.input = r)}\n disabled={!defineChart && !editable}\n mark={category}\n graphProps={graphProps}\n onChange={newLabel => this.changeCategory(index, newLabel)}\n barWidth={barWidth}\n rotate={rotate}\n correctness={correctness}\n />\n </foreignObject>\n {deletable && !correctness && (\n <line\n x1={x}\n y1={0}\n x2={x}\n y2={y + 4 + top}\n className={classes.dottedLine}\n strokeDasharray=\"4 2\"\n />\n )}\n {deletable && !correctness && (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n x={x - 8}\n y={y + 10 + top}\n width={16}\n height={16}\n viewBox=\"0 0 512 512\"\n onClick={() => this.deleteCategory(index)}\n >\n <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\" />\n </svg>\n )}\n {defineChart && index === 0 && (\n <text\n x={x - 80}\n y={y + 40 + top}\n width={barWidth}\n height={4}\n style={{\n position: 'absolute',\n pointerEvents: 'none',\n wordBreak: 'break-word',\n overflow: 'visible',\n maxWidth: barWidth,\n display: 'inline-block'\n }}\n >\n <tspan x=\"0\" dy=\".6em\">\n {' '}\n Student can{' '}\n </tspan>\n <tspan x=\"0\" dy=\"1.2em\">\n {' '}\n set value\n </tspan>\n </text>\n )}\n {defineChart && index === 0 && (\n <text\n x={x - 80}\n y={y + 80 + top}\n width={barWidth}\n height={4}\n style={{\n position: 'absolute',\n pointerEvents: 'none',\n wordBreak: 'break-word',\n overflow: 'visible',\n maxWidth: barWidth,\n display: 'inline-block'\n }}\n >\n <tspan x=\"0\" dy=\".6em\">\n {' '}\n Student can{' '}\n </tspan>\n <tspan x=\"0\" dy=\"1.2em\">\n {' '}\n edit name\n </tspan>\n </text>\n )}\n {defineChart && (\n <foreignObject\n x={x - 24}\n y={y + 20 + top}\n width={barWidth}\n height={4}\n style={{ pointerEvents: 'visible', overflow: 'visible' }}\n >\n <Checkbox\n style={{ position: 'fixed' }}\n checked={interactive}\n onChange={e => this.changeInteractive(index, e.target.checked)}\n />\n </foreignObject>\n )}\n {defineChart && (\n <foreignObject\n x={x - 24}\n y={y + 70 + top}\n width={barWidth}\n height={4}\n style={{ pointerEvents: 'visible', overflow: 'visible' }}\n >\n <Checkbox\n style={{ position: 'fixed' }}\n checked={editable}\n onChange={e => this.changeEditable(index, e.target.checked)}\n />\n </foreignObject>\n )}\n <foreignObject\n x={x - 24}\n y={y + 100 + top}\n width={barWidth}\n height={4}\n style={{ pointerEvents: 'visible', overflow: 'visible' }}\n >\n <AlertDialog\n open={dialog.open}\n title={dialog.title}\n text={dialog.text}\n onClose={dialog.onClose}\n onConfirm={dialog.onConfirm}\n />\n </foreignObject>\n </g>\n );\n }\n}\n\nTickComponent.propTypes = {\n categories: PropTypes.array,\n xBand: PropTypes.func,\n bandWidth: PropTypes.number,\n barWidth: PropTypes.number,\n rotate: PropTypes.number,\n top: PropTypes.number,\n x: PropTypes.number,\n y: PropTypes.number,\n graphProps: PropTypes.object,\n formattedValue: PropTypes.string,\n onChangeCategory: PropTypes.func,\n onChange: PropTypes.func,\n classes: PropTypes.object\n};\n\nexport class RawChartAxes extends React.Component {\n static propTypes = {\n bottomScale: PropTypes.func,\n classes: PropTypes.object.isRequired,\n categories: PropTypes.array,\n graphProps: types.GraphPropsType.isRequired,\n xBand: PropTypes.func,\n leftAxis: PropTypes.bool,\n onChange: PropTypes.func,\n onChangeCategory: PropTypes.func,\n top: PropTypes.number,\n theme: PropTypes.object\n };\n\n state = { height: 0 };\n\n componentDidMount() {\n const height = document.getElementById('hiddenLabel')\n ? document.getElementById('hiddenLabel').offsetHeight\n : 0;\n\n this.setState({ height });\n }\n\n render() {\n const {\n classes,\n graphProps,\n xBand,\n leftAxis,\n onChange,\n onChangeCategory,\n categories = [],\n top,\n defineChart,\n theme\n } = this.props;\n\n const { axis, axisLine, tick, axisLabel } = classes;\n const { scale = {}, range = {}, domain = {}, size = {} } = graphProps || {};\n const { height } = this.state;\n\n const bottomScale =\n xBand && typeof xBand.rangeRound === 'function' && xBand.rangeRound([0, size.width]);\n\n const bandWidth = xBand && typeof xBand.bandwidth === 'function' && xBand.bandwidth();\n // for chartType \"line\", bandWidth will be 0, so we have to calculate it\n const barWidth = bandWidth || (scale.x && scale.x(domain.max) / categories.length);\n\n const rowTickValues = getTickValues({ ...range, step: range.labelStep });\n const fontSize = theme && theme.typography ? theme.typography.fontSize : 14;\n const rotate = getRotateAngle(fontSize, height);\n\n const getTickLabelProps = value => ({\n dy: 4,\n dx: -10 - (value.toLocaleString().length || 1) * 5\n });\n\n const getTickComponent = props => {\n const properties = {\n classes,\n categories,\n xBand,\n bandWidth,\n barWidth,\n rotate,\n top,\n defineChart,\n onChangeCategory,\n onChange,\n graphProps,\n x: props.x,\n y: props.y,\n formattedValue: props.formattedValue\n };\n\n return <TickComponent {...properties} />;\n };\n\n return (\n <React.Fragment>\n {leftAxis && (\n <AxisLeft\n scale={scale.y}\n className={axis}\n axisLineClassName={axisLine}\n tickLength={10}\n tickClassName={tick}\n tickFormat={value => value}\n label={range.label}\n labelClassName={axisLabel}\n tickValues={rowTickValues}\n tickLabelProps={getTickLabelProps}\n />\n )}\n <AxisBottom\n axisLineClassName={axisLine}\n labelClassName={axisLabel}\n tickClassName={tick}\n scale={bottomScale}\n label={domain.label}\n labelProps={{ y: 60 + top }}\n top={scale.y && scale.y(range.min)}\n textLabelProps={() => ({ textAnchor: 'middle' })}\n tickFormat={count => count}\n tickComponent={getTickComponent}\n />\n </React.Fragment>\n );\n }\n}\n\nconst ChartAxes = withStyles(\n theme => ({\n axisLabel: {\n fontFamily: theme.typography.body1.fontFamily,\n fontSize: theme.typography.fontSize,\n fill: color.secondary()\n },\n axis: {\n stroke: color.primaryDark(),\n strokeWidth: 2\n },\n axisLine: {\n stroke: color.primaryDark(),\n strokeWidth: 2\n },\n tick: {\n '& > line': {\n stroke: color.primaryDark(),\n strokeWidth: 2\n },\n fill: color.primaryDark(),\n fontFamily: theme.typography.body1.fontFamily,\n fontSize: theme.typography.fontSize,\n textAnchor: 'middle'\n },\n dottedLine: {\n stroke: color.primaryLight(),\n opacity: 0.2\n }\n }),\n { withTheme: true }\n)(RawChartAxes);\n\nexport default ChartAxes;\n"],"file":"axes.js"}
|
|
1
|
+
{"version":3,"sources":["../src/axes.jsx"],"names":["TickComponent","props","open","callback","setState","dialog","index","newLabel","categories","onChangeCategory","category","label","onChange","slice","value","title","text","onConfirm","handleAlertDialog","interactive","onClose","editable","state","classes","xBand","bandWidth","barWidth","rotate","top","graphProps","defineChart","x","y","formattedValue","parseInt","split","deletable","correctness","autoFocus","inDefineChart","barX","longestCategory","reduce","a","b","lengthA","length","lengthB","longestLabel","pointerEvents","overflow","position","visibility","wordBreak","maxWidth","display","r","input","changeCategory","dottedLine","deleteCategory","e","changeInteractive","target","checked","changeEditable","React","Component","propTypes","PropTypes","array","func","number","object","string","RawChartAxes","height","document","getElementById","offsetHeight","leftAxis","theme","axis","axisLine","tick","scale","range","domain","size","bottomScale","rangeRound","width","bandwidth","max","rowTickValues","step","labelStep","fontSize","typography","getTickLabelProps","dy","dx","toLocaleString","getTickComponent","properties","min","textAnchor","count","isRequired","types","GraphPropsType","bool","ChartAxes","stroke","color","primaryDark","strokeWidth","fill","fontFamily","body1","primaryLight","opacity","withTheme"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { types } from '@pie-lib/plot';\nimport { color } from '@pie-lib/render-ui';\nimport { AlertDialog } from '@pie-lib/config-ui';\nimport { AxisLeft, AxisBottom } from '@vx/axis';\nimport { bandKey, getTickValues, getRotateAngle } from './utils';\nimport MarkLabel from './mark-label';\nimport Checkbox from '@material-ui/core/Checkbox';\n\nexport class TickComponent extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n dialog: {\n open: false\n }\n };\n }\n\n handleAlertDialog = (open, callback) =>\n this.setState(\n {\n dialog: { open }\n },\n callback\n );\n\n changeCategory = (index, newLabel) => {\n const { categories, onChangeCategory } = this.props;\n const category = categories[index];\n\n onChangeCategory(index, { ...category, label: newLabel });\n };\n\n deleteCategory = index => {\n const { categories, onChange } = this.props;\n\n if (index >= 0 && categories[index]) {\n onChange([...categories.slice(0, index), ...categories.slice(index + 1)]);\n }\n };\n\n changeInteractive = (index, value) => {\n const { categories, onChangeCategory } = this.props;\n const category = categories[index];\n\n if (!value) {\n this.setState({\n dialog: {\n open: true,\n title: 'Warning',\n text:\n 'This will remove the correct answer value that has been defined for this category.',\n onConfirm: () =>\n this.handleAlertDialog(\n false,\n onChangeCategory(index, { ...category, interactive: !category.interactive })\n ),\n onClose: () => this.handleAlertDialog(false)\n }\n });\n } else {\n onChangeCategory(index, { ...category, interactive: !category.interactive });\n }\n };\n\n changeEditable = (index, value) => {\n const { categories, onChangeCategory } = this.props;\n const category = categories[index];\n\n if (!value) {\n this.setState({\n dialog: {\n open: true,\n title: 'Warning',\n text:\n 'This will remove the correct answer category name that has been defined for this category.',\n onConfirm: () =>\n this.handleAlertDialog(\n false,\n onChangeCategory(index, { ...category, editable: !category.editable || false })\n ),\n onClose: () => this.handleAlertDialog(false)\n }\n });\n } else {\n onChangeCategory(index, { ...category, editable: !category.editable || false });\n }\n };\n\n render() {\n const {\n classes,\n categories,\n xBand,\n bandWidth,\n barWidth,\n rotate,\n top,\n graphProps,\n defineChart,\n x,\n y,\n formattedValue\n } = this.props;\n\n if (!formattedValue) {\n return null;\n }\n\n const { dialog } = this.state;\n const index = parseInt(formattedValue.split('-')[0], 10);\n const category = categories[index];\n const { deletable, editable, interactive, label, correctness, autoFocus, inDefineChart } =\n category || {};\n const barX = xBand(bandKey({ label }, index));\n const longestCategory = (categories || []).reduce((a, b) => {\n const lengthA = a && a.label ? a.label.length : 0;\n const lengthB = b && b.label ? b.label.length : 0;\n\n return lengthA > lengthB ? a : b;\n });\n\n const longestLabel = (longestCategory && longestCategory.label) || '';\n\n return (\n <g>\n <foreignObject\n x={bandWidth ? barX : x - barWidth / 2}\n y={6}\n width={barWidth}\n height={4}\n style={{ pointerEvents: 'none', overflow: 'visible' }}\n >\n {index === 0 && (\n <div\n id=\"hiddenLabel\"\n style={{\n position: 'absolute',\n visibility: 'hidden',\n wordBreak: 'break-word',\n overflow: 'visible',\n maxWidth: barWidth,\n display: 'block'\n }}\n >\n {longestLabel}\n </div>\n )}\n <MarkLabel\n autoFocus={inDefineChart ? defineChart && autoFocus : autoFocus}\n inputRef={r => (this.input = r)}\n disabled={!defineChart && !editable}\n mark={category}\n graphProps={graphProps}\n onChange={newLabel => this.changeCategory(index, newLabel)}\n barWidth={barWidth}\n rotate={rotate}\n correctness={correctness}\n />\n </foreignObject>\n {deletable && !correctness && (\n <line\n x1={x}\n y1={0}\n x2={x}\n y2={y + 4 + top}\n className={classes.dottedLine}\n strokeDasharray=\"4 2\"\n />\n )}\n {deletable && !correctness && (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n x={x - 8}\n y={y + 60 + top}\n width={16}\n height={16}\n viewBox=\"0 0 512 512\"\n onClick={() => this.deleteCategory(index)}\n >\n <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\" />\n </svg>\n )}\n {defineChart && index === 0 && (\n <svg\n x={-55}\n style={{\n overflow: 'visible'\n }}\n >\n <text\n y={y + 90 + top}\n width={barWidth}\n height={4}\n style={{\n position: 'absolute',\n pointerEvents: 'none',\n wordBreak: 'break-word',\n maxWidth: barWidth,\n display: 'inline-block'\n }}\n >\n <tspan x=\"0\" dy=\".6em\">\n {' '}\n Student can{' '}\n </tspan>\n <tspan x=\"0\" dy=\"1.2em\">\n {' '}\n set value\n </tspan>\n </text>\n <text\n y={y + 145 + top}\n width={barWidth}\n height={4}\n style={{\n position: 'absolute',\n pointerEvents: 'none',\n wordBreak: 'break-word',\n maxWidth: barWidth,\n display: 'inline-block'\n }}\n >\n <tspan x=\"0\" dy=\".6em\">\n {' '}\n Student can{' '}\n </tspan>\n <tspan x=\"0\" dy=\"1.2em\">\n {' '}\n edit name\n </tspan>\n </text>\n </svg>\n )}\n {defineChart && (\n <foreignObject\n x={x - 24}\n y={y + 80 + top}\n width={barWidth}\n height={4}\n style={{ pointerEvents: 'visible', overflow: 'visible' }}\n >\n <Checkbox\n style={{ position: 'fixed' }}\n checked={interactive}\n onChange={e => this.changeInteractive(index, e.target.checked)}\n />\n </foreignObject>\n )}\n {defineChart && (\n <foreignObject\n x={x - 24}\n y={y + 130 + top}\n width={barWidth}\n height={4}\n style={{ pointerEvents: 'visible', overflow: 'visible' }}\n >\n <Checkbox\n style={{ position: 'fixed' }}\n checked={editable}\n onChange={e => this.changeEditable(index, e.target.checked)}\n />\n </foreignObject>\n )}\n <foreignObject\n x={x - 24}\n y={y + 100 + top}\n width={barWidth}\n height={4}\n style={{ pointerEvents: 'visible', overflow: 'visible' }}\n >\n <AlertDialog\n open={dialog.open}\n title={dialog.title}\n text={dialog.text}\n onClose={dialog.onClose}\n onConfirm={dialog.onConfirm}\n />\n </foreignObject>\n </g>\n );\n }\n}\n\nTickComponent.propTypes = {\n categories: PropTypes.array,\n xBand: PropTypes.func,\n bandWidth: PropTypes.number,\n barWidth: PropTypes.number,\n rotate: PropTypes.number,\n top: PropTypes.number,\n x: PropTypes.number,\n y: PropTypes.number,\n graphProps: PropTypes.object,\n formattedValue: PropTypes.string,\n onChangeCategory: PropTypes.func,\n onChange: PropTypes.func,\n classes: PropTypes.object\n};\n\nexport class RawChartAxes extends React.Component {\n static propTypes = {\n bottomScale: PropTypes.func,\n classes: PropTypes.object.isRequired,\n categories: PropTypes.array,\n graphProps: types.GraphPropsType.isRequired,\n xBand: PropTypes.func,\n leftAxis: PropTypes.bool,\n onChange: PropTypes.func,\n onChangeCategory: PropTypes.func,\n top: PropTypes.number,\n theme: PropTypes.object\n };\n\n state = { height: 0 };\n\n componentDidMount() {\n const height = document.getElementById('hiddenLabel')\n ? document.getElementById('hiddenLabel').offsetHeight\n : 0;\n\n this.setState({ height });\n }\n\n render() {\n const {\n classes,\n graphProps,\n xBand,\n leftAxis,\n onChange,\n onChangeCategory,\n categories = [],\n top,\n defineChart,\n theme\n } = this.props;\n\n const { axis, axisLine, tick } = classes;\n const { scale = {}, range = {}, domain = {}, size = {} } = graphProps || {};\n const { height } = this.state;\n\n const bottomScale =\n xBand && typeof xBand.rangeRound === 'function' && xBand.rangeRound([0, size.width]);\n\n const bandWidth = xBand && typeof xBand.bandwidth === 'function' && xBand.bandwidth();\n // for chartType \"line\", bandWidth will be 0, so we have to calculate it\n const barWidth = bandWidth || (scale.x && scale.x(domain.max) / categories.length);\n\n const rowTickValues = getTickValues({ ...range, step: range.labelStep });\n const fontSize = theme && theme.typography ? theme.typography.fontSize : 14;\n const rotate = getRotateAngle(fontSize, height);\n\n const getTickLabelProps = value => ({\n dy: 4,\n dx: -10 - (value.toLocaleString().length || 1) * 5\n });\n\n const getTickComponent = props => {\n const properties = {\n classes,\n categories,\n xBand,\n bandWidth,\n barWidth,\n rotate,\n top,\n defineChart,\n onChangeCategory,\n onChange,\n graphProps,\n x: props.x,\n y: props.y,\n formattedValue: props.formattedValue\n };\n\n return <TickComponent {...properties} />;\n };\n\n return (\n <React.Fragment>\n {leftAxis && (\n <AxisLeft\n scale={scale.y}\n className={axis}\n axisLineClassName={axisLine}\n tickLength={10}\n tickClassName={tick}\n tickFormat={value => value}\n tickValues={rowTickValues}\n tickLabelProps={getTickLabelProps}\n />\n )}\n <AxisBottom\n axisLineClassName={axisLine}\n tickClassName={tick}\n scale={bottomScale}\n labelProps={{ y: 60 + top }}\n top={scale.y && scale.y(range.min)}\n textLabelProps={() => ({ textAnchor: 'middle' })}\n tickFormat={count => count}\n tickComponent={getTickComponent}\n />\n </React.Fragment>\n );\n }\n}\n\nconst ChartAxes = withStyles(\n theme => ({\n axis: {\n stroke: color.primaryDark(),\n strokeWidth: 2\n },\n axisLine: {\n stroke: color.primaryDark(),\n strokeWidth: 2\n },\n tick: {\n '& > line': {\n stroke: color.primaryDark(),\n strokeWidth: 2\n },\n fill: color.primaryDark(),\n fontFamily: theme.typography.body1.fontFamily,\n fontSize: theme.typography.fontSize,\n textAnchor: 'middle'\n },\n dottedLine: {\n stroke: color.primaryLight(),\n opacity: 0.2\n }\n }),\n { withTheme: true }\n)(RawChartAxes);\n\nexport default ChartAxes;\n"],"file":"axes.js"}
|
package/lib/chart.js
CHANGED
|
@@ -157,6 +157,10 @@ var Chart = /*#__PURE__*/function (_React$Component) {
|
|
|
157
157
|
range = _this$props4.range,
|
|
158
158
|
size = _this$props4.size,
|
|
159
159
|
title = _this$props4.title,
|
|
160
|
+
onChangeTitle = _this$props4.onChangeTitle,
|
|
161
|
+
onChangeLabels = _this$props4.onChangeLabels,
|
|
162
|
+
labelsPlaceholders = _this$props4.labelsPlaceholders,
|
|
163
|
+
titlePlaceholder = _this$props4.titlePlaceholder,
|
|
160
164
|
addCategoryEnabled = _this$props4.addCategoryEnabled,
|
|
161
165
|
showPixelGuides = _this$props4.showPixelGuides;
|
|
162
166
|
var chartType = this.props.chartType;
|
|
@@ -166,6 +170,11 @@ var Chart = /*#__PURE__*/function (_React$Component) {
|
|
|
166
170
|
width = _ref.width,
|
|
167
171
|
height = _ref.height;
|
|
168
172
|
|
|
173
|
+
var labels = {
|
|
174
|
+
left: (range === null || range === void 0 ? void 0 : range.label) || '',
|
|
175
|
+
bottom: domain.label || ''
|
|
176
|
+
};
|
|
177
|
+
|
|
169
178
|
var _this$getChart = this.getChart(),
|
|
170
179
|
ChartComponent = _this$getChart.ChartComponent;
|
|
171
180
|
|
|
@@ -199,7 +208,7 @@ var Chart = /*#__PURE__*/function (_React$Component) {
|
|
|
199
208
|
var bandWidth = xBand.bandwidth(); // for chartType "line", bandWidth will be 0, so we have to calculate it
|
|
200
209
|
|
|
201
210
|
var barWidth = bandWidth || scale.x(correctValues.domain.max) / categories.length;
|
|
202
|
-
var increaseHeight = defineChart ?
|
|
211
|
+
var increaseHeight = defineChart ? 150 : 0; // if there are many categories, we have to rotate their names in order to fit
|
|
203
212
|
// and we have to add extra value on top of some items
|
|
204
213
|
|
|
205
214
|
var top = (0, _utils.getTopPadding)(barWidth);
|
|
@@ -217,7 +226,17 @@ var Chart = /*#__PURE__*/function (_React$Component) {
|
|
|
217
226
|
}
|
|
218
227
|
})), /*#__PURE__*/_react["default"].createElement(_plot.Root, (0, _extends2["default"])({
|
|
219
228
|
title: title,
|
|
220
|
-
|
|
229
|
+
onChangeTitle: onChangeTitle,
|
|
230
|
+
disabledTitle: !defineChart,
|
|
231
|
+
showTitle: true,
|
|
232
|
+
showLabels: true,
|
|
233
|
+
labels: labels,
|
|
234
|
+
onChangeLabels: onChangeLabels,
|
|
235
|
+
labelsPlaceholders: labelsPlaceholders,
|
|
236
|
+
titlePlaceholder: titlePlaceholder,
|
|
237
|
+
defineChart: defineChart,
|
|
238
|
+
disabledLabels: !defineChart,
|
|
239
|
+
isChart: true,
|
|
221
240
|
showPixelGuides: showPixelGuides,
|
|
222
241
|
classes: classes,
|
|
223
242
|
rootRef: function rootRef(r) {
|
|
@@ -301,12 +320,8 @@ var styles = function styles(theme) {
|
|
|
301
320
|
graphBox: {
|
|
302
321
|
transform: 'translate(60px, 35px)'
|
|
303
322
|
},
|
|
304
|
-
chart: {
|
|
305
|
-
display: 'flex',
|
|
306
|
-
flexDirection: 'column',
|
|
307
|
-
width: 'min-content'
|
|
308
|
-
},
|
|
309
323
|
controls: {
|
|
324
|
+
width: 'inherit',
|
|
310
325
|
display: 'flex',
|
|
311
326
|
justifyContent: 'space-between',
|
|
312
327
|
padding: theme.spacing.unit,
|
|
@@ -316,6 +331,12 @@ var styles = function styles(theme) {
|
|
|
316
331
|
borderLeft: "solid 1px ".concat(_renderUi.color.primaryDark()),
|
|
317
332
|
borderRight: "solid 1px ".concat(_renderUi.color.primaryDark())
|
|
318
333
|
},
|
|
334
|
+
root: {
|
|
335
|
+
overflow: 'hidden'
|
|
336
|
+
},
|
|
337
|
+
svg: {
|
|
338
|
+
overflow: 'visible'
|
|
339
|
+
},
|
|
319
340
|
toolMenu: {
|
|
320
341
|
minHeight: '36px'
|
|
321
342
|
}
|
package/lib/chart.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/chart.jsx"],"names":["log","Chart","charts","chartTypes","Bar","Histogram","LineDot","LineCross","DotPlot","LinePlot","props","state","chartType","ChartComponent","chart","find","type","Component","data","onDataChange","index","newCategory","integerIndex","parseInt","range","categoryDefaultLabel","defineChart","inDefineChart","autoFocus","label","value","step","deletable","editable","interactive","map","d","classes","className","domain","size","title","addCategoryEnabled","showPixelGuides","width","height","getChart","categories","getFilteredCategories","correctValues","verticalLines","horizontalLines","leftAxis","common","graphProps","rootNode","maskSize","x","y","scale","xBand","bandWidth","bandwidth","barWidth","max","length","increaseHeight","top","rootCommon","controls","toolMenu","addCategory","r","changeData","changeCategory","React","PropTypes","object","isRequired","string","shape","number","min","axisLabel","arrayOf","labelStep","array","func","bool","theme","styles","graphBox","transform","display","flexDirection","justifyContent","padding","spacing","unit","backgroundColor","color","primaryLight","borderTop","primaryDark","borderBottom","borderLeft","borderRight","minHeight","withTheme"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport { Root, createGraphProps } from '@pie-lib/plot';\nimport cloneDeep from 'lodash/cloneDeep';\nimport ChartGrid from './grid';\nimport ChartAxes from './axes';\nimport debug from 'debug';\nimport { color } from '@pie-lib/render-ui';\nimport {\n dataToXBand,\n getDomainAndRangeByChartType,\n getGridLinesAndAxisByChartType,\n getTopPadding\n} from './utils';\nimport ToolMenu from './tool-menu';\nimport chartTypes from './chart-types';\n\nconst log = debug('pie-lib:charts:chart');\n\nexport class Chart extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n chartType: PropTypes.string.isRequired,\n size: PropTypes.shape({\n width: PropTypes.number,\n height: PropTypes.number\n }),\n domain: PropTypes.shape({\n label: PropTypes.string,\n min: PropTypes.number,\n max: PropTypes.number,\n axisLabel: PropTypes.string\n }),\n data: PropTypes.arrayOf(PropTypes.shape({ label: PropTypes.string, value: PropTypes.number })),\n range: PropTypes.shape({\n label: PropTypes.string,\n min: PropTypes.number,\n max: PropTypes.number,\n step: PropTypes.number,\n labelStep: PropTypes.number,\n axisLabel: PropTypes.string\n }),\n charts: PropTypes.array,\n title: PropTypes.string,\n onDataChange: PropTypes.func,\n addCategoryEnabled: PropTypes.bool,\n showPixelGuides: PropTypes.bool,\n categoryDefaultLabel: PropTypes.string,\n defineChart: PropTypes.bool,\n theme: PropTypes.object\n };\n\n static defaultProps = {\n size: {\n width: 480,\n height: 480\n }\n };\n\n state = {\n charts: [\n chartTypes.Bar(),\n chartTypes.Histogram(),\n chartTypes.LineDot(),\n chartTypes.LineCross(),\n chartTypes.DotPlot(),\n chartTypes.LinePlot()\n ]\n };\n\n getChart = () => {\n const charts = this.props.charts || this.state.charts;\n let { chartType } = this.props;\n let ChartComponent = null;\n let chart = null;\n\n if (chartType) {\n chart = charts && charts.find(chart => chart.type === chartType);\n ChartComponent = chart && chart.Component;\n } else {\n chart = charts && charts[0];\n ChartComponent = chart && chart.Component;\n chartType = chart && chart.type;\n }\n\n return {\n type: chartType,\n ChartComponent\n };\n };\n\n changeData = data => {\n const { onDataChange } = this.props;\n\n onDataChange(data);\n };\n\n changeCategory = (index, newCategory) => {\n const integerIndex = parseInt(index, 10);\n\n if (integerIndex >= 0) {\n const { data, onDataChange } = this.props;\n data[integerIndex] = {\n ...data[integerIndex],\n ...newCategory\n };\n\n onDataChange(data);\n }\n };\n\n addCategory = range => {\n const { onDataChange, data, categoryDefaultLabel, defineChart } = this.props;\n\n onDataChange([\n ...data,\n {\n inDefineChart: defineChart,\n autoFocus: true,\n label: categoryDefaultLabel || 'New Bar',\n value: range.step,\n deletable: true,\n editable: true,\n interactive: true\n }\n ]);\n };\n\n getFilteredCategories = () => {\n const { data, defineChart } = this.props;\n\n return data\n ? data.map(d => ({\n ...d,\n deletable: defineChart || d.deletable\n }))\n : [];\n };\n\n render() {\n const {\n classes,\n className,\n domain,\n range,\n size,\n title,\n addCategoryEnabled,\n showPixelGuides\n } = this.props;\n let { chartType } = this.props;\n\n const defineChart = this.props.defineChart || false;\n const { width, height } = size || {};\n\n const { ChartComponent } = this.getChart();\n const categories = this.getFilteredCategories();\n\n const correctValues = getDomainAndRangeByChartType(domain, range, chartType);\n\n const { verticalLines, horizontalLines, leftAxis } = getGridLinesAndAxisByChartType(\n correctValues.range,\n chartType\n );\n const common = {\n graphProps: createGraphProps(\n correctValues.domain,\n correctValues.range,\n size,\n () => this.rootNode\n )\n };\n\n log('[render] common:', common);\n\n const maskSize = { x: -10, y: -10, width: width + 20, height: height + 80 };\n const { scale } = common.graphProps;\n const xBand = dataToXBand(scale.x, categories, width, chartType);\n\n if (!ChartComponent) {\n return null;\n }\n\n const bandWidth = xBand.bandwidth();\n // for chartType \"line\", bandWidth will be 0, so we have to calculate it\n const barWidth = bandWidth || scale.x(correctValues.domain.max) / categories.length;\n const increaseHeight = defineChart ? 80 : 0;\n\n // if there are many categories, we have to rotate their names in order to fit\n // and we have to add extra value on top of some items\n const top = getTopPadding(barWidth);\n const rootCommon = cloneDeep(common);\n rootCommon.graphProps.size.height += top + increaseHeight;\n\n return (\n <div className={classNames(classes.chart, className)}>\n <div className={classes.controls}>\n <ToolMenu\n className={classes.toolMenu}\n disabled={!addCategoryEnabled}\n addCategory={() => this.addCategory(correctValues.range)}\n />\n </div>\n <Root\n title={title}\n thisIsChart={defineChart}\n showPixelGuides={showPixelGuides}\n classes={classes}\n rootRef={r => (this.rootNode = r)}\n {...rootCommon}\n >\n <ChartGrid\n {...common}\n xBand={xBand}\n rowTickValues={horizontalLines}\n columnTickValues={verticalLines}\n />\n <ChartAxes\n {...common}\n defineChart={defineChart}\n categories={categories}\n xBand={xBand}\n leftAxis={leftAxis}\n onChange={this.changeData}\n onChangeCategory={this.changeCategory}\n top={top}\n />\n <mask id=\"myMask\">\n <rect {...maskSize} fill=\"white\" />\n </mask>\n <g id=\"marks\" mask=\"url('#myMask')\">\n <ChartComponent\n {...common}\n data={categories}\n defineChart={defineChart}\n onChange={this.changeData}\n onChangeCategory={this.changeCategory}\n />\n </g>\n </Root>\n </div>\n );\n }\n}\n\nconst styles = theme => ({\n graphBox: {\n transform: 'translate(60px, 35px)'\n },\n chart: {\n display: 'flex',\n flexDirection: 'column',\n width: 'min-content'\n },\n controls: {\n display: 'flex',\n justifyContent: 'space-between',\n padding: theme.spacing.unit,\n backgroundColor: color.primaryLight(),\n borderTop: `solid 1px ${color.primaryDark()}`,\n borderBottom: `solid 0px ${color.primaryDark()}`,\n borderLeft: `solid 1px ${color.primaryDark()}`,\n borderRight: `solid 1px ${color.primaryDark()}`\n },\n toolMenu: {\n minHeight: '36px'\n }\n});\n\nexport default withStyles(styles, { withTheme: true })(Chart);\n"],"file":"chart.js"}
|
|
1
|
+
{"version":3,"sources":["../src/chart.jsx"],"names":["log","Chart","charts","chartTypes","Bar","Histogram","LineDot","LineCross","DotPlot","LinePlot","props","state","chartType","ChartComponent","chart","find","type","Component","data","onDataChange","index","newCategory","integerIndex","parseInt","range","categoryDefaultLabel","defineChart","inDefineChart","autoFocus","label","value","step","deletable","editable","interactive","map","d","classes","className","domain","size","title","onChangeTitle","onChangeLabels","labelsPlaceholders","titlePlaceholder","addCategoryEnabled","showPixelGuides","width","height","labels","left","bottom","getChart","categories","getFilteredCategories","correctValues","verticalLines","horizontalLines","leftAxis","common","graphProps","rootNode","maskSize","x","y","scale","xBand","bandWidth","bandwidth","barWidth","max","length","increaseHeight","top","rootCommon","controls","toolMenu","addCategory","r","changeData","changeCategory","React","PropTypes","object","isRequired","string","shape","number","min","axisLabel","arrayOf","labelStep","array","func","bool","theme","styles","graphBox","transform","display","justifyContent","padding","spacing","unit","backgroundColor","color","primaryLight","borderTop","primaryDark","borderBottom","borderLeft","borderRight","root","overflow","svg","minHeight","withTheme"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAMA;;AACA;;;;;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,sBAAN,CAAZ;;IAEaC,K;;;;;;;;;;;;;;;8FAyCH;AACNC,MAAAA,MAAM,EAAE,CACNC,uBAAWC,GAAX,EADM,EAEND,uBAAWE,SAAX,EAFM,EAGNF,uBAAWG,OAAX,EAHM,EAINH,uBAAWI,SAAX,EAJM,EAKNJ,uBAAWK,OAAX,EALM,EAMNL,uBAAWM,QAAX,EANM;AADF,K;iGAWG,YAAM;AACf,UAAMP,MAAM,GAAG,MAAKQ,KAAL,CAAWR,MAAX,IAAqB,MAAKS,KAAL,CAAWT,MAA/C;AACA,UAAMU,SAAN,GAAoB,MAAKF,KAAzB,CAAME,SAAN;AACA,UAAIC,cAAc,GAAG,IAArB;AACA,UAAIC,KAAK,GAAG,IAAZ;;AAEA,UAAIF,SAAJ,EAAe;AACbE,QAAAA,KAAK,GAAGZ,MAAM,IAAIA,MAAM,CAACa,IAAP,CAAY,UAAAD,KAAK;AAAA,iBAAIA,KAAK,CAACE,IAAN,KAAeJ,SAAnB;AAAA,SAAjB,CAAlB;AACAC,QAAAA,cAAc,GAAGC,KAAK,IAAIA,KAAK,CAACG,SAAhC;AACD,OAHD,MAGO;AACLH,QAAAA,KAAK,GAAGZ,MAAM,IAAIA,MAAM,CAAC,CAAD,CAAxB;AACAW,QAAAA,cAAc,GAAGC,KAAK,IAAIA,KAAK,CAACG,SAAhC;AACAL,QAAAA,SAAS,GAAGE,KAAK,IAAIA,KAAK,CAACE,IAA3B;AACD;;AAED,aAAO;AACLA,QAAAA,IAAI,EAAEJ,SADD;AAELC,QAAAA,cAAc,EAAdA;AAFK,OAAP;AAID,K;mGAEY,UAAAK,IAAI,EAAI;AACnB,UAAQC,YAAR,GAAyB,MAAKT,KAA9B,CAAQS,YAAR;AAEAA,MAAAA,YAAY,CAACD,IAAD,CAAZ;AACD,K;uGAEgB,UAACE,KAAD,EAAQC,WAAR,EAAwB;AACvC,UAAMC,YAAY,GAAGC,QAAQ,CAACH,KAAD,EAAQ,EAAR,CAA7B;;AAEA,UAAIE,YAAY,IAAI,CAApB,EAAuB;AACrB,0BAA+B,MAAKZ,KAApC;AAAA,YAAQQ,IAAR,eAAQA,IAAR;AAAA,YAAcC,YAAd,eAAcA,YAAd;AACAD,QAAAA,IAAI,CAACI,YAAD,CAAJ,mCACKJ,IAAI,CAACI,YAAD,CADT,GAEKD,WAFL;AAKAF,QAAAA,YAAY,CAACD,IAAD,CAAZ;AACD;AACF,K;oGAEa,UAAAM,KAAK,EAAI;AACrB,yBAAkE,MAAKd,KAAvE;AAAA,UAAQS,YAAR,gBAAQA,YAAR;AAAA,UAAsBD,IAAtB,gBAAsBA,IAAtB;AAAA,UAA4BO,oBAA5B,gBAA4BA,oBAA5B;AAAA,UAAkDC,WAAlD,gBAAkDA,WAAlD;AAEAP,MAAAA,YAAY,+CACPD,IADO,IAEV;AACES,QAAAA,aAAa,EAAED,WADjB;AAEEE,QAAAA,SAAS,EAAE,IAFb;AAGEC,QAAAA,KAAK,EAAEJ,oBAAoB,IAAI,SAHjC;AAIEK,QAAAA,KAAK,EAAEN,KAAK,CAACO,IAJf;AAKEC,QAAAA,SAAS,EAAE,IALb;AAMEC,QAAAA,QAAQ,EAAE,IANZ;AAOEC,QAAAA,WAAW,EAAE;AAPf,OAFU,GAAZ;AAYD,K;8GAEuB,YAAM;AAC5B,yBAA8B,MAAKxB,KAAnC;AAAA,UAAQQ,IAAR,gBAAQA,IAAR;AAAA,UAAcQ,WAAd,gBAAcA,WAAd;AAEA,aAAOR,IAAI,GACPA,IAAI,CAACiB,GAAL,CAAS,UAAAC,CAAC;AAAA,+CACLA,CADK;AAERJ,UAAAA,SAAS,EAAEN,WAAW,IAAIU,CAAC,CAACJ;AAFpB;AAAA,OAAV,CADO,GAKP,EALJ;AAMD,K;;;;;;WAED,kBAAS;AAAA;;AACP,yBAaI,KAAKtB,KAbT;AAAA,UACE2B,OADF,gBACEA,OADF;AAAA,UAEEC,SAFF,gBAEEA,SAFF;AAAA,UAGEC,MAHF,gBAGEA,MAHF;AAAA,UAIEf,KAJF,gBAIEA,KAJF;AAAA,UAKEgB,IALF,gBAKEA,IALF;AAAA,UAMEC,KANF,gBAMEA,KANF;AAAA,UAOEC,aAPF,gBAOEA,aAPF;AAAA,UAQEC,cARF,gBAQEA,cARF;AAAA,UASEC,kBATF,gBASEA,kBATF;AAAA,UAUEC,gBAVF,gBAUEA,gBAVF;AAAA,UAWEC,kBAXF,gBAWEA,kBAXF;AAAA,UAYEC,eAZF,gBAYEA,eAZF;AAcA,UAAMnC,SAAN,GAAoB,KAAKF,KAAzB,CAAME,SAAN;AAEA,UAAMc,WAAW,GAAG,KAAKhB,KAAL,CAAWgB,WAAX,IAA0B,KAA9C;;AACA,iBAA0Bc,IAAI,IAAI,EAAlC;AAAA,UAAQQ,KAAR,QAAQA,KAAR;AAAA,UAAeC,MAAf,QAAeA,MAAf;;AACA,UAAMC,MAAM,GAAG;AAAEC,QAAAA,IAAI,EAAE,CAAA3B,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEK,KAAP,KAAgB,EAAxB;AAA4BuB,QAAAA,MAAM,EAAEb,MAAM,CAACV,KAAP,IAAgB;AAApD,OAAf;;AAEA,2BAA2B,KAAKwB,QAAL,EAA3B;AAAA,UAAQxC,cAAR,kBAAQA,cAAR;;AACA,UAAMyC,UAAU,GAAG,KAAKC,qBAAL,EAAnB;AAEA,UAAMC,aAAa,GAAG,yCAA6BjB,MAA7B,EAAqCf,KAArC,EAA4CZ,SAA5C,CAAtB;;AAEA,kCAAqD,2CACnD4C,aAAa,CAAChC,KADqC,EAEnDZ,SAFmD,CAArD;AAAA,UAAQ6C,aAAR,yBAAQA,aAAR;AAAA,UAAuBC,eAAvB,yBAAuBA,eAAvB;AAAA,UAAwCC,QAAxC,yBAAwCA,QAAxC;;AAIA,UAAMC,MAAM,GAAG;AACbC,QAAAA,UAAU,EAAE,4BACVL,aAAa,CAACjB,MADJ,EAEViB,aAAa,CAAChC,KAFJ,EAGVgB,IAHU,EAIV;AAAA,iBAAM,MAAI,CAACsB,QAAX;AAAA,SAJU;AADC,OAAf;AASA9D,MAAAA,GAAG,CAAC,kBAAD,EAAqB4D,MAArB,CAAH;AAEA,UAAMG,QAAQ,GAAG;AAAEC,QAAAA,CAAC,EAAE,CAAC,EAAN;AAAUC,QAAAA,CAAC,EAAE,CAAC,EAAd;AAAkBjB,QAAAA,KAAK,EAAEA,KAAK,GAAG,EAAjC;AAAqCC,QAAAA,MAAM,EAAEA,MAAM,GAAG;AAAtD,OAAjB;AACA,UAAQiB,KAAR,GAAkBN,MAAM,CAACC,UAAzB,CAAQK,KAAR;AACA,UAAMC,KAAK,GAAG,wBAAYD,KAAK,CAACF,CAAlB,EAAqBV,UAArB,EAAiCN,KAAjC,EAAwCpC,SAAxC,CAAd;;AAEA,UAAI,CAACC,cAAL,EAAqB;AACnB,eAAO,IAAP;AACD;;AAED,UAAMuD,SAAS,GAAGD,KAAK,CAACE,SAAN,EAAlB,CAjDO,CAkDP;;AACA,UAAMC,QAAQ,GAAGF,SAAS,IAAIF,KAAK,CAACF,CAAN,CAAQR,aAAa,CAACjB,MAAd,CAAqBgC,GAA7B,IAAoCjB,UAAU,CAACkB,MAA7E;AACA,UAAMC,cAAc,GAAG/C,WAAW,GAAG,GAAH,GAAS,CAA3C,CApDO,CAsDP;AACA;;AACA,UAAMgD,GAAG,GAAG,0BAAcJ,QAAd,CAAZ;AACA,UAAMK,UAAU,GAAG,2BAAUf,MAAV,CAAnB;AACAe,MAAAA,UAAU,CAACd,UAAX,CAAsBrB,IAAtB,CAA2BS,MAA3B,IAAqCyB,GAAG,GAAGD,cAA3C;AAEA,0BACE;AAAK,QAAA,SAAS,EAAE,4BAAWpC,OAAO,CAACvB,KAAnB,EAA0BwB,SAA1B;AAAhB,sBACE;AAAK,QAAA,SAAS,EAAED,OAAO,CAACuC;AAAxB,sBACE,gCAAC,oBAAD;AACE,QAAA,SAAS,EAAEvC,OAAO,CAACwC,QADrB;AAEE,QAAA,QAAQ,EAAE,CAAC/B,kBAFb;AAGE,QAAA,WAAW,EAAE;AAAA,iBAAM,MAAI,CAACgC,WAAL,CAAiBtB,aAAa,CAAChC,KAA/B,CAAN;AAAA;AAHf,QADF,CADF,eAQE,gCAAC,UAAD;AACE,QAAA,KAAK,EAAEiB,KADT;AAEE,QAAA,aAAa,EAAEC,aAFjB;AAGE,QAAA,aAAa,EAAE,CAAChB,WAHlB;AAIE,QAAA,SAAS,EAAE,IAJb;AAKE,QAAA,UAAU,EAAE,IALd;AAME,QAAA,MAAM,EAAEwB,MANV;AAOE,QAAA,cAAc,EAAEP,cAPlB;AAQE,QAAA,kBAAkB,EAAEC,kBARtB;AASE,QAAA,gBAAgB,EAAEC,gBATpB;AAUE,QAAA,WAAW,EAAEnB,WAVf;AAWE,QAAA,cAAc,EAAE,CAACA,WAXnB;AAYE,QAAA,OAAO,EAAE,IAZX;AAaE,QAAA,eAAe,EAAEqB,eAbnB;AAcE,QAAA,OAAO,EAAEV,OAdX;AAeE,QAAA,OAAO,EAAE,iBAAA0C,CAAC;AAAA,iBAAK,MAAI,CAACjB,QAAL,GAAgBiB,CAArB;AAAA;AAfZ,SAgBMJ,UAhBN,gBAkBE,gCAAC,gBAAD,gCACMf,MADN;AAEE,QAAA,KAAK,EAAEO,KAFT;AAGE,QAAA,aAAa,EAAET,eAHjB;AAIE,QAAA,gBAAgB,EAAED;AAJpB,SAlBF,eAwBE,gCAAC,gBAAD,gCACMG,MADN;AAEE,QAAA,WAAW,EAAElC,WAFf;AAGE,QAAA,UAAU,EAAE4B,UAHd;AAIE,QAAA,KAAK,EAAEa,KAJT;AAKE,QAAA,QAAQ,EAAER,QALZ;AAME,QAAA,QAAQ,EAAE,KAAKqB,UANjB;AAOE,QAAA,gBAAgB,EAAE,KAAKC,cAPzB;AAQE,QAAA,GAAG,EAAEP;AARP,SAxBF,eAkCE;AAAM,QAAA,EAAE,EAAC;AAAT,sBACE,sEAAUX,QAAV;AAAoB,QAAA,IAAI,EAAC;AAAzB,SADF,CAlCF,eAqCE;AAAG,QAAA,EAAE,EAAC,OAAN;AAAc,QAAA,IAAI,EAAC;AAAnB,sBACE,gCAAC,cAAD,gCACMH,MADN;AAEE,QAAA,IAAI,EAAEN,UAFR;AAGE,QAAA,WAAW,EAAE5B,WAHf;AAIE,QAAA,QAAQ,EAAE,KAAKsD,UAJjB;AAKE,QAAA,gBAAgB,EAAE,KAAKC;AALzB,SADF,CArCF,CARF,CADF;AA0DD;;;EA/OwBC,kBAAMjE,S;;;iCAApBhB,K,eACQ;AACjBoC,EAAAA,OAAO,EAAE8C,sBAAUC,MAAV,CAAiBC,UADT;AAEjB/C,EAAAA,SAAS,EAAE6C,sBAAUG,MAFJ;AAGjB1E,EAAAA,SAAS,EAAEuE,sBAAUG,MAAV,CAAiBD,UAHX;AAIjB7C,EAAAA,IAAI,EAAE2C,sBAAUI,KAAV,CAAgB;AACpBvC,IAAAA,KAAK,EAAEmC,sBAAUK,MADG;AAEpBvC,IAAAA,MAAM,EAAEkC,sBAAUK;AAFE,GAAhB,CAJW;AAQjBjD,EAAAA,MAAM,EAAE4C,sBAAUI,KAAV,CAAgB;AACtB1D,IAAAA,KAAK,EAAEsD,sBAAUG,MADK;AAEtBG,IAAAA,GAAG,EAAEN,sBAAUK,MAFO;AAGtBjB,IAAAA,GAAG,EAAEY,sBAAUK,MAHO;AAItBE,IAAAA,SAAS,EAAEP,sBAAUG;AAJC,GAAhB,CARS;AAcjBpE,EAAAA,IAAI,EAAEiE,sBAAUQ,OAAV,CAAkBR,sBAAUI,KAAV,CAAgB;AAAE1D,IAAAA,KAAK,EAAEsD,sBAAUG,MAAnB;AAA2BxD,IAAAA,KAAK,EAAEqD,sBAAUK;AAA5C,GAAhB,CAAlB,CAdW;AAejBhE,EAAAA,KAAK,EAAE2D,sBAAUI,KAAV,CAAgB;AACrB1D,IAAAA,KAAK,EAAEsD,sBAAUG,MADI;AAErBG,IAAAA,GAAG,EAAEN,sBAAUK,MAFM;AAGrBjB,IAAAA,GAAG,EAAEY,sBAAUK,MAHM;AAIrBzD,IAAAA,IAAI,EAAEoD,sBAAUK,MAJK;AAKrBI,IAAAA,SAAS,EAAET,sBAAUK,MALA;AAMrBE,IAAAA,SAAS,EAAEP,sBAAUG;AANA,GAAhB,CAfU;AAuBjBpF,EAAAA,MAAM,EAAEiF,sBAAUU,KAvBD;AAwBjBpD,EAAAA,KAAK,EAAE0C,sBAAUG,MAxBA;AAyBjBnE,EAAAA,YAAY,EAAEgE,sBAAUW,IAzBP;AA0BjBhD,EAAAA,kBAAkB,EAAEqC,sBAAUY,IA1Bb;AA2BjBhD,EAAAA,eAAe,EAAEoC,sBAAUY,IA3BV;AA4BjBtE,EAAAA,oBAAoB,EAAE0D,sBAAUG,MA5Bf;AA6BjB5D,EAAAA,WAAW,EAAEyD,sBAAUY,IA7BN;AA8BjBC,EAAAA,KAAK,EAAEb,sBAAUC;AA9BA,C;iCADRnF,K,kBAkCW;AACpBuC,EAAAA,IAAI,EAAE;AACJQ,IAAAA,KAAK,EAAE,GADH;AAEJC,IAAAA,MAAM,EAAE;AAFJ;AADc,C;;AAgNxB,IAAMgD,MAAM,GAAG,SAATA,MAAS,CAAAD,KAAK;AAAA,SAAK;AACvBE,IAAAA,QAAQ,EAAE;AACRC,MAAAA,SAAS,EAAE;AADH,KADa;AAIvBvB,IAAAA,QAAQ,EAAE;AACR5B,MAAAA,KAAK,EAAE,SADC;AAERoD,MAAAA,OAAO,EAAE,MAFD;AAGRC,MAAAA,cAAc,EAAE,eAHR;AAIRC,MAAAA,OAAO,EAAEN,KAAK,CAACO,OAAN,CAAcC,IAJf;AAKRC,MAAAA,eAAe,EAAEC,gBAAMC,YAAN,EALT;AAMRC,MAAAA,SAAS,sBAAeF,gBAAMG,WAAN,EAAf,CAND;AAORC,MAAAA,YAAY,sBAAeJ,gBAAMG,WAAN,EAAf,CAPJ;AAQRE,MAAAA,UAAU,sBAAeL,gBAAMG,WAAN,EAAf,CARF;AASRG,MAAAA,WAAW,sBAAeN,gBAAMG,WAAN,EAAf;AATH,KAJa;AAevBI,IAAAA,IAAI,EAAE;AACJC,MAAAA,QAAQ,EAAE;AADN,KAfiB;AAkBvBC,IAAAA,GAAG,EAAE;AACHD,MAAAA,QAAQ,EAAE;AADP,KAlBkB;AAqBvBrC,IAAAA,QAAQ,EAAE;AACRuC,MAAAA,SAAS,EAAE;AADH;AArBa,GAAL;AAAA,CAApB;;eA0Be,wBAAWnB,MAAX,EAAmB;AAAEoB,EAAAA,SAAS,EAAE;AAAb,CAAnB,EAAwCpH,KAAxC,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport { Root, createGraphProps } from '@pie-lib/plot';\nimport cloneDeep from 'lodash/cloneDeep';\nimport ChartGrid from './grid';\nimport ChartAxes from './axes';\nimport debug from 'debug';\nimport { color } from '@pie-lib/render-ui';\nimport {\n dataToXBand,\n getDomainAndRangeByChartType,\n getGridLinesAndAxisByChartType,\n getTopPadding\n} from './utils';\nimport ToolMenu from './tool-menu';\nimport chartTypes from './chart-types';\n\nconst log = debug('pie-lib:charts:chart');\n\nexport class Chart extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n chartType: PropTypes.string.isRequired,\n size: PropTypes.shape({\n width: PropTypes.number,\n height: PropTypes.number\n }),\n domain: PropTypes.shape({\n label: PropTypes.string,\n min: PropTypes.number,\n max: PropTypes.number,\n axisLabel: PropTypes.string\n }),\n data: PropTypes.arrayOf(PropTypes.shape({ label: PropTypes.string, value: PropTypes.number })),\n range: PropTypes.shape({\n label: PropTypes.string,\n min: PropTypes.number,\n max: PropTypes.number,\n step: PropTypes.number,\n labelStep: PropTypes.number,\n axisLabel: PropTypes.string\n }),\n charts: PropTypes.array,\n title: PropTypes.string,\n onDataChange: PropTypes.func,\n addCategoryEnabled: PropTypes.bool,\n showPixelGuides: PropTypes.bool,\n categoryDefaultLabel: PropTypes.string,\n defineChart: PropTypes.bool,\n theme: PropTypes.object\n };\n\n static defaultProps = {\n size: {\n width: 480,\n height: 480\n }\n };\n\n state = {\n charts: [\n chartTypes.Bar(),\n chartTypes.Histogram(),\n chartTypes.LineDot(),\n chartTypes.LineCross(),\n chartTypes.DotPlot(),\n chartTypes.LinePlot()\n ]\n };\n\n getChart = () => {\n const charts = this.props.charts || this.state.charts;\n let { chartType } = this.props;\n let ChartComponent = null;\n let chart = null;\n\n if (chartType) {\n chart = charts && charts.find(chart => chart.type === chartType);\n ChartComponent = chart && chart.Component;\n } else {\n chart = charts && charts[0];\n ChartComponent = chart && chart.Component;\n chartType = chart && chart.type;\n }\n\n return {\n type: chartType,\n ChartComponent\n };\n };\n\n changeData = data => {\n const { onDataChange } = this.props;\n\n onDataChange(data);\n };\n\n changeCategory = (index, newCategory) => {\n const integerIndex = parseInt(index, 10);\n\n if (integerIndex >= 0) {\n const { data, onDataChange } = this.props;\n data[integerIndex] = {\n ...data[integerIndex],\n ...newCategory\n };\n\n onDataChange(data);\n }\n };\n\n addCategory = range => {\n const { onDataChange, data, categoryDefaultLabel, defineChart } = this.props;\n\n onDataChange([\n ...data,\n {\n inDefineChart: defineChart,\n autoFocus: true,\n label: categoryDefaultLabel || 'New Bar',\n value: range.step,\n deletable: true,\n editable: true,\n interactive: true\n }\n ]);\n };\n\n getFilteredCategories = () => {\n const { data, defineChart } = this.props;\n\n return data\n ? data.map(d => ({\n ...d,\n deletable: defineChart || d.deletable\n }))\n : [];\n };\n\n render() {\n const {\n classes,\n className,\n domain,\n range,\n size,\n title,\n onChangeTitle,\n onChangeLabels,\n labelsPlaceholders,\n titlePlaceholder,\n addCategoryEnabled,\n showPixelGuides\n } = this.props;\n let { chartType } = this.props;\n\n const defineChart = this.props.defineChart || false;\n const { width, height } = size || {};\n const labels = { left: range?.label || '', bottom: domain.label || '' };\n\n const { ChartComponent } = this.getChart();\n const categories = this.getFilteredCategories();\n\n const correctValues = getDomainAndRangeByChartType(domain, range, chartType);\n\n const { verticalLines, horizontalLines, leftAxis } = getGridLinesAndAxisByChartType(\n correctValues.range,\n chartType\n );\n const common = {\n graphProps: createGraphProps(\n correctValues.domain,\n correctValues.range,\n size,\n () => this.rootNode\n )\n };\n\n log('[render] common:', common);\n\n const maskSize = { x: -10, y: -10, width: width + 20, height: height + 80 };\n const { scale } = common.graphProps;\n const xBand = dataToXBand(scale.x, categories, width, chartType);\n\n if (!ChartComponent) {\n return null;\n }\n\n const bandWidth = xBand.bandwidth();\n // for chartType \"line\", bandWidth will be 0, so we have to calculate it\n const barWidth = bandWidth || scale.x(correctValues.domain.max) / categories.length;\n const increaseHeight = defineChart ? 150 : 0;\n\n // if there are many categories, we have to rotate their names in order to fit\n // and we have to add extra value on top of some items\n const top = getTopPadding(barWidth);\n const rootCommon = cloneDeep(common);\n rootCommon.graphProps.size.height += top + increaseHeight;\n\n return (\n <div className={classNames(classes.chart, className)}>\n <div className={classes.controls}>\n <ToolMenu\n className={classes.toolMenu}\n disabled={!addCategoryEnabled}\n addCategory={() => this.addCategory(correctValues.range)}\n />\n </div>\n <Root\n title={title}\n onChangeTitle={onChangeTitle}\n disabledTitle={!defineChart}\n showTitle={true}\n showLabels={true}\n labels={labels}\n onChangeLabels={onChangeLabels}\n labelsPlaceholders={labelsPlaceholders}\n titlePlaceholder={titlePlaceholder}\n defineChart={defineChart}\n disabledLabels={!defineChart}\n isChart={true}\n showPixelGuides={showPixelGuides}\n classes={classes}\n rootRef={r => (this.rootNode = r)}\n {...rootCommon}\n >\n <ChartGrid\n {...common}\n xBand={xBand}\n rowTickValues={horizontalLines}\n columnTickValues={verticalLines}\n />\n <ChartAxes\n {...common}\n defineChart={defineChart}\n categories={categories}\n xBand={xBand}\n leftAxis={leftAxis}\n onChange={this.changeData}\n onChangeCategory={this.changeCategory}\n top={top}\n />\n <mask id=\"myMask\">\n <rect {...maskSize} fill=\"white\" />\n </mask>\n <g id=\"marks\" mask=\"url('#myMask')\">\n <ChartComponent\n {...common}\n data={categories}\n defineChart={defineChart}\n onChange={this.changeData}\n onChangeCategory={this.changeCategory}\n />\n </g>\n </Root>\n </div>\n );\n }\n}\n\nconst styles = theme => ({\n graphBox: {\n transform: 'translate(60px, 35px)'\n },\n controls: {\n width: 'inherit',\n display: 'flex',\n justifyContent: 'space-between',\n padding: theme.spacing.unit,\n backgroundColor: color.primaryLight(),\n borderTop: `solid 1px ${color.primaryDark()}`,\n borderBottom: `solid 0px ${color.primaryDark()}`,\n borderLeft: `solid 1px ${color.primaryDark()}`,\n borderRight: `solid 1px ${color.primaryDark()}`\n },\n root: {\n overflow: 'hidden'\n },\n svg: {\n overflow: 'visible'\n },\n toolMenu: {\n minHeight: '36px'\n }\n});\n\nexport default withStyles(styles, { withTheme: true })(Chart);\n"],"file":"chart.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/common/drag-handle.jsx"],"names":["RawDragHandle","props","x","y","width","graphProps","classes","className","interactive","correctness","rest","scale","handleContainer","value","transparentHandle","handle","React","Component","PropTypes","number","isRequired","types","GraphPropsType","object","string","bool","shape","label","DragHandle","theme","height","fill","color","secondary","transition","secondaryDark","D","axis","fromDelta","delta","newPoint","utils","point","add","bounds","domain","range","area","left","top","bottom","right","anchorPoint"],"mappings":"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","sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\nimport { gridDraggable, utils, types } from '@pie-lib/plot';\nimport { withStyles } from '@material-ui/core/styles/index';\nimport PropTypes from 'prop-types';\nimport { color } from '@pie-lib/render-ui';\nimport { correct, incorrect, disabled } from './styles';\n\nexport class RawDragHandle extends React.Component {\n static propTypes = {\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n width: PropTypes.number,\n graphProps: types.GraphPropsType.isRequired,\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n interactive: PropTypes.bool,\n correctness: PropTypes.shape({\n value: PropTypes.string,\n label: PropTypes.string\n })\n };\n render() {\n const {\n x,\n y,\n width,\n graphProps,\n classes,\n className,\n interactive,\n correctness,\n ...rest\n } = this.props;\n const { scale } = graphProps;\n\n return (\n <svg\n x={x}\n y={scale.y(y) - 10}\n width={width}\n overflow=\"visible\"\n className={classNames(\n classes.handleContainer,\n className,\n !interactive && 'non-interactive',\n interactive && correctness && correctness.value\n )}\n >\n <rect\n y={-10}\n width={width}\n className={classNames(classes.transparentHandle, className)}\n {...rest}\n />\n <rect\n width={width}\n className={classNames(\n classes.handle,\n 'handle',\n className,\n !interactive && 'non-interactive',\n interactive && correctness && correctness.value\n )}\n {...rest}\n />\n <rect\n y={10}\n width={width}\n className={classNames(classes.transparentHandle, className)}\n {...rest}\n />\n </svg>\n );\n }\n}\n\nexport const DragHandle = withStyles(theme => ({\n handle: {\n height: '10px',\n fill: color.secondary(),\n transition: 'fill 200ms linear, height 200ms linear',\n '&.correct': correct('fill'),\n '&.incorrect': incorrect('fill'),\n '&.non-interactive': disabled('fill')\n },\n transparentHandle: {\n height: '
|
|
1
|
+
{"version":3,"sources":["../../src/common/drag-handle.jsx"],"names":["RawDragHandle","props","x","y","width","graphProps","classes","className","interactive","correctness","rest","scale","handleContainer","value","transparentHandle","handle","React","Component","PropTypes","number","isRequired","types","GraphPropsType","object","string","bool","shape","label","DragHandle","theme","height","fill","color","secondary","transition","secondaryDark","D","axis","fromDelta","delta","newPoint","utils","point","add","bounds","domain","range","area","left","top","bottom","right","anchorPoint"],"mappings":"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","sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\nimport { gridDraggable, utils, types } from '@pie-lib/plot';\nimport { withStyles } from '@material-ui/core/styles/index';\nimport PropTypes from 'prop-types';\nimport { color } from '@pie-lib/render-ui';\nimport { correct, incorrect, disabled } from './styles';\n\nexport class RawDragHandle extends React.Component {\n static propTypes = {\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n width: PropTypes.number,\n graphProps: types.GraphPropsType.isRequired,\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n interactive: PropTypes.bool,\n correctness: PropTypes.shape({\n value: PropTypes.string,\n label: PropTypes.string\n })\n };\n render() {\n const {\n x,\n y,\n width,\n graphProps,\n classes,\n className,\n interactive,\n correctness,\n ...rest\n } = this.props;\n const { scale } = graphProps;\n\n return (\n <svg\n x={x}\n y={scale.y(y) - 10}\n width={width}\n overflow=\"visible\"\n className={classNames(\n classes.handleContainer,\n className,\n !interactive && 'non-interactive',\n interactive && correctness && correctness.value\n )}\n >\n <rect\n y={-10}\n width={width}\n className={classNames(classes.transparentHandle, className)}\n {...rest}\n />\n <rect\n width={width}\n className={classNames(\n classes.handle,\n 'handle',\n className,\n !interactive && 'non-interactive',\n interactive && correctness && correctness.value\n )}\n {...rest}\n />\n <rect\n y={10}\n width={width}\n className={classNames(classes.transparentHandle, className)}\n {...rest}\n />\n </svg>\n );\n }\n}\n\nexport const DragHandle = withStyles(theme => ({\n handle: {\n height: '10px',\n fill: color.secondary(),\n transition: 'fill 200ms linear, height 200ms linear',\n '&.correct': correct('fill'),\n '&.incorrect': incorrect('fill'),\n '&.non-interactive': disabled('fill')\n },\n transparentHandle: {\n height: '20px',\n fill: 'transparent'\n },\n handleContainer: {\n height: 30,\n '&:hover': {\n '& .handle': {\n fill: color.secondaryDark(),\n height: '16px'\n }\n },\n '&.non-interactive': disabled('fill'),\n '&.incorrect': incorrect('fill'),\n '&.correct': correct('fill')\n }\n}))(RawDragHandle);\n\nexport const D = gridDraggable({\n axis: 'y',\n fromDelta: (props, delta) => {\n //TODO: should be in grid-draggable, if axis is y delta.x should always be 0.\n delta.x = 0;\n const newPoint = utils.point(props).add(utils.point(delta));\n\n return newPoint.y;\n },\n bounds: (props, { domain, range }) => {\n const area = { left: 0, top: props.y, bottom: props.y, right: 0 };\n return utils.bounds(area, domain, range);\n },\n anchorPoint: props => {\n return { x: props.x, y: props.y };\n }\n})(DragHandle);\n\nexport default D;\n"],"file":"drag-handle.js"}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "5.
|
|
6
|
+
"version": "5.2.0",
|
|
7
7
|
"description": "charting",
|
|
8
8
|
"keywords": [
|
|
9
9
|
"react",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@mapbox/point-geometry": "^0.1.0",
|
|
21
21
|
"@material-ui/core": "^3.8.3",
|
|
22
|
-
"@pie-lib/plot": "^2.
|
|
22
|
+
"@pie-lib/plot": "^2.5.0",
|
|
23
23
|
"@vx/axis": "^0.0.183",
|
|
24
24
|
"@vx/event": "^0.0.182",
|
|
25
25
|
"@vx/grid": "^0.0.183",
|
|
@@ -43,5 +43,5 @@
|
|
|
43
43
|
"peerDependencies": {
|
|
44
44
|
"react": "^16.8.1"
|
|
45
45
|
},
|
|
46
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "7ad98ca33a39276da5e170339b3bd8bb626dd54b"
|
|
47
47
|
}
|
package/src/axes.jsx
CHANGED
|
@@ -175,7 +175,7 @@ export class TickComponent extends React.Component {
|
|
|
175
175
|
<svg
|
|
176
176
|
xmlns="http://www.w3.org/2000/svg"
|
|
177
177
|
x={x - 8}
|
|
178
|
-
y={y +
|
|
178
|
+
y={y + 60 + top}
|
|
179
179
|
width={16}
|
|
180
180
|
height={16}
|
|
181
181
|
viewBox="0 0 512 512"
|
|
@@ -185,59 +185,60 @@ export class TickComponent extends React.Component {
|
|
|
185
185
|
</svg>
|
|
186
186
|
)}
|
|
187
187
|
{defineChart && index === 0 && (
|
|
188
|
-
<
|
|
189
|
-
x={
|
|
190
|
-
y={y + 40 + top}
|
|
191
|
-
width={barWidth}
|
|
192
|
-
height={4}
|
|
193
|
-
style={{
|
|
194
|
-
position: 'absolute',
|
|
195
|
-
pointerEvents: 'none',
|
|
196
|
-
wordBreak: 'break-word',
|
|
197
|
-
overflow: 'visible',
|
|
198
|
-
maxWidth: barWidth,
|
|
199
|
-
display: 'inline-block'
|
|
200
|
-
}}
|
|
201
|
-
>
|
|
202
|
-
<tspan x="0" dy=".6em">
|
|
203
|
-
{' '}
|
|
204
|
-
Student can{' '}
|
|
205
|
-
</tspan>
|
|
206
|
-
<tspan x="0" dy="1.2em">
|
|
207
|
-
{' '}
|
|
208
|
-
set value
|
|
209
|
-
</tspan>
|
|
210
|
-
</text>
|
|
211
|
-
)}
|
|
212
|
-
{defineChart && index === 0 && (
|
|
213
|
-
<text
|
|
214
|
-
x={x - 80}
|
|
215
|
-
y={y + 80 + top}
|
|
216
|
-
width={barWidth}
|
|
217
|
-
height={4}
|
|
188
|
+
<svg
|
|
189
|
+
x={-55}
|
|
218
190
|
style={{
|
|
219
|
-
|
|
220
|
-
pointerEvents: 'none',
|
|
221
|
-
wordBreak: 'break-word',
|
|
222
|
-
overflow: 'visible',
|
|
223
|
-
maxWidth: barWidth,
|
|
224
|
-
display: 'inline-block'
|
|
191
|
+
overflow: 'visible'
|
|
225
192
|
}}
|
|
226
193
|
>
|
|
227
|
-
<
|
|
228
|
-
{
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
194
|
+
<text
|
|
195
|
+
y={y + 90 + top}
|
|
196
|
+
width={barWidth}
|
|
197
|
+
height={4}
|
|
198
|
+
style={{
|
|
199
|
+
position: 'absolute',
|
|
200
|
+
pointerEvents: 'none',
|
|
201
|
+
wordBreak: 'break-word',
|
|
202
|
+
maxWidth: barWidth,
|
|
203
|
+
display: 'inline-block'
|
|
204
|
+
}}
|
|
205
|
+
>
|
|
206
|
+
<tspan x="0" dy=".6em">
|
|
207
|
+
{' '}
|
|
208
|
+
Student can{' '}
|
|
209
|
+
</tspan>
|
|
210
|
+
<tspan x="0" dy="1.2em">
|
|
211
|
+
{' '}
|
|
212
|
+
set value
|
|
213
|
+
</tspan>
|
|
214
|
+
</text>
|
|
215
|
+
<text
|
|
216
|
+
y={y + 145 + top}
|
|
217
|
+
width={barWidth}
|
|
218
|
+
height={4}
|
|
219
|
+
style={{
|
|
220
|
+
position: 'absolute',
|
|
221
|
+
pointerEvents: 'none',
|
|
222
|
+
wordBreak: 'break-word',
|
|
223
|
+
maxWidth: barWidth,
|
|
224
|
+
display: 'inline-block'
|
|
225
|
+
}}
|
|
226
|
+
>
|
|
227
|
+
<tspan x="0" dy=".6em">
|
|
228
|
+
{' '}
|
|
229
|
+
Student can{' '}
|
|
230
|
+
</tspan>
|
|
231
|
+
<tspan x="0" dy="1.2em">
|
|
232
|
+
{' '}
|
|
233
|
+
edit name
|
|
234
|
+
</tspan>
|
|
235
|
+
</text>
|
|
236
|
+
</svg>
|
|
236
237
|
)}
|
|
237
238
|
{defineChart && (
|
|
238
239
|
<foreignObject
|
|
239
240
|
x={x - 24}
|
|
240
|
-
y={y +
|
|
241
|
+
y={y + 80 + top}
|
|
241
242
|
width={barWidth}
|
|
242
243
|
height={4}
|
|
243
244
|
style={{ pointerEvents: 'visible', overflow: 'visible' }}
|
|
@@ -252,7 +253,7 @@ export class TickComponent extends React.Component {
|
|
|
252
253
|
{defineChart && (
|
|
253
254
|
<foreignObject
|
|
254
255
|
x={x - 24}
|
|
255
|
-
y={y +
|
|
256
|
+
y={y + 130 + top}
|
|
256
257
|
width={barWidth}
|
|
257
258
|
height={4}
|
|
258
259
|
style={{ pointerEvents: 'visible', overflow: 'visible' }}
|
|
@@ -338,7 +339,7 @@ export class RawChartAxes extends React.Component {
|
|
|
338
339
|
theme
|
|
339
340
|
} = this.props;
|
|
340
341
|
|
|
341
|
-
const { axis, axisLine, tick
|
|
342
|
+
const { axis, axisLine, tick } = classes;
|
|
342
343
|
const { scale = {}, range = {}, domain = {}, size = {} } = graphProps || {};
|
|
343
344
|
const { height } = this.state;
|
|
344
345
|
|
|
@@ -389,18 +390,14 @@ export class RawChartAxes extends React.Component {
|
|
|
389
390
|
tickLength={10}
|
|
390
391
|
tickClassName={tick}
|
|
391
392
|
tickFormat={value => value}
|
|
392
|
-
label={range.label}
|
|
393
|
-
labelClassName={axisLabel}
|
|
394
393
|
tickValues={rowTickValues}
|
|
395
394
|
tickLabelProps={getTickLabelProps}
|
|
396
395
|
/>
|
|
397
396
|
)}
|
|
398
397
|
<AxisBottom
|
|
399
398
|
axisLineClassName={axisLine}
|
|
400
|
-
labelClassName={axisLabel}
|
|
401
399
|
tickClassName={tick}
|
|
402
400
|
scale={bottomScale}
|
|
403
|
-
label={domain.label}
|
|
404
401
|
labelProps={{ y: 60 + top }}
|
|
405
402
|
top={scale.y && scale.y(range.min)}
|
|
406
403
|
textLabelProps={() => ({ textAnchor: 'middle' })}
|
|
@@ -414,11 +411,6 @@ export class RawChartAxes extends React.Component {
|
|
|
414
411
|
|
|
415
412
|
const ChartAxes = withStyles(
|
|
416
413
|
theme => ({
|
|
417
|
-
axisLabel: {
|
|
418
|
-
fontFamily: theme.typography.body1.fontFamily,
|
|
419
|
-
fontSize: theme.typography.fontSize,
|
|
420
|
-
fill: color.secondary()
|
|
421
|
-
},
|
|
422
414
|
axis: {
|
|
423
415
|
stroke: color.primaryDark(),
|
|
424
416
|
strokeWidth: 2
|
package/src/chart.jsx
CHANGED
|
@@ -148,6 +148,10 @@ export class Chart extends React.Component {
|
|
|
148
148
|
range,
|
|
149
149
|
size,
|
|
150
150
|
title,
|
|
151
|
+
onChangeTitle,
|
|
152
|
+
onChangeLabels,
|
|
153
|
+
labelsPlaceholders,
|
|
154
|
+
titlePlaceholder,
|
|
151
155
|
addCategoryEnabled,
|
|
152
156
|
showPixelGuides
|
|
153
157
|
} = this.props;
|
|
@@ -155,6 +159,7 @@ export class Chart extends React.Component {
|
|
|
155
159
|
|
|
156
160
|
const defineChart = this.props.defineChart || false;
|
|
157
161
|
const { width, height } = size || {};
|
|
162
|
+
const labels = { left: range?.label || '', bottom: domain.label || '' };
|
|
158
163
|
|
|
159
164
|
const { ChartComponent } = this.getChart();
|
|
160
165
|
const categories = this.getFilteredCategories();
|
|
@@ -187,7 +192,7 @@ export class Chart extends React.Component {
|
|
|
187
192
|
const bandWidth = xBand.bandwidth();
|
|
188
193
|
// for chartType "line", bandWidth will be 0, so we have to calculate it
|
|
189
194
|
const barWidth = bandWidth || scale.x(correctValues.domain.max) / categories.length;
|
|
190
|
-
const increaseHeight = defineChart ?
|
|
195
|
+
const increaseHeight = defineChart ? 150 : 0;
|
|
191
196
|
|
|
192
197
|
// if there are many categories, we have to rotate their names in order to fit
|
|
193
198
|
// and we have to add extra value on top of some items
|
|
@@ -206,7 +211,17 @@ export class Chart extends React.Component {
|
|
|
206
211
|
</div>
|
|
207
212
|
<Root
|
|
208
213
|
title={title}
|
|
209
|
-
|
|
214
|
+
onChangeTitle={onChangeTitle}
|
|
215
|
+
disabledTitle={!defineChart}
|
|
216
|
+
showTitle={true}
|
|
217
|
+
showLabels={true}
|
|
218
|
+
labels={labels}
|
|
219
|
+
onChangeLabels={onChangeLabels}
|
|
220
|
+
labelsPlaceholders={labelsPlaceholders}
|
|
221
|
+
titlePlaceholder={titlePlaceholder}
|
|
222
|
+
defineChart={defineChart}
|
|
223
|
+
disabledLabels={!defineChart}
|
|
224
|
+
isChart={true}
|
|
210
225
|
showPixelGuides={showPixelGuides}
|
|
211
226
|
classes={classes}
|
|
212
227
|
rootRef={r => (this.rootNode = r)}
|
|
@@ -250,12 +265,8 @@ const styles = theme => ({
|
|
|
250
265
|
graphBox: {
|
|
251
266
|
transform: 'translate(60px, 35px)'
|
|
252
267
|
},
|
|
253
|
-
chart: {
|
|
254
|
-
display: 'flex',
|
|
255
|
-
flexDirection: 'column',
|
|
256
|
-
width: 'min-content'
|
|
257
|
-
},
|
|
258
268
|
controls: {
|
|
269
|
+
width: 'inherit',
|
|
259
270
|
display: 'flex',
|
|
260
271
|
justifyContent: 'space-between',
|
|
261
272
|
padding: theme.spacing.unit,
|
|
@@ -265,6 +276,12 @@ const styles = theme => ({
|
|
|
265
276
|
borderLeft: `solid 1px ${color.primaryDark()}`,
|
|
266
277
|
borderRight: `solid 1px ${color.primaryDark()}`
|
|
267
278
|
},
|
|
279
|
+
root: {
|
|
280
|
+
overflow: 'hidden'
|
|
281
|
+
},
|
|
282
|
+
svg: {
|
|
283
|
+
overflow: 'visible'
|
|
284
|
+
},
|
|
268
285
|
toolMenu: {
|
|
269
286
|
minHeight: '36px'
|
|
270
287
|
}
|