@sis-cc/dotstatsuite-visions 6.6.4 → 7.1.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.
Files changed (57) hide show
  1. package/es/AuthDialog/index.js +3 -2
  2. package/es/CollapsibleTree/Collapse.js +97 -0
  3. package/es/CollapsibleTree/CollapsibleTree.js +171 -0
  4. package/es/CollapsibleTree/index.js +44 -0
  5. package/es/DataEdit/Input.js +1 -1
  6. package/es/DataHeader/DataHeader.js +31 -7
  7. package/es/InfoIcon/InfoIcon.js +37 -0
  8. package/es/TableHtml5/TableHtml5.js +20 -3
  9. package/es/TableHtml5/cell.js +8 -2
  10. package/es/TableHtml5/flags.js +2 -0
  11. package/es/TableHtml5/index.js +1 -0
  12. package/es/TableHtml5/section.js +15 -2
  13. package/es/TableHtml5/sectionHeader.js +13 -6
  14. package/es/TableHtml5/sideIcon.js +26 -0
  15. package/es/TableHtml5/subHeader.js +11 -1
  16. package/es/index.js +1 -1
  17. package/es/theme.js +13 -0
  18. package/lib/AuthDialog/index.js +6 -5
  19. package/lib/CollapsibleTree/Collapse.js +126 -0
  20. package/lib/CollapsibleTree/CollapsibleTree.js +216 -0
  21. package/lib/{Table → CollapsibleTree}/index.js +2 -2
  22. package/lib/DataEdit/Input.js +1 -1
  23. package/lib/DataHeader/DataHeader.js +34 -7
  24. package/lib/InfoIcon/InfoIcon.js +56 -0
  25. package/lib/TableHtml5/TableHtml5.js +20 -3
  26. package/lib/TableHtml5/cell.js +11 -2
  27. package/lib/TableHtml5/flags.js +2 -0
  28. package/lib/TableHtml5/section.js +17 -1
  29. package/lib/TableHtml5/sectionHeader.js +16 -6
  30. package/lib/TableHtml5/sideIcon.js +46 -0
  31. package/lib/TableHtml5/subHeader.js +14 -1
  32. package/lib/index.js +10 -10
  33. package/lib/theme.js +13 -0
  34. package/package.json +6 -7
  35. package/es/Table/Table.js +0 -170
  36. package/es/Table/header.js +0 -91
  37. package/es/Table/index.js +0 -56
  38. package/es/Table/itemCell.js +0 -54
  39. package/es/Table/row-header.js +0 -84
  40. package/es/Table/section-header.js +0 -115
  41. package/es/Table/section-rows.js +0 -101
  42. package/es/Table/styles.js +0 -52
  43. package/es/Table/tableCell.js +0 -29
  44. package/es/Table/tooltip.js +0 -85
  45. package/es/Table/useStyles.js +0 -34
  46. package/es/Table/valueCell.js +0 -63
  47. package/lib/Table/Table.js +0 -203
  48. package/lib/Table/header.js +0 -116
  49. package/lib/Table/itemCell.js +0 -74
  50. package/lib/Table/row-header.js +0 -113
  51. package/lib/Table/section-header.js +0 -145
  52. package/lib/Table/section-rows.js +0 -134
  53. package/lib/Table/styles.js +0 -69
  54. package/lib/Table/tableCell.js +0 -50
  55. package/lib/Table/tooltip.js +0 -104
  56. package/lib/Table/useStyles.js +0 -41
  57. package/lib/Table/valueCell.js +0 -86
