@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
|
@@ -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
|
|
11
|
+
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
|
|
13
12
|
|
|
14
|
-
var
|
|
13
|
+
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
|
|
15
14
|
|
|
16
|
-
var
|
|
15
|
+
var _slicedToArray2 = require('babel-runtime/helpers/slicedToArray');
|
|
17
16
|
|
|
18
|
-
var
|
|
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
|
|
37
|
-
|
|
38
|
-
var _core = require('@blueprintjs/core');
|
|
23
|
+
var _ramda = require('ramda');
|
|
39
24
|
|
|
40
|
-
|
|
25
|
+
var R = _interopRequireWildcard(_ramda);
|
|
41
26
|
|
|
42
|
-
var
|
|
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
|
|
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
|
|
35
|
+
var _data2 = _interopRequireDefault(_data);
|
|
59
36
|
|
|
60
|
-
var
|
|
37
|
+
var _data3 = require('./mocks/data2.json');
|
|
61
38
|
|
|
62
|
-
var
|
|
39
|
+
var _data4 = _interopRequireDefault(_data3);
|
|
63
40
|
|
|
64
|
-
var
|
|
41
|
+
var _3 = require('../../');
|
|
65
42
|
|
|
66
|
-
var
|
|
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
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
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
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
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(
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
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;
|
|
@@ -34,6 +34,10 @@ var sampleFilterSeries = function sampleFilterSeries(series) {
|
|
|
34
34
|
var lineFilterSeries = R.filter(isFocused);
|
|
35
35
|
|
|
36
36
|
exports.default = function (series, type, options) {
|
|
37
|
+
var responsiveFocusFilter = R.pathOr(true, ['serie', 'responsiveFocusFilter'], options);
|
|
38
|
+
if (!responsiveFocusFilter) {
|
|
39
|
+
return series;
|
|
40
|
+
}
|
|
37
41
|
var height = R.path(['base', 'height'], options);
|
|
38
42
|
var width = R.path(['base', 'width'], options);
|
|
39
43
|
var minWidth = R.path(['base', 'minDisplayWidth'], options);
|
|
@@ -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.
|
|
4
|
+
"version": "8.14.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.
|
|
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
|
-
|
|
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
|
-
<
|
|
8
|
-
|
|
9
|
-
<ViewerApp />
|
|
10
|
-
</
|
|
12
|
+
<ThemeProvider theme={theme}>
|
|
13
|
+
<RulesDriverApp />
|
|
14
|
+
{/* <ViewerApp /> */}
|
|
15
|
+
</ThemeProvider>
|
|
11
16
|
);
|
|
12
17
|
|
|
13
18
|
render(<App />, document.getElementById('root'));
|
|
@@ -80,6 +80,7 @@ export const getChartOptions = (data, type, options, tooltipFonts, timeFormats,
|
|
|
80
80
|
R.mergeRight({ intBoundariesColor: '#8EA4B1' })
|
|
81
81
|
)(options),
|
|
82
82
|
serie: {
|
|
83
|
+
...R.propOr({}, 'serie', options),
|
|
83
84
|
annotation: getAnnotationOptions(type, options),
|
|
84
85
|
choropleth: R.pipe(
|
|
85
86
|
R.pathOr({}, ['serie', 'choropleth']),
|
|
@@ -1,20 +1,24 @@
|
|
|
1
|
-
import
|
|
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
|
|
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 =
|
|
8
|
-
if (!isNil(id)) {
|
|
9
|
-
serieDimension = find(
|
|
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(
|
|
18
|
+
serieDimension = serieDimension || areaDimension || timeDimension || R.head(values);
|
|
15
19
|
|
|
16
20
|
return ({
|
|
17
|
-
mode
|
|
18
|
-
id:
|
|
21
|
+
mode,
|
|
22
|
+
id: R.propOr(null, 'id', serieDimension)
|
|
19
23
|
});
|
|
20
24
|
}
|