@elastic/eui 116.0.0 → 116.1.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/es/components/accordion/accordion.js +95 -134
- package/es/components/basic_table/basic_table.js +6 -0
- package/es/components/basic_table/in_memory_table.js +6 -0
- package/es/components/color_picker/color_picker_swatch.js +4 -0
- package/es/components/context_menu/context_menu_panel.js +2 -2
- package/es/components/copy/copy.js +36 -13
- package/es/components/datagrid/body/cell/data_grid_cell_popover.js +10 -7
- package/es/components/datagrid/data_grid.styles.js +6 -5
- package/es/components/focus_trap/focus_trap.js +110 -177
- package/es/components/observer/mutation_observer/mutation_observer.js +32 -35
- package/es/components/observer/resize_observer/resize_observer.js +46 -60
- package/es/components/observer/use_observer.js +62 -0
- package/es/components/table/table_header_cell.js +4 -0
- package/es/components/tool_tip/icon_tip.js +4 -0
- package/es/components/tool_tip/tool_tip.js +8 -2
- package/eui.d.ts +26 -69
- package/lib/components/accordion/accordion.js +102 -139
- package/lib/components/basic_table/basic_table.js +6 -0
- package/lib/components/basic_table/in_memory_table.js +6 -0
- package/lib/components/color_picker/color_picker_swatch.js +4 -0
- package/lib/components/context_menu/context_menu_panel.js +2 -2
- package/lib/components/copy/copy.js +35 -12
- package/lib/components/datagrid/body/cell/data_grid_cell_popover.js +10 -7
- package/lib/components/datagrid/data_grid.styles.js +6 -5
- package/lib/components/focus_trap/focus_trap.js +117 -183
- package/lib/components/observer/mutation_observer/mutation_observer.js +32 -34
- package/lib/components/observer/resize_observer/resize_observer.js +48 -61
- package/lib/components/observer/use_observer.js +68 -0
- package/lib/components/table/table_header_cell.js +4 -0
- package/lib/components/tool_tip/icon_tip.js +4 -0
- package/lib/components/tool_tip/tool_tip.js +8 -2
- package/optimize/es/components/accordion/accordion.js +88 -126
- package/optimize/es/components/context_menu/context_menu_panel.js +2 -2
- package/optimize/es/components/copy/copy.js +36 -13
- package/optimize/es/components/datagrid/body/cell/data_grid_cell_popover.js +10 -7
- package/optimize/es/components/datagrid/data_grid.styles.js +6 -5
- package/optimize/es/components/focus_trap/focus_trap.js +103 -122
- package/optimize/es/components/observer/mutation_observer/mutation_observer.js +23 -32
- package/optimize/es/components/observer/resize_observer/resize_observer.js +38 -54
- package/optimize/es/components/observer/use_observer.js +62 -0
- package/optimize/es/components/tool_tip/tool_tip.js +4 -2
- package/optimize/lib/components/accordion/accordion.js +90 -127
- package/optimize/lib/components/context_menu/context_menu_panel.js +2 -2
- package/optimize/lib/components/copy/copy.js +35 -12
- package/optimize/lib/components/datagrid/body/cell/data_grid_cell_popover.js +10 -7
- package/optimize/lib/components/datagrid/data_grid.styles.js +6 -5
- package/optimize/lib/components/focus_trap/focus_trap.js +106 -124
- package/optimize/lib/components/observer/mutation_observer/mutation_observer.js +23 -32
- package/optimize/lib/components/observer/resize_observer/resize_observer.js +40 -54
- package/optimize/lib/components/observer/use_observer.js +68 -0
- package/optimize/lib/components/tool_tip/tool_tip.js +4 -2
- package/package.json +2 -2
- package/test-env/components/accordion/accordion.js +92 -129
- package/test-env/components/basic_table/basic_table.js +6 -0
- package/test-env/components/basic_table/in_memory_table.js +6 -0
- package/test-env/components/color_picker/color_picker_swatch.js +4 -0
- package/test-env/components/context_menu/context_menu_panel.js +2 -2
- package/test-env/components/copy/copy.js +35 -12
- package/test-env/components/datagrid/body/cell/data_grid_cell_popover.js +10 -7
- package/test-env/components/datagrid/data_grid.styles.js +6 -5
- package/test-env/components/observer/mutation_observer/mutation_observer.js +32 -32
- package/test-env/components/observer/use_observer.js +68 -0
- package/test-env/components/table/table_header_cell.js +4 -0
- package/test-env/components/tool_tip/icon_tip.js +4 -0
- package/test-env/components/tool_tip/tool_tip.js +8 -2
- package/es/components/observer/observer.js +0 -75
- package/lib/components/observer/observer.js +0 -79
- package/optimize/es/components/observer/observer.js +0 -69
- package/optimize/lib/components/observer/observer.js +0 -74
- package/test-env/components/observer/observer.js +0 -74
|
@@ -6,148 +6,130 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.EuiFocusTrap = void 0;
|
|
9
|
-
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
10
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
13
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
14
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
9
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
16
12
|
var _react = _interopRequireWildcard(require("react"));
|
|
17
13
|
var _reactFocusOn = require("react-focus-on");
|
|
18
14
|
var _reactRemoveScrollBar = require("react-remove-scroll-bar");
|
|
19
15
|
var _services = require("../../services");
|
|
20
16
|
var _component_defaults = require("../provider/component_defaults");
|
|
21
17
|
var _react2 = require("@emotion/react");
|
|
22
|
-
var _excluded = ["children", "
|
|
23
|
-
|
|
24
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
25
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
26
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
27
|
-
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
|
|
28
|
-
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /*
|
|
18
|
+
var _excluded = ["children", "disabled", "clickOutsideDisables", "returnFocus", "noIsolation", "crossFrame", "scrollLock", "initialFocus", "gapMode", "closeOnMouseup", "onClickOutside"];
|
|
19
|
+
/*
|
|
29
20
|
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
30
21
|
* or more contributor license agreements. Licensed under the Elastic License
|
|
31
22
|
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
32
23
|
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
33
24
|
* Side Public License, v 1.
|
|
34
25
|
*/
|
|
35
|
-
var
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
};
|
|
39
|
-
var
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
26
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
27
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
28
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
29
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
30
|
+
var EuiFocusTrap = exports.EuiFocusTrap = function EuiFocusTrap(_props) {
|
|
31
|
+
var props = (0, _component_defaults.usePropsWithComponentDefaults)('EuiFocusTrap', _props);
|
|
32
|
+
var children = props.children,
|
|
33
|
+
disabled = props.disabled,
|
|
34
|
+
_props$clickOutsideDi = props.clickOutsideDisables,
|
|
35
|
+
clickOutsideDisables = _props$clickOutsideDi === void 0 ? false : _props$clickOutsideDi,
|
|
36
|
+
_props$returnFocus = props.returnFocus,
|
|
37
|
+
returnFocus = _props$returnFocus === void 0 ? true : _props$returnFocus,
|
|
38
|
+
_props$noIsolation = props.noIsolation,
|
|
39
|
+
noIsolation = _props$noIsolation === void 0 ? true : _props$noIsolation,
|
|
40
|
+
_props$crossFrame = props.crossFrame,
|
|
41
|
+
crossFrame = _props$crossFrame === void 0 ? false : _props$crossFrame,
|
|
42
|
+
_props$scrollLock = props.scrollLock,
|
|
43
|
+
scrollLock = _props$scrollLock === void 0 ? false : _props$scrollLock,
|
|
44
|
+
initialFocus = props.initialFocus,
|
|
45
|
+
_props$gapMode = props.gapMode,
|
|
46
|
+
gapMode = _props$gapMode === void 0 ? 'padding' : _props$gapMode,
|
|
47
|
+
closeOnMouseup = props.closeOnMouseup,
|
|
48
|
+
onClickOutside = props.onClickOutside,
|
|
49
|
+
rest = (0, _objectWithoutProperties2.default)(props, _excluded);
|
|
50
|
+
var _useState = (0, _react.useState)(false),
|
|
51
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
52
|
+
hasBeenDisabledByClick = _useState2[0],
|
|
53
|
+
setHasBeenDisabledByClick = _useState2[1];
|
|
54
|
+
var isDisabled = disabled || hasBeenDisabledByClick;
|
|
55
|
+
|
|
56
|
+
// Programmatically sets focus on a nested DOM node; optional
|
|
57
|
+
var setInitialFocus = function setInitialFocus(initialFocus) {
|
|
58
|
+
if (!initialFocus) return;
|
|
59
|
+
var node = (0, _services.findElementBySelectorOrRef)(initialFocus);
|
|
60
|
+
if (!node) return;
|
|
61
|
+
// `data-autofocus` is part of the 'react-focus-on' API
|
|
62
|
+
node.setAttribute('data-autofocus', 'true');
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
// Stabilize the onClickOutside callback
|
|
66
|
+
var onClickOutsideRef = (0, _react.useRef)(onClickOutside);
|
|
67
|
+
onClickOutsideRef.current = onClickOutside;
|
|
68
|
+
|
|
69
|
+
// We use a ref to store the listener to prevent circular dependencies
|
|
70
|
+
// while still ensuring the listeners can properly be cleaned up
|
|
71
|
+
var mouseupListenerRef = (0, _react.useRef)(null);
|
|
72
|
+
var removeMouseupListener = (0, _react.useCallback)(function () {
|
|
73
|
+
if (mouseupListenerRef.current) {
|
|
74
|
+
document.removeEventListener('mouseup', mouseupListenerRef.current);
|
|
75
|
+
document.removeEventListener('touchend', mouseupListenerRef.current);
|
|
76
|
+
mouseupListenerRef.current = null;
|
|
45
77
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
(0, _defineProperty2.default)(_this, "preventFocusExit", false);
|
|
52
|
-
// Programmatically sets focus on a nested DOM node; optional
|
|
53
|
-
(0, _defineProperty2.default)(_this, "setInitialFocus", function (initialFocus) {
|
|
54
|
-
if (!initialFocus) return;
|
|
55
|
-
var node = (0, _services.findElementBySelectorOrRef)(initialFocus);
|
|
56
|
-
if (!node) return;
|
|
57
|
-
// `data-autofocus` is part of the 'react-focus-on' API
|
|
58
|
-
node.setAttribute('data-autofocus', 'true');
|
|
59
|
-
});
|
|
60
|
-
(0, _defineProperty2.default)(_this, "onMouseupOutside", function (e) {
|
|
61
|
-
_this.removeMouseupListener();
|
|
78
|
+
}, []);
|
|
79
|
+
var addMouseupListener = (0, _react.useCallback)(function () {
|
|
80
|
+
removeMouseupListener();
|
|
81
|
+
mouseupListenerRef.current = function (e) {
|
|
82
|
+
removeMouseupListener();
|
|
62
83
|
// Timeout gives precedence to the consumer to initiate close if it has toggle behavior.
|
|
63
84
|
// Otherwise this event may occur first and the consumer toggle will reopen the flyout.
|
|
64
85
|
setTimeout(function () {
|
|
65
|
-
var
|
|
66
|
-
return (
|
|
86
|
+
var _onClickOutsideRef$cu;
|
|
87
|
+
return (_onClickOutsideRef$cu = onClickOutsideRef.current) === null || _onClickOutsideRef$cu === void 0 ? void 0 : _onClickOutsideRef$cu.call(onClickOutsideRef, e);
|
|
67
88
|
});
|
|
68
|
-
}
|
|
69
|
-
(
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
document.removeEventListener('touchend', _this.onMouseupOutside);
|
|
76
|
-
});
|
|
77
|
-
(0, _defineProperty2.default)(_this, "handleOutsideClick", function (event) {
|
|
78
|
-
var _this$props2 = _this.props,
|
|
79
|
-
onClickOutside = _this$props2.onClickOutside,
|
|
80
|
-
clickOutsideDisables = _this$props2.clickOutsideDisables,
|
|
81
|
-
closeOnMouseup = _this$props2.closeOnMouseup;
|
|
82
|
-
if (clickOutsideDisables) {
|
|
83
|
-
_this.setState({
|
|
84
|
-
hasBeenDisabledByClick: true
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
if (onClickOutside) {
|
|
88
|
-
closeOnMouseup ? _this.addMouseupListener() : onClickOutside(event);
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
return _this;
|
|
92
|
-
}
|
|
93
|
-
(0, _inherits2.default)(EuiFocusTrapClass, _Component);
|
|
94
|
-
return (0, _createClass2.default)(EuiFocusTrapClass, [{
|
|
95
|
-
key: "componentDidMount",
|
|
96
|
-
value: function componentDidMount() {
|
|
97
|
-
this.setInitialFocus(this.props.initialFocus);
|
|
98
|
-
}
|
|
99
|
-
}, {
|
|
100
|
-
key: "componentDidUpdate",
|
|
101
|
-
value: function componentDidUpdate(prevProps) {
|
|
102
|
-
if (prevProps.disabled === true && this.props.disabled === false) {
|
|
103
|
-
this.setState({
|
|
104
|
-
hasBeenDisabledByClick: false
|
|
105
|
-
});
|
|
106
|
-
}
|
|
89
|
+
};
|
|
90
|
+
document.addEventListener('mouseup', mouseupListenerRef.current);
|
|
91
|
+
document.addEventListener('touchend', mouseupListenerRef.current);
|
|
92
|
+
}, [removeMouseupListener]);
|
|
93
|
+
var handleOutsideClick = (0, _react.useCallback)(function (event) {
|
|
94
|
+
if (clickOutsideDisables) {
|
|
95
|
+
setHasBeenDisabledByClick(true);
|
|
107
96
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
value: function componentWillUnmount() {
|
|
111
|
-
this.removeMouseupListener();
|
|
97
|
+
if (onClickOutside) {
|
|
98
|
+
closeOnMouseup ? addMouseupListener() : onClickOutside(event);
|
|
112
99
|
}
|
|
113
|
-
},
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
noIsolation = _this$props3.noIsolation,
|
|
122
|
-
scrollLock = _this$props3.scrollLock,
|
|
123
|
-
gapMode = _this$props3.gapMode,
|
|
124
|
-
rest = (0, _objectWithoutProperties2.default)(_this$props3, _excluded);
|
|
125
|
-
var isDisabled = disabled || this.state.hasBeenDisabledByClick;
|
|
126
|
-
var focusOnProps = _objectSpread(_objectSpread({
|
|
127
|
-
returnFocus: returnFocus,
|
|
128
|
-
noIsolation: noIsolation,
|
|
129
|
-
enabled: !isDisabled
|
|
130
|
-
}, rest), {}, {
|
|
131
|
-
onClickOutside: this.handleOutsideClick,
|
|
132
|
-
/**
|
|
133
|
-
* `scrollLock` should always be unset on FocusOn, as it can prevent scrolling on
|
|
134
|
-
* portals (i.e. popovers, comboboxes, dropdown menus, etc.) within modals & flyouts
|
|
135
|
-
* @see https://github.com/theKashey/react-focus-on/issues/49
|
|
136
|
-
*/
|
|
137
|
-
scrollLock: false
|
|
138
|
-
});
|
|
139
|
-
return (0, _react2.jsx)(_reactFocusOn.FocusOn, focusOnProps, children, !isDisabled && scrollLock && (0, _react2.jsx)(_reactRemoveScrollBar.RemoveScrollBar, {
|
|
140
|
-
gapMode: gapMode
|
|
141
|
-
}));
|
|
100
|
+
}, [clickOutsideDisables, closeOnMouseup, onClickOutside, addMouseupListener]);
|
|
101
|
+
(0, _react.useEffect)(function () {
|
|
102
|
+
setInitialFocus(initialFocus);
|
|
103
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
104
|
+
}, []);
|
|
105
|
+
(0, _services.useUpdateEffect)(function () {
|
|
106
|
+
if (!disabled) {
|
|
107
|
+
setHasBeenDisabledByClick(false);
|
|
142
108
|
}
|
|
143
|
-
}]);
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
109
|
+
}, [disabled]);
|
|
110
|
+
|
|
111
|
+
// listener cleanup on unmount
|
|
112
|
+
(0, _react.useEffect)(function () {
|
|
113
|
+
return function () {
|
|
114
|
+
return removeMouseupListener();
|
|
115
|
+
};
|
|
116
|
+
}, [removeMouseupListener]);
|
|
117
|
+
var focusOnProps = _objectSpread(_objectSpread({
|
|
118
|
+
returnFocus: returnFocus,
|
|
119
|
+
noIsolation: noIsolation,
|
|
120
|
+
initialFocus: initialFocus,
|
|
121
|
+
crossFrame: crossFrame,
|
|
122
|
+
enabled: !isDisabled
|
|
123
|
+
}, rest), {}, {
|
|
124
|
+
onClickOutside: handleOutsideClick,
|
|
125
|
+
/**
|
|
126
|
+
* `scrollLock` should always be unset on FocusOn, as it can prevent scrolling on
|
|
127
|
+
* portals (i.e. popovers, comboboxes, dropdown menus, etc.) within modals & flyouts
|
|
128
|
+
* @see https://github.com/theKashey/react-focus-on/issues/49
|
|
129
|
+
*/
|
|
130
|
+
scrollLock: false
|
|
131
|
+
});
|
|
132
|
+
return (0, _react2.jsx)(_reactFocusOn.FocusOn, focusOnProps, children, !isDisabled && scrollLock && (0, _react2.jsx)(_reactRemoveScrollBar.RemoveScrollBar, {
|
|
133
|
+
gapMode: gapMode
|
|
134
|
+
}));
|
|
135
|
+
};
|
|
@@ -5,47 +5,38 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.useMutationObserver = exports.EuiMutationObserver = void 0;
|
|
8
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
9
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
10
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
11
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
12
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
13
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
14
9
|
var _react = require("react");
|
|
15
|
-
var
|
|
10
|
+
var _use_observer = require("../use_observer");
|
|
16
11
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
17
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
18
|
-
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
|
|
19
|
-
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /*
|
|
12
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /*
|
|
20
13
|
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
21
14
|
* or more contributor license agreements. Licensed under the Elastic License
|
|
22
15
|
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
23
16
|
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
24
17
|
* Side Public License, v 1.
|
|
25
18
|
*/
|
|
26
|
-
var EuiMutationObserver = exports.EuiMutationObserver =
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
return (0, _createClass2.default)(EuiMutationObserver);
|
|
48
|
-
}(_observer.EuiObserver);
|
|
19
|
+
var EuiMutationObserver = exports.EuiMutationObserver = function EuiMutationObserver(_ref) {
|
|
20
|
+
var children = _ref.children,
|
|
21
|
+
onMutation = _ref.onMutation,
|
|
22
|
+
observerOptions = _ref.observerOptions;
|
|
23
|
+
// Store onMutation and observerOptions in refs so the observer callback
|
|
24
|
+
// and setup always use the latest prop values without needing to
|
|
25
|
+
// re-subscribe (which would cause the ref callback to cycle)
|
|
26
|
+
var onMutationRef = (0, _react.useRef)(onMutation);
|
|
27
|
+
onMutationRef.current = onMutation;
|
|
28
|
+
var observerOptionsRef = (0, _react.useRef)(observerOptions);
|
|
29
|
+
observerOptionsRef.current = observerOptions;
|
|
30
|
+
var mutationCallback = (0, _react.useCallback)(function (records, observer) {
|
|
31
|
+
onMutationRef.current(records, observer);
|
|
32
|
+
}, []);
|
|
33
|
+
var beginObserve = (0, _react.useCallback)(function (node) {
|
|
34
|
+
return makeMutationObserver(node, observerOptionsRef.current, mutationCallback);
|
|
35
|
+
}, [mutationCallback]);
|
|
36
|
+
var updateChildNode = (0, _use_observer.useObserver)(beginObserve, 'EuiMutationObserver');
|
|
37
|
+
return children(updateChildNode);
|
|
38
|
+
};
|
|
39
|
+
EuiMutationObserver.displayName = 'EuiMutationObserver';
|
|
49
40
|
var makeMutationObserver = function makeMutationObserver(node, _observerOptions, callback) {
|
|
50
41
|
// The MutationObserver polyfill used in Kibana (for Jest) implements
|
|
51
42
|
// an older spec in which specifying `attributeOldValue` or `attributeFilter`
|
|
@@ -6,67 +6,53 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.useResizeObserver = exports.hasResizeObserver = exports.EuiResizeObserver = void 0;
|
|
8
8
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
12
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
13
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
14
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
9
|
var _react = require("react");
|
|
16
|
-
var
|
|
17
|
-
|
|
18
|
-
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /*
|
|
10
|
+
var _use_observer = require("../use_observer");
|
|
11
|
+
/*
|
|
19
12
|
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
20
13
|
* or more contributor license agreements. Licensed under the Elastic License
|
|
21
14
|
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
22
15
|
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
23
16
|
* Side Public License, v 1.
|
|
24
17
|
*/
|
|
18
|
+
|
|
25
19
|
var hasResizeObserver = exports.hasResizeObserver = typeof window !== 'undefined' && typeof window.ResizeObserver !== 'undefined';
|
|
26
|
-
var EuiResizeObserver = exports.EuiResizeObserver =
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
entry = _ref2[0];
|
|
42
|
-
var _entry$borderBoxSize$ = entry.borderBoxSize[0],
|
|
43
|
-
width = _entry$borderBoxSize$.inlineSize,
|
|
44
|
-
height = _entry$borderBoxSize$.blockSize;
|
|
20
|
+
var EuiResizeObserver = exports.EuiResizeObserver = function EuiResizeObserver(_ref) {
|
|
21
|
+
var children = _ref.children,
|
|
22
|
+
onResize = _ref.onResize;
|
|
23
|
+
var onResizeRef = (0, _react.useRef)(onResize);
|
|
24
|
+
onResizeRef.current = onResize;
|
|
25
|
+
var sizeRef = (0, _react.useRef)({
|
|
26
|
+
height: 0,
|
|
27
|
+
width: 0
|
|
28
|
+
});
|
|
29
|
+
var resizeCallback = (0, _react.useCallback)(function (_ref2) {
|
|
30
|
+
var _ref3 = (0, _slicedToArray2.default)(_ref2, 1),
|
|
31
|
+
entry = _ref3[0];
|
|
32
|
+
var _entry$borderBoxSize$ = entry.borderBoxSize[0],
|
|
33
|
+
width = _entry$borderBoxSize$.inlineSize,
|
|
34
|
+
height = _entry$borderBoxSize$.blockSize;
|
|
45
35
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
(0, _defineProperty2.default)(_this, "beginObserve", function () {
|
|
60
|
-
// The superclass checks that childNode is not null before invoking
|
|
61
|
-
// beginObserve()
|
|
62
|
-
var childNode = _this.childNode;
|
|
63
|
-
_this.observer = makeResizeObserver(childNode, _this.onResize);
|
|
36
|
+
// Check for actual resize event
|
|
37
|
+
if (sizeRef.current.height === height && sizeRef.current.width === width) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
sizeRef.current = {
|
|
41
|
+
height: height,
|
|
42
|
+
width: width
|
|
43
|
+
};
|
|
44
|
+
onResizeRef.current({
|
|
45
|
+
height: height,
|
|
46
|
+
width: width
|
|
64
47
|
});
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
48
|
+
}, []);
|
|
49
|
+
var beginObserve = (0, _react.useCallback)(function (node) {
|
|
50
|
+
return makeResizeObserver(node, resizeCallback);
|
|
51
|
+
}, [resizeCallback]);
|
|
52
|
+
var updateChildNode = (0, _use_observer.useObserver)(beginObserve, 'EuiResizeObserver');
|
|
53
|
+
return children(updateChildNode);
|
|
54
|
+
};
|
|
55
|
+
EuiResizeObserver.displayName = 'EuiResizeObserver';
|
|
70
56
|
var makeResizeObserver = function makeResizeObserver(node, callback) {
|
|
71
57
|
var observer;
|
|
72
58
|
if (hasResizeObserver) {
|
|
@@ -97,9 +83,9 @@ var useResizeObserver = exports.useResizeObserver = function useResizeObserver(c
|
|
|
97
83
|
}, [dimension]);
|
|
98
84
|
(0, _react.useEffect)(function () {
|
|
99
85
|
if (container != null) {
|
|
100
|
-
var observer = makeResizeObserver(container, function (
|
|
101
|
-
var
|
|
102
|
-
entry =
|
|
86
|
+
var observer = makeResizeObserver(container, function (_ref4) {
|
|
87
|
+
var _ref5 = (0, _slicedToArray2.default)(_ref4, 1),
|
|
88
|
+
entry = _ref5[0];
|
|
103
89
|
var _entry$borderBoxSize$2 = entry.borderBoxSize[0],
|
|
104
90
|
inlineSize = _entry$borderBoxSize$2.inlineSize,
|
|
105
91
|
blockSize = _entry$borderBoxSize$2.blockSize;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useObserver = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
/*
|
|
9
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
10
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
11
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
12
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
13
|
+
* Side Public License, v 1.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* A shared custom hook that provides a pattern for observing DOM nodes
|
|
18
|
+
* via browser observer APIs. Used by `EuiResizeObserver` and `EuiMutationObserver`.
|
|
19
|
+
*
|
|
20
|
+
* @param beginObserve - A callback that receives the target DOM element and should
|
|
21
|
+
* create and return the observer instance (e.g., `ResizeObserver`).
|
|
22
|
+
* @param componentName - Optional name used in error messages when no ref is
|
|
23
|
+
* attached on mount, mirroring the guard previously in `EuiObserver`.
|
|
24
|
+
*/
|
|
25
|
+
var useObserver = exports.useObserver = function useObserver(beginObserve) {
|
|
26
|
+
var componentName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'useObserver';
|
|
27
|
+
var childNodeRef = (0, _react.useRef)(null);
|
|
28
|
+
var observerRef = (0, _react.useRef)(null);
|
|
29
|
+
|
|
30
|
+
// Store beginObserve in a ref so the ref callback doesn't cycle
|
|
31
|
+
var beginObserveRef = (0, _react.useRef)(beginObserve);
|
|
32
|
+
beginObserveRef.current = beginObserve;
|
|
33
|
+
|
|
34
|
+
// Store componentName in a ref so the mount-only effect can access the
|
|
35
|
+
// latest value without needing it as a dependency.
|
|
36
|
+
var componentNameRef = (0, _react.useRef)(componentName);
|
|
37
|
+
componentNameRef.current = componentName;
|
|
38
|
+
|
|
39
|
+
// Guard: throw if the ref callback was never called (no element attached),
|
|
40
|
+
// mirroring the check previously in EuiObserver.componentDidMount.
|
|
41
|
+
// Also cleans up the observer on unmount.
|
|
42
|
+
// Empty deps: run only on mount/unmount — componentName is only used for the
|
|
43
|
+
// error message and changing it must not disconnect/re-connect the observer.
|
|
44
|
+
(0, _react.useEffect)(function () {
|
|
45
|
+
if (childNodeRef.current == null) {
|
|
46
|
+
throw new Error("".concat(componentNameRef.current, " did not receive a ref"));
|
|
47
|
+
}
|
|
48
|
+
return function () {
|
|
49
|
+
var _observerRef$current;
|
|
50
|
+
(_observerRef$current = observerRef.current) === null || _observerRef$current === void 0 || _observerRef$current.disconnect();
|
|
51
|
+
};
|
|
52
|
+
}, []);
|
|
53
|
+
var updateChildNode = (0, _react.useCallback)(function (ref) {
|
|
54
|
+
if (childNodeRef.current === ref) return; // node hasn't changed
|
|
55
|
+
|
|
56
|
+
// if there's an existing observer disconnect it
|
|
57
|
+
if (observerRef.current != null) {
|
|
58
|
+
observerRef.current.disconnect();
|
|
59
|
+
observerRef.current = null;
|
|
60
|
+
}
|
|
61
|
+
childNodeRef.current = ref;
|
|
62
|
+
if (childNodeRef.current != null) {
|
|
63
|
+
var _beginObserveRef$curr;
|
|
64
|
+
observerRef.current = (_beginObserveRef$curr = beginObserveRef.current(childNodeRef.current)) !== null && _beginObserveRef$curr !== void 0 ? _beginObserveRef$curr : null;
|
|
65
|
+
}
|
|
66
|
+
}, []);
|
|
67
|
+
return updateChildNode;
|
|
68
|
+
};
|
|
@@ -21,7 +21,7 @@ var _tool_tip_anchor = require("./tool_tip_anchor");
|
|
|
21
21
|
var _tool_tip_arrow = require("./tool_tip_arrow");
|
|
22
22
|
var _tool_tip_manager = require("./tool_tip_manager");
|
|
23
23
|
var _react2 = require("@emotion/react");
|
|
24
|
-
var _excluded = ["children", "className", "anchorClassName", "anchorProps", "content", "title", "display", "repositionOnScroll", "disableScreenReaderOutput", "position", "offset", "id", "onMouseOut"];
|
|
24
|
+
var _excluded = ["children", "className", "anchorClassName", "anchorProps", "content", "title", "display", "repositionOnScroll", "disableScreenReaderOutput", "position", "offset", "id", "onMouseOut", "onBlur"];
|
|
25
25
|
/*
|
|
26
26
|
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
27
27
|
* or more contributor license agreements. Licensed under the Elastic License
|
|
@@ -75,6 +75,7 @@ var EuiToolTip = exports.EuiToolTip = /*#__PURE__*/(0, _react.forwardRef)(functi
|
|
|
75
75
|
offset = _ref.offset,
|
|
76
76
|
idProp = _ref.id,
|
|
77
77
|
onMouseOutProp = _ref.onMouseOut,
|
|
78
|
+
onBlurProp = _ref.onBlur,
|
|
78
79
|
rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
79
80
|
var componentDefaultsContext = (0, _react.useContext)(_component_defaults.EuiComponentDefaultsContext);
|
|
80
81
|
var _useState = (0, _react.useState)(false),
|
|
@@ -221,7 +222,8 @@ var EuiToolTip = exports.EuiToolTip = /*#__PURE__*/(0, _react.forwardRef)(functi
|
|
|
221
222
|
var onBlur = (0, _react.useCallback)(function () {
|
|
222
223
|
setHasFocus(false);
|
|
223
224
|
hideToolTip();
|
|
224
|
-
|
|
225
|
+
onBlurProp === null || onBlurProp === void 0 || onBlurProp();
|
|
226
|
+
}, [hideToolTip, onBlurProp]);
|
|
225
227
|
var onEscapeKey = (0, _react.useCallback)(function (event) {
|
|
226
228
|
if (event.key === _services.keys.ESCAPE) {
|
|
227
229
|
// when the tooltip is only visual, we don't want it to add an additional key stop
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elastic/eui",
|
|
3
3
|
"description": "Elastic UI Component Library",
|
|
4
|
-
"version": "116.
|
|
4
|
+
"version": "116.1.0",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6
6
|
"main": "lib",
|
|
7
7
|
"module": "es",
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
"@cypress/webpack-dev-server": "^1.7.0",
|
|
109
109
|
"@elastic/charts": "^64.1.0",
|
|
110
110
|
"@elastic/datemath": "^5.0.3",
|
|
111
|
-
"@elastic/eslint-plugin-eui": "2.
|
|
111
|
+
"@elastic/eslint-plugin-eui": "2.13.0",
|
|
112
112
|
"@elastic/eui-theme-borealis": "8.0.0",
|
|
113
113
|
"@emotion/babel-preset-css-prop": "^11.11.0",
|
|
114
114
|
"@emotion/cache": "^11.11.0",
|