@sis-cc/dotstatsuite-visions 7.8.2 → 7.9.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/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright © OECD 2019-2021
3
+ Copyright © OECD 2019-2022
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -148,7 +148,8 @@ var Dataflow = function Dataflow(_ref2) {
148
148
  categories = _ref2$categories === undefined ? [] : _ref2$categories,
149
149
  children = _ref2.children,
150
150
  _ref2$HTMLRenderer = _ref2.HTMLRenderer,
151
- HTMLRenderer = _ref2$HTMLRenderer === undefined ? BasicHTMLRenderer : _ref2$HTMLRenderer;
151
+ HTMLRenderer = _ref2$HTMLRenderer === undefined ? BasicHTMLRenderer : _ref2$HTMLRenderer,
152
+ id = _ref2.id;
152
153
 
153
154
  var classes = useStyles();
154
155
 
@@ -235,7 +236,7 @@ var Dataflow = function Dataflow(_ref2) {
235
236
  { className: classes.cardContent },
236
237
  R.map(function (_ref3) {
237
238
  var field = _ref3[0],
238
- highlight = _ref3[1];
239
+ fieldHighlights = _ref3[1];
239
240
  return React.createElement(
240
241
  Typography,
241
242
  {
@@ -251,8 +252,9 @@ var Dataflow = function Dataflow(_ref2) {
251
252
  field,
252
253
  ':\xA0'
253
254
  ),
254
- ' ',
255
- React.createElement(HTMLRenderer, { html: highlight })
255
+ R.map(function (fieldHighlight) {
256
+ return React.createElement(HTMLRenderer, { key: id + '-' + field, html: fieldHighlight });
257
+ }, fieldHighlights)
256
258
  );
257
259
  })(highlights),
258
260
  React.createElement(
@@ -356,6 +358,7 @@ var Dataflow = function Dataflow(_ref2) {
356
358
 
357
359
  Dataflow.propTypes = process.env.NODE_ENV !== "production" ? {
358
360
  testId: PropTypes.string,
361
+ id: PropTypes.string,
359
362
  title: PropTypes.string,
360
363
  body: PropTypes.shape({
361
364
  description: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
@@ -10,6 +10,7 @@
10
10
  * @api public
11
11
  * @props
12
12
  * Dataflow.propTypes = {
13
+ * id: PropTypes.string,
13
14
  * testId: PropTypes.string,
14
15
  * title: PropTypes.string,
15
16
  * body: PropTypes.shape({
package/es/Logo/Logo.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
+ import cx from 'classnames';
3
4
  import { makeStyles } from '@material-ui/core/styles';
4
5
 
5
6
  var useStyles = makeStyles(function () {
@@ -13,7 +14,12 @@ var useStyles = makeStyles(function () {
13
14
  maxHeight: function maxHeight(_ref) {
14
15
  var _maxHeight = _ref.maxHeight;
15
16
  return _maxHeight;
16
- }
17
+ },
18
+ imageRendering: 'crisp-edges'
19
+ },
20
+ // https://caniuse.com/mdn-css_properties_image-rendering_crisp-edges
21
+ alternativeBrowserLogo: {
22
+ imageRendering: '-webkit-optimize-contrast'
17
23
  }
18
24
  };
19
25
  });
@@ -28,7 +34,7 @@ var Logo = function Logo(_ref2) {
28
34
  return React.createElement(
29
35
  'div',
30
36
  { className: classes.container },
31
- React.createElement('img', { className: classes.logo, src: logo, alt: 'logo' }),
37
+ React.createElement('img', { className: cx(classes.logo, classes.alternativeBrowserLogo), src: logo, alt: 'logo' }),
32
38
  children
33
39
  );
34
40
  };
@@ -2,11 +2,11 @@ import React from 'react';
2
2
  import * as R from 'ramda';
3
3
  import PropTypes from 'prop-types';
4
4
  import cx from 'classnames';
5
- import { makeStyles } from '@material-ui/core/styles';
5
+ import { makeStyles, useTheme } from '@material-ui/core/styles';
6
6
  import TableCell from '@material-ui/core/TableCell';
7
- import Typography from '@material-ui/core/Typography';
8
7
  import Link from '@material-ui/core/Link';
9
8
  import Flags from './flags';
9
+ import { getIsRtl } from '../utils';
10
10
 
11
11
  var useStyles = makeStyles(function (theme) {
12
12
  return {
@@ -18,7 +18,8 @@ var useStyles = makeStyles(function (theme) {
18
18
  color: theme.palette.grey['A700'],
19
19
  '&:hover': {
20
20
  boxShadow: 'inset 0 0 0 2px ' + theme.palette.primary.main
21
- }
21
+ },
22
+ whiteSpace: 'nowrap'
22
23
  },
23
24
  active: {
24
25
  boxShadow: 'inset 0 0 0 2px ' + theme.palette.primary.main
@@ -35,18 +36,22 @@ var useStyles = makeStyles(function (theme) {
35
36
  value: {
36
37
  overflow: 'inherit'
37
38
  },
38
- textValue: {
39
- textAlign: 'right',
40
- whiteSpace: 'nowrap'
39
+ rightAlign: {
40
+ // only for rtl layout !
41
+ // changed by right in rtl mode
42
+ textAlign: 'left'
41
43
  }
42
44
  };
43
45
  });
44
46
 
47
+ var isValidNumber = R.both(R.is(Number), R.complement(R.equals(NaN)));
48
+
45
49
  var Cell = function Cell(_ref) {
46
50
  var _cx;
47
51
 
48
52
  var flags = _ref.flags,
49
53
  value = _ref.value,
54
+ intValue = _ref.intValue,
50
55
  headers = _ref.headers,
51
56
  isOne = _ref.isOne,
52
57
  _ref$indexedDimValIds = _ref.indexedDimValIds,
@@ -60,6 +65,7 @@ var Cell = function Cell(_ref) {
60
65
  HTMLRenderer = _ref.HTMLRenderer;
61
66
 
62
67
  var classes = useStyles();
68
+ var isRtl = getIsRtl(useTheme());
63
69
  var hasFlag = R.not(R.isEmpty(flags));
64
70
  var uiValue = R.is(Function, cellHandler) && !R.isEmpty(indexedDimValIds) ? React.createElement(
65
71
  Link,
@@ -79,26 +85,21 @@ var Cell = function Cell(_ref) {
79
85
  return React.createElement(
80
86
  TableCell,
81
87
  {
88
+ align: isValidNumber(intValue) ? 'right' : 'left',
82
89
  component: isOne ? 'div' : undefined,
83
- className: cx(classes.cell, (_cx = {}, _cx[classes.oneCell] = isOne, _cx[classes.active] = isActive, _cx[classes.highlight] = isHighlight, _cx)),
90
+ className: cx(classes.cell, (_cx = {}, _cx[classes.oneCell] = isOne, _cx[classes.active] = isActive, _cx[classes.highlight] = isHighlight, _cx[classes.rightAlign] = isRtl, _cx)),
84
91
  headers: headers,
85
- onClick: activeCellHandler
92
+ onClick: activeCellHandler,
93
+ tabIndex: 0
86
94
  },
87
- React.createElement(
88
- 'div',
89
- { className: classes.textValue },
90
- React.createElement(
91
- Typography,
92
- { variant: 'body1', tabIndex: 0, noWrap: hasFlag },
93
- !R.isNil(SideIcon) && React.createElement(SideIcon, { sideProps: sideProps, className: classes.value }),
94
- hasFlag && React.createElement(Flags, { HTMLRenderer: HTMLRenderer, flags: flags }),
95
- uiValue
96
- )
97
- )
95
+ !R.isNil(SideIcon) && React.createElement(SideIcon, { sideProps: sideProps, className: classes.value }),
96
+ hasFlag && React.createElement(Flags, { HTMLRenderer: HTMLRenderer, flags: flags }),
97
+ uiValue
98
98
  );
99
99
  };
100
100
 
101
101
  Cell.propTypes = process.env.NODE_ENV !== "production" ? {
102
+ intValue: PropTypes.number,
102
103
  flags: PropTypes.array,
103
104
  isOne: PropTypes.bool,
104
105
  value: PropTypes.string,
@@ -202,7 +202,8 @@ var Dataflow = function Dataflow(_ref2) {
202
202
  categories = _ref2$categories === undefined ? [] : _ref2$categories,
203
203
  children = _ref2.children,
204
204
  _ref2$HTMLRenderer = _ref2.HTMLRenderer,
205
- HTMLRenderer = _ref2$HTMLRenderer === undefined ? BasicHTMLRenderer : _ref2$HTMLRenderer;
205
+ HTMLRenderer = _ref2$HTMLRenderer === undefined ? BasicHTMLRenderer : _ref2$HTMLRenderer,
206
+ id = _ref2.id;
206
207
 
207
208
  var classes = useStyles();
208
209
 
@@ -289,7 +290,7 @@ var Dataflow = function Dataflow(_ref2) {
289
290
  { className: classes.cardContent },
290
291
  R.map(function (_ref3) {
291
292
  var field = _ref3[0],
292
- highlight = _ref3[1];
293
+ fieldHighlights = _ref3[1];
293
294
  return _react2.default.createElement(
294
295
  _Typography2.default,
295
296
  {
@@ -305,8 +306,9 @@ var Dataflow = function Dataflow(_ref2) {
305
306
  field,
306
307
  ':\xA0'
307
308
  ),
308
- ' ',
309
- _react2.default.createElement(HTMLRenderer, { html: highlight })
309
+ R.map(function (fieldHighlight) {
310
+ return _react2.default.createElement(HTMLRenderer, { key: id + '-' + field, html: fieldHighlight });
311
+ }, fieldHighlights)
310
312
  );
311
313
  })(highlights),
312
314
  _react2.default.createElement(
@@ -410,6 +412,7 @@ var Dataflow = function Dataflow(_ref2) {
410
412
 
411
413
  Dataflow.propTypes = process.env.NODE_ENV !== "production" ? {
412
414
  testId: _propTypes2.default.string,
415
+ id: _propTypes2.default.string,
413
416
  title: _propTypes2.default.string,
414
417
  body: _propTypes2.default.shape({
415
418
  description: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.element]),
package/lib/Logo/Logo.js CHANGED
@@ -10,6 +10,10 @@ var _propTypes = require('prop-types');
10
10
 
11
11
  var _propTypes2 = _interopRequireDefault(_propTypes);
12
12
 
13
+ var _classnames = require('classnames');
14
+
15
+ var _classnames2 = _interopRequireDefault(_classnames);
16
+
13
17
  var _styles = require('@material-ui/core/styles');
14
18
 
15
19
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -25,7 +29,12 @@ var useStyles = (0, _styles.makeStyles)(function () {
25
29
  maxHeight: function maxHeight(_ref) {
26
30
  var _maxHeight = _ref.maxHeight;
27
31
  return _maxHeight;
28
- }
32
+ },
33
+ imageRendering: 'crisp-edges'
34
+ },
35
+ // https://caniuse.com/mdn-css_properties_image-rendering_crisp-edges
36
+ alternativeBrowserLogo: {
37
+ imageRendering: '-webkit-optimize-contrast'
29
38
  }
30
39
  };
31
40
  });
@@ -40,7 +49,7 @@ var Logo = function Logo(_ref2) {
40
49
  return _react2.default.createElement(
41
50
  'div',
42
51
  { className: classes.container },
43
- _react2.default.createElement('img', { className: classes.logo, src: logo, alt: 'logo' }),
52
+ _react2.default.createElement('img', { className: (0, _classnames2.default)(classes.logo, classes.alternativeBrowserLogo), src: logo, alt: 'logo' }),
44
53
  children
45
54
  );
46
55
  };
@@ -24,10 +24,6 @@ var _TableCell = require('@material-ui/core/TableCell');
24
24
 
25
25
  var _TableCell2 = _interopRequireDefault(_TableCell);
26
26
 
27
- var _Typography = require('@material-ui/core/Typography');
28
-
29
- var _Typography2 = _interopRequireDefault(_Typography);
30
-
31
27
  var _Link = require('@material-ui/core/Link');
32
28
 
33
29
  var _Link2 = _interopRequireDefault(_Link);
@@ -36,6 +32,8 @@ var _flags = require('./flags');
36
32
 
37
33
  var _flags2 = _interopRequireDefault(_flags);
38
34
 
35
+ var _utils = require('../utils');
36
+
39
37
  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; } }
40
38
 
41
39
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -50,7 +48,8 @@ var useStyles = (0, _styles.makeStyles)(function (theme) {
50
48
  color: theme.palette.grey['A700'],
51
49
  '&:hover': {
52
50
  boxShadow: 'inset 0 0 0 2px ' + theme.palette.primary.main
53
- }
51
+ },
52
+ whiteSpace: 'nowrap'
54
53
  },
55
54
  active: {
56
55
  boxShadow: 'inset 0 0 0 2px ' + theme.palette.primary.main
@@ -67,18 +66,22 @@ var useStyles = (0, _styles.makeStyles)(function (theme) {
67
66
  value: {
68
67
  overflow: 'inherit'
69
68
  },
70
- textValue: {
71
- textAlign: 'right',
72
- whiteSpace: 'nowrap'
69
+ rightAlign: {
70
+ // only for rtl layout !
71
+ // changed by right in rtl mode
72
+ textAlign: 'left'
73
73
  }
74
74
  };
75
75
  });
76
76
 
77
+ var isValidNumber = R.both(R.is(Number), R.complement(R.equals(NaN)));
78
+
77
79
  var Cell = function Cell(_ref) {
78
80
  var _cx;
79
81
 
80
82
  var flags = _ref.flags,
81
83
  value = _ref.value,
84
+ intValue = _ref.intValue,
82
85
  headers = _ref.headers,
83
86
  isOne = _ref.isOne,
84
87
  _ref$indexedDimValIds = _ref.indexedDimValIds,
@@ -92,6 +95,7 @@ var Cell = function Cell(_ref) {
92
95
  HTMLRenderer = _ref.HTMLRenderer;
93
96
 
94
97
  var classes = useStyles();
98
+ var isRtl = (0, _utils.getIsRtl)((0, _styles.useTheme)());
95
99
  var hasFlag = R.not(R.isEmpty(flags));
96
100
  var uiValue = R.is(Function, cellHandler) && !R.isEmpty(indexedDimValIds) ? _react2.default.createElement(
97
101
  _Link2.default,
@@ -111,26 +115,21 @@ var Cell = function Cell(_ref) {
111
115
  return _react2.default.createElement(
112
116
  _TableCell2.default,
113
117
  {
118
+ align: isValidNumber(intValue) ? 'right' : 'left',
114
119
  component: isOne ? 'div' : undefined,
115
- className: (0, _classnames2.default)(classes.cell, (_cx = {}, _cx[classes.oneCell] = isOne, _cx[classes.active] = isActive, _cx[classes.highlight] = isHighlight, _cx)),
120
+ className: (0, _classnames2.default)(classes.cell, (_cx = {}, _cx[classes.oneCell] = isOne, _cx[classes.active] = isActive, _cx[classes.highlight] = isHighlight, _cx[classes.rightAlign] = isRtl, _cx)),
116
121
  headers: headers,
117
- onClick: activeCellHandler
122
+ onClick: activeCellHandler,
123
+ tabIndex: 0
118
124
  },
119
- _react2.default.createElement(
120
- 'div',
121
- { className: classes.textValue },
122
- _react2.default.createElement(
123
- _Typography2.default,
124
- { variant: 'body1', tabIndex: 0, noWrap: hasFlag },
125
- !R.isNil(SideIcon) && _react2.default.createElement(SideIcon, { sideProps: sideProps, className: classes.value }),
126
- hasFlag && _react2.default.createElement(_flags2.default, { HTMLRenderer: HTMLRenderer, flags: flags }),
127
- uiValue
128
- )
129
- )
125
+ !R.isNil(SideIcon) && _react2.default.createElement(SideIcon, { sideProps: sideProps, className: classes.value }),
126
+ hasFlag && _react2.default.createElement(_flags2.default, { HTMLRenderer: HTMLRenderer, flags: flags }),
127
+ uiValue
130
128
  );
131
129
  };
132
130
 
133
131
  Cell.propTypes = process.env.NODE_ENV !== "production" ? {
132
+ intValue: _propTypes2.default.number,
134
133
  flags: _propTypes2.default.array,
135
134
  isOne: _propTypes2.default.bool,
136
135
  value: _propTypes2.default.string,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sis-cc/dotstatsuite-visions",
3
- "version": "7.8.2",
3
+ "version": "7.9.0",
4
4
  "description": "Library of visual components",
5
5
  "author": "OECD",
6
6
  "homepage": "https://visions-qa.siscc.org/#o",