@sis-cc/dotstatsuite-components 15.0.16 → 15.0.18
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/rules/src/preparators/formatValue.js +14 -10
- package/lib/rules/src/table/factories/getTableData.js +1 -3
- package/lib/rules2/src/refineMetadataCoordinates.js +3 -2
- package/package.json +1 -1
- package/src/rules/src/preparators/formatValue.js +18 -8
- package/src/rules/src/table/factories/getTableData.js +1 -5
- package/src/rules2/src/refineMetadataCoordinates.js +3 -2
- package/test/enhanceObservations.test.js +24 -0
- package/test/refineMetadataCoordinates.test.js +86 -0
|
@@ -18,20 +18,24 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
18
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; } }
|
|
19
19
|
|
|
20
20
|
var isValidNumber = R.both(R.is(Number), R.complement(R.equals(NaN)));
|
|
21
|
+
var parseValidNumber = R.pipe(function (v) {
|
|
22
|
+
return R.isNil(v) ? null : Number(v);
|
|
23
|
+
}, function (v) {
|
|
24
|
+
return isNaN(v) ? null : v;
|
|
25
|
+
});
|
|
21
26
|
|
|
22
27
|
var getFormatAttributesValues = function getFormatAttributesValues(observation, formatAttributesIndexes, attributes) {
|
|
23
28
|
return R.mapObjIndexed(function (attributeIndex) {
|
|
24
|
-
var valueIndex =
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
+
var valueIndex = void 0;
|
|
30
|
+
var relationship = R.pipe(R.nth(attributeIndex), R.propOr({}, 'relationship'))(attributes);
|
|
31
|
+
//if (!R.isNil(attributeIndex) && attributeIndex >= R.length(R.propOr([], 'attrValuesIndexes', observation))) {
|
|
32
|
+
if (R.has('none', relationship) || R.has('dataflow', relationship)) {
|
|
33
|
+
valueIndex = 0;
|
|
34
|
+
} else {
|
|
35
|
+
valueIndex = R.pipe(R.propOr([], 'attrValuesIndexes'), R.nth(attributeIndex), parseValidNumber)(observation);
|
|
36
|
+
}
|
|
29
37
|
|
|
30
|
-
return R.pipe(R.path([attributeIndex, 'values', valueIndex, 'id']),
|
|
31
|
-
return R.isNil(v) ? null : Number(v);
|
|
32
|
-
}, function (v) {
|
|
33
|
-
return isNaN(v) ? null : v;
|
|
34
|
-
})(attributes);
|
|
38
|
+
return R.pipe(R.path([attributeIndex, 'values', valueIndex, 'id']), parseValidNumber)(attributes);
|
|
35
39
|
}, formatAttributesIndexes);
|
|
36
40
|
};
|
|
37
41
|
|
|
@@ -53,9 +53,7 @@ var getTableProps = exports.getTableProps = function getTableProps(_ref) {
|
|
|
53
53
|
|
|
54
54
|
var confirmedSeriesAttributesIds = (0, _getConfirmedSeriesAttributesIds.getConfirmedSeriesAttributesIds)(seriesAttributes, layoutIds);
|
|
55
55
|
|
|
56
|
-
var
|
|
57
|
-
|
|
58
|
-
var refinedMetadataCoordinates = (0, _refineMetadataCoordinates.refineMetadataCoordinates)(data.metadataCoordinates, layoutIds, headerDimensionsIds);
|
|
56
|
+
var refinedMetadataCoordinates = (0, _refineMetadataCoordinates.refineMetadataCoordinates)(data.metadataCoordinates, layoutIds);
|
|
59
57
|
|
|
60
58
|
var _R$propOr = R.propOr({}, 'units', data),
|
|
61
59
|
rejectedValueIds = _R$propOr.rejectedValueIds,
|
|
@@ -11,9 +11,10 @@ var R = _interopRequireWildcard(_ramda);
|
|
|
11
11
|
|
|
12
12
|
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; } }
|
|
13
13
|
|
|
14
|
-
var refineMetadataCoordinates = exports.refineMetadataCoordinates = function refineMetadataCoordinates(metadataCoordinates, layoutIds
|
|
14
|
+
var refineMetadataCoordinates = exports.refineMetadataCoordinates = function refineMetadataCoordinates(metadataCoordinates, layoutIds) {
|
|
15
|
+
var relevantIds = R.pipe(R.values, R.unnest)(layoutIds);
|
|
15
16
|
return R.reduce(function (acc, coordinates) {
|
|
16
|
-
var refinedCoord = R.
|
|
17
|
+
var refinedCoord = R.pick(relevantIds, coordinates);
|
|
17
18
|
if (R.isEmpty(refinedCoord)) {
|
|
18
19
|
return acc;
|
|
19
20
|
}
|
package/package.json
CHANGED
|
@@ -2,20 +2,30 @@ import * as R from 'ramda';
|
|
|
2
2
|
import numeral from 'numeral';
|
|
3
3
|
|
|
4
4
|
const isValidNumber = R.both(R.is(Number), R.complement(R.equals(NaN)));
|
|
5
|
+
const parseValidNumber = R.pipe(
|
|
6
|
+
v => R.isNil(v) ? null : Number(v),
|
|
7
|
+
v => isNaN(v) ? null : v
|
|
8
|
+
);
|
|
5
9
|
|
|
6
10
|
const getFormatAttributesValues = (observation, formatAttributesIndexes, attributes) => R.mapObjIndexed(
|
|
7
11
|
attributeIndex => {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
let valueIndex;
|
|
13
|
+
const relationship = R.pipe(R.nth(attributeIndex), R.propOr({}, 'relationship'))(attributes);
|
|
14
|
+
//if (!R.isNil(attributeIndex) && attributeIndex >= R.length(R.propOr([], 'attrValuesIndexes', observation))) {
|
|
15
|
+
if (R.has('none', relationship) || R.has('dataflow', relationship)) {
|
|
16
|
+
valueIndex = 0;
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
valueIndex = R.pipe(
|
|
20
|
+
R.propOr([], 'attrValuesIndexes'),
|
|
21
|
+
R.nth(attributeIndex),
|
|
22
|
+
parseValidNumber
|
|
23
|
+
)(observation);
|
|
24
|
+
}
|
|
14
25
|
|
|
15
26
|
return R.pipe(
|
|
16
27
|
R.path([attributeIndex, 'values', valueIndex, 'id']),
|
|
17
|
-
|
|
18
|
-
v => isNaN(v) ? null : v
|
|
28
|
+
parseValidNumber
|
|
19
29
|
)(attributes);
|
|
20
30
|
},
|
|
21
31
|
formatAttributesIndexes
|
|
@@ -23,11 +23,7 @@ export const getTableProps = ({ data, layoutIds, display, customAttributes, limi
|
|
|
23
23
|
layoutIds
|
|
24
24
|
);
|
|
25
25
|
|
|
26
|
-
const
|
|
27
|
-
R.concat(R.pathOr([], ['units', 'headerUnits'], data), R.values(R.pathOr({}, ['dimensions', 'one'], data)))
|
|
28
|
-
);
|
|
29
|
-
|
|
30
|
-
const refinedMetadataCoordinates = refineMetadataCoordinates(data.metadataCoordinates, layoutIds, headerDimensionsIds);
|
|
26
|
+
const refinedMetadataCoordinates = refineMetadataCoordinates(data.metadataCoordinates, layoutIds);
|
|
31
27
|
|
|
32
28
|
const {
|
|
33
29
|
rejectedValueIds,
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import * as R from 'ramda';
|
|
2
2
|
|
|
3
|
-
export const refineMetadataCoordinates = (metadataCoordinates, layoutIds
|
|
3
|
+
export const refineMetadataCoordinates = (metadataCoordinates, layoutIds) => {
|
|
4
|
+
const relevantIds = R.pipe(R.values, R.unnest)(layoutIds);
|
|
4
5
|
return R.reduce(
|
|
5
6
|
(acc, coordinates) => {
|
|
6
|
-
const refinedCoord = R.
|
|
7
|
+
const refinedCoord = R.pick(relevantIds, coordinates);
|
|
7
8
|
if (R.isEmpty(refinedCoord)) {
|
|
8
9
|
return acc;
|
|
9
10
|
}
|
|
@@ -312,5 +312,29 @@ describe('enhanceObservations tests', () => {
|
|
|
312
312
|
},
|
|
313
313
|
})
|
|
314
314
|
})
|
|
315
|
+
it('apply format attrs from dataflow level', () => {
|
|
316
|
+
const observations = {
|
|
317
|
+
a: { value: 2.358, attrValuesIndexes: [], dimValuesIndexes: [] },
|
|
318
|
+
b: { value: 10.578, attrValuesIndexes: [], dimValuesIndexes: [] },
|
|
319
|
+
};
|
|
320
|
+
|
|
321
|
+
const attributes = [
|
|
322
|
+
{ id: 'PREF', relationship: { none: {} }, values: [{ id: '-1' }] },
|
|
323
|
+
{ id: 'DEC', relationship: { dataflow: {} }, values: [{ id: '1' }] }
|
|
324
|
+
];
|
|
325
|
+
|
|
326
|
+
const options = {
|
|
327
|
+
noDisplayIndexes: [],
|
|
328
|
+
notDisplayedCodes: {},
|
|
329
|
+
attributesIds: [],
|
|
330
|
+
unitsIds: [],
|
|
331
|
+
rejectedValueIds: [],
|
|
332
|
+
customAttributes: { prefscale: 'PREF', decimals: 'DEC' }
|
|
333
|
+
};
|
|
334
|
+
expect(enhanceObservations([], observations, attributes, options)).to.deep.equal({
|
|
335
|
+
a: { attributes: {}, units: { serieKey: '' }, value: 2.358, formattedValue: '23.6', attrValuesIndexes: [], dimValuesIndexes: [], indexedDimValIds: {} },
|
|
336
|
+
b: { attributes: {}, units: { serieKey: '' }, value: 10.578, formattedValue: '105.8', attrValuesIndexes: [], dimValuesIndexes: [], indexedDimValIds: {} },
|
|
337
|
+
});
|
|
338
|
+
});
|
|
315
339
|
});
|
|
316
340
|
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { expect } from 'chai';
|
|
2
|
+
import { refineMetadataCoordinates } from "../src/rules2/src/refineMetadataCoordinates";
|
|
3
|
+
|
|
4
|
+
describe('refineMetadataCoordinates', () => {
|
|
5
|
+
it('test', () => {
|
|
6
|
+
const coordinates = [
|
|
7
|
+
{},
|
|
8
|
+
{
|
|
9
|
+
"MEASURE": "EMP",
|
|
10
|
+
"ACTIVITY": "_T",
|
|
11
|
+
"UNIT_MEASURE": "PS",
|
|
12
|
+
"PRICE_BASE": "_Z",
|
|
13
|
+
"ADJUSTMENT": "Y",
|
|
14
|
+
"TRANSFORMATION": "N"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"MEASURE": "POP",
|
|
18
|
+
"ACTIVITY": "_Z",
|
|
19
|
+
"UNIT_MEASURE": "PS",
|
|
20
|
+
"PRICE_BASE": "_Z",
|
|
21
|
+
"ADJUSTMENT": "Y",
|
|
22
|
+
"TRANSFORMATION": "N"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"MEASURE": "SAL",
|
|
26
|
+
"ACTIVITY": "_T",
|
|
27
|
+
"UNIT_MEASURE": "PS",
|
|
28
|
+
"PRICE_BASE": "_Z",
|
|
29
|
+
"ADJUSTMENT": "Y",
|
|
30
|
+
"TRANSFORMATION": "N"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"MEASURE": "SELF",
|
|
34
|
+
"ACTIVITY": "_T",
|
|
35
|
+
"UNIT_MEASURE": "PS",
|
|
36
|
+
"PRICE_BASE": "_Z",
|
|
37
|
+
"ADJUSTMENT": "Y",
|
|
38
|
+
"TRANSFORMATION": "N"
|
|
39
|
+
}
|
|
40
|
+
];
|
|
41
|
+
const layoutIds = {
|
|
42
|
+
header: ['TIME_PERIOD'],
|
|
43
|
+
sections: ['ACTIVITY', 'ADJUSTMENT'],
|
|
44
|
+
rows: ['MEASURE', 'UNIT_MEASURE', 'PRICE_BASE', 'TRANSFORMATION']
|
|
45
|
+
};
|
|
46
|
+
expect(refineMetadataCoordinates(coordinates, layoutIds, [])).to.deep.equal({
|
|
47
|
+
cells: [],
|
|
48
|
+
header: [],
|
|
49
|
+
sections: [],
|
|
50
|
+
rows: [
|
|
51
|
+
{
|
|
52
|
+
"MEASURE": "EMP",
|
|
53
|
+
"ACTIVITY": "_T",
|
|
54
|
+
"UNIT_MEASURE": "PS",
|
|
55
|
+
"PRICE_BASE": "_Z",
|
|
56
|
+
"ADJUSTMENT": "Y",
|
|
57
|
+
"TRANSFORMATION": "N"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"MEASURE": "POP",
|
|
61
|
+
"ACTIVITY": "_Z",
|
|
62
|
+
"UNIT_MEASURE": "PS",
|
|
63
|
+
"PRICE_BASE": "_Z",
|
|
64
|
+
"ADJUSTMENT": "Y",
|
|
65
|
+
"TRANSFORMATION": "N"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"MEASURE": "SAL",
|
|
69
|
+
"ACTIVITY": "_T",
|
|
70
|
+
"UNIT_MEASURE": "PS",
|
|
71
|
+
"PRICE_BASE": "_Z",
|
|
72
|
+
"ADJUSTMENT": "Y",
|
|
73
|
+
"TRANSFORMATION": "N"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"MEASURE": "SELF",
|
|
77
|
+
"ACTIVITY": "_T",
|
|
78
|
+
"UNIT_MEASURE": "PS",
|
|
79
|
+
"PRICE_BASE": "_Z",
|
|
80
|
+
"ADJUSTMENT": "Y",
|
|
81
|
+
"TRANSFORMATION": "N"
|
|
82
|
+
}
|
|
83
|
+
]
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
});
|