@sis-cc/dotstatsuite-visions 10.15.2 → 10.16.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.
@@ -1,4 +1,4 @@
1
- import React, { useState, useCallback, useEffect } from 'react';
1
+ import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import * as R from 'ramda';
4
4
  import cx from 'classnames';
@@ -10,6 +10,7 @@ import { getIsRtl } from '../utils';
10
10
  import Tooltip from '../Tooltip';
11
11
  import makeStylesFn from './styles';
12
12
  import { myTooltipRenderer, myTooltipRendererSrOnly, showMultiLinedTooltip, shownTooltip } from './utils';
13
+ import useKeyboardEscapeHandler from '../hooks/useKeybordEscapeHandler';
13
14
 
14
15
  var useStyles = makeStyles(makeStylesFn);
15
16
 
@@ -59,22 +60,10 @@ var CustomChip = function CustomChip(_ref) {
59
60
  return R.join(',')(R.map(myTooltipRendererSrOnly({ isRtl: isRtl, labelRenderer: labelRenderer, ariaLabelTooltip: ariaLabelTooltip }), R.propOr([], 'parents')(R.head(items))));
60
61
  };
61
62
 
62
- var _useState = useState(false),
63
- open = _useState[0],
64
- setOpen = _useState[1];
63
+ var _useKeyboardEscapeHan = useKeyboardEscapeHandler(),
64
+ open = _useKeyboardEscapeHan.open,
65
+ setOpen = _useKeyboardEscapeHan.setOpen;
65
66
 
