@sis-cc/dotstatsuite-visions 7.22.7 → 8.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.
@@ -0,0 +1,22 @@
1
+ import * as R from 'ramda';
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
+ export var getValue = function getValue(labelAccessor) {
10
+ return function (item) {
11
+ return R.has('values', item) ? R.reduce(function (acc, val) {
12
+ return {
13
+ 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
+ flags: R.concat(acc.flags, val.flags || []),
16
+ parents: R.concat(acc.parents, val.parents || [])
17
+ };
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);
20
+ })(item);
21
+ };
22
+ };
package/es/index.js CHANGED
@@ -24,6 +24,7 @@ export { default as LabelDivider } from './LabelDivider';
24
24
  export { default as Loading } from './Loading';
25
25
  export { default as Logo } from './Logo';
26
26
  export { default as NoData } from './NoData';
27
+ export { default as Mode } from './Mode';
27
28
  export { default as Pagination } from './Pagination';
28
29
  export { default as PeriodPicker } from './PeriodPicker';
29
30
  export { spotlightScopeListEngine, reduceChildren } from './utils';
@@ -152,7 +152,7 @@ var DataHeader = function DataHeader(_ref5) {
152
152
  title = _ref5.title,
153
153
  _ref5$subtitle = _ref5.subtitle,
154
154
  subtitle = _ref5$subtitle === undefined ? [] : _ref5$subtitle,
155
- uprs = _ref5.uprs,
155
+ combinations = _ref5.combinations,
156
156
  disclaimer = _ref5.disclaimer,
157
157
  sideProps = _ref5.sideProps,
158
158
  SideIcon = _ref5.SideIcon,
@@ -168,12 +168,19 @@ var DataHeader = function DataHeader(_ref5) {
168
168
  var isWidthLess = R.lt(width);
169
169
  var classes = useStyles({ isWidthLess: isWidthLess });
170
170
 
171
- var reducedContent = (0, _utils.getReducedContent)({ isWidthLess: isWidthLess, title: title, subtitle: subtitle, uprs: uprs, disclaimer: disclaimer });
171
+ var reducedContent = (0, _utils.getReducedContent)({
172
+ isWidthLess: isWidthLess,
173
+ title: title,
174
+ subtitle: subtitle,
175
+ combinations: combinations,
176
+ disclaimer: disclaimer
177
+ });
172
178
 
173
179
  var theme = (0, _styles.useTheme)();
174
180
  var iconColor = R.path(['mixins', 'dataHeader', 'icon', 'color'], theme);
175
181
 
176
182
  var subtitleLength = R.length(subtitle);
183
+ var combinationsLength = R.length(combinations);
177
184
 
178
185
  return _react2.default.createElement(
179
186
  'div',
@@ -224,11 +231,32 @@ var DataHeader = function DataHeader(_ref5) {
224
231
  );
225
232
  }))(subtitle)
226
233
  ),
227
- isWidthUp(_theme.T4_BREAKPOINTS.xs3) && uprs && _react2.default.createElement(
228
- _Typography2.default,
229
- { className: classes.subtitle, 'data-testid': 'data-header-units' },
230
- _react2.default.createElement(_Title2.default, { header: uprs.header }),
231
- uprs.label
234
+ isWidthUp(_theme.T4_BREAKPOINTS.xs3) && combinations && R.not(R.isEmpty(combinations)) && _react2.default.createElement(
235
+ 'div',
236
+ { className: classes.wrapperSubtitle },
237
+ R.pipe(R.addIndex(R.map)(function (comb, index) {
238
+ return _react2.default.createElement(
239
+ 'div',
240
+ {
241
+ key: 'combination-' + index,
242
+ className: classes.subtitle,
243
+ 'data-testid': 'data-header-combination',
244
+ 'aria-label': comb.header
245
+ },
246
+ _react2.default.createElement(_Title2.default, { header: comb.header }),
247
+ _react2.default.createElement(
248
+ _Typography2.default,
249
+ { variant: 'inherit' },
250
+ comb.label
251
+ ),
252
+ R.not(R.isEmpty(R.propOr([], 'flags', comb))) && _react2.default.createElement(_Flags2.default, { classes: classes, content: R.prop('flags', comb) }),
253
+ R.lt(index + 1, combinationsLength) && _react2.default.createElement(
254
+ 'svg',
255
+ { width: '24', height: '8' },
256
+ _react2.default.createElement('circle', { cx: '12', cy: '4', r: '3', stroke: iconColor, fill: iconColor })
257
+ )
258
+ );
259
+ }))(combinations)
232
260
  ),
233
261
  isWidthUp(_theme.T4_BREAKPOINTS.xs3) && disclaimer && _react2.default.createElement(
234
262
  _Typography2.default,
@@ -271,10 +299,10 @@ DataHeader.propTypes = process.env.NODE_ENV !== "production" ? {
271
299
  }))
