@sis-cc/dotstatsuite-components 17.4.0 → 17.5.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.
- package/lib/rules2/src/combinedValuesDisplay.js +68 -0
- package/lib/rules2/src/getHeaderCombinations.js +7 -14
- package/lib/rules2/src/table/getTableLabelAccessor.js +3 -40
- package/package.json +1 -1
- package/src/rules2/src/combinedValuesDisplay.js +66 -0
- package/src/rules2/src/getHeaderCombinations.js +7 -18
- package/src/rules2/src/table/getTableLabelAccessor.js +5 -49
- package/test/getHeaderCombinations.test.js +35 -0
- package/test/getTableLabelAccessor.test.js +25 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.combinedValuesDisplay = exports.singleValueDisplay = undefined;
|
|
7
|
+
|
|
8
|
+
var _ramda = require('ramda');
|
|
9
|
+
|
|
10
|
+
var R = _interopRequireWildcard(_ramda);
|
|
11
|
+
|
|
12
|
+
var _src = require('../../rules/src');
|
|
13
|
+
|
|
14
|
+
var _constants = require('./constants');
|
|
15
|
+
|
|
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
|
+
|
|
18
|
+
var getRefinedMissinParentsLabels = R.pipe(R.propOr([], 'missingParents'), R.reduce(function (acc, par) {
|
|
19
|
+
if (!R.propOr(true, 'display', par) || R.includes(par.id, _constants.REJECTED_VALUE_IDS)) {
|
|
20
|
+
return acc;
|
|
21
|
+
}
|
|
22
|
+
return R.append((0, _src.dimensionValueDisplay)('label')(par), acc);
|
|
23
|
+
}, []));
|
|
24
|
+
|
|
25
|
+
var singleValueDisplay = exports.singleValueDisplay = function singleValueDisplay(display, value) {
|
|
26
|
+
if (display === 'label') {
|
|
27
|
+
return R.converge(function (missingParents, label) {
|
|
28
|
+
return R.isEmpty(missingParents) ? label : R.join(' > ', R.append(label, missingParents));
|
|
29
|
+
}, [getRefinedMissinParentsLabels, (0, _src.dimensionValueDisplay)(display)])(value);
|
|
30
|
+
} else if (display === 'both') {
|
|
31
|
+
return '(' + singleValueDisplay('code', value) + ') ' + singleValueDisplay('label', value);
|
|
32
|
+
}
|
|
33
|
+
return (0, _src.dimensionValueDisplay)(display)(value);
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
var _combinedValuesDisplay = function _combinedValuesDisplay(_display) {
|
|
37
|
+
return function (values) {
|
|
38
|
+
return R.pipe(R.reduce(function (acc, val) {
|
|
39
|
+
if ((!R.propOr(true, 'display', val) || R.includes(val.id, _constants.REJECTED_VALUE_IDS)) && _display === 'label') {
|
|
40
|
+
return acc;
|
|
41
|
+
}
|
|
42
|
+
return R.append(singleValueDisplay(_display, val), acc);
|
|
43
|
+
}, []), function (labels) {
|
|
44
|
+
if (!R.isEmpty(labels) || _display !== 'label') {
|
|
45
|
+
return R.join(', ', labels);
|
|
46
|
+
}
|
|
47
|
+
var totalValue = R.find(R.propEq('id', '_T'), values);
|
|
48
|
+
if (!R.isNil(totalValue)) {
|
|
49
|
+
return (0, _src.dimensionValueDisplay)('label')(totalValue);
|
|
50
|
+
}
|
|
51
|
+
if (R.isEmpty(values)) {
|
|
52
|
+
return '';
|
|
53
|
+
}
|
|
54
|
+
var firstValue = R.head(values);
|
|
55
|
+
return (0, _src.dimensionValueDisplay)('label')(firstValue);
|
|
56
|
+
})(values);
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
var combinedValuesDisplay = exports.combinedValuesDisplay = function combinedValuesDisplay(display, values) {
|
|
61
|
+
if (display === 'both') {
|
|
62
|
+
return R.converge(function (_ids, labels) {
|
|
63
|
+
var ids = R.isEmpty(_ids) ? _ids : '(' + _ids + ')';
|
|
64
|
+
return R.isEmpty(ids) ? labels : ids + ' ' + labels;
|
|
65
|
+
}, [_combinedValuesDisplay('code'), _combinedValuesDisplay('label')])(values);
|
|
66
|
+
}
|
|
67
|
+
return _combinedValuesDisplay(display)(values);
|
|
68
|
+
};
|
|
@@ -11,6 +11,8 @@ var R = _interopRequireWildcard(_ramda);
|
|
|
11
11
|
|
|
12
12
|
var _src = require('../../rules/src');
|
|
13
13
|
|
|
14
|
+
var _combinedValuesDisplay = require('./combinedValuesDisplay');
|
|
15
|
+
|
|
14
16
|
var _constants = require('./constants');
|
|
15
17
|
|
|
16
18
|
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; } }
|
|
@@ -25,30 +27,21 @@ var getHeaderCombinations = exports.getHeaderCombinations = function getHeaderCo
|
|
|
25
27
|
|
|
26
28
|
var header = (0, _src.dimensionValueDisplay)(display)(comb) + ':';
|
|
27
29
|
|
|
28
|
-
var combinedDisplay = function combinedDisplay(_display, values) {
|
|
29
|
-
if (_display === 'label') {
|
|
30
|
-
return R.pipe(R.filter(function (val) {
|
|
31
|
-
return R.propOr(true, 'display', val) && !R.includes(val.id, _constants.REJECTED_VALUE_IDS);
|
|
32
|
-
}), R.map((0, _src.dimensionValueDisplay)(_display)), R.join(', '))(values);
|
|
33
|
-
}
|
|
34
|
-
return R.pipe(R.map((0, _src.dimensionValueDisplay)(_display)), R.join(', '))(values);
|
|
35
|
-
};
|
|
36
|
-
|
|
37
30
|
var label = R.pipe(R.reduce(function (_acc, concept) {
|
|
38
31
|
var artefact = R.has(concept, indexedDimensions) ? R.prop(concept, indexedDimensions) : R.prop(concept, indexedAttributes);
|
|
39
|
-
if (R.isNil(artefact)
|
|
32
|
+
if (R.isNil(artefact)) {
|
|
40
33
|
return _acc;
|
|
41
34
|
}
|
|
42
35
|
var value = R.path(['values', 0], artefact);
|
|
43
36
|
if (R.isNil(value)) {
|
|
44
37
|
return _acc;
|
|
45
38
|
}
|
|
39
|
+
if (R.has(concept, indexedAttributes) && (!R.propOr(true, 'display', value) || !R.propOr(true, 'artefact', value) || R.includes(value.id, _constants.REJECTED_VALUE_IDS))) {
|
|
40
|
+
return _acc;
|
|
41
|
+
}
|
|
46
42
|
return R.append(value, _acc);
|
|
47
43
|
}, []), function (values) {
|
|
48
|
-
|
|
49
|
-
return '(' + combinedDisplay('code', values) + ') ' + combinedDisplay('label', values);
|
|
50
|
-
}
|
|
51
|
-
return combinedDisplay(display, values);
|
|
44
|
+
return (0, _combinedValuesDisplay.combinedValuesDisplay)(display, values);
|
|
52
45
|
})(comb.concepts || []);
|
|
53
46
|
if (R.isEmpty(label)) {
|
|
54
47
|
return acc;
|
|
@@ -9,49 +9,12 @@ var _ramda = require('ramda');
|
|
|
9
9
|
|
|
10
10
|
var R = _interopRequireWildcard(_ramda);
|
|
11
11
|
|
|
12
|
-
var
|
|
13
|
-
|
|
14
|
-
var _constants = require('../constants');
|
|
12
|
+
var _combinedValuesDisplay = require('../combinedValuesDisplay');
|
|
15
13
|
|
|
16
14
|
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
15
|
|
|
18
|
-
var getRefinedMissinParentsLabels = R.pipe(R.propOr([], 'missingParents'), R.reduce(function (acc, par) {
|
|
19
|
-
if (!R.propOr(true, 'display', par) || R.includes(par.id, _constants.REJECTED_VALUE_IDS)) {
|
|
20
|
-
return acc;
|
|
21
|
-
}
|
|
22
|
-
return R.append((0, _src.dimensionValueDisplay)('label')(par), acc);
|
|
23
|
-
}, []));
|
|
24
|
-
|
|
25
|
-
var granularDisplay = function granularDisplay(display, value) {
|
|
26
|
-
if (display === 'label') {
|
|
27
|
-
return R.converge(function (missingParents, label) {
|
|
28
|
-
return R.isEmpty(missingParents) ? label : R.join(' > ', R.append(label, missingParents));
|
|
29
|
-
}, [getRefinedMissinParentsLabels, (0, _src.dimensionValueDisplay)(display)])(value);
|
|
30
|
-
} else if (display === 'both') {
|
|
31
|
-
return '(' + granularDisplay('code', value) + ') ' + granularDisplay('label', value);
|
|
32
|
-
}
|
|
33
|
-
return (0, _src.dimensionValueDisplay)(display)(value);
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
var combinedDisplay = function combinedDisplay(_display) {
|
|
37
|
-
return R.pipe(R.reduce(function (acc, val) {
|
|
38
|
-
if ((!R.propOr(true, 'display', val) || R.includes(val.id, _constants.REJECTED_VALUE_IDS)) && _display === 'label') {
|
|
39
|
-
return acc;
|
|
40
|
-
}
|
|
41
|
-
return R.append(granularDisplay(_display, val), acc);
|
|
42
|
-
}, []), R.join(', '));
|
|
43
|
-
};
|
|
44
|
-
|
|
45
16
|
var getTableLabelAccessor = exports.getTableLabelAccessor = function getTableLabelAccessor(display) {
|
|
46
|
-
return function (
|
|
47
|
-
|
|
48
|
-
return granularDisplay(display, item);
|
|
49
|
-
}
|
|
50
|
-
if (display === 'both') {
|
|
51
|
-
return R.converge(function (ids, labels) {
|
|
52
|
-
return '(' + ids + ') ' + labels;
|
|
53
|
-
}, [combinedDisplay('code'), combinedDisplay('label')])(item);
|
|
54
|
-
}
|
|
55
|
-
return combinedDisplay(display)(item);
|
|
17
|
+
return function (content) {
|
|
18
|
+
return R.is(Array, content) ? (0, _combinedValuesDisplay.combinedValuesDisplay)(display, content) : (0, _combinedValuesDisplay.singleValueDisplay)(display, content);
|
|
56
19
|
};
|
|
57
20
|
};
|
package/package.json
CHANGED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import * as R from 'ramda';
|
|
2
|
+
import { dimensionValueDisplay } from '../../rules/src';
|
|
3
|
+
import { REJECTED_VALUE_IDS } from './constants';
|
|
4
|
+
|
|
5
|
+
const getRefinedMissinParentsLabels = R.pipe(
|
|
6
|
+
R.propOr([], 'missingParents'),
|
|
7
|
+
R.reduce((acc, par) => {
|
|
8
|
+
if (!R.propOr(true, 'display', par) || R.includes(par.id, REJECTED_VALUE_IDS)) {
|
|
9
|
+
return acc;
|
|
10
|
+
}
|
|
11
|
+
return R.append(dimensionValueDisplay('label')(par), acc);
|
|
12
|
+
}, []),
|
|
13
|
+
);
|
|
14
|
+
|
|
15
|
+
export const singleValueDisplay = (display, value) => {
|
|
16
|
+
if (display === 'label') {
|
|
17
|
+
return R.converge(
|
|
18
|
+
(missingParents, label) =>
|
|
19
|
+
R.isEmpty(missingParents) ? label : R.join(' > ', R.append(label, missingParents)),
|
|
20
|
+
[
|
|
21
|
+
getRefinedMissinParentsLabels,
|
|
22
|
+
dimensionValueDisplay(display),
|
|
23
|
+
],
|
|
24
|
+
)(value);
|
|
25
|
+
} else if (display === 'both') {
|
|
26
|
+
return `(${singleValueDisplay('code', value)}) ${singleValueDisplay('label', value)}`;
|
|
27
|
+
}
|
|
28
|
+
return dimensionValueDisplay(display)(value);
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
const _combinedValuesDisplay = _display => values => R.pipe(
|
|
32
|
+
R.reduce((acc, val) => {
|
|
33
|
+
if ((!R.propOr(true, 'display', val) || R.includes(val.id, REJECTED_VALUE_IDS))
|
|
34
|
+
&& _display === 'label') {
|
|
35
|
+
return acc;
|
|
36
|
+
}
|
|
37
|
+
return R.append(singleValueDisplay(_display, val), acc);
|
|
38
|
+
}, []),
|
|
39
|
+
labels => {
|
|
40
|
+
if (!R.isEmpty(labels) || _display !== 'label') {
|
|
41
|
+
return R.join(', ', labels);
|
|
42
|
+
}
|
|
43
|
+
const totalValue = R.find(R.propEq('id', '_T'), values);
|
|
44
|
+
if (!R.isNil(totalValue)) {
|
|
45
|
+
return dimensionValueDisplay('label')(totalValue);
|
|
46
|
+
}
|
|
47
|
+
if (R.isEmpty(values)) {
|
|
48
|
+
return '';
|
|
49
|
+
}
|
|
50
|
+
const firstValue = R.head(values);
|
|
51
|
+
return dimensionValueDisplay('label')(firstValue);
|
|
52
|
+
},
|
|
53
|
+
)(values);
|
|
54
|
+
|
|
55
|
+
export const combinedValuesDisplay = (display, values) => {
|
|
56
|
+
if (display === 'both') {
|
|
57
|
+
return R.converge((_ids, labels) => {
|
|
58
|
+
const ids = R.isEmpty(_ids) ? _ids : `(${_ids})`;
|
|
59
|
+
return R.isEmpty(ids) ? labels : `${ids} ${labels}`;
|
|
60
|
+
}, [
|
|
61
|
+
_combinedValuesDisplay('code'),
|
|
62
|
+
_combinedValuesDisplay('label'),
|
|
63
|
+
])(values);
|
|
64
|
+
}
|
|
65
|
+
return _combinedValuesDisplay(display)(values);
|
|
66
|
+
};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as R from 'ramda';
|
|
2
2
|
import { dimensionValueDisplay } from '../../rules/src';
|
|
3
|
+
import { combinedValuesDisplay } from './combinedValuesDisplay';
|
|
3
4
|
import { REJECTED_VALUE_IDS } from './constants';
|
|
4
5
|
|
|
5
6
|
export const getHeaderCombinations = (combinations, dimensions, attributes, display) => {
|
|
@@ -13,40 +14,28 @@ export const getHeaderCombinations = (combinations, dimensions, attributes, disp
|
|
|
13
14
|
|
|
14
15
|
const header = `${dimensionValueDisplay(display)(comb)}:`;
|
|
15
16
|
|
|
16
|
-
const combinedDisplay = (_display, values) => {
|
|
17
|
-
if (_display === 'label') {
|
|
18
|
-
return R.pipe(
|
|
19
|
-
R.filter(val => R.propOr(true, 'display', val) && !R.includes(val.id, REJECTED_VALUE_IDS)),
|
|
20
|
-
R.map(dimensionValueDisplay(_display)),
|
|
21
|
-
R.join(', ')
|
|
22
|
-
)(values);
|
|
23
|
-
}
|
|
24
|
-
return R.pipe(R.map(dimensionValueDisplay(_display)), R.join(', '))(values);
|
|
25
|
-
};
|
|
26
|
-
|
|
27
17
|
const label = R.pipe(
|
|
28
18
|
R.reduce(
|
|
29
19
|
(_acc, concept) => {
|
|
30
20
|
const artefact = R.has(concept, indexedDimensions)
|
|
31
21
|
? R.prop(concept, indexedDimensions)
|
|
32
22
|
: R.prop(concept, indexedAttributes);
|
|
33
|
-
if (R.isNil(artefact)
|
|
23
|
+
if (R.isNil(artefact)) {
|
|
34
24
|
return _acc;
|
|
35
25
|
}
|
|
36
26
|
const value = R.path(['values', 0], artefact);
|
|
37
27
|
if (R.isNil(value)) {
|
|
38
28
|
return _acc;
|
|
39
29
|
}
|
|
30
|
+
if (R.has(concept, indexedAttributes) && (!R.propOr(true, 'display', value)
|
|
31
|
+
|| !R.propOr(true, 'artefact', value) || R.includes(value.id, REJECTED_VALUE_IDS))) {
|
|
32
|
+
return _acc;
|
|
33
|
+
}
|
|
40
34
|
return R.append(value, _acc);
|
|
41
35
|
},
|
|
42
36
|
[]
|
|
43
37
|
),
|
|
44
|
-
values =>
|
|
45
|
-
if (display === 'both') {
|
|
46
|
-
return `(${combinedDisplay('code', values)}) ${combinedDisplay('label', values)}`
|
|
47
|
-
}
|
|
48
|
-
return combinedDisplay(display, values);
|
|
49
|
-
}
|
|
38
|
+
values => combinedValuesDisplay(display, values)
|
|
50
39
|
)(comb.concepts || []);
|
|
51
40
|
if (R.isEmpty(label)) {
|
|
52
41
|
return acc;
|
|
@@ -1,53 +1,9 @@
|
|
|
1
1
|
import * as R from 'ramda';
|
|
2
|
-
import {
|
|
3
|
-
import { REJECTED_VALUE_IDS } from '../constants';
|
|
2
|
+
import { combinedValuesDisplay, singleValueDisplay } from '../combinedValuesDisplay'
|
|
4
3
|
|
|
5
|
-
const getRefinedMissinParentsLabels = R.pipe(
|
|
6
|
-
R.propOr([], 'missingParents'),
|
|
7
|
-
R.reduce((acc, par) => {
|
|
8
|
-
if (!R.propOr(true, 'display', par) || R.includes(par.id, REJECTED_VALUE_IDS)) {
|
|
9
|
-
return acc;
|
|
10
|
-
}
|
|
11
|
-
return R.append(dimensionValueDisplay('label')(par), acc);
|
|
12
|
-
}, []),
|
|
13
|
-
);
|
|
14
4
|
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
R.isEmpty(missingParents) ? label : R.join(' > ', R.append(label, missingParents)),
|
|
20
|
-
[
|
|
21
|
-
getRefinedMissinParentsLabels,
|
|
22
|
-
dimensionValueDisplay(display),
|
|
23
|
-
],
|
|
24
|
-
)(value);
|
|
25
|
-
} else if (display === 'both') {
|
|
26
|
-
return `(${granularDisplay('code', value)}) ${granularDisplay('label', value)}`;
|
|
27
|
-
}
|
|
28
|
-
return dimensionValueDisplay(display)(value);
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
const combinedDisplay = _display => R.pipe(
|
|
32
|
-
R.reduce((acc, val) => {
|
|
33
|
-
if ((!R.propOr(true, 'display', val) || R.includes(val.id, REJECTED_VALUE_IDS))
|
|
34
|
-
&& _display === 'label') {
|
|
35
|
-
return acc;
|
|
36
|
-
}
|
|
37
|
-
return R.append(granularDisplay(_display, val), acc);
|
|
38
|
-
}, []),
|
|
39
|
-
R.join(', '),
|
|
40
|
-
);
|
|
41
|
-
|
|
42
|
-
export const getTableLabelAccessor = display => item => {
|
|
43
|
-
if (!R.is(Array, item)) {
|
|
44
|
-
return granularDisplay(display, item);
|
|
45
|
-
}
|
|
46
|
-
if (display === 'both') {
|
|
47
|
-
return R.converge((ids, labels) => `(${ids}) ${labels}`, [
|
|
48
|
-
combinedDisplay('code'),
|
|
49
|
-
combinedDisplay('label'),
|
|
50
|
-
])(item);
|
|
51
|
-
}
|
|
52
|
-
return combinedDisplay(display)(item);
|
|
5
|
+
export const getTableLabelAccessor = display => content => {
|
|
6
|
+
return R.is(Array, content)
|
|
7
|
+
? combinedValuesDisplay(display, content)
|
|
8
|
+
: singleValueDisplay(display, content);
|
|
53
9
|
};
|
|
@@ -24,4 +24,39 @@ describe('getHeaderCombinations tests', () => {
|
|
|
24
24
|
{ header: 'comb 1:', label: 'dim 1 value' }
|
|
25
25
|
]);
|
|
26
26
|
});
|
|
27
|
+
it('not display usecases', () => {
|
|
28
|
+
const dimensions = [
|
|
29
|
+
{ id: 'd0', values: [{ id: 'd0v', name: 'd0 value', display: false }] },
|
|
30
|
+
{ id: 'd1', values: [{ id: '_T', name: 'Total' }] },
|
|
31
|
+
{ id: 'd2', values: [{ id: 'd2v', name: 'd2 value', display: false }] },
|
|
32
|
+
];
|
|
33
|
+
|
|
34
|
+
const attributes = [
|
|
35
|
+
{ id: 'a0', values: [{ id: 'a0v', name: 'a0 value', display: false }] },
|
|
36
|
+
{ id: 'a1', values: [{ id: 'a1v', name: 'a1 value', display: false }] },
|
|
37
|
+
{ id: 'a2', values: [{ id: '_T', name: 'Total' }] },
|
|
38
|
+
];
|
|
39
|
+
|
|
40
|
+
const combinations = [
|
|
41
|
+
{ id: 'comb0', name: 'combination 0', header: true, concepts: ['a0', 'a1', 'd0'] },
|
|
42
|
+
{ id: 'comb1', name: 'combination 1', header: true, concepts: ['d0', 'd2', 'a3'] },
|
|
43
|
+
{ id: 'comb2', name: 'combination 2', header: true, concepts: ['d0', 'd1', 'd2'] },
|
|
44
|
+
{ id: 'comb3', name: 'combination 3', header: true, concepts: ['a0', 'a1', 'a2'] },
|
|
45
|
+
];
|
|
46
|
+
expect(getHeaderCombinations(combinations, dimensions, attributes, 'label')).to.deep.equal([
|
|
47
|
+
{ header: 'combination 0:', label: 'd0 value' },
|
|
48
|
+
{ header: 'combination 1:', label: 'd0 value' },
|
|
49
|
+
{ header: 'combination 2:', label: 'Total' },
|
|
50
|
+
]);
|
|
51
|
+
expect(getHeaderCombinations(combinations, dimensions, attributes, 'code')).to.deep.equal([
|
|
52
|
+
{ header: 'comb0:', label: 'd0v' },
|
|
53
|
+
{ header: 'comb1:', label: 'd0v, d2v' },
|
|
54
|
+
{ header: 'comb2:', label: 'd0v, _T, d2v' },
|
|
55
|
+
]);
|
|
56
|
+
expect(getHeaderCombinations(combinations, dimensions, attributes, 'both')).to.deep.equal([
|
|
57
|
+
{ header: '(comb0) combination 0:', label: '(d0v) d0 value' },
|
|
58
|
+
{ header: '(comb1) combination 1:', label: '(d0v, d2v) d0 value' },
|
|
59
|
+
{ header: '(comb2) combination 2:', label: '(d0v, _T, d2v) Total' },
|
|
60
|
+
]);
|
|
61
|
+
})
|
|
27
62
|
});
|
|
@@ -22,4 +22,29 @@ describe('getTableLabelAccessor tests', () => {
|
|
|
22
22
|
it('not displayed single value', () => {
|
|
23
23
|
expect(getTableLabelAccessor('both')(values[0])).to.deep.equal('(V0) Value 0');
|
|
24
24
|
});
|
|
25
|
+
it('display _T label if all hidden', () => {
|
|
26
|
+
const _values = [
|
|
27
|
+
{ id: 'v0', name: 'value 0', display: false },
|
|
28
|
+
{ id: 'v1', name: 'value 1', display: false },
|
|
29
|
+
{ id: '_T', name: 'Total' },
|
|
30
|
+
{ id: 'v3', name: 'value 3', display: false },
|
|
31
|
+
];
|
|
32
|
+
expect(getTableLabelAccessor('label')(_values)).to.deep.equal('Total');
|
|
33
|
+
expect(getTableLabelAccessor('both')(_values)).to.deep.equal('(v0, v1, _T, v3) Total');
|
|
34
|
+
});
|
|
35
|
+
it('display label first value if all hidden and no _T', () => {
|
|
36
|
+
const _values = [
|
|
37
|
+
{ id: 'v0', name: 'value 0', display: false },
|
|
38
|
+
{ id: 'v1', name: 'value 1', display: false },
|
|
39
|
+
{ id: 'v2', name: 'value 2', display: false },
|
|
40
|
+
{ id: 'v3', name: 'value 3', display: false },
|
|
41
|
+
];
|
|
42
|
+
expect(getTableLabelAccessor('label')(_values)).to.deep.equal('value 0');
|
|
43
|
+
expect(getTableLabelAccessor('both')(_values)).to.deep.equal('(v0, v1, v2, v3) value 0');
|
|
44
|
+
});
|
|
45
|
+
it('empty case', () => {
|
|
46
|
+
expect(getTableLabelAccessor('label')([])).to.deep.equal('');
|
|
47
|
+
expect(getTableLabelAccessor('code')([])).to.deep.equal('');
|
|
48
|
+
expect(getTableLabelAccessor('both')([])).to.deep.equal('');
|
|
49
|
+
});
|
|
25
50
|
});
|