@sis-cc/dotstatsuite-visions 10.29.0 → 11.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.
@@ -90,6 +90,12 @@ var useStyles = exports.useStyles = (0, _styles.makeStyles)(function (theme) {
90
90
  flexDirection: 'row',
91
91
  alignItems: 'center',
92
92
  flexFlow: 'nowrap'
93
+ },
94
+ activationButton: {
95
+ backgroundColor: theme.palette.action.hover,
96
+ '&:hover': {
97
+ backgroundColor: theme.palette.action.selected
98
+ }
93
99
  }
94
100
  };
95
101
  });
@@ -102,7 +108,11 @@ var TableLayout = function TableLayout(_ref) {
102
108
  var _boxLabel;
103
109
 
104
110
  var _ref$layout = _ref.layout,
105
- layout = _ref$layout === undefined ? [] : _ref$layout,
111
+ layout = _ref$layout === undefined ? {} : _ref$layout,
112
+ _ref$items = _ref.items,
113
+ items = _ref$items === undefined ? [] : _ref$items,
114
+ _ref$optionalItem = _ref.optionalItem,
115
+ optionalItem = _ref$optionalItem === undefined ? {} : _ref$optionalItem,
106
116
  _ref$itemRenderer = _ref.itemRenderer,
107
117
  itemRenderer = _ref$itemRenderer === undefined ? R.prop('name') : _ref$itemRenderer,
108
118
  itemButtonProps = _ref.itemButtonProps,
@@ -112,40 +122,51 @@ var TableLayout = function TableLayout(_ref) {
112
122
  accessibility = _ref.accessibility;
113
123
 
114
124
  var classes = useStyles();
115
- var hiddenElement = R.map(R.filter(function (_ref2) {
116
- var isHidden = _ref2.isHidden;
117
- return isHidden;
118
- }))(layout);
119
125
 
120
- var _useState = (0, _react.useState)([]),
126
+ var _useState = (0, _react.useState)(layout),
121
127
  currentLayout = _useState[0],
122
128
  setCurrentLayout = _useState[1];
123
129
 
124
130
  var boxLabel = (_boxLabel = {}, _boxLabel[_constants.BOX.header] = labels.column || _constants.BOX.header, _boxLabel[_constants.BOX.sections] = labels.section || _constants.BOX.sections, _boxLabel[_constants.BOX.rows] = labels.row || _constants.BOX.rows, _boxLabel);
125
-
126
131
  (0, _react.useEffect)(function () {
127
- return setCurrentLayout((0, _lib.rejectHiddenElement)(layout));
132
+ setCurrentLayout(layout);
128
133
  }, [layout]);
134
+ var indexedItems = (0, _react.useMemo)(function () {
135
+ var indexed = R.indexBy(R.prop('id'), items);
136
+ if (!R.isEmpty(optionalItem) && !R.isNil(optionalItem)) {
137
+ return R.assoc(optionalItem.id, optionalItem, indexed);
138
+ }
139
+ return indexed;
140
+ }, [items, optionalItem]);
129
141
 
130
142
  var onChangeLayout = function onChangeLayout(props) {
131
143
  return setCurrentLayout((0, _lib.changeLayout)(_extends({}, props)));
132
144
  };
133
145
 
146
+ var activateOptionalItem = function activateOptionalItem() {
147
+ var nextLayout = R.over(R.lensProp('header'), R.append(optionalItem.id), currentLayout);
148
+ setCurrentLayout(nextLayout);
149
+ };
150
+
151
+ var deactivateOptionalItem = function deactivateOptionalItem() {
152
+ setCurrentLayout(R.map(R.reject(R.equals(optionalItem.id)), currentLayout));
153
+ };
154
+
134
155
  var onCommit = function onCommit() {
135
156
  if (R.is(Function)(commit)) {
136
- commit((0, _lib.addHiddenElement)(currentLayout)(hiddenElement));
157
+ commit(currentLayout);
137
158
  }
138
159
  };
139
160
 
140
161
  var onCancel = function onCancel() {
141
162
  if (R.is(Function)(setCurrentLayout)) {
142
- setCurrentLayout((0, _lib.rejectHiddenElement)(layout));
163
+ setCurrentLayout(layout);
143
164
  }
144
165
  };
145
166
 
146
- var onDragStart = function onDragStart(_ref3, provided) {
147
- var draggableId = _ref3.draggableId,
148
- source = _ref3.source;
167
+ var onDragStart = function onDragStart(_ref2, provided) {
168
+ var draggableId = _ref2.draggableId,
169
+ source = _ref2.source;
149
170
 
150
171
  if (R.is(Function)(labels.wcagDragStart)) {
151
172
  // start.source = droppableId & index
@@ -159,9 +180,9 @@ var TableLayout = function TableLayout(_ref) {
159
180
  }
160
181
  };
161
182
 
162
- var onDragUpdate = function onDragUpdate(_ref4, provided) {
163
- var destination = _ref4.destination,
164
- source = _ref4.source;
183
+ var onDragUpdate = function onDragUpdate(_ref3, provided) {
184
+ var destination = _ref3.destination,
185
+ source = _ref3.source;
165
186
 
166
187
  if (R.isNil(destination)) {
167
188
  return;
@@ -183,10 +204,10 @@ var TableLayout = function TableLayout(_ref) {
183
204
  };
184
205
 
185
206
  var onDragEnd = function onDragEnd(layout) {
186
- return function (_ref5, provided) {
187
- var reason = _ref5.reason,
188
- destination = _ref5.destination,
189
- source = _ref5.source;
207
+ return function (_ref4, provided) {
208
+ var reason = _ref4.reason,
209
+ destination = _ref4.destination,
210
+ source = _ref4.source;
190
211
 
191
212
  if (R.is(String)(labels.wcagDragCancel)) {
192
213
  if (R.equals(reason, 'CANCEL')) {
@@ -220,10 +241,16 @@ var TableLayout = function TableLayout(_ref) {
220
241
  };
221
242
  };
222
243
 
244
+ var getItems = function getItems(level) {
245
+ return R.pipe(R.prop(level), function (ids) {
246
+ return R.props(ids, indexedItems);
247
+ }, R.filter(R.identity))(currentLayout);
248
+ };
249
+
223
250
  var header = _react2.default.createElement(_Box2.default, {
224
251
  title: labels.column,
225
252
  Icon: _ViewColumnOutlined2.default,
226
- items: R.prop(_constants.BOX.header)(currentLayout),
253
+ items: getItems('header'),
227
254
  labels: labels,
228
255
  dropZoneLabel: _constants.BOX.header,
229
256
  itemRenderer: itemRenderer,
@@ -238,7 +265,7 @@ var TableLayout = function TableLayout(_ref) {
238
265
  _react2.default.createElement(_Box2.default, {
239
266
  title: labels.section,
240
267
  Icon: _Reorder2.default,
241
- items: R.prop(_constants.BOX.sections)(currentLayout),
268
+ items: getItems('sections'),
242
269
  labels: labels,
243
270
  dropZoneLabel: _constants.BOX.sections,
244
271
  itemRenderer: itemRenderer,
@@ -249,7 +276,7 @@ var TableLayout = function TableLayout(_ref) {
249
276
  _react2.default.createElement(_Box2.default, {
250
277
  title: labels.row,
251
278
  Icon: _ViewListOutlined2.default,
252
- items: R.prop(_constants.BOX.rows)(currentLayout),
279
+ items: getItems('rows'),
253
280
  labels: labels,
254
281
  dropZoneLabel: _constants.BOX.rows,
255
282
  itemRenderer: itemRenderer,
@@ -259,6 +286,8 @@ var TableLayout = function TableLayout(_ref) {
259
286
  })
260
287
  );
261
288
 
289
+ var isOptionalActivated = (0, _lib.getIsOptionalActivated)(currentLayout, R.prop('id', optionalItem));
290
+
262
291
  return _react2.default.createElement(
263
292
  _Grid2.default,
264
293
  { 'data-testid': 'table-layout-test-id', container: true },
@@ -323,63 +352,101 @@ var TableLayout = function TableLayout(_ref) {
323
352
  labels.table
324
353
  )
325
354
  ),
326
- _react2.default.createElement(_TablePreview2.default, _extends({}, currentLayout, { itemRenderer: itemRenderer }))
355
+ _react2.default.createElement(_TablePreview2.default, {
356
+ header: R.props(R.prop('header', currentLayout), indexedItems),
357
+ sections: R.props(R.prop('sections', currentLayout), indexedItems),
358
+ rows: R.props(R.prop('rows', currentLayout), indexedItems),
359
+ itemRenderer: itemRenderer
360
+ })
327
361
  )
328
362
  )
329
363
  )
330
364
  ),
331
365
  _react2.default.createElement(
332
366
  _Grid2.default,
333
- { container: true, justifyContent: 'flex-end', className: classes.buttonContainer, spacing: 1 },
334
- R.map(function (button) {
335
- return _react2.default.createElement(
336
- _Grid2.default,
337
- { item: true, key: button.id, 'data-testid': button['data-testid'] },
367
+ {
368
+ container: true,
369
+ justifyContent: 'space-between',
370
+ className: classes.buttonContainer,
371
+ spacing: 1
372
+ },
373
+ _react2.default.createElement(
374
+ _Grid2.default,
375
+ {
376
+ item: true,
377
+ 'data-testid': isOptionalActivated ? 'table-layout-deactivate-optional' : 'table-layout-activate-optional'
378
+ },
379
+ !R.isNil(optionalItem) && !R.isEmpty(optionalItem) && _react2.default.createElement(
380
+ _.Button,
381
+ {
382
+ className: classes.activationButton,
383
+ 'aria-label': R.prop('activationLabel', optionalItem),
384
+ color: 'primary',
385
+ onClick: isOptionalActivated ? deactivateOptionalItem : activateOptionalItem,
386
+ startIcon: _react2.default.createElement(_Done2.default, null)
387
+ },
338
388
  _react2.default.createElement(
339
- _.Button,
340
- _extends({ 'aria-label': button.label, color: 'primary' }, button),
341
- _react2.default.createElement(
342
- _Typography2.default,
343
- { variant: 'body2' },
344
- button.label
345
- )
389
+ _Typography2.default,
390
+ { variant: 'body2' },
391
+ R.prop('activationLabel', optionalItem)
346
392
  )
347
- );
348
- })([{
349
- id: 2,
350
- label: labels.cancel,
351
- onClick: onCancel,
352
- startIcon: _react2.default.createElement(_Undo2.default, null),
353
- 'datatest-id': 'table-layout-cancel'
354
- }, {
355
- id: 1,
356
- label: labels.commit,
357
- onClick: onCommit,
358
- startIcon: _react2.default.createElement(_Done2.default, null),
359
- variant: 'contained',
360
- alternative: 'siscc',
361
- className: classes.applyButton,
362
- 'data-testid': 'table-layout-apply'
363
- }])
393
+ )
394
+ ),
395
+ _react2.default.createElement(
396
+ _Grid2.default,
397
+ { item: true },
398
+ _react2.default.createElement(
399
+ _Grid2.default,
400
+ { container: true, justifyContent: 'flex-end', display: 'flex', spacing: 1 },
401
+ R.map(function (button) {
402
+ return _react2.default.createElement(
403
+ _Grid2.default,
404
+ { item: true, key: button.id, 'data-testid': button['data-testid'] },
405
+ _react2.default.createElement(
406
+ _.Button,
407
+ _extends({ 'aria-label': button.label, color: 'primary' }, button),
408
+ _react2.default.createElement(
409
+ _Typography2.default,
410
+ { variant: 'body2' },
411
+ button.label
412
+ )
413
+ )
414
+ );
415
+ })([{
416
+ id: 2,
417
+ label: labels.cancel,
418
+ onClick: onCancel,
419
+ startIcon: _react2.default.createElement(_Undo2.default, null),
420
+ 'datatest-id': 'table-layout-cancel'
421
+ }, {
422
+ id: 1,
423
+ label: labels.commit,
424
+ onClick: onCommit,
425
+ startIcon: _react2.default.createElement(_Done2.default, null),
426
+ variant: 'contained',
427
+ alternative: 'siscc',
428
+ className: classes.applyButton,
429
+ 'data-testid': 'table-layout-apply'
430
+ }])
431
+ )
432
+ )
364
433
  )
365
434
  );
366
435
  };
367
436
 
368
- var patern = {
437
+ var patern = _propTypes2.default.shape({
369
438
  id: _propTypes2.default.string,
370
- label: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.element]),
371
- values: _propTypes2.default.arrayOf(_propTypes2.default.shape({
372
- id: _propTypes2.default.string,
373
- label: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.element])
374
- }))
375
- };
439
+ count: _propTypes2.default.number
440
+ });
376
441
 
377
442
  TableLayout.propTypes = process.env.NODE_ENV !== "production" ? {
378
443
  layout: _propTypes2.default.shape({
379
- header: _propTypes2.default.arrayOf(_propTypes2.default.shape(patern)),
380
- sections: _propTypes2.default.arrayOf(_propTypes2.default.shape(patern)),
381
- rows: _propTypes2.default.arrayOf(_propTypes2.default.shape(patern))
444
+ header: _propTypes2.default.arrayOf(_propTypes2.default.string),
445
+ sections: _propTypes2.default.arrayOf(_propTypes2.default.string),
446
+ rows: _propTypes2.default.arrayOf(_propTypes2.default.string)
382
447
  }),
448
+ items: _propTypes2.default.arrayOf(patern),
449
+ optionalItem: patern,
383
450
  itemRenderer: _propTypes2.default.func,
384
451
  commit: _propTypes2.default.func,
385
452
  noPreview: _propTypes2.default.bool,
@@ -404,10 +471,10 @@ TableLayout.propTypes = process.env.NODE_ENV !== "production" ? {
404
471
  accessibility: _propTypes2.default.bool
405
472
  } : {};
406
473
 
407
- exports.default = (0, _utils.withBlank)(function (_ref6) {
408
- var _ref6$layout = _ref6.layout,
409
- layout = _ref6$layout === undefined ? [] : _ref6$layout,
410
- isBlank = _ref6.isBlank;
474
+ exports.default = (0, _utils.withBlank)(function (_ref5) {
475
+ var _ref5$layout = _ref5.layout,
476
+ layout = _ref5$layout === undefined ? [] : _ref5$layout,
477
+ isBlank = _ref5.isBlank;
411
478
  return {
412
479
  isBlank: R.or(isBlank, R.pipe(R.values, R.all(R.isEmpty))(layout))
413
480
  };
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  exports.__esModule = true;
4
- exports.addHiddenElement = exports.rejectHiddenElement = exports.changeLayout = undefined;
4
+ exports.getIsOptionalActivated = exports.addHiddenElement = exports.rejectHiddenElement = exports.changeLayout = undefined;
5
5
 
6
6
  var _ramda = require('ramda');
7
7
 
@@ -32,4 +32,9 @@ var addHiddenElement = exports.addHiddenElement = function addHiddenElement(layo
32
32
  return R.mapObjIndexed(function (values, key) {
33
33
  return R.pipe(R.prop(key), R.concat(values))(layout);
34
34
  });
35
+ };
36
+
37
+ var getIsOptionalActivated = exports.getIsOptionalActivated = function getIsOptionalActivated(layout, optionalId) {
38
+ var founded = R.pipe(R.values, R.unnest, R.find(R.equals(optionalId)))(layout);
39
+ return !R.isNil(founded);
35
40
  };
@@ -30,6 +30,10 @@ var _TableCell = require('@material-ui/core/TableCell');
30
30
 
31
31
  var _TableCell2 = _interopRequireDefault(_TableCell);
32
32
 
33
+ var _Lens = require('@material-ui/icons/Lens');
34
+
35
+ var _Lens2 = _interopRequireDefault(_Lens);
36
+
33
37
  var _utils = require('../utils');
34
38
 
35
39
  var _styles = require('./styles');
@@ -43,23 +47,20 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
43
47
  var patern = {
44
48
  id: _propTypes2.default.string,
45
49
  label: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.element]),
46
- values: _propTypes2.default.arrayOf(_propTypes2.default.shape({
47
- id: _propTypes2.default.string,
48
- label: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.element])
49
- }))
50
+ count: _propTypes2.default.number
50
51
  };
51
52
 
52
53
  var Header = function Header(_ref) {
53
54
  var header = _ref.header,
54
- colSpan = _ref.colSpan;
55
+ colSpan = _ref.colSpan,
56
+ valuesSpan = _ref.valuesSpan;
55
57
 
56
58
  var classes = (0, _styles.useStyles)();
57
59
 
58
60
  return R.map(function (_ref2) {
59
61
  var id = _ref2.id,
60
62
  label = _ref2.label,
61
- _ref2$values = _ref2.values,
62
- values = _ref2$values === undefined ? [] : _ref2$values;
63
+ count = _ref2.count;
63
64
  return _react2.default.createElement(
64
65
  _TableRow2.default,
65
66
  { key: id, className: (0, _classnames2.default)(classes.header, classes.border) },
@@ -74,43 +75,41 @@ var Header = function Header(_ref) {
74
75
  },
75
76
  label
76
77
  ),
77
- R.map(function (_ref3) {
78
- var id = _ref3.id,
79
- label = _ref3.label;
78
+ R.times(function (index) {
80
79
  return _react2.default.createElement(
81
80
  _TableCell2.default,
82
81
  {
83
- key: id,
82
+ key: id + '-' + index,
84
83
  className: (0, _classnames2.default)(classes.border, classes.cell, classes.headerCell),
85
- title: label,
86
84
  scope: 'col'
87
85
  },
88
- label
86
+ index < count ? _lib.valueLabel : ''
89
87
  );
90
- })(values)
88
+ }, valuesSpan)
91
89
  );
92
90
  })(header);
93
91
  };
94
92
 
95
93
  Header.propTypes = process.env.NODE_ENV !== "production" ? {
96
94
  header: _propTypes2.default.array,
97
- colSpan: _propTypes2.default.number
95
+ colSpan: _propTypes2.default.number,
96
+ valuesSpan: _propTypes2.default.number
98
97
  } : {};
99
98
 
100
- var RowHeader = function RowHeader(_ref4) {
101
- var _ref4$id = _ref4.id,
102
- id = _ref4$id === undefined ? 'rowHeader' : _ref4$id,
103
- rows = _ref4.rows,
104
- emptyValues = _ref4.emptyValues;
99
+ var RowHeader = function RowHeader(_ref3) {
100
+ var _ref3$id = _ref3.id,
101
+ id = _ref3$id === undefined ? 'rowHeader' : _ref3$id,
102
+ rows = _ref3.rows,
103
+ emptyValues = _ref3.emptyValues;
105
104
 
106
105
  var classes = (0, _styles.useStyles)();
107
106
 
108
107
  return _react2.default.createElement(
109
108
  _TableRow2.default,
110
109
  null,
111
- R.map(function (_ref5) {
112
- var id = _ref5.id,
113
- label = _ref5.label;
110
+ R.map(function (_ref4) {
111
+ var id = _ref4.id,
112
+ label = _ref4.label;
114
113
  return _react2.default.createElement(
115
114
  _TableCell2.default,
116
115
  {
@@ -138,9 +137,9 @@ RowHeader.propTypes = process.env.NODE_ENV !== "production" ? {
138
137
  emptyValues: _propTypes2.default.array
139
138
  } : {};
140
139
 
141
- var Sections = function Sections(_ref6) {
142
- var sections = _ref6.sections,
143
- colSpan = _ref6.colSpan;
140
+ var Sections = function Sections(_ref5) {
141
+ var sections = _ref5.sections,
142
+ colSpan = _ref5.colSpan;
144
143
 
145
144
  var classes = (0, _styles.useStyles)();
146
145
 
@@ -150,11 +149,9 @@ var Sections = function Sections(_ref6) {
150
149
  _react2.default.createElement(
151
150
  _TableCell2.default,
152
151
  { tabIndex: 0, className: (0, _classnames2.default)(classes.border, classes.sections), colSpan: colSpan },
153
- R.map(function (_ref7) {
154
- var id = _ref7.id,
155
- label = _ref7.label,
156
- values = _ref7.values,
157
- Icon = _ref7.Icon;
152
+ R.addIndex(R.map)(function (_ref6, index) {
153
+ var id = _ref6.id,
154
+ label = _ref6.label;
158
155
  return _react2.default.createElement(
159
156
  _react.Fragment,
160
157
  { key: id },
@@ -166,8 +163,8 @@ var Sections = function Sections(_ref6) {
166
163
  _react2.default.createElement(
167
164
  'span',
168
165
  { className: classes.sectionsCell },
169
- values,
170
- R.isNil(Icon) ? null : _react2.default.createElement(Icon, { className: classes.icon })
166
+ _lib.valueLabel,
167
+ index === sections.length - 1 ? null : _react2.default.createElement(_Lens2.default, { className: classes.icon })
171
168
  )
172
169
  );
173
170
  })(sections)
@@ -180,41 +177,41 @@ Sections.propTypes = process.env.NODE_ENV !== "production" ? {
180
177
  colSpan: _propTypes2.default.number
181
178
  } : {};
182
179
 
183
- var RowValues = function RowValues(_ref8) {
184
- var _ref8$id = _ref8.id,
185
- id = _ref8$id === undefined ? 'rowValues' : _ref8$id,
186
- rows = _ref8.rows,
187
- emptyValues = _ref8.emptyValues;
180
+ var RowValues = function RowValues(_ref7) {
181
+ var _ref7$id = _ref7.id,
182
+ id = _ref7$id === undefined ? 'rowValues' : _ref7$id,
183
+ rows = _ref7.rows,
184
+ emptyValues = _ref7.emptyValues;
188
185
 
189
186
  var classes = (0, _styles.useStyles)();
190
- var rowValues = R.pipe(R.map(function (_ref9) {
191
- var _ref9$values = _ref9.values,
192
- values = _ref9$values === undefined ? [] : _ref9$values;
193
- return R.map(R.identity)(values);
194
- }), R.transpose)(rows);
195
- return R.addIndex(R.map)(function (values, rowIndex) {
187
+
188
+ var totalMaxCount = R.min(_lib.maxCount, R.reduce(R.max, 0, R.pluck('count', rows)));
189
+
190
+ return R.times(function (rowIndex) {
196
191
  return _react2.default.createElement(
197
192
  _TableRow2.default,
198
193
  { key: id + '-' + rowIndex },
199
- R.map(function (_ref10) {
200
- var id = _ref10.id,
201
- label = _ref10.label;
194
+ R.map(function (_ref8) {
195
+ var id = _ref8.id,
196
+ count = _ref8.count;
202
197
  return _react2.default.createElement(
203
198
  _TableCell2.default,
204
199
  {
205
- key: id,
206
- className: (0, _classnames2.default)(classes.rows, classes.border, classes.cell),
207
- title: label
200
+ key: id + '-' + rowIndex,
201
+ className: (0, _classnames2.default)(classes.rows, classes.border, classes.cell)
208
202
  },
209
- label
203
+ rowIndex < count ? _lib.valueLabel : ''
210
204
  );
211
- })(values),
205
+ })(rows),
212
206
  _react2.default.createElement(_TableCell2.default, { className: (0, _classnames2.default)(classes.separatorValues, classes.separatorSize, classes.border) }),
213
- R.addIndex(R.map)(function (value, valueIndex) {
214
- return _react2.default.createElement(_TableCell2.default, { key: rowIndex + '-' + valueIndex, className: (0, _classnames2.default)(classes.border, classes.cell) });
215
- })(emptyValues)
207
+ R.times(function (columnIndex) {
208
+ return _react2.default.createElement(_TableCell2.default, {
209
+ key: rowIndex + '-header-' + columnIndex,
210
+ className: (0, _classnames2.default)(classes.border, classes.cell)
211
+ });
212
+ })(emptyValues.length)
216
213
  );
217
- })(rowValues);
214
+ }, totalMaxCount);
218
215
  };
219
216
 
220
217
  RowValues.propTypes = process.env.NODE_ENV !== "production" ? {
@@ -223,26 +220,25 @@ RowValues.propTypes = process.env.NODE_ENV !== "production" ? {
223
220
  emptyValues: _propTypes2.default.array
224
221
  } : {};
225
222
 
226
- var MyTable = function MyTable(_ref11) {
227
- var _ref11$header = _ref11.header,
228
- header = _ref11$header === undefined ? [] : _ref11$header,
229
- _ref11$sections = _ref11.sections,
230
- sections = _ref11$sections === undefined ? [] : _ref11$sections,
231
- _ref11$rows = _ref11.rows,
232
- rows = _ref11$rows === undefined ? [] : _ref11$rows,
233
- _ref11$labelRenderer = _ref11.labelRenderer,
234
- labelRenderer = _ref11$labelRenderer === undefined ? R.prop('name') : _ref11$labelRenderer;
223
+ var MyTable = function MyTable(_ref9) {
224
+ var _ref9$header = _ref9.header,
225
+ header = _ref9$header === undefined ? [] : _ref9$header,
226
+ _ref9$sections = _ref9.sections,
227
+ sections = _ref9$sections === undefined ? [] : _ref9$sections,
228
+ _ref9$rows = _ref9.rows,
229
+ rows = _ref9$rows === undefined ? [] : _ref9$rows,
230
+ _ref9$labelRenderer = _ref9.labelRenderer,
231
+ labelRenderer = _ref9$labelRenderer === undefined ? R.prop('name') : _ref9$labelRenderer;
235
232
 
236
233
  var classes = (0, _styles.useStyles)();
237
234
  var nbShowedValuesHeader = (0, _lib.getMaxValuesLength)(header);
238
- var nbShowedValuesRows = (0, _lib.getMaxValuesLength)(rows);
239
235
 
240
236
  var emptyValues = (0, _lib.getEmptyValues)(nbShowedValuesHeader);
241
- var nbColumns = R.max(R.length(header) + nbShowedValuesHeader, R.length(rows) + nbShowedValuesRows) + 2;
237
+ var nbColumns = R.length(rows) + R.max(nbShowedValuesHeader, 1) + 1;
242
238
  var nbColumnRows = R.length(rows) + 1;
243
- var enhancedHeader = R.pipe((0, _lib.getLabel)(labelRenderer), (0, _lib.getEqualLengthValues)(nbShowedValuesHeader))(header);
244
- var enhancedRows = R.pipe((0, _lib.getLabel)(labelRenderer), (0, _lib.getEqualLengthValues)(nbShowedValuesRows))(rows);
245
- var enhancedSections = R.pipe((0, _lib.getLabel)(labelRenderer), (0, _lib.getEnhancedSections)(R.length(sections)))(sections);
239
+ var enhancedHeader = R.pipe((0, _lib.getLabel)(labelRenderer))(header);
240
+ var enhancedRows = R.pipe((0, _lib.getLabel)(labelRenderer))(rows);
241
+ var enhancedSections = R.pipe((0, _lib.getLabel)(labelRenderer))(sections);
246
242
 
247
243
  return _react2.default.createElement(
248
244
  _Table2.default,
@@ -254,7 +250,11 @@ var MyTable = function MyTable(_ref11) {
254
250
  _react2.default.createElement(
255
251
  'tbody',
256
252
  null,
257
- R.isEmpty(enhancedHeader) ? null : _react2.default.createElement(Header, { colSpan: nbColumnRows, header: enhancedHeader }),
253
+ R.isEmpty(enhancedHeader) ? null : _react2.default.createElement(Header, {
254
+ colSpan: nbColumnRows,
255
+ header: enhancedHeader,
256
+ valuesSpan: nbShowedValuesHeader
257
+ }),
258
258
  _react2.default.createElement(RowHeader, { rows: enhancedRows, emptyValues: emptyValues }),
259
259
  R.isEmpty(enhancedSections) ? null : _react2.default.createElement(Sections, { colSpan: nbColumns, sections: enhancedSections }),
260
260
  _react2.default.createElement(RowValues, { rows: enhancedRows, emptyValues: emptyValues })
@@ -269,10 +269,10 @@ MyTable.propTypes = process.env.NODE_ENV !== "production" ? {
269
269
  labelRenderer: _propTypes2.default.func
270
270
  } : {};
271
271
 
272
- exports.default = (0, _utils.withBlank)(function (_ref12) {
273
- var _ref12$rows = _ref12.rows,
274
- rows = _ref12$rows === undefined ? [] : _ref12$rows,
275
- isBlank = _ref12.isBlank;
272
+ exports.default = (0, _utils.withBlank)(function (_ref10) {
273
+ var _ref10$rows = _ref10.rows,
274
+ rows = _ref10$rows === undefined ? [] : _ref10$rows,
275
+ isBlank = _ref10.isBlank;
276
276
  return {
277
277
  isBlank: R.or(isBlank, R.isEmpty(rows))
278
278
  };
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  exports.__esModule = true;
4
- exports.getEnhancedSections = exports.getEqualLengthValues = exports.getLabel = exports.getEmptyValues = exports.getMaxValuesLength = undefined;
4
+ exports.getEnhancedSections = exports.getEqualLengthValues = exports.getLabel = exports.getEmptyValues = exports.getMaxValuesLength = exports.maxCount = exports.valueLabel = undefined;
5
5
 
6
6
  var _ramda = require('ramda');
7
7
 
@@ -15,12 +15,11 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
15
15
 
16
16
  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; } }
17
17
 
18
- var getMaxValuesLength = exports.getMaxValuesLength = function getMaxValuesLength(lists) {
19
- return Math.max.apply(Math, R.map(function (_ref) {
20
- var _ref$values = _ref.values,
21
- values = _ref$values === undefined ? [] : _ref$values;
22
- return R.length(values);
23
- })(lists));
18
+ var valueLabel = exports.valueLabel = 'Xxxx';
19
+ var maxCount = exports.maxCount = 3;
20
+
21
+ var getMaxValuesLength = exports.getMaxValuesLength = function getMaxValuesLength(items) {
22
+ return Math.min(Math.max.apply(Math, R.pluck('count', items)), maxCount);
24
23
  };
25
24
  var getEmptyValues = exports.getEmptyValues = R.ifElse(R.flip(R.lte)(0), R.always(['']), R.times(R.always('')));
26
25
  var getLabel = exports.getLabel = function getLabel(itemRenderer) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sis-cc/dotstatsuite-visions",
3
- "version": "10.29.0",
3
+ "version": "11.0.0",
4
4
  "description": "Library of visual components",
5
5
  "author": "OECD",
6
6
  "homepage": "https://visions-qa.siscc.org/#o",