@sis-cc/dotstatsuite-visions 6.6.4 → 6.7.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.
@@ -19,12 +19,12 @@
19
19
  * onClose: PropTypes.func.isRequired,
20
20
  * onSubmit: PropTypes.func.isRequired
21
21
  * };
22
+ * @demoReady
22
23
  */
23
24
 
24
25
  import React, { useState } from 'react';
25
26
  import PropTypes from 'prop-types';
26
27
  import { isEmpty } from 'ramda';
27
- import Button from '../Button';
28
28
  import Checkbox from '@material-ui/core/Checkbox';
29
29
  import CloseIcon from '@material-ui/icons/Close';
30
30
  import Dialog from '@material-ui/core/Dialog';
@@ -33,8 +33,9 @@ import PersonIcon from '@material-ui/icons/Person';
33
33
  import TextField from '@material-ui/core/TextField';
34
34
  import Typography from '@material-ui/core/Typography';
35
35
  import { makeStyles } from '@material-ui/core/styles';
36
+ import Button from '../Button';
36
37
 
37
- var useStyles = makeStyles(function (theme) {
38
+ var useStyles = makeStyles(function () {
38
39
  return {
39
40
  header: {
40
41
  color: 'grey',
@@ -0,0 +1,97 @@
1
+ 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; };
2
+
3
+ import React, { useEffect } from 'react';
4
+ import PropTypes from 'prop-types';
5
+ import cx from 'classnames';
6
+ import { pathOr } from 'ramda';
7
+ import { makeStyles, useTheme } from '@material-ui/core/styles';
8
+ import Collapse from '@material-ui/core/Collapse';
9
+ import Button from '@material-ui/core/Button';
10
+ import KeyboardArrowDownIcon from '@material-ui/icons/KeyboardArrowDown';
11
+ import KeyboardArrowUpIcon from '@material-ui/icons/KeyboardArrowUp';
12
+
13
+ var VARIANT_ICON = 'icon';
14
+ export var VARIANT_BOLD = 'bold';
15
+
16
+ var useStyles = makeStyles(function (theme) {
17
+ var _ref;
18
+
19
+ return _ref = {
20
+ buttonExpand: {
21
+ display: 'flex',
22
+ justifyContent: 'space-between'
23
+ }
24
+ }, _ref['button' + VARIANT_ICON] = {
25
+ color: theme.palette.primary.main,
26
+ backgroundColor: 'rgba(24, 32, 38, 0.04)',
27
+ margin: theme.spacing(1, 0)
28
+ }, _ref['button' + VARIANT_BOLD] = _extends({
29
+ marginBottom: theme.spacing(1),
30
+ padding: theme.spacing(0.5, 0, 1, 0),
31
+ '&:hover': {
32
+ backgroundColor: 'unset'
33
+ }
34
+ }, pathOr({}, ['mixins', 'collapsibleTree', 'buttonSublevel'], theme)), _ref['collapsibleContainer' + VARIANT_BOLD] = {
35
+ borderTop: '2px solid black',
36
+ marginTop: theme.spacing(2),
37
+ marginBottom: theme.spacing(2)
38
+ }, _ref;
39
+ });
40
+
41
+ var CollapseComponent = function CollapseComponent(_ref2) {
42
+ var label = _ref2.label,
43
+ isOpen = _ref2.isOpen,
44
+ children = _ref2.children,
45
+ _ref2$variant = _ref2.variant,
46
+ variant = _ref2$variant === undefined ? VARIANT_ICON : _ref2$variant,
47
+ level = _ref2.level;
48
+
49
+ var classes = useStyles();
50
+ var theme = useTheme();
51
+
52
+ var _React$useState = React.useState(isOpen),
53
+ open = _React$useState[0],
54
+ setOpen = _React$useState[1];
55
+
56
+ useEffect(function () {
57
+ return setOpen(isOpen);
58
+ }, [isOpen]);
59
+
60
+ return React.createElement(
61
+ 'div',
62
+ {
63
+ className: cx(classes['collapsibleContainer' + variant]),
64
+ style: {
65
+ marginRight: theme.spacing(level * 2),
66
+ marginLeft: theme.spacing(level * 2)
67
+ }
68
+ },
69
+ React.createElement(
70
+ Button,
71
+ {
72
+ className: cx(classes.buttonExpand, classes['button' + variant]),
73
+ onClick: function onClick() {
74
+ return setOpen(!open);
75
+ },
76
+ fullWidth: true
77
+ },
78
+ label,
79
+ open ? React.createElement(KeyboardArrowUpIcon, { color: 'primary' }) : React.createElement(KeyboardArrowDownIcon, { color: 'primary' })
80
+ ),
81
+ React.createElement(
82
+ Collapse,
83
+ { 'in': open, timeout: 'auto' },
84
+ children
85
+ )
86
+ );
87
+ };
88
+
89
+ CollapseComponent.propTypes = process.env.NODE_ENV !== "production" ? {
90
+ label: PropTypes.string,
91
+ isOpen: PropTypes.bool,
92
+ children: PropTypes.node,
93
+ variant: PropTypes.oneOf([VARIANT_ICON, VARIANT_BOLD]),
94
+ level: PropTypes.number
95
+ } : {};
96
+
97
+ export default CollapseComponent;
@@ -0,0 +1,171 @@
1
+ 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; };
2
+
3
+ import React, { useState, Fragment, useEffect } from 'react';
4
+ import * as R from 'ramda';
5
+ import PropTypes from 'prop-types';
6
+ import Container from '@material-ui/core/Container';
7
+ import { makeStyles } from '@material-ui/core/styles';
8
+ import Typography from '@material-ui/core/Typography';
9
+ import Divider from '@material-ui/core/Divider';
10
+ import Button from '@material-ui/core/Button';
11
+ import KeyboardArrowDownIcon from '@material-ui/icons/KeyboardArrowDown';
12
+ import KeyboardArrowUpIcon from '@material-ui/icons/KeyboardArrowUp';
13
+ import CircularProgress from '@material-ui/core/CircularProgress';
14
+ import Grid from '@material-ui/core/Grid';
15
+ import Collapse, { VARIANT_BOLD } from './Collapse';
16
+
17
+ var useStyles = makeStyles(function (theme) {
18
+ return {
19
+ title: _extends({
20
+ fontWeight: 'bold'
21
+ }, R.pathOr({}, ['mixins', 'collapsibleTree', 'title'], theme)),
22
+ divider: {
23
+ marginBottom: theme.spacing(2)
24
+ },
25
+ spacingValue: {
26
+ marginLeft: theme.spacing(2),
27
+ marginRight: theme.spacing(2),
28
+ marginBottom: theme.spacing(2)
29
+ }
30
+ };
31
+ });
32
+
33
+ var CollapsibleTree = function CollapsibleTree(_ref) {
34
+ var _ref$data = _ref.data,
35
+ data = _ref$data === undefined ? [] : _ref$data,
36
+ _ref$defaultDepthLeve = _ref.defaultDepthLevel,
37
+ defaultDepthLevel = _ref$defaultDepthLeve === undefined ? 1 : _ref$defaultDepthLeve,
38
+ isLoading = _ref.isLoading,
39
+ children = _ref.children,
40
+ labels = _ref.labels,
41
+ _ref$testId = _ref.testId,
42
+ testId = _ref$testId === undefined ? 'collapsible-tree' : _ref$testId;
43
+
44
+ var classes = useStyles();
45
+
46
+ var _useState = useState(defaultDepthLevel),
47
+ depthLevel = _useState[0],
48
+ setDepthLevel = _useState[1];
49
+
50
+ useEffect(function () {
51
+ return setDepthLevel(defaultDepthLevel);
52
+ }, [defaultDepthLevel]);
53
+
54
+ if (isLoading) {
55
+ return React.createElement(
56
+ Grid,
57
+ { container: true, item: true, justifyContent: 'center' },
58
+ React.createElement(CircularProgress, null)
59
+ );
60
+ }
61
+
62
+ var handleCollapse = function handleCollapse(isAllOpen) {
63
+ if (isAllOpen) return setDepthLevel(undefined);
64
+ return setDepthLevel(defaultDepthLevel);
65
+ };
66
+
67
+ var isAllOpen = depthLevel >= defaultDepthLevel;
68
+ var buttonAllOpenLabel = isAllOpen ? R.prop('collapseAll', labels) : R.prop('expandAll', labels);
69
+
70
+ return React.createElement(
71
+ Fragment,
72
+ null,
73
+ React.createElement(
74
+ Container,
75
+ { disableGutters: true, 'data-testid': testId },
76
+ React.createElement(
77
+ Button,
78
+ {
79
+ 'aria-label': buttonAllOpenLabel,
80
+ color: 'primary',
81
+ endIcon: isAllOpen ? React.createElement(KeyboardArrowDownIcon, { color: 'primary' }) : React.createElement(KeyboardArrowUpIcon, { color: 'primary' }),
82
+ onClick: function onClick() {
83
+ return handleCollapse(isAllOpen);
84
+ }
85
+ },
86
+ buttonAllOpenLabel
87
+ ),
88
+ children
89
+ ),
90
+ R.map(function (_ref2) {
91
+ var id = _ref2.id,
92
+ label = _ref2.label,
93
+ _ref2$children = _ref2.children,
94
+ children = _ref2$children === undefined ? [] : _ref2$children;
95
+
96
+ return React.createElement(
97
+ Fragment,
98
+ { key: id },
99
+ React.createElement(Divider, { className: classes.divider }),
100
+ React.createElement(
101
+ Typography,
102
+ { variant: 'h5', className: classes.title },
103
+ label
104
+ ),
105
+ R.map(function (_ref3) {
106
+ var id = _ref3.id,
107
+ label = _ref3.label,
108
+ children = _ref3.children,
109
+ value = _ref3.value;
110
+
111
+ return React.createElement(
112
+ Collapse,
113
+ { key: id, level: 0, label: label, isOpen: depthLevel >= 0 },
114
+ value && React.createElement(
115
+ Typography,
116
+ { className: classes.spacingValue, variant: 'body2' },
117
+ value
118
+ ),
119
+ children && R.map(function (_ref4) {
120
+ var id = _ref4.id,
121
+ label = _ref4.label,
122
+ value = _ref4.value;
123
+
124
+ return React.createElement(
125
+ Collapse,
126
+ {
127
+ key: id,
128
+ level: 1,
129
+ variant: VARIANT_BOLD,
130
+ label: label,
131
+ isOpen: depthLevel >= 1
132
+ },
133
+ React.createElement(
134
+ Typography,
135
+ { variant: 'body2' },
136
+ value
137
+ )
138
+ );
139
+ }, children)
140
+ );
141
+ }, children)
142
+ );
143
+ }, data)
144
+ );
145
+ };
146
+
147
+ CollapsibleTree.propTypes = process.env.NODE_ENV !== "production" ? {
148
+ data: PropTypes.arrayOf(PropTypes.shape({
149
+ id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,
150
+ label: PropTypes.string,
151
+ children: PropTypes.arrayOf(PropTypes.shape({
152
+ id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,
153
+ label: PropTypes.string,
154
+ children: PropTypes.arrayOf(PropTypes.shape({
155
+ id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,
156
+ label: PropTypes.string,
157
+ value: PropTypes.string
158
+ }))
159
+ }))
160
+ })),
161
+ defaultDepthLevel: PropTypes.number,
162
+ isLoading: PropTypes.bool,
163
+ children: PropTypes.node,
164
+ labels: PropTypes.shape({
165
+ collapseAll: PropTypes.string,
166
+ expandAll: PropTypes.string
167
+ }),
168
+ testId: PropTypes.string
169
+ } : {};
170
+
171
+ export default CollapsibleTree;
@@ -0,0 +1,44 @@
1
+ /**
2
+ * CollapsibleTree is a component that show you a tree structure with a button to expand/collapse each node.
3
+ * defaultDepthLevel is the maximum level that will be open by "collapse all" button value could be 0|1. set to 1 by default.
4
+ *
5
+ * @memberOf VISIONS
6
+ * @name CollapsibleTree
7
+ * @tag component
8
+ * @api public
9
+ * @props
10
+ * CollapsibleTree.propTypes = {
11
+ * data: PropTypes.arrayOf(PropTypes.shape({
12
+ * id: PropTypes.string.isRequired,
13
+ * label: PropTypes.string,
14
+ * children: PropTypes.arrayOf(PropTypes.shape({
15
+ * id: PropTypes.string.isRequired,
16
+ * label: PropTypes.string,
17
+ * children: PropTypes.arrayOf(PropTypes.shape({
18
+ * id: PropTypes.string.isRequired,
19
+ * label: PropTypes.string,
20
+ * value: PropTypes.string,
21
+ * })),
22
+ * }))
23
+ * })),
24
+ * defaultDepthLevel: PropTypes.number,
25
+ * testId: PropTypes.string,
26
+ *};
27
+ * @theme
28
+ * {
29
+ * palette: {
30
+ * primary: {
31
+ * main: // color label button
32
+ * },
33
+ * }
34
+ * mixins: {
35
+ * CollapsibleTree: {
36
+ * title: {
37
+ * // font, color, of titles
38
+ * },
39
+ * }
40
+ * @demoReady
41
+ *
42
+ */
43
+
44
+ export { default } from './CollapsibleTree';
@@ -12,7 +12,7 @@ import IconButton from '@material-ui/core/IconButton';
12
12
  import Done from '@material-ui/icons/Done';
13
13
  import RotateLeftIcon from '@material-ui/icons/RotateLeft';
14
14
 
15
- var useStyles = makeStyles(function (theme) {
15
+ var useStyles = makeStyles(function () {
16
16
  return {
17
17
  visibility: {
18
18
  visibility: 'hidden'
@@ -68,7 +68,10 @@ var TableHtml5 = function TableHtml5(_ref) {
68
68
  sectionsData = _ref$sectionsData === undefined ? [] : _ref$sectionsData,
69
69
  cellHandler = _ref.cellHandler,
70
70
  activeCellIds = _ref.activeCellIds,
71
- activeCellHandler = _ref.activeCellHandler;
71
+ activeCellHandler = _ref.activeCellHandler,
72
+ sideToggle = _ref.sideToggle,
73
+ _ref$testId = _ref.testId,
74
+ testId = _ref$testId === undefined ? 'vis-table' : _ref$testId;
72
75
 
73
76
  var classes = useStyles();
74
77
 
@@ -112,7 +115,13 @@ var TableHtml5 = function TableHtml5(_ref) {
112
115
  var nbColumnsByRows = R.map(R.length)(valuesHeaderData);
113
116
  return React.createElement(
114
117
  Table,
115
- { className: classes.table, 'aria-label': 'table', size: 'small', style: { padding: '0px 0px' } },
118
+ {
119
+ className: classes.table,
120
+ 'aria-label': 'table',
121
+ size: 'small',
122
+ style: { padding: '0px 0px' },
123
+ 'data-testid': testId
124
+ },
116
125
  React.createElement(
117
126
  'thead',
118
127
  { ref: headerRef, className: classes.stickyHeader },
@@ -126,6 +135,7 @@ var TableHtml5 = function TableHtml5(_ref) {
126
135
  headerData: headerData,
127
136
  xLayoutData: xLayoutData,
128
137
  activeCellIds: activeCellIds,
138
+ sideToggle: sideToggle,
129
139
  ref: subHeadCellsRef,
130
140
  subHeadCellsWidth: subHeadCellsWidth
131
141
  })
@@ -143,6 +153,7 @@ var TableHtml5 = function TableHtml5(_ref) {
143
153
  cellHandler: cellHandler,
144
154
  activeCellIds: activeCellIds,
145
155
  activeCellHandler: activeCellHandler,
156
+ sideToggle: sideToggle,
146
157
  subHeadCellsWidth: subHeadCellsWidth
147
158
  });
148
159
  }, sectionsData)
@@ -155,7 +166,9 @@ TableHtml5.propTypes = process.env.NODE_ENV !== "production" ? {
155
166
  sectionsData: PropTypes.array,
156
167
  cellHandler: PropTypes.func,
157
168
  activeCellHandler: PropTypes.func,
158
- activeCellIds: PropTypes.object
169
+ activeCellIds: PropTypes.object,
170
+ sideToggle: PropTypes.func,
171
+ testId: PropTypes.string
159
172
  } : {};
160
173
 
161
174
  export default TableHtml5;
@@ -6,6 +6,7 @@ import { makeStyles } from '@material-ui/core/styles';
6
6
  import TableCell from '@material-ui/core/TableCell';
7
7
  import Typography from '@material-ui/core/Typography';
8
8
  import Link from '@material-ui/core/Link';
9
+ import SideIcon from './sideIcon';
9
10
  import Flags from './flags';
10
11
 
11
12
  var useStyles = makeStyles(function (theme) {
@@ -47,7 +48,9 @@ var Cell = function Cell(_ref) {
47
48
  cellHandler = _ref.cellHandler,
48
49
  activeCellHandler = _ref.activeCellHandler,
49
50
  isActive = _ref.isActive,
50
- isHighlight = _ref.isHighlight;
51
+ isHighlight = _ref.isHighlight,
52
+ sideProps = _ref.sideProps,
53
+ sideToggle = _ref.sideToggle;
51
54
 
52
55
  var classes = useStyles();
53
56
  var hasFlag = R.not(R.isEmpty(flags));
@@ -80,6 +83,7 @@ var Cell = function Cell(_ref) {
80
83
  React.createElement(
81
84
  Typography,
82
85
  { variant: 'body1', tabIndex: 0, noWrap: hasFlag },
86
+ React.createElement(SideIcon, { sideProps: sideProps, sideToggle: sideToggle }),
83
87
  hasFlag && React.createElement(Flags, { flags: flags }),
84
88
  uiValue
85
89
  )
@@ -96,7 +100,9 @@ Cell.propTypes = process.env.NODE_ENV !== "production" ? {
96
100
  cellHandler: PropTypes.func,
97
101
  isActive: PropTypes.bool,
98
102
  isHighlight: PropTypes.bool,
99
- activeCellHandler: PropTypes.func
103
+ activeCellHandler: PropTypes.func,
104
+ sideProps: PropTypes.object,
105
+ sideToggle: PropTypes.func
100
106
  } : {};
101
107
 
102
108
  export default Cell;
@@ -11,6 +11,7 @@ import TableCell from '@material-ui/core/TableCell';
11
11
  import TableRow from '@material-ui/core/TableRow';
12
12
  import SectionHeader from './sectionHeader';
13
13
  import Cell from './cell';
14
+ import SideIcon from './sideIcon';
14
15
  import { getLight, getIsRtl } from '../utils';
15
16
  import Flags from './flags';
16
17
 
@@ -70,6 +71,7 @@ var Section = function Section(_ref) {
70
71
  headerHeight = _ref.headerHeight,
71
72
  sectionIndex = _ref.sectionIndex,
72
73
  nbColumnsByRows = _ref.nbColumnsByRows,
74
+ sideToggle = _ref.sideToggle,
73
75
  subHeadCellsWidth = _ref.subHeadCellsWidth;
74
76
 
75
77
  var classes = useStyles();
@@ -87,7 +89,8 @@ var Section = function Section(_ref) {
87
89
  section: section,
88
90
  currentSection: currentSection,
89
91
  xLayoutDataLength: xLayoutDataLength,
90
- headerHeight: headerHeight
92
+ headerHeight: headerHeight,
93
+ sideToggle: sideToggle
91
94
  }),
92
95
  R.map(function (sectionbody) {
93
96
  var _cx2;
@@ -148,6 +151,7 @@ var Section = function Section(_ref) {
148
151
  React.createElement(
149
152
  'div',
150
153
  { className: classes.flagContainer },
154
+ React.createElement(SideIcon, { sideProps: R.prop('sideProps', sectionbody), sideToggle: sideToggle }),
151
155
  React.createElement(Flags, { flags: R.prop('flags', sectionbody) })
152
156
  )
153
157
  ),
@@ -164,6 +168,7 @@ var Section = function Section(_ref) {
164
168
  }, R.pathOr({ value: '..' }, [item.key, currentSection, sectionbody.key, 0], cells), {
165
169
  headers: rowIds + ' ' + columnIds + ' ' + currentSection,
166
170
  cellHandler: cellHandler,
171
+ sideToggle: sideToggle,
167
172
  isActive: isActive,
168
173
  isHighlight: R.any(R.identity)([R.prop(rowId)(activeCellIds), R.prop(columnIndex)(activeCellIds)]),
169
174
  activeCellHandler: R.is(Function)(activeCellHandler) ? function () {
@@ -191,6 +196,7 @@ Section.propTypes = process.env.NODE_ENV !== "production" ? {
191
196
  headerNumberRows: PropTypes.number,
192
197
  nbColumnsByRows: PropTypes.array,
193
198
  maxColumns: PropTypes.number,
199
+ sideToggle: PropTypes.func,
194
200
  subHeadCellsWidth: PropTypes.arrayOf(PropTypes.number)
195
201
  } : {};
196
202
 
@@ -8,6 +8,7 @@ import { makeStyles } from '@material-ui/core/styles';
8
8
  import Lens from '@material-ui/icons/Lens';
9
9
  import TableCell from '@material-ui/core/TableCell';
10
10
  import TableRow from '@material-ui/core/TableRow';
11
+ import SideIcon from './sideIcon';
11
12
  import Flags from './flags';
12
13
  import { getDark } from '../utils';
13
14
 
@@ -54,7 +55,8 @@ var SectionHeader = function SectionHeader(_ref) {
54
55
  section = _ref.section,
55
56
  currentSection = _ref.currentSection,
56
57
  xLayoutDataLength = _ref.xLayoutDataLength,
57
- headerHeight = _ref.headerHeight;
58
+ headerHeight = _ref.headerHeight,
59
+ sideToggle = _ref.sideToggle;
58
60
 
59
61
  var classes = useStyles();
60
62
  if (R.compose(R.anyPass([R.isNil, R.isEmpty]), R.path([0, 'data']))(section)) return null;
@@ -109,6 +111,7 @@ var SectionHeader = function SectionHeader(_ref) {
109
111
  React.createElement(
110
112
  'div',
111
113
  { className: classes.flag },
114
+ React.createElement(SideIcon, { sideProps: R.path([0, 'sideProps'], section), sideToggle: sideToggle }),
112
115
  React.createElement(Flags, { flags: R.path([0, 'flags'], section) })
113
116
  )
114
117
  )
@@ -121,7 +124,8 @@ SectionHeader.propTypes = process.env.NODE_ENV !== "production" ? {
121
124
  section: PropTypes.array,
122
125
  currentSection: PropTypes.string,
123
126
  xLayoutDataLength: PropTypes.number,
124
- headerHeight: PropTypes.number
127
+ headerHeight: PropTypes.number,
128
+ sideToggle: PropTypes.func
125
129
  } : {};
126
130
 
127
131
  export default SectionHeader;
@@ -0,0 +1,44 @@
1
+ import React from 'react';
2
+ import * as R from 'ramda';
3
+ import PropTypes from 'prop-types';
4
+ import { makeStyles } from '@material-ui/core/styles';
5
+ import InfoIcon from '@material-ui/icons//Info';
6
+ import IconButton from '@material-ui/core/IconButton';
7
+
8
+ var useStyles = makeStyles(function (theme) {
9
+ return {
10
+ icon: {
11
+ color: theme.palette.primary.main,
12
+ padding: 0
13
+ }
14
+ };
15
+ });
16
+
17
+ var SideIcon = function SideIcon(_ref) {
18
+ var sideProps = _ref.sideProps,
19
+ sideToggle = _ref.sideToggle;
20
+
21
+ var classes = useStyles();
22
+ if (R.isNil(sideProps) || !R.is(Function, sideToggle)) {
23
+ return null;
24
+ }
25
+ return React.createElement(
26
+ IconButton,
27
+ {
28
+ size: 'small',
29
+ className: classes.icon,
30
+ onClick: function onClick() {
31
+ return sideToggle(sideProps);
32
+ },
33
+ 'data-testid': 'ref-md-info'
34
+ },
35
+ React.createElement(InfoIcon, { fontSize: 'small' })
36
+ );
37
+ };
38
+
39
+ SideIcon.propTypes = process.env.NODE_ENV !== "production" ? {
40
+ sideProps: PropTypes.object,
41
+ sideToggle: PropTypes.func
42
+ } : {};
43
+
44
+ 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,8 @@ 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;
54
56
 
55
57
  var classes = useStyles();
56
58
  var theme = useTheme();
@@ -96,6 +98,7 @@ var SubHeader = React.forwardRef(function (_ref, refs) {
96
98
  key: index,
97
99
  className: cx(classes.fillerCell, (_cx = {}, _cx[classes.highlight] = R.prop(index)(activeCellIds), _cx))
98
100
  },
101
+ React.createElement(SideIcon, { sideProps: R.prop('sideProps', item), sideToggle: sideToggle }),
99
102
  React.createElement(Flags, { flags: R.prop('flags', item) })
100
103
  );
101
104
  }, headerData)
@@ -106,6 +109,7 @@ SubHeader.propTypes = process.env.NODE_ENV !== "production" ? {
106
109
  activeCellIds: PropTypes.object,
107
110
  headerData: PropTypes.array,
108
111
  xLayoutData: PropTypes.array,
112
+ sideToggle: PropTypes.func,
109
113
  subHeadCellsWidth: PropTypes.arrayOf(PropTypes.number)
110
114
  } : {};
111
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';
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',