@sis-cc/dotstatsuite-visions 10.16.0 → 10.18.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.
@@ -9,6 +9,7 @@ import Link from '@material-ui/core/Link';
9
9
  import { makeStyles } from '@material-ui/core/styles';
10
10
  import { Tooltip } from '../';
11
11
  import { T4_BREAKPOINTS } from '../theme';
12
+ import useKeyboardEscapeHandler from '../hooks/useKeybordEscapeHandler';
12
13
 
13
14
  var HEIGHT = 42;
14
15
 
@@ -71,6 +72,10 @@ var DataFooter = function DataFooter(_ref3) {
71
72
  var isCopyrighted = copyright && copyright.label && copyright.content;
72
73
  var classes = useStyles({ isWidthUp: isWidthUp, isSourced: isSourced });
73
74
 
75
+ var _useKeyboardEscapeHan = useKeyboardEscapeHandler(),
76
+ open = _useKeyboardEscapeHan.open,
77
+ setOpen = _useKeyboardEscapeHan.setOpen;
78
+
74
79
  if (!isWidthUp(T4_BREAKPOINTS.xs)) return React.createElement(Grid, { ref: target });
75
80
 
76
81
  return React.createElement(
@@ -121,15 +126,21 @@ var DataFooter = function DataFooter(_ref3) {
121
126
  placement: 'top',
122
127
  enterNextDelay: 100,
123
128
  interactive: true,
124
- arrow: true
129
+ arrow: true,
130
+ open: open,
131
+ onOpen: function onOpen() {
132
+ return setOpen(true);
133
+ },
134
+ onClose: function onClose() {
135
+ return setOpen(false);
136
+ }
125
137
  },
126
138
  React.createElement(
127
139
  Typography,
128
140
  {
129
141
  variant: 'body2',
130
142
  className: classes.typo,
131
- style: { cursor: 'pointer' },
132
- role: 'button'
143
+ style: { cursor: 'pointer' }
133
144
  },
134
145
  copyright.label
135
146
  )
@@ -47,7 +47,8 @@ var InputNumber = function InputNumber(_ref) {
47
47
  popperLabel = _ref.popperLabel,
48
48
  _ref$placeholder = _ref.placeholder,
49
49
  placeholder = _ref$placeholder === undefined ? '--' : _ref$placeholder,
50
- textFieldProps = _ref.textFieldProps;
50
+ textFieldProps = _ref.textFieldProps,
51
+ ariaLabel = _ref.ariaLabel;
51
52
 
52
53
  var classes = useStyles();
53
54
 
@@ -60,7 +61,7 @@ var InputNumber = function InputNumber(_ref) {
60
61
  { 'data-testid': 'input-number-test-id', className: classes.root },
61
62
  beforeLabel && React.createElement(
62
63
  Typography,
63
- { variant: 'body2' },
64
+ { variant: 'body2', 'aria-label': beforeLabel, tabIndex: -1 },
64
65
  beforeLabel
65
66
  ),
66
67
  React.createElement(TextField, _extends({
@@ -68,7 +69,8 @@ var InputNumber = function InputNumber(_ref) {
68
69
  inputProps: {
69
70
  min: 0,
70
71
  step: 1,
71
- className: classes.input
72
+ className: classes.input,
73
+ 'aria-label': ariaLabel
72
74
  },
73
75
  placeholder: placeholder,
74
76
  onChange: function onChange(e) {
@@ -80,12 +82,18 @@ var InputNumber = function InputNumber(_ref) {
80
82
  }, textFieldProps)),
81
83
  R.not(R.isNil(afterLabel)) && React.createElement(
82
84
  Typography,
83
- { variant: 'body2' },
85
+ { variant: 'body2', 'aria-label': afterLabel, tabIndex: 0 },
84
86
  afterLabel
85
87
  ),
86
88
  R.not(R.isNil(popperLabel)) && React.createElement(
87
89
  Tooltip,
88
- { className: cx(classes.icon), title: popperLabel, variant: 'light' },
90
+ {
91
+ className: cx(classes.icon),
92
+ title: popperLabel,
93
+ 'aria-label': popperLabel,
94
+ variant: 'light',
95
+ tabIndex: 0
96
+ },
89
97
  React.createElement(Help, null)
90
98
  )
91
99
  );
@@ -98,7 +106,8 @@ InputNumber.propTypes = process.env.NODE_ENV !== "production" ? {
98
106
  afterLabel: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
99
107
  popperLabel: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
100
108
  placeholder: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
101
- textFieldProps: PropTypes.object
109
+ textFieldProps: PropTypes.object,
110
+ ariaLabel: PropTypes.string
102
111
  } : {};
103
112
 
104
113
  export default withBlank(function (_ref2) {
package/es/Mode/Mode.js CHANGED
@@ -8,6 +8,7 @@ import RadioGroup from '@material-ui/core/RadioGroup';
8
8
  import FormControlLabel from '@material-ui/core/FormControlLabel';
9
9
  import Radio from '@material-ui/core/Radio';
10
10
  import { Tooltip } from '../';
11
+ import useKeyboardEscapeHandler from '../hooks/useKeybordEscapeHandler';
11
12
 
12
13
  var useStyles = makeStyles(function (theme) {
13
14
  return {
@@ -29,9 +30,28 @@ var Warning = function Warning(_ref) {
29
30
  children = _ref.children;
30
31
 
31
32
  var classes = useStyles();
33
+
34
+ var _useKeyboardEscapeHan = useKeyboardEscapeHandler(),
35
+ open = _useKeyboardEscapeHan.open,
36
+ setOpen = _useKeyboardEscapeHan.setOpen;
37
+
32
38
  return React.createElement(
33
39
  Tooltip,
34
- { className: classes.icon, title: title, variant: 'light' },
40
+ {
41
+ className: classes.icon,
42
+ title: title,
43
+ variant: 'light',
44
+ 'aria-label': title,
45
+ 'aria-hidden': false,
46
+ interactive: true,
47
+ open: open,
48
+ onOpen: function onOpen() {
49
+ return setOpen(true);
50
+ },
51
+ onClose: function onClose() {
52
+ return setOpen(false);
53
+ }
54
+ },
35
55
  children
36
56
  );
37
57
  };
@@ -53,6 +73,7 @@ var Mode = function Mode(_ref2) {
53
73
  children = _ref2.children;
54
74
 
55
75
  var classes = useStyles();
76
+ var mapIndexed = R.addIndex(R.map);
56
77
  return React.createElement(
57
78
  RadioGroup,
58
79
  {
@@ -60,21 +81,27 @@ var Mode = function Mode(_ref2) {
60
81
  return changeMode(e.target.value);
61
82
  },
62
83
  value: mode,
63
- className: classes.radioGroup
84
+ className: classes.radioGroup,
85
+ tabIndex: 0
64
86
  },
65
- R.map(function (_ref3) {
87
+ mapIndexed(function (_ref3, idx) {
66
88
  var label = _ref3.label,
67
89
  value = _ref3.value,
68
90
  popperLabel = _ref3.popperLabel,
69
91
  disabled = _ref3.disabled;
70
92
  return React.createElement(FormControlLabel, {
71
93
  classes: { label: classes.label },
72
- key: value,
94
+ key: value + '-' + idx,
73
95
  checked: mode === value,
74
- control: React.createElement(Radio, { variant: 'outlined', color: 'primary', size: isSmall ? 'small' : 'medium' }),
96
+ control: React.createElement(Radio, {
97
+ variant: 'outlined',
98
+ color: 'primary',
99
+ size: isSmall ? 'small' : 'medium',
100
+ inputProps: { ' aria-labelledby': label, tabIndex: '0', id: label + '_' + idx }
101
+ }),
75
102
  label: React.createElement(
76
103
  'span',
77
- null,
104
+ { id: label },
78
105
  label,
79
106
  popperLabel && React.createElement(
80
107
  Warning,
@@ -85,7 +112,8 @@ var Mode = function Mode(_ref2) {
85
112
  labelPlacement: placement,
86
113
  value: value,
87
114
  disabled: disabled || false,
88
- style: { height: isSmall ? '25px' : null }
115
+ style: { height: isSmall ? '25px' : null },
116
+ role: 'radio'
89
117
  });
90
118
  })(modes)
91
119
  );
@@ -134,7 +134,10 @@ var Period = function Period(_ref) {
134
134
  { item: true, xs: 12, className: classes.sideLabel },
135
135
  React.createElement(
136
136
  'span',
137
- null,
137
+ {
138
+ tabIndex: 0 // eslint-disable-line jsx-a11y/no-noninteractive-tabindex
139
+ , 'aria-label': label
140
+ },
138
141
  label
139
142
  )
140
143
  )
@@ -40,6 +40,10 @@ var _ = require('../');
40
40
 
41
41
  var _theme = require('../theme');
42
42
 
43
+ var _useKeybordEscapeHandler = require('../hooks/useKeybordEscapeHandler');
44
+
45
+ var _useKeybordEscapeHandler2 = _interopRequireDefault(_useKeybordEscapeHandler);
46
+
43
47
  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; } }
44
48
 
45
49
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -105,6 +109,10 @@ var DataFooter = function DataFooter(_ref3) {
105
109
  var isCopyrighted = copyright && copyright.label && copyright.content;
106
110
  var classes = useStyles({ isWidthUp: isWidthUp, isSourced: isSourced });
107
111
 
112
+ var _useKeyboardEscapeHan = (0, _useKeybordEscapeHandler2.default)(),
113
+ open = _useKeyboardEscapeHan.open,
114
+ setOpen = _useKeyboardEscapeHan.setOpen;
115
+
108
116
  if (!isWidthUp(_theme.T4_BREAKPOINTS.xs)) return _react2.default.createElement(_Grid2.default, { ref: target });
109
117
 
110
118
  return _react2.default.createElement(
@@ -155,15 +163,21 @@ var DataFooter = function DataFooter(_ref3) {
155
163
  placement: 'top',
156
164
  enterNextDelay: 100,
157
165
  interactive: true,
158
- arrow: true
166
+ arrow: true,
167
+ open: open,
168
+ onOpen: function onOpen() {
169
+ return setOpen(true);
170
+ },
171
+ onClose: function onClose() {
172
+ return setOpen(false);
173
+ }
159
174
  },
160
175
  _react2.default.createElement(
161
176
  _Typography2.default,
162
177
  {
163
178
  variant: 'body2',
164
179
  className: classes.typo,
165
- style: { cursor: 'pointer' },
166
- role: 'button'
180
+ style: { cursor: 'pointer' }
167
181
  },
168
182
  copyright.label
169
183
  )
@@ -80,7 +80,8 @@ var InputNumber = function InputNumber(_ref) {
80
80
  popperLabel = _ref.popperLabel,
81
81
  _ref$placeholder = _ref.placeholder,
82
82
  placeholder = _ref$placeholder === undefined ? '--' : _ref$placeholder,
83
- textFieldProps = _ref.textFieldProps;
83
+ textFieldProps = _ref.textFieldProps,
84
+ ariaLabel = _ref.ariaLabel;
84
85
 
85
86
  var classes = useStyles();
86
87
 
@@ -93,7 +94,7 @@ var InputNumber = function InputNumber(_ref) {
93
94
  { 'data-testid': 'input-number-test-id', className: classes.root },
94
95
  beforeLabel && _react2.default.createElement(
95
96
  _Typography2.default,
96
- { variant: 'body2' },
97
+ { variant: 'body2', 'aria-label': beforeLabel, tabIndex: -1 },
97
98
  beforeLabel
98
99
  ),
99
100
  _react2.default.createElement(_TextField2.default, _extends({
@@ -101,7 +102,8 @@ var InputNumber = function InputNumber(_ref) {
101
102
  inputProps: {
102
103
  min: 0,
103
104
  step: 1,
104
- className: classes.input
105
+ className: classes.input,
106
+ 'aria-label': ariaLabel
105
107
  },
106
108
  placeholder: placeholder,
107
109
  onChange: function onChange(e) {
@@ -113,12 +115,18 @@ var InputNumber = function InputNumber(_ref) {
113
115
  }, textFieldProps)),
114
116
  R.not(R.isNil(afterLabel)) && _react2.default.createElement(
115
117
  _Typography2.default,
116
- { variant: 'body2' },
118
+ { variant: 'body2', 'aria-label': afterLabel, tabIndex: 0 },
117
119
  afterLabel
118
120
  ),
119
121
  R.not(R.isNil(popperLabel)) && _react2.default.createElement(
120
122
  _Tooltip2.default,
121
- { className: (0, _classnames2.default)(classes.icon), title: popperLabel, variant: 'light' },
123
+ {
124
+ className: (0, _classnames2.default)(classes.icon),
125
+ title: popperLabel,
126
+ 'aria-label': popperLabel,
127
+ variant: 'light',
128
+ tabIndex: 0
129
+ },
122
130
  _react2.default.createElement(_Help2.default, null)
123
131
  )
124
132
  );
@@ -131,7 +139,8 @@ InputNumber.propTypes = process.env.NODE_ENV !== "production" ? {
131
139
  afterLabel: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.element]),
132
140
  popperLabel: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.element]),
133
141
  placeholder: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.element]),
134
- textFieldProps: _propTypes2.default.object
142
+ textFieldProps: _propTypes2.default.object,
143
+ ariaLabel: _propTypes2.default.string
135
144
  } : {};
136
145
 
137
146
  exports.default = (0, _utils.withBlank)(function (_ref2) {
package/lib/Mode/Mode.js CHANGED
@@ -32,6 +32,10 @@ var _Radio2 = _interopRequireDefault(_Radio);
32
32
 
33
33
  var _ = require('../');
34
34
 
35
+ var _useKeybordEscapeHandler = require('../hooks/useKeybordEscapeHandler');
36
+
37
+ var _useKeybordEscapeHandler2 = _interopRequireDefault(_useKeybordEscapeHandler);
38
+
35
39
  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; } }
36
40
 
37
41
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -56,9 +60,28 @@ var Warning = function Warning(_ref) {
56
60
  children = _ref.children;
57
61
 
58
62
  var classes = useStyles();
63
+
64
+ var _useKeyboardEscapeHan = (0, _useKeybordEscapeHandler2.default)(),
65
+ open = _useKeyboardEscapeHan.open,
66
+ setOpen = _useKeyboardEscapeHan.setOpen;
67
+
59
68
  return _react2.default.createElement(
60
69
  _.Tooltip,
61
- { className: classes.icon, title: title, variant: 'light' },
70
+ {
71
+ className: classes.icon,
72
+ title: title,
73
+ variant: 'light',
74
+ 'aria-label': title,
75
+ 'aria-hidden': false,
76
+ interactive: true,
77
+ open: open,
78
+ onOpen: function onOpen() {
79
+ return setOpen(true);
80
+ },
81
+ onClose: function onClose() {
82
+ return setOpen(false);
83
+ }
84
+ },
62
85
  children
63
86
  );
64
87
  };
@@ -80,6 +103,7 @@ var Mode = function Mode(_ref2) {
80
103
  children = _ref2.children;
81
104
 
82
105
  var classes = useStyles();
106
+ var mapIndexed = R.addIndex(R.map);
83
107
  return _react2.default.createElement(
84
108
  _RadioGroup2.default,
85
109
  {
@@ -87,21 +111,27 @@ var Mode = function Mode(_ref2) {
87
111
  return changeMode(e.target.value);
88
112
  },
89
113
  value: mode,
90
- className: classes.radioGroup
114
+ className: classes.radioGroup,
115
+ tabIndex: 0
91
116
  },
92
- R.map(function (_ref3) {
117
+ mapIndexed(function (_ref3, idx) {
93
118
  var label = _ref3.label,
94
119
  value = _ref3.value,
95
120
  popperLabel = _ref3.popperLabel,
96
121
  disabled = _ref3.disabled;
97
122
  return _react2.default.createElement(_FormControlLabel2.default, {
98
123
  classes: { label: classes.label },
99
- key: value,
124
+ key: value + '-' + idx,
100
125
  checked: mode === value,
101
- control: _react2.default.createElement(_Radio2.default, { variant: 'outlined', color: 'primary', size: isSmall ? 'small' : 'medium' }),
126
+ control: _react2.default.createElement(_Radio2.default, {
127
+ variant: 'outlined',
128
+ color: 'primary',
129
+ size: isSmall ? 'small' : 'medium',
130
+ inputProps: { ' aria-labelledby': label, tabIndex: '0', id: label + '_' + idx }
131
+ }),
102
132
  label: _react2.default.createElement(
103
133
  'span',
104
- null,
134
+ { id: label },
105
135
  label,
106
136
  popperLabel && _react2.default.createElement(
107
137
  Warning,
@@ -112,7 +142,8 @@ var Mode = function Mode(_ref2) {
112
142
  labelPlacement: placement,
113
143
  value: value,
114
144
  disabled: disabled || false,
115
- style: { height: isSmall ? '25px' : null }
145
+ style: { height: isSmall ? '25px' : null },
146
+ role: 'radio'
116
147
  });
117
148
  })(modes)
118
149
  );
@@ -162,7 +162,10 @@ var Period = function Period(_ref) {
162
162
  { item: true, xs: 12, className: classes.sideLabel },
163
163
  _react2.default.createElement(
164
164
  'span',
165
- null,
165
+ {
166
+ tabIndex: 0 // eslint-disable-line jsx-a11y/no-noninteractive-tabindex
167
+ , 'aria-label': label
168
+ },
166
169
  label
167
170
  )
168
171
  )
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sis-cc/dotstatsuite-visions",
3
- "version": "10.16.0",
3
+ "version": "10.18.0",
4
4
  "description": "Library of visual components",
5
5
  "author": "OECD",
6
6
  "homepage": "https://visions-qa.siscc.org/#o",
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @sis-cc/dotstatsuite-visions v10.16.0 - https://visions-qa.siscc.org/#o
2
+ * @sis-cc/dotstatsuite-visions v10.18.0 - https://visions-qa.siscc.org/#o
3
3
  * MIT Licensed
4
4
  */
5
5
  (function webpackUniversalModuleDefinition(root, factory) {
@@ -6699,7 +6699,7 @@ function removeClassName(el
6699
6699
  /* 121 */
6700
6700
  /***/ (function(module) {
6701
6701
 
6702
- module.exports = {"name":"@sis-cc/dotstatsuite-visions","version":"10.16.0","description":"Library of visual components","author":"OECD","homepage":"https://visions-qa.siscc.org/#o","license":"MIT","repository":"https://gitlab.com/sis-cc/.stat-suite/dotstatsuite-visions","main":"lib/index.js","module":"es/index.js","engines":{"node":">=14"},"files":["css","es","lib","umd"],"scripts":{"build":"nwb build-react-component --copy-files --no-demo && node scripts/doc && nwb build-demo","build:dev":"nwb build-react-component --copy-files --no-demo","clean":"nwb clean-module && nwb clean-demo","prepublishOnly":"npm run build","start":"nwb serve-react-demo","test":"jest","test:watch":"jest --watch --no-cache","lint":"eslint src/ --color","precommit":"lint-staged"},"dependencies":{"@react-hook/size":"^2.1.1","classnames":"^2.2.6","date-fns":"^1.30.1","isemail":"^3.2.0","numeral":"^2.0.6","prop-types":"^15.7.2","ramda":"^0.27.0","react-beautiful-dnd":"^13.0.0","react-draggable":"^4.4.5","react-error-boundary":"^4.0.10","react-virtualized":"^9.21.2"},"peerDependencies":{"@material-ui/core":"^4","@material-ui/icons":"^4","@sis-cc/dotstatsuite-sdmxjs":"^8.x","react":"^18","react-dom":"^18"},"devDependencies":{"@babel/eslint-parser":"^7.5.4","@babel/plugin-syntax-dynamic-import":"^7.2.0","@cfaester/enzyme-adapter-react-18":"^0.7.0","@material-ui/core":"^4","@material-ui/icons":"^4","@sis-cc/dotstatsuite-sdmxjs":"*","@testing-library/jest-dom":"^5.16.5","@testing-library/react":"^14.0.0","babel-jest":"^24.8.0","babel-preset-react-app":"^9.0.0","dox":"^0.9.0","eslint":"^8.39.0","eslint-plugin-import":"^2.27.5","eslint-plugin-jsx-a11y":"^6.7.1","eslint-plugin-prettier":"^4.2.1","eslint-plugin-react":"^7.32.2","eslint-plugin-react-hooks":"^4.6.0","husky":"^2.7.0","identity-obj-proxy":"^3.0.0","jest":"^24.8.0","jss":"^10.10.0","jss-rtl":"^0.2.3","lint-staged":"^8.2.1","mutationobserver-shim":"^0.3.7","nwb":"0.23.0","prettier":"^2.8.8","pretty-quick":"^3.1.3","react":"^18","react-a11y":"^1.1.0","react-dom":"^18","react-helmet":"^5.2.1","react-scrollable-anchor":"^0.6.1","react-syntax-highlighter":"^10.2.1","sanitize-html":"2.7.0","webpack":"^5.68.0","webpack-cli":"^4.9.2","webpack-dev-server":"^4.7.4"},"jest":{"verbose":true,"coverageDirectory":"coverage","collectCoverageFrom":["src/**/*.{js,jsx,ts,tsx}","!src/ScopeList/*.{js,jsx,ts,tsx}","!src/**/*.d.ts"],"setupFilesAfterEnv":["<rootDir>/tests/setup.js"],"testMatch":["**/tests/**/*.{spec,test}.{js,jsx,ts,tsx}","!**/tests/ScopeList.test.js"],"testEnvironment":"jsdom","transform":{"^.+\\.(js|jsx|ts|tsx)$":"<rootDir>/node_modules/babel-jest"},"transformIgnorePatterns":["[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$","^.+\\.module\\.(css|sass|scss)$"],"modulePaths":[],"moduleNameMapper":{"^react-native$":"react-native-web","^.+\\.module\\.(css|sass|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png)$":"identity-obj-proxy"},"moduleFileExtensions":["web.js","js","web.ts","ts","web.tsx","tsx","json","web.jsx","jsx","node"]},"babel":{"presets":["react-app"],"plugins":["@babel/plugin-syntax-dynamic-import"]},"eslintConfig":{"env":{"browser":true,"jest":true,"node":true,"es6":true},"extends":["eslint:recommended","plugin:react/recommended","plugin:jsx-a11y/recommended"],"parser":"@babel/eslint-parser","parserOptions":{"babelOptions":{"presets":[["babel-preset-react-app",false],"babel-preset-react-app/test"]},"ecmaFeatures":{"experimentalObjectRestSpread":true,"jsx":true},"sourceType":"module"},"plugins":["prettier","react","import","react-hooks","jsx-a11y"],"rules":{"no-console":"warn","no-unused-vars":"error","react/display-name":"off","react-hooks/rules-of-hooks":"error","react-hooks/exhaustive-deps":"warn","no-use-before-define":"error"}},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"src/**/*.{js,css}":["prettier --write","git add","yarn lint"]},"prettier":{"endOfLine":"lf","useTabs":false,"printWidth":100,"tabWidth":2,"singleQuote":true,"trailingComma":"all","bracketSameLine":false,"bracketSpacing":true,"parser":"babel","semi":true,"arrowParens":"avoid"}};
6702
+ module.exports = {"name":"@sis-cc/dotstatsuite-visions","version":"10.18.0","description":"Library of visual components","author":"OECD","homepage":"https://visions-qa.siscc.org/#o","license":"MIT","repository":"https://gitlab.com/sis-cc/.stat-suite/dotstatsuite-visions","main":"lib/index.js","module":"es/index.js","engines":{"node":">=14"},"files":["css","es","lib","umd"],"scripts":{"build":"nwb build-react-component --copy-files --no-demo && node scripts/doc && nwb build-demo","build:dev":"nwb build-react-component --copy-files --no-demo","clean":"nwb clean-module && nwb clean-demo","prepublishOnly":"npm run build","start":"nwb serve-react-demo","test":"jest","test:watch":"jest --watch --no-cache","lint":"eslint src/ --color","precommit":"lint-staged"},"dependencies":{"@react-hook/size":"^2.1.1","classnames":"^2.2.6","date-fns":"^1.30.1","isemail":"^3.2.0","numeral":"^2.0.6","prop-types":"^15.7.2","ramda":"^0.27.0","react-beautiful-dnd":"^13.0.0","react-draggable":"^4.4.5","react-error-boundary":"^4.0.10","react-virtualized":"^9.21.2"},"peerDependencies":{"@material-ui/core":"^4","@material-ui/icons":"^4","@sis-cc/dotstatsuite-sdmxjs":"^8.x","react":"^18","react-dom":"^18"},"devDependencies":{"@babel/eslint-parser":"^7.5.4","@babel/plugin-syntax-dynamic-import":"^7.2.0","@cfaester/enzyme-adapter-react-18":"^0.7.0","@material-ui/core":"^4","@material-ui/icons":"^4","@sis-cc/dotstatsuite-sdmxjs":"*","@testing-library/jest-dom":"^5.16.5","@testing-library/react":"^14.0.0","babel-jest":"^24.8.0","babel-preset-react-app":"^9.0.0","dox":"^0.9.0","eslint":"^8.39.0","eslint-plugin-import":"^2.27.5","eslint-plugin-jsx-a11y":"^6.7.1","eslint-plugin-prettier":"^4.2.1","eslint-plugin-react":"^7.32.2","eslint-plugin-react-hooks":"^4.6.0","husky":"^2.7.0","identity-obj-proxy":"^3.0.0","jest":"^24.8.0","jss":"^10.10.0","jss-rtl":"^0.2.3","lint-staged":"^8.2.1","mutationobserver-shim":"^0.3.7","nwb":"0.23.0","prettier":"^2.8.8","pretty-quick":"^3.1.3","react":"^18","react-a11y":"^1.1.0","react-dom":"^18","react-helmet":"^5.2.1","react-scrollable-anchor":"^0.6.1","react-syntax-highlighter":"^10.2.1","sanitize-html":"2.7.0","webpack":"^5.68.0","webpack-cli":"^4.9.2","webpack-dev-server":"^4.7.4"},"jest":{"verbose":true,"coverageDirectory":"coverage","collectCoverageFrom":["src/**/*.{js,jsx,ts,tsx}","!src/ScopeList/*.{js,jsx,ts,tsx}","!src/**/*.d.ts"],"setupFilesAfterEnv":["<rootDir>/tests/setup.js"],"testMatch":["**/tests/**/*.{spec,test}.{js,jsx,ts,tsx}","!**/tests/ScopeList.test.js"],"testEnvironment":"jsdom","transform":{"^.+\\.(js|jsx|ts|tsx)$":"<rootDir>/node_modules/babel-jest"},"transformIgnorePatterns":["[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$","^.+\\.module\\.(css|sass|scss)$"],"modulePaths":[],"moduleNameMapper":{"^react-native$":"react-native-web","^.+\\.module\\.(css|sass|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png)$":"identity-obj-proxy"},"moduleFileExtensions":["web.js","js","web.ts","ts","web.tsx","tsx","json","web.jsx","jsx","node"]},"babel":{"presets":["react-app"],"plugins":["@babel/plugin-syntax-dynamic-import"]},"eslintConfig":{"env":{"browser":true,"jest":true,"node":true,"es6":true},"extends":["eslint:recommended","plugin:react/recommended","plugin:jsx-a11y/recommended"],"parser":"@babel/eslint-parser","parserOptions":{"babelOptions":{"presets":[["babel-preset-react-app",false],"babel-preset-react-app/test"]},"ecmaFeatures":{"experimentalObjectRestSpread":true,"jsx":true},"sourceType":"module"},"plugins":["prettier","react","import","react-hooks","jsx-a11y"],"rules":{"no-console":"warn","no-unused-vars":"error","react/display-name":"off","react-hooks/rules-of-hooks":"error","react-hooks/exhaustive-deps":"warn","no-use-before-define":"error"}},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"src/**/*.{js,css}":["prettier --write","git add","yarn lint"]},"prettier":{"endOfLine":"lf","useTabs":false,"printWidth":100,"tabWidth":2,"singleQuote":true,"trailingComma":"all","bracketSameLine":false,"bracketSpacing":true,"parser":"babel","semi":true,"arrowParens":"avoid"}};
6703
6703
 
6704
6704
  /***/ }),
6705
6705
  /* 122 */
@@ -47866,6 +47866,7 @@ DataHeader_DataHeader.propTypes = {
47866
47866
 
47867
47867
 
47868
47868
 
47869
+
47869
47870
  var HEIGHT = 42;
47870
47871
 
47871
47872
  var DataFooter_useStyles = styles_makeStyles(function (theme) {
@@ -47927,6 +47928,10 @@ var DataFooter_DataFooter = function DataFooter(_ref3) {
47927
47928
  var isCopyrighted = copyright && copyright.label && copyright.content;
47928
47929
  var classes = DataFooter_useStyles({ isWidthUp: isWidthUp, isSourced: isSourced });
47929
47930
 
47931
+ var _useKeyboardEscapeHan = useKeybordEscapeHandler(),
47932
+ open = _useKeyboardEscapeHan.open,
47933
+ setOpen = _useKeyboardEscapeHan.setOpen;
47934
+
47930
47935
  if (!isWidthUp(T4_BREAKPOINTS.xs)) return react_default.a.createElement(esm_Grid_Grid, { ref: target });
47931
47936
 
47932
47937
  return react_default.a.createElement(
@@ -47977,15 +47982,21 @@ var DataFooter_DataFooter = function DataFooter(_ref3) {
47977
47982
  placement: 'top',
47978
47983
  enterNextDelay: 100,
47979
47984
  interactive: true,
47980
- arrow: true
47985
+ arrow: true,
47986
+ open: open,
47987
+ onOpen: function onOpen() {
47988
+ return setOpen(true);
47989
+ },
47990
+ onClose: function onClose() {
47991
+ return setOpen(false);
47992
+ }
47981
47993
  },
47982
47994
  react_default.a.createElement(
47983
47995
  esm_Typography_Typography,
47984
47996
  {
47985
47997
  variant: 'body2',
47986
47998
  className: classes.typo,
47987
- style: { cursor: 'pointer' },
47988
- role: 'button'
47999
+ style: { cursor: 'pointer' }
47989
48000
  },
47990
48001
  copyright.label
47991
48002
  )
@@ -49208,7 +49219,8 @@ var InputNumber_InputNumber = function InputNumber(_ref) {
49208
49219
  popperLabel = _ref.popperLabel,
49209
49220
  _ref$placeholder = _ref.placeholder,
49210
49221
  placeholder = _ref$placeholder === undefined ? '--' : _ref$placeholder,
49211
- textFieldProps = _ref.textFieldProps;
49222
+ textFieldProps = _ref.textFieldProps,
49223
+ ariaLabel = _ref.ariaLabel;
49212
49224
 
49213
49225
  var classes = InputNumber_useStyles();
49214
49226
 
@@ -49221,7 +49233,7 @@ var InputNumber_InputNumber = function InputNumber(_ref) {
49221
49233
  { 'data-testid': 'input-number-test-id', className: classes.root },
49222
49234
  beforeLabel && react_default.a.createElement(
49223
49235
  esm_Typography_Typography,
49224
- { variant: 'body2' },
49236
+ { variant: 'body2', 'aria-label': beforeLabel, tabIndex: -1 },
49225
49237
  beforeLabel
49226
49238
  ),
49227
49239
  react_default.a.createElement(esm_TextField_TextField, InputNumber_extends({
@@ -49229,7 +49241,8 @@ var InputNumber_InputNumber = function InputNumber(_ref) {
49229
49241
  inputProps: {
49230
49242
  min: 0,
49231
49243
  step: 1,
49232
- className: classes.input
49244
+ className: classes.input,
49245
+ 'aria-label': ariaLabel
49233
49246
  },
49234
49247
  placeholder: placeholder,
49235
49248
  onChange: function onChange(e) {
@@ -49241,12 +49254,18 @@ var InputNumber_InputNumber = function InputNumber(_ref) {
49241
49254
  }, textFieldProps)),
49242
49255
  es_not(es_isNil(afterLabel)) && react_default.a.createElement(
49243
49256
  esm_Typography_Typography,
49244
- { variant: 'body2' },
49257
+ { variant: 'body2', 'aria-label': afterLabel, tabIndex: 0 },
49245
49258
  afterLabel
49246
49259
  ),
49247
49260
  es_not(es_isNil(popperLabel)) && react_default.a.createElement(
49248
49261
  src_Tooltip_Tooltip,
49249
- { className: classnames_default()(classes.icon), title: popperLabel, variant: 'light' },
49262
+ {
49263
+ className: classnames_default()(classes.icon),
49264
+ title: popperLabel,
49265
+ 'aria-label': popperLabel,
49266
+ variant: 'light',
49267
+ tabIndex: 0
49268
+ },
49250
49269
  react_default.a.createElement(Help_default.a, null)
49251
49270
  )
49252
49271
  );
@@ -49259,7 +49278,8 @@ InputNumber_InputNumber.propTypes = {
49259
49278
  afterLabel: prop_types_default.a.oneOfType([prop_types_default.a.string, prop_types_default.a.element]),
49260
49279
  popperLabel: prop_types_default.a.oneOfType([prop_types_default.a.string, prop_types_default.a.element]),
49261
49280
  placeholder: prop_types_default.a.oneOfType([prop_types_default.a.string, prop_types_default.a.element]),
49262
- textFieldProps: prop_types_default.a.object
49281
+ textFieldProps: prop_types_default.a.object,
49282
+ ariaLabel: prop_types_default.a.string
49263
49283
  };
49264
49284
 
49265
49285
  /* harmony default export */ var src_InputNumber_InputNumber = (utils_withBlank(function (_ref2) {
@@ -49639,6 +49659,7 @@ var Mode_Mode_extends = Object.assign || function (target) { for (var i = 1; i <
49639
49659
 
49640
49660
 
49641
49661
 
49662
+
49642
49663
  var Mode_Mode_useStyles = styles_makeStyles(function (theme) {
49643
49664
  return {
49644
49665
  title: Mode_Mode_extends({
@@ -49659,9 +49680,28 @@ var Mode_Mode_Warning = function Warning(_ref) {
49659
49680
  children = _ref.children;
49660
49681
 
49661
49682
  var classes = Mode_Mode_useStyles();
49683
+
49684
+ var _useKeyboardEscapeHan = useKeybordEscapeHandler(),
49685
+ open = _useKeyboardEscapeHan.open,
49686
+ setOpen = _useKeyboardEscapeHan.setOpen;
49687
+
49662
49688
  return react_default.a.createElement(
49663
49689
  src_Tooltip_Tooltip,
49664
- { className: classes.icon, title: title, variant: 'light' },
49690
+ {
49691
+ className: classes.icon,
49692
+ title: title,
49693
+ variant: 'light',
49694
+ 'aria-label': title,
49695
+ 'aria-hidden': false,
49696
+ interactive: true,
49697
+ open: open,
49698
+ onOpen: function onOpen() {
49699
+ return setOpen(true);
49700
+ },
49701
+ onClose: function onClose() {
49702
+ return setOpen(false);
49703
+ }
49704
+ },
49665
49705
  children
49666
49706
  );
49667
49707
  };
@@ -49683,6 +49723,7 @@ var Mode_Mode_Mode = function Mode(_ref2) {
49683
49723
  children = _ref2.children;
49684
49724
 
49685
49725
  var classes = Mode_Mode_useStyles();
49726
+ var mapIndexed = es_addIndex(es_map);
49686
49727
  return react_default.a.createElement(
49687
49728
  esm_RadioGroup_RadioGroup,
49688
49729
  {
@@ -49690,21 +49731,27 @@ var Mode_Mode_Mode = function Mode(_ref2) {
49690
49731
  return changeMode(e.target.value);
49691
49732
  },
49692
49733
  value: mode,
49693
- className: classes.radioGroup
49734
+ className: classes.radioGroup,
49735
+ tabIndex: 0
49694
49736
  },
49695
- es_map(function (_ref3) {
49737
+ mapIndexed(function (_ref3, idx) {
49696
49738
  var label = _ref3.label,
49697
49739
  value = _ref3.value,
49698
49740
  popperLabel = _ref3.popperLabel,
49699
49741
  disabled = _ref3.disabled;
49700
49742
  return react_default.a.createElement(esm_FormControlLabel_FormControlLabel, {
49701
49743
  classes: { label: classes.label },
49702
- key: value,
49744
+ key: value + '-' + idx,
49703
49745
  checked: mode === value,
49704
- control: react_default.a.createElement(esm_Radio_Radio, { variant: 'outlined', color: 'primary', size: isSmall ? 'small' : 'medium' }),
49746
+ control: react_default.a.createElement(esm_Radio_Radio, {
49747
+ variant: 'outlined',
49748
+ color: 'primary',
49749
+ size: isSmall ? 'small' : 'medium',
49750
+ inputProps: { ' aria-labelledby': label, tabIndex: '0', id: label + '_' + idx }
49751
+ }),
49705
49752
  label: react_default.a.createElement(
49706
49753
  'span',
49707
- null,
49754
+ { id: label },
49708
49755
  label,
49709
49756
  popperLabel && react_default.a.createElement(
49710
49757
  Mode_Mode_Warning,
@@ -49715,7 +49762,8 @@ var Mode_Mode_Mode = function Mode(_ref2) {
49715
49762
  labelPlacement: placement,
49716
49763
  value: value,
49717
49764
  disabled: disabled || false,
49718
- style: { height: isSmall ? '25px' : null }
49765
+ style: { height: isSmall ? '25px' : null },
49766
+ role: 'radio'
49719
49767
  });
49720
49768
  })(modes)
49721
49769
  );
@@ -51571,7 +51619,10 @@ var PeriodPicker_Period = function Period(_ref) {
51571
51619
  { item: true, xs: 12, className: classes.sideLabel },
51572
51620
  react_default.a.createElement(
51573
51621
  'span',
51574
- null,
51622
+ {
51623
+ tabIndex: 0 // eslint-disable-line jsx-a11y/no-noninteractive-tabindex
51624
+ , 'aria-label': label
51625
+ },
51575
51626
  label
51576
51627
  )
51577
51628
  )