@sis-cc/dotstatsuite-components 13.0.4 → 13.3.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.
Files changed (51) hide show
  1. package/lib/rules/src/factories/timeline-series.js +0 -26
  2. package/lib/rules/src/preparators/enhanceObservations.js +4 -8
  3. package/lib/rules/src/sdmx-data/index.js +3 -4
  4. package/lib/rules/src/table/preparators/getOneValueDimensions.js +2 -14
  5. package/lib/rules/src/table/preparators/parseAttributes.js +3 -10
  6. package/lib/rules/src/table/preparators/prepareData.js +4 -25
  7. package/lib/rules/src/table/units/getUnitsArtefacts.js +6 -11
  8. package/lib/rules/src/v8-transformer.js +46 -37
  9. package/lib/rules2/src/getNotDisplayedIds.js +42 -0
  10. package/lib/rules2/src/getSidebarData.js +41 -18
  11. package/lib/rules2/src/index.js +9 -0
  12. package/lib/rules2/src/parseMetadataSeries.js +5 -4
  13. package/lib/viewer/src/index.js +5 -3
  14. package/package.json +2 -2
  15. package/src/rules/src/factories/choro-series.js +1 -1
  16. package/src/rules/src/factories/timeline-series.js +1 -40
  17. package/src/rules/src/preparators/enhanceObservations.js +4 -7
  18. package/src/rules/src/properties/getHeaderProps.js +1 -2
  19. package/src/rules/src/properties/scatter.js +0 -1
  20. package/src/rules/src/sdmx-data/index.js +4 -4
  21. package/src/rules/src/table/preparators/getOneValueDimensions.js +4 -22
  22. package/src/rules/src/table/preparators/parseAttributes.js +3 -3
  23. package/src/rules/src/table/preparators/prepareData.js +3 -21
  24. package/src/rules/src/table/units/getUnitsArtefacts.js +6 -6
  25. package/src/rules/src/v8-transformer.js +57 -47
  26. package/src/rules2/src/getNotDisplayedIds.js +40 -0
  27. package/src/rules2/src/getSidebarData.js +41 -23
  28. package/src/rules2/src/index.js +1 -0
  29. package/src/rules2/src/parseMetadataSeries.js +6 -5
  30. package/src/viewer/src/index.js +7 -7
  31. package/test/enhanceObservations.test.js +2 -2
  32. package/test/getNotDisplayedIds.test.js +31 -0
  33. package/test/getOneValueDimensions.test.js +12 -17
  34. package/test/getSidebarData.test.js +104 -0
  35. package/test/getUnitsArtefacts.test.js +10 -14
  36. package/test/mocks/large_metadata_series.json +20 -20
  37. package/test/mocks/table-prep-multi-hierarchies--attributes.json +2 -0
  38. package/test/parseAttributes.test.js +4 -9
  39. package/test/table-prep-perf.test.js +0 -7
  40. package/lib/rules/src/preparators/getDimensions.js +0 -55
  41. package/lib/rules/src/preparators/getDisplay.js +0 -32
  42. package/lib/rules/src/table/preparators/getDisplay.js +0 -32
  43. package/lib/rules/src/table/preparators/getNoDisplayAnnotationsIndexes.js +0 -16
  44. package/lib/rules/src/table/preparators/getNoDisplayCodes.js +0 -32
  45. package/src/rules/src/preparators/getDimensions.js +0 -49
  46. package/src/rules/src/preparators/getDisplay.js +0 -20
  47. package/src/rules/src/table/preparators/getDisplay.js +0 -20
  48. package/src/rules/src/table/preparators/getNoDisplayAnnotationsIndexes.js +0 -9
  49. package/src/rules/src/table/preparators/getNoDisplayCodes.js +0 -32
  50. package/test/getNoDisplayAnnotationsIndexes.test.js +0 -18
  51. package/test/getNoDisplayCodes.test.js +0 -87
@@ -48,12 +48,6 @@ var _findIndex2 = require('lodash/findIndex');
48
48
 
49
49
  var _findIndex3 = _interopRequireDefault(_findIndex2);
50
50
 
51
- var _concat2 = require('lodash/concat');
52
-
53
- var _concat3 = _interopRequireDefault(_concat2);
54
-
55
- var _constants = require('../constants');
56
-
57
51
  var _dotstatsuiteSdmxjs = require('@sis-cc/dotstatsuite-sdmxjs');
58
52
 
59
53
  var _dimensionUtils = require('../dimension-utils');
@@ -62,26 +56,6 @@ var _observationFormater = require('../observation-formater');
62
56
 
63
57
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
64
58
 
