@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.
Files changed (50) hide show
  1. package/lib/app.js +13 -5
  2. package/lib/rules/src/chart/getChartOptions.js +8 -4
  3. package/lib/rules/src/factories/stacked-dimension.js +17 -23
  4. package/lib/rules/src/factories/stacked-series.js +82 -158
  5. package/lib/rules/src/index.js +3 -6
  6. package/lib/rules/src/properties/index.js +2 -1
  7. package/lib/rules/src/properties/stacked.js +35 -11
  8. package/lib/rules/src/properties/utils.js +7 -1
  9. package/lib/rules-driver/src/app.js +116 -167
  10. package/lib/viewer/src/chartUtils/series.js +4 -0
  11. package/lib/viewer/src/legends/SeriesLegend.js +3 -1
  12. package/package.json +2 -2
  13. package/src/app.js +10 -5
  14. package/src/rules/src/chart/getChartOptions.js +1 -0
  15. package/src/rules/src/factories/stacked-dimension.js +14 -10
  16. package/src/rules/src/factories/stacked-series.js +102 -94
  17. package/src/rules/src/index.js +1 -2
  18. package/src/rules/src/properties/index.js +3 -1
  19. package/src/rules/src/properties/stacked.js +23 -7
  20. package/src/rules/src/properties/utils.js +8 -3
  21. package/src/rules-driver/src/app.js +116 -132
  22. package/src/rules-driver/src/mocks/data1.json +332 -0
  23. package/src/rules-driver/src/mocks/data2.json +309 -0
  24. package/src/viewer/src/chartUtils/series.js +4 -0
  25. package/src/viewer/src/legends/SeriesLegend.js +4 -1
  26. package/lib/rules-driver/src/app/chart.js +0 -52
  27. package/lib/rules-driver/src/app/config-axis.js +0 -95
  28. package/lib/rules-driver/src/app/config-buttons.js +0 -47
  29. package/lib/rules-driver/src/app/config-input.js +0 -51
  30. package/lib/rules-driver/src/app/config-select.js +0 -57
  31. package/lib/rules-driver/src/app/config-t4size.js +0 -61
  32. package/lib/rules-driver/src/app/config1.js +0 -148
  33. package/lib/rules-driver/src/app/menu.js +0 -44
  34. package/lib/rules-driver/src/app/viewer1.js +0 -39
  35. package/lib/rules-driver/src/app/viewer2.js +0 -115
  36. package/src/rules-driver/src/app/chart.js +0 -18
  37. package/src/rules-driver/src/app/config-axis.js +0 -54
  38. package/src/rules-driver/src/app/config-buttons.js +0 -27
  39. package/src/rules-driver/src/app/config-input.js +0 -35
  40. package/src/rules-driver/src/app/config-select.js +0 -25
  41. package/src/rules-driver/src/app/config-t4size.js +0 -50
  42. package/src/rules-driver/src/app/config1.js +0 -120
  43. package/src/rules-driver/src/app/menu.js +0 -27
  44. package/src/rules-driver/src/app/viewer1.js +0 -18
  45. package/src/rules-driver/src/app/viewer2.js +0 -77
  46. package/src/rules-driver/src/mocks/ecb.json +0 -2069
  47. package/src/rules-driver/src/mocks/ins.json +0 -264
  48. package/src/rules-driver/src/mocks/oecd-time.json +0 -864
  49. package/src/rules-driver/src/mocks/oecd.json +0 -372
  50. 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('./viewer/src/app');
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
- _react2.default.Fragment,
18
- null,
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 _isNil2 = require('lodash/isNil');
7
+ var _ramda = require('ramda');
8
8
 
9
- var _isNil3 = _interopRequireDefault(_isNil2);
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 _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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 mode = (0, _get3.default)(singularity, 'mode') === 'percent' ? 'percent' : 'values';
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 = (0, _get3.default)(singularity, 'id');
31
- if (!(0, _isNil3.default)(id)) {
32
- serieDimension = (0, _find3.default)(dimensions, { id: id });
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: dimensions });
35
- var timeDimension = (0, _dotstatsuiteSdmxjs.getTimePeriodDimension)({ dimensions: dimensions });
28
+ var areaDimension = (0, _dotstatsuiteSdmxjs.getRefAreaDimension)({ dimensions: values });
29
+ var timeDimension = (0, _dotstatsuiteSdmxjs.getTimePeriodDimension)({ dimensions: values });
36
30
 
37
- serieDimension = serieDimension || areaDimension || timeDimension || (0, _head3.default)(dimensions);
31
+ serieDimension = serieDimension || areaDimension || timeDimension || R.head(values);
38
32
 
