@sis-cc/dotstatsuite-components 17.12.6 → 17.14.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 (37) hide show
  1. package/lib/rules/src/get-values-enhanced.js +1 -1
  2. package/lib/rules/src/v8-transformer.js +6 -6
  3. package/lib/rules2/src/{hierarchiseDimensionWithAdvancedHierarchy.js → hierarchiseDimensionWithAdvancedHierarchy2.js} +22 -17
  4. package/lib/rules2/src/{hierarchiseDimensionWithNativeHierarchy.js → hierarchiseDimensionWithNativeHierarchy2.js} +10 -5
  5. package/lib/rules2/src/index.js +21 -21
  6. package/lib/rules2/src/parseMetadataSeries.js +1 -3
  7. package/lib/rules2/src/prepareData.js +2 -2
  8. package/lib/rules2/src/refineDimensions.js +3 -6
  9. package/lib/rules2/src/table/getLayoutData2.js +218 -0
  10. package/lib/rules2/src/table/getTableProps.js +6 -9
  11. package/lib/rules2/src/table/parseSeriesIndexesHierarchies.js +96 -0
  12. package/lib/rules2/src/table/{refineLayoutSize.js → refineLayoutSize2.js} +53 -34
  13. package/package.json +1 -1
  14. package/src/rules/src/get-values-enhanced.js +33 -33
  15. package/src/rules/src/v8-transformer.js +6 -7
  16. package/src/rules2/src/{hierarchiseDimensionWithAdvancedHierarchy.js → hierarchiseDimensionWithAdvancedHierarchy2.js} +24 -23
  17. package/src/rules2/src/{hierarchiseDimensionWithNativeHierarchy.js → hierarchiseDimensionWithNativeHierarchy2.js} +31 -28
  18. package/src/rules2/src/index.js +5 -6
  19. package/src/rules2/src/parseMetadataSeries.js +5 -6
  20. package/src/rules2/src/prepareData.js +2 -2
  21. package/src/rules2/src/refineDimensions.js +3 -6
  22. package/src/rules2/src/table/getLayoutData2.js +175 -0
  23. package/src/rules2/src/table/getTableProps.js +8 -4
  24. package/src/rules2/src/table/parseSeriesIndexesHierarchies.js +62 -0
  25. package/src/rules2/src/table/{refineLayoutSize.js → refineLayoutSize2.js} +50 -21
  26. package/test/getLayoutData2.test.js +268 -0
  27. package/test/{hierarchiseDimensionWithAdvancedHierarchy.test.js → hierarchiseDimensionWithAdvancedHierarchy2.test.js} +34 -69
  28. package/test/{hierarchiseDimensionWithNativeHierarchy.test.js → hierarchiseDimensionWithNativeHierarchy2.test.js} +14 -14
  29. package/test/parseSeriesIndexesHierarchies.test.js +104 -0
  30. package/test/{refineLayoutSize.test.js → refineLayoutSize2.test.js} +63 -64
  31. package/test/refinedDimensions.test.js +8 -8
  32. package/lib/rules2/src/getSidebarData.js +0 -92
  33. package/lib/rules2/src/table/getLayoutData.js +0 -209
  34. package/src/rules2/src/getSidebarData.js +0 -85
  35. package/src/rules2/src/table/getLayoutData.js +0 -193
  36. package/test/getLayoutData.test.js +0 -284
  37. package/test/getSidebarData.test.js +0 -322
