@sis-cc/dotstatsuite-visions 6.6.1 → 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.
@@ -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'
package/lib/Share/Mode.js CHANGED
@@ -42,6 +42,8 @@ var _Radio = require('@material-ui/core/Radio');
42
42
 
43
43
  var _Radio2 = _interopRequireDefault(_Radio);
44
44
 
45
+ var _ = require('../');
46
+
45
47
  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; } }
46
48
 
47
49
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -63,16 +65,54 @@ var useStyles = (0, _styles.makeStyles)(function (theme) {
63
65
  padding: theme.spacing(1, 0)
64
66
  }
65
67
  },
66
- label: theme.typography.body2
68
+ label: theme.typography.body2,
69
+ warning: _extends({
70
+ marginLeft: theme.spacing(0.5),
71
+ width: 'unset',
72
+ fontSize: 'inherit',
73
+ height: '1.3em'
74
+ }, R.pathOr({}, ['mixins', 'share', 'warning'], theme))
67
75
  };
68
76
  });
69
77
 
70
- var Mode = function Mode(_ref) {
71
- var changeMode = _ref.changeMode,
72
- mode = _ref.mode,
73
- _ref$modes = _ref.modes,
74
- modes = _ref$modes === undefined ? [] : _ref$modes,
75
- title = _ref.title;
78
+ var Warning = function Warning(_ref) {
79
+ var title = _ref.title;
80
+
81
+ var classes = useStyles();
82
+ var theme = (0, _styles.useTheme)();
83
+ var warningColor = R.path(['palette', 'highlight', 'hl1'], theme) || theme.palette.primary.dark;
84
+ var warningTextColor = theme.palette.getContrastText(warningColor);
85
+ return _react2.default.createElement(
86
+ _.Tooltip,
87
+ {
88
+ className: classes.warning,
89
+ title: title,
90
+ tabIndex: 0,
91
+ variant: 'warning',
92
+ 'aria-hidden': false,
93
+ placement: 'bottom',
94
+ PopperProps: {
95
+ modifiers: {
96
+ flip: {
97
+ behavior: ['bottom', 'top', 'left', 'right']
98
+ }
99
+ }
100
+ }
101
+ },
102
+ _react2.default.createElement(_.Warning, { pathBackgroundColor: warningColor, pathColor: warningTextColor })
103
+ );
104
+ };
105
+
106
+ Warning.propTypes = process.env.NODE_ENV !== "production" ? {
107
+ title: _propTypes2.default.string
108
+ } : {};
109
+
110
+ var Mode = function Mode(_ref2) {
111
+ var changeMode = _ref2.changeMode,
112
+ mode = _ref2.mode,
113
+ _ref2$modes = _ref2.modes,
114
+ modes = _ref2$modes === undefined ? [] : _ref2$modes,
115
+ title = _ref2.title;
76
116
 
77
117
  var classes = useStyles();
78
118
  return _react2.default.createElement(
@@ -91,14 +131,20 @@ var Mode = function Mode(_ref) {
91
131
  { onChange: function onChange(e) {
92
132
  return changeMode(e.target.value);
93
133
  }, value: mode },
94
- R.map(function (_ref2) {
95
- var label = _ref2.label,
96
- value = _ref2.value;
134
+ R.map(function (_ref3) {
135
+ var label = _ref3.label,
136
+ value = _ref3.value,
137
+ warningMessage = _ref3.warningMessage;
97
138
  return _react2.default.createElement(_FormControlLabel2.default, {
98
139
  classes: { label: classes.label },
99
140
  key: value,
100
141
  control: _react2.default.createElement(_Radio2.default, { variant: 'outlined', color: 'primary' }),
101
- label: label,
142
+ label: _react2.default.createElement(
143
+ 'span',
144
+ null,
145
+ label,
146
+ warningMessage && _react2.default.createElement(Warning, { title: warningMessage })
147
+ ),
102
148
  value: value
103
149
  });
104
150
  })(modes)
@@ -112,7 +158,8 @@ Mode.propTypes = process.env.NODE_ENV !== "production" ? {
112
158
  mode: _propTypes2.default.string,
113
159
  modes: _propTypes2.default.arrayOf(_propTypes2.default.shape({
114
160
  label: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.element]),
115
- value: _propTypes2.default.string
161
+ value: _propTypes2.default.string,
162
+ warningMessage: _propTypes2.default.string
116
163
  })),
117
164
  title: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.element])
118
165
  } : {};
@@ -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
 
@@ -143,22 +146,29 @@ var TableHtml5 = function TableHtml5(_ref) {
143
146
  var xLayoutDataLength = R.length(xLayoutData);
144
147
  var valuesHeaderData = getEnhancedValuesHeaderData(headerData);
145
148
  var nbColumnsByRows = R.map(R.length)(valuesHeaderData);
146
-
147
149
  return _react2.default.createElement(
148
150
  _Table2.default,
149
- { 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
+ },
150
158
  _react2.default.createElement(
151
159
  'thead',
152
160
  { ref: headerRef, className: classes.stickyHeader },
153
161
  _react2.default.createElement(_header2.default, {
154
162
  headerData: headerData,
155
163
  valuesHeaderData: valuesHeaderData,
156
- xLayoutDataLength: xLayoutDataLength
164
+ xLayoutDataLength: xLayoutDataLength,
165
+ subHeadCellsWidth: subHeadCellsWidth
157
166
  }),
158
167
  _react2.default.createElement(_subHeader2.default, {
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;
@@ -36,6 +36,8 @@ var _flags = require('./flags');
36
36
 
37
37
  var _flags2 = _interopRequireDefault(_flags);
38
38
 
39
+ var _utils = require('../utils');
40
+
39
41
  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; } }
40
42
 
41
43
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -72,9 +74,7 @@ var useStyles = (0, _styles.makeStyles)(function (theme) {
72
74
  paddingTop: 0
73
75
  },
74
76
  stickyLabel: {
75
- position: 'sticky',
76
- left: theme.spacing(1),
77
- right: theme.spacing(1)
77
+ position: 'sticky'
78
78
  }
79
79
  };
80
80
  });
@@ -85,9 +85,15 @@ var mapIndexed = R.addIndex(R.map);
85
85
  var Header = function Header(_ref) {
86
86
  var headerData = _ref.headerData,
87
87
  valuesHeaderData = _ref.valuesHeaderData,
88
- xLayoutDataLength = _ref.xLayoutDataLength;
88
+ xLayoutDataLength = _ref.xLayoutDataLength,
89
+ subHeadCellsWidth = _ref.subHeadCellsWidth;
89
90
 
90
91
  var classes = useStyles();
92
+ var theme = (0, _styles.useTheme)();
93
+ var isRtl = (0, _utils.getIsRtl)(theme);
94
+
95
+ var stickyLabelPosition = R.last(subHeadCellsWidth) + 30 + theme.spacing(1);
96
+
91
97
  if (R.compose(R.anyPass([R.isNil, R.isEmpty]), R.path([0, 'data']))(headerData)) return null;
92
98
  return timesIndexed(function (index) {
93
99
  var _cx;
@@ -107,7 +113,7 @@ var Header = function Header(_ref) {
107
113
  colSpan: R.inc(xLayoutDataLength),
108
114
  id: id,
109
115
  tabIndex: 0,
110
- style: { position: 'sticky', left: 0, zIndex: 1 }
116
+ style: isRtl ? { position: 'sticky', zIndex: 1, right: 0 } : { position: 'sticky', zIndex: 1, left: 0 }
111
117
  },
112
118
  _react2.default.createElement(
113
119
  'div',
@@ -140,7 +146,14 @@ var Header = function Header(_ref) {
140
146
  { className: classes.cellContentCenter },
141
147
  _react2.default.createElement(
142
148
  _Typography2.default,
143
- { className: classes.stickyLabel, variant: 'body1' },
149
+ {
150
+ className: classes.stickyLabel,
151
+ style: {
152
+ left: isRtl ? theme.spacing(1) : stickyLabelPosition,
153
+ right: isRtl ? stickyLabelPosition : theme.spacing(1)
154
+ },
155
+ variant: 'body1'
156
+ },
144
157
  R.prop('label', headerItem),
145
158
  _react2.default.createElement(_flags2.default, { flags: flags, isHeader: true })
146
159
  )
@@ -154,7 +167,8 @@ var Header = function Header(_ref) {
154
167
  Header.propTypes = process.env.NODE_ENV !== "production" ? {
155
168
  headerData: _propTypes2.default.array,
156
169
  valuesHeaderData: _propTypes2.default.array,
157
- xLayoutDataLength: _propTypes2.default.number
170
+ xLayoutDataLength: _propTypes2.default.number,
171
+ subHeadCellsWidth: _propTypes2.default.array
158
172
  } : {};
159
173
 
160
174
  exports.default = Header;
@@ -46,6 +46,10 @@ var _cell = require('./cell');
46
46
 
47
47
  var _cell2 = _interopRequireDefault(_cell);
48
48
 
49
+ var _sideIcon = require('./sideIcon');
50
+
51
+ var _sideIcon2 = _interopRequireDefault(_sideIcon);
52
+
49
53
  var _utils = require('../utils');
50
54
 
51
55
  var _flags = require('./flags');
@@ -74,7 +78,8 @@ var useStyles = (0, _styles.makeStyles)(function (theme) {
74
78
  border: 'inherit',
75
79
  borderBottom: '1px solid ' + theme.palette.grey[500],
76
80
  borderRight: '1px solid ' + theme.palette.grey[500],
77
- padding: theme.spacing(0.5) + 'px ' + theme.spacing(1) + 'px'
81
+ padding: theme.spacing(0.5) + 'px ' + theme.spacing(1) + 'px',
82
+ position: 'sticky'
78
83
  },
79
84
  cellContent: {
80
85
  display: 'flex',
@@ -91,7 +96,11 @@ var useStyles = (0, _styles.makeStyles)(function (theme) {
91
96
  hierarchySpace: {
92
97
  marginBottom: 'auto'
93
98
  },
94
- highlight: theme.mixins.table.cellHighlight
99
+ highlight: theme.mixins.table.cellHighlight,
100
+ stickyHeader: {
101
+ position: 'sticky',
102
+ zIndex: 1
103
+ }
95
104
  };
96
105
  });
97
106
  var mapIndexed = R.addIndex(R.map);
@@ -107,12 +116,15 @@ var Section = function Section(_ref) {
107
116
  headerHeight = _ref.headerHeight,
108
117
  sectionIndex = _ref.sectionIndex,
109
118
  nbColumnsByRows = _ref.nbColumnsByRows,
119
+ sideToggle = _ref.sideToggle,
110
120
  subHeadCellsWidth = _ref.subHeadCellsWidth;
111
121
 
112
122
  var classes = useStyles();
113
123
  var currentSection = R.path([0, 'key'], section);
114
124
  var headerNumberRows = R.length(nbColumnsByRows);
115
125
  var maxColumns = R.last(nbColumnsByRows);
126
+ var theme = (0, _styles.useTheme)();
127
+ var isRtl = (0, _utils.getIsRtl)(theme);
116
128
 
117
129
  return _react2.default.createElement(
118
130
  _TableBody2.default,
@@ -122,7 +134,8 @@ var Section = function Section(_ref) {
122
134
  section: section,
123
135
  currentSection: currentSection,
124
136
  xLayoutDataLength: xLayoutDataLength,
125
- headerHeight: headerHeight
137
+ headerHeight: headerHeight,
138
+ sideToggle: sideToggle
126
139
  }),
127
140
  R.map(function (sectionbody) {
128
141
  var _cx2;
@@ -151,11 +164,11 @@ var Section = function Section(_ref) {
151
164
  _TableCell2.default,
152
165
  {
153
166
  key: id,
154
- className: (0, _classnames2.default)(classes.rowTitle, (_cx = {}, _cx[classes.topCell] = R.not(R.isEmpty(flags)), _cx[classes.highlight] = R.prop(rowId)(activeCellIds), _cx)),
167
+ className: (0, _classnames2.default)(classes.rowTitle, classes.stickyHeader, (_cx = {}, _cx[classes.topCell] = R.not(R.isEmpty(flags)), _cx[classes.highlight] = R.prop(rowId)(activeCellIds), _cx)),
155
168
  id: id,
156
169
  headers: 'subHeader_' + index + ' ' + currentSection,
157
170
  component: 'th',
158
- style: { position: 'sticky', left: subHeadCellsWidth[index], zIndex: 1 }
171
+ style: isRtl ? { right: subHeadCellsWidth[index] } : { left: subHeadCellsWidth[index] }
159
172
  },
160
173
  _react2.default.createElement(
161
174
  'div',
@@ -178,11 +191,12 @@ var Section = function Section(_ref) {
178
191
  _TableCell2.default,
179
192
  {
180
193
  className: (0, _classnames2.default)(classes.fillerCell, (_cx2 = {}, _cx2[classes.highlight] = R.prop(rowId)(activeCellIds), _cx2)),
181
- style: { position: 'sticky', left: R.last(subHeadCellsWidth) }
194
+ style: isRtl ? { right: R.last(subHeadCellsWidth) } : { left: R.last(subHeadCellsWidth) }
182
195
  },
183
196
  _react2.default.createElement(
184
197
  'div',
185
198
  { className: classes.flagContainer },
199
+ _react2.default.createElement(_sideIcon2.default, { sideProps: R.prop('sideProps', sectionbody), sideToggle: sideToggle }),
186
200
  _react2.default.createElement(_flags2.default, { flags: R.prop('flags', sectionbody) })
187
201
  )
188
202
  ),
@@ -199,6 +213,7 @@ var Section = function Section(_ref) {
199
213
  }, R.pathOr({ value: '..' }, [item.key, currentSection, sectionbody.key, 0], cells), {
200
214
  headers: rowIds + ' ' + columnIds + ' ' + currentSection,
201
215
  cellHandler: cellHandler,
216
+ sideToggle: sideToggle,
202
217
  isActive: isActive,
203
218
  isHighlight: R.any(R.identity)([R.prop(rowId)(activeCellIds), R.prop(columnIndex)(activeCellIds)]),
204
219
  activeCellHandler: R.is(Function)(activeCellHandler) ? function () {
@@ -226,6 +241,7 @@ Section.propTypes = process.env.NODE_ENV !== "production" ? {
226
241
  headerNumberRows: _propTypes2.default.number,
227
242
  nbColumnsByRows: _propTypes2.default.array,
228
243
  maxColumns: _propTypes2.default.number,
244
+ sideToggle: _propTypes2.default.func,
229
245
  subHeadCellsWidth: _propTypes2.default.arrayOf(_propTypes2.default.number)
230
246
  } : {};
231
247
 
@@ -34,6 +34,10 @@ var _TableRow = require('@material-ui/core/TableRow');
34
34
 
35
35
  var _TableRow2 = _interopRequireDefault(_TableRow);
36
36
 
37
+ var _sideIcon = require('./sideIcon');
38
+
39
+ var _sideIcon2 = _interopRequireDefault(_sideIcon);
40
+
37
41
  var _flags = require('./flags');
38
42
 
39
43
  var _flags2 = _interopRequireDefault(_flags);
@@ -87,7 +91,8 @@ var SectionHeader = function SectionHeader(_ref) {
87
91
  section = _ref.section,
88
92
  currentSection = _ref.currentSection,
89
93
  xLayoutDataLength = _ref.xLayoutDataLength,
90
- headerHeight = _ref.headerHeight;
94
+ headerHeight = _ref.headerHeight,
95
+ sideToggle = _ref.sideToggle;
91
96
 
92
97
  var classes = useStyles();
93
98
  if (R.compose(R.anyPass([R.isNil, R.isEmpty]), R.path([0, 'data']))(section)) return null;
@@ -142,6 +147,7 @@ var SectionHeader = function SectionHeader(_ref) {
142
147
  _react2.default.createElement(
143
148
  'div',
144
149
  { className: classes.flag },
150
+ _react2.default.createElement(_sideIcon2.default, { sideProps: R.path([0, 'sideProps'], section), sideToggle: sideToggle }),
145
151
  _react2.default.createElement(_flags2.default, { flags: R.path([0, 'flags'], section) })
146
152
  )
147
153
  )
@@ -154,7 +160,8 @@ SectionHeader.propTypes = process.env.NODE_ENV !== "production" ? {
154
160
  section: _propTypes2.default.array,
155
161
  currentSection: _propTypes2.default.string,
156
162
  xLayoutDataLength: _propTypes2.default.number,
157
- headerHeight: _propTypes2.default.number
163
+ headerHeight: _propTypes2.default.number,
164
+ sideToggle: _propTypes2.default.func
158
165
  } : {};
159
166
 
160
167
  exports.default = SectionHeader;
@@ -0,0 +1,68 @@
1
+ 'use strict';
2
+
3
+ exports.__esModule = true;
4
+
5
+ var _react = require('react');
6
+
7
+ var _react2 = _interopRequireDefault(_react);
8
+
9
+ var _ramda = require('ramda');
10
+
11
+ var R = _interopRequireWildcard(_ramda);
12
+
13
+ var _propTypes = require('prop-types');
14
+
15
+ var _propTypes2 = _interopRequireDefault(_propTypes);
16
+
17
+ var _styles = require('@material-ui/core/styles');
18
+
19
+ var _Info = require('@material-ui/icons//Info');
20
+
21
+ var _Info2 = _interopRequireDefault(_Info);
22
+
23
+ var _IconButton = require('@material-ui/core/IconButton');
24
+
25
+ var _IconButton2 = _interopRequireDefault(_IconButton);
26
+
27
+ 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; } }
28
+
29
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
30
+
31
+ var useStyles = (0, _styles.makeStyles)(function (theme) {
32
+ return {
33
+ icon: {
34
+ color: theme.palette.primary.main,
35
+ padding: 0
36
+ }
37
+ };
38
+ });
39
+
40
+ var SideIcon = function SideIcon(_ref) {
41
+ var sideProps = _ref.sideProps,
42
+ sideToggle = _ref.sideToggle;
43
+
44
+ var classes = useStyles();
45
+ if (R.isNil(sideProps) || !R.is(Function, sideToggle)) {
46
+ return null;
47
+ }
48
+ return _react2.default.createElement(
49
+ _IconButton2.default,
50
+ {
51
+ size: 'small',
52
+ className: classes.icon,
53
+ onClick: function onClick() {
54
+ return sideToggle(sideProps);
55
+ },
56
+ 'data-testid': 'ref-md-info'
57
+ },
58
+ _react2.default.createElement(_Info2.default, { fontSize: 'small' })
59
+ );
60
+ };
61
+
62
+ SideIcon.propTypes = process.env.NODE_ENV !== "production" ? {
63
+ sideProps: _propTypes2.default.object,
64
+ sideToggle: _propTypes2.default.func
65
+ } : {};
66
+
67
+ exports.default = SideIcon;
68
+ module.exports = exports['default'];
@@ -38,6 +38,10 @@ var _flags = require('./flags');
38
38
 
39
39
  var _flags2 = _interopRequireDefault(_flags);
40
40
 
41
+ var _sideIcon = require('./sideIcon');
42
+
43
+ var _sideIcon2 = _interopRequireDefault(_sideIcon);
44
+
41
45
  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; } }
42
46
 
43
47
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -51,7 +55,9 @@ var useStyles = (0, _styles.makeStyles)(function (theme) {
51
55
  borderRight: '1px solid ' + theme.palette.grey[500],
52
56
  padding: theme.spacing(0.5) + 'px ' + theme.spacing(1) + 'px',
53
57
  color: theme.palette.grey['A700'],
54
- verticalAlign: 'middle'
58
+ verticalAlign: 'middle',
59
+ position: 'sticky',
60
+ zIndex: 1
55
61
  },
56
62
  fillerCell: {
57
63
  backgroundColor: theme.palette.grey[200],
@@ -81,9 +87,12 @@ var SubHeader = _react2.default.forwardRef(function (_ref, refs) {
81
87
  var headerData = _ref.headerData,
82
88
  xLayoutData = _ref.xLayoutData,
83
89
  activeCellIds = _ref.activeCellIds,
84
- subHeadCellsWidth = _ref.subHeadCellsWidth;
90
+ subHeadCellsWidth = _ref.subHeadCellsWidth,
91
+ sideToggle = _ref.sideToggle;
85
92
 
86
93
  var classes = useStyles();
94
+ var theme = (0, _styles.useTheme)();
95
+ var isRtl = (0, _utils.getIsRtl)(theme);
87
96
  return _react2.default.createElement(
88
97
  _TableRow2.default,
89
98
  null,
@@ -95,7 +104,7 @@ var SubHeader = _react2.default.forwardRef(function (_ref, refs) {
95
104
  className: classes.columnsTitle,
96
105
  key: index,
97
106
  id: 'subHeader_' + index,
98
- style: { position: 'sticky', left: subHeadCellsWidth[index], zIndex: 1 },
107
+ style: isRtl ? { right: subHeadCellsWidth[index] } : { left: subHeadCellsWidth[index] },
99
108
  ref: function ref(element) {
100
109
  return refs.current[index] = element;
101
110
  }
@@ -114,7 +123,7 @@ var SubHeader = _react2.default.forwardRef(function (_ref, refs) {
114
123
  }, xLayoutData),
115
124
  _react2.default.createElement(_TableCell2.default, {
116
125
  className: classes.fillerCell,
117
- style: { position: 'sticky', left: R.last(subHeadCellsWidth) }
126
+ style: isRtl ? { position: 'sticky', right: R.last(subHeadCellsWidth) } : { position: 'sticky', left: R.last(subHeadCellsWidth) }
118
127
  }),
119
128
  mapIndexed(function (item, index) {
120
129
  var _cx;
@@ -125,6 +134,7 @@ var SubHeader = _react2.default.forwardRef(function (_ref, refs) {
125
134
  key: index,
126
135
  className: (0, _classnames2.default)(classes.fillerCell, (_cx = {}, _cx[classes.highlight] = R.prop(index)(activeCellIds), _cx))
127
136
  },
137
+ _react2.default.createElement(_sideIcon2.default, { sideProps: R.prop('sideProps', item), sideToggle: sideToggle }),
128
138
  _react2.default.createElement(_flags2.default, { flags: R.prop('flags', item) })
129
139
  );
130
140
  }, headerData)
@@ -135,6 +145,7 @@ SubHeader.propTypes = process.env.NODE_ENV !== "production" ? {
135
145
  activeCellIds: _propTypes2.default.object,
136
146
  headerData: _propTypes2.default.array,
137
147
  xLayoutData: _propTypes2.default.array,
148
+ sideToggle: _propTypes2.default.func,
138
149
  subHeadCellsWidth: _propTypes2.default.arrayOf(_propTypes2.default.number)
139
150
  } : {};
140
151
 
package/lib/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  exports.__esModule = true;
4
- exports.T4_BREAKPOINTS = exports.innerPalette = exports.sisccTheme = exports.AuthDialog = exports.VerticalButton = exports.Tooltip = exports.ToggleButton = exports.Tag = exports.TablePreview = exports.TableLayout = exports.Cell = exports.TableHtml5 = exports.TableHeader = exports.TableFooter = exports.Table = exports.Spotlight = exports.SisccFooter = exports.Share = exports.Select = exports.ScopeList = exports.reduceChildren = exports.spotlightScopeListEngine = exports.PeriodPicker = exports.Pagination = exports.NoData = exports.Logo = exports.Loading = exports.LabelDivider = exports.InputNumber = exports.Input = exports.ExpansionPanel = exports.DataFooter = exports.DataHeader = exports.Dataflow = exports.DataEdit = exports.CollapseButtons = exports.Chips = exports.ChartsConfig = exports.Button = exports.Breadcrumbs = exports.ApiQueries = exports.Alert = undefined;
4
+ exports.T4_BREAKPOINTS = exports.innerPalette = exports.sisccTheme = exports.AuthDialog = exports.VerticalButton = exports.Tooltip = exports.ToggleButton = exports.Tag = exports.TablePreview = exports.TableLayout = exports.Cell = exports.TableHtml5 = exports.TableHeader = exports.TableFooter = exports.Table = exports.Spotlight = exports.SisccFooter = exports.Share = exports.Select = exports.ScopeList = exports.reduceChildren = exports.spotlightScopeListEngine = exports.PeriodPicker = exports.Pagination = exports.NoData = exports.Logo = exports.Loading = exports.LabelDivider = exports.InputNumber = exports.Input = exports.ExpansionPanel = exports.DataFooter = exports.DataHeader = exports.Dataflow = exports.DataEdit = exports.CollapsibleTree = exports.CollapseButtons = exports.Chips = exports.ChartsConfig = exports.Button = exports.Breadcrumbs = exports.ApiQueries = exports.Alert = undefined;
5
5
 
6
6
  var _Alert = require('./Alert');
7
7
 
@@ -66,6 +66,15 @@ Object.defineProperty(exports, 'CollapseButtons', {
66
66
  }
67
67
  });
68
68
 
69
+ var _CollapsibleTree = require('./CollapsibleTree');
70
+
71
+ Object.defineProperty(exports, 'CollapsibleTree', {
72
+ enumerable: true,
73
+ get: function get() {
74
+ return _interopRequireDefault(_CollapsibleTree).default;
75
+ }
76
+ });
77
+
69
78
  var _DataEdit = require('./DataEdit');
70
79
 
71
80
  Object.defineProperty(exports, 'DataEdit', {
package/lib/theme.js CHANGED
@@ -218,6 +218,19 @@ var sisccTheme = exports.sisccTheme = function sisccTheme(_ref) {
218
218
  fontFamily: "'Roboto Slab', serif"
219
219
  }
220
220
  },
221
+ collapsibleTree: {
222
+ title: {
223
+ fontSize: 17,
224
+ fontFamily: "'PT Sans Narrow', 'Helvetica Neue', Helvetica, Arial, sans-serif",
225
+ color: outerPalette.textLight || innerPalette.textLight
226
+ },
227
+ buttonSublevel: {
228
+ color: outerPalette.textLight || innerPalette.textLight,
229
+ fontSize: 14,
230
+ fontWeight: 700,
231
+ fontFamily: "'PT Sans Narrow', 'Helvetica Neue', Helvetica, Arial, sans-serif"
232
+ }
233
+ },
221
234
  dataEdit: {
222
235
  root: {
223
236
  fontWeight: 400,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sis-cc/dotstatsuite-visions",
3
- "version": "6.6.1",
3
+ "version": "6.7.0",
4
4
  "description": "Library of visual components",
5
5
  "author": "OECD",
6
6
  "homepage": "https://visions-qa.siscc.org/#o",
@@ -39,7 +39,7 @@
39
39
  "glamorous": "^5.0.0",
40
40
  "numeral": "^2.0.6",
41
41
  "prop-types": "^15.7.2",
42
- "ramda": "^0.26.1",
42
+ "ramda": "^0.27.0",
43
43
  "react": "^16.13.0",
44
44
  "react-beautiful-dnd": "^13.0.0",
45
45
  "react-dom": "^16.8.6",