@sis-cc/dotstatsuite-components 8.11.0 → 8.13.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 (52) hide show
  1. package/lib/app.js +13 -5
  2. package/lib/rules/src/factories/stacked-dimension.js +17 -23
  3. package/lib/rules/src/factories/stacked-series.js +82 -158
  4. package/lib/rules/src/index.js +3 -6
  5. package/lib/rules/src/properties/index.js +2 -1
  6. package/lib/rules/src/properties/stacked.js +35 -11
  7. package/lib/rules/src/properties/utils.js +7 -1
  8. package/lib/rules-driver/src/app.js +116 -167
  9. package/lib/viewer/src/app/use-case-3.js +52 -0
  10. package/lib/viewer/src/app.js +9 -0
  11. package/lib/viewer/src/index.js +1 -1
  12. package/lib/viewer/src/legends/SeriesLegend.js +3 -1
  13. package/package.json +2 -2
  14. package/src/app.js +10 -5
  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/app/use-case-3.js +18 -0
  25. package/src/viewer/src/app.js +6 -0
  26. package/src/viewer/src/index.js +2 -2
  27. package/src/viewer/src/legends/SeriesLegend.js +4 -1
  28. package/lib/rules-driver/src/app/chart.js +0 -52
  29. package/lib/rules-driver/src/app/config-axis.js +0 -95
  30. package/lib/rules-driver/src/app/config-buttons.js +0 -47
  31. package/lib/rules-driver/src/app/config-input.js +0 -51
  32. package/lib/rules-driver/src/app/config-select.js +0 -57
  33. package/lib/rules-driver/src/app/config-t4size.js +0 -61
  34. package/lib/rules-driver/src/app/config1.js +0 -148
  35. package/lib/rules-driver/src/app/menu.js +0 -44
  36. package/lib/rules-driver/src/app/viewer1.js +0 -39
  37. package/lib/rules-driver/src/app/viewer2.js +0 -115
  38. package/src/rules-driver/src/app/chart.js +0 -18
  39. package/src/rules-driver/src/app/config-axis.js +0 -54
  40. package/src/rules-driver/src/app/config-buttons.js +0 -27
  41. package/src/rules-driver/src/app/config-input.js +0 -35
  42. package/src/rules-driver/src/app/config-select.js +0 -25
  43. package/src/rules-driver/src/app/config-t4size.js +0 -50
  44. package/src/rules-driver/src/app/config1.js +0 -120
  45. package/src/rules-driver/src/app/menu.js +0 -27
  46. package/src/rules-driver/src/app/viewer1.js +0 -18
  47. package/src/rules-driver/src/app/viewer2.js +0 -77
  48. package/src/rules-driver/src/mocks/ecb.json +0 -2069
  49. package/src/rules-driver/src/mocks/ins.json +0 -264
  50. package/src/rules-driver/src/mocks/oecd-time.json +0 -864
  51. package/src/rules-driver/src/mocks/oecd.json +0 -372
  52. package/src/rules-driver/src/mocks/tunisia.json +0 -333
@@ -3,201 +3,150 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = undefined;
7
6
 
8
7
  var _extends2 = require('babel-runtime/helpers/extends');
9
8
 
10
9
  var _extends3 = _interopRequireDefault(_extends2);
11
10
 
12
- var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
11
+ var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
13
12
 
14
- var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
13
+ var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
15
14
 
16
- var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
15
+ var _slicedToArray2 = require('babel-runtime/helpers/slicedToArray');
17
16
 
18
- var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
19
-
20
- var _createClass2 = require('babel-runtime/helpers/createClass');
21
-
22
- var _createClass3 = _interopRequireDefault(_createClass2);
23
-
24
- var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
25
-
26
- var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
27
-
28
- var _inherits2 = require('babel-runtime/helpers/inherits');
29
-
30
- var _inherits3 = _interopRequireDefault(_inherits2);
17
+ var _slicedToArray3 = _interopRequireDefault(_slicedToArray2);
31
18
 
