@sis-cc/dotstatsuite-components 20.5.0 → 21.0.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 (165) hide show
  1. package/.gitlab-ci.yml +3 -2
  2. package/LICENSE +1 -1
  3. package/README.md +1 -17
  4. package/package.json +20 -14
  5. package/src/bridge-d3-react/src/react-chart-factory.js +1 -2
  6. package/src/rules/src/factories/sample-series.js +1 -1
  7. package/src/rules/src/index.js +14 -13
  8. package/src/rules/src/observation-formater.js +0 -1
  9. package/src/rules/src/properties/focus.js +3 -3
  10. package/src/rules/src/sdmx-data/index.js +2 -0
  11. package/src/rules2/src/hierarchiseDimensionWithNativeHierarchy2.js +5 -1
  12. package/src/rules2/src/table/getLayoutData2.js +4 -1
  13. package/src/viewer/src/index.js +4 -5
  14. package/src/viewer/src/legends/AxisLegend.js +0 -7
  15. package/src/viewer/src/legends/FocusLegend.js +2 -10
  16. package/src/viewer/src/legends/Legend.js +0 -6
  17. package/src/viewer/src/legends/SeriesLegend.js +0 -7
  18. package/test/hierarchiseDimensionWithNativeHierarchy2.test.js +59 -32
  19. package/vite.config.mjs +51 -0
  20. package/lib/app.js +0 -22
  21. package/lib/bridge-d3-react/src/app.js +0 -98
  22. package/lib/bridge-d3-react/src/index.js +0 -33
  23. package/lib/bridge-d3-react/src/mock-choro.js +0 -41
  24. package/lib/bridge-d3-react/src/react-chart-factory.js +0 -103
  25. package/lib/index.js +0 -41
  26. package/lib/rules/src/chart/getAxisOptions.js +0 -206
  27. package/lib/rules/src/chart/getBaseOptions.js +0 -51
  28. package/lib/rules/src/chart/getChartOptions.js +0 -106
  29. package/lib/rules/src/chart/getGridOptions.js +0 -21
  30. package/lib/rules/src/chart/getTooltipOptions.js +0 -84
  31. package/lib/rules/src/constants.js +0 -68
  32. package/lib/rules/src/date.js +0 -180
  33. package/lib/rules/src/dimension-utils.js +0 -67
  34. package/lib/rules/src/factories/choro-series.js +0 -99
  35. package/lib/rules/src/factories/sample-focus.js +0 -64
  36. package/lib/rules/src/factories/sample-series.js +0 -90
  37. package/lib/rules/src/factories/scatter-dimension.js +0 -72
  38. package/lib/rules/src/factories/scatter-focus.js +0 -77
  39. package/lib/rules/src/factories/scatter-series.js +0 -145
  40. package/lib/rules/src/factories/stacked-dimension.js +0 -42
  41. package/lib/rules/src/factories/stacked-series.js +0 -166
  42. package/lib/rules/src/factories/symbol-dimension.js +0 -69
  43. package/lib/rules/src/factories/symbol-series.js +0 -119
  44. package/lib/rules/src/factories/timeline-focus.js +0 -38
  45. package/lib/rules/src/factories/timeline-series.js +0 -121
  46. package/lib/rules/src/get-values-enhanced.js +0 -141
  47. package/lib/rules/src/header/getDefaultSubtitle.js +0 -50
  48. package/lib/rules/src/header/getHeaderUnits.js +0 -26
  49. package/lib/rules/src/header/getSubtitleFlags.js +0 -53
  50. package/lib/rules/src/header/getTitleFlags.js +0 -24
  51. package/lib/rules/src/header/index.js +0 -41
  52. package/lib/rules/src/index.js +0 -714
  53. package/lib/rules/src/layout.js +0 -98
  54. package/lib/rules/src/observation-formater.js +0 -112
  55. package/lib/rules/src/preparators/enhanceObservations.js +0 -142
  56. package/lib/rules/src/preparators/formatValue.js +0 -83
  57. package/lib/rules/src/preparators/getObservations.js +0 -27
  58. package/lib/rules/src/preparators/getReportingYearStart.js +0 -52
  59. package/lib/rules/src/properties/errors.js +0 -31
  60. package/lib/rules/src/properties/focus.js +0 -90
  61. package/lib/rules/src/properties/getAvailableChartTypes.js +0 -30
  62. package/lib/rules/src/properties/getHeaderProps.js +0 -83
  63. package/lib/rules/src/properties/getInformationsStateFromNewProps.js +0 -61
  64. package/lib/rules/src/properties/getObservationsType.js +0 -31
  65. package/lib/rules/src/properties/getStringifiedSubtitle.js +0 -18
  66. package/lib/rules/src/properties/index.js +0 -401
  67. package/lib/rules/src/properties/information.js +0 -79
  68. package/lib/rules/src/properties/linear.js +0 -158
  69. package/lib/rules/src/properties/scatter.js +0 -174
  70. package/lib/rules/src/properties/stacked.js +0 -133
  71. package/lib/rules/src/properties/symbol.js +0 -96
  72. package/lib/rules/src/properties/utils.js +0 -126
  73. package/lib/rules/src/sdmx-data/index.js +0 -55
  74. package/lib/rules/src/table/factories/getCellValue.js +0 -57
  75. package/lib/rules/src/table/index.js +0 -14
  76. package/lib/rules/src/v8-transformer.js +0 -184
  77. package/lib/rules/test/extractSdmxArtefacts.js +0 -37
  78. package/lib/rules/test/get-values-enhanced.test.js +0 -128
  79. package/lib/rules/test/oecd-HEALTH_PROT-parsed.js +0 -303
  80. package/lib/rules/test/scatter-property.js +0 -403
  81. package/lib/rules/test/stacked-property.js +0 -244
  82. package/lib/rules/test/symbol-property.js +0 -234
  83. package/lib/rules/test/v8-transformer.test.js +0 -82
  84. package/lib/rules2/src/applyHierarchicalCodesToDim.js +0 -175
  85. package/lib/rules2/src/combinedValuesDisplay.js +0 -71
  86. package/lib/rules2/src/constants.js +0 -11
  87. package/lib/rules2/src/duplicateObservations.js +0 -39
  88. package/lib/rules2/src/enhanceObservations.js +0 -103
  89. package/lib/rules2/src/getAdvAttrSeriesAtCoordinates.js +0 -39
  90. package/lib/rules2/src/getAttributesSeries.js +0 -40
  91. package/lib/rules2/src/getCombinationDefinitions.js +0 -72
  92. package/lib/rules2/src/getDataflowAttributes.js +0 -34
  93. package/lib/rules2/src/getDataflowTooltipAttributesIds.js +0 -38
  94. package/lib/rules2/src/getDimensionValuesIndexes.js +0 -19
  95. package/lib/rules2/src/getHCodelistsRefsInData.js +0 -49
  96. package/lib/rules2/src/getHeaderCombinations.js +0 -51
  97. package/lib/rules2/src/getHeaderCoordinates.js +0 -18
  98. package/lib/rules2/src/getHeaderSubtitle.js +0 -41
  99. package/lib/rules2/src/getHeaderTitle.js +0 -29
  100. package/lib/rules2/src/getMSDInformations.js +0 -43
  101. package/lib/rules2/src/getManyValuesDimensions.js +0 -39
  102. package/lib/rules2/src/getMetadataCoordinates.js +0 -40
  103. package/lib/rules2/src/getMetadataStructureFromData.js +0 -23
  104. package/lib/rules2/src/getNotDisplayedIds.js +0 -58
  105. package/lib/rules2/src/getOneValueDimensions.js +0 -48
  106. package/lib/rules2/src/getSeriesCombinations.js +0 -33
  107. package/lib/rules2/src/hasCellMetadata.js +0 -22
  108. package/lib/rules2/src/hierarchiseDimensionWithAdvancedHierarchy2.js +0 -65
  109. package/lib/rules2/src/hierarchiseDimensionWithNativeHierarchy2.js +0 -36
  110. package/lib/rules2/src/index.js +0 -443
  111. package/lib/rules2/src/parseAttributes.js +0 -51
  112. package/lib/rules2/src/parseCombinations.js +0 -96
  113. package/lib/rules2/src/parseHierarchicalCodelist.js +0 -57
  114. package/lib/rules2/src/parseMetadataSeries.js +0 -119
  115. package/lib/rules2/src/prepareData.js +0 -113
  116. package/lib/rules2/src/refineAttributes.js +0 -32
  117. package/lib/rules2/src/refineDimensions.js +0 -38
  118. package/lib/rules2/src/refineMetadataCoordinates.js +0 -35
  119. package/lib/rules2/src/refineTimePeriod.js +0 -154
  120. package/lib/rules2/src/sdmx3.0DataFormatPatch.js +0 -20
  121. package/lib/rules2/src/table/declineObservationsOverAttributes.js +0 -43
  122. package/lib/rules2/src/table/getCells.js +0 -90
  123. package/lib/rules2/src/table/getCellsAttributesIds.js +0 -63
  124. package/lib/rules2/src/table/getCellsMetadataCoordinates.js +0 -30
  125. package/lib/rules2/src/table/getCombinationDimensionsData.js +0 -48
  126. package/lib/rules2/src/table/getCuratedCells.js +0 -28
  127. package/lib/rules2/src/table/getFlagsAndNotes.js +0 -30
  128. package/lib/rules2/src/table/getIndexedCombinationsByDisplay.js +0 -31
  129. package/lib/rules2/src/table/getLayout.js +0 -105
  130. package/lib/rules2/src/table/getLayoutData2.js +0 -269
  131. package/lib/rules2/src/table/getSortedLayoutIndexes.js +0 -136
  132. package/lib/rules2/src/table/getTableLabelAccessor.js +0 -20
  133. package/lib/rules2/src/table/getTableLayoutIds.js +0 -365
  134. package/lib/rules2/src/table/getTableProps.js +0 -96
  135. package/lib/rules2/src/table/parseSeriesIndexesHierarchies.js +0 -124
  136. package/lib/rules2/src/table/parseValueHierarchy.js +0 -63
  137. package/lib/rules2/src/table/refineLayoutSize2.js +0 -293
  138. package/lib/rules2/src/utils.js +0 -48
  139. package/lib/viewer/mocks/bar.js +0 -21
  140. package/lib/viewer/mocks/gpp-symbol.js +0 -55
  141. package/lib/viewer/mocks/gpp-time.js +0 -1023
  142. package/lib/viewer/mocks/row.js +0 -26
  143. package/lib/viewer/mocks/scatter.js +0 -84
  144. package/lib/viewer/mocks/stack.js +0 -93
  145. package/lib/viewer/src/app/leg.js +0 -101
  146. package/lib/viewer/src/app/nodata-res.js +0 -40
  147. package/lib/viewer/src/app/nodata-sized.js +0 -41
  148. package/lib/viewer/src/app/one-table-cell.js +0 -75
  149. package/lib/viewer/src/app/table.js +0 -300
  150. package/lib/viewer/src/app/use-case-1.js +0 -60
  151. package/lib/viewer/src/app/use-case-2.js +0 -82
  152. package/lib/viewer/src/app/use-case-3.js +0 -52
  153. package/lib/viewer/src/app.js +0 -162
  154. package/lib/viewer/src/chart.js +0 -82
  155. package/lib/viewer/src/chartUtils/options.js +0 -30
  156. package/lib/viewer/src/chartUtils/series.js +0 -63
  157. package/lib/viewer/src/footer.js +0 -54
  158. package/lib/viewer/src/header.js +0 -29
  159. package/lib/viewer/src/index.js +0 -243
  160. package/lib/viewer/src/legends/AxisLegend.js +0 -84
  161. package/lib/viewer/src/legends/ChartLegends.js +0 -100
  162. package/lib/viewer/src/legends/FocusLegend.js +0 -89
  163. package/lib/viewer/src/legends/Legend.js +0 -88
  164. package/lib/viewer/src/legends/SeriesLegend.js +0 -108
  165. package/lib/viewer/src/utils.js +0 -36
