@elastic/eui 114.3.0 → 115.0.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/basic_table/basic_table.js +3 -6
- package/es/components/basic_table/collapsed_item_actions.js +1 -3
- package/es/components/basic_table/default_item_action.js +0 -1
- package/es/components/basic_table/in_memory_table.js +3 -6
- package/es/components/color_picker/color_picker_swatch.js +1 -2
- package/es/components/datagrid/controls/display_selector.js +1 -2
- package/es/components/datagrid/controls/fullscreen_selector.js +1 -2
- package/es/components/datagrid/controls/keyboard_shortcuts.js +1 -2
- package/es/components/filter_group/filter_select_item.js +36 -17
- package/es/components/key_pad_menu/key_pad_menu_item.js +1 -2
- package/es/components/list_group/list_group_item.js +1 -2
- package/es/components/markdown_editor/markdown_editor.js +1 -1
- package/es/components/markdown_editor/markdown_editor_drop_zone.js +6 -3
- package/es/components/markdown_editor/markdown_editor_footer.js +1 -1
- package/es/components/markdown_editor/markdown_editor_toolbar.js +14 -10
- package/es/components/portal/portal.js +72 -117
- package/es/components/search_bar/filters/field_value_toggle_group_filter.js +42 -91
- package/es/components/selectable/selectable_list/selectable_list_item.js +1 -1
- package/es/components/table/table_header_cell.js +1 -2
- package/es/components/tool_tip/icon_tip.js +4 -8
- package/es/components/tool_tip/tool_tip.js +233 -261
- package/es/components/tool_tip/tool_tip.styles.js +10 -18
- package/es/components/tool_tip/tool_tip_anchor.js +3 -3
- package/es/components/tool_tip/tool_tip_manager.js +1 -0
- package/es/components/tool_tip/tool_tip_popover.js +7 -7
- package/es/test/rtl/component_helpers.d.ts +0 -3
- package/es/test/rtl/component_helpers.js +40 -62
- package/eui.d.ts +25 -96
- package/lib/components/basic_table/basic_table.js +3 -6
- package/lib/components/basic_table/collapsed_item_actions.js +1 -3
- package/lib/components/basic_table/default_item_action.js +0 -1
- package/lib/components/basic_table/in_memory_table.js +3 -6
- package/lib/components/color_picker/color_picker_swatch.js +1 -2
- package/lib/components/datagrid/controls/display_selector.js +1 -2
- package/lib/components/datagrid/controls/fullscreen_selector.js +1 -2
- package/lib/components/datagrid/controls/keyboard_shortcuts.js +1 -2
- package/lib/components/filter_group/filter_select_item.js +35 -16
- package/lib/components/key_pad_menu/key_pad_menu_item.js +1 -2
- package/lib/components/list_group/list_group_item.js +1 -2
- package/lib/components/markdown_editor/markdown_editor.js +1 -1
- package/lib/components/markdown_editor/markdown_editor_drop_zone.js +6 -3
- package/lib/components/markdown_editor/markdown_editor_footer.js +1 -1
- package/lib/components/markdown_editor/markdown_editor_toolbar.js +12 -10
- package/lib/components/portal/portal.js +73 -118
- package/lib/components/search_bar/filters/field_value_toggle_group_filter.js +44 -93
- package/lib/components/selectable/selectable_list/selectable_list_item.js +1 -1
- package/lib/components/table/table_header_cell.js +1 -2
- package/lib/components/tool_tip/icon_tip.js +4 -8
- package/lib/components/tool_tip/tool_tip.js +240 -266
- package/lib/components/tool_tip/tool_tip.styles.js +8 -16
- package/lib/components/tool_tip/tool_tip_anchor.js +2 -2
- package/lib/components/tool_tip/tool_tip_manager.js +1 -0
- package/lib/components/tool_tip/tool_tip_popover.js +6 -6
- package/lib/test/rtl/component_helpers.d.ts +0 -3
- package/lib/test/rtl/component_helpers.js +41 -63
- package/optimize/es/components/basic_table/collapsed_item_actions.js +1 -3
- package/optimize/es/components/basic_table/default_item_action.js +0 -1
- package/optimize/es/components/datagrid/controls/display_selector.js +1 -2
- package/optimize/es/components/datagrid/controls/fullscreen_selector.js +1 -2
- package/optimize/es/components/datagrid/controls/keyboard_shortcuts.js +1 -2
- package/optimize/es/components/filter_group/filter_select_item.js +36 -17
- package/optimize/es/components/key_pad_menu/key_pad_menu_item.js +1 -2
- package/optimize/es/components/list_group/list_group_item.js +1 -2
- package/optimize/es/components/markdown_editor/markdown_editor_drop_zone.js +5 -2
- package/optimize/es/components/markdown_editor/markdown_editor_toolbar.js +13 -9
- package/optimize/es/components/portal/portal.js +65 -91
- package/optimize/es/components/search_bar/filters/field_value_toggle_group_filter.js +43 -66
- package/optimize/es/components/selectable/selectable_list/selectable_list_item.js +1 -1
- package/optimize/es/components/tool_tip/icon_tip.js +3 -5
- package/optimize/es/components/tool_tip/tool_tip.js +227 -250
- package/optimize/es/components/tool_tip/tool_tip.styles.js +10 -18
- package/optimize/es/components/tool_tip/tool_tip_anchor.js +3 -3
- package/optimize/es/components/tool_tip/tool_tip_manager.js +1 -0
- package/optimize/es/components/tool_tip/tool_tip_popover.js +7 -7
- package/optimize/es/test/rtl/component_helpers.d.ts +0 -3
- package/optimize/es/test/rtl/component_helpers.js +40 -62
- package/optimize/lib/components/basic_table/collapsed_item_actions.js +1 -3
- package/optimize/lib/components/basic_table/default_item_action.js +0 -1
- package/optimize/lib/components/datagrid/controls/display_selector.js +1 -2
- package/optimize/lib/components/datagrid/controls/fullscreen_selector.js +1 -2
- package/optimize/lib/components/datagrid/controls/keyboard_shortcuts.js +1 -2
- package/optimize/lib/components/filter_group/filter_select_item.js +35 -16
- package/optimize/lib/components/key_pad_menu/key_pad_menu_item.js +1 -2
- package/optimize/lib/components/list_group/list_group_item.js +1 -2
- package/optimize/lib/components/markdown_editor/markdown_editor_drop_zone.js +5 -2
- package/optimize/lib/components/markdown_editor/markdown_editor_toolbar.js +13 -9
- package/optimize/lib/components/portal/portal.js +68 -93
- package/optimize/lib/components/search_bar/filters/field_value_toggle_group_filter.js +45 -69
- package/optimize/lib/components/selectable/selectable_list/selectable_list_item.js +1 -1
- package/optimize/lib/components/tool_tip/icon_tip.js +3 -5
- package/optimize/lib/components/tool_tip/tool_tip.js +229 -251
- package/optimize/lib/components/tool_tip/tool_tip.styles.js +8 -16
- package/optimize/lib/components/tool_tip/tool_tip_anchor.js +2 -2
- package/optimize/lib/components/tool_tip/tool_tip_manager.js +1 -0
- package/optimize/lib/components/tool_tip/tool_tip_popover.js +6 -6
- package/optimize/lib/test/rtl/component_helpers.d.ts +0 -3
- package/optimize/lib/test/rtl/component_helpers.js +41 -63
- package/package.json +2 -10
- package/test-env/components/basic_table/basic_table.js +3 -6
- package/test-env/components/basic_table/collapsed_item_actions.js +1 -3
- package/test-env/components/basic_table/default_item_action.js +0 -1
- package/test-env/components/basic_table/in_memory_table.js +3 -6
- package/test-env/components/color_picker/color_picker_swatch.js +1 -2
- package/test-env/components/datagrid/controls/display_selector.js +1 -2
- package/test-env/components/datagrid/controls/fullscreen_selector.js +1 -2
- package/test-env/components/datagrid/controls/keyboard_shortcuts.js +1 -2
- package/test-env/components/filter_group/filter_select_item.js +35 -16
- package/test-env/components/key_pad_menu/key_pad_menu_item.js +1 -2
- package/test-env/components/list_group/list_group_item.js +1 -2
- package/test-env/components/markdown_editor/markdown_editor.js +1 -1
- package/test-env/components/markdown_editor/markdown_editor_drop_zone.js +6 -3
- package/test-env/components/markdown_editor/markdown_editor_footer.js +1 -1
- package/test-env/components/markdown_editor/markdown_editor_toolbar.js +14 -10
- package/test-env/components/portal/portal.js +70 -113
- package/test-env/components/search_bar/filters/field_value_toggle_group_filter.js +44 -88
- package/test-env/components/selectable/selectable_list/selectable_list_item.js +1 -1
- package/test-env/components/table/table_header_cell.js +1 -2
- package/test-env/components/tool_tip/icon_tip.js +4 -8
- package/test-env/components/tool_tip/tool_tip.js +230 -256
- package/test-env/components/tool_tip/tool_tip.styles.js +8 -16
- package/test-env/components/tool_tip/tool_tip_anchor.js +2 -2
- package/test-env/components/tool_tip/tool_tip_manager.js +1 -0
- package/test-env/components/tool_tip/tool_tip_popover.js +6 -6
- package/test-env/test/rtl/component_helpers.js +41 -63
|
@@ -63,81 +63,59 @@ export var waitForEuiPopoverClose = /*#__PURE__*/function () {
|
|
|
63
63
|
}();
|
|
64
64
|
|
|
65
65
|
/**
|
|
66
|
-
*
|
|
66
|
+
* jsdom does not track keyboard vs. mouse input modality, so `:focus-visible`
|
|
67
|
+
* always returns false. Call this before `fireEvent.focus()` on an element that
|
|
68
|
+
* should be treated as keyboard-focused.
|
|
69
|
+
*
|
|
70
|
+
* Returns a cleanup function, call it after test assertions to restore the spy.
|
|
67
71
|
*/
|
|
68
|
-
export var
|
|
69
|
-
var
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
var tooltip = document.querySelector('.euiToolTipPopover');
|
|
76
|
-
expect(tooltip).toBeVisible();
|
|
77
|
-
}, {
|
|
78
|
-
timeout: 3000
|
|
79
|
-
} // Account for long delay on tooltips
|
|
80
|
-
);
|
|
81
|
-
case 2:
|
|
82
|
-
return _context3.abrupt("return", _context3.sent);
|
|
83
|
-
case 3:
|
|
84
|
-
case "end":
|
|
85
|
-
return _context3.stop();
|
|
86
|
-
}
|
|
87
|
-
}, _callee3);
|
|
88
|
-
}));
|
|
89
|
-
return function waitForEuiToolTipVisible() {
|
|
90
|
-
return _ref3.apply(this, arguments);
|
|
72
|
+
export var simulateFocusVisible = function simulateFocusVisible(element) {
|
|
73
|
+
var originalMatches = Element.prototype.matches.bind(element);
|
|
74
|
+
var spy = jest.spyOn(element, 'matches').mockImplementation(function (selector) {
|
|
75
|
+
return selector === ':focus-visible' ? true : originalMatches(selector);
|
|
76
|
+
});
|
|
77
|
+
return function () {
|
|
78
|
+
return spy.mockRestore();
|
|
91
79
|
};
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
case 3:
|
|
106
|
-
case "end":
|
|
107
|
-
return _context4.stop();
|
|
108
|
-
}
|
|
109
|
-
}, _callee4);
|
|
110
|
-
}));
|
|
111
|
-
return function waitForEuiToolTipHidden() {
|
|
112
|
-
return _ref4.apply(this, arguments);
|
|
113
|
-
};
|
|
114
|
-
}();
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Prefer this over `fireEvent.focus()` in tooltip tests. Plain `fireEvent.focus`
|
|
84
|
+
* does not set `:focus-visible` in jsdom and will not trigger the tooltip.
|
|
85
|
+
*
|
|
86
|
+
* Returns a cleanup function to restore the mock after assertions.
|
|
87
|
+
*/
|
|
88
|
+
export var focusEuiToolTipTrigger = function focusEuiToolTipTrigger(element) {
|
|
89
|
+
var cleanup = simulateFocusVisible(element);
|
|
90
|
+
fireEvent.focus(element);
|
|
91
|
+
return cleanup;
|
|
92
|
+
};
|
|
115
93
|
|
|
116
94
|
/**
|
|
117
95
|
* EuiComboBox
|
|
118
96
|
*/
|
|
119
97
|
|
|
120
98
|
export var showEuiComboBoxOptions = /*#__PURE__*/function () {
|
|
121
|
-
var
|
|
122
|
-
return _regeneratorRuntime.wrap(function
|
|
123
|
-
while (1) switch (
|
|
99
|
+
var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
|
|
100
|
+
return _regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
101
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
124
102
|
case 0:
|
|
125
103
|
fireEvent.click(screen.getByTestSubject('comboBoxToggleListButton'));
|
|
126
|
-
|
|
104
|
+
_context3.next = 3;
|
|
127
105
|
return waitForEuiPopoverOpen();
|
|
128
106
|
case 3:
|
|
129
|
-
|
|
107
|
+
_context3.next = 5;
|
|
130
108
|
return waitFor(function () {
|
|
131
109
|
expect(screen.getByRole('listbox')).toBeInTheDocument();
|
|
132
110
|
});
|
|
133
111
|
case 5:
|
|
134
112
|
case "end":
|
|
135
|
-
return
|
|
113
|
+
return _context3.stop();
|
|
136
114
|
}
|
|
137
|
-
},
|
|
115
|
+
}, _callee3);
|
|
138
116
|
}));
|
|
139
117
|
return function showEuiComboBoxOptions() {
|
|
140
|
-
return
|
|
118
|
+
return _ref3.apply(this, arguments);
|
|
141
119
|
};
|
|
142
120
|
}();
|
|
143
121
|
|
|
@@ -146,16 +124,16 @@ export var showEuiComboBoxOptions = /*#__PURE__*/function () {
|
|
|
146
124
|
*/
|
|
147
125
|
|
|
148
126
|
export var waitForEuiContextMenuPanelTransition = /*#__PURE__*/function () {
|
|
149
|
-
var
|
|
127
|
+
var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
|
|
150
128
|
var getPanels;
|
|
151
|
-
return _regeneratorRuntime.wrap(function
|
|
152
|
-
while (1) switch (
|
|
129
|
+
return _regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
130
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
153
131
|
case 0:
|
|
154
132
|
// Used document instead of container or screen due to context menus living in portals
|
|
155
133
|
getPanels = function getPanels() {
|
|
156
134
|
return document.querySelectorAll('.euiContextMenuPanel');
|
|
157
135
|
}; // 2 panels will appear for the transition animation
|
|
158
|
-
|
|
136
|
+
_context4.next = 3;
|
|
159
137
|
return waitFor(function () {
|
|
160
138
|
expect(getPanels().length).toEqual(2);
|
|
161
139
|
});
|
|
@@ -170,11 +148,11 @@ export var waitForEuiContextMenuPanelTransition = /*#__PURE__*/function () {
|
|
|
170
148
|
expect(getPanels().length).toEqual(1);
|
|
171
149
|
case 6:
|
|
172
150
|
case "end":
|
|
173
|
-
return
|
|
151
|
+
return _context4.stop();
|
|
174
152
|
}
|
|
175
|
-
},
|
|
153
|
+
}, _callee4);
|
|
176
154
|
}));
|
|
177
155
|
return function waitForEuiContextMenuPanelTransition() {
|
|
178
|
-
return
|
|
156
|
+
return _ref4.apply(this, arguments);
|
|
179
157
|
};
|
|
180
158
|
}();
|
|
@@ -89,7 +89,6 @@ var CollapsedItemActions = exports.CollapsedItemActions = function CollapsedItem
|
|
|
89
89
|
},
|
|
90
90
|
toolTipContent: toolTipContent,
|
|
91
91
|
toolTipProps: {
|
|
92
|
-
delay: 'long',
|
|
93
92
|
// Avoid screen-readers announcing the same text twice
|
|
94
93
|
disableScreenReaderOutput: typeof buttonContent === 'string' && buttonContent === toolTipContent
|
|
95
94
|
}
|
|
@@ -113,8 +112,7 @@ var CollapsedItemActions = exports.CollapsedItemActions = function CollapsedItem
|
|
|
113
112
|
"data-test-subj": "euiCollapsedItemActionsButton"
|
|
114
113
|
});
|
|
115
114
|
var withTooltip = !actionsDisabled && (0, _react2.jsx)(_tool_tip.EuiToolTip, {
|
|
116
|
-
content: allActionsTooltip
|
|
117
|
-
delay: "long"
|
|
115
|
+
content: allActionsTooltip
|
|
118
116
|
}, popoverButton);
|
|
119
117
|
return (0, _react2.jsx)(_popover.EuiPopover, {
|
|
120
118
|
className: className,
|
|
@@ -41,7 +41,6 @@ var DefaultItemAction = exports.DefaultItemAction = function DefaultItemAction(_
|
|
|
41
41
|
var tooltipContent = (0, _action_types.callWithItemIfFunction)(item)(action.description);
|
|
42
42
|
var tooltipProps = {
|
|
43
43
|
content: tooltipContent,
|
|
44
|
-
delay: 'long',
|
|
45
44
|
// Avoid screen-readers announcing the same text twice
|
|
46
45
|
disableScreenReaderOutput: typeof actionContent === 'string' && actionContent === tooltipContent
|
|
47
46
|
};
|
|
@@ -361,8 +361,7 @@ var useDataGridDisplaySelector = exports.useDataGridDisplaySelector = function u
|
|
|
361
361
|
},
|
|
362
362
|
panelClassName: "euiDataGrid__displayPopoverPanel",
|
|
363
363
|
button: (0, _react2.jsx)(_tool_tip.EuiToolTip, {
|
|
364
|
-
content: buttonLabel
|
|
365
|
-
delay: "long"
|
|
364
|
+
content: buttonLabel
|
|
366
365
|
}, (0, _react2.jsx)(_button.EuiButtonIcon, {
|
|
367
366
|
size: "xs",
|
|
368
367
|
iconType: "controls",
|
|
@@ -42,8 +42,7 @@ var useDataGridFullScreenSelector = exports.useDataGridFullScreenSelector = func
|
|
|
42
42
|
fullScreenButtonActive = _useEuiI18n2[1];
|
|
43
43
|
var fullScreenSelector = (0, _react.useMemo)(function () {
|
|
44
44
|
return (0, _react2.jsx)(_tool_tip.EuiToolTip, {
|
|
45
|
-
content: isFullScreen ? (0, _react2.jsx)(_react.default.Fragment, null, fullScreenButtonActive, " (", (0, _react2.jsx)("kbd", null, "esc"), ")") : fullScreenButton
|
|
46
|
-
delay: "long"
|
|
45
|
+
content: isFullScreen ? (0, _react2.jsx)(_react.default.Fragment, null, fullScreenButtonActive, " (", (0, _react2.jsx)("kbd", null, "esc"), ")") : fullScreenButton
|
|
47
46
|
}, (0, _react2.jsx)(_button.EuiButtonIcon, {
|
|
48
47
|
size: "xs",
|
|
49
48
|
iconType: isFullScreen ? 'fullScreenExit' : 'fullScreen',
|
|
@@ -45,8 +45,7 @@ var useDataGridKeyboardShortcuts = exports.useDataGridKeyboardShortcuts = functi
|
|
|
45
45
|
anchorPosition: "downRight",
|
|
46
46
|
panelPaddingSize: "none",
|
|
47
47
|
button: (0, _react2.jsx)(_tool_tip.EuiToolTip, {
|
|
48
|
-
content: title
|
|
49
|
-
delay: "long"
|
|
48
|
+
content: title
|
|
50
49
|
}, (0, _react2.jsx)(_button.EuiButtonIcon, {
|
|
51
50
|
size: "xs",
|
|
52
51
|
iconType: "keyboard",
|
|
@@ -95,6 +95,18 @@ var EuiFilterSelectItemClass = exports.EuiFilterSelectItemClass = /*#__PURE__*/f
|
|
|
95
95
|
}
|
|
96
96
|
(0, _inherits2.default)(EuiFilterSelectItemClass, _Component);
|
|
97
97
|
return (0, _createClass2.default)(EuiFilterSelectItemClass, [{
|
|
98
|
+
key: "componentDidMount",
|
|
99
|
+
value: function componentDidMount() {
|
|
100
|
+
var _this$props2 = this.props,
|
|
101
|
+
isFocused = _this$props2.isFocused,
|
|
102
|
+
toolTipContent = _this$props2.toolTipContent,
|
|
103
|
+
disabled = _this$props2.disabled,
|
|
104
|
+
children = _this$props2.children;
|
|
105
|
+
if ( /*#__PURE__*/(0, _react.isValidElement)(children) && !disabled && toolTipContent) {
|
|
106
|
+
this.toggleToolTip(isFocused !== null && isFocused !== void 0 ? isFocused : false);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}, {
|
|
98
110
|
key: "componentDidUpdate",
|
|
99
111
|
value: function componentDidUpdate(prevProps) {
|
|
100
112
|
if (this.props.isFocused && !prevProps.isFocused) {
|
|
@@ -103,31 +115,39 @@ var EuiFilterSelectItemClass = exports.EuiFilterSelectItemClass = /*#__PURE__*/f
|
|
|
103
115
|
block: 'nearest'
|
|
104
116
|
});
|
|
105
117
|
}
|
|
118
|
+
var _this$props3 = this.props,
|
|
119
|
+
isFocused = _this$props3.isFocused,
|
|
120
|
+
toolTipContent = _this$props3.toolTipContent,
|
|
121
|
+
disabled = _this$props3.disabled,
|
|
122
|
+
children = _this$props3.children;
|
|
123
|
+
if ( /*#__PURE__*/(0, _react.isValidElement)(children) && !disabled && toolTipContent && isFocused !== prevProps.isFocused) {
|
|
124
|
+
this.toggleToolTip(isFocused !== null && isFocused !== void 0 ? isFocused : false);
|
|
125
|
+
}
|
|
106
126
|
}
|
|
107
127
|
}, {
|
|
108
128
|
key: "render",
|
|
109
129
|
value: function render() {
|
|
110
|
-
var _this$
|
|
111
|
-
theme = _this$
|
|
112
|
-
children = _this$
|
|
113
|
-
className = _this$
|
|
114
|
-
disabled = _this$
|
|
115
|
-
checked = _this$
|
|
116
|
-
isFocused = _this$
|
|
117
|
-
showIcons = _this$
|
|
118
|
-
toolTipContent = _this$
|
|
119
|
-
toolTipProps = _this$
|
|
120
|
-
style = _this$
|
|
121
|
-
truncateContent = _this$
|
|
122
|
-
forwardRef = _this$
|
|
123
|
-
rest = (0, _objectWithoutProperties2.default)(_this$
|
|
130
|
+
var _this$props4 = this.props,
|
|
131
|
+
theme = _this$props4.theme,
|
|
132
|
+
children = _this$props4.children,
|
|
133
|
+
className = _this$props4.className,
|
|
134
|
+
disabled = _this$props4.disabled,
|
|
135
|
+
checked = _this$props4.checked,
|
|
136
|
+
isFocused = _this$props4.isFocused,
|
|
137
|
+
showIcons = _this$props4.showIcons,
|
|
138
|
+
toolTipContent = _this$props4.toolTipContent,
|
|
139
|
+
toolTipProps = _this$props4.toolTipProps,
|
|
140
|
+
style = _this$props4.style,
|
|
141
|
+
truncateContent = _this$props4.truncateContent,
|
|
142
|
+
forwardRef = _this$props4.forwardRef,
|
|
143
|
+
rest = (0, _objectWithoutProperties2.default)(_this$props4, _excluded);
|
|
124
144
|
var styles = (0, _filter_select_item.euiFilterSelectItemStyles)(theme);
|
|
125
145
|
var cssStyles = [styles.euiFilterSelectItem, isFocused && styles.isFocused];
|
|
126
146
|
var classes = (0, _classnames.default)('euiFilterSelectItem', className);
|
|
127
147
|
var hasToolTip =
|
|
128
148
|
// we're using isValidElement here as EuiToolTipAnchor uses
|
|
129
149
|
// cloneElement to enhance the element with required attributes
|
|
130
|
-
/*#__PURE__*/_react.
|
|
150
|
+
/*#__PURE__*/(0, _react.isValidElement)(children) && !disabled && toolTipContent;
|
|
131
151
|
var anchorProps = undefined;
|
|
132
152
|
if (hasToolTip) {
|
|
133
153
|
var _toolTipProps$anchorP, _toolTipProps$anchorP2;
|
|
@@ -137,7 +157,6 @@ var EuiFilterSelectItemClass = exports.EuiFilterSelectItemClass = /*#__PURE__*/f
|
|
|
137
157
|
}) : {
|
|
138
158
|
style: style
|
|
139
159
|
};
|
|
140
|
-
this.toggleToolTip(isFocused !== null && isFocused !== void 0 ? isFocused : false);
|
|
141
160
|
}
|
|
142
161
|
var iconNode;
|
|
143
162
|
if (showIcons) {
|
|
@@ -135,7 +135,6 @@ var EuiKeyPadMenuItem = exports.EuiKeyPadMenuItem = function EuiKeyPadMenuItem(_
|
|
|
135
135
|
}, label)));
|
|
136
136
|
return betaBadgeLabel ? (0, _react2.jsx)(_tool_tip.EuiToolTip, (0, _extends2.default)({}, betaBadgeTooltipProps, {
|
|
137
137
|
title: betaBadgeLabel,
|
|
138
|
-
content: betaBadgeTooltipContent
|
|
139
|
-
delay: "long"
|
|
138
|
+
content: betaBadgeTooltipContent
|
|
140
139
|
}), button) : button;
|
|
141
140
|
};
|
|
@@ -177,8 +177,7 @@ var EuiListGroupItem = exports.EuiListGroupItem = function EuiListGroupItem(_ref
|
|
|
177
177
|
style: style
|
|
178
178
|
}, (0, _react2.jsx)(_tool_tip.EuiToolTip, (0, _extends2.default)({
|
|
179
179
|
content: toolTipText !== null && toolTipText !== void 0 ? toolTipText : label,
|
|
180
|
-
position: "right"
|
|
181
|
-
delay: "long"
|
|
180
|
+
position: "right"
|
|
182
181
|
}, toolTipProps, {
|
|
183
182
|
anchorClassName: anchorClasses,
|
|
184
183
|
anchorProps: anchorPropsAndCss
|
|
@@ -171,8 +171,11 @@ var EuiMarkdownEditorDropZone = exports.EuiMarkdownEditorDropZone = function Eui
|
|
|
171
171
|
getInputProps = _useDropzone.getInputProps,
|
|
172
172
|
open = _useDropzone.open;
|
|
173
173
|
var rootProps = _objectSpread({}, getRootProps());
|
|
174
|
-
|
|
175
|
-
|
|
174
|
+
/* Unset the default `role="button"` attribute to prevent invalid nested interactive elements.
|
|
175
|
+
The dropzone has `noClick=true` and `noKeyboard=true` set via `useDropzone`.
|
|
176
|
+
Keyboard drop interactions expect the drop zone element to have `role="button` but we're supporting
|
|
177
|
+
adding files via a standalone footer button instead." */
|
|
178
|
+
rootProps.role = undefined;
|
|
176
179
|
return (0, _react2.jsx)("div", (0, _extends2.default)({}, rootProps, {
|
|
177
180
|
css: cssStyles,
|
|
178
181
|
className: classes
|
|
@@ -27,6 +27,11 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
|
|
|
27
27
|
* Side Public License, v 1.
|
|
28
28
|
*/
|
|
29
29
|
|
|
30
|
+
/**
|
|
31
|
+
* A helper type to ensure the `button` property is defined
|
|
32
|
+
* on an ` EuiMarkdownEditorUiPlugin ` object.
|
|
33
|
+
*/
|
|
34
|
+
|
|
30
35
|
var boldItalicButtons = [{
|
|
31
36
|
id: 'mdBold',
|
|
32
37
|
label: 'Bold',
|
|
@@ -101,7 +106,7 @@ var EuiMarkdownEditorToolbar = exports.EuiMarkdownEditorToolbar = /*#__PURE__*/(
|
|
|
101
106
|
markdownActions = _ref2.markdownActions,
|
|
102
107
|
viewMode = _ref2.viewMode,
|
|
103
108
|
onClickPreview = _ref2.onClickPreview,
|
|
104
|
-
|
|
109
|
+
_uiPlugins = _ref2.uiPlugins,
|
|
105
110
|
selectedNode = _ref2.selectedNode,
|
|
106
111
|
right = _ref2.right;
|
|
107
112
|
var _useContext = (0, _react.useContext)(_markdown_context.EuiMarkdownContext),
|
|
@@ -115,6 +120,9 @@ var EuiMarkdownEditorToolbar = exports.EuiMarkdownEditorToolbar = /*#__PURE__*/(
|
|
|
115
120
|
var isPreviewing = viewMode === _markdown_modes.MODE_VIEWING;
|
|
116
121
|
var isEditable = !isPreviewing && !readOnly;
|
|
117
122
|
var styles = (0, _services.useEuiMemoizedStyles)(_markdown_editor_toolbar.euiMarkdownEditorToolbarStyles);
|
|
123
|
+
var uiPlugins = _uiPlugins.filter(function (uiPlugin) {
|
|
124
|
+
return !!uiPlugin.button;
|
|
125
|
+
});
|
|
118
126
|
return (0, _react2.jsx)("div", {
|
|
119
127
|
ref: ref,
|
|
120
128
|
css: styles.euiMarkdownEditorToolbar,
|
|
@@ -126,8 +134,7 @@ var EuiMarkdownEditorToolbar = exports.EuiMarkdownEditorToolbar = /*#__PURE__*/(
|
|
|
126
134
|
}, boldItalicButtons.map(function (item) {
|
|
127
135
|
return (0, _react2.jsx)(_tool_tip.EuiToolTip, {
|
|
128
136
|
key: item.id,
|
|
129
|
-
content: item.label
|
|
130
|
-
delay: "long"
|
|
137
|
+
content: item.label
|
|
131
138
|
}, (0, _react2.jsx)(EuiMarkdownEditorToolbarButton, {
|
|
132
139
|
selectedNode: selectedNode,
|
|
133
140
|
handleMdButtonClick: handleMdButtonClick,
|
|
@@ -143,8 +150,7 @@ var EuiMarkdownEditorToolbar = exports.EuiMarkdownEditorToolbar = /*#__PURE__*/(
|
|
|
143
150
|
}), listButtons.map(function (item) {
|
|
144
151
|
return (0, _react2.jsx)(_tool_tip.EuiToolTip, {
|
|
145
152
|
key: item.id,
|
|
146
|
-
content: item.label
|
|
147
|
-
delay: "long"
|
|
153
|
+
content: item.label
|
|
148
154
|
}, (0, _react2.jsx)(EuiMarkdownEditorToolbarButton, {
|
|
149
155
|
selectedNode: selectedNode,
|
|
150
156
|
handleMdButtonClick: handleMdButtonClick,
|
|
@@ -160,8 +166,7 @@ var EuiMarkdownEditorToolbar = exports.EuiMarkdownEditorToolbar = /*#__PURE__*/(
|
|
|
160
166
|
}), quoteCodeLinkButtons.map(function (item) {
|
|
161
167
|
return (0, _react2.jsx)(_tool_tip.EuiToolTip, {
|
|
162
168
|
key: item.id,
|
|
163
|
-
content: item.label
|
|
164
|
-
delay: "long"
|
|
169
|
+
content: item.label
|
|
165
170
|
}, (0, _react2.jsx)(EuiMarkdownEditorToolbarButton, {
|
|
166
171
|
selectedNode: selectedNode,
|
|
167
172
|
handleMdButtonClick: handleMdButtonClick,
|
|
@@ -179,8 +184,7 @@ var EuiMarkdownEditorToolbar = exports.EuiMarkdownEditorToolbar = /*#__PURE__*/(
|
|
|
179
184
|
button = _ref3.button;
|
|
180
185
|
return (0, _react2.jsx)(_tool_tip.EuiToolTip, {
|
|
181
186
|
key: name,
|
|
182
|
-
content: button.label
|
|
183
|
-
delay: "long"
|
|
187
|
+
content: button.label
|
|
184
188
|
}, (0, _react2.jsx)(EuiMarkdownEditorToolbarButton, {
|
|
185
189
|
selectedNode: selectedNode,
|
|
186
190
|
handleMdButtonClick: handleMdButtonClick,
|
|
@@ -1,118 +1,93 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
|
-
exports.
|
|
9
|
-
var
|
|
10
|
-
var
|
|
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
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
7
|
+
exports.EuiPortal = void 0;
|
|
8
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
+
var _react = require("react");
|
|
16
10
|
var _reactDom = require("react-dom");
|
|
17
11
|
var _services = require("../../services");
|
|
18
12
|
var _component_defaults = require("../provider/component_defaults");
|
|
19
|
-
|
|
20
|
-
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); }
|
|
21
|
-
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; }
|
|
22
|
-
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)); }
|
|
23
|
-
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /*
|
|
13
|
+
/*
|
|
24
14
|
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
25
15
|
* or more contributor license agreements. Licensed under the Elastic License
|
|
26
16
|
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
27
17
|
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
28
18
|
* Side Public License, v 1.
|
|
29
|
-
*/ /**
|
|
30
|
-
* NOTE: We can't test this component because Enzyme doesn't support rendering
|
|
31
|
-
* into portals.
|
|
32
19
|
*/
|
|
20
|
+
|
|
21
|
+
var usePortalEffect = typeof document === 'undefined' ? _react.useEffect : _react.useLayoutEffect;
|
|
33
22
|
var INSERT_POSITIONS = ['after', 'before'];
|
|
34
23
|
var insertPositions = {
|
|
35
24
|
after: 'afterend',
|
|
36
25
|
before: 'beforebegin'
|
|
37
26
|
};
|
|
38
|
-
var EuiPortal = exports.EuiPortal = function
|
|
39
|
-
var
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
}
|
|
52
|
-
(0, _inherits2.default)(EuiPortalClass, _Component);
|
|
53
|
-
return (0, _createClass2.default)(EuiPortalClass, [{
|
|
54
|
-
key: "componentDidMount",
|
|
55
|
-
value: function componentDidMount() {
|
|
56
|
-
var insert = this.props.insert;
|
|
57
|
-
var portalNode = document.createElement('div');
|
|
58
|
-
portalNode.dataset.euiportal = 'true';
|
|
59
|
-
if (insert == null) {
|
|
60
|
-
// no insertion defined, append to body
|
|
61
|
-
document.body.appendChild(portalNode);
|
|
62
|
-
} else {
|
|
63
|
-
// inserting before or after an element
|
|
64
|
-
var sibling = insert.sibling,
|
|
65
|
-
position = insert.position;
|
|
66
|
-
sibling.insertAdjacentElement(insertPositions[position], portalNode);
|
|
67
|
-
}
|
|
68
|
-
this.setThemeColor(portalNode);
|
|
69
|
-
this.updatePortalRef(portalNode);
|
|
27
|
+
var EuiPortal = exports.EuiPortal = /*#__PURE__*/(0, _react.memo)(function (_props) {
|
|
28
|
+
var props = (0, _component_defaults.usePropsWithComponentDefaults)('EuiPortal', _props);
|
|
29
|
+
var children = props.children,
|
|
30
|
+
insert = props.insert,
|
|
31
|
+
setPortalRef = props.portalRef;
|
|
32
|
+
var portalRef = (0, _react.useRef)(setPortalRef);
|
|
33
|
+
var _useContext = (0, _react.useContext)(_services.EuiNestedThemeContext),
|
|
34
|
+
hasDifferentColorFromGlobalTheme = _useContext.hasDifferentColorFromGlobalTheme,
|
|
35
|
+
colorClassName = _useContext.colorClassName;
|
|
36
|
+
var _useState = (0, _react.useState)(null),
|
|
37
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
38
|
+
portalNode = _useState2[0],
|
|
39
|
+
setPortalNode = _useState2[1];
|
|
70
40
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
}, {
|
|
78
|
-
key: "componentWillUnmount",
|
|
79
|
-
value: function componentWillUnmount() {
|
|
80
|
-
var portalNode = this.state.portalNode;
|
|
81
|
-
if (portalNode !== null && portalNode !== void 0 && portalNode.parentNode) {
|
|
82
|
-
portalNode.parentNode.removeChild(portalNode);
|
|
83
|
-
}
|
|
84
|
-
this.updatePortalRef(null);
|
|
41
|
+
// Set the inherited color of the portal based on the wrapping EuiThemeProvider
|
|
42
|
+
var setThemeColor = function setThemeColor(portalNode) {
|
|
43
|
+
if (hasDifferentColorFromGlobalTheme && insert == null) {
|
|
44
|
+
portalNode.classList.add(colorClassName);
|
|
85
45
|
}
|
|
46
|
+
};
|
|
47
|
+
var updatePortalRef = function updatePortalRef(ref) {
|
|
48
|
+
var _portalRef$current;
|
|
49
|
+
(_portalRef$current = portalRef.current) === null || _portalRef$current === void 0 || _portalRef$current.call(portalRef, ref);
|
|
50
|
+
};
|
|
51
|
+
(0, _react.useEffect)(function () {
|
|
52
|
+
portalRef.current = setPortalRef;
|
|
53
|
+
}, [setPortalRef]);
|
|
86
54
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
55
|
+
/* Uses `useLayoutEffect` on client-side instead of `useEffect` to ensure the portal
|
|
56
|
+
node is created and inserted into the DOM synchronously. This matches the same timing
|
|
57
|
+
as the previous class component `componentDidMount` behavior.
|
|
58
|
+
Using `useEffect` would add an additional render cycle that would break expected
|
|
59
|
+
behavior of e.g. `@hello-pangea/dnd` which handles keyboard focus and doesn't expect
|
|
60
|
+
a rerender. This falls back to `useEffect` for SSR to avoid console errors. `useEffect` will
|
|
61
|
+
be a no-op, same as `componentDidMount` */
|
|
62
|
+
usePortalEffect(function () {
|
|
63
|
+
var node = document.createElement('div');
|
|
64
|
+
node.dataset.euiportal = 'true';
|
|
65
|
+
if (insert == null) {
|
|
66
|
+
// no insertion defined, append to body
|
|
67
|
+
document.body.appendChild(node);
|
|
68
|
+
} else {
|
|
69
|
+
// inserting before or after an element
|
|
70
|
+
var sibling = insert.sibling,
|
|
71
|
+
position = insert.position;
|
|
72
|
+
sibling.insertAdjacentElement(insertPositions[position], node);
|
|
99
73
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
value: function render() {
|
|
110
|
-
var portalNode = this.state.portalNode;
|
|
111
|
-
if (!portalNode) {
|
|
112
|
-
return null;
|
|
74
|
+
setThemeColor(node);
|
|
75
|
+
updatePortalRef(node);
|
|
76
|
+
|
|
77
|
+
// Update state with portalNode to intentionally trigger component rerender
|
|
78
|
+
// and call createPortal with the correct root element
|
|
79
|
+
setPortalNode(node);
|
|
80
|
+
return function () {
|
|
81
|
+
if (node !== null && node !== void 0 && node.parentNode) {
|
|
82
|
+
node.parentNode.removeChild(node);
|
|
113
83
|
}
|
|
114
|
-
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
}
|
|
118
|
-
(
|
|
84
|
+
updatePortalRef(null);
|
|
85
|
+
};
|
|
86
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps -- on mount only
|
|
87
|
+
}, []);
|
|
88
|
+
if (!portalNode) {
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
return /*#__PURE__*/(0, _reactDom.createPortal)(children, portalNode);
|
|
92
|
+
});
|
|
93
|
+
EuiPortal.displayName = 'EuiPortal';
|