272
300
  }))
273
301
  })),
274
- uprs: _propTypes2.default.shape({
302
+ combinations: _propTypes2.default.arrayOf(_propTypes2.default.shape({
275
303
  header: _propTypes2.default.string,
276
304
  label: _propTypes2.default.string
277
- }),
305
+ })),
278
306
  sideProps: _propTypes2.default.object,
279
307
  SideIcon: _propTypes2.default.func,
280
308
  disclaimer: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.element]),
@@ -0,0 +1,117 @@
1
+ 'use strict';
2
+
3
+ exports.__esModule = true;
4
+
5
+ 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; };
6
+
7
+ var _react = require('react');
8
+
9
+ var _react2 = _interopRequireDefault(_react);
10
+
11
+ var _propTypes = require('prop-types');
12
+
13
+ var _propTypes2 = _interopRequireDefault(_propTypes);
14
+
15
+ var _ramda = require('ramda');
16
+
17
+ var R = _interopRequireWildcard(_ramda);
18
+
19
+ var _styles = require('@material-ui/core/styles');
20
+
21
+ var _RadioGroup = require('@material-ui/core/RadioGroup');
22
+
23
+ var _RadioGroup2 = _interopRequireDefault(_RadioGroup);
24
+
25
+ var _FormControlLabel = require('@material-ui/core/FormControlLabel');
26
+
27
+ var _FormControlLabel2 = _interopRequireDefault(_FormControlLabel);
28
+
29
+ var _Radio = require('@material-ui/core/Radio');
30
+
31
+ var _Radio2 = _interopRequireDefault(_Radio);
32
+
33
+ var _ = require('../');
34
+
35
+ 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; } }
36
+
37
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
38
+
39
+ var useStyles = (0, _styles.makeStyles)(function (theme) {
40
+ return {
41
+ title: _extends({
42
+ padding: 0
43
+ }, R.pathOr({}, ['mixins', 'share', 'title'], theme)),
44
+ label: theme.typography.body2,
45
+ icon: {
46
+ marginLeft: theme.spacing(0.5)
47
+ }
48
+ };
49
+ });
50
+
51
+ var Warning = function Warning(_ref) {
52
+ var title = _ref.title,
53
+ children = _ref.children;
54
+
55
+ var classes = useStyles();
56
+ return _react2.default.createElement(
57
+ _.Tooltip,
58
+ { className: classes.icon, title: title, variant: 'light' },
59
+ children
60
+ );
61
+ };
62
+
63
+ Warning.propTypes = process.env.NODE_ENV !== "production" ? {
64
+ title: _propTypes2.default.string,
65
+ children: _propTypes2.default.node
66
+ } : {};
67
+
68
+ var Mode = function Mode(_ref2) {
69
+ var changeMode = _ref2.changeMode,
70
+ mode = _ref2.mode,
71
+ _ref2$modes = _ref2.modes,
72
+ modes = _ref2$modes === undefined ? [] : _ref2$modes,
73
+ children = _ref2.children;
74
+
75
+ var classes = useStyles();
76
+ return _react2.default.createElement(
77
+ _RadioGroup2.default,
78
+ { onChange: function onChange(e) {
79
+ return changeMode(e.target.value);
80
+ }, value: mode },
81
+ R.map(function (_ref3) {
82
+ var label = _ref3.label,
83
+ value = _ref3.value,
84
+ popperLabel = _ref3.popperLabel;
85
+ return _react2.default.createElement(_FormControlLabel2.default, {
86
+ classes: { label: classes.label },
87
+ key: value,
88
+ control: _react2.default.createElement(_Radio2.default, { variant: 'outlined', color: 'primary' }),
89
+ label: _react2.default.createElement(
90
+ 'span',
91
+ null,
92
+ label,
93
+ popperLabel && _react2.default.createElement(
94
+ Warning,
95
+ { title: popperLabel },
96
+ children
97
+ )
98
+ ),
99
+ value: value
100
+ });
101
+ })(modes)
102
+ );
103
+ };
104
+
105
+ Mode.propTypes = process.env.NODE_ENV !== "production" ? {
106
+ changeMode: _propTypes2.default.func,
107
+ children: _propTypes2.default.node,
108
+ mode: _propTypes2.default.string,
109
+ modes: _propTypes2.default.arrayOf(_propTypes2.default.shape({
110
+ label: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.element]),
111
+ value: _propTypes2.default.string,
112
+ popperLabel: _propTypes2.default.string
113
+ }))
114
+ } : {};
115
+
116
+ exports.default = Mode;
117
+ module.exports = exports['default'];
@@ -0,0 +1,16 @@
1
+ 'use strict';
2
+
3
+ exports.__esModule = true;
4
+
5
+ var _Mode = require('./Mode');
6
+
7
+ Object.defineProperty(exports, 'default', {
8
+ enumerable: true,
9
+ get: function get() {
10
+ return _interopRequireDefault(_Mode).default;
11
+ }
12
+ });
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ module.exports = exports['default'];
@@ -43,13 +43,13 @@ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj;
43
43
 
