@pie-lib/charting 5.36.2 → 5.36.3-next.155

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.
Files changed (114) hide show
  1. package/CHANGELOG.md +17 -96
  2. package/esm/package.json +3 -0
  3. package/lib/actions-button.js +60 -90
  4. package/lib/actions-button.js.map +1 -1
  5. package/lib/axes.js +162 -238
  6. package/lib/axes.js.map +1 -1
  7. package/lib/bars/bar.js +13 -41
  8. package/lib/bars/bar.js.map +1 -1
  9. package/lib/bars/common/bars.js +61 -137
  10. package/lib/bars/common/bars.js.map +1 -1
  11. package/lib/bars/common/correct-check-icon.js +5 -6
  12. package/lib/bars/common/correct-check-icon.js.map +1 -1
  13. package/lib/bars/histogram.js +13 -41
  14. package/lib/bars/histogram.js.map +1 -1
  15. package/lib/chart-setup.js +119 -195
  16. package/lib/chart-setup.js.map +1 -1
  17. package/lib/chart-type.js +52 -43
  18. package/lib/chart-type.js.map +1 -1
  19. package/lib/chart-types.js +1 -10
  20. package/lib/chart-types.js.map +1 -1
  21. package/lib/chart.js +73 -151
  22. package/lib/chart.js.map +1 -1
  23. package/lib/common/correctness-indicators.js +109 -52
  24. package/lib/common/correctness-indicators.js.map +1 -1
  25. package/lib/common/drag-handle.js +65 -108
  26. package/lib/common/drag-handle.js.map +1 -1
  27. package/lib/common/drag-icon.js +12 -12
  28. package/lib/common/drag-icon.js.map +1 -1
  29. package/lib/common/styles.js +6 -24
  30. package/lib/common/styles.js.map +1 -1
  31. package/lib/grid.js +43 -83
  32. package/lib/grid.js.map +1 -1
  33. package/lib/index.js +0 -6
  34. package/lib/index.js.map +1 -1
  35. package/lib/key-legend.js +63 -87
  36. package/lib/key-legend.js.map +1 -1
  37. package/lib/line/common/drag-handle.js +72 -100
  38. package/lib/line/common/drag-handle.js.map +1 -1
  39. package/lib/line/common/line.js +50 -96
  40. package/lib/line/common/line.js.map +1 -1
  41. package/lib/line/line-cross.js +79 -89
  42. package/lib/line/line-cross.js.map +1 -1
  43. package/lib/line/line-dot.js +58 -76
  44. package/lib/line/line-dot.js.map +1 -1
  45. package/lib/mark-label.js +84 -119
  46. package/lib/mark-label.js.map +1 -1
  47. package/lib/plot/common/plot.js +90 -148
  48. package/lib/plot/common/plot.js.map +1 -1
  49. package/lib/plot/dot.js +32 -58
  50. package/lib/plot/dot.js.map +1 -1
  51. package/lib/plot/line.js +39 -64
  52. package/lib/plot/line.js.map +1 -1
  53. package/lib/tool-menu.js +47 -83
  54. package/lib/tool-menu.js.map +1 -1
  55. package/lib/utils.js +31 -86
  56. package/lib/utils.js.map +1 -1
  57. package/package.json +30 -16
  58. package/src/__tests__/axes.test.jsx +85 -100
  59. package/src/__tests__/chart-type.test.jsx +5 -11
  60. package/src/__tests__/chart.test.jsx +41 -50
  61. package/src/__tests__/grid.test.jsx +23 -11
  62. package/src/__tests__/mark-label.test.jsx +13 -11
  63. package/src/__tests__/utils.js +8 -2
  64. package/src/actions-button.jsx +44 -39
  65. package/src/axes.jsx +67 -81
  66. package/src/bars/__tests__/bar.test.jsx +19 -11
  67. package/src/bars/__tests__/histogram.test.jsx +19 -12
  68. package/src/bars/common/__tests__/bars.test.jsx +23 -24
  69. package/src/bars/common/bars.jsx +42 -69
  70. package/src/bars/common/correct-check-icon.jsx +5 -0
  71. package/src/chart-setup.jsx +75 -88
  72. package/src/chart-type.js +45 -22
  73. package/src/chart.jsx +19 -34
  74. package/src/common/__tests__/drag-handle.test.jsx +16 -45
  75. package/src/common/correctness-indicators.jsx +91 -13
  76. package/src/common/drag-handle.jsx +44 -64
  77. package/src/common/drag-icon.jsx +9 -2
  78. package/src/common/styles.js +1 -1
  79. package/src/grid.jsx +10 -14
  80. package/src/key-legend.jsx +62 -60
  81. package/src/line/__tests__/line-cross.test.jsx +16 -13
  82. package/src/line/__tests__/line-dot.test.jsx +16 -13
  83. package/src/line/__tests__/utils.js +8 -2
  84. package/src/line/common/__tests__/drag-handle.test.jsx +20 -45
  85. package/src/line/common/__tests__/line.test.jsx +27 -30
  86. package/src/line/common/drag-handle.jsx +61 -55
  87. package/src/line/common/line.jsx +21 -11
  88. package/src/line/line-cross.js +39 -14
  89. package/src/line/line-dot.js +27 -32
  90. package/src/mark-label.jsx +51 -47
  91. package/src/plot/__tests__/dot.test.jsx +19 -12
  92. package/src/plot/__tests__/line.test.jsx +19 -12
  93. package/src/plot/common/__tests__/plot.test.jsx +23 -24
  94. package/src/plot/common/plot.jsx +29 -24
  95. package/src/plot/dot.js +11 -4
  96. package/src/plot/line.js +16 -8
  97. package/src/tool-menu.jsx +26 -30
  98. package/src/utils.js +13 -9
  99. package/src/__tests__/__snapshots__/axes.test.jsx.snap +0 -569
  100. package/src/__tests__/__snapshots__/chart-type.test.jsx.snap +0 -14
  101. package/src/__tests__/__snapshots__/chart.test.jsx.snap +0 -595
  102. package/src/__tests__/__snapshots__/grid.test.jsx.snap +0 -72
  103. package/src/__tests__/__snapshots__/mark-label.test.jsx.snap +0 -73
  104. package/src/bars/__tests__/__snapshots__/bar.test.jsx.snap +0 -43
  105. package/src/bars/__tests__/__snapshots__/histogram.test.jsx.snap +0 -45
  106. package/src/bars/common/__tests__/__snapshots__/bars.test.jsx.snap +0 -110
  107. package/src/common/__tests__/__snapshots__/drag-handle.test.jsx.snap +0 -48
  108. package/src/line/__tests__/__snapshots__/line-cross.test.jsx.snap +0 -45
  109. package/src/line/__tests__/__snapshots__/line-dot.test.jsx.snap +0 -45
  110. package/src/line/common/__tests__/__snapshots__/drag-handle.test.jsx.snap +0 -49
  111. package/src/line/common/__tests__/__snapshots__/line.test.jsx.snap +0 -143
  112. package/src/plot/__tests__/__snapshots__/dot.test.jsx.snap +0 -45
  113. package/src/plot/__tests__/__snapshots__/line.test.jsx.snap +0 -45
  114. package/src/plot/common/__tests__/__snapshots__/plot.test.jsx.snap +0 -97
