@sis-cc/dotstatsuite-components 8.11.1 → 8.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/app.js +13 -5
- package/lib/rules/src/chart/getChartOptions.js +8 -4
- package/lib/rules/src/factories/stacked-dimension.js +17 -23
- package/lib/rules/src/factories/stacked-series.js +82 -158
- package/lib/rules/src/index.js +3 -6
- package/lib/rules/src/properties/index.js +2 -1
- package/lib/rules/src/properties/stacked.js +35 -11
- package/lib/rules/src/properties/utils.js +7 -1
- package/lib/rules-driver/src/app.js +116 -167
- package/lib/viewer/src/chartUtils/series.js +4 -0
- package/lib/viewer/src/legends/SeriesLegend.js +3 -1
- package/package.json +2 -2
- package/src/app.js +10 -5
- package/src/rules/src/chart/getChartOptions.js +1 -0
- package/src/rules/src/factories/stacked-dimension.js +14 -10
- package/src/rules/src/factories/stacked-series.js +102 -94
- package/src/rules/src/index.js +1 -2
- package/src/rules/src/properties/index.js +3 -1
- package/src/rules/src/properties/stacked.js +23 -7
- package/src/rules/src/properties/utils.js +8 -3
- package/src/rules-driver/src/app.js +116 -132
- package/src/rules-driver/src/mocks/data1.json +332 -0
- package/src/rules-driver/src/mocks/data2.json +309 -0
- package/src/viewer/src/chartUtils/series.js +4 -0
- package/src/viewer/src/legends/SeriesLegend.js +4 -1
- package/lib/rules-driver/src/app/chart.js +0 -52
- package/lib/rules-driver/src/app/config-axis.js +0 -95
- package/lib/rules-driver/src/app/config-buttons.js +0 -47
- package/lib/rules-driver/src/app/config-input.js +0 -51
- package/lib/rules-driver/src/app/config-select.js +0 -57
- package/lib/rules-driver/src/app/config-t4size.js +0 -61
- package/lib/rules-driver/src/app/config1.js +0 -148
- package/lib/rules-driver/src/app/menu.js +0 -44
- package/lib/rules-driver/src/app/viewer1.js +0 -39
- package/lib/rules-driver/src/app/viewer2.js +0 -115
- package/src/rules-driver/src/app/chart.js +0 -18
- package/src/rules-driver/src/app/config-axis.js +0 -54
- package/src/rules-driver/src/app/config-buttons.js +0 -27
- package/src/rules-driver/src/app/config-input.js +0 -35
- package/src/rules-driver/src/app/config-select.js +0 -25
- package/src/rules-driver/src/app/config-t4size.js +0 -50
- package/src/rules-driver/src/app/config1.js +0 -120
- package/src/rules-driver/src/app/menu.js +0 -27
- package/src/rules-driver/src/app/viewer1.js +0 -18
- package/src/rules-driver/src/app/viewer2.js +0 -77
- package/src/rules-driver/src/mocks/ecb.json +0 -2069
- package/src/rules-driver/src/mocks/ins.json +0 -264
- package/src/rules-driver/src/mocks/oecd-time.json +0 -864
- package/src/rules-driver/src/mocks/oecd.json +0 -372
- package/src/rules-driver/src/mocks/tunisia.json +0 -333
package/lib/app.js
CHANGED
|
@@ -6,20 +6,28 @@ var _react2 = _interopRequireDefault(_react);
|
|
|
6
6
|
|
|
7
7
|
var _reactDom = require('react-dom');
|
|
8
8
|
|
|
9
|
-
var _app = require('./
|
|
9
|
+
var _app = require('./rules-driver/src/app');
|
|
10
10
|
|
|
11
11
|
var _app2 = _interopRequireDefault(_app);
|
|
12
12
|
|
|
13
|
+
var _app3 = require('./viewer/src/app');
|
|
14
|
+
|
|
15
|
+
var _app4 = _interopRequireDefault(_app3);
|
|
16
|
+
|
|
17
|
+
var _dotstatsuiteVisions = require('@sis-cc/dotstatsuite-visions');
|
|
18
|
+
|
|
19
|
+
var _styles = require('@material-ui/core/styles');
|
|
20
|
+
|
|
13
21
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
14
22
|
|
|
23
|
+
var theme = (0, _styles.createMuiTheme)((0, _dotstatsuiteVisions.sisccTheme)({ rtl: 'ltr' }));
|
|
24
|
+
|
|
15
25
|
var App = function App() {
|
|
16
26
|
return _react2.default.createElement(
|
|
17
|
-
|
|
18
|
-
|
|
27
|
+
_styles.ThemeProvider,
|
|
28
|
+
{ theme: theme },
|
|
19
29
|
_react2.default.createElement(_app2.default, null)
|
|
20
30
|
);
|
|
21
31
|
};
|
|
22
|
-
//import RulesDriverApp from './rules-driver/src/app';
|
|
23
|
-
|
|
24
32
|
|
|
25
33
|
(0, _reactDom.render)(_react2.default.createElement(App, null), document.getElementById('root'));
|
|
@@ -5,6 +5,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.getChartOptions = exports.symbolMarkers = exports.FOCUS_COLORS = undefined;
|
|
7
7
|
|
|
8
|
+
var _extends2 = require('babel-runtime/helpers/extends');
|
|
9
|
+
|
|
10
|
+
var _extends3 = _interopRequireDefault(_extends2);
|
|
11
|
+
|
|
8
12
|
var _ramda = require('ramda');
|
|
9
13
|
|
|
10
14
|
var R = _interopRequireWildcard(_ramda);
|
|
@@ -23,10 +27,10 @@ var _getTooltipOptions = require('./getTooltipOptions');
|
|
|
23
27
|
|
|
24
28
|
var _constants = require('../constants');
|
|
25
29
|
|
|
26
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
27
|
-
|
|
28
30
|
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
|
|
29
31
|
|
|
32
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
33
|
+
|
|
30
34
|
var FOCUS_COLORS = exports.FOCUS_COLORS = {
|
|
31
35
|
highlightColors: ['#E73741', '#0F8FD9', '#993484', '#DF521E', '#719E24', '#E1B400', '#32A674', '#0B68AF'],
|
|
32
36
|
baselineColors: ['#0B1E2D']
|
|
@@ -74,7 +78,7 @@ var getChartOptions = exports.getChartOptions = function getChartOptions(data, t
|
|
|
74
78
|
base: (0, _getBaseOptions.getBaseOptions)(type, options),
|
|
75
79
|
grid: (0, _getGridOptions.getGridOptions)(type, options),
|
|
76
80
|
map: R.pipe(R.propOr({}, 'map'), R.mergeRight({ intBoundariesColor: '#8EA4B1' }))(options),
|
|
77
|
-
serie: {
|
|
81
|
+
serie: (0, _extends3.default)({}, R.propOr({}, 'serie', options), {
|
|
78
82
|
annotation: getAnnotationOptions(type, options),
|
|
79
83
|
choropleth: R.pipe(R.pathOr({}, ['serie', 'choropleth']), R.mergeRight({
|
|
80
84
|
divisions: 4,
|
|
@@ -97,6 +101,6 @@ var getChartOptions = exports.getChartOptions = function getChartOptions(data, t
|
|
|
97
101
|
highlightColors: R.pathOr(FOCUS_COLORS.highlightColors, ['serie', 'highlightColors'], options),
|
|
98
102
|
baselineColors: R.pathOr(FOCUS_COLORS.baselineColors, ['serie', 'baselineColors'], options),
|
|
99
103
|
tooltip: (0, _getTooltipOptions.getTooltipOptions)(data, type, options, tooltipFonts, timeFormats, locale)
|
|
100
|
-
}
|
|
104
|
+
})
|
|
101
105
|
};
|
|
102
106
|
};
|
|
@@ -4,40 +4,34 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var _ramda = require('ramda');
|
|
8
8
|
|
|
9
|
-
var
|
|
10
|
-
|
|
11
|
-
var _find2 = require('lodash/find');
|
|
12
|
-
|
|
13
|
-
var _find3 = _interopRequireDefault(_find2);
|
|
14
|
-
|
|
15
|
-
var _head2 = require('lodash/head');
|
|
16
|
-
|
|
17
|
-
var _head3 = _interopRequireDefault(_head2);
|
|
18
|
-
|
|
19
|
-
var _get2 = require('lodash/get');
|
|
20
|
-
|
|
21
|
-
var _get3 = _interopRequireDefault(_get2);
|
|
9
|
+
var R = _interopRequireWildcard(_ramda);
|
|
22
10
|
|
|
23
11
|
var _dotstatsuiteSdmxjs = require('@sis-cc/dotstatsuite-sdmxjs');
|
|
24
12
|
|
|
25
|
-
function
|
|
13
|
+
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
14
|
|
|
27
15
|
exports.default = function (dimensions, singularity) {
|
|
28
|
-
var
|
|
16
|
+
var value = dimensions.value,
|
|
17
|
+
values = dimensions.values;
|
|
18
|
+
|
|
19
|
+
var mode = R.prop('mode', singularity) === 'percent' ? 'percent' : 'values';
|
|
20
|
+
if (R.length(values) === 1) {
|
|
21
|
+
return { mode: mode, id: R.pathOr(null, [0, 'id'], value) };
|
|
22
|
+
}
|
|
29
23
|
var serieDimension = null;
|
|
30
|
-
var id =
|
|
31
|
-
if (!
|
|
32
|
-
serieDimension = (
|
|
24
|
+
var id = R.prop('id', singularity);
|
|
25
|
+
if (!R.isNil(id)) {
|
|
26
|
+
serieDimension = R.find(R.propEq('id', id), values);
|
|
33
27
|
}
|
|
34
|
-
var areaDimension = (0, _dotstatsuiteSdmxjs.getRefAreaDimension)({ dimensions:
|
|
35
|
-
var timeDimension = (0, _dotstatsuiteSdmxjs.getTimePeriodDimension)({ dimensions:
|
|
28
|
+
var areaDimension = (0, _dotstatsuiteSdmxjs.getRefAreaDimension)({ dimensions: values });
|
|
29
|
+
var timeDimension = (0, _dotstatsuiteSdmxjs.getTimePeriodDimension)({ dimensions: values });
|
|
36
30
|
|
|
37
|
-
serieDimension = serieDimension || areaDimension || timeDimension ||
|
|
31
|
+
serieDimension = serieDimension || areaDimension || timeDimension || R.head(values);
|
|
38
32
|
|
|
39
33
|
return {
|
|
40
34
|
mode: mode,
|
|
41
|
-
id:
|
|
35
|
+
id: R.propOr(null, 'id', serieDimension)
|
|
42
36
|
};
|
|
43
37
|
};
|
|
@@ -4,69 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var _extends2 = require('babel-runtime/helpers/extends');
|
|
8
8
|
|
|
9
|
-
var
|
|
10
|
-
|
|
11
|
-
var _extends3 = require('babel-runtime/helpers/extends');
|
|
12
|
-
|
|
13
|
-
var _extends4 = _interopRequireDefault(_extends3);
|
|
14
|
-
|
|
15
|
-
var _take2 = require('lodash/take');
|
|
16
|
-
|
|
17
|
-
var _take3 = _interopRequireDefault(_take2);
|
|
18
|
-
|
|
19
|
-
var _sumBy2 = require('lodash/sumBy');
|
|
20
|
-
|
|
21
|
-
var _sumBy3 = _interopRequireDefault(_sumBy2);
|
|
22
|
-
|
|
23
|
-
var _sortBy2 = require('lodash/sortBy');
|
|
24
|
-
|
|
25
|
-
var _sortBy3 = _interopRequireDefault(_sortBy2);
|
|
26
|
-
|
|
27
|
-
var _split2 = require('lodash/split');
|
|
28
|
-
|
|
29
|
-
var _split3 = _interopRequireDefault(_split2);
|
|
30
|
-
|
|
31
|
-
var _reduce2 = require('lodash/reduce');
|
|
32
|
-
|
|
33
|
-
var _reduce3 = _interopRequireDefault(_reduce2);
|
|
34
|
-
|
|
35
|
-
var _map2 = require('lodash/map');
|
|
36
|
-
|
|
37
|
-
var _map3 = _interopRequireDefault(_map2);
|
|
38
|
-
|
|
39
|
-
var _keyBy2 = require('lodash/keyBy');
|
|
40
|
-
|
|
41
|
-
var _keyBy3 = _interopRequireDefault(_keyBy2);
|
|
42
|
-
|
|
43
|
-
var _join2 = require('lodash/join');
|
|
44
|
-
|
|
45
|
-
var _join3 = _interopRequireDefault(_join2);
|
|
46
|
-
|
|
47
|
-
var _isUndefined2 = require('lodash/isUndefined');
|
|
48
|
-
|
|
49
|
-
var _isUndefined3 = _interopRequireDefault(_isUndefined2);
|
|
50
|
-
|
|
51
|
-
var _head2 = require('lodash/head');
|
|
52
|
-
|
|
53
|
-
var _head3 = _interopRequireDefault(_head2);
|
|
54
|
-
|
|
55
|
-
var _has2 = require('lodash/has');
|
|
56
|
-
|
|
57
|
-
var _has3 = _interopRequireDefault(_has2);
|
|
58
|
-
|
|
59
|
-
var _groupBy2 = require('lodash/groupBy');
|
|
60
|
-
|
|
61
|
-
var _groupBy3 = _interopRequireDefault(_groupBy2);
|
|
62
|
-
|
|
63
|
-
var _get2 = require('lodash/get');
|
|
64
|
-
|
|
65
|
-
var _get3 = _interopRequireDefault(_get2);
|
|
66
|
-
|
|
67
|
-
var _find2 = require('lodash/find');
|
|
68
|
-
|
|
69
|
-
var _find3 = _interopRequireDefault(_find2);
|
|
9
|
+
var _extends3 = _interopRequireDefault(_extends2);
|
|
70
10
|
|
|
71
11
|
var _dotstatsuiteSdmxjs = require('@sis-cc/dotstatsuite-sdmxjs');
|
|
72
12
|
|
|
@@ -74,137 +14,121 @@ var _dimensionUtils = require('../dimension-utils');
|
|
|
74
14
|
|
|
75
15
|
var _observationFormater = require('../observation-formater');
|
|
76
16
|
|
|
17
|
+
var _ramda = require('ramda');
|
|
18
|
+
|
|
19
|
+
var R = _interopRequireWildcard(_ramda);
|
|
20
|
+
|
|
21
|
+
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; } }
|
|
22
|
+
|
|
77
23
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
78
24
|
|
|
79
25
|
var flatDatapoints = function flatDatapoints(observations, dimensions, dimensionsWithValuesIndexedById, serieDimensionId, display, formaterAttrs) {
|
|
80
|
-
|
|
26
|
+
|
|
27
|
+
var datapoints = R.mapObjIndexed(function (observationValue, observationKey) {
|
|
81
28
|
var x = null;
|
|
82
|
-
var y = Number(
|
|
29
|
+
var y = Number(R.head(observationValue));
|
|
83
30
|
var formater = (0, _observationFormater.getObservationFormater)(observationValue, formaterAttrs);
|
|
84
|
-
var splittedKey =
|
|
31
|
+
var splittedKey = R.split(':', observationKey);
|
|
85
32
|
var layerKey = [];
|
|
86
|
-
var layerDimensions = (
|
|
87
|
-
var dimension = (
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
33
|
+
var layerDimensions = R.addIndex(R.reduce)(function (memo, dimensionValueIndex, dimensionIndex) {
|
|
34
|
+
var dimension = R.nth(dimensionIndex, dimensions);
|
|
35
|
+
var _dimensionValue = R.pathOr({}, ['values', Number(dimensionValueIndex)], dimension);
|
|
36
|
+
var label = (0, _dimensionUtils.dimensionValueDisplay)(display)(_dimensionValue);
|
|
37
|
+
var dimensionValue = (0, _extends3.default)({}, _dimensionValue, {
|
|
38
|
+
index: Number(dimensionValueIndex),
|
|
39
|
+
label: label
|
|
40
|
+
});
|
|
41
|
+
if (dimension.id === serieDimensionId) {
|
|
42
|
+
x = dimensionValue;
|
|
43
|
+
} else if (R.has(dimension.id, dimensionsWithValuesIndexedById)) {
|
|
44
|
+
memo.push(dimensionValue);
|
|
45
|
+
layerKey.push(dimensionValueIndex);
|
|
99
46
|
}
|
|
100
47
|
return memo;
|
|
101
|
-
}, []);
|
|
102
|
-
return { formater: formater, x: x, y: y, layerDimensions: layerDimensions, layerKey:
|
|
103
|
-
});
|
|
48
|
+
}, [], splittedKey);
|
|
49
|
+
return { formater: formater, x: x, y: y, layerDimensions: layerDimensions, layerKey: R.join(':', layerKey) };
|
|
50
|
+
}, observations);
|
|
51
|
+
|
|
52
|
+
return R.values(datapoints);
|
|
104
53
|
};
|
|
105
54
|
|
|
106
55
|
var serie = function serie(observations, dimensions, dimensionsWithValuesIndexedById, serieDimensionId, display, formaterAttrs) {
|
|
107
|
-
var serieDimension = (
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
if ((0, _isUndefined3.default)(serieDimension)) {
|
|
111
|
-
return [];
|
|
56
|
+
var serieDimension = R.find(R.propEq('id', serieDimensionId), dimensions);
|
|
57
|
+
if (R.isNil(serieDimension)) {
|
|
58
|
+
return { datapoints: [], layerSeries: [] };
|
|
112
59
|
}
|
|
113
60
|
var _flatDatapoints = flatDatapoints(observations, dimensions, dimensionsWithValuesIndexedById, serieDimensionId, display, formaterAttrs);
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
var layerFullSeries =
|
|
118
|
-
return {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
}
|
|
123
|
-
var
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
});
|
|
127
|
-
return (0, _extends4.default)({}, memo, (0, _defineProperty3.default)({}, '' + key, dps));
|
|
128
|
-
}, {}); // { [layeredKey]: { [x.id]: dp } }
|
|
129
|
-
var datapoints = (0, _map3.default)(serieDimension.values, function (serieValue, index) {
|
|
61
|
+
|
|
62
|
+
var layeredDatapoints = R.groupBy(R.prop('layerKey'), _flatDatapoints); // { [layeredKey]: [dps] }
|
|
63
|
+
|
|
64
|
+
var layerFullSeries = R.map(function (datapoints) {
|
|
65
|
+
return {
|
|
66
|
+
layerDimensions: R.prop('layerDimensions', R.head(datapoints)),
|
|
67
|
+
layerKey: R.prop('layerKey', R.head(datapoints))
|
|
68
|
+
};
|
|
69
|
+
}, R.values(layeredDatapoints)); // [{ layerDimensions, layerKey }]
|
|
70
|
+
var layerSeries = R.take(5, R.sortBy(R.prop('layerKey'), layerFullSeries));
|
|
71
|
+
var layeredDatapointsKeyedByX = R.mapObjIndexed(R.indexBy(R.path(['x', 'id'])), layeredDatapoints); // { [layeredKey]: { [x.id]: dp } }
|
|
72
|
+
var datapoints = R.addIndex(R.map)(function (serieValue, index) {
|
|
130
73
|
var serieValueId = serieValue.id;
|
|
131
74
|
var x = (0, _dimensionUtils.dimensionValueDisplay)(display)(serieValue);
|
|
132
|
-
var y =
|
|
75
|
+
var y = R.map(function (_ref) {
|
|
133
76
|
var layerKey = _ref.layerKey;
|
|
134
|
-
return
|
|
135
|
-
});
|
|
136
|
-
var formaters =
|
|
77
|
+
return R.pathOr(null, [layerKey, serieValueId, 'y'], layeredDatapointsKeyedByX);
|
|
78
|
+
}, layerSeries);
|
|
79
|
+
var formaters = R.map(function (_ref2) {
|
|
137
80
|
var layerKey = _ref2.layerKey;
|
|
138
|
-
return
|
|
139
|
-
});
|
|
81
|
+
return R.pathOr(null, [layerKey, serieValueId, 'formater'], layeredDatapointsKeyedByX);
|
|
82
|
+
}, layerSeries);
|
|
140
83
|
return { category: x, formaters: formaters, index: index, x: x, y: y, key: serieValueId };
|
|
141
|
-
});
|
|
84
|
+
}, serieDimension.values);
|
|
85
|
+
var _datapoints = R.when(R.pipe(R.length, R.equals(1)), R.pipe(R.set(R.lensPath([0, 'category']), ''), R.set(R.lensPath([0, 'x']), '')), datapoints);
|
|
142
86
|
return {
|
|
143
|
-
datapoints:
|
|
144
|
-
layerSeries:
|
|
87
|
+
datapoints: _datapoints,
|
|
88
|
+
layerSeries: R.map(function (layer) {
|
|
145
89
|
return {
|
|
146
|
-
id: (
|
|
147
|
-
|
|
148
|
-
}), ' - '),
|
|
149
|
-
label: (0, _join3.default)((0, _map3.default)(layer.layerDimensions, function (l) {
|
|
150
|
-
return l.label;
|
|
151
|
-
}), ' - ')
|
|
90
|
+
id: R.pipe(R.prop('layerDimensions'), R.pluck('id'), R.join(' - '))(layer),
|
|
91
|
+
label: R.pipe(R.prop('layerDimensions'), R.pluck('label'), R.join(' - '))(layer)
|
|
152
92
|
};
|
|
153
|
-
})
|
|
93
|
+
}, layerSeries)
|
|
154
94
|
};
|
|
155
95
|
};
|
|
156
96
|
|
|
157
|
-
var percentSerie = function
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
formaters: null
|
|
172
|
-
});
|
|
173
|
-
})
|
|
174
|
-
}];
|
|
175
|
-
};
|
|
97
|
+
var percentSerie = R.pipe(R.over(R.lensProp('datapoints'), R.map(function (dp) {
|
|
98
|
+
var total = R.pipe(R.map(function (v) {
|
|
99
|
+
return Math.abs(v);
|
|
100
|
+
}), R.sum)(dp.y);
|
|
101
|
+
if (!total) {
|
|
102
|
+
return dp;
|
|
103
|
+
}
|
|
104
|
+
return (0, _extends3.default)({}, dp, {
|
|
105
|
+
y: R.map(function (v) {
|
|
106
|
+
return Math.abs(v) / total * 100;
|
|
107
|
+
}, dp.y),
|
|
108
|
+
formaters: null
|
|
109
|
+
});
|
|
110
|
+
})), R.of);
|
|
176
111
|
|
|
177
|
-
var serieSortedByTotal = function
|
|
178
|
-
return
|
|
179
|
-
|
|
180
|
-
datapoints: (0, _sortBy3.default)(serie.datapoints, function (dp) {
|
|
181
|
-
return (0, _sumBy3.default)(dp.y, function (val) {
|
|
182
|
-
return val > 0 ? -1 * val : 0;
|
|
183
|
-
});
|
|
184
|
-
})
|
|
185
|
-
}];
|
|
186
|
-
};
|
|
112
|
+
var serieSortedByTotal = R.pipe(R.over(R.lensProp('datapoints'), R.sortBy(R.pipe(R.prop('y'), R.map(function (v) {
|
|
113
|
+
return v > 0 ? R.negate(v) : 0;
|
|
114
|
+
}), R.sum))), R.of);
|
|
187
115
|
|
|
188
|
-
var serieSortedByDataOrder =
|
|
189
|
-
return [{ //to robustize with date generation, as in timeline series
|
|
190
|
-
layerSeries: serie.layerSeries,
|
|
191
|
-
datapoints: (0, _sortBy3.default)(serie.datapoints, function (dp) {
|
|
192
|
-
return dp.index;
|
|
193
|
-
})
|
|
194
|
-
}];
|
|
195
|
-
};
|
|
116
|
+
var serieSortedByDataOrder = R.pipe(R.over(R.lensProp('datapoints'), R.sortBy(R.prop('index'))), R.of);
|
|
196
117
|
|
|
197
118
|
exports.default = function (_ref3, dimensionsWithValuesIndexedById, singularity, display, formaterAttrs) {
|
|
198
119
|
var observations = _ref3.observations,
|
|
199
120
|
dimensions = _ref3.dimensions;
|
|
200
121
|
|
|
201
|
-
var mode =
|
|
202
|
-
var serieDimensionId =
|
|
122
|
+
var mode = R.propOr('values', 'mode', singularity);
|
|
123
|
+
var serieDimensionId = R.propOr(null, 'id', singularity);
|
|
203
124
|
var _serie = serie(observations, dimensions, dimensionsWithValuesIndexedById, serieDimensionId, display, formaterAttrs);
|
|
204
125
|
if (mode === 'percent') {
|
|
205
126
|
return percentSerie(_serie);
|
|
206
127
|
} else if ((0, _dotstatsuiteSdmxjs.isTimePeriodDimension)({ id: serieDimensionId })) {
|
|
207
128
|
return serieSortedByDataOrder(_serie);
|
|
208
129
|
}
|
|
209
|
-
|
|
130
|
+
//console.log('raw serie', _serie);
|
|
131
|
+
var res = serieSortedByTotal(_serie);
|
|
132
|
+
//console.log('serie', res);
|
|
133
|
+
return res;
|
|
210
134
|
};
|
package/lib/rules/src/index.js
CHANGED
|
@@ -482,10 +482,7 @@ var _symbolDimension = function _symbolDimension(data, ids) {
|
|
|
482
482
|
var symbolDimension = exports.symbolDimension = (0, _memoizee2.default)(_symbolDimension);
|
|
483
483
|
|
|
484
484
|
var _stackedDimension = function _stackedDimension(data, singularity) {
|
|
485
|
-
|
|
486
|
-
values = _splitDimensions4.values;
|
|
487
|
-
|
|
488
|
-
return (0, _stackedDimension3.default)(values, singularity);
|
|
485
|
+
return (0, _stackedDimension3.default)(splitDimensions(data), singularity);
|
|
489
486
|
};
|
|
490
487
|
var stackedDimension = exports.stackedDimension = (0, _memoizee2.default)(_stackedDimension);
|
|
491
488
|
|
|
@@ -618,8 +615,8 @@ var parseFocus = exports.parseFocus = (0, _memoizee2.default)(_parseFocus);
|
|
|
618
615
|
var _defaultSubtitle = function _defaultSubtitle(data, display) {
|
|
619
616
|
var REJECTED_SUBTITLE_IDS = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _constants.DEFAULT_REJECTED_SUBTITLE_IDS;
|
|
620
617
|
|
|
621
|
-
var
|
|
622
|
-
value =
|
|
618
|
+
var _splitDimensions4 = splitDimensions(data),
|
|
619
|
+
value = _splitDimensions4.value;
|
|
623
620
|
|
|
624
621
|
var values = (0, _reduce3.default)(R.reject(R.prop('isHidden'))(value), function (memo, d) {
|
|
625
622
|
var dvId = (0, _get3.default)(d, 'values[0].id');
|
|
@@ -167,6 +167,7 @@ var initialState = exports.initialState = (0, _extends3.default)({
|
|
|
167
167
|
}, _linear.initialState);
|
|
168
168
|
|
|
169
169
|
var stateFromNewProps = exports.stateFromNewProps = function stateFromNewProps(props, state) {
|
|
170
|
+
if (R.isNil(props.data)) return state; // don't reset state
|
|
170
171
|
var focusState = (0, _focus.sampleFocusStateFromNewProps)(props, state);
|
|
171
172
|
var scatterState = (0, _scatter.scatterStateFromNewProps)(props, state);
|
|
172
173
|
var symbolState = (0, _symbol.symbolStateFromNewProps)(props, state);
|
|
@@ -374,7 +375,7 @@ var toProperties = exports.toProperties = function toProperties(props, state, _o
|
|
|
374
375
|
},
|
|
375
376
|
stackedDimension: {
|
|
376
377
|
id: 'stackedDimension',
|
|
377
|
-
isActive: (0, _stacked.
|
|
378
|
+
isActive: (0, _stacked.isStackedDimActive)(props),
|
|
378
379
|
options: (0, _utils.chartDimensionOptions)(props, _stacked.isStacked),
|
|
379
380
|
onChange: R.pipe(_utils.optionParser, (0, _stacked.onChangeStackedDimension)(props, state), _onChange),
|
|
380
381
|
value: (0, _utils.chartDimensionToOption)('stackedDimension')(props, state)
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.stackedStateFromNewProps = exports.onChangeStackedMode = exports.stackedModeOptions = exports.onChangeStackedDimension = exports.toStackedSingularity = exports.isStacked = undefined;
|
|
6
|
+
exports.stackedStateFromNewProps = exports.onChangeStackedMode = exports.isStackedDimActive = exports.stackedModeOptions = exports.onChangeStackedDimension = exports.toStackedSingularity = exports.isStacked = undefined;
|
|
7
7
|
|
|
8
8
|
var _extends2 = require('babel-runtime/helpers/extends');
|
|
9
9
|
|
|
@@ -23,6 +23,8 @@ var _constants = require('../constants');
|
|
|
23
23
|
|
|
24
24
|
var _utils = require('./utils');
|
|
25
25
|
|
|
26
|
+
var _ = require('../');
|
|
27
|
+
|
|
26
28
|
var _focus = require('./focus');
|
|
27
29
|
|
|
28
30
|
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
|
|
@@ -68,6 +70,20 @@ var onChangeStackedDimension = exports.onChangeStackedDimension = function onCha
|
|
|
68
70
|
|
|
69
71
|
var stackedModeOptions = exports.stackedModeOptions = [{ value: _constants.VALUES }, { value: _constants.PERCENT }];
|
|
70
72
|
|
|
73
|
+
var isStackedDimActive = exports.isStackedDimActive = function isStackedDimActive(_ref2) {
|
|
74
|
+
var data = _ref2.data,
|
|
75
|
+
type = _ref2.type;
|
|
76
|
+
|
|
77
|
+
var _splitDimensions = (0, _.splitDimensions)(data),
|
|
78
|
+
values = _splitDimensions.values;
|
|
79
|
+
|
|
80
|
+
if (R.length(values) < 2) {
|
|
81
|
+
console.log('niet');
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
return isStacked(type);
|
|
85
|
+
};
|
|
86
|
+
|
|
71
87
|
var onChangeStackedMode = exports.onChangeStackedMode = function onChangeStackedMode(value) {
|
|
72
88
|
return R.has(value, stackedModes) ? { stackedMode: value } : {};
|
|
73
89
|
};
|
|
@@ -86,17 +102,25 @@ var stackedStateFromNewProps = exports.stackedStateFromNewProps = function stack
|
|
|
86
102
|
|
|
87
103
|
var dimension = getStackedDimension(data, state);
|
|
88
104
|
if (R.isNil(dimension)) {
|
|
89
|
-
var
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
dimension = R.head(area);
|
|
96
|
-
} else if (!R.isNil(time) && !R.isEmpty(time)) {
|
|
97
|
-
dimension = R.head(time);
|
|
105
|
+
var _splitDimensions2 = (0, _.splitDimensions)(data),
|
|
106
|
+
value = _splitDimensions2.value,
|
|
107
|
+
values = _splitDimensions2.values;
|
|
108
|
+
|
|
109
|
+
if (R.length(values) === 1) {
|
|
110
|
+
dimension = R.head(value);
|
|
98
111
|
} else {
|
|
99
|
-
|
|
112
|
+
var _getGroupedDimensions = (0, _utils.getGroupedDimensions)(data),
|
|
113
|
+
area = _getGroupedDimensions.area,
|
|
114
|
+
time = _getGroupedDimensions.time,
|
|
115
|
+
other = _getGroupedDimensions.other;
|
|
116
|
+
|
|
117
|
+
if (!R.isNil(area) && !R.isEmpty(area)) {
|
|
118
|
+
dimension = R.head(area);
|
|
119
|
+
} else if (!R.isNil(time) && !R.isEmpty(time)) {
|
|
120
|
+
dimension = R.head(time);
|
|
121
|
+
} else {
|
|
122
|
+
dimension = R.head(other);
|
|
123
|
+
}
|
|
100
124
|
}
|
|
101
125
|
}
|
|
102
126
|
var _mode = R.prop('stackedMode', state);
|
|
@@ -51,7 +51,10 @@ var toState = exports.toState = function toState(artefact) {
|
|
|
51
51
|
var getPropertyDimension = exports.getPropertyDimension = function getPropertyDimension(property) {
|
|
52
52
|
return function (data, state) {
|
|
53
53
|
var statePropertyDimensionId = (0, _ramda.prop)(property, state);
|
|
54
|
-
|
|
54
|
+
|
|
55
|
+
var _extractSdmxArtefacts = (0, _.extractSdmxArtefacts)(data),
|
|
56
|
+
dimensions = _extractSdmxArtefacts.dimensions;
|
|
57
|
+
|
|
55
58
|
return (0, _ramda.find)((0, _ramda.propEq)('id', statePropertyDimensionId), dimensions);
|
|
56
59
|
};
|
|
57
60
|
};
|
|
@@ -116,5 +119,8 @@ var chartDimensionOptions = exports.chartDimensionOptions = function chartDimens
|
|
|
116
119
|
return [];
|
|
117
120
|
}
|
|
118
121
|
var dimensions = (0, _ramda.prop)('values', (0, _.splitDimensions)(data));
|
|
122
|
+
if ((0, _ramda.equals)(type, _constants.STACKED) && (0, _ramda.length)(dimensions) === 1) {
|
|
123
|
+
return [];
|
|
124
|
+
}
|
|
119
125
|
return (0, _ramda.map)(artefactToOption(display), dimensions);
|
|
120
126
|
};
|