@elastic/eui 116.0.0 → 116.1.0-snapshot.1779110362015

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.
Files changed (70) hide show
  1. package/es/components/accordion/accordion.js +95 -134
  2. package/es/components/basic_table/basic_table.js +6 -0
  3. package/es/components/basic_table/in_memory_table.js +6 -0
  4. package/es/components/color_picker/color_picker_swatch.js +4 -0
  5. package/es/components/context_menu/context_menu_panel.js +2 -2
  6. package/es/components/copy/copy.js +36 -13
  7. package/es/components/datagrid/body/cell/data_grid_cell_popover.js +10 -7
  8. package/es/components/datagrid/data_grid.styles.js +6 -5
  9. package/es/components/focus_trap/focus_trap.js +110 -177
  10. package/es/components/observer/mutation_observer/mutation_observer.js +32 -35
  11. package/es/components/observer/resize_observer/resize_observer.js +46 -60
  12. package/es/components/observer/use_observer.js +62 -0
  13. package/es/components/table/table_header_cell.js +4 -0
  14. package/es/components/tool_tip/icon_tip.js +4 -0
  15. package/es/components/tool_tip/tool_tip.js +8 -2
  16. package/eui.d.ts +26 -69
  17. package/lib/components/accordion/accordion.js +102 -139
  18. package/lib/components/basic_table/basic_table.js +6 -0
  19. package/lib/components/basic_table/in_memory_table.js +6 -0
  20. package/lib/components/color_picker/color_picker_swatch.js +4 -0
  21. package/lib/components/context_menu/context_menu_panel.js +2 -2
  22. package/lib/components/copy/copy.js +35 -12
  23. package/lib/components/datagrid/body/cell/data_grid_cell_popover.js +10 -7
  24. package/lib/components/datagrid/data_grid.styles.js +6 -5
  25. package/lib/components/focus_trap/focus_trap.js +117 -183
  26. package/lib/components/observer/mutation_observer/mutation_observer.js +32 -34
  27. package/lib/components/observer/resize_observer/resize_observer.js +48 -61
  28. package/lib/components/observer/use_observer.js +68 -0
  29. package/lib/components/table/table_header_cell.js +4 -0
  30. package/lib/components/tool_tip/icon_tip.js +4 -0
  31. package/lib/components/tool_tip/tool_tip.js +8 -2
  32. package/optimize/es/components/accordion/accordion.js +88 -126
  33. package/optimize/es/components/context_menu/context_menu_panel.js +2 -2
  34. package/optimize/es/components/copy/copy.js +36 -13
  35. package/optimize/es/components/datagrid/body/cell/data_grid_cell_popover.js +10 -7
  36. package/optimize/es/components/datagrid/data_grid.styles.js +6 -5
  37. package/optimize/es/components/focus_trap/focus_trap.js +103 -122
  38. package/optimize/es/components/observer/mutation_observer/mutation_observer.js +23 -32
  39. package/optimize/es/components/observer/resize_observer/resize_observer.js +38 -54
  40. package/optimize/es/components/observer/use_observer.js +62 -0
  41. package/optimize/es/components/tool_tip/tool_tip.js +4 -2
  42. package/optimize/lib/components/accordion/accordion.js +90 -127
  43. package/optimize/lib/components/context_menu/context_menu_panel.js +2 -2
  44. package/optimize/lib/components/copy/copy.js +35 -12
  45. package/optimize/lib/components/datagrid/body/cell/data_grid_cell_popover.js +10 -7
  46. package/optimize/lib/components/datagrid/data_grid.styles.js +6 -5
  47. package/optimize/lib/components/focus_trap/focus_trap.js +106 -124
  48. package/optimize/lib/components/observer/mutation_observer/mutation_observer.js +23 -32
  49. package/optimize/lib/components/observer/resize_observer/resize_observer.js +40 -54
  50. package/optimize/lib/components/observer/use_observer.js +68 -0
  51. package/optimize/lib/components/tool_tip/tool_tip.js +4 -2
  52. package/package.json +4 -3
  53. package/test-env/components/accordion/accordion.js +92 -129
  54. package/test-env/components/basic_table/basic_table.js +6 -0
  55. package/test-env/components/basic_table/in_memory_table.js +6 -0
  56. package/test-env/components/color_picker/color_picker_swatch.js +4 -0
  57. package/test-env/components/context_menu/context_menu_panel.js +2 -2
  58. package/test-env/components/copy/copy.js +35 -12
  59. package/test-env/components/datagrid/body/cell/data_grid_cell_popover.js +10 -7
  60. package/test-env/components/datagrid/data_grid.styles.js +6 -5
  61. package/test-env/components/observer/mutation_observer/mutation_observer.js +32 -32
  62. package/test-env/components/observer/use_observer.js +68 -0
  63. package/test-env/components/table/table_header_cell.js +4 -0
  64. package/test-env/components/tool_tip/icon_tip.js +4 -0
  65. package/test-env/components/tool_tip/tool_tip.js +8 -2
  66. package/es/components/observer/observer.js +0 -75
  67. package/lib/components/observer/observer.js +0 -79
  68. package/optimize/es/components/observer/observer.js +0 -69
  69. package/optimize/lib/components/observer/observer.js +0 -74
  70. 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", "clickOutsideDisables", "disabled", "returnFocus", "noIsolation", "scrollLock", "gapMode"];
