@elastic/eui 116.3.0 → 116.3.1-snapshot.1782148316870
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/avatar/avatar.js +4 -0
- package/es/components/avatar/avatar.styles.js +16 -16
- package/es/components/banner/banner.js +1 -2
- package/es/components/banner/banner.styles.js +1 -1
- package/es/components/basic_table/basic_table.js +35 -5
- package/es/components/basic_table/basic_table.styles.js +19 -1
- package/es/components/basic_table/in_memory_table.js +17 -0
- package/es/components/basic_table/index.js +2 -1
- package/es/components/basic_table/pagination_bar.js +19 -4
- package/es/components/basic_table/pagination_bar.styles.js +21 -0
- package/es/components/basic_table/panel.styles.js +14 -0
- package/es/components/basic_table/use_panel_props.js +28 -0
- package/es/components/date_picker/auto_refresh/refresh_interval.js +176 -229
- package/es/components/date_picker/date_picker.js +1 -1
- package/es/components/flyout/flyout.component.js +10 -6
- package/es/components/flyout/flyout_menu.js +122 -19
- package/es/components/flyout/flyout_menu.styles.js +2 -1
- package/es/components/flyout/manager/actions.js +20 -0
- package/es/components/flyout/manager/flyout_child.js +23 -1
- package/es/components/flyout/manager/flyout_managed.js +65 -19
- package/es/components/flyout/manager/hooks.js +1 -1
- package/es/components/flyout/manager/index.js +2 -2
- package/es/components/flyout/manager/reducer.js +32 -8
- package/es/components/flyout/manager/selectors.js +8 -2
- package/es/components/flyout/manager/store.js +35 -2
- package/es/components/flyout/use_flyout_menu.js +2 -2
- package/es/components/form/field_password/field_password.styles.js +1 -1
- package/es/components/form/field_search/field_search.styles.js +1 -1
- package/es/components/form/form.styles.js +1 -1
- package/es/components/form/form_control_layout/form_control_layout_icons.js +95 -143
- package/es/components/form/select/select.styles.js +1 -1
- package/es/components/form/text_area/text_area.styles.js +1 -1
- package/es/components/form/validatable_control/validatable_control.js +8 -55
- package/es/components/table/mobile/table_sort_mobile.js +64 -103
- package/es/components/table/store/use_unique_column_id.js +25 -0
- package/es/components/table/table_header_cell.js +7 -8
- package/es/components/table/table_header_cell_checkbox.js +5 -6
- package/es/components/tool_tip/tool_tip.js +61 -30
- package/es/components/tool_tip/tool_tip_anchor.js +5 -5
- package/es/components/tool_tip/tool_tip_manager.js +27 -2
- package/eui.d.ts +679 -530
- package/i18ntokens.json +810 -738
- package/lib/components/avatar/avatar.js +4 -0
- package/lib/components/avatar/avatar.styles.js +16 -16
- package/lib/components/banner/banner.js +1 -2
- package/lib/components/banner/banner.styles.js +1 -1
- package/lib/components/basic_table/basic_table.js +34 -4
- package/lib/components/basic_table/basic_table.styles.js +19 -1
- package/lib/components/basic_table/in_memory_table.js +17 -0
- package/lib/components/basic_table/index.js +8 -1
- package/lib/components/basic_table/pagination_bar.js +19 -4
- package/lib/components/basic_table/pagination_bar.styles.js +26 -0
- package/lib/components/basic_table/panel.styles.js +20 -0
- package/lib/components/basic_table/use_panel_props.js +33 -0
- package/lib/components/date_picker/auto_refresh/refresh_interval.js +175 -229
- package/lib/components/date_picker/date_picker.js +1 -1
- package/lib/components/flyout/flyout.component.js +10 -6
- package/lib/components/flyout/flyout_menu.js +120 -19
- package/lib/components/flyout/flyout_menu.styles.js +2 -1
- package/lib/components/flyout/manager/actions.js +21 -1
- package/lib/components/flyout/manager/flyout_child.js +23 -1
- package/lib/components/flyout/manager/flyout_managed.js +41 -17
- package/lib/components/flyout/manager/hooks.js +6 -0
- package/lib/components/flyout/manager/index.js +12 -0
- package/lib/components/flyout/manager/reducer.js +31 -7
- package/lib/components/flyout/manager/selectors.js +9 -3
- package/lib/components/flyout/manager/store.js +34 -1
- package/lib/components/flyout/use_flyout_menu.js +2 -2
- package/lib/components/form/field_password/field_password.styles.js +1 -1
- package/lib/components/form/field_search/field_search.styles.js +1 -1
- package/lib/components/form/form.styles.js +1 -1
- package/lib/components/form/form_control_layout/form_control_layout_icons.js +95 -145
- package/lib/components/form/select/select.styles.js +1 -1
- package/lib/components/form/text_area/text_area.styles.js +1 -1
- package/lib/components/form/validatable_control/validatable_control.js +7 -52
- package/lib/components/table/mobile/table_sort_mobile.js +71 -108
- package/lib/components/table/store/use_unique_column_id.js +34 -0
- package/lib/components/table/table_header_cell.js +7 -8
- package/lib/components/table/table_header_cell_checkbox.js +5 -6
- package/lib/components/tool_tip/tool_tip.js +59 -29
- package/lib/components/tool_tip/tool_tip_anchor.js +5 -5
- package/lib/components/tool_tip/tool_tip_manager.js +27 -2
- package/optimize/es/components/avatar/avatar.js +4 -0
- package/optimize/es/components/avatar/avatar.styles.js +16 -16
- package/optimize/es/components/banner/banner.js +1 -2
- package/optimize/es/components/banner/banner.styles.js +1 -1
- package/optimize/es/components/basic_table/basic_table.js +18 -5
- package/optimize/es/components/basic_table/basic_table.styles.js +19 -1
- package/optimize/es/components/basic_table/index.js +2 -1
- package/optimize/es/components/basic_table/pagination_bar.js +19 -4
- package/optimize/es/components/basic_table/pagination_bar.styles.js +21 -0
- package/optimize/es/components/basic_table/panel.styles.js +14 -0
- package/optimize/es/components/basic_table/use_panel_props.js +28 -0
- package/optimize/es/components/date_picker/auto_refresh/refresh_interval.js +172 -196
- package/optimize/es/components/date_picker/date_picker.js +1 -1
- package/optimize/es/components/flyout/flyout.component.js +10 -6
- package/optimize/es/components/flyout/flyout_menu.js +99 -18
- package/optimize/es/components/flyout/flyout_menu.styles.js +2 -1
- package/optimize/es/components/flyout/manager/actions.js +20 -0
- package/optimize/es/components/flyout/manager/flyout_managed.js +42 -18
- package/optimize/es/components/flyout/manager/hooks.js +1 -1
- package/optimize/es/components/flyout/manager/index.js +2 -2
- package/optimize/es/components/flyout/manager/reducer.js +32 -8
- package/optimize/es/components/flyout/manager/selectors.js +8 -2
- package/optimize/es/components/flyout/manager/store.js +35 -2
- package/optimize/es/components/flyout/use_flyout_menu.js +2 -2
- package/optimize/es/components/form/field_password/field_password.styles.js +1 -1
- package/optimize/es/components/form/field_search/field_search.styles.js +1 -1
- package/optimize/es/components/form/form.styles.js +1 -1
- package/optimize/es/components/form/form_control_layout/form_control_layout_icons.js +96 -115
- package/optimize/es/components/form/select/select.styles.js +1 -1
- package/optimize/es/components/form/text_area/text_area.styles.js +1 -1
- package/optimize/es/components/form/validatable_control/validatable_control.js +7 -48
- package/optimize/es/components/table/mobile/table_sort_mobile.js +59 -82
- package/optimize/es/components/table/store/use_unique_column_id.js +25 -0
- package/optimize/es/components/table/table_header_cell.js +7 -8
- package/optimize/es/components/table/table_header_cell_checkbox.js +5 -6
- package/optimize/es/components/tool_tip/tool_tip.js +58 -30
- package/optimize/es/components/tool_tip/tool_tip_anchor.js +5 -5
- package/optimize/es/components/tool_tip/tool_tip_manager.js +27 -2
- package/optimize/lib/components/avatar/avatar.js +4 -0
- package/optimize/lib/components/avatar/avatar.styles.js +16 -16
- package/optimize/lib/components/banner/banner.js +1 -2
- package/optimize/lib/components/banner/banner.styles.js +1 -1
- package/optimize/lib/components/basic_table/basic_table.js +17 -4
- package/optimize/lib/components/basic_table/basic_table.styles.js +19 -1
- package/optimize/lib/components/basic_table/index.js +8 -1
- package/optimize/lib/components/basic_table/pagination_bar.js +19 -4
- package/optimize/lib/components/basic_table/pagination_bar.styles.js +26 -0
- package/optimize/lib/components/basic_table/panel.styles.js +20 -0
- package/optimize/lib/components/basic_table/use_panel_props.js +33 -0
- package/optimize/lib/components/date_picker/auto_refresh/refresh_interval.js +170 -194
- package/optimize/lib/components/date_picker/date_picker.js +1 -1
- package/optimize/lib/components/flyout/flyout.component.js +10 -6
- package/optimize/lib/components/flyout/flyout_menu.js +98 -18
- package/optimize/lib/components/flyout/flyout_menu.styles.js +2 -1
- package/optimize/lib/components/flyout/manager/actions.js +21 -1
- package/optimize/lib/components/flyout/manager/flyout_managed.js +41 -17
- package/optimize/lib/components/flyout/manager/hooks.js +6 -0
- package/optimize/lib/components/flyout/manager/index.js +12 -0
- package/optimize/lib/components/flyout/manager/reducer.js +31 -7
- package/optimize/lib/components/flyout/manager/selectors.js +9 -3
- package/optimize/lib/components/flyout/manager/store.js +34 -1
- package/optimize/lib/components/flyout/use_flyout_menu.js +2 -2
- package/optimize/lib/components/form/field_password/field_password.styles.js +1 -1
- package/optimize/lib/components/form/field_search/field_search.styles.js +1 -1
- package/optimize/lib/components/form/form.styles.js +1 -1
- package/optimize/lib/components/form/form_control_layout/form_control_layout_icons.js +96 -117
- package/optimize/lib/components/form/select/select.styles.js +1 -1
- package/optimize/lib/components/form/text_area/text_area.styles.js +1 -1
- package/optimize/lib/components/form/validatable_control/validatable_control.js +6 -49
- package/optimize/lib/components/table/mobile/table_sort_mobile.js +61 -83
- package/optimize/lib/components/table/store/use_unique_column_id.js +34 -0
- package/optimize/lib/components/table/table_header_cell.js +7 -8
- package/optimize/lib/components/table/table_header_cell_checkbox.js +5 -6
- package/optimize/lib/components/tool_tip/tool_tip.js +57 -29
- package/optimize/lib/components/tool_tip/tool_tip_anchor.js +5 -5
- package/optimize/lib/components/tool_tip/tool_tip_manager.js +27 -2
- package/package.json +8 -5
- package/test-env/components/avatar/avatar.js +4 -0
- package/test-env/components/avatar/avatar.styles.js +16 -16
- package/test-env/components/banner/banner.js +1 -2
- package/test-env/components/banner/banner.styles.js +1 -1
- package/test-env/components/basic_table/basic_table.js +34 -4
- package/test-env/components/basic_table/basic_table.styles.js +19 -1
- package/test-env/components/basic_table/in_memory_table.js +17 -0
- package/test-env/components/basic_table/index.js +8 -1
- package/test-env/components/basic_table/pagination_bar.js +19 -4
- package/test-env/components/basic_table/pagination_bar.styles.js +26 -0
- package/test-env/components/basic_table/panel.styles.js +20 -0
- package/test-env/components/basic_table/use_panel_props.js +33 -0
- package/test-env/components/date_picker/auto_refresh/refresh_interval.js +170 -220
- package/test-env/components/date_picker/date_picker.js +1 -1
- package/test-env/components/flyout/flyout.component.js +10 -6
- package/test-env/components/flyout/flyout_menu.js +121 -19
- package/test-env/components/flyout/flyout_menu.styles.js +2 -1
- package/test-env/components/flyout/manager/actions.js +21 -1
- package/test-env/components/flyout/manager/flyout_child.js +23 -1
- package/test-env/components/flyout/manager/flyout_managed.js +41 -17
- package/test-env/components/flyout/manager/hooks.js +6 -0
- package/test-env/components/flyout/manager/index.js +12 -0
- package/test-env/components/flyout/manager/reducer.js +31 -7
- package/test-env/components/flyout/manager/selectors.js +9 -3
- package/test-env/components/flyout/manager/store.js +34 -1
- package/test-env/components/flyout/use_flyout_menu.js +2 -2
- package/test-env/components/form/field_password/field_password.styles.js +1 -1
- package/test-env/components/form/field_search/field_search.styles.js +1 -1
- package/test-env/components/form/form.styles.js +1 -1
- package/test-env/components/form/form_control_layout/form_control_layout_icons.js +95 -139
- package/test-env/components/form/select/select.styles.js +1 -1
- package/test-env/components/form/text_area/text_area.styles.js +1 -1
- package/test-env/components/form/validatable_control/validatable_control.js +6 -48
- package/test-env/components/table/mobile/table_sort_mobile.js +61 -98
- package/test-env/components/table/store/use_unique_column_id.js +34 -0
- package/test-env/components/table/table_header_cell.js +7 -8
- package/test-env/components/table/table_header_cell_checkbox.js +5 -6
- package/test-env/components/tool_tip/tool_tip.js +57 -29
- package/test-env/components/tool_tip/tool_tip_anchor.js +5 -5
- package/test-env/components/tool_tip/tool_tip_manager.js +27 -2
|
@@ -1,21 +1,13 @@
|
|
|
1
1
|
var _excluded = ["className", "anchorPosition", "items"];
|
|
2
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
3
2
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
3
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
4
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
5
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
6
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
7
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
8
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
4
9
|
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
5
10
|
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.indexOf(n) >= 0) continue; t[n] = r[n]; } return t; }
|
|
6
|
-
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
|
7
|
-
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
|
|
8
|
-
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
|
9
|
-
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
10
|
-
function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }
|
|
11
|
-
function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
|
|
12
|
-
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
13
|
-
function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
|
|
14
|
-
function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
|
|
15
|
-
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
|
|
16
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
17
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
18
|
-
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
19
11
|
/*
|
|
20
12
|
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
21
13
|
* or more contributor license agreements. Licensed under the Elastic License
|
|
@@ -24,8 +16,7 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
|
|
|
24
16
|
* Side Public License, v 1.
|
|
25
17
|
*/
|
|
26
18
|
|
|
27
|
-
import React, {
|
|
28
|
-
import PropTypes from "prop-types";
|
|
19
|
+
import React, { useState } from 'react';
|
|
29
20
|
import classNames from 'classnames';
|
|
30
21
|
import { EuiButtonEmpty } from '../../button/button_empty';
|
|
31
22
|
import { EuiPopover } from '../../popover';
|
|
@@ -33,91 +24,61 @@ import { EuiContextMenuPanel } from '../../context_menu';
|
|
|
33
24
|
import { EuiI18n } from '../../i18n';
|
|
34
25
|
import { EuiTableSortMobileItem } from './table_sort_mobile_item';
|
|
35
26
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
27
|
+
// Aligns the button to the right even when it's the only element present
|
|
28
|
+
var euiTableSortMobileStyles = {
|
|
29
|
+
marginInlineStart: 'auto',
|
|
30
|
+
label: 'euiTableSortMobile'
|
|
31
|
+
};
|
|
32
|
+
export var EuiTableSortMobile = function EuiTableSortMobile(_ref) {
|
|
33
|
+
var className = _ref.className,
|
|
34
|
+
anchorPosition = _ref.anchorPosition,
|
|
35
|
+
items = _ref.items,
|
|
36
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
37
|
+
var _useState = useState(false),
|
|
38
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
39
|
+
isPopoverOpen = _useState2[0],
|
|
40
|
+
setIsPopoverOpen = _useState2[1];
|
|
41
|
+
var classes = classNames('euiTableSortMobile', className);
|
|
42
|
+
var onButtonClick = function onButtonClick() {
|
|
43
|
+
setIsPopoverOpen(function (isOpen) {
|
|
44
|
+
return !isOpen;
|
|
46
45
|
});
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
isOpen: this.state.isPopoverOpen,
|
|
87
|
-
closePopover: this.closePopover,
|
|
88
|
-
anchorPosition: anchorPosition || 'downRight',
|
|
89
|
-
panelPaddingSize: "none"
|
|
90
|
-
}, rest), ___EmotionJSX(EuiContextMenuPanel, {
|
|
91
|
-
style: {
|
|
92
|
-
minWidth: 200
|
|
93
|
-
},
|
|
94
|
-
items: items && items.length ? items.map(function (item) {
|
|
95
|
-
return ___EmotionJSX(EuiTableSortMobileItem, {
|
|
96
|
-
key: item.key,
|
|
97
|
-
onSort: item.onSort,
|
|
98
|
-
isSorted: item.isSorted,
|
|
99
|
-
isSortAscending: item.isSortAscending
|
|
100
|
-
}, item.name);
|
|
101
|
-
}) : undefined
|
|
102
|
-
}));
|
|
103
|
-
return ___EmotionJSX("div", {
|
|
104
|
-
className: classes,
|
|
105
|
-
css: this.euiTableSortMobileStyles
|
|
106
|
-
}, mobileSortPopover);
|
|
107
|
-
}
|
|
108
|
-
}]);
|
|
109
|
-
}(Component);
|
|
110
|
-
EuiTableSortMobile.propTypes = {
|
|
111
|
-
anchorPosition: PropTypes.any,
|
|
112
|
-
items: PropTypes.arrayOf(PropTypes.shape({
|
|
113
|
-
name: PropTypes.node.isRequired,
|
|
114
|
-
key: PropTypes.any,
|
|
115
|
-
onSort: PropTypes.func,
|
|
116
|
-
isSorted: PropTypes.bool,
|
|
117
|
-
isSortAscending: PropTypes.bool
|
|
118
|
-
}).isRequired),
|
|
119
|
-
className: PropTypes.string,
|
|
120
|
-
"aria-label": PropTypes.string,
|
|
121
|
-
"data-test-subj": PropTypes.string,
|
|
122
|
-
css: PropTypes.any
|
|
123
|
-
};
|
|
46
|
+
};
|
|
47
|
+
var closePopover = function closePopover() {
|
|
48
|
+
setIsPopoverOpen(false);
|
|
49
|
+
};
|
|
50
|
+
var mobileSortButton = ___EmotionJSX(EuiButtonEmpty, {
|
|
51
|
+
iconType: "chevronSingleDown",
|
|
52
|
+
iconSide: "right",
|
|
53
|
+
onClick: onButtonClick,
|
|
54
|
+
flush: "right",
|
|
55
|
+
size: "xs"
|
|
56
|
+
}, ___EmotionJSX(EuiI18n, {
|
|
57
|
+
token: "euiTableSortMobile.sorting",
|
|
58
|
+
default: "Sorting"
|
|
59
|
+
}));
|
|
60
|
+
var mobileSortPopover = ___EmotionJSX(EuiPopover, _extends({
|
|
61
|
+
button: mobileSortButton,
|
|
62
|
+
isOpen: isPopoverOpen,
|
|
63
|
+
closePopover: closePopover,
|
|
64
|
+
anchorPosition: anchorPosition || 'downRight',
|
|
65
|
+
panelPaddingSize: "none"
|
|
66
|
+
}, rest), ___EmotionJSX(EuiContextMenuPanel, {
|
|
67
|
+
style: {
|
|
68
|
+
minWidth: 200
|
|
69
|
+
},
|
|
70
|
+
items: items !== null && items !== void 0 && items.length ? items.map(function (item) {
|
|
71
|
+
return ___EmotionJSX(EuiTableSortMobileItem, {
|
|
72
|
+
key: item.key,
|
|
73
|
+
onSort: item.onSort,
|
|
74
|
+
isSorted: item.isSorted,
|
|
75
|
+
isSortAscending: item.isSortAscending
|
|
76
|
+
}, item.name);
|
|
77
|
+
}) : undefined
|
|
78
|
+
}));
|
|
79
|
+
return ___EmotionJSX("div", {
|
|
80
|
+
className: classes,
|
|
81
|
+
css: euiTableSortMobileStyles
|
|
82
|
+
}, mobileSortPopover);
|
|
83
|
+
};
|
|
84
|
+
EuiTableSortMobile.displayName = 'EuiTableSortMobile';
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
3
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
4
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
5
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
6
|
+
* Side Public License, v 1.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import React, { useId, useRef } from 'react';
|
|
10
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
11
|
+
var useEuiTableStoreUniqueColumnIdFallback = function useEuiTableStoreUniqueColumnIdFallback() {
|
|
12
|
+
var ref = useRef(uuidv4());
|
|
13
|
+
return ref.current;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Returns a stable unique column ID to be used when registering columns.
|
|
18
|
+
* It uses `React.useId()` when available and falls back to UUID v4 on React 17.
|
|
19
|
+
*
|
|
20
|
+
* This is needed so that static `uuid` mocks don't break column registration
|
|
21
|
+
* (at least in React 18+; in older versions this function would need
|
|
22
|
+
* to be mocked to return something unique, but stable).
|
|
23
|
+
* @internal
|
|
24
|
+
*/
|
|
25
|
+
export var useEuiTableStoreUniqueColumnId = 'useId' in React ? useId : useEuiTableStoreUniqueColumnIdFallback;
|
|
@@ -20,7 +20,6 @@ function _extends() { return _extends = Object.assign ? Object.assign.bind() : f
|
|
|
20
20
|
import React, { useEffect, useCallback, useRef } from 'react';
|
|
21
21
|
import classNames from 'classnames';
|
|
22
22
|
import { useEuiMemoizedStyles, LEFT_ALIGNMENT } from '../../services';
|
|
23
|
-
import { useGeneratedHtmlId } from '../../services/accessibility/html_id_generator';
|
|
24
23
|
import { EuiI18n } from '../i18n';
|
|
25
24
|
import { EuiScreenReaderOnly } from '../accessibility';
|
|
26
25
|
import { EuiIcon } from '../icon';
|
|
@@ -32,6 +31,7 @@ import { EuiTableCellContent } from './_table_cell_content';
|
|
|
32
31
|
import { euiTableHeaderFooterCellStyles, _useEuiTableStickyCellStyles } from './table_cells_shared.styles';
|
|
33
32
|
import { useEuiTableColumnDataStore } from './store/provider';
|
|
34
33
|
import { useEuiTableWithinStickyHeader } from './sticky_header';
|
|
34
|
+
import { useEuiTableStoreUniqueColumnId } from './store/use_unique_column_id';
|
|
35
35
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
|
36
36
|
var CellContents = function CellContents(_ref) {
|
|
37
37
|
var className = _ref.className,
|
|
@@ -109,7 +109,7 @@ export var EuiTableHeaderCell = function EuiTableHeaderCell(_ref2) {
|
|
|
109
109
|
sticky = _ref2.sticky,
|
|
110
110
|
rest = _objectWithoutProperties(_ref2, _excluded);
|
|
111
111
|
var selfRef = useRef(null);
|
|
112
|
-
var
|
|
112
|
+
var storeCellId = useEuiTableStoreUniqueColumnId();
|
|
113
113
|
var store = useEuiTableColumnDataStore();
|
|
114
114
|
var isWithinStickyHeader = useEuiTableWithinStickyHeader();
|
|
115
115
|
var styles = useEuiMemoizedStyles(euiTableHeaderFooterCellStyles);
|
|
@@ -174,15 +174,15 @@ export var EuiTableHeaderCell = function EuiTableHeaderCell(_ref2) {
|
|
|
174
174
|
if (!entry) {
|
|
175
175
|
return;
|
|
176
176
|
}
|
|
177
|
-
store.updateColumnWidth(
|
|
178
|
-
}, [store,
|
|
177
|
+
store.updateColumnWidth(storeCellId, entry.contentRect.width);
|
|
178
|
+
}, [store, storeCellId]);
|
|
179
179
|
useEffect(function () {
|
|
180
180
|
// Don't register the column inside the sticky header as the original
|
|
181
181
|
// column is already registered. This would cause an infinite loop.
|
|
182
182
|
if (isWithinStickyHeader || !selfRef.current || !renderHeaderCellRef.current) {
|
|
183
183
|
return;
|
|
184
184
|
}
|
|
185
|
-
var unregisterColumn = store.registerColumn(
|
|
185
|
+
var unregisterColumn = store.registerColumn(storeCellId, {
|
|
186
186
|
renderHeaderCellRef: renderHeaderCellRef,
|
|
187
187
|
// getBoundingClientRect is not the cheapest, but we call it only once
|
|
188
188
|
currentWidth: selfRef.current.getBoundingClientRect().width
|
|
@@ -204,8 +204,7 @@ export var EuiTableHeaderCell = function EuiTableHeaderCell(_ref2) {
|
|
|
204
204
|
unregisterColumn();
|
|
205
205
|
(_resizeObserver = resizeObserver) === null || _resizeObserver === void 0 || _resizeObserver.disconnect();
|
|
206
206
|
};
|
|
207
|
-
|
|
208
|
-
}, [store, internalCellId, isWithinStickyHeader]);
|
|
207
|
+
}, [store, isWithinStickyHeader, handleResize, storeCellId]);
|
|
209
208
|
|
|
210
209
|
// Notify the store on every render so the sticky header stays in sync.
|
|
211
210
|
// React's reconciliation will efficiently handle any duplicate renders.
|
|
@@ -220,7 +219,7 @@ export var EuiTableHeaderCell = function EuiTableHeaderCell(_ref2) {
|
|
|
220
219
|
if (!selfRef.current) {
|
|
221
220
|
return;
|
|
222
221
|
}
|
|
223
|
-
store.updateColumn(
|
|
222
|
+
store.updateColumn(storeCellId, {
|
|
224
223
|
renderHeaderCellRef: renderHeaderCellRef
|
|
225
224
|
});
|
|
226
225
|
});
|
|
@@ -14,11 +14,11 @@ import React, { useEffect, useRef } from 'react';
|
|
|
14
14
|
import PropTypes from "prop-types";
|
|
15
15
|
import classNames from 'classnames';
|
|
16
16
|
import { useEuiMemoizedStyles } from '../../services';
|
|
17
|
-
import { useGeneratedHtmlId } from '../../services/accessibility/html_id_generator';
|
|
18
17
|
import { resolveWidthPropsAsStyle } from './utils';
|
|
19
18
|
import { euiTableCellCheckboxStyles } from './table_cells_shared.styles';
|
|
20
19
|
import { useEuiTableColumnDataStore } from './store/provider';
|
|
21
20
|
import { useEuiTableWithinStickyHeader } from './sticky_header';
|
|
21
|
+
import { useEuiTableStoreUniqueColumnId } from './store/use_unique_column_id';
|
|
22
22
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
|
23
23
|
export var EuiTableHeaderCellCheckbox = function EuiTableHeaderCellCheckbox(props) {
|
|
24
24
|
var children = props.children,
|
|
@@ -31,7 +31,7 @@ export var EuiTableHeaderCellCheckbox = function EuiTableHeaderCellCheckbox(prop
|
|
|
31
31
|
maxWidth = props.maxWidth,
|
|
32
32
|
append = props.append,
|
|
33
33
|
rest = _objectWithoutProperties(props, _excluded);
|
|
34
|
-
var
|
|
34
|
+
var storeCellId = useEuiTableStoreUniqueColumnId();
|
|
35
35
|
var store = useEuiTableColumnDataStore();
|
|
36
36
|
var isWithinStickyHeader = useEuiTableWithinStickyHeader();
|
|
37
37
|
var styles = useEuiMemoizedStyles(euiTableCellCheckboxStyles);
|
|
@@ -58,21 +58,20 @@ export var EuiTableHeaderCellCheckbox = function EuiTableHeaderCellCheckbox(prop
|
|
|
58
58
|
if (isWithinStickyHeader) {
|
|
59
59
|
return;
|
|
60
60
|
}
|
|
61
|
-
var unregisterColumn = store.registerColumn(
|
|
61
|
+
var unregisterColumn = store.registerColumn(storeCellId, {
|
|
62
62
|
renderHeaderCellRef: renderHeaderCellRef
|
|
63
63
|
});
|
|
64
64
|
return function () {
|
|
65
65
|
unregisterColumn();
|
|
66
66
|
};
|
|
67
|
-
|
|
68
|
-
}, [store, internalCellId, isWithinStickyHeader]);
|
|
67
|
+
}, [store, isWithinStickyHeader, storeCellId]);
|
|
69
68
|
useEffect(function () {
|
|
70
69
|
// Notify the store on every render so the sticky header stays in sync.
|
|
71
70
|
// React's reconciliation will efficiently handle any duplicate renders.
|
|
72
71
|
if (isWithinStickyHeader) {
|
|
73
72
|
return;
|
|
74
73
|
}
|
|
75
|
-
store.updateColumn(
|
|
74
|
+
store.updateColumn(storeCellId, {
|
|
76
75
|
renderHeaderCellRef: renderHeaderCellRef
|
|
77
76
|
});
|
|
78
77
|
});
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
1
2
|
var _excluded = ["children", "className", "anchorClassName", "anchorProps", "content", "title", "display", "repositionOnScroll", "disableScreenReaderOutput", "position", "offset", "id", "onMouseOut", "onBlur"];
|
|
3
|
+
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; }
|
|
4
|
+
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) { _defineProperty(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; }
|
|
5
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
6
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
7
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
2
8
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
3
9
|
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
4
10
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
@@ -19,7 +25,7 @@ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t =
|
|
|
19
25
|
import React, { forwardRef, useCallback, useContext, useEffect, useImperativeHandle, useRef, useState } from 'react';
|
|
20
26
|
import PropTypes from "prop-types";
|
|
21
27
|
import classNames from 'classnames';
|
|
22
|
-
import { findPopoverPosition,
|
|
28
|
+
import { findPopoverPosition, useGeneratedHtmlId, keys } from '../../services';
|
|
23
29
|
import { getRepositionOnScroll } from '../../services/popover/reposition_on_scroll';
|
|
24
30
|
import { EuiResizeObserver } from '../observer/resize_observer';
|
|
25
31
|
import { EuiPortal } from '../portal';
|
|
@@ -82,22 +88,26 @@ export var EuiToolTip = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
82
88
|
setVisible = _useState2[1];
|
|
83
89
|
var _useState3 = useState(false),
|
|
84
90
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
var _useState5 = useState(
|
|
91
|
+
skipAnimation = _useState4[0],
|
|
92
|
+
setSkipAnimation = _useState4[1];
|
|
93
|
+
var _useState5 = useState(false),
|
|
88
94
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
var _useState7 = useState(
|
|
95
|
+
hasFocus = _useState6[0],
|
|
96
|
+
setHasFocus = _useState6[1];
|
|
97
|
+
var _useState7 = useState(positionProp),
|
|
92
98
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
var _useState9 = useState(
|
|
99
|
+
calculatedPosition = _useState8[0],
|
|
100
|
+
setCalculatedPosition = _useState8[1];
|
|
101
|
+
var _useState9 = useState(DEFAULT_TOOLTIP_STYLES),
|
|
96
102
|
_useState10 = _slicedToArray(_useState9, 2),
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
var
|
|
100
|
-
|
|
103
|
+
toolTipStyles = _useState10[0],
|
|
104
|
+
setToolTipStyles = _useState10[1];
|
|
105
|
+
var _useState11 = useState(undefined),
|
|
106
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
107
|
+
arrowStyles = _useState12[0],
|
|
108
|
+
setArrowStyles = _useState12[1];
|
|
109
|
+
var generatedId = useGeneratedHtmlId();
|
|
110
|
+
var id = idProp !== null && idProp !== void 0 ? idProp : generatedId;
|
|
101
111
|
var anchorRef = useRef(null);
|
|
102
112
|
var popoverRef = useRef(null);
|
|
103
113
|
var positionToolTip = useCallback(function () {
|
|
@@ -149,10 +159,19 @@ export var EuiToolTip = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
149
159
|
setArrowStyles(undefined);
|
|
150
160
|
toolTipManager.deregisterToolTip(hideToolTip);
|
|
151
161
|
}, []);
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Show the tooltip.
|
|
165
|
+
*
|
|
166
|
+
* Uses the tooltip manager's `skipAnimation` signal to optionally skip the entry
|
|
167
|
+
* animation when another tooltip is already open or was just closed.
|
|
168
|
+
*/
|
|
152
169
|
var showToolTip = useCallback(function () {
|
|
153
170
|
if (!content && !title) return;
|
|
171
|
+
var result = toolTipManager.registerTooltip(hideToolTip);
|
|
172
|
+
if (!result) return;
|
|
173
|
+
setSkipAnimation(result.skipAnimation);
|
|
154
174
|
setVisible(true);
|
|
155
|
-
toolTipManager.registerTooltip(hideToolTip);
|
|
156
175
|
}, [content, title, hideToolTip]);
|
|
157
176
|
useImperativeHandle(ref, function () {
|
|
158
177
|
return {
|
|
@@ -232,18 +251,24 @@ export var EuiToolTip = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
232
251
|
hideToolTip();
|
|
233
252
|
}
|
|
234
253
|
}, [disableScreenReaderOutput, visible, hideToolTip]);
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* Show the tooltip on enter.
|
|
257
|
+
*/
|
|
258
|
+
var onMouseEnter = useCallback(function (event) {
|
|
259
|
+
var _anchorProps$onMouseE;
|
|
260
|
+
showToolTip();
|
|
261
|
+
anchorProps === null || anchorProps === void 0 || (_anchorProps$onMouseE = anchorProps.onMouseEnter) === null || _anchorProps$onMouseE === void 0 || _anchorProps$onMouseE.call(anchorProps, event);
|
|
262
|
+
}, [showToolTip, anchorProps === null || anchorProps === void 0 ? void 0 : anchorProps.onMouseEnter]);
|
|
263
|
+
|
|
264
|
+
/**
|
|
265
|
+
* Hide the tooltip if the mouse is not over the trigger.
|
|
266
|
+
*/
|
|
267
|
+
var onMouseLeave = useCallback(function (event) {
|
|
268
|
+
var _anchorProps$onMouseL;
|
|
269
|
+
if (!hasFocus) hideToolTip();
|
|
270
|
+
anchorProps === null || anchorProps === void 0 || (_anchorProps$onMouseL = anchorProps.onMouseLeave) === null || _anchorProps$onMouseL === void 0 || _anchorProps$onMouseL.call(anchorProps, event);
|
|
271
|
+
}, [hasFocus, hideToolTip, anchorProps === null || anchorProps === void 0 ? void 0 : anchorProps.onMouseLeave]);
|
|
247
272
|
var classes = classNames('euiToolTip', className);
|
|
248
273
|
var anchorClasses = classNames(anchorClassName, anchorProps === null || anchorProps === void 0 ? void 0 : anchorProps.className);
|
|
249
274
|
return ___EmotionJSX(React.Fragment, null, ___EmotionJSX(EuiToolTipAnchor, _extends({}, anchorProps, {
|
|
@@ -251,8 +276,9 @@ export var EuiToolTip = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
251
276
|
onBlur: onBlur,
|
|
252
277
|
onFocus: onFocus,
|
|
253
278
|
onKeyDown: onEscapeKey,
|
|
254
|
-
|
|
255
|
-
|
|
279
|
+
onMouseEnter: onMouseEnter,
|
|
280
|
+
onMouseLeave: onMouseLeave,
|
|
281
|
+
onMouseOut: onMouseOutProp
|
|
256
282
|
// `id` defines if the trigger and tooltip are automatically linked via `aria-describedby`.
|
|
257
283
|
,
|
|
258
284
|
id: !disableScreenReaderOutput ? id : undefined,
|
|
@@ -261,7 +287,12 @@ export var EuiToolTip = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
261
287
|
isVisible: visible
|
|
262
288
|
}), children), visible && (content || title) && ___EmotionJSX(EuiPortal, null, ___EmotionJSX(EuiToolTipPopover, _extends({
|
|
263
289
|
className: classes,
|
|
264
|
-
style: toolTipStyles,
|
|
290
|
+
style: _objectSpread(_objectSpread({}, toolTipStyles), {}, {
|
|
291
|
+
// Inline `animation: none` overrides the keyframes fade-in
|
|
292
|
+
// shorthand on the base `.euiToolTip` class, so a tooltip
|
|
293
|
+
// shown right after another closes appears instantly.
|
|
294
|
+
animation: skipAnimation ? 'none' : undefined
|
|
295
|
+
}),
|
|
265
296
|
positionToolTip: positionToolTip,
|
|
266
297
|
popoverRef: setPopoverRef,
|
|
267
298
|
title: title,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var _excluded = ["onBlur", "onFocus", "
|
|
1
|
+
var _excluded = ["onBlur", "onFocus", "onMouseEnter", "onMouseLeave", "id", "className", "children", "display", "isVisible"];
|
|
2
2
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
3
3
|
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
4
4
|
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.indexOf(n) >= 0) continue; t[n] = r[n]; } return t; }
|
|
@@ -19,8 +19,8 @@ import { jsx as ___EmotionJSX } from "@emotion/react";
|
|
|
19
19
|
export var EuiToolTipAnchor = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
20
20
|
var _onBlur = _ref.onBlur,
|
|
21
21
|
_onFocus = _ref.onFocus,
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
onMouseEnter = _ref.onMouseEnter,
|
|
23
|
+
onMouseLeave = _ref.onMouseLeave,
|
|
24
24
|
id = _ref.id,
|
|
25
25
|
className = _ref.className,
|
|
26
26
|
children = _ref.children,
|
|
@@ -44,8 +44,8 @@ export var EuiToolTipAnchor = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
44
44
|
id: anchorId
|
|
45
45
|
}, rest, {
|
|
46
46
|
className: classes,
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
onMouseEnter: onMouseEnter,
|
|
48
|
+
onMouseLeave: onMouseLeave
|
|
49
49
|
}), /*#__PURE__*/cloneElement(children, {
|
|
50
50
|
onFocus: function onFocus(e) {
|
|
51
51
|
_onFocus(e);
|
|
@@ -12,29 +12,54 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
|
|
|
12
12
|
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
13
13
|
* Side Public License, v 1.
|
|
14
14
|
*/
|
|
15
|
+
|
|
15
16
|
/**
|
|
16
17
|
* Manager utility that ensures only one tooltip is visible at a time
|
|
18
|
+
* and lets the next tooltip to open skip its entry animation if another was
|
|
19
|
+
* just opened or just closed.
|
|
17
20
|
*
|
|
18
21
|
* UX rationale (primarily for mouse-only users):
|
|
19
22
|
* @see https://github.com/elastic/kibana/issues/144482
|
|
20
23
|
* @see https://github.com/elastic/eui/issues/5883
|
|
21
24
|
*/
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Time window in ms after a tooltip closes during which the next one to open
|
|
28
|
+
* skips its entry animation.
|
|
29
|
+
*/
|
|
30
|
+
var SKIP_ANIMATION_WINDOW = 300;
|
|
22
31
|
var ToolTipManager = /*#__PURE__*/_createClass(function ToolTipManager() {
|
|
23
32
|
var _this = this;
|
|
24
33
|
_classCallCheck(this, ToolTipManager);
|
|
25
34
|
// We use a set instead of a single var just in case
|
|
26
35
|
// multiple tooltips are registered via async shenanigans
|
|
27
36
|
_defineProperty(this, "toolTipsToHide", new Set());
|
|
37
|
+
// Timestamp of the last hide; `null` means no tooltip has closed yet.
|
|
38
|
+
_defineProperty(this, "lastHiddenAt", null);
|
|
28
39
|
_defineProperty(this, "registerTooltip", function (hideCallback) {
|
|
29
|
-
if (_this.toolTipsToHide.has(hideCallback)) return;
|
|
40
|
+
if (_this.toolTipsToHide.has(hideCallback)) return null;
|
|
41
|
+
var hadOpen = _this.toolTipsToHide.size > 0;
|
|
42
|
+
var recentlyClosed = _this.lastHiddenAt !== null && Date.now() - _this.lastHiddenAt < SKIP_ANIMATION_WINDOW;
|
|
30
43
|
_this.toolTipsToHide.forEach(function (hide) {
|
|
31
44
|
return hide();
|
|
32
45
|
});
|
|
33
46
|
_this.toolTipsToHide.clear();
|
|
34
47
|
_this.toolTipsToHide.add(hideCallback);
|
|
48
|
+
return {
|
|
49
|
+
skipAnimation: hadOpen || recentlyClosed
|
|
50
|
+
};
|
|
35
51
|
});
|
|
36
52
|
_defineProperty(this, "deregisterToolTip", function (hideCallback) {
|
|
37
|
-
_this.toolTipsToHide.delete(hideCallback);
|
|
53
|
+
if (_this.toolTipsToHide.delete(hideCallback)) _this.lastHiddenAt = Date.now();
|
|
54
|
+
});
|
|
55
|
+
/**
|
|
56
|
+
* Resets all internal state. Primarily intended for tests, so that a
|
|
57
|
+
* tooltip shown in one test doesn't leak into the next (the manager is a
|
|
58
|
+
* module-level singleton).
|
|
59
|
+
*/
|
|
60
|
+
_defineProperty(this, "reset", function () {
|
|
61
|
+
_this.toolTipsToHide.clear();
|
|
62
|
+
_this.lastHiddenAt = null;
|
|
38
63
|
});
|
|
39
64
|
});
|
|
40
65
|
export var toolTipManager = new ToolTipManager();
|