@sis-cc/dotstatsuite-visions 7.23.0 → 8.0.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.
- package/es/DataHeader/DataHeader.js +37 -9
- package/es/TableHtml5/TableHtml5.js +22 -15
- package/es/TableHtml5/cell.js +5 -3
- package/es/TableHtml5/flags.js +14 -10
- package/es/TableHtml5/header.js +14 -10
- package/es/TableHtml5/section.js +15 -9
- package/es/TableHtml5/sectionHeader.js +15 -6
- package/es/TableHtml5/subHeader.js +7 -4
- package/es/TableHtml5/utils.js +22 -0
- package/lib/DataHeader/DataHeader.js +37 -9
- package/lib/TableHtml5/TableHtml5.js +22 -15
- package/lib/TableHtml5/cell.js +5 -3
- package/lib/TableHtml5/flags.js +15 -10
- package/lib/TableHtml5/header.js +15 -10
- package/lib/TableHtml5/section.js +16 -9
- package/lib/TableHtml5/sectionHeader.js +16 -6
- package/lib/TableHtml5/subHeader.js +7 -4
- package/lib/TableHtml5/utils.js +31 -0
- package/package.json +1 -2
|
@@ -113,7 +113,7 @@ var DataHeader = function DataHeader(_ref5) {
|
|
|
113
113
|
title = _ref5.title,
|
|
114
114
|
_ref5$subtitle = _ref5.subtitle,
|
|
115
115
|
subtitle = _ref5$subtitle === undefined ? [] : _ref5$subtitle,
|
|
116
|
-
|
|
116
|
+
combinations = _ref5.combinations,
|
|
117
117
|
disclaimer = _ref5.disclaimer,
|
|
118
118
|
sideProps = _ref5.sideProps,
|
|
119
119
|
SideIcon = _ref5.SideIcon,
|
|
@@ -129,12 +129,19 @@ var DataHeader = function DataHeader(_ref5) {
|
|
|
129
129
|
var isWidthLess = R.lt(width);
|
|
130
130
|
var classes = useStyles({ isWidthLess: isWidthLess });
|
|
131
131
|
|
|
132
|
-
var reducedContent = getReducedContent({
|
|
132
|
+
var reducedContent = getReducedContent({
|
|
133
|
+
isWidthLess: isWidthLess,
|
|
134
|
+
title: title,
|
|
135
|
+
subtitle: subtitle,
|
|
136
|
+
combinations: combinations,
|
|
137
|
+
disclaimer: disclaimer
|
|
138
|
+
});
|
|
133
139
|
|
|
134
140
|
var theme = useTheme();
|
|
135
141
|
var iconColor = R.path(['mixins', 'dataHeader', 'icon', 'color'], theme);
|
|
136
142
|
|
|
137
143
|
var subtitleLength = R.length(subtitle);
|
|
144
|
+
var combinationsLength = R.length(combinations);
|
|
138
145
|
|
|
139
146
|
return React.createElement(
|
|
140
147
|
'div',
|
|
@@ -185,11 +192,32 @@ var DataHeader = function DataHeader(_ref5) {
|
|
|
185
192
|
);
|
|
186
193
|
}))(subtitle)
|
|
187
194
|
),
|
|
188
|
-
isWidthUp(T4_BREAKPOINTS.xs3) &&
|
|
189
|
-
|
|
190
|
-
{ className: classes.
|
|
191
|
-
|
|
192
|
-
|
|
195
|
+
isWidthUp(T4_BREAKPOINTS.xs3) && combinations && R.not(R.isEmpty(combinations)) && React.createElement(
|
|
196
|
+
'div',
|
|
197
|
+
{ className: classes.wrapperSubtitle },
|
|
198
|
+
R.pipe(R.addIndex(R.map)(function (comb, index) {
|
|
199
|
+
return React.createElement(
|
|
200
|
+
'div',
|
|
201
|
+
{
|
|
202
|
+
key: 'combination-' + index,
|
|
203
|
+
className: classes.subtitle,
|
|
204
|
+
'data-testid': 'data-header-combination',
|
|
205
|
+
'aria-label': comb.header
|
|
206
|
+
},
|
|
207
|
+
React.createElement(Title, { header: comb.header }),
|
|
208
|
+
React.createElement(
|
|
209
|
+
Typography,
|
|
210
|
+
{ variant: 'inherit' },
|
|
211
|
+
comb.label
|
|
212
|
+
),
|
|
213
|
+
R.not(R.isEmpty(R.propOr([], 'flags', comb))) && React.createElement(Flags, { classes: classes, content: R.prop('flags', comb) }),
|
|
214
|
+
R.lt(index + 1, combinationsLength) && React.createElement(
|
|
215
|
+
'svg',
|
|
216
|
+
{ width: '24', height: '8' },
|
|
217
|
+
React.createElement('circle', { cx: '12', cy: '4', r: '3', stroke: iconColor, fill: iconColor })
|
|
218
|
+
)
|
|
219
|
+
);
|
|
220
|
+
}))(combinations)
|
|
193
221
|
),
|
|
194
222
|
isWidthUp(T4_BREAKPOINTS.xs3) && disclaimer && React.createElement(
|
|
195
223
|
Typography,
|
|
@@ -232,10 +260,10 @@ DataHeader.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
232
260
|
}))
|
|
233
261
|
}))
|
|
234
262
|
})),
|
|
235
|
-
|
|
263
|
+
combinations: PropTypes.arrayOf(PropTypes.shape({
|
|
236
264
|
header: PropTypes.string,
|
|
237
265
|
label: PropTypes.string
|
|
238
|
-
}),
|
|
266
|
+
})),
|
|
239
267
|
sideProps: PropTypes.object,
|
|
240
268
|
SideIcon: PropTypes.func,
|
|
241
269
|
disclaimer: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
|
|
@@ -10,13 +10,13 @@ import SubHeader from './subHeader';
|
|
|
10
10
|
import Section from './section';
|
|
11
11
|
import Cell from './cell';
|
|
12
12
|
|
|
13
|
-
/*
|
|
14
|
-
* Accessibility.
|
|
15
|
-
* Do not use "TableHead" from Material-ui.
|
|
16
|
-
* Material-ui, add "scope" attribute for accessibility, "scope" attribute can break screen reader if use with headers.
|
|
17
|
-
* Child from TableHead will inherit a "scope" that we don't want. (not possible to turn off)
|
|
18
|
-
* We are using "headers" attribute because the table is too complexe to use "scope".
|
|
19
|
-
*/
|
|
13
|
+
/*
|
|
14
|
+
* Accessibility.
|
|
15
|
+
* Do not use "TableHead" from Material-ui.
|
|
16
|
+
* Material-ui, add "scope" attribute for accessibility, "scope" attribute can break screen reader if use with headers.
|
|
17
|
+
* Child from TableHead will inherit a "scope" that we don't want. (not possible to turn off)
|
|
18
|
+
* We are using "headers" attribute because the table is too complexe to use "scope".
|
|
19
|
+
*/
|
|
20
20
|
|
|
21
21
|
var useStyles = makeStyles(function (theme) {
|
|
22
22
|
return {
|
|
@@ -41,7 +41,7 @@ export var getEnhancedValuesHeaderData = function getEnhancedValuesHeaderData(da
|
|
|
41
41
|
// mix merge and transpose for performance
|
|
42
42
|
R.reduce(function (acc, cells) {
|
|
43
43
|
R.addIndex(R.forEach)(function (cell, rowIndex) {
|
|
44
|
-
var cellId = R.path(['value', 'id'], cell);
|
|
44
|
+
var cellId = R.has('values', cell) ? R.pipe(R.prop('values'), R.pluck('id'), R.join(','))(cell) : R.path(['value', 'id'], cell);
|
|
45
45
|
var topCell = rowIndex > 0 ? R.pipe(R.nth(rowIndex - 1), R.last)(acc) : null;
|
|
46
46
|
var cellKey = R.isNil(topCell) ? cellId : topCell.key + '-' + cellId;
|
|
47
47
|
|
|
@@ -49,7 +49,7 @@ export var getEnhancedValuesHeaderData = function getEnhancedValuesHeaderData(da
|
|
|
49
49
|
if (R.prop('key', leftCell) === cellKey && rowIndex !== colLength - 1) {
|
|
50
50
|
acc = R.over(R.lensIndex(rowIndex), R.over(R.lensIndex(-1), R.evolve({ spanCount: R.add(1) })))(acc);
|
|
51
51
|
} else {
|
|
52
|
-
acc = R.over(R.lensIndex(rowIndex), R.append(_extends({}, R.
|
|
52
|
+
acc = R.over(R.lensIndex(rowIndex), R.append(_extends({}, R.pick(['value', 'values'], cell), { key: cellKey, spanCount: 1 })))(acc);
|
|
53
53
|
}
|
|
54
54
|
})(cells);
|
|
55
55
|
return acc;
|
|
@@ -72,7 +72,9 @@ var TableHtml5 = function TableHtml5(_ref) {
|
|
|
72
72
|
SideIcon = _ref.SideIcon,
|
|
73
73
|
_ref$testId = _ref.testId,
|
|
74
74
|
testId = _ref$testId === undefined ? 'vis-table' : _ref$testId,
|
|
75
|
-
HTMLRenderer = _ref.HTMLRenderer
|
|
75
|
+
HTMLRenderer = _ref.HTMLRenderer,
|
|
76
|
+
_ref$labelAccessor = _ref.labelAccessor,
|
|
77
|
+
labelAccessor = _ref$labelAccessor === undefined ? R.prop('name') : _ref$labelAccessor;
|
|
76
78
|
|
|
77
79
|
var classes = useStyles();
|
|
78
80
|
|
|
@@ -109,7 +111,8 @@ var TableHtml5 = function TableHtml5(_ref) {
|
|
|
109
111
|
|
|
110
112
|
var isSingleObs = R.hasPath(['', '', '', 0], cells);
|
|
111
113
|
if (isSingleObs) return React.createElement(Cell, _extends({
|
|
112
|
-
HTMLRenderer: HTMLRenderer
|
|
114
|
+
HTMLRenderer: HTMLRenderer,
|
|
115
|
+
labelAccessor: labelAccessor
|
|
113
116
|
}, R.pathOr({}, ['', '', '', 0], cells), {
|
|
114
117
|
cellHandler: cellHandler,
|
|
115
118
|
isOne: true
|
|
@@ -136,7 +139,8 @@ var TableHtml5 = function TableHtml5(_ref) {
|
|
|
136
139
|
valuesHeaderData: valuesHeaderData,
|
|
137
140
|
xLayoutDataLength: xLayoutDataLength,
|
|
138
141
|
subHeadCellsWidth: subHeadCellsWidth,
|
|
139
|
-
HTMLRenderer: HTMLRenderer
|
|
142
|
+
HTMLRenderer: HTMLRenderer,
|
|
143
|
+
labelAccessor: labelAccessor
|
|
140
144
|
}),
|
|
141
145
|
React.createElement(SubHeader, {
|
|
142
146
|
headerData: headerData,
|
|
@@ -145,7 +149,8 @@ var TableHtml5 = function TableHtml5(_ref) {
|
|
|
145
149
|
SideIcon: SideIcon,
|
|
146
150
|
ref: subHeadCellsRef,
|
|
147
151
|
subHeadCellsWidth: subHeadCellsWidth,
|
|
148
|
-
HTMLRenderer: HTMLRenderer
|
|
152
|
+
HTMLRenderer: HTMLRenderer,
|
|
153
|
+
labelAccessor: labelAccessor
|
|
149
154
|
})
|
|
150
155
|
),
|
|
151
156
|
mapIndexed(function (section, index) {
|
|
@@ -163,7 +168,8 @@ var TableHtml5 = function TableHtml5(_ref) {
|
|
|
163
168
|
activeCellHandler: activeCellHandler,
|
|
164
169
|
SideIcon: SideIcon,
|
|
165
170
|
subHeadCellsWidth: subHeadCellsWidth,
|
|
166
|
-
HTMLRenderer: HTMLRenderer
|
|
171
|
+
HTMLRenderer: HTMLRenderer,
|
|
172
|
+
labelAccessor: labelAccessor
|
|
167
173
|
});
|
|
168
174
|
}, sectionsData)
|
|
169
175
|
);
|
|
@@ -178,7 +184,8 @@ TableHtml5.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
178
184
|
activeCellIds: PropTypes.object,
|
|
179
185
|
SideIcon: PropTypes.func,
|
|
180
186
|
testId: PropTypes.string,
|
|
181
|
-
HTMLRenderer: PropTypes.func
|
|
187
|
+
HTMLRenderer: PropTypes.func,
|
|
188
|
+
labelAccessor: PropTypes.func
|
|
182
189
|
} : {};
|
|
183
190
|
|
|
184
191
|
export default TableHtml5;
|
package/es/TableHtml5/cell.js
CHANGED
|
@@ -62,7 +62,8 @@ var Cell = function Cell(_ref) {
|
|
|
62
62
|
isHighlight = _ref.isHighlight,
|
|
63
63
|
sideProps = _ref.sideProps,
|
|
64
64
|
SideIcon = _ref.SideIcon,
|
|
65
|
-
HTMLRenderer = _ref.HTMLRenderer
|
|
65
|
+
HTMLRenderer = _ref.HTMLRenderer,
|
|
66
|
+
labelAccessor = _ref.labelAccessor;
|
|
66
67
|
|
|
67
68
|
var classes = useStyles();
|
|
68
69
|
var isRtl = getIsRtl(useTheme());
|
|
@@ -93,7 +94,7 @@ var Cell = function Cell(_ref) {
|
|
|
93
94
|
tabIndex: 0
|
|
94
95
|
},
|
|
95
96
|
!R.isNil(SideIcon) && React.createElement(SideIcon, { sideProps: sideProps, className: classes.value }),
|
|
96
|
-
hasFlag && React.createElement(Flags, { HTMLRenderer: HTMLRenderer, flags: flags }),
|
|
97
|
+
hasFlag && React.createElement(Flags, { HTMLRenderer: HTMLRenderer, flags: flags, labelAccessor: labelAccessor }),
|
|
97
98
|
uiValue
|
|
98
99
|
);
|
|
99
100
|
};
|
|
@@ -111,7 +112,8 @@ Cell.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
111
112
|
activeCellHandler: PropTypes.func,
|
|
112
113
|
sideProps: PropTypes.object,
|
|
113
114
|
SideIcon: PropTypes.func,
|
|
114
|
-
HTMLRenderer: PropTypes.func
|
|
115
|
+
HTMLRenderer: PropTypes.func,
|
|
116
|
+
labelAccessor: PropTypes.func
|
|
115
117
|
} : {};
|
|
116
118
|
|
|
117
119
|
export default Cell;
|
package/es/TableHtml5/flags.js
CHANGED
|
@@ -8,6 +8,7 @@ import { makeStyles } from '@material-ui/core/styles';
|
|
|
8
8
|
import Typography from '@material-ui/core/Typography';
|
|
9
9
|
import Tooltip from '@material-ui/core/Tooltip';
|
|
10
10
|
import { Asterisk } from '../';
|
|
11
|
+
import { getValue } from './utils';
|
|
11
12
|
|
|
12
13
|
var useStyles = makeStyles(function (theme) {
|
|
13
14
|
return {
|
|
@@ -45,7 +46,8 @@ var Flags = function Flags(_ref) {
|
|
|
45
46
|
var _ref$flags = _ref.flags,
|
|
46
47
|
flags = _ref$flags === undefined ? [] : _ref$flags,
|
|
47
48
|
isHeader = _ref.isHeader,
|
|
48
|
-
HTMLRenderer = _ref.HTMLRenderer
|
|
49
|
+
HTMLRenderer = _ref.HTMLRenderer,
|
|
50
|
+
labelAccessor = _ref.labelAccessor;
|
|
49
51
|
|
|
50
52
|
var classes = useStyles();
|
|
51
53
|
var noFlags = R.isNil(flags) || R.isEmpty(flags);
|
|
@@ -55,23 +57,27 @@ var Flags = function Flags(_ref) {
|
|
|
55
57
|
var codedIcons = R.pipe(R.reduce(function (acc, flag) {
|
|
56
58
|
return R.when(R.always(R.has('code', flag)), R.append(flag.code))(acc);
|
|
57
59
|
}, []), R.join(','))(flags);
|
|
60
|
+
|
|
61
|
+
var labels = R.map(function (flag) {
|
|
62
|
+
var value = getValue(labelAccessor)(flag);
|
|
63
|
+
return labelAccessor(flag) + ': ' + value.label;
|
|
64
|
+
}, flags);
|
|
58
65
|
var content = React.createElement(
|
|
59
66
|
'ul',
|
|
60
67
|
{ 'data-testid': 'cell-flags-footnotes-content', className: classes.content },
|
|
61
|
-
R.addIndex(R.map)(function (
|
|
62
|
-
var label = _ref2.label;
|
|
68
|
+
R.addIndex(R.map)(function (label, index) {
|
|
63
69
|
return React.createElement(
|
|
64
70
|
'li',
|
|
65
71
|
{ key: index },
|
|
66
72
|
R.is(Function, HTMLRenderer) ? React.createElement(HTMLRenderer, { html: label }) : label
|
|
67
73
|
);
|
|
68
|
-
},
|
|
74
|
+
}, labels)
|
|
69
75
|
);
|
|
70
76
|
return React.createElement(
|
|
71
77
|
Tooltip,
|
|
72
78
|
{
|
|
73
79
|
tabIndex: 0,
|
|
74
|
-
'aria-label': R.
|
|
80
|
+
'aria-label': R.join(', ', labels),
|
|
75
81
|
'aria-hidden': false,
|
|
76
82
|
title: content,
|
|
77
83
|
placement: 'top'
|
|
@@ -96,10 +102,7 @@ var Flags = function Flags(_ref) {
|
|
|
96
102
|
React.createElement(
|
|
97
103
|
Typography,
|
|
98
104
|
{ variant: 'srOnly' },
|
|
99
|
-
'* ' +
|
|
100
|
-
var label = _ref3.label;
|
|
101
|
-
return label;
|
|
102
|
-
}, flags)
|
|
105
|
+
'* ' + labels
|
|
103
106
|
)
|
|
104
107
|
)
|
|
105
108
|
)
|
|
@@ -109,7 +112,8 @@ var Flags = function Flags(_ref) {
|
|
|
109
112
|
Flags.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
110
113
|
flags: PropTypes.array,
|
|
111
114
|
isHeader: PropTypes.bool,
|
|
112
|
-
HTMLRenderer: PropTypes.func
|
|
115
|
+
HTMLRenderer: PropTypes.func,
|
|
116
|
+
labelAccessor: PropTypes.func
|
|
113
117
|
} : {};
|
|
114
118
|
|
|
115
119
|
export default Flags;
|
package/es/TableHtml5/header.js
CHANGED
|
@@ -8,6 +8,7 @@ import TableCell from '@material-ui/core/TableCell';
|
|
|
8
8
|
import TableRow from '@material-ui/core/TableRow';
|
|
9
9
|
import Flags from './flags';
|
|
10
10
|
import { getIsRtl } from '../utils';
|
|
11
|
+
import { getValue } from './utils';
|
|
11
12
|
|
|
12
13
|
var useStyles = makeStyles(function (theme) {
|
|
13
14
|
return {
|
|
@@ -54,7 +55,8 @@ var Header = function Header(_ref) {
|
|
|
54
55
|
valuesHeaderData = _ref.valuesHeaderData,
|
|
55
56
|
xLayoutDataLength = _ref.xLayoutDataLength,
|
|
56
57
|
subHeadCellsWidth = _ref.subHeadCellsWidth,
|
|
57
|
-
HTMLRenderer = _ref.HTMLRenderer
|
|
58
|
+
HTMLRenderer = _ref.HTMLRenderer,
|
|
59
|
+
labelAccessor = _ref.labelAccessor;
|
|
58
60
|
|
|
59
61
|
var classes = useStyles();
|
|
60
62
|
var theme = useTheme();
|
|
@@ -91,22 +93,23 @@ var Header = function Header(_ref) {
|
|
|
91
93
|
React.createElement(
|
|
92
94
|
Typography,
|
|
93
95
|
{ variant: 'body1', className: classes.cellLabelHeader },
|
|
94
|
-
R.path([0, 'data', index, 'dimension'
|
|
95
|
-
React.createElement(Flags, { HTMLRenderer: HTMLRenderer, flags: flags, isHeader: true })
|
|
96
|
+
R.pipe(R.path([0, 'data', index, 'dimension']), labelAccessor)(headerData),
|
|
97
|
+
React.createElement(Flags, { HTMLRenderer: HTMLRenderer, flags: flags, isHeader: true, labelAccessor: labelAccessor })
|
|
96
98
|
)
|
|
97
99
|
)
|
|
98
100
|
),
|
|
99
101
|
mapIndexed(function (headerItem, idx) {
|
|
100
102
|
var _cx;
|
|
101
103
|
|
|
102
|
-
var
|
|
103
|
-
var
|
|
104
|
+
var value = getValue(labelAccessor)(headerItem);
|
|
105
|
+
var flags = R.propOr([], 'flags', value);
|
|
106
|
+
var hierarchySpace = R.pipe(R.propOr([], 'parents'), R.length, R.times(function () {
|
|
104
107
|
return '·';
|
|
105
|
-
}))(
|
|
108
|
+
}))(value);
|
|
106
109
|
return React.createElement(
|
|
107
110
|
TableCell,
|
|
108
111
|
{
|
|
109
|
-
key: R.prop('id',
|
|
112
|
+
key: R.prop('id', value) + '-' + idx,
|
|
110
113
|
component: 'th',
|
|
111
114
|
className: cx(classes.tableHeadCell, (_cx = {}, _cx[classes.topCell] = R.not(R.isEmpty(flags)), _cx)),
|
|
112
115
|
id: idx + '_' + index,
|
|
@@ -134,8 +137,8 @@ var Header = function Header(_ref) {
|
|
|
134
137
|
},
|
|
135
138
|
variant: 'body1'
|
|
136
139
|
},
|
|
137
|
-
R.prop('label',
|
|
138
|
-
React.createElement(Flags, { HTMLRenderer: HTMLRenderer, flags: flags, isHeader: true })
|
|
140
|
+
R.prop('label', value),
|
|
141
|
+
React.createElement(Flags, { HTMLRenderer: HTMLRenderer, flags: flags, isHeader: true, labelAccessor: labelAccessor })
|
|
139
142
|
)
|
|
140
143
|
)
|
|
141
144
|
);
|
|
@@ -149,7 +152,8 @@ Header.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
149
152
|
valuesHeaderData: PropTypes.array,
|
|
150
153
|
xLayoutDataLength: PropTypes.number,
|
|
151
154
|
subHeadCellsWidth: PropTypes.array,
|
|
152
|
-
HTMLRenderer: PropTypes.func
|
|
155
|
+
HTMLRenderer: PropTypes.func,
|
|
156
|
+
labelAccessor: PropTypes.func
|
|
153
157
|
} : {};
|
|
154
158
|
|
|
155
159
|
export default Header;
|
package/es/TableHtml5/section.js
CHANGED
|
@@ -13,6 +13,7 @@ import { isTimePeriodDimension } from '@sis-cc/dotstatsuite-sdmxjs';
|
|
|
13
13
|
import SectionHeader from './sectionHeader';
|
|
14
14
|
import Cell from './cell';
|
|
15
15
|
import { getLight, getIsRtl } from '../utils';
|
|
16
|
+
import { getValue } from './utils';
|
|
16
17
|
import Flags from './flags';
|
|
17
18
|
|
|
18
19
|
var useStyles = makeStyles(function (theme) {
|
|
@@ -77,7 +78,8 @@ var Section = function Section(_ref) {
|
|
|
77
78
|
nbColumnsByRows = _ref.nbColumnsByRows,
|
|
78
79
|
SideIcon = _ref.SideIcon,
|
|
79
80
|
subHeadCellsWidth = _ref.subHeadCellsWidth,
|
|
80
|
-
HTMLRenderer = _ref.HTMLRenderer
|
|
81
|
+
HTMLRenderer = _ref.HTMLRenderer,
|
|
82
|
+
labelAccessor = _ref.labelAccessor;
|
|
81
83
|
|
|
82
84
|
var classes = useStyles();
|
|
83
85
|
var currentSection = R.path([0, 'key'], section);
|
|
@@ -96,7 +98,8 @@ var Section = function Section(_ref) {
|
|
|
96
98
|
xLayoutDataLength: xLayoutDataLength,
|
|
97
99
|
headerHeight: headerHeight,
|
|
98
100
|
SideIcon: SideIcon,
|
|
99
|
-
HTMLRenderer: HTMLRenderer
|
|
101
|
+
HTMLRenderer: HTMLRenderer,
|
|
102
|
+
labelAccessor: labelAccessor
|
|
100
103
|
}),
|
|
101
104
|
R.addIndex(R.map)(function (sectionbody, rowIndex) {
|
|
102
105
|
var _cx2;
|
|
@@ -111,15 +114,16 @@ var Section = function Section(_ref) {
|
|
|
111
114
|
mapIndexed(function (cell, index) {
|
|
112
115
|
var _cx;
|
|
113
116
|
|
|
114
|
-
var
|
|
117
|
+
var value = getValue(labelAccessor)(cell);
|
|
118
|
+
var flags = R.prop('flags', value);
|
|
115
119
|
var id = rowIndex + '_' + rowId + '_' + index;
|
|
116
120
|
|
|
117
121
|
// special space is used for hierarchy U+2007    
|
|
118
|
-
var hierarchySpace = R.pipe(R.
|
|
122
|
+
var hierarchySpace = R.pipe(R.propOr([], 'parents'), R.when(R.isNil, R.always([])), R.length,
|
|
119
123
|
// eslint-disable-next-line no-irregular-whitespace
|
|
120
124
|
R.times(function () {
|
|
121
125
|
return '· ';
|
|
122
|
-
}))(
|
|
126
|
+
}))(value);
|
|
123
127
|
|
|
124
128
|
return React.createElement(
|
|
125
129
|
TableCell,
|
|
@@ -142,8 +146,8 @@ var Section = function Section(_ref) {
|
|
|
142
146
|
React.createElement(
|
|
143
147
|
Typography,
|
|
144
148
|
{ variant: 'body1', tabIndex: 0 },
|
|
145
|
-
R.
|
|
146
|
-
React.createElement(Flags, { HTMLRenderer: HTMLRenderer, flags: flags })
|
|
149
|
+
R.prop('label', value),
|
|
150
|
+
React.createElement(Flags, { HTMLRenderer: HTMLRenderer, labelAccessor: labelAccessor, flags: flags })
|
|
147
151
|
)
|
|
148
152
|
)
|
|
149
153
|
);
|
|
@@ -158,7 +162,7 @@ var Section = function Section(_ref) {
|
|
|
158
162
|
'div',
|
|
159
163
|
{ className: classes.flagContainer },
|
|
160
164
|
!R.isNil(SideIcon) && React.createElement(SideIcon, { sideProps: R.prop('sideProps', sectionbody) }),
|
|
161
|
-
React.createElement(Flags, { HTMLRenderer: HTMLRenderer, flags: R.prop('flags', sectionbody) })
|
|
165
|
+
React.createElement(Flags, { HTMLRenderer: HTMLRenderer, labelAccessor: labelAccessor, flags: R.prop('flags', sectionbody) })
|
|
162
166
|
)
|
|
163
167
|
),
|
|
164
168
|
mapIndexed(function (item, columnIndex) {
|
|
@@ -174,6 +178,7 @@ var Section = function Section(_ref) {
|
|
|
174
178
|
headers: rowIds + ' ' + columnIds + ' ' + currentSection,
|
|
175
179
|
cellHandler: cellHandler,
|
|
176
180
|
HTMLRenderer: HTMLRenderer,
|
|
181
|
+
labelAccessor: labelAccessor,
|
|
177
182
|
SideIcon: SideIcon,
|
|
178
183
|
isActive: isActive,
|
|
179
184
|
isHighlight: R.any(R.identity)([R.prop(rowId)(activeCellIds), R.prop(columnIndex)(activeCellIds)]),
|
|
@@ -204,7 +209,8 @@ Section.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
204
209
|
maxColumns: PropTypes.number,
|
|
205
210
|
SideIcon: PropTypes.func,
|
|
206
211
|
subHeadCellsWidth: PropTypes.arrayOf(PropTypes.number),
|
|
207
|
-
HTMLRenderer: PropTypes.func
|
|
212
|
+
HTMLRenderer: PropTypes.func,
|
|
213
|
+
labelAccessor: PropTypes.func
|
|
208
214
|
} : {};
|
|
209
215
|
|
|
210
216
|
export default Section;
|
|
@@ -9,6 +9,7 @@ import TableCell from '@material-ui/core/TableCell';
|
|
|
9
9
|
import TableRow from '@material-ui/core/TableRow';
|
|
10
10
|
import Flags from './flags';
|
|
11
11
|
import { getDark, getIsRtl } from '../utils';
|
|
12
|
+
import { getValue } from './utils';
|
|
12
13
|
|
|
13
14
|
var useStyles = makeStyles(function (theme) {
|
|
14
15
|
return {
|
|
@@ -59,7 +60,8 @@ var SectionHeader = function SectionHeader(_ref) {
|
|
|
59
60
|
xLayoutDataLength = _ref.xLayoutDataLength,
|
|
60
61
|
headerHeight = _ref.headerHeight,
|
|
61
62
|
SideIcon = _ref.SideIcon,
|
|
62
|
-
HTMLRenderer = _ref.HTMLRenderer
|
|
63
|
+
HTMLRenderer = _ref.HTMLRenderer,
|
|
64
|
+
labelAccessor = _ref.labelAccessor;
|
|
63
65
|
|
|
64
66
|
var classes = useStyles();
|
|
65
67
|
var theme = useTheme();
|
|
@@ -99,6 +101,7 @@ var SectionHeader = function SectionHeader(_ref) {
|
|
|
99
101
|
className: cx(classes.stickyHeaderSection, classes.leftLabelPosition, classes.sectionLabelsContainer)
|
|
100
102
|
},
|
|
101
103
|
mapIndexed(function (sectionHeader, index) {
|
|
104
|
+
var value = getValue(labelAccessor)(sectionHeader);
|
|
102
105
|
return React.createElement(
|
|
103
106
|
Fragment,
|
|
104
107
|
{ key: index },
|
|
@@ -114,24 +117,29 @@ var SectionHeader = function SectionHeader(_ref) {
|
|
|
114
117
|
'data-testid': 'section-dim',
|
|
115
118
|
'aria-label': R.path(['dimension', 'id'], sectionHeader)
|
|
116
119
|
},
|
|
117
|
-
R.
|
|
120
|
+
R.pipe(R.prop('dimension'), labelAccessor)(sectionHeader),
|
|
118
121
|
':'
|
|
119
122
|
),
|
|
120
123
|
React.createElement(
|
|
121
124
|
Typography,
|
|
122
125
|
{ noWrap: true, variant: 'body1', component: 'span', tabIndex: 0 },
|
|
123
|
-
R.
|
|
126
|
+
R.prop('label', value)
|
|
124
127
|
),
|
|
125
128
|
React.createElement(Flags, {
|
|
126
129
|
HTMLRenderer: HTMLRenderer,
|
|
127
|
-
|
|
130
|
+
labelAccessor: labelAccessor,
|
|
131
|
+
flags: R.prop('flags', value)
|
|
128
132
|
})
|
|
129
133
|
);
|
|
130
134
|
}, R.path([0, 'data'], section)),
|
|
131
135
|
React.createElement(
|
|
132
136
|
'span',
|
|
133
137
|
null,
|
|
134
|
-
React.createElement(Flags, {
|
|
138
|
+
React.createElement(Flags, {
|
|
139
|
+
HTMLRenderer: HTMLRenderer,
|
|
140
|
+
flags: R.path([0, 'flags'], section),
|
|
141
|
+
labelAccessor: labelAccessor
|
|
142
|
+
})
|
|
135
143
|
)
|
|
136
144
|
)
|
|
137
145
|
)
|
|
@@ -153,7 +161,8 @@ SectionHeader.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
153
161
|
xLayoutDataLength: PropTypes.number,
|
|
154
162
|
headerHeight: PropTypes.number,
|
|
155
163
|
SideIcon: PropTypes.func,
|
|
156
|
-
HTMLRenderer: PropTypes.func
|
|
164
|
+
HTMLRenderer: PropTypes.func,
|
|
165
|
+
labelAccessor: PropTypes.func
|
|
157
166
|
} : {};
|
|
158
167
|
|
|
159
168
|
export default SectionHeader;
|
|
@@ -52,7 +52,8 @@ var SubHeader = React.forwardRef(function (_ref, refs) {
|
|
|
52
52
|
activeCellIds = _ref.activeCellIds,
|
|
53
53
|
subHeadCellsWidth = _ref.subHeadCellsWidth,
|
|
54
54
|
SideIcon = _ref.SideIcon,
|
|
55
|
-
HTMLRenderer = _ref.HTMLRenderer
|
|
55
|
+
HTMLRenderer = _ref.HTMLRenderer,
|
|
56
|
+
labelAccessor = _ref.labelAccessor;
|
|
56
57
|
|
|
57
58
|
var classes = useStyles();
|
|
58
59
|
var theme = useTheme();
|
|
@@ -83,8 +84,9 @@ var SubHeader = React.forwardRef(function (_ref, refs) {
|
|
|
83
84
|
React.createElement(
|
|
84
85
|
Typography,
|
|
85
86
|
{ variant: 'body1', tabIndex: 0, className: classes.label },
|
|
86
|
-
R.
|
|
87
|
+
R.pipe(R.prop('dimension'), labelAccessor)(rowItem),
|
|
87
88
|
React.createElement(Flags, {
|
|
89
|
+
labelAccessor: labelAccessor,
|
|
88
90
|
HTMLRenderer: HTMLRenderer,
|
|
89
91
|
flags: R.path(['dimension', 'flags'], rowItem)
|
|
90
92
|
})
|
|
@@ -106,7 +108,7 @@ var SubHeader = React.forwardRef(function (_ref, refs) {
|
|
|
106
108
|
className: cx(classes.fillerCell, (_cx = {}, _cx[classes.highlight] = R.prop(index)(activeCellIds), _cx))
|
|
107
109
|
},
|
|
108
110
|
!R.isNil(SideIcon) && React.createElement(SideIcon, { sideProps: R.prop('sideProps', item) }),
|
|
109
|
-
React.createElement(Flags, { flags: R.prop('flags', item) })
|
|
111
|
+
React.createElement(Flags, { flags: R.prop('flags', item), labelAccessor: labelAccessor, HTMLRenderer: HTMLRenderer })
|
|
110
112
|
);
|
|
111
113
|
}, headerData)
|
|
112
114
|
);
|
|
@@ -118,7 +120,8 @@ SubHeader.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
118
120
|
xLayoutData: PropTypes.array,
|
|
119
121
|
SideIcon: PropTypes.func,
|
|
120
122
|
subHeadCellsWidth: PropTypes.arrayOf(PropTypes.number),
|
|
121
|
-
HTMLRenderer: PropTypes.func
|
|
123
|
+
HTMLRenderer: PropTypes.func,
|
|
124
|
+
labelAccessor: PropTypes.func
|
|
122
125
|
} : {};
|
|
123
126
|
|
|
124
127
|
export default SubHeader;
|
|
@@ -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
|
+
};
|
|
@@ -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
|
-
|
|
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)({
|
|
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) &&
|
|
228
|
-
|
|
229
|
-
{ className: classes.
|
|
230
|
-
|
|
231
|
-
|
|
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
|
-
|
|
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]),
|
|
@@ -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.
|
|
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;
|
package/lib/TableHtml5/cell.js
CHANGED
|
@@ -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;
|
package/lib/TableHtml5/flags.js
CHANGED
|
@@ -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 (
|
|
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
|
-
},
|
|
102
|
+
}, labels)
|
|
96
103
|
);
|
|
97
104
|
return _react2.default.createElement(
|
|
98
105
|
_Tooltip2.default,
|
|
99
106
|
{
|
|
100
107
|
tabIndex: 0,
|
|
101
|
-
'aria-label': R.
|
|
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
|
-
'* ' +
|
|
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;
|
package/lib/TableHtml5/header.js
CHANGED
|
@@ -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'
|
|
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
|
|
136
|
-
var
|
|
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
|
-
}))(
|
|
142
|
+
}))(value);
|
|
139
143
|
return _react2.default.createElement(
|
|
140
144
|
_TableCell2.default,
|
|
141
145
|
{
|
|
142
|
-
key: R.prop('id',
|
|
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',
|
|
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
|
|
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    
|
|
161
|
-
var hierarchySpace = R.pipe(R.
|
|
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
|
-
}))(
|
|
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.
|
|
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.
|
|
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.
|
|
163
|
+
R.prop('label', value)
|
|
160
164
|
),
|
|
161
165
|
_react2.default.createElement(_flags2.default, {
|
|
162
166
|
HTMLRenderer: HTMLRenderer,
|
|
163
|
-
|
|
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, {
|
|
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;
|
|
@@ -85,7 +85,8 @@ var SubHeader = _react2.default.forwardRef(function (_ref, refs) {
|
|
|
85
85
|
activeCellIds = _ref.activeCellIds,
|
|
86
86
|
subHeadCellsWidth = _ref.subHeadCellsWidth,
|
|
87
87
|
SideIcon = _ref.SideIcon,
|
|
88
|
-
HTMLRenderer = _ref.HTMLRenderer
|
|
88
|
+
HTMLRenderer = _ref.HTMLRenderer,
|
|
89
|
+
labelAccessor = _ref.labelAccessor;
|
|
89
90
|
|
|
90
91
|
var classes = useStyles();
|
|
91
92
|
var theme = (0, _styles.useTheme)();
|
|
@@ -116,8 +117,9 @@ var SubHeader = _react2.default.forwardRef(function (_ref, refs) {
|
|
|
116
117
|
_react2.default.createElement(
|
|
117
118
|
_Typography2.default,
|
|
118
119
|
{ variant: 'body1', tabIndex: 0, className: classes.label },
|
|
119
|
-
R.
|
|
120
|
+
R.pipe(R.prop('dimension'), labelAccessor)(rowItem),
|
|
120
121
|
_react2.default.createElement(_flags2.default, {
|
|
122
|
+
labelAccessor: labelAccessor,
|
|
121
123
|
HTMLRenderer: HTMLRenderer,
|
|
122
124
|
flags: R.path(['dimension', 'flags'], rowItem)
|
|
123
125
|
})
|
|
@@ -139,7 +141,7 @@ var SubHeader = _react2.default.forwardRef(function (_ref, refs) {
|
|
|
139
141
|
className: (0, _classnames2.default)(classes.fillerCell, (_cx = {}, _cx[classes.highlight] = R.prop(index)(activeCellIds), _cx))
|
|
140
142
|
},
|
|
141
143
|
!R.isNil(SideIcon) && _react2.default.createElement(SideIcon, { sideProps: R.prop('sideProps', item) }),
|
|
142
|
-
_react2.default.createElement(_flags2.default, { flags: R.prop('flags', item) })
|
|
144
|
+
_react2.default.createElement(_flags2.default, { flags: R.prop('flags', item), labelAccessor: labelAccessor, HTMLRenderer: HTMLRenderer })
|
|
143
145
|
);
|
|
144
146
|
}, headerData)
|
|
145
147
|
);
|
|
@@ -151,7 +153,8 @@ SubHeader.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
151
153
|
xLayoutData: _propTypes2.default.array,
|
|
152
154
|
SideIcon: _propTypes2.default.func,
|
|
153
155
|
subHeadCellsWidth: _propTypes2.default.arrayOf(_propTypes2.default.number),
|
|
154
|
-
HTMLRenderer: _propTypes2.default.func
|
|
156
|
+
HTMLRenderer: _propTypes2.default.func,
|
|
157
|
+
labelAccessor: _propTypes2.default.func
|
|
155
158
|
} : {};
|
|
156
159
|
|
|
157
160
|
exports.default = SubHeader;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.getValue = undefined;
|
|
5
|
+
|
|
6
|
+
var _ramda = require('ramda');
|
|
7
|
+
|
|
8
|
+
var R = _interopRequireWildcard(_ramda);
|
|
9
|
+
|
|
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
|
+
|
|
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
|
+
var getValue = exports.getValue = function getValue(labelAccessor) {
|
|
19
|
+
return function (item) {
|
|
20
|
+
return R.has('values', item) ? R.reduce(function (acc, val) {
|
|
21
|
+
return {
|
|
22
|
+
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
|
+
flags: R.concat(acc.flags, val.flags || []),
|
|
25
|
+
parents: R.concat(acc.parents, val.parents || [])
|
|
26
|
+
};
|
|
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);
|
|
29
|
+
})(item);
|
|
30
|
+
};
|
|
31
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sis-cc/dotstatsuite-visions",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.0.1",
|
|
4
4
|
"description": "Library of visual components",
|
|
5
5
|
"author": "OECD",
|
|
6
6
|
"homepage": "https://visions-qa.siscc.org/#o",
|
|
@@ -44,7 +44,6 @@
|
|
|
44
44
|
"react-beautiful-dnd": "^13.0.0",
|
|
45
45
|
"react-dom": "^16.8.6",
|
|
46
46
|
"react-draggable": "^4.4.5",
|
|
47
|
-
"react-router-dom": "^5.0.1",
|
|
48
47
|
"react-virtualized": "^9.21.2",
|
|
49
48
|
"recompose": "^0.30.0"
|
|
50
49
|
},
|