65
- var getLineCategory = function getLineCategory(oDimensionValuesIndexes, dimensions, timePeriodDimensionIndex, dimensionsWithValuesIndexedById) {
66
- return (0, _reduce3.default)(oDimensionValuesIndexes, function (memo, dimensionValueIndex, dimensionIndex) {
67
- var dimension = (0, _get3.default)(dimensions, '[' + dimensionIndex + ']', {});
68
- if (dimensionIndex !== timePeriodDimensionIndex && (0, _has3.default)(dimensionsWithValuesIndexedById, dimension.id)) {
69
- return (0, _concat3.default)(memo, (0, _get3.default)(dimensions, '[' + dimensionIndex + '].values[' + dimensionValueIndex + '].name', ''));
70
- }
71
- return memo;
72
- }, []).join(' - ');
73
- };
74
-
75
- var getLineCategoryId = function getLineCategoryId(oDimensionValuesIndexes, dimensions, timePeriodDimensionIndex, dimensionsWithValuesIndexedById) {
76
- return (0, _reduce3.default)(oDimensionValuesIndexes, function (memo, dimensionValueIndex, dimensionIndex) {
77
- var dimension = (0, _get3.default)(dimensions, '[' + dimensionIndex + ']', {});
78
- if (dimensionIndex !== timePeriodDimensionIndex && (0, _has3.default)(dimensionsWithValuesIndexedById, dimension.id)) {
79
- return (0, _concat3.default)(memo, (0, _get3.default)(dimensions, '[' + dimensionIndex + '].values[' + dimensionValueIndex + '].id', ''));
80
- }
81
- return memo;
82
- }, []).join(' - ');
83
- };
84
-
85
59
  var getDimensionValues = function getDimensionValues(splitObservationKey, dimensions, dimensionsWithValuesIndexedById, rejectedId, display) {
86
60
  return (0, _reduce3.default)(splitObservationKey, function (memo, dimensionValueIndex, dimensionIndex) {
87
61
  var dimension = (0, _get3.default)(dimensions, '[' + dimensionIndex + ']', {});
@@ -13,8 +13,6 @@ var _ramda = require('ramda');
13
13
 
14
14
  var R = _interopRequireWildcard(_ramda);
15
15
 
16
- var _getDisplay = require('./getDisplay');
17
-
18
16
  var _formatValue = require('./formatValue');
19
17
 
20
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; } }
@@ -28,8 +26,6 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
28
26
  decimals: id,
29
27
  prefscale: id,
30
28
  },
31
- noDisplayIndexes,
32
- notDisplayedCodes,
33
29
  unitsArtefacts,
34
30
  obsAttributes,
35
31
  rejectedValueIds,
@@ -55,11 +51,11 @@ var getUnitsValues = function getUnitsValues(indexes, options) {
55
51
  return acc;
56
52
  }
57
53
  var valueIndex = R.prop(codelist.__index, indexes);