32
19
  var _react = require('react');
33
20
 
34
21
  var _react2 = _interopRequireDefault(_react);
35
22
 
36
- var _reactDom = require('react-dom');
37
-
38
- var _core = require('@blueprintjs/core');
23
+ var _ramda = require('ramda');
39
24
 
40
- require('@blueprintjs/core/dist/blueprint.css');
25
+ var R = _interopRequireWildcard(_ramda);
41
26
 
42
- var _ramda = require('ramda');
27
+ var _dotstatsuiteVisions = require('@sis-cc/dotstatsuite-visions');
43
28
 
44
29
  var _ = require('./');
45
30
 
46
31
  var _2 = _interopRequireDefault(_);
47
32
 
48
- var _oecd = require('./mocks/oecd.json');
49
-
50
- var _oecd2 = _interopRequireDefault(_oecd);
51
-
52
- var _oecdTime = require('./mocks/oecd-time.json');
53
-
54
- var _oecdTime2 = _interopRequireDefault(_oecdTime);
55
-
56
- var _menu = require('./app/menu');
33
+ var _data = require('./mocks/data1.json');
57
34
 
58
- var _menu2 = _interopRequireDefault(_menu);
35
+ var _data2 = _interopRequireDefault(_data);
59
36
 
60
- var _viewer = require('./app/viewer1');
37
+ var _data3 = require('./mocks/data2.json');
61
38
 
62
- var _viewer2 = _interopRequireDefault(_viewer);
39
+ var _data4 = _interopRequireDefault(_data3);
63
40
 
64
- var _viewer3 = require('./app/viewer2');
41
+ var _3 = require('../../');
65
42
 
66
- var _viewer4 = _interopRequireDefault(_viewer3);
43
+ 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; } }
67
44
 
68
45
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
69
46
 
