@sis-cc/dotstatsuite-visions 8.0.8 → 8.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,6 +9,7 @@ import Header from './header';
9
9
  import SubHeader from './subHeader';
10
10
  import Section from './section';
11
11
  import Cell from './cell';
12
+ import { defaultLabelAccessor } from './utils';
12
13
 
13
14
  /*
14
15
  * Accessibility.
@@ -74,7 +75,8 @@ var TableHtml5 = function TableHtml5(_ref) {
74
75
  testId = _ref$testId === undefined ? 'vis-table' : _ref$testId,
75
76
  HTMLRenderer = _ref.HTMLRenderer,
76
77
  _ref$labelAccessor = _ref.labelAccessor,
77
- labelAccessor = _ref$labelAccessor === undefined ? R.prop('name') : _ref$labelAccessor;
78
+ labelAccessor = _ref$labelAccessor === undefined ? defaultLabelAccessor : _ref$labelAccessor,
79
+ isNoWrap = _ref.isNoWrap;
78
80
 
79
81
  var classes = useStyles();
80
82
 
@@ -169,7 +171,8 @@ var TableHtml5 = function TableHtml5(_ref) {
169
171
  SideIcon: SideIcon,
170
172
  subHeadCellsWidth: subHeadCellsWidth,
171
173
  HTMLRenderer: HTMLRenderer,
172
- labelAccessor: labelAccessor
174
+ labelAccessor: labelAccessor,
175
+ isNoWrap: isNoWrap
173
176
  });
174
177
  }, sectionsData)
175
178
  );
@@ -185,7 +188,8 @@ TableHtml5.propTypes = process.env.NODE_ENV !== "production" ? {
185
188
  SideIcon: PropTypes.func,
186
189
  testId: PropTypes.string,
187
190
  HTMLRenderer: PropTypes.func,
188
- labelAccessor: PropTypes.func
191
+ labelAccessor: PropTypes.func,
192
+ isNoWrap: PropTypes.func
189
193
  } : {};
190
194
 
191
195
  export default TableHtml5;
@@ -94,7 +94,12 @@ var Header = function Header(_ref) {
94
94
  Typography,
95
95
  { variant: 'body1', className: classes.cellLabelHeader },
96
96
  R.pipe(R.path([0, 'data', index, 'dimension']), labelAccessor)(headerData),
97
- React.createElement(Flags, { HTMLRenderer: HTMLRenderer, flags: flags, isHeader: true, labelAccessor: labelAccessor })
97
+ React.createElement(Flags, {
98
+ HTMLRenderer: HTMLRenderer,
99
+ flags: flags,
100
+ isHeader: true,
101
+ labelAccessor: labelAccessor
102
+ })
98
103
  )
99
104
  )
100
105
  ),
@@ -138,7 +143,12 @@ var Header = function Header(_ref) {
138
143
  variant: 'body1'
139
144
  },
140
145
  R.prop('label', value),
141
- React.createElement(Flags, { HTMLRenderer: HTMLRenderer, flags: flags, isHeader: true, labelAccessor: labelAccessor })
146
+ React.createElement(Flags, {
147
+ HTMLRenderer: HTMLRenderer,
148
+ flags: flags,
149
+ isHeader: true,
150
+ labelAccessor: labelAccessor
151
+ })
142
152
  )
143
153
  )
144
154
  );
@@ -9,7 +9,6 @@ import { makeStyles, useTheme } from '@material-ui/core/styles';
9
9
  import TableBody from '@material-ui/core/TableBody';
10
10
  import TableCell from '@material-ui/core/TableCell';
11
11
  import TableRow from '@material-ui/core/TableRow';
12
- import { isTimePeriodDimension } from '@sis-cc/dotstatsuite-sdmxjs';
13
12
  import SectionHeader from './sectionHeader';
14
13
  import Cell from './cell';
15
14
  import { getLight, getIsRtl } from '../utils';
@@ -79,7 +78,8 @@ var Section = function Section(_ref) {
79
78
  SideIcon = _ref.SideIcon,
80
79
  subHeadCellsWidth = _ref.subHeadCellsWidth,
81
80
  HTMLRenderer = _ref.HTMLRenderer,
82
- labelAccessor = _ref.labelAccessor;
81
+ labelAccessor = _ref.labelAccessor,
82
+ isNoWrap = _ref.isNoWrap;
83
83
 
84
84
  var classes = useStyles();
85
85
  var currentSection = R.path([0, 'key'], section);
@@ -129,7 +129,7 @@ var Section = function Section(_ref) {
129
129
  TableCell,
130
130
  {
131
131
  key: id,
132
- className: cx(classes.rowTitle, classes.stickyHeader, (_cx = {}, _cx[classes.topCell] = R.not(R.isEmpty(flags)), _cx[classes.highlight] = R.prop(rowId)(activeCellIds), _cx[classes.timePeriodCells] = isTimePeriodDimension(R.prop('dimension', cell)), _cx)),
132
+ className: cx(classes.rowTitle, classes.stickyHeader, (_cx = {}, _cx[classes.topCell] = R.not(R.isEmpty(flags)), _cx[classes.highlight] = R.prop(rowId)(activeCellIds), _cx[classes.timePeriodCells] = isNoWrap(R.prop('dimension', cell)), _cx)),
133
133
  id: id,
134
134
  headers: 'subHeader_' + index + ' ' + currentSection,
135
135
  component: 'th',
@@ -147,7 +147,11 @@ var Section = function Section(_ref) {
147
147
  Typography,
148
148
  { variant: 'body1', tabIndex: 0 },
149
149
  R.prop('label', value),
150
- React.createElement(Flags, { HTMLRenderer: HTMLRenderer, labelAccessor: labelAccessor, flags: flags })
150
+ React.createElement(Flags, {
151
+ HTMLRenderer: HTMLRenderer,
152
+ labelAccessor: labelAccessor,
153
+ flags: flags
154
+ })
151
155
  )
152
156
  )
153
157
  );
@@ -162,7 +166,11 @@ var Section = function Section(_ref) {
162
166
  'div',
163
167
  { className: classes.flagContainer },
164
168
  !R.isNil(SideIcon) && React.createElement(SideIcon, { sideProps: R.prop('sideProps', sectionbody) }),
165
- React.createElement(Flags, { HTMLRenderer: HTMLRenderer, labelAccessor: labelAccessor, flags: R.prop('flags', sectionbody) })
169
+ React.createElement(Flags, {
170
+ HTMLRenderer: HTMLRenderer,
171
+ labelAccessor: labelAccessor,
172
+ flags: R.prop('flags', sectionbody)
173
+ })
166
174
  )
167
175
  ),
168
176
  mapIndexed(function (item, columnIndex) {
@@ -210,7 +218,8 @@ Section.propTypes = process.env.NODE_ENV !== "production" ? {
210
218
  SideIcon: PropTypes.func,
211
219
  subHeadCellsWidth: PropTypes.arrayOf(PropTypes.number),
212
220
  HTMLRenderer: PropTypes.func,
213
- labelAccessor: PropTypes.func
221
+ labelAccessor: PropTypes.func,
222
+ isNoWrap: PropTypes.func
214
223
  } : {};
215
224
 
216
225
  export default Section;
@@ -108,7 +108,11 @@ var SubHeader = React.forwardRef(function (_ref, refs) {
108
108
  className: cx(classes.fillerCell, (_cx = {}, _cx[classes.highlight] = R.prop(index)(activeCellIds), _cx))
109
109
  },
110
110
  !R.isNil(SideIcon) && React.createElement(SideIcon, { sideProps: R.prop('sideProps', item) }),
111
- React.createElement(Flags, { flags: R.prop('flags', item), labelAccessor: labelAccessor, HTMLRenderer: HTMLRenderer })
111
+ React.createElement(Flags, {
112
+ flags: R.prop('flags', item),
113
+ labelAccessor: labelAccessor,
114
+ HTMLRenderer: HTMLRenderer
115
+ })
112
116
  );
113
117
  }, headerData)
114
118
  );
@@ -1,22 +1,23 @@
1
1
  import * as R from 'ramda';
2
2
 
3
- var getLabel = function getLabel(labelAccessor) {
4
- return function (value) {
5
- return R.pipe(R.propOr([], 'missingParents'), R.map(labelAccessor), R.append(labelAccessor(value)), R.join(' > '))(value);
6
- };
7
- };
8
-
9
3
  export var getValue = function getValue(labelAccessor) {
10
4
  return function (item) {
11
5
  return R.has('values', item) ? R.reduce(function (acc, val) {
12
6
  return {
7
+ label: acc.label,
13
8
  id: R.isEmpty(acc.id) ? val.id : acc.id + ', ' + val.id,
14
- label: R.isEmpty(acc.label) ? getLabel(labelAccessor)(val) : acc.label + ', ' + getLabel(labelAccessor)(val),
15
9
  flags: R.concat(acc.flags, val.flags || []),
16
10
  parents: R.concat(acc.parents, val.parents || [])
17
11
  };
18
- }, { id: '', label: '', flags: [], parents: [] }, R.prop('values', item)) : R.pipe(R.prop('value'), function (val) {
19
- return R.assoc('label', getLabel(labelAccessor)(val), val);
12
+ }, { id: '', flags: [], parents: [], label: labelAccessor(item.values) }, item.values) : R.pipe(R.prop('value'), function (val) {
13
+ return R.assoc('label', labelAccessor(val), val);
20
14
  })(item);
21
15
  };
16
+ };
17
+
18
+ export var defaultLabelAccessor = function defaultLabelAccessor(item) {
19
+ if (R.is(Object, item)) {
20
+ return R.prop('name', item);
21
+ }
22
+ return R.pipe(R.pluck('name'), R.join(', '))(item);
22
23
  };
@@ -39,6 +39,8 @@ var _cell = require('./cell');
39
39
 
40
40
  var _cell2 = _interopRequireDefault(_cell);
41
41
 
42
+ var _utils = require('./utils');
43
+
42
44
  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; } }
43
45
 
44
46
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -107,7 +109,8 @@ var TableHtml5 = function TableHtml5(_ref) {
107
109
  testId = _ref$testId === undefined ? 'vis-table' : _ref$testId,
108
110
  HTMLRenderer = _ref.HTMLRenderer,
109
111
  _ref$labelAccessor = _ref.labelAccessor,
110
- labelAccessor = _ref$labelAccessor === undefined ? R.prop('name') : _ref$labelAccessor;
112
+ labelAccessor = _ref$labelAccessor === undefined ? _utils.defaultLabelAccessor : _ref$labelAccessor,
113
+ isNoWrap = _ref.isNoWrap;
111
114
 
112
115
  var classes = useStyles();
113
116
 
@@ -202,7 +205,8 @@ var TableHtml5 = function TableHtml5(_ref) {
202
205
  SideIcon: SideIcon,
203
206
  subHeadCellsWidth: subHeadCellsWidth,
204
207
  HTMLRenderer: HTMLRenderer,
205
- labelAccessor: labelAccessor
208
+ labelAccessor: labelAccessor,
209
+ isNoWrap: isNoWrap
206
210
  });
207
211
  }, sectionsData)
208
212
  );
@@ -218,7 +222,8 @@ TableHtml5.propTypes = process.env.NODE_ENV !== "production" ? {
218
222
  SideIcon: _propTypes2.default.func,
219
223
  testId: _propTypes2.default.string,
220
224
  HTMLRenderer: _propTypes2.default.func,
221
- labelAccessor: _propTypes2.default.func
225
+ labelAccessor: _propTypes2.default.func,
226
+ isNoWrap: _propTypes2.default.func
222
227
  } : {};
223
228
 
224
229
  exports.default = TableHtml5;
@@ -128,7 +128,12 @@ var Header = function Header(_ref) {
128
128
  _Typography2.default,
129
129
  { variant: 'body1', className: classes.cellLabelHeader },
130
130
  R.pipe(R.path([0, 'data', index, 'dimension']), labelAccessor)(headerData),
131
- _react2.default.createElement(_flags2.default, { HTMLRenderer: HTMLRenderer, flags: flags, isHeader: true, labelAccessor: labelAccessor })
131
+ _react2.default.createElement(_flags2.default, {
132
+ HTMLRenderer: HTMLRenderer,
133
+ flags: flags,
134
+ isHeader: true,
135
+ labelAccessor: labelAccessor
136
+ })
132
137
  )
133
138
  )
134
139
  ),
@@ -172,7 +177,12 @@ var Header = function Header(_ref) {
172
177
  variant: 'body1'
173
178
  },
174
179
  R.prop('label', value),
175
- _react2.default.createElement(_flags2.default, { HTMLRenderer: HTMLRenderer, flags: flags, isHeader: true, labelAccessor: labelAccessor })
180
+ _react2.default.createElement(_flags2.default, {
181
+ HTMLRenderer: HTMLRenderer,
182
+ flags: flags,
183
+ isHeader: true,
184
+ labelAccessor: labelAccessor
185
+ })
176
186
  )
177
187
  )
178
188
  );
@@ -38,8 +38,6 @@ var _TableRow = require('@material-ui/core/TableRow');
38
38
 
39
39
  var _TableRow2 = _interopRequireDefault(_TableRow);
40
40
 
41
- var _dotstatsuiteSdmxjs = require('@sis-cc/dotstatsuite-sdmxjs');
42
-
43
41
  var _sectionHeader = require('./sectionHeader');
44
42
 
45
43
  var _sectionHeader2 = _interopRequireDefault(_sectionHeader);
@@ -123,7 +121,8 @@ var Section = function Section(_ref) {
123
121
  SideIcon = _ref.SideIcon,
124
122
  subHeadCellsWidth = _ref.subHeadCellsWidth,
125
123
  HTMLRenderer = _ref.HTMLRenderer,
126
- labelAccessor = _ref.labelAccessor;
124
+ labelAccessor = _ref.labelAccessor,
125
+ isNoWrap = _ref.isNoWrap;
127
126
 
128
127
  var classes = useStyles();
129
128
  var currentSection = R.path([0, 'key'], section);
@@ -173,7 +172,7 @@ var Section = function Section(_ref) {
173
172
  _TableCell2.default,
174
173
  {
175
174
  key: id,
176
- 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[classes.timePeriodCells] = (0, _dotstatsuiteSdmxjs.isTimePeriodDimension)(R.prop('dimension', cell)), _cx)),
175
+ 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[classes.timePeriodCells] = isNoWrap(R.prop('dimension', cell)), _cx)),
177
176
  id: id,
178
177
  headers: 'subHeader_' + index + ' ' + currentSection,
179
178
  component: 'th',
@@ -191,7 +190,11 @@ var Section = function Section(_ref) {
191
190
  _Typography2.default,
192
191
  { variant: 'body1', tabIndex: 0 },
193
192
  R.prop('label', value),
194
- _react2.default.createElement(_flags2.default, { HTMLRenderer: HTMLRenderer, labelAccessor: labelAccessor, flags: flags })
193
+ _react2.default.createElement(_flags2.default, {
194
+ HTMLRenderer: HTMLRenderer,
195
+ labelAccessor: labelAccessor,
196
+ flags: flags
197
+ })
195
198
  )
196
199
  )
197
200
  );
@@ -206,7 +209,11 @@ var Section = function Section(_ref) {
206
209
  'div',
207
210
  { className: classes.flagContainer },
208
211
  !R.isNil(SideIcon) && _react2.default.createElement(SideIcon, { sideProps: R.prop('sideProps', sectionbody) }),
209
- _react2.default.createElement(_flags2.default, { HTMLRenderer: HTMLRenderer, labelAccessor: labelAccessor, flags: R.prop('flags', sectionbody) })
212
+ _react2.default.createElement(_flags2.default, {
213
+ HTMLRenderer: HTMLRenderer,
214
+ labelAccessor: labelAccessor,
215
+ flags: R.prop('flags', sectionbody)
216
+ })
210
217
  )
211
218
  ),
212
219
  mapIndexed(function (item, columnIndex) {
@@ -254,7 +261,8 @@ Section.propTypes = process.env.NODE_ENV !== "production" ? {
254
261
  SideIcon: _propTypes2.default.func,
255
262
  subHeadCellsWidth: _propTypes2.default.arrayOf(_propTypes2.default.number),
256
263
  HTMLRenderer: _propTypes2.default.func,
257
- labelAccessor: _propTypes2.default.func
264
+ labelAccessor: _propTypes2.default.func,
265
+ isNoWrap: _propTypes2.default.func
258
266
  } : {};
259
267
 
260
268
  exports.default = Section;
@@ -141,7 +141,11 @@ var SubHeader = _react2.default.forwardRef(function (_ref, refs) {
141
141
  className: (0, _classnames2.default)(classes.fillerCell, (_cx = {}, _cx[classes.highlight] = R.prop(index)(activeCellIds), _cx))
142
142
  },
143
143
  !R.isNil(SideIcon) && _react2.default.createElement(SideIcon, { sideProps: R.prop('sideProps', item) }),
144
- _react2.default.createElement(_flags2.default, { flags: R.prop('flags', item), labelAccessor: labelAccessor, HTMLRenderer: HTMLRenderer })
144
+ _react2.default.createElement(_flags2.default, {
145
+ flags: R.prop('flags', item),
146
+ labelAccessor: labelAccessor,
147
+ HTMLRenderer: HTMLRenderer
148
+ })
145
149
  );
146
150
  }, headerData)
147
151
  );
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  exports.__esModule = true;
4
- exports.getValue = undefined;
4
+ exports.defaultLabelAccessor = exports.getValue = undefined;
5
5
 
6
6
  var _ramda = require('ramda');
7
7
 
@@ -9,23 +9,24 @@ var R = _interopRequireWildcard(_ramda);
9
9
 
10
10
  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; } }
11
11
 
12
- var getLabel = function getLabel(labelAccessor) {
13
- return function (value) {
14
- return R.pipe(R.propOr([], 'missingParents'), R.map(labelAccessor), R.append(labelAccessor(value)), R.join(' > '))(value);
15
- };
16
- };
17
-
18
12
  var getValue = exports.getValue = function getValue(labelAccessor) {
19
13
  return function (item) {
20
14
  return R.has('values', item) ? R.reduce(function (acc, val) {
21
15
  return {
16
+ label: acc.label,
22
17
  id: R.isEmpty(acc.id) ? val.id : acc.id + ', ' + val.id,
23
- label: R.isEmpty(acc.label) ? getLabel(labelAccessor)(val) : acc.label + ', ' + getLabel(labelAccessor)(val),
24
18
  flags: R.concat(acc.flags, val.flags || []),
25
19
  parents: R.concat(acc.parents, val.parents || [])
26
20
  };
27
- }, { id: '', label: '', flags: [], parents: [] }, R.prop('values', item)) : R.pipe(R.prop('value'), function (val) {
28
- return R.assoc('label', getLabel(labelAccessor)(val), val);
21
+ }, { id: '', flags: [], parents: [], label: labelAccessor(item.values) }, item.values) : R.pipe(R.prop('value'), function (val) {
22
+ return R.assoc('label', labelAccessor(val), val);
29
23
  })(item);
30
24
  };
25
+ };
26
+
27
+ var defaultLabelAccessor = exports.defaultLabelAccessor = function defaultLabelAccessor(item) {
28
+ if (R.is(Object, item)) {
29
+ return R.prop('name', item);
30
+ }
31
+ return R.pipe(R.pluck('name'), R.join(', '))(item);
31
32
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sis-cc/dotstatsuite-visions",
3
- "version": "8.0.8",
3
+ "version": "8.1.0",
4
4
  "description": "Library of visual components",
5
5
  "author": "OECD",
6
6
  "homepage": "https://visions-qa.siscc.org/#o",
@@ -50,13 +50,11 @@
50
50
  "@material-ui/core": "^4.9.5",
51
51
  "@material-ui/icons": "^4.5.1",
52
52
  "@material-ui/styles": "^4.5.0",
53
- "@sis-cc/dotstatsuite-sdmxjs": "^8.x",
54
53
  "react": "16.x"
55
54
  },
56
55
  "devDependencies": {
57
56
  "@babel/eslint-parser": "^7.5.4",
58
57
  "@babel/plugin-syntax-dynamic-import": "^7.2.0",
59
- "@sis-cc/dotstatsuite-sdmxjs": "*",
60
58
  "@testing-library/jest-dom": "^5.1.1",
61
59
  "@testing-library/react": "^9.4.1",
62
60
  "babel-jest": "^24.8.0",