44
44
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
45
45
 
46
- /*
47
- * Accessibility.
48
- * Do not use "TableHead" from Material-ui.
49
- * Material-ui, add "scope" attribute for accessibility, "scope" attribute can break screen reader if use with headers.
50
- * Child from TableHead will inherit a "scope" that we don't want. (not possible to turn off)
51
- * We are using "headers" attribute because the table is too complexe to use "scope".
52
- */
46
+ /*
47
+ * Accessibility.
48
+ * Do not use "TableHead" from Material-ui.
49
+ * Material-ui, add "scope" attribute for accessibility, "scope" attribute can break screen reader if use with headers.
50
+ * Child from TableHead will inherit a "scope" that we don't want. (not possible to turn off)
51
+ * We are using "headers" attribute because the table is too complexe to use "scope".
52
+ */
53
53
 
54
54
  var useStyles = (0, _styles.makeStyles)(function (theme) {
55
55
  return {
@@ -74,7 +74,7 @@ var getEnhancedValuesHeaderData = exports.getEnhancedValuesHeaderData = function
74
74
  // mix merge and transpose for performance
75
75
  R.reduce(function (acc, cells) {
76
76
  R.addIndex(R.forEach)(function (cell, rowIndex) {
77
- var cellId = R.path(['value', 'id'], cell);
77
+ var cellId = R.has('values', cell) ? R.pipe(R.prop('values'), R.pluck('id'), R.join(','))(cell) : R.path(['value', 'id'], cell);
78
78
  var topCell = rowIndex > 0 ? R.pipe(R.nth(rowIndex - 1), R.last)(acc) : null;
79
79
  var cellKey = R.isNil(topCell) ? cellId : topCell.key + '-' + cellId;
80
80
 
@@ -82,7 +82,7 @@ var getEnhancedValuesHeaderData = exports.getEnhancedValuesHeaderData = function
82
82
  if (R.prop('key', leftCell) === cellKey && rowIndex !== colLength - 1) {
83
83
  acc = R.over(R.lensIndex(rowIndex), R.over(R.lensIndex(-1), R.evolve({ spanCount: R.add(1) })))(acc);
84
84
  } else {
85
- acc = R.over(R.lensIndex(rowIndex), R.append(_extends({}, R.propOr({}, 'value', cell), { key: cellKey, spanCount: 1 })))(acc);
85
+ acc = R.over(R.lensIndex(rowIndex), R.append(_extends({}, R.pick(['value', 'values'], cell), { key: cellKey, spanCount: 1 })))(acc);
86
86
  }
87
87
  })(cells);
88
88
  return acc;
@@ -105,7 +105,9 @@ var TableHtml5 = function TableHtml5(_ref) {
105
105
  SideIcon = _ref.SideIcon,
106
106
  _ref$testId = _ref.testId,
107
107
  testId = _ref$testId === undefined ? 'vis-table' : _ref$testId,
108
- HTMLRenderer = _ref.HTMLRenderer;
108
+ HTMLRenderer = _ref.HTMLRenderer,
109
+ _ref$labelAccessor = _ref.labelAccessor,
110
+ labelAccessor = _ref$labelAccessor === undefined ? R.prop('name') : _ref$labelAccessor;
109
111
 
110
112
  var classes = useStyles();
111
113
 
@@ -142,7 +144,8 @@ var TableHtml5 = function TableHtml5(_ref) {
142
144
 
143
145
  var isSingleObs = R.hasPath(['', '', '', 0], cells);
144
146
  if (isSingleObs) return _react2.default.createElement(_cell2.default, _extends({
145
- HTMLRenderer: HTMLRenderer
147
+ HTMLRenderer: HTMLRenderer,
148
+ labelAccessor: labelAccessor
146
149
  }, R.pathOr({}, ['', '', '', 0], cells), {
147
150
  cellHandler: cellHandler,
148
151
  isOne: true
@@ -169,7 +172,8 @@ var TableHtml5 = function TableHtml5(_ref) {
169
172
  valuesHeaderData: valuesHeaderData,
170
173
  xLayoutDataLength: xLayoutDataLength,
171
174
  subHeadCellsWidth: subHeadCellsWidth,
172
- HTMLRenderer: HTMLRenderer
175
+ HTMLRenderer: HTMLRenderer,
176
+ labelAccessor: labelAccessor
173
177
  }),
174
178
  _react2.default.createElement(_subHeader2.default, {
175
179
  headerData: headerData,
@@ -178,7 +182,8 @@ var TableHtml5 = function TableHtml5(_ref) {
178
182
  SideIcon: SideIcon,
179
183
  ref: subHeadCellsRef,
180
184
  subHeadCellsWidth: subHeadCellsWidth,
181
- HTMLRenderer: HTMLRenderer
185
+ HTMLRenderer: HTMLRenderer,
186
+ labelAccessor: labelAccessor
182
187
  })
183
188
  ),
184
189
  mapIndexed(function (section, index) {
@@ -196,7 +201,8 @@ var TableHtml5 = function TableHtml5(_ref) {
196
201
  activeCellHandler: activeCellHandler,
197
202
  SideIcon: SideIcon,
198
203
  subHeadCellsWidth: subHeadCellsWidth,
199
- HTMLRenderer: HTMLRenderer
204
+ HTMLRenderer: HTMLRenderer,
205
+ labelAccessor: labelAccessor
200
206
  });
201
207
  }, sectionsData)
202
208
  );
@@ -211,7 +217,8 @@ TableHtml5.propTypes = process.env.NODE_ENV !== "production" ? {
211
217
  activeCellIds: _propTypes2.default.object,
212
218
  SideIcon: _propTypes2.default.func,
213
219
  testId: _propTypes2.default.string,
214
- HTMLRenderer: _propTypes2.default.func
220
+ HTMLRenderer: _propTypes2.default.func,
221
+ labelAccessor: _propTypes2.default.func
215
222
  } : {};
216
223
 
217
224
  exports.default = TableHtml5;
@@ -92,7 +92,8 @@ var Cell = function Cell(_ref) {
92
92
  isHighlight = _ref.isHighlight,
93
93
  sideProps = _ref.sideProps,
94
94
  SideIcon = _ref.SideIcon,
95
- HTMLRenderer = _ref.HTMLRenderer;
95
+ HTMLRenderer = _ref.HTMLRenderer,
96
+ labelAccessor = _ref.labelAccessor;
96
97
 
97
98
  var classes = useStyles();
98
99
  var isRtl = (0, _utils.getIsRtl)((0, _styles.useTheme)());
@@ -123,7 +124,7 @@ var Cell = function Cell(_ref) {
123
124
  tabIndex: 0
124
125
  },
125
126
  !R.isNil(SideIcon) && _react2.default.createElement(SideIcon, { sideProps: sideProps, className: classes.value }),
126
- hasFlag && _react2.default.createElement(_flags2.default, { HTMLRenderer: HTMLRenderer, flags: flags }),
127
+ hasFlag && _react2.default.createElement(_flags2.default, { HTMLRenderer: HTMLRenderer, flags: flags, labelAccessor: labelAccessor }),
127
128
  uiValue
128
129
  );
129
130
  };
@@ -141,7 +142,8 @@ Cell.propTypes = process.env.NODE_ENV !== "production" ? {
141
142
  activeCellHandler: _propTypes2.default.func,
142
143
  sideProps: _propTypes2.default.object,
143
144
  SideIcon: _propTypes2.default.func,
144
- HTMLRenderer: _propTypes2.default.func
145
+ HTMLRenderer: _propTypes2.default.func,
146
+ labelAccessor: _propTypes2.default.func
145
147
  } : {};
146
148
 
147
149
  exports.default = Cell;
@@ -32,6 +32,8 @@ var _Tooltip2 = _interopRequireDefault(_Tooltip);
32
32
 
33
33
  var _ = require('../');
34
34
 
35
+ var _utils = require('./utils');
36
+
35
37
  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; } }
36
38
 
37
39
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -72,7 +74,8 @@ var Flags = function Flags(_ref) {
72
74
  var _ref$flags = _ref.flags,
73
75
  flags = _ref$flags === undefined ? [] : _ref$flags,
74
76
  isHeader = _ref.isHeader,
75
- HTMLRenderer = _ref.HTMLRenderer;
77
+ HTMLRenderer = _ref.HTMLRenderer,
78
+ labelAccessor = _ref.labelAccessor;
76
79
 
77
80
  var classes = useStyles();
78
81
  var noFlags = R.isNil(flags) || R.isEmpty(flags);
@@ -82,23 +85,27 @@ var Flags = function Flags(_ref) {
82
85
  var codedIcons = R.pipe(R.reduce(function (acc, flag) {
83
86
  return R.when(R.always(R.has('code', flag)), R.append(flag.code))(acc);
84
87
  }, []), R.join(','))(flags);
88
+
89
+ var labels = R.map(function (flag) {
90
+ var value = (0, _utils.getValue)(labelAccessor)(flag);
91
+ return labelAccessor(flag) + ': ' + value.label;
92
+ }, flags);
85
93
  var content = _react2.default.createElement(
86
94
  'ul',
87
95
  { 'data-testid': 'cell-flags-footnotes-content', className: classes.content },
88
- R.addIndex(R.map)(function (_ref2, index) {
89
- var label = _ref2.label;
96
+ R.addIndex(R.map)(function (label, index) {
90
97
  return _react2.default.createElement(
91
98
  'li',
92
99
  { key: index },
93
100
  R.is(Function, HTMLRenderer) ? _react2.default.createElement(HTMLRenderer, { html: label }) : label
94
101
  );
95
- }, flags)
102
+ }, labels)
96
103
  );
97
104
  return _react2.default.createElement(
98
105
  _Tooltip2.default,
99
106
  {
100
107
  tabIndex: 0,
101
- 'aria-label': R.pipe(R.pluck('label'), R.join(', '))(flags),
108
+ 'aria-label': R.join(', ', labels),
102
109
  'aria-hidden': false,
103
110
  title: content,
104
111
  placement: 'top'
@@ -123,10 +130,7 @@ var Flags = function Flags(_ref) {
123
130
  _react2.default.createElement(
124
131
  _Typography2.default,
125
132
  { variant: 'srOnly' },
126
- '* ' + R.addIndex(R.map)(function (_ref3) {
127
- var label = _ref3.label;
128
- return label;
129
- }, flags)
133
+ '* ' + labels
130
134
  )
131
135
  )
132
136
  )
@@ -136,7 +140,8 @@ var Flags = function Flags(_ref) {
136
140
  Flags.propTypes = process.env.NODE_ENV !== "production" ? {
137
141
  flags: _propTypes2.default.array,
138
142
  isHeader: _propTypes2.default.bool,
139
- HTMLRenderer: _propTypes2.default.func
143
+ HTMLRenderer: _propTypes2.default.func,
144
+ labelAccessor: _propTypes2.default.func
140
145
  } : {};
141
146
 
142
147
  exports.default = Flags;
@@ -38,6 +38,8 @@ var _flags2 = _interopRequireDefault(_flags);
38
38
 
39
39
  var _utils = require('../utils');
40
40
 
41
+ var _utils2 = require('./utils');
42
+
41
43
  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
44
 
43
45
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -87,7 +89,8 @@ var Header = function Header(_ref) {
87
89
  valuesHeaderData = _ref.valuesHeaderData,
88
90
  xLayoutDataLength = _ref.xLayoutDataLength,
89
91
  subHeadCellsWidth = _ref.subHeadCellsWidth,
90
- HTMLRenderer = _ref.HTMLRenderer;
92
+ HTMLRenderer = _ref.HTMLRenderer,
93
+ labelAccessor = _ref.labelAccessor;
91
94
 
92
95
  var classes = useStyles();
93
96
  var theme = (0, _styles.useTheme)();
@@ -124,22 +127,23 @@ var Header = function Header(_ref) {
124
127
  _react2.default.createElement(
125
128
  _Typography2.default,
126
129
  { variant: 'body1', className: classes.cellLabelHeader },
127
- R.path([0, 'data', index, 'dimension', 'label'], headerData),
128
- _react2.default.createElement(_flags2.default, { HTMLRenderer: HTMLRenderer, flags: flags, isHeader: true })
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 })
129
132
  )
130
133
  )
131
134
  ),
132
135
  mapIndexed(function (headerItem, idx) {
133
136
  var _cx;
134
137
 
135
- var flags = R.prop('flags', headerItem);
136
- var hierarchySpace = R.pipe(R.pathOr([], ['parents']), R.when(R.isNil, R.always([])), R.length, R.times(function () {
138
+ var value = (0, _utils2.getValue)(labelAccessor)(headerItem);
139
+ var flags = R.propOr([], 'flags', value);
140
+ var hierarchySpace = R.pipe(R.propOr([], 'parents'), R.length, R.times(function () {
137
141
  return '·';
138
- }))(headerItem);
142
+ }))(value);
139
143
  return _react2.default.createElement(
140
144
  _TableCell2.default,
141
145
  {
142
- key: R.prop('id', headerItem) + '-' + idx,
146
+ key: R.prop('id', value) + '-' + idx,
143
147
  component: 'th',
144
148
  className: (0, _classnames2.default)(classes.tableHeadCell, (_cx = {}, _cx[classes.topCell] = R.not(R.isEmpty(flags)), _cx)),
145
149
  id: idx + '_' + index,
@@ -167,8 +171,8 @@ var Header = function Header(_ref) {
167
171
  },
168
172
  variant: 'body1'
169
173
  },
170
- R.prop('label', headerItem),
171
- _react2.default.createElement(_flags2.default, { HTMLRenderer: HTMLRenderer, flags: flags, isHeader: true })
174
+ R.prop('label', value),
175
+ _react2.default.createElement(_flags2.default, { HTMLRenderer: HTMLRenderer, flags: flags, isHeader: true, labelAccessor: labelAccessor })
172
176
  )
173
177
  )
174
178
  );
@@ -182,7 +186,8 @@ Header.propTypes = process.env.NODE_ENV !== "production" ? {
182
186
  valuesHeaderData: _propTypes2.default.array,
183
187
  xLayoutDataLength: _propTypes2.default.number,
184
188
  subHeadCellsWidth: _propTypes2.default.array,
185
- HTMLRenderer: _propTypes2.default.func
189
+ HTMLRenderer: _propTypes2.default.func,
190
+ labelAccessor: _propTypes2.default.func
186
191
  } : {};
187
192
 
188
193
  exports.default = Header;
@@ -50,6 +50,8 @@ var _cell2 = _interopRequireDefault(_cell);
50
50
 
51
51
  var _utils = require('../utils');
52
52
 
53
+ var _utils2 = require('./utils');
54
+
53
55
  var _flags = require('./flags');
54
56
 
55
57
  var _flags2 = _interopRequireDefault(_flags);
@@ -120,7 +122,8 @@ var Section = function Section(_ref) {
120
122
  nbColumnsByRows = _ref.nbColumnsByRows,
121
123
  SideIcon = _ref.SideIcon,
122
124
  subHeadCellsWidth = _ref.subHeadCellsWidth,
123
- HTMLRenderer = _ref.HTMLRenderer;
125
+ HTMLRenderer = _ref.HTMLRenderer,
126
+ labelAccessor = _ref.labelAccessor;
124
127
 
125
128
  var classes = useStyles();
126
129
  var currentSection = R.path([0, 'key'], section);
@@ -139,7 +142,8 @@ var Section = function Section(_ref) {
139
142
  xLayoutDataLength: xLayoutDataLength,
140
143
  headerHeight: headerHeight,
141
144
  SideIcon: SideIcon,
142
- HTMLRenderer: HTMLRenderer
145
+ HTMLRenderer: HTMLRenderer,
146
+ labelAccessor: labelAccessor
143
147
  }),
144
148
  R.addIndex(R.map)(function (sectionbody, rowIndex) {
145
149
  var _cx2;
@@ -154,15 +158,16 @@ var Section = function Section(_ref) {
154
158
  mapIndexed(function (cell, index) {
155
159
  var _cx;
156
160
 
157
- var flags = R.path(['value', 'flags'], cell);
161
+ var value = (0, _utils2.getValue)(labelAccessor)(cell);
162
+ var flags = R.prop('flags', value);
158
163
  var id = rowIndex + '_' + rowId + '_' + index;
159
164
 
160
165
  // special space is used for hierarchy U+2007 &#8199; &numsp;
161
- var hierarchySpace = R.pipe(R.pathOr([], ['value', 'parents']), R.when(R.isNil, R.always([])), R.length,
166
+ var hierarchySpace = R.pipe(R.propOr([], 'parents'), R.when(R.isNil, R.always([])), R.length,
162
167
  // eslint-disable-next-line no-irregular-whitespace
163
168
  R.times(function () {
164
169
  return '·  ';
165
- }))(cell);
170
+ }))(value);
166
171
 
167
172
  return _react2.default.createElement(
168
173
  _TableCell2.default,
@@ -185,8 +190,8 @@ var Section = function Section(_ref) {
185
190
  _react2.default.createElement(
186
191
  _Typography2.default,
187
192
  { variant: 'body1', tabIndex: 0 },
188
- R.path(['value', 'label'], cell),
189
- _react2.default.createElement(_flags2.default, { HTMLRenderer: HTMLRenderer, flags: flags })
193
+ R.prop('label', value),
194
+ _react2.default.createElement(_flags2.default, { HTMLRenderer: HTMLRenderer, labelAccessor: labelAccessor, flags: flags })
190
195
  )
191
196
  )
192
197
  );
@@ -201,7 +206,7 @@ var Section = function Section(_ref) {
201
206
  'div',
202
207
  { className: classes.flagContainer },
203
208
  !R.isNil(SideIcon) && _react2.default.createElement(SideIcon, { sideProps: R.prop('sideProps', sectionbody) }),
204
- _react2.default.createElement(_flags2.default, { HTMLRenderer: HTMLRenderer, flags: R.prop('flags', sectionbody) })
209
+ _react2.default.createElement(_flags2.default, { HTMLRenderer: HTMLRenderer, labelAccessor: labelAccessor, flags: R.prop('flags', sectionbody) })
205
210
  )
206
211
  ),
207
212
  mapIndexed(function (item, columnIndex) {
@@ -217,6 +222,7 @@ var Section = function Section(_ref) {
217
222
  headers: rowIds + ' ' + columnIds + ' ' + currentSection,
218
223
  cellHandler: cellHandler,
219
224
  HTMLRenderer: HTMLRenderer,
225
+ labelAccessor: labelAccessor,
220
226
  SideIcon: SideIcon,
221
227
  isActive: isActive,
222
228
  isHighlight: R.any(R.identity)([R.prop(rowId)(activeCellIds), R.prop(columnIndex)(activeCellIds)]),
@@ -247,7 +253,8 @@ Section.propTypes = process.env.NODE_ENV !== "production" ? {
247
253
  maxColumns: _propTypes2.default.number,
248
254
  SideIcon: _propTypes2.default.func,
249
255
  subHeadCellsWidth: _propTypes2.default.arrayOf(_propTypes2.default.number),
250
- HTMLRenderer: _propTypes2.default.func
256
+ HTMLRenderer: _propTypes2.default.func,
257
+ labelAccessor: _propTypes2.default.func
251
258
  } : {};
252
259
 
253
260
  exports.default = Section;
@@ -42,6 +42,8 @@ var _flags2 = _interopRequireDefault(_flags);
42
42
 
43
43
  var _utils = require('../utils');
44
44
 
45
+ var _utils2 = require('./utils');
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 }; }
@@ -95,7 +97,8 @@ var SectionHeader = function SectionHeader(_ref) {
95
97
  xLayoutDataLength = _ref.xLayoutDataLength,
96
98
  headerHeight = _ref.headerHeight,
97
99
  SideIcon = _ref.SideIcon,
98
- HTMLRenderer = _ref.HTMLRenderer;
100
+ HTMLRenderer = _ref.HTMLRenderer,
101
+ labelAccessor = _ref.labelAccessor;
99
102
 
100
103
  var classes = useStyles();
101
104
  var theme = (0, _styles.useTheme)();
@@ -135,6 +138,7 @@ var SectionHeader = function SectionHeader(_ref) {
135
138
  className: (0, _classnames2.default)(classes.stickyHeaderSection, classes.leftLabelPosition, classes.sectionLabelsContainer)
136
139
  },
137
140
  mapIndexed(function (sectionHeader, index) {
141
+ var value = (0, _utils2.getValue)(labelAccessor)(sectionHeader);
138
142
  return _react2.default.createElement(
139
143
  _react.Fragment,
140
144
  { key: index },
@@ -150,24 +154,29 @@ var SectionHeader = function SectionHeader(_ref) {
150
154
  'data-testid': 'section-dim',
151
155
  'aria-label': R.path(['dimension', 'id'], sectionHeader)
152
156
  },
153
- R.path(['dimension', 'label'], sectionHeader),
157
+ R.pipe(R.prop('dimension'), labelAccessor)(sectionHeader),
154
158
  ':'
155
159
  ),
156
160
  _react2.default.createElement(
157
161
  _Typography2.default,
158
162
  { noWrap: true, variant: 'body1', component: 'span', tabIndex: 0 },
159
- R.path(['value', 'label'], sectionHeader)
163
+ R.prop('label', value)
160
164
  ),
161
165
  _react2.default.createElement(_flags2.default, {
162
166
  HTMLRenderer: HTMLRenderer,
163
- flags: R.path(['value', 'flags'], sectionHeader)
167
+ labelAccessor: labelAccessor,
168
+ flags: R.prop('flags', value)
164
169
  })
165
170
  );
166
171
  }, R.path([0, 'data'], section)),
167
172
  _react2.default.createElement(
168
173
  'span',
169
174
  null,
170
- _react2.default.createElement(_flags2.default, { HTMLRenderer: HTMLRenderer, flags: R.path([0, 'flags'], section) })
175
+ _react2.default.createElement(_flags2.default, {
176
+ HTMLRenderer: HTMLRenderer,
177
+ flags: R.path([0, 'flags'], section),
178
+ labelAccessor: labelAccessor
179
+ })
171
180
  )
172
181
  )
173
182
  )
@@ -189,7 +198,8 @@ SectionHeader.propTypes = process.env.NODE_ENV !== "production" ? {
189
198
  xLayoutDataLength: _propTypes2.default.number,
190
199
  headerHeight: _propTypes2.default.number,
191
200
  SideIcon: _propTypes2.default.func,
192
- HTMLRenderer: _propTypes2.default.func
201
+ HTMLRenderer: _propTypes2.default.func,
202
+ labelAccessor: _propTypes2.default.func
193
203
  } : {};
194
204
 
195
205
  exports.default = SectionHeader;