@@ -46,7 +46,7 @@ var getName = function getName(_ref) {
46
46
  start = _ref.start,
47
47
  reportYearStart = _ref.reportYearStart;
48
48
  return function (value) {
49
- if (!isTimeDimension) return (0, _dotstatsuiteSdmxjs.getRefinedName)(value);
49
+ if (!isTimeDimension) return R.prop('name')(value);
50
50
  return (0, _date.getReportedTimePeriodLabel)(options.frequency, options.timeFormat, locale)(reportYearStart, {
51
51
  id: value.id,
52
52
  reportedStart: start,
@@ -35,7 +35,7 @@ var dataTransformer = exports.dataTransformer = function dataTransformer(dataNew
35
35
  _hiddenIds = options.hiddenIds;
36
36
 
37
37
  var reportYearStart = (0, _getReportingYearStart.getReportingYearStart)(dataNew);
38
-
38
+ var getName = R.prop('name');
39
39
  //---------------------------------------------------------------------------------------Annotations
40
40
  var getStructure = R.pathOr({}, ['data', 'structure']);
41
41
  var structure = getStructure(dataNew);
@@ -56,7 +56,7 @@ var dataTransformer = exports.dataTransformer = function dataTransformer(dataNew
56
56
  var sender = getSender(meta);
57
57
 
58
58
  var resHeader = (0, _extends3.default)({}, meta, {
59
- sender: (0, _extends3.default)({}, sender, { name: (0, _dotstatsuiteSdmxjs.getRefinedName)(sender) })
59
+ sender: (0, _extends3.default)({}, sender, { name: getName(sender) })
60
60
  });
61
61
 
62
62
  //----------------------------------------------------------------------------------------Attributes
@@ -71,7 +71,7 @@ var dataTransformer = exports.dataTransformer = function dataTransformer(dataNew
71
71
  return (0, _extends3.default)({}, observation, {
72
72
  __index: index,
73
73
  display: !R.has(observation.id, hiddenIds) && !(0, _sdmxData.getIsHidden)(obsAnnotations),
74
- name: (0, _dotstatsuiteSdmxjs.getRefinedName)(observation),
74
+ name: getName(observation),
75
75
  values: (0, _getValuesEnhanced.getValuesEnhanced)({
76
76
  locale: locale,
77
77
  annotations: annotations,
@@ -89,7 +89,7 @@ var dataTransformer = exports.dataTransformer = function dataTransformer(dataNew
89
89
  var attrAnnotations = R.props(attr.annotations || [], annotations);
90
90
  return (0, _extends3.default)({}, attr, {
91
91
  display: !R.has(attr.id, hiddenIds) && !(0, _sdmxData.getIsHidden)(attrAnnotations),
92
- name: (0, _dotstatsuiteSdmxjs.getRefinedName)(attr),
92
+ name: getName(attr),
93
93
  values: (0, _getValuesEnhanced.getValuesEnhanced)({
94
94
  locale: locale,
95
95
  annotations: annotations,
@@ -134,7 +134,7 @@ var dataTransformer = exports.dataTransformer = function dataTransformer(dataNew
134
134
  observation: R.append((0, _extends3.default)({}, observation, {
135
135
  display: !isHidden,
136
136
  __index: obsIndex,
137
- name: (0, _dotstatsuiteSdmxjs.getRefinedName)(observation),
137
+ name: getName(observation),
138
138
  values: _idHidden ? [] : values,
139
139
  role: isTimeDimension ? TIME_PERIOD_ID : R.head(R.propOr([], 'roles', observation))
140
140
  }))(acc.observation),
@@ -150,7 +150,7 @@ var dataTransformer = exports.dataTransformer = function dataTransformer(dataNew
150
150
  observation = _getObservations.observation;
151
151
 
152
152
  var resStructure = (0, _extends3.default)({}, structure, {
153
- name: (0, _dotstatsuiteSdmxjs.getRefinedName)((0, _extends3.default)({}, structure, { id: options.dataflowId })),
153
+ name: getName((0, _extends3.default)({}, structure, { id: options.dataflowId })),
154
154
  annotations: annotations,
155
155
  attributes: resAttributes,
156
156
  dimensions: { observation: observation }
@@ -68,28 +68,33 @@ var hierarchiseDimensionWithAdvancedHierarchy = exports.hierarchiseDimensionWith
68
68
  var indexed = R.indexBy(R.prop('id'), dimension.values);
69
69
  var hierarchy = refinePartialHierarchy(_hierarchy, indexed);
70
70
 
71
- var rest = indexed;
72
- var getChildren = function getChildren(parents, hier) {
73
- return R.pipe(function (ids) {
74
- rest = R.omit(ids, rest);
75
- return R.props(ids, indexed);
76
- }, R.filter(R.identity), R.map(function (val) {
77
- var _val = (0, _extends3.default)({}, val, {
78
- parent: R.last(parents),
79
- parents: parents
80
- });
81
- var children = getChildren(R.append(val.id, parents), hier);
82
- return R.prepend(_val, children);
83
- }))(R.propOr([], R.isEmpty(parents) ? '#ROOT' : R.join('.', parents), hier));
71
+ var rest = R.pipe(R.values, R.unnest, R.flip(R.omit)(indexed), R.values)(hierarchy);
72
+ var index = R.length(rest) - 1;
73
+ var getChildren = function getChildren(_ref3) {
74
+ var parentsIndexes = _ref3.parentsIndexes,
75
+ parentId = _ref3.parentId;
76
+
77
+ var childrenIds = R.propOr([], parentId, hierarchy);
78
+ var children = R.reduce(function (acc, childId) {
79
+ if (!R.has(childId, indexed)) {
80
+ return acc;
81
+ }
82
+ index = index + 1;
83
+ var child = (0, _extends3.default)({}, R.prop(childId, indexed), { __indexPosition: index, parents: parentsIndexes, parent: R.isEmpty(parentsIndexes) ? undefined : R.pipe(R.split('.'), R.last)(parentId) });
84
+ var descendants = getChildren({ parentsIndexes: R.append(index, parentsIndexes), parentId: R.isEmpty(parentsIndexes) ? child.id : parentId + '.' + child.id });
85
+ return R.append(R.prepend(child, descendants), acc);
86
+ }, [], childrenIds);
87
+
88
+ return children;
84
89
  };
85
90
 
86
91
  return R.set(R.lensProp('values'), R.pipe(getChildren, R.flatten, function (values) {
87
92
  if (R.isEmpty(rest)) {
88
93
  return values;
89
94
  }
90
- var sortedRest = R.pipe(R.values, R.map(function (val) {
91
- return (0, _extends3.default)({}, val, { parent: undefined, parents: [] });
92
- }), R.sortBy(R.prop('__indexPosition')))(rest);
95
+ var sortedRest = R.pipe(R.sortBy(R.prop('__indexPosition')), R.addIndex(R.map)(function (val, ind) {
96
+ return (0, _extends3.default)({}, val, { __indexPosition: ind, parent: undefined, parents: [] });
97
+ }))(rest);
93
98
  return R.concat(sortedRest, values);
94
- })([], hierarchy))(dimension);
99
+ })({ parentsIndexes: [], parentId: '#ROOT' }))(dimension);
95
100
  };
@@ -18,14 +18,19 @@ var hierarchiseDimensionWithNativeHierarchy = exports.hierarchiseDimensionWithNa
18
18
  return val.parent && R.has(val.parent, indexed) ? val.parent : '#ROOT';
19
19
  }, values);
20
20
 
21
- var getChildren = function getChildren(parents) {
22
- var childs = R.propOr([], R.defaultTo('#ROOT', R.last(parents)), grouped);
21
+ var index = -1;
22
+ var getChildren = function getChildren(_ref) {
23
+ var parentsIndexes = _ref.parentsIndexes,
24
+ parentId = _ref.parentId;
25
+
26
+ var childs = R.propOr([], parentId, grouped);
23
27
  return R.reduce(function (acc, child) {
24
- var refined = R.pipe(R.assoc('parents', parents), R.assoc('parent', R.last(parents)))(child);
25
- var children = getChildren(R.append(child.id, parents));
28
+ index = index + 1;
29
+ var refined = R.pipe(R.assoc('__indexPosition', index), R.assoc('parents', parentsIndexes), R.assoc('parent', R.isEmpty(parentsIndexes) ? undefined : parentId))(child);
30
+ var children = getChildren({ parentsIndexes: R.append(index, parentsIndexes), parentId: child.id });
26
31
  return R.concat(acc, R.prepend(refined, children));
27
32
  }, [], childs);
28
33
  };
29
34
 
30
- return R.set(R.lensProp('values'), getChildren([]))(dimension);
35
+ return R.set(R.lensProp('values'), getChildren({ parentsIndexes: [], parentId: '#ROOT' }))(dimension);
31
36
  };
@@ -19,15 +19,6 @@ Object.defineProperty(exports, 'SDMX_3_0_CSV_DATA_FORMAT', {
19
19
  }
20
20
  });
21
21
 
22
- var _getSidebarData = require('./getSidebarData');
23
-
24
- Object.defineProperty(exports, 'getSidebarData', {
25
- enumerable: true,
26
- get: function get() {
27
- return _getSidebarData.getSidebarData;
28
- }
29
- });
30
-
31
22
  var _parseMetadataSeries = require('./parseMetadataSeries');
32
23
 
33
24
  Object.defineProperty(exports, 'parseMetadataSeries', {
@@ -97,15 +88,6 @@ Object.defineProperty(exports, 'parseHierarchicalCodelist', {
97
88
  }
98
89
  });
99
90
 
100
- var _hierarchiseDimensionWithAdvancedHierarchy = require('./hierarchiseDimensionWithAdvancedHierarchy');
101
-
102
- Object.defineProperty(exports, 'refinePartialHierarchy', {
103
- enumerable: true,
104
- get: function get() {
105
- return _hierarchiseDimensionWithAdvancedHierarchy.refinePartialHierarchy;
106
- }
107
- });
108
-
109
91
  var _getMetadataCoordinates = require('./getMetadataCoordinates');
110
92
 
111
93
  Object.defineProperty(exports, 'getMetadataCoordinates', {
@@ -123,6 +105,15 @@ Object.defineProperty(exports, 'duplicateObs', {
123
105
  return _duplicateObservations.duplicateObs;
124
106
  }
125
107
  });
108
+
109
+ var _hierarchiseDimensionWithAdvancedHierarchy = require('./hierarchiseDimensionWithAdvancedHierarchy2');
110
+
111
+ Object.defineProperty(exports, 'refinePartialHierarchy', {
112
+ enumerable: true,
113
+ get: function get() {
114
+ return _hierarchiseDimensionWithAdvancedHierarchy.refinePartialHierarchy;
115
+ }
116
+ });
126
117
  Object.defineProperty(exports, 'hierarchiseDimensionWithAdvancedHierarchy', {
127
118
  enumerable: true,
128
119
  get: function get() {
@@ -130,7 +121,7 @@ Object.defineProperty(exports, 'hierarchiseDimensionWithAdvancedHierarchy', {
130
121
  }
131
122
  });
132
123
 
133
- var _hierarchiseDimensionWithNativeHierarchy = require('./hierarchiseDimensionWithNativeHierarchy');
124
+ var _hierarchiseDimensionWithNativeHierarchy = require('./hierarchiseDimensionWithNativeHierarchy2');
134
125
 
135
126
  Object.defineProperty(exports, 'hierarchiseDimensionWithNativeHierarchy', {
136
127
  enumerable: true,
@@ -301,7 +292,7 @@ Object.defineProperty(exports, 'getSortedLayoutIndexes', {
301
292
  }
302
293
  });
303
294
 
304
- var _refineLayoutSize = require('./table/refineLayoutSize');
295
+ var _refineLayoutSize = require('./table/refineLayoutSize2');
305
296
 
306
297
  Object.defineProperty(exports, 'refineLayoutSize', {
307
298
  enumerable: true,
@@ -319,7 +310,7 @@ Object.defineProperty(exports, 'getFlagsAndNotes', {
319
310
  }
320
311
  });
321
312
 
322
- var _getLayoutData = require('./table/getLayoutData');
313
+ var _getLayoutData = require('./table/getLayoutData2');
323
314
 
324
315
  Object.defineProperty(exports, 'getLayoutData', {
325
316
  enumerable: true,
@@ -407,4 +398,13 @@ Object.defineProperty(exports, 'parseValueHierarchy', {
407
398
  get: function get() {
408
399
  return _parseValueHierarchy.parseValueHierarchy;
409
400
  }
401
+ });
402
+
403
+ var _parseSeriesIndexesHierarchies = require('./table/parseSeriesIndexesHierarchies');
404
+
405
+ Object.defineProperty(exports, 'parseLayoutIndexesHierarchies', {
406
+ enumerable: true,
407
+ get: function get() {
408
+ return _parseSeriesIndexesHierarchies.parseLayoutIndexesHierarchies;
409
+ }
410
410
  });
@@ -13,8 +13,6 @@ var _ramda = require('ramda');
13
13
 
14
14
  var R = _interopRequireWildcard(_ramda);
15
15
 
16
- var _dotstatsuiteSdmxjs = require('@sis-cc/dotstatsuite-sdmxjs');
17
-
18
16
  var _constants = require('./constants');
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; } }
@@ -26,7 +24,7 @@ var dimensionValueDisplay = function dimensionValueDisplay(display) {
26
24
  if (display === 'code') {
27
25
  return R.prop('id', data);
28
26
  }
29
- var name = (0, _dotstatsuiteSdmxjs.getRefinedName)(data);
27
+ var name = R.prop('name')(data);
30
28
  if (display === 'both') {
31
29
  return R.prop('id', data) + ': ' + name;
32
30
  }
@@ -33,9 +33,9 @@ var _getManyValuesDimensions = require('./getManyValuesDimensions');
33
33
 
34
34
  var _getOneValueDimensions = require('./getOneValueDimensions');
35
35
 
36
- var _hierarchiseDimensionWithNativeHierarchy = require('./hierarchiseDimensionWithNativeHierarchy');
36
+ var _hierarchiseDimensionWithNativeHierarchy = require('./hierarchiseDimensionWithNativeHierarchy2');
37
37
 
38
- var _hierarchiseDimensionWithAdvancedHierarchy = require('./hierarchiseDimensionWithAdvancedHierarchy');
38
+ var _hierarchiseDimensionWithAdvancedHierarchy = require('./hierarchiseDimensionWithAdvancedHierarchy2');
39
39
 
40
40
  var _getDataflowAttributes = require('./getDataflowAttributes');
41
41
 
@@ -25,15 +25,12 @@ var refineDimensions = exports.refineDimensions = function refineDimensions() {
25
25
 
26
26
  return R.addIndex(R.map)(function (dim, index) {
27
27
  var selection = R.nth(index, selectionIds);
28
- if (R.isNil(selection) || R.length(selection) === 0 || R.isEmpty(R.head(selection))) {
29
- return (0, _extends3.default)({}, dim, { header: R.length(dim.values || []) <= 1 });
30
- }
31
28
  var values = R.map(function (val) {
32
- if (R.includes(val.id, selection)) {
33
- return val;
29
+ if (R.includes(val.id, selection || []) || R.isNil(selection) || R.length(selection) === 0 || R.isEmpty(R.head(selection))) {
30
+ return R.assoc('isSelected', true, val);
34
31
  }
35
32
  return R.assoc('empty', true, val);
36
33
  }, dim.values || []);
37
- return (0, _extends3.default)({}, dim, { values: values, header: R.length(values) <= 1 || R.length(selection) === 1 });
34
+ return (0, _extends3.default)({}, dim, { values: values, header: R.length(values) <= 1 || R.length(selection) === 1 && !R.isEmpty(R.head(selection)) });
38
35
  }, dimensions);
39
36
  };
@@ -0,0 +1,218 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getLayoutData = exports.getSerieDatas = undefined;
7
+
8
+ var _slicedToArray2 = require('babel-runtime/helpers/slicedToArray');
9
+
10
+ var _slicedToArray3 = _interopRequireDefault(_slicedToArray2);
11
+
12
+ var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
13
+
14
+ var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
15
+
16
+ var _extends2 = require('babel-runtime/helpers/extends');
17
+
18
+ var _extends3 = _interopRequireDefault(_extends2);
19
+
20
+ var _ramda = require('ramda');
21
+
22
+ var R = _interopRequireWildcard(_ramda);
23
+
24
+ var _getFlagsAndNotes = require('./getFlagsAndNotes');
25
+
26
+ var _utils = require('../utils');
27
+
28
+ 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
+
30
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
+
32
+ var getValueData = function getValueData(index, dimension, parentsIndexes) {
33
+ return {
34
+ dimension: R.pick(['id', 'name', '__index'], dimension),
35
+ value: (0, _extends3.default)({}, R.pipe(R.pathOr({}, ['values', index]), R.pick(['id', 'name']))(dimension), {
36
+ parents: parentsIndexes
37
+ })
38
+ };
39
+ };
40
+
41
+ var addCoordinatesToKey = function addCoordinatesToKey(key, dimensionId, valueId) {
42
+ return '' + key + (R.isEmpty(key) ? '' : ':') + dimensionId + '=' + valueId;
43
+ };
44
+
45
+ var simpleValueDataSetter = function simpleValueDataSetter(valueData) {
46
+ var datas = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
47
+ return R.append(valueData, datas);
48
+ };
49
+
50
+ var combinedValueDataSetter = function combinedValueDataSetter(valueData) {
51
+ var datas = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
52
+ return R.over(R.lensIndex(-1), function (d) {
53
+ return (0, _extends3.default)({}, d, { values: R.append(R.prop('value', valueData), d.values) });
54
+ }, datas);
55
+ };
56
+
57
+ var addValueToSerieData = function addValueToSerieData(dataSetter) {
58
+ return function (index, parentsIndexes, dimension, serieData) {
59
+ var valueData = getValueData(index, dimension, parentsIndexes);
60
+ var valueId = R.path(['value', 'id'], valueData);
61
+ return (0, _extends3.default)({}, serieData, {
62
+ data: dataSetter(valueData, R.prop('data', serieData)),
63
+ coordinates: R.assoc(dimension.id, valueId, R.prop('coordinates', serieData)),
64
+ key: addCoordinatesToKey(R.prop('key', serieData), R.prop('id', dimension), valueId)
65
+ });
66
+ };
67
+ };
68
+
69
+ var addSimpleValueToSerieData = addValueToSerieData(simpleValueDataSetter);
70
+
71
+ var addCombinedValueToSerieData = addValueToSerieData(combinedValueDataSetter);
72
+
73
+ var getHasAdvancedAttributes = function getHasAdvancedAttributes(attrValues, customAttributes) {
74
+ return R.pipe(R.omit(R.concat(customAttributes.flags || [], customAttributes.notes || [])), R.isEmpty, R.not)(attrValues);
75
+ };
76
+
77
+ var getCoordinates = function getCoordinates(indexes, topCoordinates, definition) {
78
+ return R.addIndex(R.reduce)(function (acc, entry, index) {
79
+ if (R.has('dimensions', entry)) {
80
+ return R.addIndex(R.reduce)(function (_acc, dim, _index) {
81
+ var valInd = R.path([index, _index], indexes);
82
+ return R.assoc(dim.id, R.path(['values', valInd, 'id'], dim), _acc);
83
+ }, acc, entry.dimensions);
84
+ }
85
+ var valInd = R.nth(index, indexes);
86
+ return R.assoc(entry.id, R.path(['values', valInd, 'id'], entry), acc);
87
+ }, topCoordinates, definition);
88
+ };
89
+
90
+ var getAttributesSeries = function getAttributesSeries(validator, attributesSeries) {
91
+ return R.reduce(function (acc, attrs) {
92
+ var attr = R.head(R.values(attrs));
93
+ var coordinates = R.propOr({}, 'coordinates', attr);
94
+ var isValid = validator(coordinates);
95
+ if (!isValid && !attr.isObs) {
96
+ return acc;
97
+ }
98
+ return (0, _extends3.default)({}, acc, attrs);
99
+ }, {}, R.values(attributesSeries));
100
+ };
101
+
102
+ var combineConcepts = function combineConcepts(combDimValues, definition, attrValues) {
103
+ return R.over(R.lensProp('data'), R.over(R.lensIndex(-1), function (data) {
104
+ return (0, _extends3.default)({}, data, {
105
+ values: R.reduce(function (acc, conceptId) {
106
+ if (R.has(conceptId, combDimValues)) {
107
+ return R.append(R.prop(conceptId, combDimValues), acc);
108
+ }
109
+ if (R.has(conceptId, definition.fixedDimValues || {})) {
110
+ return R.append(R.prop(conceptId, definition.fixedDimValues), acc);
111
+ }
112
+ if (R.has(conceptId, attrValues)) {
113
+ var value = R.path([conceptId, 'value'], attrValues);
114
+ return R.append(value, acc);
115
+ }
116
+ return acc;
117
+ }, [], definition.concepts)
118
+ });
119
+ }));
120
+ };
121
+
122
+ var getSerieFlagsAndSideProps = function getSerieFlagsAndSideProps(coordinates, validator, attributesValues, customAttributes, metadataCoordinates) {
123
+ var layoutAttrValues = R.reject(R.prop('isObs'), attributesValues);
124
+ var flags = (0, _getFlagsAndNotes.getFlagsAndNotes)(layoutAttrValues, customAttributes);
125
+ var hasMetadata = !R.isNil(R.find(validator, metadataCoordinates));
126
+ var hasAdvancedAttributes = getHasAdvancedAttributes(layoutAttrValues, customAttributes);
127
+ var sideProps = hasMetadata || hasAdvancedAttributes ? { hasMetadata: hasMetadata, hasAdvancedAttributes: hasAdvancedAttributes, coordinates: coordinates } : null;
128
+ return { flags: flags, sideProps: sideProps };
129
+ };
130
+
131
+ var getSerieDatas = exports.getSerieDatas = function getSerieDatas(serie, definition, topCoordinates, attributesSeries, customAttributes, metadataCoordinates) {
132
+ var lines = [];
133
+
134
+ var serieCoordinates = getCoordinates(serie.indexes, topCoordinates, definition);
135
+ var coordinatesValidator = (0, _utils.getLayoutCoordinatesValidator)(serieCoordinates, topCoordinates);
136
+ var attributesValues = getAttributesSeries(coordinatesValidator, attributesSeries);
137
+
138
+ var addMissingParentsLines = function addMissingParentsLines(dataSetter) {
139
+ return function (missingParentsIndexes, parentsIndexes, dim, serieData) {
140
+ return R.reduce(function (parents, index) {
141
+ var missingParentData = addValueToSerieData(dataSetter)(index, parents, dim, serieData);
142
+ lines.push(R.assoc('isEmpty', true, missingParentData));
143
+ return R.append(index, parents);
144
+ }, parentsIndexes, missingParentsIndexes);
145
+ };
146
+ };
147
+
148
+ var addSimpleMissingParentsLines = addMissingParentsLines(simpleValueDataSetter);
149
+ var addCombinedMissingParentsLines = addMissingParentsLines(combinedValueDataSetter);
150
+
151
+ var serieData = R.addIndex(R.reduce)(function (onGoingSerie, entry, index) {
152
+ if (R.has('dimensions', entry)) {
153
+ var combValuesIndexes = R.pathOr([], ['indexes', index], serie);
154
+ var combParentsIndexes = R.pathOr([], ['parentsIndexes', index], serie);
155
+ var combMissingParentsIndexes = R.pathOr([], ['missingIndexes', index], serie);
156
+ var combDimValues = {};
157
+ var res = R.addIndex(R.reduce)(function (combSerie, dimension, dimIndex) {
158
+ var valueIndex = Math.abs(R.nth(dimIndex, combValuesIndexes));
159
+ var _parentsIndexes = R.nth(dimIndex, combParentsIndexes) || [];
160
+ var missingParentsIndexes = R.nth(dimIndex, combMissingParentsIndexes) || [];
161
+ var parentsIndexes = addCombinedMissingParentsLines(missingParentsIndexes, _parentsIndexes, dimension, combSerie);
162
+ var next = addCombinedValueToSerieData(valueIndex, parentsIndexes, dimension, combSerie);
163
+ var value = R.pipe(R.prop('data'), R.last, R.prop('values'), R.last)(next);
164
+ combDimValues = R.assoc(dimension.id, value, combDimValues);
165
+ return next;
166
+ }, R.over(R.lensProp('data'), R.append({ dimension: R.pick(['id', 'name'], entry), values: [] }))(onGoingSerie), R.propOr([], 'dimensions', entry));
167
+
168
+ var combined = combineConcepts(combDimValues, entry, attributesValues)(res);
169
+ attributesValues = R.omit(entry.concepts, attributesValues);
170
+ return combined;
171
+ }
172
+
173
+ var valueIndex = Math.abs(R.path(['indexes', index], serie));
174
+ var _parentsIndexes = R.pathOr([], ['parentsIndexes', index], serie);
175
+ var missingParentsIndexes = R.pathOr([], ['missingIndexes', index], serie);
176
+ var parentsIndexes = addSimpleMissingParentsLines(missingParentsIndexes, _parentsIndexes, entry, onGoingSerie);
177
+ return addSimpleValueToSerieData(valueIndex, parentsIndexes, entry, onGoingSerie);
178
+ }, { data: [], coordinates: {}, key: '', sideProps: null, flags: [] }, definition);
179
+
180
+ var _getSerieFlagsAndSide = getSerieFlagsAndSideProps(serieCoordinates, coordinatesValidator, attributesValues, customAttributes, metadataCoordinates),
181
+ flags = _getSerieFlagsAndSide.flags,
182
+ sideProps = _getSerieFlagsAndSide.sideProps;
183
+
184
+ lines.push((0, _extends3.default)({}, serieData, { flags: flags, sideProps: sideProps }));
185
+ return lines;
186
+ };
187
+
188
+ var getLayoutData = function getLayoutData(layoutIndexes, layout, _ref) {
189
+ var metadataCoordinates = _ref.metadataCoordinates,
190
+ attributesSeries = _ref.attributesSeries,
191
+ customAttributes = _ref.customAttributes,
192
+ _ref$topCoordinates = _ref.topCoordinates,
193
+ topCoordinates = _ref$topCoordinates === undefined ? {} : _ref$topCoordinates;
194
+ var header = layoutIndexes.header,
195
+ sections = layoutIndexes.sections,
196
+ rest = (0, _objectWithoutProperties3.default)(layoutIndexes, ['header', 'sections']);
197
+
198
+
199
+ var headerData = R.reduce(function (acc, serie) {
200
+ var datas = getSerieDatas(serie, layout.header, topCoordinates, attributesSeries, customAttributes, metadataCoordinates);
201
+ return R.concat(acc, datas);
202
+ }, [], header);
203
+
204
+ var sectionsData = R.map(function (_ref2) {
205
+ var _ref3 = (0, _slicedToArray3.default)(_ref2, 2),
206
+ sectionSerie = _ref3[0],
207
+ rowsSeries = _ref3[1];
208
+
209
+ var sectionData = getSerieDatas(sectionSerie, layout.sections, topCoordinates, attributesSeries, customAttributes, metadataCoordinates);
210
+ return [R.last(sectionData), R.reduce(function (acc, serie) {
211
+ var datas = getSerieDatas(serie, layout.rows, sectionData.coordinates, attributesSeries, customAttributes, metadataCoordinates);
212
+ return R.concat(acc, datas);
213
+ }, [], rowsSeries)];
214
+ }, sections);
215
+
216
+ return (0, _extends3.default)({ headerData: headerData, sectionsData: sectionsData }, rest);
217
+ };
218
+ exports.getLayoutData = getLayoutData;
@@ -9,17 +9,15 @@ var _extends2 = require('babel-runtime/helpers/extends');
9
9
 
10
10
  var _extends3 = _interopRequireDefault(_extends2);
11
11
 
12
- var _ramda = require('ramda');
13
-
14
- var R = _interopRequireWildcard(_ramda);
15
-
16
12
  var _getLayout = require('./getLayout');
17
13
 
18
14
  var _getSortedLayoutIndexes = require('./getSortedLayoutIndexes');
19
15
 
20
- var _refineLayoutSize = require('./refineLayoutSize');
16
+ var _parseSeriesIndexesHierarchies = require('./parseSeriesIndexesHierarchies');
21
17
 
22
- var _getLayoutData = require('./getLayoutData');
18
+ var _refineLayoutSize = require('./refineLayoutSize2');
19
+
20
+ var _getLayoutData = require('./getLayoutData2');
23
21
 
24
22
  var _getCellsAttributesIds = require('./getCellsAttributesIds');
25
23
 
@@ -31,8 +29,6 @@ var _getCuratedCells = require('./getCuratedCells');
31
29
 
32
30
  var _getSeriesCombinations = require('../getSeriesCombinations');
33
31
 
34
- 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; } }
35
-
36
32
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
37
33
 
38
34
  var getTableProps = exports.getTableProps = function getTableProps(_ref) {
@@ -54,7 +50,8 @@ var getTableProps = exports.getTableProps = function getTableProps(_ref) {
54
50
  var seriesCombinations = (0, _getSeriesCombinations.getSeriesCombinations)(combinations, oneValueDimensions);
55
51
  var layout = (0, _getLayout.getLayout)(layoutIds, dimensions, seriesCombinations, isTimeInverted);
56
52
  var layoutIndexes = (0, _getSortedLayoutIndexes.getSortedLayoutIndexes)(layout, observations);
57
- var refinedLayoutIndexes = (0, _refineLayoutSize.refineLayoutSize)({ layout: layout, observations: observations, limit: limit })(layoutIndexes);
53
+ var enhancedLayoutIndexes = (0, _parseSeriesIndexesHierarchies.parseLayoutIndexesHierarchies)(layoutIndexes, layout);
54
+ var refinedLayoutIndexes = (0, _refineLayoutSize.refineLayoutSize)({ layout: layout, observations: observations, limit: limit })(enhancedLayoutIndexes);
58
55
  var layoutData = (0, _getLayoutData.getLayoutData)(refinedLayoutIndexes, layout, { metadataCoordinates: metadataCoordinates, attributesSeries: attributesSeries, customAttributes: customAttributes, topCoordinates: header.coordinates });
59
56
 
60
57
  var cellsAttributesIds = (0, _getCellsAttributesIds.getCellsAttributesIds)(layoutIds, attributes);
@@ -0,0 +1,96 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.parseLayoutIndexesHierarchies = exports.parseSeriesIndexesHierarchies = undefined;
7
+
8
+ var _slicedToArray2 = require('babel-runtime/helpers/slicedToArray');
9
+
10
+ var _slicedToArray3 = _interopRequireDefault(_slicedToArray2);
11
+
12
+ var _set = require('babel-runtime/core-js/set');
13
+
14
+ var _set2 = _interopRequireDefault(_set);
15
+
16
+ var _ramda = require('ramda');
17
+
18
+ var R = _interopRequireWildcard(_ramda);
19
+
20
+ 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; } }
21
+
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+
24
+ var parseSerieIndexesHierarchies = function parseSerieIndexesHierarchies(serieIndexes, previousSerie, dimensions) {
25
+ var isSameSerie = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
26
+
27
+ return R.addIndex(R.reduce)(function (acc, _valueIndex, dimensionIndex) {
28
+ if (R.is(Array, _valueIndex)) {
29
+ var previous = R.isEmpty(previousSerie) ? {} : {
30
+ indexes: R.nth(dimensionIndex, previousSerie.indexes || []),
31
+ parentsIndexes: R.nth(dimensionIndex, previousSerie.parentsIndexes || []),
32
+ missingIndexes: R.nth(dimensionIndex, previousSerie.missingIndexes || []),
33
+ registeredIndexes: R.nth(dimensionIndex, previousSerie.registeredIndexes || [])
34
+ };
35
+ var parsed = parseSerieIndexesHierarchies(_valueIndex, previous, R.pathOr([], [dimensionIndex, 'dimensions'], dimensions), acc.isSameSerie);
36
+ return {
37
+ parentsIndexes: R.append(parsed.parentsIndexes, acc.parentsIndexes),
38
+ missingIndexes: R.append(parsed.missingIndexes, acc.missingIndexes),
39
+ registeredIndexes: R.append(parsed.registeredIndexes, acc.registeredIndexes),
40
+ isSameSerie: parsed.isSameSerie
41
+ };
42
+ }
43
+ var valueIndex = Math.abs(_valueIndex);
44
+ var _parentsIndexes = R.pathOr([], [dimensionIndex, 'values', valueIndex, 'parents'], dimensions);
45
+ var previousIndex = acc.isSameSerie ? R.pathOr(-1, ['indexes', dimensionIndex], previousSerie) : -1;
46
+ var previousRegisteredIndexes = acc.isSameSerie ? R.pathOr(new _set2.default(), ['registeredIndexes', dimensionIndex], previousSerie) : new _set2.default();
47
+ var registeredIndexes = new _set2.default(previousRegisteredIndexes);
48
+
49
+ var _R$reduce = R.reduce(function (_acc, ind) {
50
+ if (previousRegisteredIndexes.has(ind)) {
51
+ return R.over(R.lensIndex(0), R.append(ind), _acc);
52
+ } else if (ind > previousIndex && R.pathOr(false, [dimensionIndex, 'values', ind, 'isSelected'], dimensions)) {
53
+ registeredIndexes.add(ind);
54
+ return R.over(R.lensIndex(1), R.append(ind), _acc);
55
+ }
56
+ return _acc;
57
+ }, [[], []], _parentsIndexes),
58
+ _R$reduce2 = (0, _slicedToArray3.default)(_R$reduce, 2),
59
+ parentsIndexes = _R$reduce2[0],
60
+ missingParentsIndexes = _R$reduce2[1];
61
+
62
+ registeredIndexes.add(valueIndex);
63
+ return {
64
+ parentsIndexes: R.append(parentsIndexes, acc.parentsIndexes),
65
+ missingIndexes: R.append(missingParentsIndexes, acc.missingIndexes),
66
+ registeredIndexes: R.append(registeredIndexes, acc.registeredIndexes),
67
+ isSameSerie: acc.isSameSerie && valueIndex === previousIndex
68
+ };
69
+ }, { parentsIndexes: [], missingIndexes: [], registeredIndexes: [], isSameSerie: isSameSerie }, serieIndexes);
70
+ };
71
+
72
+ var parseSeriesIndexesHierarchies = exports.parseSeriesIndexesHierarchies = function parseSeriesIndexesHierarchies(seriesIndexes, dimensions) {
73
+ return R.reduce(function (acc, serieIndexes) {
74
+ var previousSerie = R.last(acc) || {};
75
+
76
+ var _parseSerieIndexesHie = parseSerieIndexesHierarchies(serieIndexes, previousSerie, dimensions),
77
+ parentsIndexes = _parseSerieIndexesHie.parentsIndexes,
78
+ missingIndexes = _parseSerieIndexesHie.missingIndexes,
79
+ registeredIndexes = _parseSerieIndexesHie.registeredIndexes;
80
+
81
+ return R.append({ indexes: serieIndexes, parentsIndexes: parentsIndexes, missingIndexes: missingIndexes, registeredIndexes: registeredIndexes }, acc);
82
+ }, [], seriesIndexes);
83
+ };
84
+
85
+ var parseLayoutIndexesHierarchies = exports.parseLayoutIndexesHierarchies = function parseLayoutIndexesHierarchies(layoutIndexes, layout) {
86
+ var header = parseSeriesIndexesHierarchies(layoutIndexes.header, layout.header);
87
+ var sections = R.map(function (_ref) {
88
+ var _ref2 = (0, _slicedToArray3.default)(_ref, 2),
89
+ sectionIndexes = _ref2[0],
90
+ rowsIndexes = _ref2[1];
91
+
92
+ return [{ indexes: sectionIndexes, parentsIndexes: [], missingIndexes: [] }, parseSeriesIndexesHierarchies(rowsIndexes, layout.rows)];
93
+ }, layoutIndexes.sections);
94
+
95
+ return { header: header, sections: sections };
96
+ };