@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.
- package/lib/rules/src/get-values-enhanced.js +1 -1
- package/lib/rules/src/v8-transformer.js +6 -6
- package/lib/rules2/src/{hierarchiseDimensionWithAdvancedHierarchy.js → hierarchiseDimensionWithAdvancedHierarchy2.js} +22 -17
- package/lib/rules2/src/{hierarchiseDimensionWithNativeHierarchy.js → hierarchiseDimensionWithNativeHierarchy2.js} +10 -5
- package/lib/rules2/src/index.js +21 -21
- package/lib/rules2/src/parseMetadataSeries.js +1 -3
- package/lib/rules2/src/prepareData.js +2 -2
- package/lib/rules2/src/refineDimensions.js +3 -6
- package/lib/rules2/src/table/getLayoutData2.js +218 -0
- package/lib/rules2/src/table/getTableProps.js +6 -9
- package/lib/rules2/src/table/parseSeriesIndexesHierarchies.js +96 -0
- package/lib/rules2/src/table/{refineLayoutSize.js → refineLayoutSize2.js} +53 -34
- package/package.json +1 -1
- package/src/rules/src/get-values-enhanced.js +33 -33
- package/src/rules/src/v8-transformer.js +6 -7
- package/src/rules2/src/{hierarchiseDimensionWithAdvancedHierarchy.js → hierarchiseDimensionWithAdvancedHierarchy2.js} +24 -23
- package/src/rules2/src/{hierarchiseDimensionWithNativeHierarchy.js → hierarchiseDimensionWithNativeHierarchy2.js} +31 -28
- package/src/rules2/src/index.js +5 -6
- package/src/rules2/src/parseMetadataSeries.js +5 -6
- package/src/rules2/src/prepareData.js +2 -2
- package/src/rules2/src/refineDimensions.js +3 -6
- package/src/rules2/src/table/getLayoutData2.js +175 -0
- package/src/rules2/src/table/getTableProps.js +8 -4
- package/src/rules2/src/table/parseSeriesIndexesHierarchies.js +62 -0
- package/src/rules2/src/table/{refineLayoutSize.js → refineLayoutSize2.js} +50 -21
- package/test/getLayoutData2.test.js +268 -0
- package/test/{hierarchiseDimensionWithAdvancedHierarchy.test.js → hierarchiseDimensionWithAdvancedHierarchy2.test.js} +34 -69
- package/test/{hierarchiseDimensionWithNativeHierarchy.test.js → hierarchiseDimensionWithNativeHierarchy2.test.js} +14 -14
- package/test/parseSeriesIndexesHierarchies.test.js +104 -0
- package/test/{refineLayoutSize.test.js → refineLayoutSize2.test.js} +63 -64
- package/test/refinedDimensions.test.js +8 -8
- package/lib/rules2/src/getSidebarData.js +0 -92
- package/lib/rules2/src/table/getLayoutData.js +0 -209
- package/src/rules2/src/getSidebarData.js +0 -85
- package/src/rules2/src/table/getLayoutData.js +0 -193
- package/test/getLayoutData.test.js +0 -284
- 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 (
|
|
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: (
|
|
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: (
|
|
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: (
|
|
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: (
|
|
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: (
|
|
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
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
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.
|
|
91
|
-
return (0, _extends3.default)({}, val, { parent: undefined, parents: [] });
|
|
92
|
-
})
|
|
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
|
-
})([],
|
|
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
|
|
22
|
-
|
|
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
|
-
|
|
25
|
-
var
|
|
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
|
};
|
package/lib/rules2/src/index.js
CHANGED
|
@@ -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('./
|
|
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/
|
|
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/
|
|
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 = (
|
|
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('./
|
|
36
|
+
var _hierarchiseDimensionWithNativeHierarchy = require('./hierarchiseDimensionWithNativeHierarchy2');
|
|
37
37
|
|
|
38
|
-
var _hierarchiseDimensionWithAdvancedHierarchy = require('./
|
|
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
|
|
16
|
+
var _parseSeriesIndexesHierarchies = require('./parseSeriesIndexesHierarchies');
|
|
21
17
|
|
|
22
|
-
var
|
|
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
|
|
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
|
+
};
|