@sis-cc/dotstatsuite-visions 6.6.2 → 6.7.1

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.
@@ -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.2",
3
+ "version": "6.7.1",
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",