39
33
  return {
40
34
  mode: mode,
41
- id: (0, _get3.default)(serieDimension, 'id', null)
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 _defineProperty2 = require('babel-runtime/helpers/defineProperty');
7
+ var _extends2 = require('babel-runtime/helpers/extends');
8
8
 
9
- var _defineProperty3 = _interopRequireDefault(_defineProperty2);
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
- return (0, _map3.default)(observations, function (observationValue, observationKey) {
26
+
27
+ var datapoints = R.mapObjIndexed(function (observationValue, observationKey) {
81
28
  var x = null;
82
- var y = Number((0, _head3.default)(observationValue));
29
+ var y = Number(R.head(observationValue));
83
30
  var formater = (0, _observationFormater.getObservationFormater)(observationValue, formaterAttrs);
84
- var splittedKey = (0, _split3.default)(observationKey, ':');
31
+ var splittedKey = R.split(':', observationKey);
85
32
  var layerKey = [];
86
- var layerDimensions = (0, _reduce3.default)(splittedKey, function (memo, dimensionValueIndex, dimensionIndex) {
87
- var dimension = (0, _get3.default)(dimensions, '[' + dimensionIndex + ']');
88
- if ((0, _has3.default)(dimensionsWithValuesIndexedById, dimension.id)) {
89
- var dimensionValue = (0, _extends4.default)({}, (0, _get3.default)(dimension, 'values[' + dimensionValueIndex + ']', {}), {
90
- index: dimensionValueIndex,
91
- label: (0, _dimensionUtils.dimensionValueDisplay)(display)((0, _get3.default)(dimension, 'values[' + dimensionValueIndex + ']', {}))
92
- });
93
- if (dimension.id === serieDimensionId) {
94
- x = dimensionValue;
95
- } else {
96
- memo.push(dimensionValue);
97
- layerKey.push(dimensionValueIndex);
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: (0, _join3.default)(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 = (0, _find3.default)(dimensionsWithValuesIndexedById, function (d) {
108
- return d.id === serieDimensionId;
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
- var layeredDatapoints = (0, _groupBy3.default)(_flatDatapoints, function (dp) {
115
- return dp.layerKey;
116
- }); // { [layeredKey]: [dps] }
117
- var layerFullSeries = (0, _map3.default)(layeredDatapoints, function (datapoints, layerKey) {
118
- return { layerDimensions: (0, _get3.default)((0, _head3.default)(datapoints), 'layerDimensions'), layerKey: layerKey };
119
- }); // [{ layerDimensions, layerKey }]
120
- var layerSeries = (0, _take3.default)((0, _sortBy3.default)(layerFullSeries, function (layer) {
121
- return layer.layerKey;
122
- }), 5);
123
- var layeredDatapointsKeyedByX = (0, _reduce3.default)(layeredDatapoints, function (memo, layerDps, key) {
124
- var dps = (0, _keyBy3.default)(layerDps, function (dp) {
125
- return (0, _get3.default)(dp, 'x.id', '');
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 = (0, _map3.default)(layerSeries, function (_ref) {
75
+ var y = R.map(function (_ref) {
133
76
  var layerKey = _ref.layerKey;
134
- return (0, _get3.default)(layeredDatapointsKeyedByX, layerKey + '.' + serieValueId + '.y', null);
135
- });
136
- var formaters = (0, _map3.default)(layerSeries, function (_ref2) {
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 (0, _get3.default)(layeredDatapointsKeyedByX, layerKey + '.' + serieValueId + '.formater', null);
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: datapoints,
144
- layerSeries: (0, _map3.default)(layerSeries, function (layer) {
87
+ datapoints: _datapoints,
88
+ layerSeries: R.map(function (layer) {
145
89
  return {
146
- id: (0, _join3.default)((0, _map3.default)(layer.layerDimensions, function (l) {
147
- return l.id;
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 percentSerie(serie) {
158
- return [{
159
- layerSeries: serie.layerSeries,
160
- datapoints: (0, _map3.default)(serie.datapoints, function (dp) {
161
- var total = (0, _sumBy3.default)(dp.y, function (val) {
162
- return Math.abs(val);
163
- });
164
- if (!total) {
165
- return dp;
166
- }
167
- return (0, _extends4.default)({}, dp, {
168
- y: (0, _map3.default)(dp.y, function (value) {
169
- return Math.abs(value) / total * 100;
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 serieSortedByTotal(serie) {
178
- return [{
179
- layerSeries: serie.layerSeries,
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 = function serieSortedByDataOrder(serie) {
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 = (0, _get3.default)(singularity, 'mode', 'values');
202
- var serieDimensionId = (0, _get3.default)(singularity, 'id', null);
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
- return serieSortedByTotal(_serie);
130
+ //console.log('raw serie', _serie);
131
+ var res = serieSortedByTotal(_serie);
132
+ //console.log('serie', res);
133
+ return res;
210
134
  };
@@ -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
- var _splitDimensions4 = splitDimensions(data),
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 _splitDimensions5 = splitDimensions(data),
622
- value = _splitDimensions5.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.isStacked)(props.type),
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 _getGroupedDimensions = (0, _utils.getGroupedDimensions)(data),
90
- area = _getGroupedDimensions.area,
91
- time = _getGroupedDimensions.time,
92
- other = _getGroupedDimensions.other;
93
-
94
- if (!R.isNil(area) && !R.isEmpty(area)) {
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
- dimension = R.head(other);
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
- var dimensions = getDimensionsWithValues(data);
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
  };