@sis-cc/dotstatsuite-components 8.10.0 → 8.12.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 (44) hide show
  1. package/lib/app.js +13 -5
  2. package/lib/rules/src/chart/getChartOptions.js +1 -1
  3. package/lib/rules/src/properties/index.js +1 -0
  4. package/lib/rules-driver/src/app.js +116 -167
  5. package/lib/viewer/src/app/use-case-3.js +52 -0
  6. package/lib/viewer/src/app.js +9 -0
  7. package/lib/viewer/src/chartUtils/series.js +3 -5
  8. package/lib/viewer/src/index.js +1 -1
  9. package/package.json +2 -2
  10. package/src/app.js +10 -5
  11. package/src/rules/src/chart/getChartOptions.js +2 -2
  12. package/src/rules/src/properties/index.js +1 -0
  13. package/src/rules-driver/src/app.js +116 -132
  14. package/src/rules-driver/src/mocks/data1.json +332 -0
  15. package/src/rules-driver/src/mocks/data2.json +309 -0
  16. package/src/viewer/src/app/use-case-3.js +18 -0
  17. package/src/viewer/src/app.js +6 -0
  18. package/src/viewer/src/chartUtils/series.js +4 -4
  19. package/src/viewer/src/index.js +2 -2
  20. package/lib/rules-driver/src/app/chart.js +0 -52
  21. package/lib/rules-driver/src/app/config-axis.js +0 -95
  22. package/lib/rules-driver/src/app/config-buttons.js +0 -47
  23. package/lib/rules-driver/src/app/config-input.js +0 -51
  24. package/lib/rules-driver/src/app/config-select.js +0 -57
  25. package/lib/rules-driver/src/app/config-t4size.js +0 -61
  26. package/lib/rules-driver/src/app/config1.js +0 -148
  27. package/lib/rules-driver/src/app/menu.js +0 -44
  28. package/lib/rules-driver/src/app/viewer1.js +0 -39
  29. package/lib/rules-driver/src/app/viewer2.js +0 -115
  30. package/src/rules-driver/src/app/chart.js +0 -18
  31. package/src/rules-driver/src/app/config-axis.js +0 -54
  32. package/src/rules-driver/src/app/config-buttons.js +0 -27
  33. package/src/rules-driver/src/app/config-input.js +0 -35
  34. package/src/rules-driver/src/app/config-select.js +0 -25
  35. package/src/rules-driver/src/app/config-t4size.js +0 -50
  36. package/src/rules-driver/src/app/config1.js +0 -120
  37. package/src/rules-driver/src/app/menu.js +0 -27
  38. package/src/rules-driver/src/app/viewer1.js +0 -18
  39. package/src/rules-driver/src/app/viewer2.js +0 -77
  40. package/src/rules-driver/src/mocks/ecb.json +0 -2069
  41. package/src/rules-driver/src/mocks/ins.json +0 -264
  42. package/src/rules-driver/src/mocks/oecd-time.json +0 -864
  43. package/src/rules-driver/src/mocks/oecd.json +0 -372
  44. 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'));
@@ -62,7 +62,7 @@ var getAnnotationOptions = function getAnnotationOptions(type, options) {
62
62
  return (0, _numeral2.default)(d).format('0,0.[00]');
63
63
  } }
64
64
  }
65
- }), R.cond([[R.always(R.equals(_constants.SCATTER), type), R.mergeRight({ display: 'never' })], [R.always(R.equals(_constants.TIMELINE), type), R.mergeDeepRight({ format: { datapoint: { pattern: '.2f' } } })], [R.T, R.identity]]))(options);
65
+ }), R.cond([[R.always(R.equals(_constants.SCATTER, type)), R.mergeRight({ display: 'never' })], [R.always(R.equals(_constants.TIMELINE, type)), R.mergeDeepRight({ format: { datapoint: { pattern: '.2f' } } })], [R.T, R.identity]]))(options);
66
66
  };
67
67
 
68
68
  var getChartOptions = exports.getChartOptions = function getChartOptions(data, type, options, tooltipFonts, timeFormats, locale) {
@@ -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);
@@ -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' }),
@@ -26,9 +26,7 @@ var isFocused = function isFocused(obj) {
26
26
 
27
27
  var sampleFilterSeries = function sampleFilterSeries(series) {
28
28
  return R.map(function (serie) {
29
- var _datapoints = filter(serie.datapoints, function (dp) {
30
- return isFocused(dp);
31
- });
29
+ var _datapoints = R.filter(isFocused, serie.datapoints);
32
30
  return (0, _extends3.default)({}, serie, { datapoints: _datapoints });
33
31
  }, series);
34
32
  };
@@ -41,7 +39,7 @@ exports.default = function (series, type, options) {
41
39
  var minWidth = R.path(['base', 'minDisplayWidth'], options);
42
40
  var minHeight = R.path(['base', 'minDisplayHeight'], options);
43
41
  var filtered = void 0;
44
- if (type === _constants.HSYMBOL) {
42
+ if (type === _constants.H_SYMBOL) {
45
43
  if (height < minHeight) {
46
44
  filtered = sampleFilterSeries(series);
47
45
  return R.isEmpty(filtered[0].datapoints) ? series : filtered;
@@ -51,7 +49,7 @@ exports.default = function (series, type, options) {
51
49
  filtered = lineFilterSeries(series);
52
50
  return R.isEmpty(filtered) ? series : filtered;
53
51
  }
54
- } else if (type === _constants.VSYMBOL) {
52
+ } else if (type === _constants.V_SYMBOL) {
55
53
  if (width < minWidth) {
56
54
  filtered = sampleFilterSeries(series);
57
55
  return R.isEmpty(filtered[0].datapoints) ? series : filtered;
@@ -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') {
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.10.0",
4
+ "version": "8.12.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.1.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'));
@@ -49,11 +49,11 @@ const getAnnotationOptions = (type, options) => R.pipe(
49
49
  }),
50
50
  R.cond([
51
51
  [
52
- R.always(R.equals(SCATTER), type),
52
+ R.always(R.equals(SCATTER, type)),
53
53
  R.mergeRight({ display: 'never' })
54
54
  ],
55
55
  [
56
- R.always(R.equals(TIMELINE), type),
56
+ R.always(R.equals(TIMELINE, type)),
57
57
  R.mergeDeepRight({ format: { datapoint: { pattern: '.2f' } } })
58
58
  ],
59
59
  [R.T, R.identity]
@@ -205,6 +205,7 @@ export const initialState = {
205
205
  };
206
206
 
207
207
  export const stateFromNewProps = (props, state) => {
208
+ if (R.isNil(props.data)) return state; // don't reset state
208
209
  const focusState = sampleFocusStateFromNewProps(props, state);
209
210
  const scatterState = scatterStateFromNewProps(props, state);
210
211
  const symbolState = symbolStateFromNewProps(props, state);