package/src/tool-menu.jsx CHANGED
@@ -1,63 +1,59 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import classNames from 'classnames';
4
3
  import { color } from '@pie-lib/render-ui';
5
4
 
6
- import { withStyles } from '@material-ui/core/styles';
7
- import cn from 'classnames';
8
- import Button from '@material-ui/core/Button';
5
+ import { styled } from '@mui/material/styles';
6
+ import Button from '@mui/material/Button';
9
7
  import Translator from '@pie-lib/translator';
10
8
 
11
9
  const { translator } = Translator;
12
10
 
13
- const buttonStyles = (theme) => ({
14
- root: {
15
- color: color.text(),
16
- border: `1px solid ${color.secondary()}`,
17
- fontSize: theme.typography.fontSize,
18
- },
19
- selected: {
11
+ const StyledMiniButton = styled(Button)(({ theme, selected, disabled }) => ({
12
+ color: color.text(),
13
+ border: `1px solid ${color.secondary()}`,
14
+ fontSize: theme.typography.fontSize,
15
+ ...(selected && {
20
16
  backgroundColor: color.background(),
21
17
  '& span': {
22
18
  color: color.primaryDark(),
23
19
  },
24
- },
25
- notSelected: {
26
- '& span': {
27
- color: color.primary(),
28
- },
29
- backgroundColor: color.background(),
30
- },
31
- disabled: {
20
+ }),
21
+ ...(!selected &&
22
+ !disabled && {
23
+ '& span': {
24
+ color: color.primary(),
25
+ },
26
+ backgroundColor: color.background(),
27
+ }),
28
+ ...(disabled && {
32
29
  '& span': {
33
30
  color: color.primary(),
34
31
  },
35
32
  backgroundColor: color.disabled(),
36
- },
37
- });
33
+ }),
34
+ }));
35
+
36
+ export const MiniButton = (props) => {
37
+ const { disabled, selected, value, onClick } = props;
38
38
 
39
- export const MiniButton = withStyles(buttonStyles)((props) => {
40
- const { disabled, classes, className, selected, value, onClick } = props;
41
39
  return (
42
- <Button
40
+ <StyledMiniButton
43
41
  size="small"
44
42
  disabled={disabled}
43
+ selected={selected}
45
44
  color={selected ? 'secondary' : 'default'}
46
- className={cn(classes.root, selected && classes.selected, className)}
47
- classes={{ disabled: cn(disabled && classes.disabled) }}
48
45
  value={value}
49
46
  key={value}
50
47
  variant="outlined"
51
48
  onClick={onClick}
52
49
  >
53
50
  {value}
54
- </Button>
51
+ </StyledMiniButton>
55
52
  );
56
- });
53
+ };
57
54
  MiniButton.propTypes = {
58
55
  disabled: PropTypes.bool,
59
56
  className: PropTypes.string,
60
- disabledClassName: PropTypes.string,
61
57
  selected: PropTypes.bool,
62
58
  value: PropTypes.string,
63
59
  onClick: PropTypes.func,
@@ -77,7 +73,7 @@ export class ToolMenu extends React.Component {
77
73
  const { className, disabled, addCategory, language } = this.props;
78
74
 
79
75
  return (
80
- <div className={classNames(className)}>
76
+ <div className={className}>
81
77
  {!disabled && (
82
78
  <MiniButton value={translator.t('charting.addCategory', { lng: language })} onClick={addCategory} />
83
79
  )}
package/src/utils.js CHANGED
@@ -1,4 +1,4 @@
1
- import { scaleBand, scalePoint } from '@vx/scale';
1
+ import { scaleBand, scalePoint } from '@visx/scale';
2
2
  import { utils } from '@pie-lib/plot';
3
3
 
4
4
  export const tickCount = utils.tickCount;
@@ -8,39 +8,43 @@ export const point = utils.point;
8
8
  export const bandKey = (d, index) => `${index}-${d.label || '-'}`;
9
9
 
10
10
  export const dataToXBand = (scaleX, data, width, type) => {
11
+ const chartWidth = width || 400; // fallback
12
+ const domain = data && data.length ? data.map(bandKey) : ['default'];
13
+
11
14
  switch (type) {
12
15
  case 'bar':
13
16
  case 'dotPlot':
14
17
  case 'linePlot':
15
18
  return scaleBand({
16
- rangeRound: [0, width],
17
- domain: data && data.map(bandKey),
19
+ range: [0, chartWidth],
20
+ domain,
18
21
  padding: 0.2,
19
22
  });
20
23
 
21
24
  case 'histogram':
22
25
  return scaleBand({
23
- rangeRound: [0, width],
24
- domain: data && data.map(bandKey),
26
+ range: [0, chartWidth],
27
+ domain,
25
28
  padding: 0,
26
29
  });
27
30
 
28
31
  case 'lineCross':
29
32
  case 'lineDot':
30
33
  return scalePoint({
31
- domain: data && data.map(bandKey),
32
- rangeRound: [0, width],
34
+ domain,
35
+ range: [0, chartWidth],
33
36
  });
34
37
 
35
38
  default:
36
39
  return scaleBand({
37
- range: [0, width],
38
- domain: data && data.map(bandKey),
40
+ range: [0, chartWidth],
41
+ domain,
39
42
  padding: 0,
40
43
  });
41
44
  }
42
45
  };
43
46
 
47
+
44
48
  export const getTickValues = (prop = {}) => {
45
49
  const tickValues = [];
46
50
  let tickVal = prop.min;