@@ -1,124 +0,0 @@
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 _extends2 = require('babel-runtime/helpers/extends');
17
-
18
- var _extends3 = _interopRequireDefault(_extends2);
19
-
20
- var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
21
-
22
- var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
23
-
24
- var _ramda = require('ramda');
25
-
26
- var R = _interopRequireWildcard(_ramda);
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 registerParsedIndexes = function registerParsedIndexes(_ref, register) {
33
- var isSameSerie = _ref.isSameSerie,
34
- parsed = (0, _objectWithoutProperties3.default)(_ref, ['isSameSerie']);
35
-
36
- var merged = R.mergeWith(function (a, b) {
37
- return R.append(a || [], b);
38
- }, parsed, register);
39
- return (0, _extends3.default)({}, merged, { isSameSerie: isSameSerie });
40
- };
41
-
42
- var parseParentsIndexesWithPrevious = function parseParentsIndexesWithPrevious(parentsIndexes, previousParentsIndexes) {
43
- var previousParentsSet = new _set2.default(previousParentsIndexes);
44
- var lastParentIndexInPrevious = R.findLastIndex(function (i) {
45
- return previousParentsSet.has(i);
46
- }, parentsIndexes);
47
-
48
- var _ref2 = lastParentIndexInPrevious !== -1 ? R.splitAt(lastParentIndexInPrevious + 1, parentsIndexes) : [[], parentsIndexes],
49
- _ref3 = (0, _slicedToArray3.default)(_ref2, 2),
50
- rawPresentParentsIndexes = _ref3[0],
51
- missingParentsIndexes = _ref3[1];
52
-
53
- var presentParentsIndexes = R.filter(function (i) {
54
- return previousParentsSet.has(i);
55
- }, rawPresentParentsIndexes);
56
- return { presentParentsIndexes: presentParentsIndexes, missingParentsIndexes: missingParentsIndexes };
57
- };
58
-
59
- var parseSerieIndexesHierarchies = function parseSerieIndexesHierarchies(serieIndexes, previousSerie, dimensions, isSameSerie, replicate) {
60
- return R.addIndex(R.reduce)(function (acc, _valueIndex, dimensionIndex) {
61
- if (R.is(Array, _valueIndex)) {
62
- var previous = R.isEmpty(previousSerie) ? {} : R.map(R.nth(dimensionIndex), previousSerie);
63
- var parsed = parseSerieIndexesHierarchies(_valueIndex, previous, R.pathOr([], [dimensionIndex, 'dimensions'], dimensions), acc.isSameSerie, replicate);
64
- return registerParsedIndexes(parsed, acc);
65
- }
66
- var valueIndex = Math.abs(_valueIndex);
67
- var parents = R.pathOr([], [dimensionIndex, 'values', valueIndex, 'parents'], dimensions);
68
- var previousIndex = R.pipe(R.path(['indexes', dimensionIndex]), function (i) {
69
- return R.isNil(i) ? -1 : Math.abs(i);
70
- })(previousSerie);
71
- var previousParentsIndexes = acc.isSameSerie ? R.pipe(R.pathOr([], ['parentsIndexes', dimensionIndex]), R.append(previousIndex))(previousSerie) : [];
72
- var previousMissingIndexes = acc.isSameSerie ? R.pathOr([], ['missingIndexes', dimensionIndex], previousSerie) : [];
73
- /*
74
- if replicate = true (sections), missing parents insdexes are replicated on each brother nodes not just the first (as empty lines)
75
- thats why passing previous missing as previous parents in case replicate = false
76
- */
77
-
78
- var _parseParentsIndexesW = parseParentsIndexesWithPrevious(parents, replicate ? previousParentsIndexes : R.concat(previousParentsIndexes, previousMissingIndexes)),
79
- presentParentsIndexes = _parseParentsIndexesW.presentParentsIndexes,
80
- missingParentsIndexes = _parseParentsIndexesW.missingParentsIndexes;
81
-
82
- return registerParsedIndexes({
83
- parentsIndexes: presentParentsIndexes,
84
- missingIndexes: missingParentsIndexes,
85
- isSameSerie: acc.isSameSerie && valueIndex === previousIndex
86
- }, acc);
87
- }, { parentsIndexes: [], missingIndexes: [], isSameSerie: isSameSerie }, serieIndexes);
88
- };
89
-
90
- var parseSeriesIndexesHierarchies = function parseSeriesIndexesHierarchies(seriesIndexes, dimensions) {
91
- var replicateMissing = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
92
-
93
- return R.reduce(function (acc, serieIndexes) {
94
- var previousSerie = R.last(acc) || {};
95
-
96
- var _parseSerieIndexesHie = parseSerieIndexesHierarchies(serieIndexes, previousSerie, dimensions, true, replicateMissing),
97
- isSameSerie = _parseSerieIndexesHie.isSameSerie,
98
- parsed = (0, _objectWithoutProperties3.default)(_parseSerieIndexesHie, ['isSameSerie']);
99
-
100
- return R.append(R.assoc('indexes', serieIndexes, parsed), acc);
101
- }, [], seriesIndexes);
102
- };
103
-
104
- exports.parseSeriesIndexesHierarchies = parseSeriesIndexesHierarchies;
105
- var parseLayoutIndexesHierarchies = exports.parseLayoutIndexesHierarchies = function parseLayoutIndexesHierarchies(layoutIndexes, layout) {
106
- var header = parseSeriesIndexesHierarchies(layoutIndexes.header, layout.header);
107
- var sections = R.pipe(R.transpose, function (_ref4) {
108
- var _ref5 = (0, _slicedToArray3.default)(_ref4, 2),
109
- _sections = _ref5[0],
110
- _sectionsRows = _ref5[1];
111
-
112
- if (R.isNil(_sections)) {
113
- return [];
114
- }
115
- // replicate = true on sections
116
- var sections = parseSeriesIndexesHierarchies(_sections, layout.sections, true);
117
- var sectionsRows = R.map(function (rows) {
118
- return parseSeriesIndexesHierarchies(rows, layout.rows);
119
- }, _sectionsRows);
120
- return R.transpose([sections, sectionsRows]);
121
- })(layoutIndexes.sections);
122
-
123
- return { header: header, sections: sections };
124
- };
@@ -1,63 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.parseValueHierarchy = exports.isSameValueAsPrevious = undefined;
7
-
8
- var _extends2 = require('babel-runtime/helpers/extends');
9
-
10
- var _extends3 = _interopRequireDefault(_extends2);
11
-
12
- var _slicedToArray2 = require('babel-runtime/helpers/slicedToArray');
13
-
14
- var _slicedToArray3 = _interopRequireDefault(_slicedToArray2);
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 isSameValueAsPrevious = exports.isSameValueAsPrevious = function isSameValueAsPrevious(value, previousValue) {
25
- var valueHierarchicalPath = R.append(value.id, R.propOr([], 'parents', value));
26
- var previousValueHierarchicalPath = R.append(previousValue.id, R.propOr([], 'parents', previousValue));
27
-
28
- return R.equals(valueHierarchicalPath, previousValueHierarchicalPath);
29
- };
30
-
31
- var parseValueHierarchy = exports.parseValueHierarchy = function parseValueHierarchy(value, previousValue, indexedValues) {
32
- var parentsIds = R.propOr([], 'parents', value);
33
- if (R.isEmpty(parentsIds)) {
34
- return value;
35
- }
36
- var _previousParentsIds = R.propOr([], 'parentsIds', previousValue);
37
- var previousParentsIds = R.isNil(previousValue) ? [] : R.append(R.prop('id', previousValue), _previousParentsIds);
38
-
39
- var _R$addIndex = R.addIndex(R.splitWhen)(function (val, ind) {
40
- return R.nth(ind, previousParentsIds) !== val;
41
- }, parentsIds),
42
- _R$addIndex2 = (0, _slicedToArray3.default)(_R$addIndex, 2),
43
- presentIds = _R$addIndex2[0],
44
- _missingIds = _R$addIndex2[1];
45
-
46
- var __previousParentsIds = R.pipe(R.propOr([], 'parents'), R.pluck('id'))(previousValue);
47
- var missingIds = R.pipe(R.takeLastWhile(function (id) {
48
- return !R.includes(id, __previousParentsIds) && id !== R.prop('id', previousValue);
49
- }), function (ids) {
50
- return R.concat(ids, _missingIds);
51
- })(presentIds);
52
- var _previousParents = R.propOr([], 'parents', previousValue);
53
- var previousParents = R.isNil(previousValue) ? [] : R.append(R.pick(['id', 'name'], previousValue), _previousParents);
54
- var parents = R.takeWhile(function (p) {
55
- return R.includes(p.id, presentIds);
56
- }, previousParents);
57
- var missingParents = R.props(missingIds, indexedValues);
58
- return (0, _extends3.default)({}, value, {
59
- parents: parents,
60
- parentsIds: parentsIds,
61
- missingParents: missingParents
62
- });
63
- };
@@ -1,293 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.refineLayoutSize = exports.truncateHeader = exports.truncateSectionRows = exports.refineHeader = exports.refineSections = exports.getCuratedCells = undefined;
7
-
8
- var _slicedToArray2 = require('babel-runtime/helpers/slicedToArray');
9
-
10
- var _slicedToArray3 = _interopRequireDefault(_slicedToArray2);
11
-
12
- var _defineProperty2 = require('babel-runtime/helpers/defineProperty');
13
-
14
- var _defineProperty3 = _interopRequireDefault(_defineProperty2);
15
-
16
- var _extends3 = require('babel-runtime/helpers/extends');
17
-
18
- var _extends4 = _interopRequireDefault(_extends3);
19
-
20
- var _set = require('babel-runtime/core-js/set');
21
-
22
- var _set2 = _interopRequireDefault(_set);
23
-
24
- var _ramda = require('ramda');
25
-
26
- var R = _interopRequireWildcard(_ramda);
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 toKey = function toKey(indexes) {
33
- return R.reduce(function (acc, _ind) {
34
- var ind = R.is(Array, _ind) ? toKey(_ind) : String(Math.abs(_ind));
35
- if (R.isEmpty(ind)) {
36
- return acc;
37
- }
38
- return R.isEmpty(acc) ? ind : acc + ':' + ind;
39
- }, '', indexes);
40
- };
41
-
42
- var getPivotKey = function getPivotKey(indexes) {
43
- return R.pipe(R.props(indexes), R.join(':'));
44
- };
45
-
46
- var getPivots = function getPivots(layout, shape) {
47
- return R.pipe(R.props(shape), R.map(R.pipe(R.map(function (entry) {
48
- return R.has('dimensions', entry) ? R.pluck('__index', entry.dimensions || []) : entry.__index;
49
- }), R.unnest, getPivotKey)))(layout);
50
- };
51
-
52
- var indexWithPivots = function indexWithPivots(pivots, observations) {
53
- return R.pipe(R.values, R.reduce(function (acc, obs) {
54
- var path = R.map(function (pivot) {
55
- return pivot(obs.orderedDimIndexes);
56
- }, pivots);
57
- return R.over(R.lensPath(path), R.ifElse(R.isNil, R.always([obs]), R.append(obs)))(acc);
58
- }, {}))(observations);
59
- };
60
-
61
- var getCuratedCells = exports.getCuratedCells = function getCuratedCells(_ref) {
62
- var layout = _ref.layout,
63
- observations = _ref.observations,
64
- shape = _ref.shape;
65
-
66
- var pivots = getPivots(layout, shape);
67
- return indexWithPivots(pivots, observations);
68
- };
69
-
70
- var filterSeries = function filterSeries(series, getHasStillData) {
71
- var removedMissingIndexes = [];
72
- return R.reduce(function (acc, serie) {
73
- var hasStillData = getHasStillData(serie);
74
- var serieParentsSets = R.map(function (p) {
75
- return new _set2.default(p);
76
- }, R.propOr([], 'parentsIndexes', serie));
77
- if (!hasStillData) {
78
- removedMissingIndexes = R.addIndex(R.map)(function (mIs, ind) {
79
- var filtered = R.filter(function (i) {
80
- return serieParentsSets[ind].has(i);
81
- }, R.nth(ind, removedMissingIndexes) || []);
82
- return R.concat(filtered, mIs);
83
- }, serie.missingIndexes || []);
84
- return acc;
85
- }
86
- var _serie = R.pipe(R.over(R.lensProp('missingIndexes'), function () {
87
- var missingIndexes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
88
- return R.addIndex(R.map)(function (mIs, ind) {
89
- var removed = R.nth(ind, removedMissingIndexes) || [];
90
- if (R.isEmpty(removed)) {
91
- return mIs;
92
- }
93
- var filteredRemoved = R.filter(function (i) {
94
- return serieParentsSets[ind].has(i);
95
- }, removed);
96
- return R.concat(filteredRemoved, mIs || []);
97
- }, missingIndexes);
98
- }), R.over(R.lensProp('parentsIndexes'), function () {
99
- var parentsIndexes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
100
- return R.addIndex(R.map)(function (p, ind) {
101
- return R.reject(function (i) {
102
- return R.includes(i, R.nth(ind, removedMissingIndexes) || []);
103
- }, p || []);
104
- }, parentsIndexes);
105
- }))(serie);
106
- removedMissingIndexes = [];
107
- return R.append(_serie, acc);
108
- }, [], series);
109
- };
110
-
111
- var refineSections = exports.refineSections = function refineSections(sections, extractedKeys, curatedObs) {
112
- return R.pipe(R.map(function (section) {
113
- var sectionKey = toKey(R.propOr([], 'indexes', R.head(section)));
114
- var getHasRowStillData = function getHasRowStillData(row) {
115
- var rowKey = toKey(R.prop('indexes', row));
116
- return R.pipe(R.path([sectionKey, rowKey]), R.omit(extractedKeys), R.isEmpty, R.not)(curatedObs);
117
- };
118
- return R.over(R.lensIndex(1), function (rows) {
119
- return filterSeries(rows, getHasRowStillData);
120
- })(section);
121
- }), R.filter(R.pipe(R.nth(1), R.isEmpty, R.not)))(sections);
122
- };
123
-
124
- var refineHeader = exports.refineHeader = function refineHeader(headers, extractedKeys, curatedObs) {
125
- var getHasHeaderStillData = function getHasHeaderStillData(header) {
126
- var headerKey = toKey(R.prop('indexes', header));
127
- return R.pipe(R.prop(headerKey), function (sections) {
128
- return R.pickBy(function (rows, section) {
129
- return R.pipe(R.omit(R.propOr([], section, extractedKeys)), R.isEmpty, R.not)(rows);
130
- }, sections);
131
- }, R.isEmpty, R.not)(curatedObs);
132
- };
133
- return filterSeries(headers, getHasHeaderStillData);
134
- };
135
-
136
- var getSerieLinesCount = function getSerieLinesCount(serie) {
137
- var missingParents = R.propOr([], 'missingParents', serie);
138
- var missingParentsRowsCount = R.pipe(R.flatten, R.length)(missingParents);
139
- return missingParentsRowsCount + 1;
140
- };
141
-
142
- var truncateSectionRows = exports.truncateSectionRows = function truncateSectionRows(n, sectionsData) {
143
- var truncated = sectionsData;
144
- var extractedKeys = {};
145
- var _n = n;
146
- while (_n > 0) {
147
- var lastSection = R.last(truncated);
148
- var rows = lastSection[1];
149
- var rowsLength = R.length(rows);
150
- var truncatedRowsCount = 0;
151
- while (_n > 0 && truncatedRowsCount !== rowsLength) {
152
- var rowsCount = getSerieLinesCount(R.nth(-1 * truncatedRowsCount, rows));
153
- _n = _n - rowsCount;
154
- truncatedRowsCount++;
155
- }
156
- var sectionKey = R.pipe(R.head, R.prop('indexes'), toKey)(lastSection);
157
- extractedKeys = (0, _extends4.default)({}, extractedKeys, (0, _defineProperty3.default)({}, sectionKey, R.pipe(R.takeLast(truncatedRowsCount), R.map(function (r) {
158
- return toKey(R.prop('indexes', r));
159
- }))(rows)));
160
- if (_n > 0) {
161
- truncated = R.dropLast(1, truncated);
162
- } else {
163
- truncated = R.over(R.lensIndex(-1), R.over(R.lensIndex(1), R.dropLast(truncatedRowsCount)))(truncated);
164
- }
165
- }
166
- return { truncated: truncated, extractedKeys: extractedKeys };
167
- };
168
-
169
- var truncateHeader = exports.truncateHeader = function truncateHeader(n, headerData) {
170
- var _truncated$extractedK = { truncated: headerData, extractedKeys: [] },
171
- truncated = _truncated$extractedK.truncated,
172
- extractedKeys = _truncated$extractedK.extractedKeys;
173
-
174
- var _n = n;
175
- while (_n > 0) {
176
- var lastHeader = R.last(truncated);
177
- var columnsCount = getSerieLinesCount(lastHeader);
178
- var extractedKey = toKey(R.prop('indexes', lastHeader));
179
- extractedKeys = R.append(extractedKey, extractedKeys);
180
- truncated = R.dropLast(1, truncated);
181
- _n = _n - columnsCount;
182
- }
183
- return { truncated: truncated, extractedKeys: extractedKeys };
184
- };
185
-
186
- var truncateLayout = function truncateLayout(isVertical) {
187
- return R.ifElse(R.always(isVertical), truncateSectionRows, truncateHeader);
188
- };
189
-
190
- var refineLayout = function refineLayout(isVertical) {
191
- return R.ifElse(R.always(isVertical), refineHeader, refineSections);
192
- };
193
-
194
- var getShape = function getShape(isVertical) {
195
- return isVertical ? ['header', 'sections', 'rows'] : ['sections', 'rows', 'header'];
196
- };
197
-
198
- var getRefinedLayout = function getRefinedLayout(isVertical, truncated, refined) {
199
- return R.ifElse(R.always(isVertical), R.pipe(R.assoc('sections', truncated), R.assoc('header', refined)), R.pipe(R.assoc('header', truncated), R.assoc('sections', refined)))({});
200
- };
201
-
202
- var segregateLayout = function segregateLayout(isVertical) {
203
- return R.ifElse(R.always(isVertical), R.props(['sections', 'header']), R.props(['header', 'sections']));
204
- };
205
-
206
- var refineLayoutSize = exports.refineLayoutSize = function refineLayoutSize(_ref2) {
207
- var layout = _ref2.layout,
208
- observations = _ref2.observations,
209
- limit = _ref2.limit;
210
- return function (layoutIndexes) {
211
- var header = layoutIndexes.header,
212
- sections = layoutIndexes.sections;
213
-
214
- if (R.isNil(limit) || limit === 0 || R.all(R.isEmpty, [header, sections])) {
215
- return R.pipe(R.set(R.lensProp('truncated'), false), R.set(R.lensProp('totalCells'), null))(layoutIndexes);
216
- }
217
-
218
- //number of dimensions in header
219
- var headerDimCount = R.pipe(R.head, // first column
220
- R.when(R.isNil, R.always({})), R.propOr([], 'indexes'), R.length // number of dims
221
- )(header);
222
-
223
- //number of columns for values
224
- var headerValuesCount = R.pipe(R.reduce(function (acc, header) {
225
- var columnsCount = getSerieLinesCount(header);
226
- return acc + columnsCount;
227
- }, 0), R.when(R.equals(0), R.always(1)))(header);
228
-
229
- //total of cells in header
230
- var headerCellsCount = headerDimCount * (headerValuesCount + 1);
231
-
232
- // number of dimensions in a row
233
- var rowDimCount = R.pipe(R.head, // firstSection
234
- R.last, // rows,
235
- R.head, // first row
236
- R.propOr([], 'indexes'), R.length)(sections);
237
-
238
- // number of cells in a row
239
- var rowCellsCount = rowDimCount + headerValuesCount + 1;
240
-
241
- // number of rows
242
- var rowsCount = R.pipe(R.map(R.last), R.unnest, R.reduce(function (acc, row) {
243
- var rowsCount = getSerieLinesCount(row);
244
- return acc + rowsCount;
245
- }, 1))(sections);
246
-
247
- // total of cells in all rows
248
- var rowsCellsCount = rowCellsCount * rowsCount;
249
-
250
- // number of sections cells
251
- var sectionsCellsCount = R.ifElse(R.pipe(R.head, R.head, R.propOr([], 'indexes'), R.length, R.equals(0)), R.always(0), R.length)(sections);
252
-
253
- var total = rowsCellsCount + sectionsCellsCount + headerCellsCount;
254
-
255
- var excess = total - limit;
256
- if (excess <= 0) {
257
- return R.pipe(R.set(R.lensProp('truncated'), false), R.set(R.lensProp('totalCells'), total))(layoutIndexes);
258
- }
259
-
260
- // total of cells in one column
261
- var columnCellsCount = headerDimCount + rowsCount;
262
-
263
- var isVertical = columnCellsCount > rowCellsCount;
264
-
265
- var _segregateLayout = segregateLayout(isVertical)(layoutIndexes),
266
- _segregateLayout2 = (0, _slicedToArray3.default)(_segregateLayout, 2),
267
- toTruncate = _segregateLayout2[0],
268
- toRefine = _segregateLayout2[1];
269
-
270
- var cutLength = R.pipe(R.ifElse(R.identity, R.always(rowCellsCount), R.always(columnCellsCount)), R.divide(excess), Math.ceil)(isVertical);
271
-
272
- var maxCutLength = isVertical ? rowsCount - 2 : headerValuesCount - 1;
273
- cutLength = cutLength > maxCutLength ? maxCutLength : cutLength;
274
-
275
- var _truncateLayout = truncateLayout(isVertical)(cutLength, toTruncate),
276
- truncated = _truncateLayout.truncated,
277
- extractedKeys = _truncateLayout.extractedKeys;
278
-
279
- var dimsLength = R.pipe(R.values, R.head, R.propOr([], 'orderedDimIndexes'), R.length)(observations);
280
- var _layout = R.map(R.map(function (entry) {
281
- return entry.id === 'OBS_ATTRIBUTES' ? R.assoc('__index', dimsLength - 1, entry) : entry;
282
- }), layout);
283
- var curatedObs = R.pipe(getShape, function (shape) {
284
- return getCuratedCells({ layout: _layout, observations: observations, shape: shape });
285
- })(isVertical);
286
-
287
- var refined = refineLayout(isVertical)(toRefine, extractedKeys, curatedObs);
288
-
289
- var result = getRefinedLayout(isVertical, truncated, refined);
290
-
291
- return R.pipe(R.set(R.lensProp('truncated'), true), R.set(R.lensProp('totalCells'), total))(result);
292
- };
293
- };
@@ -1,48 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getLayoutCoordinatesValidator = exports.trimedProps = 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 trimedProps = exports.trimedProps = function trimedProps(properties, obj) {
15
- return R.reduce(function (acc, prop) {
16
- if (R.isNil(R.prop(prop, obj))) {
17
- return acc;
18
- }
19
- return R.append(obj[prop], acc);
20
- }, [], properties);
21
- };
22
-
23
- var getLayoutCoordinatesValidator = exports.getLayoutCoordinatesValidator = function getLayoutCoordinatesValidator(layoutCoordinates) {
24
- var topCoordinates = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
25
- return function (coordinates) {
26
- if (R.isEmpty(coordinates)) {
27
- return false;
28
- }
29
- if (R.has('OBS_ATTRIBUTES', layoutCoordinates) || R.has('OBS_ATTRIBUTES', topCoordinates)) {
30
- var obsAttrCoord = R.prop('OBS_ATTRIBUTES', layoutCoordinates) || R.prop('OBS_ATTRIBUTES', topCoordinates);
31
- if (obsAttrCoord !== 'OBS_VALUE') {
32
- return false;
33
- }
34
- }
35
- var keys = R.keys(coordinates);
36
- var res = true;
37
- var notInTop = {};
38
- R.forEach(function (key) {
39
- if (R.prop(key, layoutCoordinates) !== R.prop(key, coordinates)) {
40
- res = false;
41
- }
42
- if (!R.has(key, topCoordinates)) {
43
- notInTop[key] = key;
44
- }
45
- }, keys);
46
- return res && !R.isEmpty(notInTop);
47
- };
48
- };
@@ -1,21 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
-
7
- exports.default = function () {
8
- return {
9
- chartData: {
10
- series: [{ datapoints: [{ x: 'Hungary', y: 5.5 }, { x: 'Sweden', y: 5.6 }, { x: 'Estonia', y: 5.7 }, { x: 'Finland', y: 5.8 }, { x: 'Belgium', y: 5.9 }, { x: 'Turkey', y: 6 }, { x: 'France', y: 6.5 }, { x: 'Poland', y: 6.6 }, { x: 'Slovenia', y: 6.8 }, { x: 'European Union', y: 7.4, baselineIndex: 0 }, { x: 'Euro area (18 countries)', y: 8.2 }, { x: 'Ireland', y: 8.7, highlightIndex: 0 }, { x: 'Italy', y: 8.9 }, { x: 'Slovak Republic', y: 9.9 }, { x: 'Portugal', y: 10.9 }, { x: 'South Africa', y: 12.3, highlightIndex: 1 }, { x: 'Spain (2 digits)', y: 16.86 }]
11
- }]
12
- },
13
- headerProps: {
14
- title: { label: 'Science performance (PISA)' },
15
- subtitle: [{ label: 'Mean score 2015, Annual incl. OECD, all countries' }]
16
- },
17
- footerProps: {
18
- source: { label: 'data.oecd.org', link: 'http://data.oecd.org/' }
19
- }
20
- };
21
- };
@@ -1,55 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
-
7
- exports.default = function () {
8
- return {
9
- headerProps: {
10
- "title": { label: "Growth previous period - Annual - 2015" }
11
- },
12
- footerProps: {
13
- soure: { label: 'source', link: 'http://dotstat.oecd.org/' }
14
- },
15
- chartData: {
16
- "series": [{
17
- "datapoints": [{
18
- "category": "Finland",
19
- "values": [-0.958831808585503, -0.938640709195226],
20
- highlightIndex: 0
21
- }, {
22
- "category": "Canada",
23
- "values": [-0.734931326089172, 0.178223109790082]
24
- }, {
25
- "category": "Belgium",
26
- "values": [-0.0160655474335108, 0.177647331428157],
27
- highlightIndex: 1
28
- }, {
29
- "category": "Chile",
30
- "values": [0.230172987500003, 0.286348587500551]
31
- }, {
32
- "category": "Estonia",
33
- "values": [0.292360493199452, 1.4055978394304]
34
- }, {
35
- "category": "Australia",
36
- "values": [1.18005263064255, -1.70548071959404],
37
- baselineIndex: 0
38
- }, {
39
- "category": "Denmark",
40
- "values": [1.18634492777014, 2.47915590644139]
41
- }, {
42
- "category": "France",
43
- "values": [1.96360436882936, 1.92806480043649]
44
- }, {
45
- "category": "Austria",
46
- "values": [2.11995066296641, 2.36545969532268]
47
- }, {
48
- "category": "Czech Republic",
49
- "values": [4.62318401937048, 6.01902272562258]
50
- }],
51
- "symbolValues": ["Industrial production, s.a.", "Total manufacturing, s.a."]
52
- }]
53
- }
54
- };
55
- };