@sis-cc/dotstatsuite-visions 6.6.3 → 7.0.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 (54) 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/TableHtml5/TableHtml5.js +16 -3
  7. package/es/TableHtml5/cell.js +8 -2
  8. package/es/TableHtml5/flags.js +2 -0
  9. package/es/TableHtml5/header.js +2 -2
  10. package/es/TableHtml5/section.js +22 -18
  11. package/es/TableHtml5/sectionHeader.js +6 -2
  12. package/es/TableHtml5/sideIcon.js +44 -0
  13. package/es/TableHtml5/subHeader.js +14 -15
  14. package/es/index.js +1 -1
  15. package/es/theme.js +13 -0
  16. package/lib/AuthDialog/index.js +6 -5
  17. package/lib/CollapsibleTree/Collapse.js +126 -0
  18. package/lib/CollapsibleTree/CollapsibleTree.js +216 -0
  19. package/lib/{Table → CollapsibleTree}/index.js +2 -2
  20. package/lib/DataEdit/Input.js +1 -1
  21. package/lib/TableHtml5/TableHtml5.js +16 -3
  22. package/lib/TableHtml5/cell.js +11 -2
  23. package/lib/TableHtml5/flags.js +2 -0
  24. package/lib/TableHtml5/header.js +2 -2
  25. package/lib/TableHtml5/section.js +22 -15
  26. package/lib/TableHtml5/sectionHeader.js +9 -2
  27. package/lib/TableHtml5/sideIcon.js +68 -0
  28. package/lib/TableHtml5/subHeader.js +15 -13
  29. package/lib/index.js +10 -10
  30. package/lib/theme.js +13 -0
  31. package/package.json +6 -7
  32. package/es/Table/Table.js +0 -170
  33. package/es/Table/header.js +0 -91
  34. package/es/Table/index.js +0 -56
  35. package/es/Table/itemCell.js +0 -54
  36. package/es/Table/row-header.js +0 -84
  37. package/es/Table/section-header.js +0 -115
  38. package/es/Table/section-rows.js +0 -101
  39. package/es/Table/styles.js +0 -52
  40. package/es/Table/tableCell.js +0 -29
  41. package/es/Table/tooltip.js +0 -85
  42. package/es/Table/useStyles.js +0 -34
  43. package/es/Table/valueCell.js +0 -63
  44. package/lib/Table/Table.js +0 -203
  45. package/lib/Table/header.js +0 -116
  46. package/lib/Table/itemCell.js +0 -74
  47. package/lib/Table/row-header.js +0 -113
  48. package/lib/Table/section-header.js +0 -145
  49. package/lib/Table/section-rows.js +0 -134
  50. package/lib/Table/styles.js +0 -69
  51. package/lib/Table/tableCell.js +0 -50
  52. package/lib/Table/tooltip.js +0 -104
  53. package/lib/Table/useStyles.js +0 -41
  54. package/lib/Table/valueCell.js +0 -86
@@ -3,11 +3,12 @@ import * as R from 'ramda';
3
3
  import PropTypes from 'prop-types';
4
4
  import cx from 'classnames';
5
5
  import Typography from '@material-ui/core/Typography';
6
- import { makeStyles } from '@material-ui/core/styles';
6
+ import { makeStyles, useTheme } from '@material-ui/core/styles';
7
7
  import TableCell from '@material-ui/core/TableCell';
8
8
  import TableRow from '@material-ui/core/TableRow';
