@sis-cc/dotstatsuite-components 20.6.0 → 21.0.1
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/.gitlab-ci.yml +4 -5
- package/README.md +1 -17
- package/package.json +20 -14
- package/src/bridge-d3-react/src/react-chart-factory.js +1 -2
- package/src/rules/src/factories/sample-series.js +1 -1
- package/src/rules/src/index.js +14 -13
- package/src/rules/src/observation-formater.js +0 -1
- package/src/rules/src/properties/focus.js +3 -3
- package/src/rules/src/sdmx-data/index.js +2 -0
- package/src/viewer/src/index.js +4 -5
- package/src/viewer/src/legends/AxisLegend.js +0 -7
- package/src/viewer/src/legends/FocusLegend.js +2 -10
- package/src/viewer/src/legends/Legend.js +0 -6
- package/src/viewer/src/legends/SeriesLegend.js +0 -7
- package/vite.config.mjs +51 -0
- package/lib/app.js +0 -22
- package/lib/bridge-d3-react/src/app.js +0 -98
- package/lib/bridge-d3-react/src/index.js +0 -33
- package/lib/bridge-d3-react/src/mock-choro.js +0 -41
- package/lib/bridge-d3-react/src/react-chart-factory.js +0 -103
- package/lib/index.js +0 -41
- package/lib/rules/src/chart/getAxisOptions.js +0 -206
- package/lib/rules/src/chart/getBaseOptions.js +0 -51
- package/lib/rules/src/chart/getChartOptions.js +0 -106
- package/lib/rules/src/chart/getGridOptions.js +0 -21
- package/lib/rules/src/chart/getTooltipOptions.js +0 -84
- package/lib/rules/src/constants.js +0 -68
- package/lib/rules/src/date.js +0 -180
- package/lib/rules/src/dimension-utils.js +0 -67
- package/lib/rules/src/factories/choro-series.js +0 -99
- package/lib/rules/src/factories/sample-focus.js +0 -64
- package/lib/rules/src/factories/sample-series.js +0 -90
- package/lib/rules/src/factories/scatter-dimension.js +0 -72
- package/lib/rules/src/factories/scatter-focus.js +0 -77
- package/lib/rules/src/factories/scatter-series.js +0 -145
- package/lib/rules/src/factories/stacked-dimension.js +0 -42
- package/lib/rules/src/factories/stacked-series.js +0 -166
- package/lib/rules/src/factories/symbol-dimension.js +0 -69
- package/lib/rules/src/factories/symbol-series.js +0 -119
- package/lib/rules/src/factories/timeline-focus.js +0 -38
- package/lib/rules/src/factories/timeline-series.js +0 -121
- package/lib/rules/src/get-values-enhanced.js +0 -141
- package/lib/rules/src/header/getDefaultSubtitle.js +0 -50
- package/lib/rules/src/header/getHeaderUnits.js +0 -26
- package/lib/rules/src/header/getSubtitleFlags.js +0 -53
- package/lib/rules/src/header/getTitleFlags.js +0 -24
- package/lib/rules/src/header/index.js +0 -41
- package/lib/rules/src/index.js +0 -714
- package/lib/rules/src/layout.js +0 -98
- package/lib/rules/src/observation-formater.js +0 -112
- package/lib/rules/src/preparators/enhanceObservations.js +0 -142
- package/lib/rules/src/preparators/formatValue.js +0 -83
- package/lib/rules/src/preparators/getObservations.js +0 -27
- package/lib/rules/src/preparators/getReportingYearStart.js +0 -52
- package/lib/rules/src/properties/errors.js +0 -31
- package/lib/rules/src/properties/focus.js +0 -90
- package/lib/rules/src/properties/getAvailableChartTypes.js +0 -30
- package/lib/rules/src/properties/getHeaderProps.js +0 -83
- package/lib/rules/src/properties/getInformationsStateFromNewProps.js +0 -61
- package/lib/rules/src/properties/getObservationsType.js +0 -31
- package/lib/rules/src/properties/getStringifiedSubtitle.js +0 -18
- package/lib/rules/src/properties/index.js +0 -401
- package/lib/rules/src/properties/information.js +0 -79
- package/lib/rules/src/properties/linear.js +0 -158
- package/lib/rules/src/properties/scatter.js +0 -174
- package/lib/rules/src/properties/stacked.js +0 -133
- package/lib/rules/src/properties/symbol.js +0 -96
- package/lib/rules/src/properties/utils.js +0 -126
- package/lib/rules/src/sdmx-data/index.js +0 -55
- package/lib/rules/src/table/factories/getCellValue.js +0 -57
- package/lib/rules/src/table/index.js +0 -14
- package/lib/rules/src/v8-transformer.js +0 -184
- package/lib/rules/test/extractSdmxArtefacts.js +0 -37
- package/lib/rules/test/get-values-enhanced.test.js +0 -128
- package/lib/rules/test/oecd-HEALTH_PROT-parsed.js +0 -303
- package/lib/rules/test/scatter-property.js +0 -403
- package/lib/rules/test/stacked-property.js +0 -244
- package/lib/rules/test/symbol-property.js +0 -234
- package/lib/rules/test/v8-transformer.test.js +0 -82
- package/lib/rules2/src/applyHierarchicalCodesToDim.js +0 -175
- package/lib/rules2/src/combinedValuesDisplay.js +0 -71
- package/lib/rules2/src/constants.js +0 -11
- package/lib/rules2/src/duplicateObservations.js +0 -39
- package/lib/rules2/src/enhanceObservations.js +0 -103
- package/lib/rules2/src/getAdvAttrSeriesAtCoordinates.js +0 -39
- package/lib/rules2/src/getAttributesSeries.js +0 -40
- package/lib/rules2/src/getCombinationDefinitions.js +0 -72
- package/lib/rules2/src/getDataflowAttributes.js +0 -34
- package/lib/rules2/src/getDataflowTooltipAttributesIds.js +0 -38
- package/lib/rules2/src/getDimensionValuesIndexes.js +0 -19
- package/lib/rules2/src/getHCodelistsRefsInData.js +0 -49
- package/lib/rules2/src/getHeaderCombinations.js +0 -51
- package/lib/rules2/src/getHeaderCoordinates.js +0 -18
- package/lib/rules2/src/getHeaderSubtitle.js +0 -41
- package/lib/rules2/src/getHeaderTitle.js +0 -29
- package/lib/rules2/src/getMSDInformations.js +0 -43
- package/lib/rules2/src/getManyValuesDimensions.js +0 -39
- package/lib/rules2/src/getMetadataCoordinates.js +0 -40
- package/lib/rules2/src/getMetadataStructureFromData.js +0 -23
- package/lib/rules2/src/getNotDisplayedIds.js +0 -58
- package/lib/rules2/src/getOneValueDimensions.js +0 -48
- package/lib/rules2/src/getSeriesCombinations.js +0 -33
- package/lib/rules2/src/hasCellMetadata.js +0 -22
- package/lib/rules2/src/hierarchiseDimensionWithAdvancedHierarchy2.js +0 -65
- package/lib/rules2/src/hierarchiseDimensionWithNativeHierarchy2.js +0 -39
- package/lib/rules2/src/index.js +0 -443
- package/lib/rules2/src/parseAttributes.js +0 -51
- package/lib/rules2/src/parseCombinations.js +0 -96
- package/lib/rules2/src/parseHierarchicalCodelist.js +0 -57
- package/lib/rules2/src/parseMetadataSeries.js +0 -119
- package/lib/rules2/src/prepareData.js +0 -113
- package/lib/rules2/src/refineAttributes.js +0 -32
- package/lib/rules2/src/refineDimensions.js +0 -38
- package/lib/rules2/src/refineMetadataCoordinates.js +0 -35
- package/lib/rules2/src/refineTimePeriod.js +0 -154
- package/lib/rules2/src/sdmx3.0DataFormatPatch.js +0 -20
- package/lib/rules2/src/table/declineObservationsOverAttributes.js +0 -43
- package/lib/rules2/src/table/getCells.js +0 -90
- package/lib/rules2/src/table/getCellsAttributesIds.js +0 -63
- package/lib/rules2/src/table/getCellsMetadataCoordinates.js +0 -30
- package/lib/rules2/src/table/getCombinationDimensionsData.js +0 -48
- package/lib/rules2/src/table/getCuratedCells.js +0 -28
- package/lib/rules2/src/table/getFlagsAndNotes.js +0 -30
- package/lib/rules2/src/table/getIndexedCombinationsByDisplay.js +0 -31
- package/lib/rules2/src/table/getLayout.js +0 -105
- package/lib/rules2/src/table/getLayoutData2.js +0 -269
- package/lib/rules2/src/table/getSortedLayoutIndexes.js +0 -136
- package/lib/rules2/src/table/getTableLabelAccessor.js +0 -20
- package/lib/rules2/src/table/getTableLayoutIds.js +0 -365
- package/lib/rules2/src/table/getTableProps.js +0 -96
- package/lib/rules2/src/table/parseSeriesIndexesHierarchies.js +0 -124
- package/lib/rules2/src/table/parseValueHierarchy.js +0 -63
- package/lib/rules2/src/table/refineLayoutSize2.js +0 -293
- package/lib/rules2/src/utils.js +0 -48
- package/lib/viewer/mocks/bar.js +0 -21
- package/lib/viewer/mocks/gpp-symbol.js +0 -55
- package/lib/viewer/mocks/gpp-time.js +0 -1023
- package/lib/viewer/mocks/row.js +0 -26
- package/lib/viewer/mocks/scatter.js +0 -84
- package/lib/viewer/mocks/stack.js +0 -93
- package/lib/viewer/src/app/leg.js +0 -101
- package/lib/viewer/src/app/nodata-res.js +0 -40
- package/lib/viewer/src/app/nodata-sized.js +0 -41
- package/lib/viewer/src/app/one-table-cell.js +0 -75
- package/lib/viewer/src/app/table.js +0 -300
- package/lib/viewer/src/app/use-case-1.js +0 -60
- package/lib/viewer/src/app/use-case-2.js +0 -82
- package/lib/viewer/src/app/use-case-3.js +0 -52
- package/lib/viewer/src/app.js +0 -162
- package/lib/viewer/src/chart.js +0 -82
- package/lib/viewer/src/chartUtils/options.js +0 -30
- package/lib/viewer/src/chartUtils/series.js +0 -63
- package/lib/viewer/src/footer.js +0 -54
- package/lib/viewer/src/header.js +0 -29
- package/lib/viewer/src/index.js +0 -243
- package/lib/viewer/src/legends/AxisLegend.js +0 -84
- package/lib/viewer/src/legends/ChartLegends.js +0 -100
- package/lib/viewer/src/legends/FocusLegend.js +0 -89
- package/lib/viewer/src/legends/Legend.js +0 -88
- package/lib/viewer/src/legends/SeriesLegend.js +0 -108
- 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
|
-
};
|
package/lib/rules2/src/utils.js
DELETED
|
@@ -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
|
-
};
|
package/lib/viewer/mocks/bar.js
DELETED
|
@@ -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
|
-
};
|