@@ -0,0 +1,26 @@
1
+ import React from 'react';
2
+ import * as R from 'ramda';
3
+ import PropTypes from 'prop-types';
4
+ import InfoIcon from '../InfoIcon/InfoIcon';
5
+
6
+ var SideIcon = function SideIcon(_ref) {
7
+ var sideProps = _ref.sideProps,
8
+ sideToggle = _ref.sideToggle,
9
+ selectedSideCoord = _ref.selectedSideCoord;
10
+
11
+ if (R.isNil(sideProps) || !R.is(Function, sideToggle)) {
12
+ return null;
13
+ }
14
+ var isSelected = R.equals(sideProps.coordinates, selectedSideCoord);
15
+ return React.createElement(InfoIcon, { onClick: function onClick() {
16
+ return sideToggle(sideProps);
17
+ }, isSelected: isSelected });
18
+ };
19
+
20
+ SideIcon.propTypes = process.env.NODE_ENV !== "production" ? {
21
+ selectedSideCoord: PropTypes.object,
22
+ sideProps: PropTypes.object,
23
+ sideToggle: PropTypes.func
24
+ } : {};
25
+
26
+ export default SideIcon;
@@ -8,6 +8,7 @@ import TableCell from '@material-ui/core/TableCell';
8
8
  import TableRow from '@material-ui/core/TableRow';
9
9
  import { getLight, getIsRtl } from '../utils';
10
10
  import Flags from './flags';
11
+ import SideIcon from './sideIcon';
11
12
 