70
- var App = function (_Component) {
71
- (0, _inherits3.default)(App, _Component);
72
-
73
- function App(props) {
74
- (0, _classCallCheck3.default)(this, App);
75
-
76
- var _this = (0, _possibleConstructorReturn3.default)(this, (App.__proto__ || (0, _getPrototypeOf2.default)(App)).call(this, props));
77
-
78
- _this.availableDatas = { oecdData: _oecd2.default, oecdTimeData: _oecdTime2.default };
79
-
80
- _this.sources = [{ label: 'oecd', value: 'oecdData', dataflowCode: 'KEI' }, { label: 'oecd quarter', value: 'oecdTimeData', dataflowCode: 'KEI' }];
81
-
82
- _this.chartTypes = [{ label: 'Bar', value: 'BarChart' }, { label: 'Row', value: 'RowChart' }, { label: 'Scatter', value: 'ScatterChart' }, { label: 'Timeline', value: 'TimelineChart' }, { label: 'H Symbol', value: 'HorizontalSymbolChart' }, { label: 'V Symbol', value: 'VerticalSymbolChart' }, { label: 'Stacked Bar', value: 'StackedBarChart' }, { label: 'Non Chart Type', value: 'NonChartType' }];
83
-
84
- _this.viewerOptions = [{ label: 'Old Classic OCC View', value: 'Viewer1' }, { label: 'Alternative Split', value: 'Viewer2' }];
85
-
86
- _this.viewers = {
87
- Viewer1: _viewer2.default,
88
- Viewer2: _viewer4.default
89
- };
90
-
91
- _this.state = {
92
- data: _oecd2.default,
93
- display: 'label',
94
- source: 'oecdData',
95
- type: 'BarChart',
96
- viewer: 'Viewer1'
97
- };
98
-
99
- _this.onChangeData = _this.onChangeData.bind(_this);
100
- _this.onChangeType = _this.onChangeType.bind(_this);
101
- _this.onChangeViewer = _this.onChangeViewer.bind(_this);
102
- _this.onChangeDisplay = _this.onChangeDisplay.bind(_this);
103
- return _this;
47
+ var labels = {
48
+ focus: 'Chart Focus',
49
+ highlight: 'Highlights',
50
+ baseline: 'Baseline',
51
+ select: 'Select',
52
+ size: 'Chart Size',
53
+ width: 'Width',
54
+ height: 'Height',
55
+ series: 'Chart Series',
56
+ scatterDimension: 'Scatter Dimension',
57
+ scatterX: 'Scatter X',
58
+ scatterY: 'Scatter Y',
59
+ symbolDimension: 'Symbol Dimension',
60
+ stackedDimension: 'Stacked Dimension',
61
+ stackedMode: 'Stacked Mode',
62
+ stackedModeOptions: {
63
+ values: 'Values',
64
+ percent: 'Percent'
65
+ },
66
+ axisX: 'Chart X Axis',
67
+ axisY: 'Chart Y Axis',
68
+ max: 'Max',
69
+ min: 'Min',
70
+ pivot: 'Pivot',
71
+ step: 'Step',
72
+ frequency: 'Frequency',
73
+ freqStep: 'Frequency Step',
74
+ logo: 'Remove logo',
75
+ copyright: 'Remove copyright',
76
+ title: 'Title',
77
+ subtitle: 'Subtitle',
78
+ source: 'Source',
79
+ information: 'Information',
80
+ reset: 'reset label',
81
+ uniqFocusOption: 'serie',
82
+ display: 'Display',
83
+ displayOptions: {
84
+ name: 'Name',
85
+ code: 'Code',
86
+ both: 'Both'
104
87
  }
88
+ };
105
89
 
106
- (0, _createClass3.default)(App, [{
107
- key: 'onChangeData',
108
- value: function onChangeData(source) {
109
- this.setState({ data: this.availableDatas[source], source: source });
110
- }
111
- }, {
112
- key: 'onChangeType',
113
- value: function onChangeType(type) {
114
- this.setState({ type: type });
115
- }
116
- }, {
117
- key: 'onChangeViewer',
118
- value: function onChangeViewer(viewer) {
119
- this.setState({ viewer: viewer });
120
- }
121
- }, {
122
- key: 'onChangeDisplay',
123
- value: function onChangeDisplay(display) {
124
- this.setState({ display: display });
125
- }
126
- }, {
127
- key: 'render',
128
- value: function render() {
129
- var _state = this.state,
130
- data = _state.data,
131
- source = _state.source,
132
- type = _state.type,
133
- viewer = _state.viewer,
134
- display = _state.display;
135
-
136
- var displayOptions = [{ label: 'label', value: 'label' }, { label: 'code', value: 'code' }, { label: 'both', value: 'both' }];
137
- var displayProperties = {
138
- display: {
139
- isActive: true,
140
- label: 'Display as',
141
- onChange: this.onChangeDisplay,
142
- options: displayOptions,
143
- value: display
144
- }
145
- };
146
- var dataflowCode = (0, _ramda.prop)('dataflowCode', (0, _ramda.find)((0, _ramda.propEq)('value', this.state.source), this.sources));
147
- var Viewer = this.viewers[viewer];
148
- return _react2.default.createElement(
149
- 'div',
150
- null,
151
- _react2.default.createElement(
152
- 'nav',
153
- { className: 'pt-navbar pt-dark' },
154
- _react2.default.createElement(_menu2.default, {
155
- align: 'left',
156
- items: this.viewerOptions,
157
- onChange: this.onChangeViewer,
158
- selected: viewer
159
- }),
160
- _react2.default.createElement('span', { className: 'pt-navbar-divider' }),
161
- _react2.default.createElement(_menu2.default, {
162
- align: 'right',
163
- items: this.chartTypes,
164
- onChange: this.onChangeType,
165
- selected: type
90
+ var renameKey = R.curry(function (oldKey, newKey, obj) {
91
+ return R.assoc(newKey, R.prop(oldKey, obj), R.dissoc(oldKey, obj));
92
+ });
93
+
94
+ var renameProperties = function renameProperties() {
95
+ var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
96
+ return R.map(R.ifElse(R.pipe(R.prop('id'), R.flip(R.includes)(keys)), renameKey('onChange', 'onSubmit'), R.identity));
97
+ };
98
+
99
+ var propertiesKeys = ['width', 'height', 'freqStep', 'maxX', 'minX', 'pivotX', 'stepX', 'maxY', 'minY', 'pivotY', 'stepY', 'title', 'subtitle', 'source'];
100
+
101
+ var App = function App() {
102
+ var _useState = (0, _react.useState)(true),
103
+ _useState2 = (0, _slicedToArray3.default)(_useState, 2),
104
+ toggle = _useState2[0],
105
+ setToggle = _useState2[1];
106
+
107
+ var dataflow = { id: "DF_KEI_21760", name: "Harmonised Unemployment Rate" };
108
+ var display = 'label';
109
+ var type = 'BarChart';
110
+ var props = { dataflow: dataflow, display: display, type: type };
111
+
112
+ return _react2.default.createElement(
113
+ 'div',
114
+ null,
115
+ _react2.default.createElement(
116
+ 'button',
117
+ { onClick: function onClick() {
118
+ return setToggle(function (prev) {
119
+ return !prev;
120
+ });
121
+ }, style: { marginBottom: '10px' } },
122
+ 'Toggle Selection'
123
+ ),
124
+ _react2.default.createElement(_2.default, (0, _extends3.default)({
125
+ data: toggle ? _data2.default : _data4.default
126
+ }, props, {
127
+ display: display,
128
+ type: type,
129
+ render: function render(_ref) {
130
+ var properties = _ref.properties,
131
+ parsedProps = (0, _objectWithoutProperties3.default)(_ref, ['properties']);
132
+
133
+ return _react2.default.createElement(
134
+ 'div',
135
+ null,
136
+ _react2.default.createElement(_dotstatsuiteVisions.ChartsConfig, {
137
+ properties: R.pipe(renameProperties(propertiesKeys))(properties),
138
+ labels: labels
166
139
  }),
167
- _react2.default.createElement('span', { className: 'pt-navbar-divider' }),
168
- _react2.default.createElement(_menu2.default, {
169
- align: 'right',
170
- iconName: 'import',
171
- items: this.sources,
172
- onChange: this.onChangeData,
173
- selected: source
174
- })
175
- ),
176
- _react2.default.createElement(_2.default, {
177
- data: data,
178
- dataflowCode: dataflowCode,
179
- display: display,
180
- options: { base: { height: 500 } },
181
- type: type,
182
- render: function render(_ref) {
183
- var chartData = _ref.chartData,
184
- chartOptions = _ref.chartOptions,
185
- onChange = _ref.onChange,
186
- properties = _ref.properties;
187
- return _react2.default.createElement(Viewer, {
188
- chartData: chartData,
189
- chartOptions: chartOptions,
190
- onChange: onChange,
191
- properties: (0, _extends3.default)({}, properties, displayProperties),
192
- type: type
193
- });
194
- }
195
- })
196
- );
197
- }
198
- }]);
199
- return App;
200
- }(_react.Component);
201
-
202
- exports.default = App;
203
- ;
140
+ _react2.default.createElement(_3.Viewer, (0, _extends3.default)({}, parsedProps, {
141
+ chartData: R.pick(['series', 'frequency'])(parsedProps.chartData),
142
+ properties: R.tap(console.log)(R.over(R.lensProp('baseline'), R.omit(['onChange']), properties)),
143
+ type: 'BarChart',
144
+ locale: 'en'
145
+ }))
146
+ );
147
+ }
148
+ }))
149
+ );
150
+ };
151
+
152
+ exports.default = App;
@@ -0,0 +1,52 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _extends2 = require('babel-runtime/helpers/extends');
8
+
9
+ var _extends3 = _interopRequireDefault(_extends2);
10
+
11
+ var _react = require('react');
12
+
13
+ var _react2 = _interopRequireDefault(_react);
14
+
15
+ var _ramda = require('ramda');
16
+
17
+ var R = _interopRequireWildcard(_ramda);
18
+
19
+ var _ = require('../');
20
+
21
+ var _2 = _interopRequireDefault(_);
22
+
23
+ var _row = require('../../mocks/row');
24
+
25
+ var _row2 = _interopRequireDefault(_row);
26
+
27
+ var _stack = require('../../mocks/stack');
28
+
29
+ var _stack2 = _interopRequireDefault(_stack);
30
+
31
+ 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; } }
32
+
33
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
34
+
35
+ exports.default = function (_ref) {
36
+ var options = _ref.options;
37
+
38
+ return _react2.default.createElement(
39
+ 'div',
40
+ { style: { display: 'flex' } },
41
+ _react2.default.createElement(
42
+ 'div',
43
+ null,
44
+ _react2.default.createElement(_2.default, (0, _extends3.default)({}, (0, _row2.default)(), { chartOptions: options, type: 'RowChart' }))
45
+ ),
46
+ _react2.default.createElement(
47
+ 'div',
48
+ null,
49
+ _react2.default.createElement(_2.default, (0, _extends3.default)({}, (0, _stack2.default)(), { chartOptions: options, type: 'StackedBarChart' }))
50
+ )
51
+ );
52
+ };
@@ -36,6 +36,10 @@ var _useCase3 = require('./app/use-case-2');
36
36
 
37
37
  var _useCase4 = _interopRequireDefault(_useCase3);
38
38
 
39
+ var _useCase5 = require('./app/use-case-3');
40
+
41
+ var _useCase6 = _interopRequireDefault(_useCase5);
42
+
39
43
  var _nodataRes = require('./app/nodata-res');
40
44
 
41
45
  var _nodataRes2 = _interopRequireDefault(_nodataRes);
@@ -117,6 +121,11 @@ exports.default = function () {
117
121
  _react2.default.createElement(
118
122
  _core.Tabs2,
119
123
  { renderActiveTabPanelOnly: false },
124
+ _react2.default.createElement(_core.Tab2, {
125
+ id: 'uc3',
126
+ title: _react2.default.createElement(AppTab, { label: 'fluid width', iconName: 'fullscreen' }),
127
+ panel: _react2.default.createElement(_useCase6.default, { isRtl: isRtl, config: config, style: style, options: options })
128
+ }),
120
129
  _react2.default.createElement(_core.Tab2, {
121
130
  id: 'uc1',
122
131
  title: _react2.default.createElement(AppTab, { label: 'full screen resizable chart', iconName: 'fullscreen' }),
@@ -87,7 +87,7 @@ var ViewContent = function ViewContent(_ref2) {
87
87
  rest = (0, _objectWithoutProperties3.default)(_ref2, ['loading', 'noData', 'type', 'width', 'errorMessage']);
88
88
 
89
89
  if (loading) return _react2.default.createElement(_dotstatsuiteVisions.Loading, { message: loading });
90
-
90
+ if (!width) return _react2.default.createElement(_dotstatsuiteVisions.Loading, { message: loading });
91
91
  if (errorMessage) return _react2.default.createElement(_dotstatsuiteVisions.NoData, { message: errorMessage });
92
92
 
93
93
  if (type === 'table') {
@@ -53,7 +53,9 @@ var getSymbolSeriesItems = function getSymbolSeriesItems(_ref) {
53
53
  }))(data);
54
54
  };
55
55
 
56
- var getStackedSeriesItems = R.pathOr([], ['options', 'serie', 'stacked', 'layerSeries']);
56
+ var getStackedSeriesItems = R.pipe(R.pathOr([], ['options', 'serie', 'stacked', 'layerSeries']), R.when(function (s) {
57
+ return R.length(s) === 1;
58
+ }, R.always([])));
57
59
 
58
60
  var stackedLayerRenderer = function stackedLayerRenderer(_ref2) {
59
61
  var baseColor = _ref2.baseColor;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sis-cc/dotstatsuite-components",
3
3
  "description": "Set components based on React.",
4
- "version": "8.11.0",
4
+ "version": "8.13.0",
5
5
  "main": "lib/index.js",
6
6
  "author": "OECD",
7
7
  "license": "MIT",
@@ -18,7 +18,7 @@
18
18
  },
19
19
  "dependencies": {
20
20
  "@react-hook/size": "^2.1.1",
21
- "@sis-cc/dotstatsuite-d3-charts": "^7.2.0",
21
+ "@sis-cc/dotstatsuite-d3-charts": "^7.3.0",
22
22
  "@sis-cc/dotstatsuite-sdmxjs": "^4.5.2",
23
23
  "@sis-cc/dotstatsuite-visions": "^5.15.1",
24
24
  "date-fns": "^1.30.1",
package/src/app.js CHANGED
@@ -1,13 +1,18 @@
1
1
  import React from 'react';
2
2
  import { render } from 'react-dom';
3
- //import RulesDriverApp from './rules-driver/src/app';
3
+ import RulesDriverApp from './rules-driver/src/app';
4
4
  import ViewerApp from './viewer/src/app';
5
+ import { sisccTheme } from '@sis-cc/dotstatsuite-visions';
6
+ import { ThemeProvider } from '@material-ui/core/styles';
7
+ import { createMuiTheme } from '@material-ui/core/styles';
8
+
9
+ const theme = createMuiTheme(sisccTheme({ rtl: 'ltr' }));
5
10
 
6
11
  const App = () => (
7
- <React.Fragment>
8
- {/*<RulesDriverApp />*/}
9
- <ViewerApp />
10
- </React.Fragment>
12
+ <ThemeProvider theme={theme}>
13
+ <RulesDriverApp />
14
+ {/* <ViewerApp /> */}
15
+ </ThemeProvider>
11
16
  );
12
17
 
13
18
  render(<App />, document.getElementById('root'));
@@ -1,20 +1,24 @@
1
- import { get, head, find, isNil } from 'lodash';
1
+ import * as R from 'ramda';
2
2
  import { getRefAreaDimension, getTimePeriodDimension } from '@sis-cc/dotstatsuite-sdmxjs';
3
3
 
4
4
  export default (dimensions, singularity) => {
5
- const mode = get(singularity, 'mode') === 'percent' ? 'percent' : 'values';
5
+ const { value, values } = dimensions;
6
+ const mode = R.prop('mode', singularity) === 'percent' ? 'percent' : 'values';
7
+ if (R.length(values) === 1) {
8
+ return ({ mode, id: R.pathOr(null, [0, 'id'], value) });
9
+ }
6
10
  let serieDimension = null;
7
- const id = get(singularity, 'id');
8
- if (!isNil(id)) {
9
- serieDimension = find(dimensions, { id });
11
+ const id = R.prop('id', singularity);
12
+ if (!R.isNil(id)) {
13
+ serieDimension = R.find(R.propEq('id', id), values);
10
14
  }
11
- const areaDimension = getRefAreaDimension({ dimensions });
12
- const timeDimension = getTimePeriodDimension({ dimensions });
15
+ const areaDimension = getRefAreaDimension({ dimensions: values });
16
+ const timeDimension = getTimePeriodDimension({ dimensions: values });
13
17
 
14
- serieDimension = serieDimension || areaDimension || timeDimension || head(dimensions);
18
+ serieDimension = serieDimension || areaDimension || timeDimension || R.head(values);
15
19
 
16
20
  return ({
17
- mode: mode,
18
- id: get(serieDimension, 'id', null)
21
+ mode,
22
+ id: R.propOr(null, 'id', serieDimension)
19
23
  });
20
24
  }