58
- if (R.isNil(valueIndex) || !(0, _getDisplay.getDisplay)(options)(codelist)) {
54
+ if (R.isNil(valueIndex) || !R.propOr(true, 'display', codelist)) {
59
55
  return acc;
60
56
  }
61
57
  var value = R.path(['values', Number(valueIndex)], codelist);
62
- if (R.isNil(value) || R.includes(value.id, R.propOr([], 'rejectedValueIds', options)) || !(0, _getDisplay.getDisplay)(options)((0, _extends3.default)({}, value, { parent: codelist.id }))) {
58
+ if (R.isNil(value) || R.includes(value.id, R.propOr([], 'rejectedValueIds', options)) || !R.propOr(true, 'display', value)) {
63
59
  return acc;
64
60
  }
65
61
  return R.assoc(id, (0, _extends3.default)({}, R.pick(['id', 'name', '__index'], codelist), {
@@ -97,12 +93,12 @@ var getFormatAttributesIndexes = function getFormatAttributesIndexes(attributes,
97
93
  };
98
94
 
99
95
  var getAttributeValue = function getAttributeValue(attribute, valueIndex, options) {
100
- if (!(0, _getDisplay.getDisplay)(options)(attribute)) {
96
+ if (!R.propOr(true, 'display', attribute)) {
101
97
  return null;
102
98
  }
103
99
  var value = R.pipe(R.propOr([], 'values'), R.nth(valueIndex))(attribute);
104
100
 
105
- if (R.isNil(value) || !(0, _getDisplay.getDisplay)(options)((0, _extends3.default)({}, value, { parent: attribute.id }))) {
101
+ if (R.isNil(value) || !R.propOr(true, 'display', value)) {
106
102
  return null;
107
103
  }
108
104
 
@@ -50,7 +50,6 @@ var getRelationnalAnnotations = exports.getRelationnalAnnotations = function get
50
50
 
51
51
  var hiddenFormat = exports.hiddenFormat = { isHidden: true };
52
52
 
53
- var getIsHidden = exports.getIsHidden = R.reduce(function (acc, annotation) {
54
- if (R.equals(getType(annotation), NOT_DISPLAYED)) return hiddenFormat;
55
- return acc;
56
- }, {});
53
+ var getIsHidden = exports.getIsHidden = function getIsHidden(annotations) {
54
+ return R.pipe(R.find(R.propEq('type', NOT_DISPLAYED)), R.complement(R.isNil))(annotations);
55
+ };
@@ -5,10 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.getOneValueDimensions = undefined;
7
7
 
8
- var _extends2 = require('babel-runtime/helpers/extends');
9
-
10
- var _extends3 = _interopRequireDefault(_extends2);
11
-
12
8
  var _ramda = require('ramda');
13
9
 
14
10
  var R = _interopRequireWildcard(_ramda);
@@ -17,20 +13,12 @@ var _getAttributeValue = require('./getAttributeValue');
17
13
 
18
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; } }
19
15
 
20
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
-
22
- var getOneValueDimensions = exports.getOneValueDimensions = function getOneValueDimensions(dimensions, attributesIds, attributes, getDisplay) {
16
+ var getOneValueDimensions = exports.getOneValueDimensions = function getOneValueDimensions(dimensions, attributesIds, attributes) {
23
17
  return R.map(function (dimension) {
24
18
  var dimensionAttributes = R.pipe(R.mapObjIndexed(function (attr) {
25
19
  return (0, _getAttributeValue.getAttributeValue)(attr, 0);
26
20
  }), R.filter(R.complement(R.isNil)))(R.pick(R.propOr([], dimension.id, attributesIds), attributes));
27
21
 
28
- var display = getDisplay(dimension);
29
-
30
- var value = R.pipe(R.path(['values', 0]), R.assoc('attributes', dimensionAttributes), function (val) {
31
- return R.assoc('display', getDisplay((0, _extends3.default)({}, val, { parent: dimension.id })), val);
32
- })(dimension);
33
-
34
- return R.pipe(R.assoc('display', display), R.assocPath(['values', 0], value))(dimension);
22
+ return R.over(R.lensPath(['values', 0]), R.assoc('attributes', dimensionAttributes))(dimension);
35
23
  }, dimensions);
36
24
  };
@@ -5,18 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.parseAttributes = undefined;
7
7
 
8
- var _extends2 = require('babel-runtime/helpers/extends');
9
-
10
- var _extends3 = _interopRequireDefault(_extends2);
11
-
12
8
  var _ramda = require('ramda');
13
9
 
14
10
  var R = _interopRequireWildcard(_ramda);
15
11
 
16
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; } }
17
13
 
18
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
20
14
  var registerAttrId = function registerAttrId(path, id) {
21
15
  return R.over(R.lensPath(R.prepend('attributesIdsIndexedByTargets', path)), R.ifElse(R.isNil, R.always([id]), R.append(id)));
22
16
  };
@@ -62,17 +56,16 @@ var getAttributeRegisters = function getAttributeRegisters(attribute, parsedDime
62
56
  var parseAttributes = exports.parseAttributes = function parseAttributes(_ref) {
63
57
  var attributes = _ref.attributes,
64
58
  parsedDimensionsIds = _ref.parsedDimensionsIds,
65
- customAttributes = _ref.customAttributes,
66
- getDisplay = _ref.getDisplay;
59
+ customAttributes = _ref.customAttributes;
67
60
  return R.addIndex(R.reduce)(function (acc, attribute, attributeIndex) {
68
61
  var values = R.propOr([], 'values', attribute);
69
62
 
70
- if (R.isEmpty(values) || !getDisplay(attribute) || R.includes(attribute.id, R.propOr([], 'units', customAttributes))) {
63
+ if (R.isEmpty(values) || !R.propOr(true, 'display', attribute) || R.includes(attribute.id, R.propOr([], 'units', customAttributes))) {
71
64
  return acc;
72
65
  }
73
66
 
74
67
  var registers = getAttributeRegisters(R.pipe(R.assoc('index', attributeIndex), R.over(R.lensProp('values'), R.map(function (value) {
75
- if (!getDisplay((0, _extends3.default)({}, value, { parent: attribute.id }))) {
68
+ if (!R.propOr(true, 'display', value)) {
76
69
  return null;
77
70
  }
78
71
  return value;
@@ -17,10 +17,6 @@ var _getObservationsType = require('../../properties/getObservationsType');
17
17
 
18
18
  var _parseDimensionsIds = require('./parseDimensionsIds');
19
19
 
20
- var _getNoDisplayAnnotationsIndexes = require('./getNoDisplayAnnotationsIndexes');
21
-
22
- var _getNoDisplayCodes = require('./getNoDisplayCodes');
23
-
24
20
  var _parseAttributes2 = require('./parseAttributes');
25
21
 
26
22
  var _getDimensionsAttributesRegisters = require('./getDimensionsAttributesRegisters');
@@ -45,8 +41,6 @@ var _getAttachmentSeriesIndexes = require('../units/getAttachmentSeriesIndexes')
45
41
 
46
42
  var _getUnitsSeries = require('../units/getUnitsSeries');
47
43
 
48
- var _getDisplay2 = require('../../preparators/getDisplay');
49
-
50
44
  var _getObservations = require('../../preparators/getObservations');
51
45
 
52
46
  var _enhanceObservations = require('../../preparators/enhanceObservations');
@@ -80,18 +74,8 @@ var prepareData = exports.prepareData = function prepareData(sdmxJson, customAtt
80
74
 
81
75
  var parsedDimensionsIds = (0, _parseDimensionsIds.parseDimensionsIds)(dimensions);
82
76
 
83
- var annotations = R.pathOr([], ['data', 'structure', 'annotations'], sdmxJson);
84
-
85
- var noDisplayIndexes = (0, _getNoDisplayAnnotationsIndexes.getNoDisplayAnnotationsIndexes)(annotations);
86
- var notDisplayedCodes = (0, _getNoDisplayCodes.getNoDisplayCodes)({
87
- noDisplayIndexes: noDisplayIndexes,
88
- annotations: annotations,
89
- datasetIndexes: R.pathOr([], ['data', 'dataSets', 0, 'annotations'], sdmxJson)
90
- });
91
- var _getDisplay = (0, _getDisplay2.getDisplay)({ noDisplayIndexes: noDisplayIndexes, notDisplayedCodes: notDisplayedCodes });
92
-
93
77
  //------------------------------------------------------------------
94
- var unitsArtefacts = (0, _getUnitsArtefacts.getUnitsArtefacts)({ unitsDefinitionCodes: unitsDefinitionCodes, data: sdmxJson, getDisplay: _getDisplay });
78
+ var unitsArtefacts = (0, _getUnitsArtefacts.getUnitsArtefacts)({ unitsDefinitionCodes: unitsDefinitionCodes, data: sdmxJson });
95
79
  var headerUnits = (0, _getHeaderUnits.getHeaderUnits)({ unitsArtefacts: unitsArtefacts, unitsDefinitionCodes: unitsDefinitionCodes, rejectedValueIds: rejectedValueIds });
96
80
  var _dimensions = R.pipe(R.pathOr([], ['data', 'structure', 'dimensions', 'observation']), R.addIndex(R.map)(function (dim, index) {
97
81
  return R.assoc('index', index, dim);
@@ -104,7 +88,6 @@ var prepareData = exports.prepareData = function prepareData(sdmxJson, customAtt
104
88
  var _parseAttributes = (0, _parseAttributes2.parseAttributes)({
105
89
  attributes: R.concat(attributes, R.pathOr([], ['data', 'structure', 'attributes', 'dataSet'], sdmxJson)),
106
90
  parsedDimensionsIds: parsedDimensionsIds,
107
- getDisplay: _getDisplay,
108
91
  customAttributes: _customAttributes
109
92
  }),
110
93
  attributesIndexedByIds = _parseAttributes.attributesIndexedByIds,
@@ -120,8 +103,6 @@ var prepareData = exports.prepareData = function prepareData(sdmxJson, customAtt
120
103
  var options = {
121
104
  attachmentSeriesIndexes: attachmentSeriesIndexes,
122
105
  customAttributes: customAttributes,
123
- noDisplayIndexes: noDisplayIndexes,
124
- notDisplayedCodes: notDisplayedCodes,
125
106
  attributesIds: R.concat(seriesAttributesIds, observationsAttributesIds),
126
107
  unitsIds: obsUnitsIds
127
108
  };
@@ -134,14 +115,14 @@ var prepareData = exports.prepareData = function prepareData(sdmxJson, customAtt
134
115
  //------------------------------------------------------------------
135
116
  var attributesRegisters = (0, _getDimensionsAttributesRegisters.getDimensionsAttributesRegisters)(attributesIdsIndexedByTargets, attributesIndexedByIds);
136
117
 
137
- var dimensionsAttributesValues = (0, _parseAttributesValuesFromObservations.parseAttributesValuesFromObservations)( // => { series: { key: { attrId: [...indexes] } }, dimensions: {} }
118
+ var dimensionsAttributesValues = (0, _parseAttributesValuesFromObservations.parseAttributesValuesFromObservations)( // => { series: { key: { attrId: [...indexes] } }, dimensions: {} }
138
119
  observations, attributesRegisters);
139
120
 
140
121
  var dataflowAttributes = R.mapObjIndexed(function (attribute) {
141
122
  return (0, _getAttributeValue.getAttributeValue)(attribute, 0);
142
123
  }, R.pipe(R.pick(R.propOr([], 'dataflow', attributesIdsIndexedByTargets)), R.filter(R.complement(R.isNil)))(attributesIndexedByIds));
143
124
 
144
- var oneValueDimensions = (0, _getOneValueDimensions.getOneValueDimensions)(R.pipe(R.pick(R.keys(parsedDimensionsIds.oneValue)), R.omit(unitsDefinitionCodes))(dimensionsIndexedByIds), attributesIdsIndexedByTargets.oneValueDimensions, attributesIndexedByIds, _getDisplay);
125
+ var oneValueDimensions = (0, _getOneValueDimensions.getOneValueDimensions)(R.pipe(R.pick(R.keys(parsedDimensionsIds.oneValue)), R.omit(unitsDefinitionCodes))(dimensionsIndexedByIds), attributesIdsIndexedByTargets.oneValueDimensions, attributesIndexedByIds);
145
126
 
146
127
  var manyValuesDimensions = (0, _getManyValuesDimensions.getManyValuesDimensions)(dimensionsIndexedByIds, parsedDimensionsIds.manyValues, dimensionsAttributesValues.dimensions, attributesIndexedByIds);
147
128
 
@@ -156,9 +137,7 @@ var prepareData = exports.prepareData = function prepareData(sdmxJson, customAtt
156
137
  return !R.includes(id, customAttributes.flags || []) && !R.includes(id, customAttributes.notes || []);
157
138
  }))(headerAttributesIds);
158
139
 
159
- var dataflowAdvancedAttributes = (0, _getAdvancedAttributes.getDataflowAdvancedAttributes)(headerAttributes,
160
- //oneValueDimensions,
161
- R.pick(R.keys(parsedDimensionsIds.oneValue), dimensionsIndexedByIds), headerAdvancedAttrIds, R.length(dimensions));
140
+ var dataflowAdvancedAttributes = (0, _getAdvancedAttributes.getDataflowAdvancedAttributes)(headerAttributes, R.pick(R.keys(parsedDimensionsIds.oneValue), dimensionsIndexedByIds), headerAdvancedAttrIds, R.length(dimensions));
162
141
 
163
142
  var observationsAdvancedAttributesIds = R.filter(function (id) {
164
143
  return !R.includes(id, customAttributes.flags || []) && !R.includes(id, customAttributes.notes || []);
@@ -17,19 +17,14 @@ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj;
17
17
 
18
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
19
 
20
- var getRelevantLength = exports.getRelevantLength = function getRelevantLength(getDisplay) {
21
- return function (attr) {
22
- return R.pipe(R.propOr([], 'values'), R.filter(function (val) {
23
- return getDisplay(R.assoc('parent', attr.id, val));
24
- }), R.length)(attr);
25
- };
20
+ var getRelevantLength = exports.getRelevantLength = function getRelevantLength(attr) {
21
+ return R.pipe(R.propOr([], 'values'), R.filter(R.propOr(true, 'display')), R.length)(attr);
26
22
  };
27
23
 
28
24
  var getUnitsArtefacts = exports.getUnitsArtefacts = function getUnitsArtefacts(_ref) {
29
25
  var _ref$unitsDefinitionC = _ref.unitsDefinitionCodes,
30
26
  unitsDefinitionCodes = _ref$unitsDefinitionC === undefined ? [] : _ref$unitsDefinitionC,
31
- data = _ref.data,
32
- getDisplay = _ref.getDisplay;
27
+ data = _ref.data;
33
28
 
34
29
  var dimensions = R.pathOr([], ['data', 'structure', 'dimensions', 'observation'], data);
35
30
  var parsedUnitsDimensions = R.addIndex(R.reduce)(function (acc, dimension, index) {
@@ -50,11 +45,11 @@ var getUnitsArtefacts = exports.getUnitsArtefacts = function getUnitsArtefacts(_
50
45
 
51
46
  var parsedUnitsAttributes = R.converge(function (datasetLevel, observationLevel) {
52
47
  return R.over(R.lensProp('header'), R.merge(datasetLevel))(observationLevel);
53
- }, [R.pipe(R.pathOr([], ['data', 'structure', 'attributes', 'dataSet']), R.filter(R.pipe(R.propOr([], 'values'), R.length, R.equals(1))), R.indexBy(R.prop('id')), R.pick(unitsDefinitionCodes), R.filter(getDisplay), R.mapObjIndexed(R.assoc('datasetLevel', true))), R.pipe(R.pathOr([], ['data', 'structure', 'attributes', 'observation']), R.addIndex(R.reduce)(function (acc, attr, index) {
54
- if (!R.includes(attr.id, unitsDefinitionCodes) || R.length(R.propOr([], 'values', attr)) === 0 || !getDisplay(attr)) {
48
+ }, [R.pipe(R.pathOr([], ['data', 'structure', 'attributes', 'dataSet']), R.filter(R.pipe(R.propOr([], 'values'), R.length, R.equals(1))), R.indexBy(R.prop('id')), R.pick(unitsDefinitionCodes), R.filter(R.propOr(true, 'display')), R.mapObjIndexed(R.assoc('datasetLevel', true))), R.pipe(R.pathOr([], ['data', 'structure', 'attributes', 'observation']), R.addIndex(R.reduce)(function (acc, attr, index) {
49
+ if (!R.includes(attr.id, unitsDefinitionCodes) || R.length(R.propOr([], 'values', attr)) === 0 || !R.propOr(true, 'display', attr)) {
55
50
  return acc;
56
51
  }
57
- var length = getRelevantLength(getDisplay)(attr);
52
+ var length = getRelevantLength(attr);
58
53
  if (length === 0) {
59
54
  return acc;
60
55
  }
@@ -25,29 +25,46 @@ var _date = require('./date');
25
25
 
26
26
  var _getReportingYearStart = require('./preparators/getReportingYearStart');
27
27
 
28
+ var _src = require('../../rules2/src');
29
+
28
30
  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; } }
29
31
 
30
32
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
33
 
32
34
  var dataTransformer = exports.dataTransformer = function dataTransformer(dataNew) {
33
35
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
36
+ var locale = options.locale;
34
37
 
35
- var getLanguage = R.pipe(R.pathOr('', ['meta', 'contentLanguages']), R.head());
36
- var locale = getLanguage(dataNew);
37
38
  var reportYearStart = (0, _getReportingYearStart.getReportingYearStart)(dataNew);
38
- var getProp = function getProp(prop, locale) {
39
- return R.pathOr(null, [prop, locale]);
39
+
40
+ //---------------------------------------------------------------------------------------Annotations
41
+ var getStructure = R.pathOr({}, ['data', 'structure']);
42
+ var structure = getStructure(dataNew);
43
+ var getAnnotations = R.propOr([], 'annotations');
44
+ var annotations = getAnnotations(structure);
45
+ var getDataSets = R.pathOr({}, ['data', 'dataSets']);
46
+ var dataSets = getDataSets(dataNew);
47
+
48
+ var dataSetsAnnotations = R.props(R.pathOr([], [0, 'annotations'], dataSets), annotations);
49
+
50
+ var hiddenIds = (0, _src.getNotDisplayedIds)(dataSetsAnnotations);
51
+
52
+ //--------------------------------------------------------------------------------------------------
53
+ var getValues = function getValues(values, parent) {
54
+ return R.map(function (value) {
55
+ var valAnnotations = R.props(value.annotations || [], annotations);
56
+ return (0, _extends3.default)({}, value, {
57
+ display: !R.has(parent + '.' + value.id, hiddenIds) && !(0, _sdmxData.getIsHidden)(valAnnotations),
58
+ name: (0, _dotstatsuiteSdmxjs.getRefinedName)(value)
59
+ });
60
+ }, values);
40
61
  };
41
- var getLocalisedProp = R.curry(function (prop, collection) {
42
- return getProp(prop, locale)(collection);
43
- });
44
- var getValues = R.map(function (value) {
45
- return (0, _extends3.default)({}, value, { name: getLocalisedProp('names', value) });
46
- });
47
- var getValuesEnhanced = function getValuesEnhanced(locale, annotations, isTimeDimension) {
62
+
63
+ var getValuesEnhanced = function getValuesEnhanced(locale, annotations, isTimeDimension, parent) {
48
64
  return R.pipe(R.addIndex(R.map)(function (value, __index) {
49
65
  var valueAnnotations = R.pipe(R.propOr([], 'annotations'), R.flip(R.props)(annotations))(value);
50
- var name = getLocalisedProp('names')(value);
66
+ var isHidden = R.has(parent + '.' + value.id, hiddenIds) || (0, _sdmxData.getIsHidden)(valueAnnotations);
67
+ var name = (0, _dotstatsuiteSdmxjs.getRefinedName)(value);
51
68
  var __indexPosition = NaN;
52
69
  var start = null;
53
70
  if (isTimeDimension) {
@@ -58,11 +75,12 @@ var dataTransformer = exports.dataTransformer = function dataTransformer(dataNew
58
75
  __indexPosition = _dateFns2.default.getTime(new Date(R.prop('start', value)));
59
76
  }
60
77
  if (isNaN(__indexPosition)) {
61
- __indexPosition = (0, _dotstatsuiteSdmxjs.getCodeOrder)(locale)({ annotations: valueAnnotations });
78
+ __indexPosition = (0, _dotstatsuiteSdmxjs.getCodeOrder)({ annotations: valueAnnotations });
62
79
  }
63
80
  var timeFormat = R.prop('timeFormat', options);
64
81
  return (0, _extends3.default)({}, value, {
65
82
  id: R.when(R.always(isTimeDimension), R.replace(/M/g, ''))(value.id),
83
+ display: !isHidden,
66
84
  name: R.when(R.always(isTimeDimension), R.always((0, _date.getReportedTimePeriodLabel)(options.frequency, timeFormat, locale)(reportYearStart, { id: value.id, reportedStart: start, start: value.start })))(name),
67
85
  start: start ? start.toISOString() : null,
68
86
  __indexPosition: __indexPosition,
@@ -73,12 +91,6 @@ var dataTransformer = exports.dataTransformer = function dataTransformer(dataNew
73
91
  }));
74
92
  };
75
93
 
76
- var getDataSets = R.pathOr({}, ['data', 'dataSets']);
77
- var dataSets = getDataSets(dataNew);
78
-
79
- var getStructure = R.pathOr({}, ['data', 'structure']);
80
- var structure = getStructure(dataNew);
81
-
82
94
  //--------------------------------------------------------------------------------------------Header
83
95
  var getMeta = R.propOr({}, 'meta');
84
96
  var meta = getMeta(dataNew);
@@ -87,17 +99,9 @@ var dataTransformer = exports.dataTransformer = function dataTransformer(dataNew
87
99
  var sender = getSender(meta);
88
100
 
89
101
  var resHeader = (0, _extends3.default)({}, meta, {
90
- sender: (0, _extends3.default)({}, sender, { name: getLocalisedProp('names', sender) })
102
+ sender: (0, _extends3.default)({}, sender, { name: (0, _dotstatsuiteSdmxjs.getRefinedName)(sender) })
91
103
  });
92
104
 
93
- //---------------------------------------------------------------------------------------Annotations
94
- var getAnnotations = R.propOr([], 'annotations');
95
- var annotations = getAnnotations(structure);
96
-
97
- var dataSetsAnnotations = (0, _sdmxData.getRelationnalAnnotations)(R.pathOr([], [0, 'annotations'])(dataSets))(annotations);
98
-
99
- var hiddenIds = R.pipe(R.find(R.propEq('type', 'NOT_DISPLAYED')), R.propOr('', 'title'), R.ifElse(R.isEmpty, R.always([]), R.split(',')))(annotations);
100
-
101
105
  //----------------------------------------------------------------------------------------Attributes
102
106
  var getAttributes = R.propOr({}, 'attributes');
103
107
  var attributes = getAttributes(structure);
@@ -106,17 +110,21 @@ var dataTransformer = exports.dataTransformer = function dataTransformer(dataNew
106
110
  var attrObservations = getAttrObservations(attributes);
107
111
 
108
112
  var resAttrObservations = R.map(function (observation) {
113
+ var obsAnnotations = R.props(observation.annotations || [], annotations);
109
114
  return (0, _extends3.default)({}, observation, {
110
- name: getLocalisedProp('names', observation),
111
- values: getValues(observation.values || []),
115
+ display: !R.has(observation.id, hiddenIds) && !(0, _sdmxData.getIsHidden)(obsAnnotations),
116
+ name: (0, _dotstatsuiteSdmxjs.getRefinedName)(observation),
117
+ values: getValues(observation.values || [], observation.id),
112
118
  roles: !R.isNil(observation.role) ? R.head(observation.role) : null
113
119
  });
114
120
  }, attrObservations);
115
121
 
116
122
  var datasetAttributes = R.map(function (attr) {
123
+ var attrAnnotations = R.props(attr.annotations || [], annotations);
117
124
  return (0, _extends3.default)({}, attr, {
118
- name: getLocalisedProp('names', observation),
119
- values: getValues(attr.values || [])
125
+ display: !R.has(attr.id, hiddenIds) && !(0, _sdmxData.getIsHidden)(attrAnnotations),
126
+ name: (0, _dotstatsuiteSdmxjs.getRefinedName)(observation),
127
+ values: getValues(attr.values || [], attr.id)
120
128
  });
121
129
  }, R.propOr([], 'dataSet', attributes));
122
130
 
@@ -135,10 +143,10 @@ var dataTransformer = exports.dataTransformer = function dataTransformer(dataNew
135
143
  return R.addIndex(R.reduce)(function (acc, observation, obsIndex) {
136
144
  var id = R.prop('id')(observation);
137
145
  var dimAnnotations = (0, _sdmxData.getRelationnalAnnotations)(R.propOr([], 'annotations')(observation))(annotations);
138
- var isHidden = R.includes(id)(hiddenIds) ? _sdmxData.hiddenFormat : (0, _sdmxData.getIsHidden)(dimAnnotations);
146
+ var isHidden = R.has(id, hiddenIds) || (0, _sdmxData.getIsHidden)(dimAnnotations);
139
147
  var isTime = (0, _dotstatsuiteSdmxjs.isTimePeriodDimension)(observation);
140
148
 
141
- var values = getValuesEnhanced(locale, annotations, isTime)(R.propOr([], 'values', observation));
149
+ var values = getValuesEnhanced(locale, annotations, isTime, id)(R.propOr([], 'values', observation));
142
150
  var ids = R.pipe(R.pluck('id'), R.indexBy(R.identity))(values);
143
151
  var groupedByParentsValues = R.groupBy(function (val) {
144
152
  var parentId = R.propOr('##ROOT', 'parent', val);
@@ -162,11 +170,12 @@ var dataTransformer = exports.dataTransformer = function dataTransformer(dataNew
162
170
 
163
171
  return {
164
172
  observation: R.append((0, _extends3.default)({}, observation, {
173
+ display: !isHidden,
165
174
  __index: obsIndex,
166
- name: getLocalisedProp('names', observation),
175
+ name: (0, _dotstatsuiteSdmxjs.getRefinedName)(observation),
167
176
  values: sortedValues,
168
177
  role: R.isNil(observation.roles) ? null : R.head(observation.roles)
169
- }, isHidden))(acc.observation),
178
+ }))(acc.observation),
170
179
  dimensionsLayout: (0, _sdmxData.setAnnotationsLayout)(id, acc.dimensionsLayout)(dimAnnotations)
171
180
  };
172
181
  }, { observation: [], dimensionsLayout: {} });
@@ -179,7 +188,7 @@ var dataTransformer = exports.dataTransformer = function dataTransformer(dataNew
179
188
  observation = _getObservations.observation;
180
189
 
181
190
  var resStructure = (0, _extends3.default)({}, structure, {
182
- name: getLocalisedProp('names', structure),
191
+ name: (0, _dotstatsuiteSdmxjs.getRefinedName)((0, _extends3.default)({}, structure, { id: options.dataflowId })),
183
192
  annotations: annotations,
184
193
  attributes: resAttributes,
185
194
  dimensions: { observation: observation }
@@ -0,0 +1,42 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getNotDisplayedIds = undefined;
7
+
8
+ var _ramda = require('ramda');
9
+
10
+ var R = _interopRequireWildcard(_ramda);
11
+
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
+
14
+ var getNotDisplayedIds = exports.getNotDisplayedIds = function getNotDisplayedIds(annotations) {
15
+ return R.pipe(R.find(R.propEq('type', 'NOT_DISPLAYED')), function (annot) {
16
+ if (R.isNil(annot)) {
17
+ return {};
18
+ }
19
+ var ids = R.split(',', annot.title || '');
20
+ return R.reduce(function (acc, entry) {
21
+ if (R.isEmpty(entry)) {
22
+ return acc;
23
+ }
24
+ var parsed = R.split('=', entry);
25
+ var dimensionId = parsed[0];
26
+ if (R.length(parsed) === 1) {
27
+ return R.assoc(dimensionId, dimensionId, acc);
28
+ }
29
+ var values = R.split('+', parsed[1]);
30
+ if (R.length(values) === 1 && R.isEmpty(values[0])) {
31
+ return R.assoc(dimensionId, dimensionId, acc);
32
+ }
33
+ return R.reduce(function (_acc, val) {
34
+ if (R.isEmpty(val)) {
35
+ return _acc;
36
+ }
37
+ var key = dimensionId + '.' + val;
38
+ return R.assoc(key, key, _acc);
39
+ }, acc, values);
40
+ }, {}, ids);
41
+ })(annotations);
42
+ };
@@ -5,12 +5,18 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.getSidebarData = undefined;
7
7
 
8
+ var _extends2 = require('babel-runtime/helpers/extends');
9
+
10
+ var _extends3 = _interopRequireDefault(_extends2);
11
+
8
12
  var _ramda = require('ramda');
9
13
 
10
14
  var R = _interopRequireWildcard(_ramda);
11
15
 
12
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; } }
13
17
 
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+
14
20
  var dimensionValueDisplay = function dimensionValueDisplay(display) {
15
21
  return function (data) {
16
22
  var name = R.isNil(data.name) ? '[' + data.id + ']' : data.name;
@@ -51,27 +57,44 @@ var getSidebarData = exports.getSidebarData = function getSidebarData(attributes
51
57
  var metadata = R.prop(coordinate, metadataSeries);
52
58
  var children = R.concat(R.isNil(attributes) ? [] : [{ id: coordinate + '-attr', label: options.attributesLabel, children: attributes }], R.isNil(metadata) ? [] : metadata);
53
59
  var splitCoord = R.split(':', coordinate);
54
- var label = null;
55
- if (R.all(R.isEmpty, splitCoord)) {
56
- label = dimensionValueDisplay(options.display)(dataflow);
57
- } else {
58
- label = R.pipe(R.addIndex(R.reduce)(function (acc, valIndex, dimIndex) {
59
- if (R.isEmpty(valIndex)) {
60
- return acc;
61
- }
62
- var dim = R.nth(dimIndex, dimensions);
63
- var dimLabel = dimensionValueDisplay(options.display)(dim);
64
- var value = R.nth(Number(valIndex), dim.values);
65
- var valLabel = dimensionValueDisplay(options.display)(value);
66
- return R.append(dimLabel + ': ' + valLabel, acc);
67
- }, []), R.join(' - '))(splitCoord);
68
- }
60
+
61
+ var _R$addIndex = R.addIndex(R.reduce)(function (acc, valIndex, dimIndex) {
62
+ if (R.isEmpty(valIndex)) {
63
+ return (0, _extends3.default)({}, acc, { split: R.append('', acc.split) });
64
+ }
65
+ var dim = R.nth(dimIndex, dimensions);
66
+ var value = R.nth(Number(valIndex), dim.values);
67
+ if (!R.propOr(true, 'display', dim) || !R.propOr(true, 'display', value)) {
68
+ return (0, _extends3.default)({}, acc, { split: R.append('', acc.split) });
69
+ }
70
+ var dimLabel = dimensionValueDisplay(options.display)(dim);
71
+ var valLabel = dimensionValueDisplay(options.display)(value);
72
+ return {
73
+ labels: R.append(dimLabel + ': ' + valLabel, acc.labels),
74
+ split: R.append(valIndex, acc.split)
75
+ };
76
+ }, { split: [], labels: [] }, splitCoord),
77
+ split = _R$addIndex.split,
78
+ labels = _R$addIndex.labels;
79
+
80
+ var label = R.isEmpty(labels) ? dimensionValueDisplay(options.display)(dataflow) : R.join(' - ', labels);
69
81
 
70
82
  return {
71
- id: coordinate,
72
- splitCoord: splitCoord,
83
+ id: R.join(':', split),
84
+ splitCoord: split,
73
85
  label: label,
74
86
  children: R.filter(R.identity, children)
75
87
  };
76
- }), R.sort(sortByCoordinates))(coordinates);
88
+ }), function (series) {
89
+ // after removed non displayed dim vals, some series might be duplicated
90
+ var grouped = R.groupBy(R.prop('id'), series);
91
+ return R.pipe(R.map(function (entries) {
92
+ if (R.length(entries) === 1) {
93
+ return R.head(entries);
94
+ }
95
+ var head = R.head(entries);
96
+ var children = R.pipe(R.pluck('children'), R.unnest)(entries);
97
+ return R.assoc('children', children, head);
98
+ }), R.values)(grouped);
99
+ }, R.sort(sortByCoordinates))(coordinates);
77
100
  };
@@ -62,4 +62,13 @@ Object.defineProperty(exports, 'getMSDInformations', {
62
62
  get: function get() {
63
63
  return _getMSDInformations.getMSDInformations;
64
64
  }
65
+ });
66
+
67
+ var _getNotDisplayedIds = require('./getNotDisplayedIds');
68
+
69
+ Object.defineProperty(exports, 'getNotDisplayedIds', {
70
+ enumerable: true,
71
+ get: function get() {
72
+ return _getNotDisplayedIds.getNotDisplayedIds;
73
+ }
65
74
  });
@@ -13,15 +13,16 @@ var _dotstatsuiteSdmxjs = require('@sis-cc/dotstatsuite-sdmxjs');
13
13
 
14
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; } }
15
15
 
16
- var dimensionValueDisplay = function dimensionValueDisplay(locale, display) {
16
+ var dimensionValueDisplay = function dimensionValueDisplay(display) {
17
17
  return function (data) {
18
18
  if (display === 'code') {
19
19
  return R.prop('id', data);
20
20
  }
21
+ var name = (0, _dotstatsuiteSdmxjs.getRefinedName)(data);
21
22
  if (display === 'both') {
22
- return R.prop('id', data) + ': ' + (0, _dotstatsuiteSdmxjs.getLocalisedName)(locale)(data);
23
+ return R.prop('id', data) + ': ' + name;
23
24
  }
24
- return (0, _dotstatsuiteSdmxjs.getLocalisedName)(locale)(data);
25
+ return name;
25
26
  };
26
27
  };
27
28
  // options = { locale, display, dimensions = [], attributes = { [id]: { format, parent } } };
@@ -64,7 +65,7 @@ var parseMetadataSeries = exports.parseMetadataSeries = function parseMetadataSe
64
65
  return acc;
65
66
  }
66
67
  var attribute = R.nth(attrIndex, metadataAttributes);
67
- var label = dimensionValueDisplay(options.locale, options.display)(attribute);
68
+ var label = dimensionValueDisplay(options.display)(attribute);
68
69
 
69
70
  var value = R.prop('value', R.nth(valueIndex, attribute.values || []));
70
71