9
- import { getLight } from '../utils';
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 {
@@ -18,7 +19,9 @@ var useStyles = makeStyles(function (theme) {
18
19
  borderRight: '1px solid ' + theme.palette.grey[500],
19
20
  padding: theme.spacing(0.5) + 'px ' + theme.spacing(1) + 'px',
20
21
  color: theme.palette.grey['A700'],
21
- verticalAlign: 'middle'
22
+ verticalAlign: 'middle',
23
+ position: 'sticky',
24
+ zIndex: 1
22
25
  },
23
26
  fillerCell: {
24
27
  backgroundColor: theme.palette.grey[200],
@@ -48,9 +51,12 @@ var SubHeader = React.forwardRef(function (_ref, refs) {
48
51
  var headerData = _ref.headerData,
49
52
  xLayoutData = _ref.xLayoutData,
50
53
  activeCellIds = _ref.activeCellIds,
51
- subHeadCellsWidth = _ref.subHeadCellsWidth;
54
+ subHeadCellsWidth = _ref.subHeadCellsWidth,
55
+ sideToggle = _ref.sideToggle;
52
56
 
53
57
  var classes = useStyles();
58
+ var theme = useTheme();
59
+ var isRtl = getIsRtl(theme);
54
60
  return React.createElement(
55
61
  TableRow,
56
62
  null,
@@ -62,12 +68,7 @@ var SubHeader = React.forwardRef(function (_ref, refs) {
62
68
  className: classes.columnsTitle,
63
69
  key: index,
64
70
  id: 'subHeader_' + index,
65
- style: {
66
- position: 'sticky',
67
- left: subHeadCellsWidth[index],
68
- right: subHeadCellsWidth[index],
69
- zIndex: 1
70
- },
71
+ style: isRtl ? { right: subHeadCellsWidth[index] } : { left: subHeadCellsWidth[index] },
71
72
  ref: function ref(element) {
72
73
  return refs.current[index] = element;
73
74
  }
@@ -86,11 +87,7 @@ var SubHeader = React.forwardRef(function (_ref, refs) {
86
87
  }, xLayoutData),
87
88
  React.createElement(TableCell, {
88
89
  className: classes.fillerCell,
89
- style: {
90
- position: 'sticky',
91
- left: R.last(subHeadCellsWidth),
92
- right: R.last(subHeadCellsWidth)
93
- }
90
+ style: isRtl ? { position: 'sticky', right: R.last(subHeadCellsWidth) } : { position: 'sticky', left: R.last(subHeadCellsWidth) }
94
91
  }),
95
92
  mapIndexed(function (item, index) {
96
93
  var _cx;
@@ -101,6 +98,7 @@ var SubHeader = React.forwardRef(function (_ref, refs) {
101
98
  key: index,
102
99
  className: cx(classes.fillerCell, (_cx = {}, _cx[classes.highlight] = R.prop(index)(activeCellIds), _cx))
103
100
  },
101
+ React.createElement(SideIcon, { sideProps: R.prop('sideProps', item), sideToggle: sideToggle }),
104
102
  React.createElement(Flags, { flags: R.prop('flags', item) })
105
103
  );
106
104
  }, headerData)
@@ -111,6 +109,7 @@ SubHeader.propTypes = process.env.NODE_ENV !== "production" ? {
111
109
  activeCellIds: PropTypes.object,
112
110
  headerData: PropTypes.array,
113
111
  xLayoutData: PropTypes.array,
112
+ sideToggle: PropTypes.func,
114
113
  subHeadCellsWidth: PropTypes.arrayOf(PropTypes.number)
115
114
  } : {};
116
115
 
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'
@@ -101,7 +101,10 @@ 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
+ _ref$testId = _ref.testId,
107
+ testId = _ref$testId === undefined ? 'vis-table' : _ref$testId;
105
108
 
106
109
  var classes = useStyles();
107
110
 
@@ -145,7 +148,13 @@ var TableHtml5 = function TableHtml5(_ref) {
145
148
  var nbColumnsByRows = R.map(R.length)(valuesHeaderData);
146
149
  return _react2.default.createElement(
147
150
  _Table2.default,
148
- { className: classes.table, 'aria-label': 'table', size: 'small', style: { padding: '0px 0px' } },
151
+ {
152
+ className: classes.table,
153
+ 'aria-label': 'table',
154
+ size: 'small',
155
+ style: { padding: '0px 0px' },
156
+ 'data-testid': testId
157
+ },
149
158
  _react2.default.createElement(
150
159
  'thead',
151
160
  { ref: headerRef, className: classes.stickyHeader },
@@ -159,6 +168,7 @@ var TableHtml5 = function TableHtml5(_ref) {
159
168
  headerData: headerData,
160
169
  xLayoutData: xLayoutData,
161
170
  activeCellIds: activeCellIds,
171
+ sideToggle: sideToggle,
162
172
  ref: subHeadCellsRef,
163
173
  subHeadCellsWidth: subHeadCellsWidth
164
174
  })
@@ -176,6 +186,7 @@ var TableHtml5 = function TableHtml5(_ref) {
176
186
  cellHandler: cellHandler,
177
187
  activeCellIds: activeCellIds,
178
188
  activeCellHandler: activeCellHandler,
189
+ sideToggle: sideToggle,
179
190
  subHeadCellsWidth: subHeadCellsWidth
180
191
  });
181
192
  }, sectionsData)
@@ -188,7 +199,9 @@ TableHtml5.propTypes = process.env.NODE_ENV !== "production" ? {
188
199
  sectionsData: _propTypes2.default.array,
189
200
  cellHandler: _propTypes2.default.func,
190
201
  activeCellHandler: _propTypes2.default.func,
191
- activeCellIds: _propTypes2.default.object
202
+ activeCellIds: _propTypes2.default.object,
203
+ sideToggle: _propTypes2.default.func,
204
+ testId: _propTypes2.default.string
192
205
  } : {};
193
206
 
194
207
  exports.default = TableHtml5;
@@ -32,6 +32,10 @@ var _Link = require('@material-ui/core/Link');
32
32
 
33
33
  var _Link2 = _interopRequireDefault(_Link);
34
34
 
35
+ var _sideIcon = require('./sideIcon');
36
+
37
+ var _sideIcon2 = _interopRequireDefault(_sideIcon);
38
+
35
39
  var _flags = require('./flags');
36
40
 
37
41
  var _flags2 = _interopRequireDefault(_flags);
@@ -79,7 +83,9 @@ var Cell = function Cell(_ref) {
79
83
  cellHandler = _ref.cellHandler,
80
84
  activeCellHandler = _ref.activeCellHandler,
81
85
  isActive = _ref.isActive,
82
- isHighlight = _ref.isHighlight;
86
+ isHighlight = _ref.isHighlight,
87
+ sideProps = _ref.sideProps,
88
+ sideToggle = _ref.sideToggle;
83
89
 
84
90
  var classes = useStyles();
85
91
  var hasFlag = R.not(R.isEmpty(flags));
@@ -112,6 +118,7 @@ var Cell = function Cell(_ref) {
112
118
  _react2.default.createElement(
113
119
  _Typography2.default,
114
120
  { variant: 'body1', tabIndex: 0, noWrap: hasFlag },
121
+ _react2.default.createElement(_sideIcon2.default, { sideProps: sideProps, sideToggle: sideToggle }),
115
122
  hasFlag && _react2.default.createElement(_flags2.default, { flags: flags }),
116
123
  uiValue
117
124
  )
@@ -128,7 +135,9 @@ Cell.propTypes = process.env.NODE_ENV !== "production" ? {
128
135
  cellHandler: _propTypes2.default.func,
129
136
  isActive: _propTypes2.default.bool,
130
137
  isHighlight: _propTypes2.default.bool,
131
- activeCellHandler: _propTypes2.default.func
138
+ activeCellHandler: _propTypes2.default.func,
139
+ sideProps: _propTypes2.default.object,
140
+ sideToggle: _propTypes2.default.func
132
141
  } : {};
133
142
 
134
143
  exports.default = Cell;
@@ -52,6 +52,7 @@ var useStyles = (0, _styles.makeStyles)(function (theme) {
52
52
  borderColor: 'inherit',
53
53
  margin: theme.spacing(0, 0.5),
54
54
  whiteSpace: 'nowrap',
55
+ display: 'inline',
55
56
  fontWeight: 'bold',
56
57
  fontStyle: 'normal',
57
58
  textTransform: 'uppercase'
@@ -114,6 +115,7 @@ var Flags = function Flags(_ref) {
114
115
  hasUncoded && _react2.default.createElement(
115
116
  _react.Fragment,
116
117
  null,
118
+ '\xA0',
117
119
  _react2.default.createElement(_.Asterisk, { className: classes.svg, style: { fontSize: 11 } }),
118
120
  _react2.default.createElement(
119
121
  _Typography2.default,
@@ -92,7 +92,7 @@ var Header = function Header(_ref) {
92
92
  var theme = (0, _styles.useTheme)();
93
93
  var isRtl = (0, _utils.getIsRtl)(theme);
94
94
 
95
- var stickyLabelPosition = R.sum(subHeadCellsWidth) + 30 + theme.spacing(1);
95
+ var stickyLabelPosition = R.last(subHeadCellsWidth) + 30 + theme.spacing(1);
96
96
 
97
97
  if (R.compose(R.anyPass([R.isNil, R.isEmpty]), R.path([0, 'data']))(headerData)) return null;
98
98
  return timesIndexed(function (index) {
@@ -113,7 +113,7 @@ var Header = function Header(_ref) {
113
113
  colSpan: R.inc(xLayoutDataLength),
114
114
  id: id,
115
115
  tabIndex: 0,
116
- style: { position: 'sticky', left: 0, right: 0, zIndex: 1 }
116
+ style: isRtl ? { position: 'sticky', zIndex: 1, right: 0 } : { position: 'sticky', zIndex: 1, left: 0 }
117
117
  },
118
118
  _react2.default.createElement(
119
119
  'div',