66
- var handler = useCallback(function (e) {
67
- if (e.key === 'Escape') {
68
- setOpen(false);
69
- }
70
- }, []);
71
-
72
- useEffect(function () {
73
- document.addEventListener('keydown', handler);
74
- return function () {
75
- document.removeEventListener('keydown', handler);
76
- };
77
- }, []);
78
67
  return React.createElement(Chip, {
79
68
  'data-testid': testId,
80
69
  size: 'small',
@@ -110,12 +110,8 @@ var useStyles = makeStyles(function (theme) {
110
110
  minWidth: '200px',
111
111
  margin: theme.spacing(0, 0.5)
112
112
  },
113
- mutedText: {
114
- color: theme.palette.grey[700]
115
- },
116
- unmutedText: {
117
- color: theme.palette.grey[800]
118
- },
113
+ mutedText: _extends({}, R.pathOr({}, ['mixins', 'dataflow', 'desc', 'mutedText'], theme)),
114
+ unmutedText: _extends({}, R.pathOr({}, ['mixins', 'dataflow', 'desc', 'unmutedText'], theme)),
119
115
  categories: {
120
116
  maxWidth: '100%',
121
117
  whiteSpace: 'noWrap',
@@ -1,6 +1,6 @@
1
1
  var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
2
2
 
3
- import React, { Fragment, useState, useCallback, useEffect } from 'react';
3
+ import React, { Fragment } from 'react';
4
4
  import PropTypes from 'prop-types';
5
5
  import * as R from 'ramda';
6
6
  import cx from 'classnames';
@@ -9,6 +9,7 @@ import Typography from '@material-ui/core/Typography';
9
9
  import Tooltip from '@material-ui/core/Tooltip';
10
10
  import { Asterisk } from '../';
11
11
  import { getValue } from './utils';
12
+ import useKeyboardEscapeHandler from '../hooks/useKeybordEscapeHandler';
12
13
 
13
14
  var useStyles = makeStyles(function (theme) {
14
15
  return {
@@ -52,22 +53,10 @@ var Flags = function Flags(_ref) {
52
53
  var classes = useStyles();
53
54
  var noFlags = R.isNil(flags) || R.isEmpty(flags);
54
55
 
55
- var _useState = useState(false),
56
- open = _useState[0],
57
- setOpen = _useState[1];
56
+ var _useKeyboardEscapeHan = useKeyboardEscapeHandler(),
57
+ open = _useKeyboardEscapeHan.open,
58
+ setOpen = _useKeyboardEscapeHan.setOpen;
58
59
 
59
- var handler = useCallback(function (e) {
60
- if (e.key === 'Escape') {
61
- setOpen(false);
62
- }
63
- }, []);
64
-
65
- useEffect(function () {
66
- document.addEventListener('keydown', handler);
67
- return function () {
68
- document.removeEventListener('keydown', handler);
69
- };
70
- }, []);
71
60
  if (noFlags) return null;
72
61
 
73
62
  var hasUncoded = R.any(R.complement(R.has('code')), flags);
@@ -1,6 +1,6 @@
1
1
  var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
2
2
 
3
- import React, { useCallback, useEffect } from 'react';
3
+ import React from 'react';
4
4
  import * as R from 'ramda';
5
5
  import PropTypes from 'prop-types';
6
6
  import ListItem from '@material-ui/core/ListItem';
@@ -13,6 +13,7 @@ import CheckBoxIcon from '@material-ui/icons/CheckBoxOutlineBlankOutlined';
13
13
  import CheckedBoxIcon from '@material-ui/icons/CheckBoxOutlined';
14
14
  import cx from 'classnames';
15
15
  import { Tooltip } from '../';
16
+ import useKeyboardEscapeHandler from '../hooks/useKeybordEscapeHandler';
16
17
 
17
18
  var Item = function Item(_ref) {
18
19
  var _extends2, _cx, _cx2, _cx3, _cx4, _cx5;
@@ -43,25 +44,12 @@ var Item = function Item(_ref) {
43
44
  eventsListeners = _ref.eventsListeners,
44
45
  expanded = _ref.expanded;
45
46
 
46
- var _React$useState = React.useState(false),
47
- isTooltipShown = _React$useState[0],
48
- setIsTooltipShown = _React$useState[1];
47
+ var _useKeyboardEscapeHan = useKeyboardEscapeHandler(),
48
+ open = _useKeyboardEscapeHan.open,
49
+ setOpen = _useKeyboardEscapeHan.setOpen;
49
50
 
50
51
  var padding = depth * 30 + (depth > 0 && !hasChildrenOnLevel ? 30 : 0) + (!hasChild && hasChildrenOnLevel ? 30 : 0);
51
52
 
52
- var handler = useCallback(function (e) {
53
- if (e.key === 'Escape') {
54
- setIsTooltipShown(false);
55
- }
56
- }, []);
57
-
58
- useEffect(function () {
59
- document.addEventListener('keydown', handler);
60
- return function () {
61
- document.removeEventListener('keydown', handler);
62
- };
63
- }, []);
64
-
65
53
  return React.createElement(
66
54
  ListItem,
67
55
  {
@@ -105,8 +93,8 @@ var Item = function Item(_ref) {
105
93
  className: cx((_cx = {}, _cx[classes.accessibilityItemHover] = accessibility, _cx[classes.listItemSelected] = isSelected, _cx[classes.listItemHover] = !isDisabled, _cx)),
106
94
  onKeyDown: isDisabled ? null : eventsListeners.onKeyDown,
107
95
  onClick: isDisabled ? null : eventsListeners.onClick,
108
- onMouseDown: isDisabled || isTooltipShown ? null : eventsListeners.onMouseDown,
109
- onMouseEnter: isDisabled || isTooltipShown ? null : eventsListeners.onMouseEnter,
96
+ onMouseDown: isDisabled || open ? null : eventsListeners.onMouseDown,
97
+ onMouseEnter: isDisabled || open ? null : eventsListeners.onMouseEnter,
110
98
  title: isGreyed ? R.propOr('', 'disableItemLabel')(labels) + ' ' + label : label,
111
99
  style: { opacity: isDisabled && isGreyed ? '0.5' : '1' },
112
100
  primary: React.createElement(
@@ -145,13 +133,13 @@ var Item = function Item(_ref) {
145
133
  placement: 'top',
146
134
  interactive: Boolean(HTMLRenderer),
147
135
  onOpen: function onOpen() {
148
- return setIsTooltipShown(true);
136
+ return setOpen(true);
149
137
  },
150
138
  onClose: function onClose() {
151
- return setIsTooltipShown(false);
139
+ return setOpen(false);
152
140
  },
153
141
  disableHoverListener: R.isEmpty(description),
154
- open: isTooltipShown
142
+ open: open
155
143
  },
156
144
  React.createElement(
157
145
  Typography,
@@ -0,0 +1,22 @@
1
+ import { useEffect, useState, useCallback } from 'react';
2
+
3
+ export default (function () {
4
+ var _useState = useState(false),
5
+ open = _useState[0],
6
+ setOpen = _useState[1];
7
+
8
+ var handler = useCallback(function (e) {
9
+ if (e.key === 'Escape') {
10
+ setOpen(false);
11
+ }
12
+ }, []);
13
+
14
+ useEffect(function () {
15
+ document.addEventListener('keydown', handler);
16
+ return function () {
17
+ document.removeEventListener('keydown', handler);
18
+ };
19
+ }, []);
20
+
21
+ return { open: open, setOpen: setOpen };
22
+ });
package/es/theme.js CHANGED
@@ -239,6 +239,14 @@ export var sisccTheme = function sisccTheme(_ref) {
239
239
  fontWeight: 400,
240
240
  fontFamily: "'Roboto Slab', serif",
241
241
  fontSize: 17
242
+ },
243
+ desc: {
244
+ mutedText: {
245
+ color: '#666666'
246
+ },
247
+ unmutedText: {
248
+ color: outerPalette.textLight || innerPalette.textLight
249
+ }
242
250
  }
243
251
  },
244
252
  dataHeader: {
@@ -44,6 +44,10 @@ var _styles3 = _interopRequireDefault(_styles2);
44
44
 
45
45
  var _utils2 = require('./utils');
46
46
 
47
+ var _useKeybordEscapeHandler = require('../hooks/useKeybordEscapeHandler');
48
+
49
+ var _useKeybordEscapeHandler2 = _interopRequireDefault(_useKeybordEscapeHandler);
50
+
47
51
  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; } }
48
52
 
49
53
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -96,22 +100,10 @@ var CustomChip = function CustomChip(_ref) {
96
100
  return R.join(',')(R.map((0, _utils2.myTooltipRendererSrOnly)({ isRtl: isRtl, labelRenderer: labelRenderer, ariaLabelTooltip: ariaLabelTooltip }), R.propOr([], 'parents')(R.head(items))));
97
101
  };
98
102
 
99
- var _useState = (0, _react.useState)(false),
100
- open = _useState[0],
101
- setOpen = _useState[1];
102
-
103
- var handler = (0, _react.useCallback)(function (e) {
104
- if (e.key === 'Escape') {
105
- setOpen(false);
106
- }
107
- }, []);
108
-
109
- (0, _react.useEffect)(function () {
110
- document.addEventListener('keydown', handler);
111
- return function () {
112
- document.removeEventListener('keydown', handler);
113
- };
114
- }, []);
103
+ var _useKeyboardEscapeHan = (0, _useKeybordEscapeHandler2.default)(),
104
+ open = _useKeyboardEscapeHan.open,
105
+ setOpen = _useKeyboardEscapeHan.setOpen;
106
+
115
107
  return _react2.default.createElement(_Chip2.default, {
116
108
  'data-testid': testId,
117
109
  size: 'small',
@@ -171,12 +171,8 @@ var useStyles = (0, _styles.makeStyles)(function (theme) {
171
171
  minWidth: '200px',
172
172
  margin: theme.spacing(0, 0.5)
173
173
  },
174
- mutedText: {
175
- color: theme.palette.grey[700]
176
- },
177
- unmutedText: {
178
- color: theme.palette.grey[800]
179
- },
174
+ mutedText: _extends({}, R.pathOr({}, ['mixins', 'dataflow', 'desc', 'mutedText'], theme)),
175
+ unmutedText: _extends({}, R.pathOr({}, ['mixins', 'dataflow', 'desc', 'unmutedText'], theme)),
180
176
  categories: {
181
177
  maxWidth: '100%',
182
178
  whiteSpace: 'noWrap',
@@ -34,6 +34,10 @@ var _ = require('../');
34
34
 
35
35
  var _utils = require('./utils');
36
36
 
37
+ var _useKeybordEscapeHandler = require('../hooks/useKeybordEscapeHandler');
38
+
39
+ var _useKeybordEscapeHandler2 = _interopRequireDefault(_useKeybordEscapeHandler);
40
+
37
41
  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; } }
38
42
 
39
43
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -80,22 +84,10 @@ var Flags = function Flags(_ref) {
80
84
  var classes = useStyles();
81
85
  var noFlags = R.isNil(flags) || R.isEmpty(flags);
82
86
 
83
- var _useState = (0, _react.useState)(false),
84
- open = _useState[0],
85
- setOpen = _useState[1];
87
+ var _useKeyboardEscapeHan = (0, _useKeybordEscapeHandler2.default)(),
88
+ open = _useKeyboardEscapeHan.open,
89
+ setOpen = _useKeyboardEscapeHan.setOpen;
86
90
 
87
- var handler = (0, _react.useCallback)(function (e) {
88
- if (e.key === 'Escape') {
89
- setOpen(false);
90
- }
91
- }, []);
92
-
93
- (0, _react.useEffect)(function () {
94
- document.addEventListener('keydown', handler);
95
- return function () {
96
- document.removeEventListener('keydown', handler);
97
- };
98
- }, []);
99
91
  if (noFlags) return null;
100
92
 
101
93
  var hasUncoded = R.any(R.complement(R.has('code')), flags);
@@ -50,6 +50,10 @@ var _classnames2 = _interopRequireDefault(_classnames);
50
50
 
51
51
  var _ = require('../');
52
52
 
53
+ var _useKeybordEscapeHandler = require('../hooks/useKeybordEscapeHandler');
54
+
55
+ var _useKeybordEscapeHandler2 = _interopRequireDefault(_useKeybordEscapeHandler);
56
+
53
57
  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; } }
54
58
 
55
59
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -83,25 +87,12 @@ var Item = function Item(_ref) {
83
87
  eventsListeners = _ref.eventsListeners,
84
88
  expanded = _ref.expanded;
85
89
 
86
- var _React$useState = _react2.default.useState(false),
87
- isTooltipShown = _React$useState[0],
88
- setIsTooltipShown = _React$useState[1];
90
+ var _useKeyboardEscapeHan = (0, _useKeybordEscapeHandler2.default)(),
91
+ open = _useKeyboardEscapeHan.open,
92
+ setOpen = _useKeyboardEscapeHan.setOpen;
89
93
 
90
94
  var padding = depth * 30 + (depth > 0 && !hasChildrenOnLevel ? 30 : 0) + (!hasChild && hasChildrenOnLevel ? 30 : 0);
91
95
 
92
- var handler = (0, _react.useCallback)(function (e) {
93
- if (e.key === 'Escape') {
94
- setIsTooltipShown(false);
95
- }
96
- }, []);
97
-
98
- (0, _react.useEffect)(function () {
99
- document.addEventListener('keydown', handler);
100
- return function () {
101
- document.removeEventListener('keydown', handler);
102
- };
103
- }, []);
104
-
105
96
  return _react2.default.createElement(
106
97
  _ListItem2.default,
107
98
  {
@@ -145,8 +136,8 @@ var Item = function Item(_ref) {
145
136
  className: (0, _classnames2.default)((_cx = {}, _cx[classes.accessibilityItemHover] = accessibility, _cx[classes.listItemSelected] = isSelected, _cx[classes.listItemHover] = !isDisabled, _cx)),
146
137
  onKeyDown: isDisabled ? null : eventsListeners.onKeyDown,
147
138
  onClick: isDisabled ? null : eventsListeners.onClick,
148
- onMouseDown: isDisabled || isTooltipShown ? null : eventsListeners.onMouseDown,
149
- onMouseEnter: isDisabled || isTooltipShown ? null : eventsListeners.onMouseEnter,
139
+ onMouseDown: isDisabled || open ? null : eventsListeners.onMouseDown,
140
+ onMouseEnter: isDisabled || open ? null : eventsListeners.onMouseEnter,
150
141
  title: isGreyed ? R.propOr('', 'disableItemLabel')(labels) + ' ' + label : label,
151
142
  style: { opacity: isDisabled && isGreyed ? '0.5' : '1' },
152
143
  primary: _react2.default.createElement(
@@ -185,13 +176,13 @@ var Item = function Item(_ref) {
185
176
  placement: 'top',
186
177
  interactive: Boolean(HTMLRenderer),
187
178
  onOpen: function onOpen() {
188
- return setIsTooltipShown(true);
179
+ return setOpen(true);
189
180
  },
190
181
  onClose: function onClose() {
191
- return setIsTooltipShown(false);
182
+ return setOpen(false);
192
183
  },
193
184
  disableHoverListener: R.isEmpty(description),
194
- open: isTooltipShown
185
+ open: open
195
186
  },
196
187
  _react2.default.createElement(
197
188
  _Typography2.default,
@@ -0,0 +1,28 @@
1
+ 'use strict';
2
+
3
+ exports.__esModule = true;
4
+
5
+ var _react = require('react');
6
+
7
+ exports.default = function () {
8
+ var _useState = (0, _react.useState)(false),
9
+ open = _useState[0],
10
+ setOpen = _useState[1];
11
+
12
+ var handler = (0, _react.useCallback)(function (e) {
13
+ if (e.key === 'Escape') {
14
+ setOpen(false);
15
+ }
16
+ }, []);
17
+
18
+ (0, _react.useEffect)(function () {
19
+ document.addEventListener('keydown', handler);
20
+ return function () {
21
+ document.removeEventListener('keydown', handler);
22
+ };
23
+ }, []);
24
+
25
+ return { open: open, setOpen: setOpen };
26
+ };
27
+
28
+ module.exports = exports['default'];
package/lib/theme.js CHANGED
@@ -242,6 +242,14 @@ var sisccTheme = exports.sisccTheme = function sisccTheme(_ref) {
242
242
  fontWeight: 400,
243
243
  fontFamily: "'Roboto Slab', serif",
244
244
  fontSize: 17
245
+ },
246
+ desc: {
247
+ mutedText: {
248
+ color: '#666666'
249
+ },
250
+ unmutedText: {
251
+ color: outerPalette.textLight || innerPalette.textLight
252
+ }
245
253
  }
246
254
  },
247
255
  dataHeader: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sis-cc/dotstatsuite-visions",
3
- "version": "10.15.2",
3
+ "version": "10.16.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.15.2 - https://visions-qa.siscc.org/#o
2
+ * @sis-cc/dotstatsuite-visions v10.16.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.15.2","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.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"}};
6703
6703
 
6704
6704
  /***/ }),
6705
6705
  /* 122 */
@@ -42157,6 +42157,29 @@ var utils_isLast = function isLast(index, list) {
42157
42157
 
42158
42158
  var shownTooltip = pipe(es_dropLast(1), es_either(es_isEmpty, es_isNil), es_not);
42159
42159
  var showMultiLinedTooltip = pipe(es_head, es_propOr([], 'parents'), es_isEmpty, es_not);
42160
+ // CONCATENATED MODULE: ./src/hooks/useKeybordEscapeHandler.js
42161
+
42162
+
42163
+ /* harmony default export */ var useKeybordEscapeHandler = (function () {
42164
+ var _useState = Object(react["useState"])(false),
42165
+ open = _useState[0],
42166
+ setOpen = _useState[1];
42167
+
42168
+ var handler = Object(react["useCallback"])(function (e) {
42169
+ if (e.key === 'Escape') {
42170
+ setOpen(false);
42171
+ }
42172
+ }, []);
42173
+
42174
+ Object(react["useEffect"])(function () {
42175
+ document.addEventListener('keydown', handler);
42176
+ return function () {
42177
+ document.removeEventListener('keydown', handler);
42178
+ };
42179
+ }, []);
42180
+
42181
+ return { open: open, setOpen: setOpen };
42182
+ });
42160
42183
  // CONCATENATED MODULE: ./src/Chips/CustomChip.js
42161
42184
 
42162
42185
 
@@ -42171,6 +42194,7 @@ var showMultiLinedTooltip = pipe(es_head, es_propOr([], 'parents'), es_isEmpty,
42171
42194
 
42172
42195
 
42173
42196
 
42197
+
42174
42198
  var CustomChip_useStyles = styles_makeStyles(Chips_styles);
42175
42199
 
42176
42200
  var CustomChip_CustomChip = function CustomChip(_ref) {
@@ -42219,22 +42243,10 @@ var CustomChip_CustomChip = function CustomChip(_ref) {
42219
42243
  return es_join(',')(es_map(utils_myTooltipRendererSrOnly({ isRtl: isRtl, labelRenderer: labelRenderer, ariaLabelTooltip: ariaLabelTooltip }), es_propOr([], 'parents')(es_head(items))));
42220
42244
  };
42221
42245
 
42222
- var _useState = Object(react["useState"])(false),
42223
- open = _useState[0],
42224
- setOpen = _useState[1];
42225
-
42226
- var handler = Object(react["useCallback"])(function (e) {
42227
- if (e.key === 'Escape') {
42228
- setOpen(false);
42229
- }
42230
- }, []);
42246
+ var _useKeyboardEscapeHan = useKeybordEscapeHandler(),
42247
+ open = _useKeyboardEscapeHan.open,
42248
+ setOpen = _useKeyboardEscapeHan.setOpen;
42231
42249
 
42232
- Object(react["useEffect"])(function () {
42233
- document.addEventListener('keydown', handler);
42234
- return function () {
42235
- document.removeEventListener('keydown', handler);
42236
- };
42237
- }, []);
42238
42250
  return react_default.a.createElement(esm_Chip_Chip, {
42239
42251
  'data-testid': testId,
42240
42252
  size: 'small',
@@ -46227,12 +46239,8 @@ var Dataflow_useStyles = styles_makeStyles(function (theme) {
46227
46239
  minWidth: '200px',
46228
46240
  margin: theme.spacing(0, 0.5)
46229
46241
  },
46230
- mutedText: {
46231
- color: theme.palette.grey[700]
46232
- },
46233
- unmutedText: {
46234
- color: theme.palette.grey[800]
46235
- },
46242
+ mutedText: Dataflow_extends({}, es_pathOr({}, ['mixins', 'dataflow', 'desc', 'mutedText'], theme)),
46243
+ unmutedText: Dataflow_extends({}, es_pathOr({}, ['mixins', 'dataflow', 'desc', 'unmutedText'], theme)),
46236
46244
  categories: {
46237
46245
  maxWidth: '100%',
46238
46246
  whiteSpace: 'noWrap',
@@ -46975,6 +46983,14 @@ var sisccTheme = function sisccTheme(_ref) {
46975
46983
  fontWeight: 400,
46976
46984
  fontFamily: "'Roboto Slab', serif",
46977
46985
  fontSize: 17
46986
+ },
46987
+ desc: {
46988
+ mutedText: {
46989
+ color: '#666666'
46990
+ },
46991
+ unmutedText: {
46992
+ color: outerPalette.textLight || innerPalette.textLight
46993
+ }
46978
46994
  }
46979
46995
  },
46980
46996
  dataHeader: {
@@ -53572,6 +53588,7 @@ var flags_extends = Object.assign || function (target) { for (var i = 1; i < arg
53572
53588
 
53573
53589
 
53574
53590
 
53591
+
53575
53592
  var flags_useStyles = styles_makeStyles(function (theme) {
53576
53593
  return {
53577
53594
  content: flags_extends({
@@ -53614,22 +53631,10 @@ var flags_Flags = function Flags(_ref) {
53614
53631
  var classes = flags_useStyles();
53615
53632
  var noFlags = es_isNil(flags) || es_isEmpty(flags);
53616
53633
 
53617
- var _useState = Object(react["useState"])(false),
53618
- open = _useState[0],
53619
- setOpen = _useState[1];
53620
-
53621
- var handler = Object(react["useCallback"])(function (e) {
53622
- if (e.key === 'Escape') {
53623
- setOpen(false);
53624
- }
53625
- }, []);
53634
+ var _useKeyboardEscapeHan = useKeybordEscapeHandler(),
53635
+ open = _useKeyboardEscapeHan.open,
53636
+ setOpen = _useKeyboardEscapeHan.setOpen;
53626
53637
 
53627
- Object(react["useEffect"])(function () {
53628
- document.addEventListener('keydown', handler);
53629
- return function () {
53630
- document.removeEventListener('keydown', handler);
53631
- };
53632
- }, []);
53633
53638
  if (noFlags) return null;
53634
53639
 
53635
53640
  var hasUncoded = es_any(es_complement(es_has('code')), flags);
@@ -70655,6 +70660,7 @@ var VirtualizedTree_Item_extends = Object.assign || function (target) { for (var
70655
70660
 
70656
70661
 
70657
70662
 
70663
+
70658
70664
  var VirtualizedTree_Item_Item = function Item(_ref) {
70659
70665
  var _extends2, _cx, _cx2, _cx3, _cx4, _cx5;
70660
70666
 
@@ -70684,25 +70690,12 @@ var VirtualizedTree_Item_Item = function Item(_ref) {
70684
70690
  eventsListeners = _ref.eventsListeners,
70685
70691
  expanded = _ref.expanded;
70686
70692
 
70687
- var _React$useState = react_default.a.useState(false),
70688
- isTooltipShown = _React$useState[0],
70689
- setIsTooltipShown = _React$useState[1];
70693
+ var _useKeyboardEscapeHan = useKeybordEscapeHandler(),
70694
+ open = _useKeyboardEscapeHan.open,
70695
+ setOpen = _useKeyboardEscapeHan.setOpen;
70690
70696
 
70691
70697
  var padding = depth * 30 + (depth > 0 && !hasChildrenOnLevel ? 30 : 0) + (!hasChild && hasChildrenOnLevel ? 30 : 0);
70692
70698
 
70693
- var handler = Object(react["useCallback"])(function (e) {
70694
- if (e.key === 'Escape') {
70695
- setIsTooltipShown(false);
70696
- }
70697
- }, []);
70698
-
70699
- Object(react["useEffect"])(function () {
70700
- document.addEventListener('keydown', handler);
70701
- return function () {
70702
- document.removeEventListener('keydown', handler);
70703
- };
70704
- }, []);
70705
-
70706
70699
  return react_default.a.createElement(
70707
70700
  esm_ListItem_ListItem,
70708
70701
  {
@@ -70746,8 +70739,8 @@ var VirtualizedTree_Item_Item = function Item(_ref) {
70746
70739
  className: classnames_default()((_cx = {}, _cx[classes.accessibilityItemHover] = accessibility, _cx[classes.listItemSelected] = isSelected, _cx[classes.listItemHover] = !isDisabled, _cx)),
70747
70740
  onKeyDown: isDisabled ? null : eventsListeners.onKeyDown,
70748
70741
  onClick: isDisabled ? null : eventsListeners.onClick,
70749
- onMouseDown: isDisabled || isTooltipShown ? null : eventsListeners.onMouseDown,
70750
- onMouseEnter: isDisabled || isTooltipShown ? null : eventsListeners.onMouseEnter,
70742
+ onMouseDown: isDisabled || open ? null : eventsListeners.onMouseDown,
70743
+ onMouseEnter: isDisabled || open ? null : eventsListeners.onMouseEnter,
70751
70744
  title: isGreyed ? es_propOr('', 'disableItemLabel')(labels) + ' ' + label : label,
70752
70745
  style: { opacity: isDisabled && isGreyed ? '0.5' : '1' },
70753
70746
  primary: react_default.a.createElement(
@@ -70786,13 +70779,13 @@ var VirtualizedTree_Item_Item = function Item(_ref) {
70786
70779
  placement: 'top',
70787
70780
  interactive: Boolean(HTMLRenderer),
70788
70781
  onOpen: function onOpen() {
70789
- return setIsTooltipShown(true);
70782
+ return setOpen(true);
70790
70783
  },
70791
70784
  onClose: function onClose() {
70792
- return setIsTooltipShown(false);
70785
+ return setOpen(false);
70793
70786
  },
70794
70787
  disableHoverListener: es_isEmpty(description),
70795
- open: isTooltipShown
70788
+ open: open
70796
70789
  },
70797
70790
  react_default.a.createElement(
70798
70791
  esm_Typography_Typography,