12
13
  var useStyles = makeStyles(function (theme) {
13
14
  return {
@@ -50,7 +51,9 @@ var SubHeader = React.forwardRef(function (_ref, refs) {
50
51
  var headerData = _ref.headerData,
51
52
  xLayoutData = _ref.xLayoutData,
52
53
  activeCellIds = _ref.activeCellIds,
53
- subHeadCellsWidth = _ref.subHeadCellsWidth;
54
+ subHeadCellsWidth = _ref.subHeadCellsWidth,
55
+ sideToggle = _ref.sideToggle,
56
+ selectedSideCoord = _ref.selectedSideCoord;
54
57
 
55
58
  var classes = useStyles();
56
59
  var theme = useTheme();
@@ -96,6 +99,11 @@ var SubHeader = React.forwardRef(function (_ref, refs) {
96
99
  key: index,
97
100
  className: cx(classes.fillerCell, (_cx = {}, _cx[classes.highlight] = R.prop(index)(activeCellIds), _cx))
98
101
  },
102
+ React.createElement(SideIcon, {
103
+ sideProps: R.prop('sideProps', item),
104
+ sideToggle: sideToggle,
105
+ selectedSideCoord: selectedSideCoord
106
+ }),
99
107
  React.createElement(Flags, { flags: R.prop('flags', item) })
100
108
  );
101
109
  }, headerData)
@@ -106,6 +114,8 @@ SubHeader.propTypes = process.env.NODE_ENV !== "production" ? {
106
114
  activeCellIds: PropTypes.object,
107
115
  headerData: PropTypes.array,
108
116
  xLayoutData: PropTypes.array,
117
+ sideToggle: PropTypes.func,
118
+ selectedSideCoord: PropTypes.object,
109
119
  subHeadCellsWidth: PropTypes.arrayOf(PropTypes.number)
110
120
  } : {};
111
121
 
package/es/index.js CHANGED
@@ -10,6 +10,7 @@ export { default as Button } from './Button';
10
10
  export { default as ChartsConfig } from './ChartsConfig';
11
11
  export { default as Chips } from './Chips';
12
12
  export { default as CollapseButtons } from './CollapseButtons';
13
+ export { default as CollapsibleTree } from './CollapsibleTree';
13
14
  export { default as DataEdit } from './DataEdit';
14
15
  export { default as Dataflow } from './Dataflow';
15
16
  export { default as DataHeader } from './DataHeader';
@@ -30,7 +31,6 @@ export { default as Select } from './Select';
30
31
  export { default as Share } from './Share';
31
32
  export { default as SisccFooter } from './SisccFooter';
32
33
  export { default as Spotlight } from './Spotlight';
33
- export { default as Table } from './Table';
34
34
  export { default as TableFooter } from './TableFooter';
35
35
  export { default as TableHeader } from './TableHeader';
36
36
  export { default as TableHtml5, Cell } from './TableHtml5';
package/es/theme.js CHANGED
@@ -215,6 +215,19 @@ export var sisccTheme = function sisccTheme(_ref) {
215
215
  fontFamily: "'Roboto Slab', serif"
216
216
  }
217
217
  },
218
+ collapsibleTree: {
219
+ title: {
220
+ fontSize: 17,
221
+ fontFamily: "'PT Sans Narrow', 'Helvetica Neue', Helvetica, Arial, sans-serif",
222
+ color: outerPalette.textLight || innerPalette.textLight
223
+ },
224
+ buttonSublevel: {
225
+ color: outerPalette.textLight || innerPalette.textLight,
226
+ fontSize: 14,
227
+ fontWeight: 700,
228
+ fontFamily: "'PT Sans Narrow', 'Helvetica Neue', Helvetica, Arial, sans-serif"
229
+ }
230
+ },
218
231
  dataEdit: {
219
232
  root: {
220
233
  fontWeight: 400,
@@ -12,10 +12,6 @@ var _propTypes2 = _interopRequireDefault(_propTypes);
12
12
 
13
13
  var _ramda = require('ramda');
14
14
 
15
- var _Button = require('../Button');
16
-
17
- var _Button2 = _interopRequireDefault(_Button);
18
-
19
15
  var _Checkbox = require('@material-ui/core/Checkbox');
20
16
 
21
17
  var _Checkbox2 = _interopRequireDefault(_Checkbox);
@@ -46,6 +42,10 @@ var _Typography2 = _interopRequireDefault(_Typography);
46
42
 
47
43
  var _styles = require('@material-ui/core/styles');
48
44
 
45
+ var _Button = require('../Button');
46
+
47
+ var _Button2 = _interopRequireDefault(_Button);
48
+
49
49
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
50
50
 
51
51
  /**
@@ -69,9 +69,10 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
69
69
  * onClose: PropTypes.func.isRequired,
70
70
  * onSubmit: PropTypes.func.isRequired
71
71
  * };
72
+ * @demoReady
72
73
  */
73
74
 
74
- var useStyles = (0, _styles.makeStyles)(function (theme) {
75
+ var useStyles = (0, _styles.makeStyles)(function () {
75
76
  return {
76
77
  header: {
77
78
  color: 'grey',
@@ -0,0 +1,126 @@
1
+ 'use strict';
2
+
3
+ exports.__esModule = true;
4
+ exports.VARIANT_BOLD = undefined;
5
+
6
+ var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
7
+
8
+ var _react = require('react');
9
+
10
+ var _react2 = _interopRequireDefault(_react);
11
+
12
+ var _propTypes = require('prop-types');
13
+
14
+ var _propTypes2 = _interopRequireDefault(_propTypes);
15
+
16
+ var _classnames = require('classnames');
17
+
18
+ var _classnames2 = _interopRequireDefault(_classnames);
19
+
20
+ var _ramda = require('ramda');
21
+
22
+ var _styles = require('@material-ui/core/styles');
23
+
24
+ var _Collapse = require('@material-ui/core/Collapse');
25
+
26
+ var _Collapse2 = _interopRequireDefault(_Collapse);
27
+
28
+ var _Button = require('@material-ui/core/Button');
29
+
30
+ var _Button2 = _interopRequireDefault(_Button);
31
+
32
+ var _KeyboardArrowDown = require('@material-ui/icons/KeyboardArrowDown');
33
+
34
+ var _KeyboardArrowDown2 = _interopRequireDefault(_KeyboardArrowDown);
35
+
36
+ var _KeyboardArrowUp = require('@material-ui/icons/KeyboardArrowUp');
37
+
38
+ var _KeyboardArrowUp2 = _interopRequireDefault(_KeyboardArrowUp);
39
+
40
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
41
+
42
+ var VARIANT_ICON = 'icon';
43
+ var VARIANT_BOLD = exports.VARIANT_BOLD = 'bold';
44
+
45
+ var useStyles = (0, _styles.makeStyles)(function (theme) {
46
+ var _ref;
47
+
48
+ return _ref = {
49
+ buttonExpand: {
50
+ display: 'flex',
51
+ justifyContent: 'space-between'
52
+ }
53
+ }, _ref['button' + VARIANT_ICON] = {
54
+ color: theme.palette.primary.main,
55
+ backgroundColor: 'rgba(24, 32, 38, 0.04)',
56
+ margin: theme.spacing(1, 0)
57
+ }, _ref['button' + VARIANT_BOLD] = _extends({
58
+ marginBottom: theme.spacing(1),
59
+ padding: theme.spacing(0.5, 0, 1, 0),
60
+ '&:hover': {
61
+ backgroundColor: 'unset'
62
+ }
63
+ }, (0, _ramda.pathOr)({}, ['mixins', 'collapsibleTree', 'buttonSublevel'], theme)), _ref['collapsibleContainer' + VARIANT_BOLD] = {
64
+ borderTop: '2px solid black',
65
+ marginTop: theme.spacing(2),
66
+ marginBottom: theme.spacing(2)
67
+ }, _ref;
68
+ });
69
+
70
+ var CollapseComponent = function CollapseComponent(_ref2) {
71
+ var label = _ref2.label,
72
+ isOpen = _ref2.isOpen,
73
+ children = _ref2.children,
74
+ _ref2$variant = _ref2.variant,
75
+ variant = _ref2$variant === undefined ? VARIANT_ICON : _ref2$variant,
76
+ level = _ref2.level;
77
+
78
+ var classes = useStyles();
79
+ var theme = (0, _styles.useTheme)();
80
+
81
+ var _React$useState = _react2.default.useState(isOpen),
82
+ open = _React$useState[0],
83
+ setOpen = _React$useState[1];
84
+
85
+ (0, _react.useEffect)(function () {
86
+ return setOpen(isOpen);
87
+ }, [isOpen]);
88
+
89
+ return _react2.default.createElement(
90
+ 'div',
91
+ {
92
+ className: (0, _classnames2.default)(classes['collapsibleContainer' + variant]),
93
+ style: {
94
+ marginRight: theme.spacing(level * 2),
95
+ marginLeft: theme.spacing(level * 2)
96
+ }
97
+ },
98
+ _react2.default.createElement(
99
+ _Button2.default,
100
+ {
101
+ className: (0, _classnames2.default)(classes.buttonExpand, classes['button' + variant]),
102
+ onClick: function onClick() {
103
+ return setOpen(!open);
104
+ },
105
+ fullWidth: true
106
+ },
107
+ label,
108
+ open ? _react2.default.createElement(_KeyboardArrowUp2.default, { color: 'primary' }) : _react2.default.createElement(_KeyboardArrowDown2.default, { color: 'primary' })
109
+ ),
110
+ _react2.default.createElement(
111
+ _Collapse2.default,
112
+ { 'in': open, timeout: 'auto' },
113
+ children
114
+ )
115
+ );
116
+ };
117
+
118
+ CollapseComponent.propTypes = process.env.NODE_ENV !== "production" ? {
119
+ label: _propTypes2.default.string,
120
+ isOpen: _propTypes2.default.bool,
121
+ children: _propTypes2.default.node,
122
+ variant: _propTypes2.default.oneOf([VARIANT_ICON, VARIANT_BOLD]),
123
+ level: _propTypes2.default.number
124
+ } : {};
125
+
126
+ exports.default = CollapseComponent;
@@ -0,0 +1,216 @@
1
+ 'use strict';
2
+
3
+ exports.__esModule = true;
4
+
5
+ var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
6
+
7
+ var _react = require('react');
8
+
9
+ var _react2 = _interopRequireDefault(_react);
10
+
11
+ var _ramda = require('ramda');
12
+
13
+ var R = _interopRequireWildcard(_ramda);
14
+
15
+ var _propTypes = require('prop-types');
16
+
17
+ var _propTypes2 = _interopRequireDefault(_propTypes);
18
+
19
+ var _Container = require('@material-ui/core/Container');
20
+
21
+ var _Container2 = _interopRequireDefault(_Container);
22
+
23
+ var _styles = require('@material-ui/core/styles');
24
+
25
+ var _Typography = require('@material-ui/core/Typography');
26
+
27
+ var _Typography2 = _interopRequireDefault(_Typography);
28
+
29
+ var _Divider = require('@material-ui/core/Divider');
30
+
31
+ var _Divider2 = _interopRequireDefault(_Divider);
32
+
33
+ var _Button = require('@material-ui/core/Button');
34
+
35
+ var _Button2 = _interopRequireDefault(_Button);
36
+
37
+ var _KeyboardArrowDown = require('@material-ui/icons/KeyboardArrowDown');
38
+
39
+ var _KeyboardArrowDown2 = _interopRequireDefault(_KeyboardArrowDown);
40
+
41
+ var _KeyboardArrowUp = require('@material-ui/icons/KeyboardArrowUp');
42
+
43
+ var _KeyboardArrowUp2 = _interopRequireDefault(_KeyboardArrowUp);
44
+
45
+ var _CircularProgress = require('@material-ui/core/CircularProgress');
46
+
47
+ var _CircularProgress2 = _interopRequireDefault(_CircularProgress);
48
+
49
+ var _Grid = require('@material-ui/core/Grid');
50
+
51
+ var _Grid2 = _interopRequireDefault(_Grid);
52
+
53
+ var _Collapse = require('./Collapse');
54
+
55
+ var _Collapse2 = _interopRequireDefault(_Collapse);
56
+
57
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
58
+
59
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
60
+
61
+ var useStyles = (0, _styles.makeStyles)(function (theme) {
62
+ return {
63
+ title: _extends({
64
+ fontWeight: 'bold'
65
+ }, R.pathOr({}, ['mixins', 'collapsibleTree', 'title'], theme)),
66
+ divider: {
67
+ marginBottom: theme.spacing(2)
68
+ },
69
+ spacingValue: {
70
+ marginLeft: theme.spacing(2),
71
+ marginRight: theme.spacing(2),
72
+ marginBottom: theme.spacing(2)
73
+ }
74
+ };
75
+ });
76
+
77
+ var CollapsibleTree = function CollapsibleTree(_ref) {
78
+ var _ref$data = _ref.data,
79
+ data = _ref$data === undefined ? [] : _ref$data,
80
+ _ref$defaultDepthLeve = _ref.defaultDepthLevel,
81
+ defaultDepthLevel = _ref$defaultDepthLeve === undefined ? 1 : _ref$defaultDepthLeve,
82
+ isLoading = _ref.isLoading,
83
+ children = _ref.children,
84
+ labels = _ref.labels,
85
+ _ref$testId = _ref.testId,
86
+ testId = _ref$testId === undefined ? 'collapsible-tree' : _ref$testId;
87
+
88
+ var classes = useStyles();
89
+
90
+ var _useState = (0, _react.useState)(defaultDepthLevel),
91
+ depthLevel = _useState[0],
92
+ setDepthLevel = _useState[1];
93
+
94
+ (0, _react.useEffect)(function () {
95
+ return setDepthLevel(defaultDepthLevel);
96
+ }, [defaultDepthLevel]);
97
+
98
+ if (isLoading) {
99
+ return _react2.default.createElement(
100
+ _Grid2.default,
101
+ { container: true, item: true, justifyContent: 'center' },
102
+ _react2.default.createElement(_CircularProgress2.default, null)
103
+ );
104
+ }
105
+
106
+ var handleCollapse = function handleCollapse(isAllOpen) {
107
+ if (isAllOpen) return setDepthLevel(undefined);
108
+ return setDepthLevel(defaultDepthLevel);
109
+ };
110
+
111
+ var isAllOpen = depthLevel >= defaultDepthLevel;
112
+ var buttonAllOpenLabel = isAllOpen ? R.prop('collapseAll', labels) : R.prop('expandAll', labels);
113
+
114
+ return _react2.default.createElement(
115
+ _react.Fragment,
116
+ null,
117
+ _react2.default.createElement(
118
+ _Container2.default,
119
+ { disableGutters: true, 'data-testid': testId },
120
+ _react2.default.createElement(
121
+ _Button2.default,
122
+ {
123
+ 'aria-label': buttonAllOpenLabel,
124
+ color: 'primary',
125
+ endIcon: isAllOpen ? _react2.default.createElement(_KeyboardArrowDown2.default, { color: 'primary' }) : _react2.default.createElement(_KeyboardArrowUp2.default, { color: 'primary' }),
126
+ onClick: function onClick() {
127
+ return handleCollapse(isAllOpen);
128
+ }
129
+ },
130
+ buttonAllOpenLabel
131
+ ),
132
+ children
133
+ ),
134
+ R.map(function (_ref2) {
135
+ var id = _ref2.id,
136
+ label = _ref2.label,
137
+ _ref2$children = _ref2.children,
138
+ children = _ref2$children === undefined ? [] : _ref2$children;
139
+
140
+ return _react2.default.createElement(
141
+ _react.Fragment,
142
+ { key: id },
143
+ _react2.default.createElement(_Divider2.default, { className: classes.divider }),
144
+ _react2.default.createElement(
145
+ _Typography2.default,
146
+ { variant: 'h5', className: classes.title },
147
+ label
148
+ ),
149
+ R.map(function (_ref3) {
150
+ var id = _ref3.id,
151
+ label = _ref3.label,
152
+ children = _ref3.children,
153
+ value = _ref3.value;
154
+
155
+ return _react2.default.createElement(
156
+ _Collapse2.default,
157
+ { key: id, level: 0, label: label, isOpen: depthLevel >= 0 },
158
+ value && _react2.default.createElement(
159
+ _Typography2.default,
160
+ { className: classes.spacingValue, variant: 'body2' },
161
+ value
162
+ ),
163
+ children && R.map(function (_ref4) {
164
+ var id = _ref4.id,
165
+ label = _ref4.label,
166
+ value = _ref4.value;
167
+
168
+ return _react2.default.createElement(
169
+ _Collapse2.default,
170
+ {
171
+ key: id,
172
+ level: 1,
173
+ variant: _Collapse.VARIANT_BOLD,
174
+ label: label,
175
+ isOpen: depthLevel >= 1
176
+ },
177
+ _react2.default.createElement(
178
+ _Typography2.default,
179
+ { variant: 'body2' },
180
+ value
181
+ )
182
+ );
183
+ }, children)
184
+ );
185
+ }, children)
186
+ );
187
+ }, data)
188
+ );
189
+ };
190
+
191
+ CollapsibleTree.propTypes = process.env.NODE_ENV !== "production" ? {
192
+ data: _propTypes2.default.arrayOf(_propTypes2.default.shape({
193
+ id: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]).isRequired,
194
+ label: _propTypes2.default.string,
195
+ children: _propTypes2.default.arrayOf(_propTypes2.default.shape({
196
+ id: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]).isRequired,
197
+ label: _propTypes2.default.string,
198
+ children: _propTypes2.default.arrayOf(_propTypes2.default.shape({
199
+ id: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]).isRequired,
200
+ label: _propTypes2.default.string,
201
+ value: _propTypes2.default.string
202
+ }))
203
+ }))
204
+ })),
205
+ defaultDepthLevel: _propTypes2.default.number,
206
+ isLoading: _propTypes2.default.bool,
207
+ children: _propTypes2.default.node,
208
+ labels: _propTypes2.default.shape({
209
+ collapseAll: _propTypes2.default.string,
210
+ expandAll: _propTypes2.default.string
211
+ }),
212
+ testId: _propTypes2.default.string
213
+ } : {};
214
+
215
+ exports.default = CollapsibleTree;
216
+ module.exports = exports['default'];
@@ -2,12 +2,12 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
 
5
- var _Table = require('./Table');
5
+ var _CollapsibleTree = require('./CollapsibleTree');
6
6
 
7
7
  Object.defineProperty(exports, 'default', {
8
8
  enumerable: true,
9
9
  get: function get() {
10
- return _interopRequireDefault(_Table).default;
10
+ return _interopRequireDefault(_CollapsibleTree).default;
11
11
  }
12
12
  });
13
13
 
@@ -45,7 +45,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
45
45
 
46
46
  function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
47
47
 
48
- var useStyles = (0, _styles.makeStyles)(function (theme) {
48
+ var useStyles = (0, _styles.makeStyles)(function () {
49
49
  return {
50
50
  visibility: {
51
51
  visibility: 'hidden'
@@ -52,6 +52,10 @@ var _utils = require('./utils');
52
52
 
53
53
  var _ = require('../');
54
54
 
55
+ var _InfoIcon = require('../InfoIcon/InfoIcon');
56
+
57
+ var _InfoIcon2 = _interopRequireDefault(_InfoIcon);
58
+
55
59
  function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
56
60
 
57
61
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -137,13 +141,33 @@ var useStyles = (0, _styles.makeStyles)(function (theme) {
137
141
  };
138
142
  });
139
143
 
140
- var DataHeader = function DataHeader(_ref4) {
141
- var children = _ref4.children,
142
- title = _ref4.title,
143
- _ref4$subtitle = _ref4.subtitle,
144
- subtitle = _ref4$subtitle === undefined ? [] : _ref4$subtitle,
145
- uprs = _ref4.uprs,
146
- disclaimer = _ref4.disclaimer;
144
+ var SideIcon = function SideIcon(_ref4) {
145
+ var sideProps = _ref4.sideProps,
146
+ sideToggle = _ref4.sideToggle;
147
+
148
+ if (R.isNil(sideProps) || !R.is(Function, sideToggle)) {
149
+ return null;
150
+ }
151
+ var isSelected = R.propOr(false, 'isSelected', sideProps);
152
+ return _react2.default.createElement(_InfoIcon2.default, { onClick: function onClick() {
153
+ return sideToggle(sideProps);
154
+ }, isSelected: isSelected });
155
+ };
156
+
157
+ SideIcon.propTypes = process.env.NODE_ENV !== "production" ? {
158
+ sideProps: _propTypes2.default.object,
159
+ sideToggle: _propTypes2.default.func
160
+ } : {};
161
+
162
+ var DataHeader = function DataHeader(_ref5) {
163
+ var children = _ref5.children,
164
+ title = _ref5.title,
165
+ _ref5$subtitle = _ref5.subtitle,
166
+ subtitle = _ref5$subtitle === undefined ? [] : _ref5$subtitle,
167
+ uprs = _ref5.uprs,
168
+ disclaimer = _ref5.disclaimer,
169
+ sideProps = _ref5.sideProps,
170
+ sideToggle = _ref5.sideToggle;
147
171
 
148
172
  var target = _react2.default.useRef(null);
149
173
 
@@ -226,6 +250,7 @@ var DataHeader = function DataHeader(_ref4) {
226
250
  _react2.default.createElement(
227
251
  'div',
228
252
  { className: classes.children },
253
+ _react2.default.createElement(SideIcon, { sideProps: sideProps, sideToggle: sideToggle }),
229
254
  R.not(R.isEmpty(reducedContent)) && _react2.default.createElement(
230
255
  _TooltipHeader2.default,
231
256
  { classes: classes, content: reducedContent },
@@ -262,6 +287,8 @@ DataHeader.propTypes = process.env.NODE_ENV !== "production" ? {
262
287
  header: _propTypes2.default.string,
263
288
  label: _propTypes2.default.string
264
289
  }),
290
+ sideProps: _propTypes2.default.object,
291
+ sideToggle: _propTypes2.default.func,
265
292
  disclaimer: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.element]),
266
293
  children: _propTypes2.default.node
267
294
  } : {};
@@ -0,0 +1,56 @@
1
+ 'use strict';
2
+
3
+ exports.__esModule = true;
4
+
5
+ var _react = require('react');
6
+
7
+ var _react2 = _interopRequireDefault(_react);
8
+
9
+ var _propTypes = require('prop-types');
10
+
11
+ var _propTypes2 = _interopRequireDefault(_propTypes);
12
+
13
+ var _styles = require('@material-ui/core/styles');
14
+
15
+ var _Info = require('@material-ui/icons//Info');
16
+
17
+ var _Info2 = _interopRequireDefault(_Info);
18
+
19
+ var _IconButton = require('@material-ui/core/IconButton');
20
+
21
+ var _IconButton2 = _interopRequireDefault(_IconButton);
22
+
23
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24
+
25
+ var useStyles = (0, _styles.makeStyles)(function (theme) {
26
+ return {
27
+ icon: {
28
+ color: function color(_ref) {
29
+ var isSelected = _ref.isSelected;
30
+ return isSelected ? theme.palette.highlight.hl1 : theme.palette.primary.main;
31
+ },
32
+ padding: 0
33
+ }
34
+ };
35
+ });
36
+
37
+ var InfoIcon = function InfoIcon(_ref2) {
38
+ var onClick = _ref2.onClick,
39
+ _ref2$isSelected = _ref2.isSelected,
40
+ isSelected = _ref2$isSelected === undefined ? false : _ref2$isSelected;
41
+
42
+ var classes = useStyles({ isSelected: isSelected });
43
+ return _react2.default.createElement(
44
+ _IconButton2.default,
45
+ { size: 'small', className: classes.icon, onClick: onClick, 'data-testid': 'ref-md-info' },
46
+ _react2.default.createElement(_Info2.default, { fontSize: 'small' })
47
+ );
48
+ };
49
+
50
+ InfoIcon.propTypes = process.env.NODE_ENV !== "production" ? {
51
+ onClick: _propTypes2.default.func.isRequired,
52
+ isSelected: _propTypes2.default.bool
53
+ } : {};
54
+
55
+ exports.default = InfoIcon;
56
+ module.exports = exports['default'];
@@ -101,7 +101,11 @@ var TableHtml5 = function TableHtml5(_ref) {
101
101
  sectionsData = _ref$sectionsData === undefined ? [] : _ref$sectionsData,
102
102
  cellHandler = _ref.cellHandler,
103
103
  activeCellIds = _ref.activeCellIds,
104
- activeCellHandler = _ref.activeCellHandler;
104
+ activeCellHandler = _ref.activeCellHandler,
105
+ sideToggle = _ref.sideToggle,
106
+ selectedSideCoord = _ref.selectedSideCoord,
107
+ _ref$testId = _ref.testId,
108
+ testId = _ref$testId === undefined ? 'vis-table' : _ref$testId;
105
109
 
106
110
  var classes = useStyles();
107
111
 
@@ -145,7 +149,13 @@ var TableHtml5 = function TableHtml5(_ref) {
145
149
  var nbColumnsByRows = R.map(R.length)(valuesHeaderData);
146
150
  return _react2.default.createElement(
147
151
  _Table2.default,
148
- { className: classes.table, 'aria-label': 'table', size: 'small', style: { padding: '0px 0px' } },
152
+ {
153
+ className: classes.table,
154
+ 'aria-label': 'table',
155
+ size: 'small',
156
+ style: { padding: '0px 0px' },
157
+ 'data-testid': testId
158
+ },
149
159
  _react2.default.createElement(
150
160
  'thead',
151
161
  { ref: headerRef, className: classes.stickyHeader },
@@ -159,6 +169,8 @@ var TableHtml5 = function TableHtml5(_ref) {
159
169
  headerData: headerData,
160
170
  xLayoutData: xLayoutData,
161
171
  activeCellIds: activeCellIds,
172
+ sideToggle: sideToggle,
173
+ selectedSideCoord: selectedSideCoord,
162
174
  ref: subHeadCellsRef,
163
175
  subHeadCellsWidth: subHeadCellsWidth
164
176
  })
@@ -176,6 +188,8 @@ var TableHtml5 = function TableHtml5(_ref) {
176
188
  cellHandler: cellHandler,
177
189
  activeCellIds: activeCellIds,
178
190
  activeCellHandler: activeCellHandler,
191
+ sideToggle: sideToggle,
192
+ selectedSideCoord: selectedSideCoord,
179
193
  subHeadCellsWidth: subHeadCellsWidth
180
194
  });
181
195
  }, sectionsData)
@@ -188,7 +202,10 @@ TableHtml5.propTypes = process.env.NODE_ENV !== "production" ? {
188
202
  sectionsData: _propTypes2.default.array,
189
203
  cellHandler: _propTypes2.default.func,
190
204
  activeCellHandler: _propTypes2.default.func,
191
- activeCellIds: _propTypes2.default.object
205
+ activeCellIds: _propTypes2.default.object,
206
+ sideToggle: _propTypes2.default.func,
207
+ selectedSideCoord: _propTypes2.default.object,
208
+ testId: _propTypes2.default.string
192
209
  } : {};
193
210
 
194
211
  exports.default = TableHtml5;