23
- 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); }
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 EuiFocusTrap = exports.EuiFocusTrap = function EuiFocusTrap(props) {
36
- var propsWithDefaults = (0, _component_defaults.usePropsWithComponentDefaults)('EuiFocusTrap', props);
37
- return (0, _react2.jsx)(EuiFocusTrapClass, propsWithDefaults);
38
- };
39
- var EuiFocusTrapClass = /*#__PURE__*/function (_Component) {
40
- function EuiFocusTrapClass() {
41
- var _this;
42
- (0, _classCallCheck2.default)(this, EuiFocusTrapClass);
43
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
44
- args[_key] = arguments[_key];
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
- _this = _callSuper(this, EuiFocusTrapClass, [].concat(args));
47
- (0, _defineProperty2.default)(_this, "state", {
48
- hasBeenDisabledByClick: false
49
- });
50
- (0, _defineProperty2.default)(_this, "lastInterceptedEvent", null);
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 _this$props$onClickOu, _this$props;
66
- return (_this$props$onClickOu = (_this$props = _this.props).onClickOutside) === null || _this$props$onClickOu === void 0 ? void 0 : _this$props$onClickOu.call(_this$props, e);
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
- (0, _defineProperty2.default)(_this, "addMouseupListener", function () {
70
- document.addEventListener('mouseup', _this.onMouseupOutside);
71
- document.addEventListener('touchend', _this.onMouseupOutside);
72
- });
73
- (0, _defineProperty2.default)(_this, "removeMouseupListener", function () {
74
- document.removeEventListener('mouseup', _this.onMouseupOutside);
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
- key: "componentWillUnmount",
110
- value: function componentWillUnmount() {
111
- this.removeMouseupListener();
97
+ if (onClickOutside) {
98
+ closeOnMouseup ? addMouseupListener() : onClickOutside(event);
112
99
  }
113
- }, {
114
- key: "render",
115
- value: function render() {
116
- var _this$props3 = this.props,
117
- children = _this$props3.children,
118
- clickOutsideDisables = _this$props3.clickOutsideDisables,
119
- disabled = _this$props3.disabled,
120
- returnFocus = _this$props3.returnFocus,
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
- }(_react.Component);
145
- (0, _defineProperty2.default)(EuiFocusTrapClass, "defaultProps", {
146
- clickOutsideDisables: false,
147
- disabled: false,
148
- returnFocus: true,
149
- noIsolation: true,
150
- scrollLock: false,
151
- crossFrame: false,
152
- gapMode: 'padding' // EUI defaults to padding because Kibana's body/layout CSS ignores `margin`
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 _observer = require("../observer");
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 = /*#__PURE__*/function (_EuiObserver) {
27
- function EuiMutationObserver() {
28
- var _this;
29
- (0, _classCallCheck2.default)(this, EuiMutationObserver);
30
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
31
- args[_key] = arguments[_key];
32
- }
33
- _this = _callSuper(this, EuiMutationObserver, [].concat(args));
34
- (0, _defineProperty2.default)(_this, "name", 'EuiMutationObserver');
35
- // the `onMutation` prop may change while the observer is bound, abstracting
36
- // it out into a separate function means the current `onMutation` value is used
37
- (0, _defineProperty2.default)(_this, "onMutation", function (records, observer) {
38
- _this.props.onMutation(records, observer);
39
- });
40
- (0, _defineProperty2.default)(_this, "beginObserve", function () {
41
- var childNode = _this.childNode;
42
- _this.observer = makeMutationObserver(childNode, _this.props.observerOptions, _this.onMutation);
43
- });
44
- return _this;
45
- }
46
- (0, _inherits2.default)(EuiMutationObserver, _EuiObserver);
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 _observer = require("../observer");
17
- 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)); }
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 = /*#__PURE__*/function (_EuiObserver) {
27
- function EuiResizeObserver() {
28
- var _this;
29
- (0, _classCallCheck2.default)(this, EuiResizeObserver);
30
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
31
- args[_key] = arguments[_key];
32
- }
33
- _this = _callSuper(this, EuiResizeObserver, [].concat(args));
34
- (0, _defineProperty2.default)(_this, "name", 'EuiResizeObserver');
35
- (0, _defineProperty2.default)(_this, "state", {
36
- height: 0,
37
- width: 0
38
- });
39
- (0, _defineProperty2.default)(_this, "onResize", function (_ref) {
40
- var _ref2 = (0, _slicedToArray2.default)(_ref, 1),
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
- // Check for actual resize event
47
- if (_this.state.height === height && _this.state.width === width) {
48
- return;
49
- }
50
- _this.props.onResize({
51
- height: height,
52
- width: width
53
- });
54
- _this.setState({
55
- height: height,
56
- width: width
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
- return _this;
66
- }
67
- (0, _inherits2.default)(EuiResizeObserver, _EuiObserver);
68
- return (0, _createClass2.default)(EuiResizeObserver);
69
- }(_observer.EuiObserver);
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 (_ref3) {
101
- var _ref4 = (0, _slicedToArray2.default)(_ref3, 1),
102
- entry = _ref4[0];
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
- }, [hideToolTip]);
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.0.0",
4
+ "version": "116.1.0-snapshot.1779110362015",
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.12.0",
111
+ "@elastic/eslint-plugin-eui": "2.13.0-snapshot.1779110362015",
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",
@@ -273,5 +273,6 @@
273
273
  ],
274
274
  "installConfig": {
275
275
  "hoistingLimits": "workspaces"
276
- }
276
+ },
277
+ "stableVersion": "116.1.0"
277
278
  }