@elastic/eui 88.5.4 → 89.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/dist/eui_theme_dark.css +26 -526
- package/dist/eui_theme_dark.min.css +1 -1
- package/dist/eui_theme_light.css +26 -526
- package/dist/eui_theme_light.min.css +1 -1
- package/es/components/basic_table/basic_table.js +7 -2
- package/es/components/basic_table/in_memory_table.js +7 -2
- package/es/components/collapsible_nav/collapsible_nav.js +5 -0
- package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -2
- package/es/components/color_picker/index.js +0 -4
- package/es/components/combo_box/combo_box.js +142 -304
- package/es/components/combo_box/combo_box_input/combo_box_input.js +0 -13
- package/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +34 -118
- package/es/components/context_menu/context_menu_panel.js +6 -6
- package/es/components/flex/flex_grid.styles.js +1 -1
- package/es/components/flex/flex_group.styles.js +1 -1
- package/es/components/flyout/flyout.js +32 -33
- package/es/components/flyout/flyout.styles.js +13 -3
- package/es/components/form/range/dual_range.js +4 -0
- package/es/components/form/range/range.js +4 -0
- package/es/components/index.js +0 -1
- package/es/components/popover/input_popover.js +47 -3
- package/es/components/popover/popover.js +2 -2
- package/es/components/table/table_row_cell.js +27 -9
- package/es/components/text_truncate/index.js +1 -0
- package/es/components/text_truncate/text_block_truncate.js +78 -0
- package/es/global_styling/reset/global_styles.js +16 -2
- package/es/services/accessibility/index.js +0 -3
- package/es/services/index.js +1 -1
- package/es/test/rtl/component_helpers.d.ts +2 -0
- package/es/test/rtl/component_helpers.js +29 -1
- package/eui.d.ts +375 -667
- package/i18ntokens.json +52 -286
- package/lib/components/basic_table/basic_table.js +7 -2
- package/lib/components/basic_table/in_memory_table.js +7 -2
- package/lib/components/collapsible_nav/collapsible_nav.js +5 -0
- package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -2
- package/lib/components/color_picker/index.js +0 -7
- package/lib/components/combo_box/combo_box.js +141 -303
- package/lib/components/combo_box/combo_box_input/combo_box_input.js +0 -13
- package/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +34 -118
- package/lib/components/context_menu/context_menu_panel.js +5 -5
- package/lib/components/flex/flex_grid.styles.js +1 -1
- package/lib/components/flex/flex_group.styles.js +1 -1
- package/lib/components/flyout/flyout.js +31 -32
- package/lib/components/flyout/flyout.styles.js +19 -10
- package/lib/components/form/range/dual_range.js +4 -0
- package/lib/components/index.js +0 -11
- package/lib/components/popover/input_popover.js +48 -3
- package/lib/components/popover/popover.js +1 -1
- package/lib/components/table/table_row_cell.js +26 -8
- package/lib/components/text_truncate/index.js +7 -0
- package/lib/components/text_truncate/text_block_truncate.js +85 -0
- package/lib/global_styling/reset/global_styles.js +16 -2
- package/lib/services/accessibility/index.js +0 -21
- package/lib/services/index.js +0 -21
- package/lib/test/rtl/component_helpers.d.ts +2 -0
- package/lib/test/rtl/component_helpers.js +31 -2
- package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -2
- package/optimize/es/components/color_picker/index.js +0 -4
- package/optimize/es/components/combo_box/combo_box.js +137 -304
- package/optimize/es/components/combo_box/combo_box_input/combo_box_input.js +0 -12
- package/optimize/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +28 -107
- package/optimize/es/components/context_menu/context_menu_panel.js +6 -6
- package/optimize/es/components/flex/flex_grid.styles.js +1 -1
- package/optimize/es/components/flex/flex_group.styles.js +1 -1
- package/optimize/es/components/flyout/flyout.js +32 -33
- package/optimize/es/components/flyout/flyout.styles.js +13 -3
- package/optimize/es/components/index.js +0 -1
- package/optimize/es/components/popover/input_popover.js +43 -3
- package/optimize/es/components/popover/popover.js +2 -2
- package/optimize/es/components/table/table_row_cell.js +13 -5
- package/optimize/es/components/text_truncate/index.js +1 -0
- package/optimize/es/components/text_truncate/text_block_truncate.js +58 -0
- package/optimize/es/global_styling/reset/global_styles.js +13 -2
- package/optimize/es/services/accessibility/index.js +0 -3
- package/optimize/es/services/index.js +1 -1
- package/optimize/es/test/rtl/component_helpers.d.ts +2 -0
- package/optimize/es/test/rtl/component_helpers.js +29 -1
- package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -2
- package/optimize/lib/components/color_picker/index.js +0 -7
- package/optimize/lib/components/combo_box/combo_box.js +136 -303
- package/optimize/lib/components/combo_box/combo_box_input/combo_box_input.js +0 -12
- package/optimize/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +28 -107
- package/optimize/lib/components/context_menu/context_menu_panel.js +5 -5
- package/optimize/lib/components/flex/flex_grid.styles.js +1 -1
- package/optimize/lib/components/flex/flex_group.styles.js +1 -1
- package/optimize/lib/components/flyout/flyout.js +31 -32
- package/optimize/lib/components/flyout/flyout.styles.js +19 -10
- package/optimize/lib/components/index.js +0 -11
- package/optimize/lib/components/popover/input_popover.js +44 -3
- package/optimize/lib/components/popover/popover.js +1 -1
- package/optimize/lib/components/table/table_row_cell.js +12 -4
- package/optimize/lib/components/text_truncate/index.js +7 -0
- package/optimize/lib/components/text_truncate/text_block_truncate.js +66 -0
- package/optimize/lib/global_styling/reset/global_styles.js +19 -10
- package/optimize/lib/services/accessibility/index.js +0 -21
- package/optimize/lib/services/index.js +0 -21
- package/optimize/lib/test/rtl/component_helpers.d.ts +2 -0
- package/optimize/lib/test/rtl/component_helpers.js +31 -2
- package/package.json +1 -1
- package/src/components/combo_box/combo_box_options_list/_combo_box_options_list.scss +5 -15
- package/src/components/context_menu/_context_menu_panel.scss +4 -0
- package/src/components/index.scss +0 -1
- package/src/global_styling/mixins/_index.scss +0 -1
- package/src/global_styling/variables/_index.scss +0 -1
- package/src/test/README.md +0 -15
- package/src/themes/amsterdam/global_styling/mixins/_index.scss +0 -1
- package/test-env/components/basic_table/basic_table.js +7 -2
- package/test-env/components/basic_table/in_memory_table.js +7 -2
- package/test-env/components/collapsible_nav/collapsible_nav.js +5 -0
- package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -2
- package/test-env/components/color_picker/index.js +0 -7
- package/test-env/components/combo_box/combo_box.js +141 -303
- package/test-env/components/combo_box/combo_box_input/combo_box_input.js +0 -13
- package/test-env/components/combo_box/combo_box_options_list/combo_box_options_list.js +33 -117
- package/test-env/components/context_menu/context_menu_panel.js +5 -5
- package/test-env/components/flex/flex_grid.styles.js +1 -1
- package/test-env/components/flex/flex_group.styles.js +1 -1
- package/test-env/components/flyout/flyout.styles.js +19 -10
- package/test-env/components/form/range/dual_range.js +4 -0
- package/test-env/components/index.js +0 -11
- package/test-env/components/popover/input_popover.js +48 -3
- package/test-env/components/popover/popover.js +1 -1
- package/test-env/components/table/table_row_cell.js +26 -8
- package/test-env/components/text_truncate/index.js +7 -0
- package/test-env/components/text_truncate/text_block_truncate.js +82 -0
- package/test-env/global_styling/reset/global_styles.js +19 -10
- package/test-env/services/accessibility/index.js +0 -21
- package/test-env/services/index.js +0 -21
- package/test-env/test/rtl/component_helpers.js +31 -2
- package/es/components/color_picker/color_stops/color_stop_thumb.js +0 -371
- package/es/components/color_picker/color_stops/color_stop_thumb.styles.js +0 -55
- package/es/components/color_picker/color_stops/color_stops.js +0 -499
- package/es/components/color_picker/color_stops/color_stops.styles.js +0 -61
- package/es/components/color_picker/color_stops/index.js +0 -9
- package/es/components/color_picker/color_stops/utils.js +0 -95
- package/es/components/suggest/index.js +0 -10
- package/es/components/suggest/suggest.a11y.js +0 -70
- package/es/components/suggest/suggest.js +0 -347
- package/es/components/suggest/suggest_item.js +0 -123
- package/es/components/suggest/types.js +0 -9
- package/es/services/accessibility/accessible_click_keys.js +0 -17
- package/es/services/accessibility/cascading_menu_keys.js +0 -28
- package/es/services/accessibility/combo_box_keys.js +0 -25
- package/lib/components/color_picker/color_stops/color_stop_thumb.js +0 -380
- package/lib/components/color_picker/color_stops/color_stop_thumb.styles.js +0 -62
- package/lib/components/color_picker/color_stops/color_stops.js +0 -505
- package/lib/components/color_picker/color_stops/color_stops.styles.js +0 -67
- package/lib/components/color_picker/color_stops/index.js +0 -12
- package/lib/components/color_picker/color_stops/utils.js +0 -108
- package/lib/components/suggest/index.js +0 -19
- package/lib/components/suggest/suggest.a11y.js +0 -73
- package/lib/components/suggest/suggest.js +0 -356
- package/lib/components/suggest/suggest_item.js +0 -130
- package/lib/components/suggest/types.js +0 -16
- package/lib/services/accessibility/accessible_click_keys.js +0 -21
- package/lib/services/accessibility/cascading_menu_keys.js +0 -35
- package/lib/services/accessibility/combo_box_keys.js +0 -32
- package/optimize/es/components/color_picker/color_stops/color_stop_thumb.js +0 -329
- package/optimize/es/components/color_picker/color_stops/color_stop_thumb.styles.js +0 -55
- package/optimize/es/components/color_picker/color_stops/color_stops.js +0 -444
- package/optimize/es/components/color_picker/color_stops/color_stops.styles.js +0 -61
- package/optimize/es/components/color_picker/color_stops/index.js +0 -9
- package/optimize/es/components/color_picker/color_stops/utils.js +0 -90
- package/optimize/es/components/suggest/index.js +0 -10
- package/optimize/es/components/suggest/suggest.a11y.js +0 -70
- package/optimize/es/components/suggest/suggest.js +0 -256
- package/optimize/es/components/suggest/suggest_item.js +0 -89
- package/optimize/es/components/suggest/types.js +0 -9
- package/optimize/es/services/accessibility/accessible_click_keys.js +0 -14
- package/optimize/es/services/accessibility/cascading_menu_keys.js +0 -28
- package/optimize/es/services/accessibility/combo_box_keys.js +0 -25
- package/optimize/lib/components/color_picker/color_stops/color_stop_thumb.js +0 -339
- package/optimize/lib/components/color_picker/color_stops/color_stop_thumb.styles.js +0 -62
- package/optimize/lib/components/color_picker/color_stops/color_stops.js +0 -451
- package/optimize/lib/components/color_picker/color_stops/color_stops.styles.js +0 -67
- package/optimize/lib/components/color_picker/color_stops/index.js +0 -12
- package/optimize/lib/components/color_picker/color_stops/utils.js +0 -106
- package/optimize/lib/components/suggest/index.js +0 -19
- package/optimize/lib/components/suggest/suggest.a11y.js +0 -73
- package/optimize/lib/components/suggest/suggest.js +0 -266
- package/optimize/lib/components/suggest/suggest_item.js +0 -96
- package/optimize/lib/components/suggest/types.js +0 -16
- package/optimize/lib/services/accessibility/accessible_click_keys.js +0 -20
- package/optimize/lib/services/accessibility/cascading_menu_keys.js +0 -35
- package/optimize/lib/services/accessibility/combo_box_keys.js +0 -32
- package/src/components/suggest/_index.scss +0 -5
- package/src/components/suggest/_suggest_input.scss +0 -4
- package/src/components/suggest/_suggest_item.scss +0 -103
- package/src/components/suggest/_variables.scss +0 -13
- package/src/global_styling/mixins/_header.scss +0 -29
- package/src/global_styling/variables/_header.scss +0 -3
- package/test-env/components/color_picker/color_stops/color_stop_thumb.js +0 -372
- package/test-env/components/color_picker/color_stops/color_stop_thumb.styles.js +0 -62
- package/test-env/components/color_picker/color_stops/color_stops.js +0 -494
- package/test-env/components/color_picker/color_stops/color_stops.styles.js +0 -67
- package/test-env/components/color_picker/color_stops/index.js +0 -12
- package/test-env/components/color_picker/color_stops/utils.js +0 -106
- package/test-env/components/suggest/index.js +0 -19
- package/test-env/components/suggest/suggest.a11y.js +0 -73
- package/test-env/components/suggest/suggest.js +0 -348
- package/test-env/components/suggest/suggest_item.js +0 -129
- package/test-env/components/suggest/types.js +0 -16
- package/test-env/services/accessibility/accessible_click_keys.js +0 -20
- package/test-env/services/accessibility/cascading_menu_keys.js +0 -35
- package/test-env/services/accessibility/combo_box_keys.js +0 -32
|
@@ -68,12 +68,6 @@ var EuiComboBoxInput = /*#__PURE__*/function (_Component) {
|
|
|
68
68
|
inputWidth: inputWidth
|
|
69
69
|
});
|
|
70
70
|
});
|
|
71
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "updatePosition", function () {
|
|
72
|
-
// Wait a beat for the DOM to update, since we depend on DOM elements' bounds.
|
|
73
|
-
requestAnimationFrame(function () {
|
|
74
|
-
_this.props.updatePosition();
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
71
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onFocus", function (event) {
|
|
78
72
|
_this.props.onFocus(event);
|
|
79
73
|
_this.setState({
|
|
@@ -114,10 +108,6 @@ var EuiComboBoxInput = /*#__PURE__*/function (_Component) {
|
|
|
114
108
|
value: function componentDidUpdate(prevProps) {
|
|
115
109
|
if (prevProps.searchValue !== this.props.searchValue) {
|
|
116
110
|
this.updateInputSize(this.props.searchValue);
|
|
117
|
-
|
|
118
|
-
// We need to update the position of everything if the user enters enough input to change
|
|
119
|
-
// the size of the input.
|
|
120
|
-
this.updatePosition();
|
|
121
111
|
}
|
|
122
112
|
}
|
|
123
113
|
}, {
|
|
@@ -143,7 +133,6 @@ var EuiComboBoxInput = /*#__PURE__*/function (_Component) {
|
|
|
143
133
|
searchValue = _this$props3.searchValue,
|
|
144
134
|
selectedOptions = _this$props3.selectedOptions,
|
|
145
135
|
singleSelectionProp = _this$props3.singleSelection,
|
|
146
|
-
toggleButtonRef = _this$props3.toggleButtonRef,
|
|
147
136
|
value = _this$props3.value,
|
|
148
137
|
prepend = _this$props3.prepend,
|
|
149
138
|
append = _this$props3.append,
|
|
@@ -210,7 +199,6 @@ var EuiComboBoxInput = /*#__PURE__*/function (_Component) {
|
|
|
210
199
|
'data-test-subj': 'comboBoxToggleListButton',
|
|
211
200
|
disabled: isDisabled,
|
|
212
201
|
onClick: isListOpen && !isDisabled ? onCloseListClick : onOpenListClick,
|
|
213
|
-
ref: toggleButtonRef,
|
|
214
202
|
side: 'right',
|
|
215
203
|
tabIndex: -1,
|
|
216
204
|
type: 'arrowDown'
|
|
@@ -326,7 +314,6 @@ EuiComboBoxInput.propTypes = {
|
|
|
326
314
|
asPlainText: _propTypes.default.bool
|
|
327
315
|
}).isRequired]),
|
|
328
316
|
toggleButtonRef: _propTypes.default.any,
|
|
329
|
-
updatePosition: _propTypes.default.func.isRequired,
|
|
330
317
|
value: _propTypes.default.string,
|
|
331
318
|
prepend: _propTypes.default.oneOfType([_propTypes.default.oneOfType([_propTypes.default.string.isRequired, _propTypes.default.element.isRequired]).isRequired, _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string.isRequired, _propTypes.default.element.isRequired]).isRequired).isRequired]),
|
|
332
319
|
append: _propTypes.default.oneOfType([_propTypes.default.oneOfType([_propTypes.default.string.isRequired, _propTypes.default.element.isRequired]).isRequired, _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string.isRequired, _propTypes.default.element.isRequired]).isRequired).isRequired]),
|
|
@@ -28,11 +28,12 @@ var _combo_box_title = require("./combo_box_title");
|
|
|
28
28
|
var _i18n = require("../../i18n");
|
|
29
29
|
var _filter_select_item = require("../../filter_group/filter_select_item");
|
|
30
30
|
var _badge = require("../../badge");
|
|
31
|
-
var _popover_panel = require("../../popover/popover_panel");
|
|
32
31
|
var _text_truncate = require("../../text_truncate");
|
|
32
|
+
var _input_popover = require("../../popover/input_popover");
|
|
33
33
|
var _react2 = require("@emotion/react");
|
|
34
|
-
var _excluded = ["
|
|
35
|
-
_excluded2 = ["
|
|
34
|
+
var _excluded = ["children"],
|
|
35
|
+
_excluded2 = ["key", "isGroupLabelOption", "label", "value", "prepend", "append", "truncationProps"],
|
|
36
|
+
_excluded3 = ["data-test-subj", "activeOptionIndex", "areAllOptionsSelected", "customOptionText", "fullWidth", "getSelectedOptionForSearchValue", "isCaseSensitive", "isLoading", "listRef", "matchingOptions", "onCloseList", "onCreateOption", "onOptionClick", "onOptionEnterKey", "onScroll", "options", "renderOption", "rootId", "rowHeight", "scrollToIndex", "searchValue", "selectedOptions", "singleSelection", "delimiter", "truncationProps", "listboxAriaLabel"];
|
|
36
37
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
37
38
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
38
39
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
@@ -61,43 +62,25 @@ var EuiComboBoxOptionsList = /*#__PURE__*/function (_Component) {
|
|
|
61
62
|
args[_key] = arguments[_key];
|
|
62
63
|
}
|
|
63
64
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
64
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "listRefInstance", null);
|
|
65
65
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "listRef", null);
|
|
66
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "listBoxRef", null);
|
|
67
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "updatePosition", function () {
|
|
68
|
-
// Wait a beat for the DOM to update, since we depend on DOM elements' bounds.
|
|
69
|
-
requestAnimationFrame(function () {
|
|
70
|
-
_this.props.updatePosition(_this.listRefInstance);
|
|
71
|
-
});
|
|
72
|
-
});
|
|
73
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "closeListOnScroll", function (event) {
|
|
74
|
-
// Close the list when a scroll event happens, but not if the scroll happened in the options list.
|
|
75
|
-
// This mirrors Firefox's approach of auto-closing `select` elements onscroll.
|
|
76
|
-
if (_this.listRefInstance && event.target && _this.listRefInstance.contains(event.target) === false) {
|
|
77
|
-
_this.props.onCloseList(event);
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "listRefCallback", function (ref) {
|
|
81
|
-
_this.props.listRef(ref);
|
|
82
|
-
_this.listRefInstance = ref;
|
|
83
|
-
});
|
|
84
66
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "setListRef", function (ref) {
|
|
85
67
|
_this.listRef = ref;
|
|
86
68
|
});
|
|
87
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
69
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "ListInnerElement", function (_ref) {
|
|
70
|
+
var children = _ref.children,
|
|
71
|
+
rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
72
|
+
return (0, _react2.jsx)("div", (0, _extends2.default)({}, rest, {
|
|
73
|
+
"aria-label": _this.props.listboxAriaLabel,
|
|
74
|
+
id: _this.props.rootId('listbox'),
|
|
75
|
+
role: "listbox",
|
|
76
|
+
tabIndex: "0"
|
|
77
|
+
}), children);
|
|
95
78
|
});
|
|
96
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "ListRow", function (
|
|
79
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "ListRow", function (_ref2) {
|
|
97
80
|
var _option$key;
|
|
98
|
-
var data =
|
|
99
|
-
index =
|
|
100
|
-
style =
|
|
81
|
+
var data = _ref2.data,
|
|
82
|
+
index = _ref2.index,
|
|
83
|
+
style = _ref2.style;
|
|
101
84
|
var option = data[index];
|
|
102
85
|
var key = option.key,
|
|
103
86
|
isGroupLabelOption = option.isGroupLabelOption,
|
|
@@ -106,12 +89,11 @@ var EuiComboBoxOptionsList = /*#__PURE__*/function (_Component) {
|
|
|
106
89
|
prepend = option.prepend,
|
|
107
90
|
append = option.append,
|
|
108
91
|
_truncationProps = option.truncationProps,
|
|
109
|
-
rest = (0, _objectWithoutProperties2.default)(option,
|
|
92
|
+
rest = (0, _objectWithoutProperties2.default)(option, _excluded2);
|
|
110
93
|
var _this$props = _this.props,
|
|
111
94
|
singleSelection = _this$props.singleSelection,
|
|
112
95
|
selectedOptions = _this$props.selectedOptions,
|
|
113
96
|
onOptionClick = _this$props.onOptionClick,
|
|
114
|
-
optionRef = _this$props.optionRef,
|
|
115
97
|
activeOptionIndex = _this$props.activeOptionIndex,
|
|
116
98
|
renderOption = _this$props.renderOption,
|
|
117
99
|
searchValue = _this$props.searchValue,
|
|
@@ -139,7 +121,6 @@ var EuiComboBoxOptionsList = /*#__PURE__*/function (_Component) {
|
|
|
139
121
|
onOptionClick(option);
|
|
140
122
|
}
|
|
141
123
|
},
|
|
142
|
-
ref: optionRef.bind((0, _assertThisInitialized2.default)(_this), index),
|
|
143
124
|
isFocused: optionIsFocused,
|
|
144
125
|
checked: checked,
|
|
145
126
|
showIcons: singleSelection ? true : false,
|
|
@@ -198,51 +179,12 @@ var EuiComboBoxOptionsList = /*#__PURE__*/function (_Component) {
|
|
|
198
179
|
return _this;
|
|
199
180
|
}
|
|
200
181
|
(0, _createClass2.default)(EuiComboBoxOptionsList, [{
|
|
201
|
-
key: "componentDidMount",
|
|
202
|
-
value: function componentDidMount() {
|
|
203
|
-
var _this2 = this;
|
|
204
|
-
// Wait a frame, otherwise moving focus from one combo box to another will result in the class
|
|
205
|
-
// being removed from the body.
|
|
206
|
-
requestAnimationFrame(function () {
|
|
207
|
-
document.body.classList.add('euiBody-hasPortalContent');
|
|
208
|
-
});
|
|
209
|
-
this.updatePosition();
|
|
210
|
-
window.addEventListener('resize', this.updatePosition);
|
|
211
|
-
|
|
212
|
-
// Firefox will trigger a scroll event in many common situations when the options list div is appended
|
|
213
|
-
// to the DOM; in testing it was always within 100ms, but setting a timeout here for 500ms to be safe
|
|
214
|
-
setTimeout(function () {
|
|
215
|
-
window.addEventListener('scroll', _this2.closeListOnScroll, {
|
|
216
|
-
passive: true,
|
|
217
|
-
// for better performance as we won't call preventDefault
|
|
218
|
-
capture: true // scroll events don't bubble, they must be captured instead
|
|
219
|
-
});
|
|
220
|
-
}, 500);
|
|
221
|
-
}
|
|
222
|
-
}, {
|
|
223
182
|
key: "componentDidUpdate",
|
|
224
183
|
value: function componentDidUpdate(prevProps) {
|
|
225
|
-
var options = prevProps.options,
|
|
226
|
-
selectedOptions = prevProps.selectedOptions,
|
|
227
|
-
searchValue = prevProps.searchValue;
|
|
228
|
-
|
|
229
|
-
// We don't compare matchingOptions because that will result in a loop.
|
|
230
|
-
if (searchValue !== this.props.searchValue || options !== this.props.options || selectedOptions !== this.props.selectedOptions) {
|
|
231
|
-
this.updatePosition();
|
|
232
|
-
}
|
|
233
184
|
if (this.listRef && typeof this.props.activeOptionIndex !== 'undefined' && this.props.activeOptionIndex !== prevProps.activeOptionIndex) {
|
|
234
185
|
this.listRef.scrollToItem(this.props.activeOptionIndex, 'auto');
|
|
235
186
|
}
|
|
236
187
|
}
|
|
237
|
-
}, {
|
|
238
|
-
key: "componentWillUnmount",
|
|
239
|
-
value: function componentWillUnmount() {
|
|
240
|
-
document.body.classList.remove('euiBody-hasPortalContent');
|
|
241
|
-
window.removeEventListener('resize', this.updatePosition);
|
|
242
|
-
window.removeEventListener('scroll', this.closeListOnScroll, {
|
|
243
|
-
capture: true
|
|
244
|
-
});
|
|
245
|
-
}
|
|
246
188
|
}, {
|
|
247
189
|
key: "render",
|
|
248
190
|
value: function render() {
|
|
@@ -262,10 +204,7 @@ var EuiComboBoxOptionsList = /*#__PURE__*/function (_Component) {
|
|
|
262
204
|
onOptionClick = _this$props2.onOptionClick,
|
|
263
205
|
onOptionEnterKey = _this$props2.onOptionEnterKey,
|
|
264
206
|
onScroll = _this$props2.onScroll,
|
|
265
|
-
optionRef = _this$props2.optionRef,
|
|
266
207
|
options = _this$props2.options,
|
|
267
|
-
_this$props2$position = _this$props2.position,
|
|
268
|
-
position = _this$props2$position === void 0 ? 'bottom' : _this$props2$position,
|
|
269
208
|
renderOption = _this$props2.renderOption,
|
|
270
209
|
rootId = _this$props2.rootId,
|
|
271
210
|
rowHeight = _this$props2.rowHeight,
|
|
@@ -273,14 +212,10 @@ var EuiComboBoxOptionsList = /*#__PURE__*/function (_Component) {
|
|
|
273
212
|
searchValue = _this$props2.searchValue,
|
|
274
213
|
selectedOptions = _this$props2.selectedOptions,
|
|
275
214
|
singleSelection = _this$props2.singleSelection,
|
|
276
|
-
updatePosition = _this$props2.updatePosition,
|
|
277
|
-
width = _this$props2.width,
|
|
278
215
|
delimiter = _this$props2.delimiter,
|
|
279
|
-
zIndex = _this$props2.zIndex,
|
|
280
|
-
style = _this$props2.style,
|
|
281
216
|
truncationProps = _this$props2.truncationProps,
|
|
282
217
|
listboxAriaLabel = _this$props2.listboxAriaLabel,
|
|
283
|
-
rest = (0, _objectWithoutProperties2.default)(_this$props2,
|
|
218
|
+
rest = (0, _objectWithoutProperties2.default)(_this$props2, _excluded3);
|
|
284
219
|
var emptyStateContent;
|
|
285
220
|
if (isLoading) {
|
|
286
221
|
emptyStateContent = (0, _react2.jsx)(_flex.EuiFlexGroup, {
|
|
@@ -377,44 +312,30 @@ var EuiComboBoxOptionsList = /*#__PURE__*/function (_Component) {
|
|
|
377
312
|
var numVisibleOptions = matchingOptions.length < 7 ? matchingOptions.length : 7;
|
|
378
313
|
var height = numVisibleOptions * (rowHeight + 1); // Add one for the border
|
|
379
314
|
|
|
380
|
-
// bounded by max-height of
|
|
315
|
+
// bounded by max-height of .euiComboBoxOptionsList
|
|
381
316
|
var boundedHeight = height > 200 ? 200 : height;
|
|
382
317
|
var optionsList = (0, _react2.jsx)(_reactWindow.FixedSizeList, {
|
|
318
|
+
className: "euiComboBoxOptionsList__virtualization",
|
|
383
319
|
height: boundedHeight,
|
|
384
320
|
onScroll: onScroll,
|
|
385
321
|
itemCount: matchingOptions.length,
|
|
386
322
|
itemSize: rowHeight,
|
|
387
323
|
itemData: matchingOptions,
|
|
388
324
|
ref: this.setListRef,
|
|
389
|
-
|
|
390
|
-
width:
|
|
325
|
+
innerElementType: this.ListInnerElement,
|
|
326
|
+
width: this.context
|
|
391
327
|
}, this.ListRow);
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
* Reusing the EuiPopover__panel classes to help with consistency/maintenance.
|
|
395
|
-
* But this should really be converted to user the popover component.
|
|
396
|
-
*/
|
|
397
|
-
var classes = (0, _classnames.default)('euiComboBoxOptionsList');
|
|
398
|
-
return (0, _react2.jsx)(_popover_panel.EuiPopoverPanel, (0, _extends2.default)({
|
|
399
|
-
paddingSize: "none",
|
|
400
|
-
hasShadow: false,
|
|
401
|
-
className: classes,
|
|
402
|
-
panelRef: this.listRefCallback,
|
|
328
|
+
return (0, _react2.jsx)("div", (0, _extends2.default)({
|
|
329
|
+
className: "euiComboBoxOptionsList",
|
|
403
330
|
"data-test-subj": (0, _classnames.default)('comboBoxOptionsList', dataTestSubj),
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
}),
|
|
407
|
-
isOpen: true,
|
|
408
|
-
isAttached: true,
|
|
409
|
-
position: position
|
|
410
|
-
}, rest), (0, _react2.jsx)("div", {
|
|
411
|
-
className: "euiComboBoxOptionsList__rowWrap"
|
|
412
|
-
}, emptyState || optionsList));
|
|
331
|
+
ref: listRef
|
|
332
|
+
}, rest), emptyState || optionsList);
|
|
413
333
|
}
|
|
414
334
|
}]);
|
|
415
335
|
return EuiComboBoxOptionsList;
|
|
416
336
|
}(_react.Component);
|
|
417
337
|
exports.EuiComboBoxOptionsList = EuiComboBoxOptionsList;
|
|
338
|
+
(0, _defineProperty2.default)(EuiComboBoxOptionsList, "contextType", _input_popover.EuiInputPopoverWidthContext);
|
|
418
339
|
(0, _defineProperty2.default)(EuiComboBoxOptionsList, "defaultProps", {
|
|
419
340
|
'data-test-subj': '',
|
|
420
341
|
rowHeight: 29,
|
|
@@ -430,9 +351,9 @@ EuiComboBoxOptionsList.propTypes = {
|
|
|
430
351
|
areAllOptionsSelected: _propTypes.default.bool,
|
|
431
352
|
listboxAriaLabel: _propTypes.default.string.isRequired,
|
|
432
353
|
/**
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
354
|
+
* Creates a custom text option. You can use `{searchValue}` inside your string to better customize your text.
|
|
355
|
+
* It won't show if there's no onCreateOption.
|
|
356
|
+
*/
|
|
436
357
|
customOptionText: _propTypes.default.string,
|
|
437
358
|
fullWidth: _propTypes.default.bool,
|
|
438
359
|
getSelectedOptionForSearchValue: _propTypes.default.func,
|
|
@@ -471,10 +392,9 @@ EuiComboBoxOptionsList.propTypes = {
|
|
|
471
392
|
onOptionClick: _propTypes.default.func,
|
|
472
393
|
onOptionEnterKey: _propTypes.default.func,
|
|
473
394
|
onScroll: _propTypes.default.any,
|
|
474
|
-
optionRef: _propTypes.default.func.isRequired,
|
|
475
395
|
/**
|
|
476
|
-
|
|
477
|
-
|
|
396
|
+
* Array of EuiComboBoxOptionOption objects. See #EuiComboBoxOptionOption
|
|
397
|
+
*/
|
|
478
398
|
options: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
479
399
|
isGroupLabelOption: _propTypes.default.bool,
|
|
480
400
|
label: _propTypes.default.string.isRequired,
|
|
@@ -502,7 +422,6 @@ EuiComboBoxOptionsList.propTypes = {
|
|
|
502
422
|
"data-test-subj": _propTypes.default.string,
|
|
503
423
|
css: _propTypes.default.any
|
|
504
424
|
}).isRequired).isRequired,
|
|
505
|
-
position: _propTypes.default.oneOf(["top", "bottom"]),
|
|
506
425
|
renderOption: _propTypes.default.func,
|
|
507
426
|
rootId: _propTypes.default.any.isRequired,
|
|
508
427
|
rowHeight: _propTypes.default.number.isRequired,
|
|
@@ -535,12 +454,9 @@ EuiComboBoxOptionsList.propTypes = {
|
|
|
535
454
|
"data-test-subj": _propTypes.default.string,
|
|
536
455
|
css: _propTypes.default.any
|
|
537
456
|
}).isRequired).isRequired,
|
|
538
|
-
updatePosition: _propTypes.default.func.isRequired,
|
|
539
|
-
width: _propTypes.default.number.isRequired,
|
|
540
457
|
singleSelection: _propTypes.default.oneOfType([_propTypes.default.bool.isRequired, _propTypes.default.shape({
|
|
541
458
|
asPlainText: _propTypes.default.bool
|
|
542
459
|
}).isRequired]),
|
|
543
460
|
delimiter: _propTypes.default.string,
|
|
544
|
-
zIndex: _propTypes.default.number,
|
|
545
461
|
truncationProps: _propTypes.default.any
|
|
546
462
|
};
|
|
@@ -109,7 +109,7 @@ var EuiContextMenuPanel = /*#__PURE__*/function (_Component) {
|
|
|
109
109
|
onClose = _this$props.onClose,
|
|
110
110
|
showPreviousPanel = _this$props.showPreviousPanel;
|
|
111
111
|
if (onClose && (items !== null && items !== void 0 && items.length || document.activeElement === _this.backButton || document.activeElement === _this.panel)) {
|
|
112
|
-
if (event.key === _services.
|
|
112
|
+
if (event.key === _services.keys.ARROW_LEFT) {
|
|
113
113
|
if (showPreviousPanel) {
|
|
114
114
|
event.preventDefault();
|
|
115
115
|
event.stopPropagation();
|
|
@@ -122,7 +122,7 @@ var EuiContextMenuPanel = /*#__PURE__*/function (_Component) {
|
|
|
122
122
|
}
|
|
123
123
|
if (items !== null && items !== void 0 && items.length) {
|
|
124
124
|
switch (event.key) {
|
|
125
|
-
case _services.
|
|
125
|
+
case _services.keys.TAB:
|
|
126
126
|
requestAnimationFrame(function () {
|
|
127
127
|
// NOTE: document.activeElement is stale if not wrapped in requestAnimationFrame
|
|
128
128
|
var focusedItemIndex = _this.state.menuItems.indexOf(document.activeElement);
|
|
@@ -133,21 +133,21 @@ var EuiContextMenuPanel = /*#__PURE__*/function (_Component) {
|
|
|
133
133
|
});
|
|
134
134
|
});
|
|
135
135
|
break;
|
|
136
|
-
case _services.
|
|
136
|
+
case _services.keys.ARROW_UP:
|
|
137
137
|
event.preventDefault();
|
|
138
138
|
_this.focusMenuItem('up');
|
|
139
139
|
if (_this.props.onUseKeyboardToNavigate) {
|
|
140
140
|
_this.props.onUseKeyboardToNavigate();
|
|
141
141
|
}
|
|
142
142
|
break;
|
|
143
|
-
case _services.
|
|
143
|
+
case _services.keys.ARROW_DOWN:
|
|
144
144
|
event.preventDefault();
|
|
145
145
|
_this.focusMenuItem('down');
|
|
146
146
|
if (_this.props.onUseKeyboardToNavigate) {
|
|
147
147
|
_this.props.onUseKeyboardToNavigate();
|
|
148
148
|
}
|
|
149
149
|
break;
|
|
150
|
-
case _services.
|
|
150
|
+
case _services.keys.ARROW_RIGHT:
|
|
151
151
|
if (_this.props.showNextPanel) {
|
|
152
152
|
event.preventDefault();
|
|
153
153
|
_this.props.showNextPanel(onClose && _this.state.focusedItemIndex ? _this.state.focusedItemIndex - 1 // Account for panel title back button
|
|
@@ -115,7 +115,7 @@ var euiFlexGridStyles = function euiFlexGridStyles(euiThemeContext) {
|
|
|
115
115
|
gutterSizes: {
|
|
116
116
|
none: /*#__PURE__*/(0, _react.css)(";label:none;"),
|
|
117
117
|
s: /*#__PURE__*/(0, _react.css)("gap:", euiTheme.size.s, ";;label:s;"),
|
|
118
|
-
m: /*#__PURE__*/(0, _react.css)("gap:", euiTheme.size.
|
|
118
|
+
m: /*#__PURE__*/(0, _react.css)("gap:", euiTheme.size.base, ";;label:m;"),
|
|
119
119
|
l: /*#__PURE__*/(0, _react.css)("gap:", euiTheme.size.l, ";;label:l;"),
|
|
120
120
|
xl: /*#__PURE__*/(0, _react.css)("gap:", euiTheme.size.xl, ";;label:xl;")
|
|
121
121
|
},
|
|
@@ -159,7 +159,7 @@ var euiFlexGroupStyles = function euiFlexGroupStyles(euiThemeContext) {
|
|
|
159
159
|
none: /*#__PURE__*/(0, _react.css)(";label:none;"),
|
|
160
160
|
xs: /*#__PURE__*/(0, _react.css)("gap:", euiTheme.size.xs, ";;label:xs;"),
|
|
161
161
|
s: /*#__PURE__*/(0, _react.css)("gap:", euiTheme.size.s, ";;label:s;"),
|
|
162
|
-
m: /*#__PURE__*/(0, _react.css)("gap:", euiTheme.size.
|
|
162
|
+
m: /*#__PURE__*/(0, _react.css)("gap:", euiTheme.size.base, ";;label:m;"),
|
|
163
163
|
l: /*#__PURE__*/(0, _react.css)("gap:", euiTheme.size.l, ";;label:l;"),
|
|
164
164
|
xl: /*#__PURE__*/(0, _react.css)("gap:", euiTheme.size.xxl, ";;label:xl;")
|
|
165
165
|
},
|
|
@@ -12,13 +12,13 @@ var _mixins = require("../../themes/amsterdam/global_styling/mixins");
|
|
|
12
12
|
var _color = require("../../services/color");
|
|
13
13
|
var _form = require("../form/form.styles");
|
|
14
14
|
var _templateObject, _templateObject2;
|
|
15
|
-
/*
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
15
|
+
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; } /*
|
|
16
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
17
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
18
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
19
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
20
|
+
* Side Public License, v 1.
|
|
21
|
+
*/
|
|
22
22
|
var euiFlyoutSlideInRight = (0, _react.keyframes)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n 0% {\n opacity: 0;\n transform: translateX(100%);\n }\n 75% {\n opacity: 1;\n transform: translateX(0%);\n }\n"])));
|
|
23
23
|
exports.euiFlyoutSlideInRight = euiFlyoutSlideInRight;
|
|
24
24
|
var euiFlyoutSlideInLeft = (0, _react.keyframes)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n 0% {\n opacity: 0;\n transform: translateX(-100%);\n }\n 75% {\n opacity: 1;\n transform: translateX(0%);\n }\n"])));
|
|
@@ -38,6 +38,14 @@ var euiFlyoutCloseButtonStyles = function euiFlyoutCloseButtonStyles(euiThemeCon
|
|
|
38
38
|
};
|
|
39
39
|
};
|
|
40
40
|
exports.euiFlyoutCloseButtonStyles = euiFlyoutCloseButtonStyles;
|
|
41
|
+
var _ref = process.env.NODE_ENV === "production" ? {
|
|
42
|
+
name: "yokctr-noAnimation",
|
|
43
|
+
styles: "animation-duration:0s!important;label:noAnimation;"
|
|
44
|
+
} : {
|
|
45
|
+
name: "yokctr-noAnimation",
|
|
46
|
+
styles: "animation-duration:0s!important;label:noAnimation;",
|
|
47
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
48
|
+
};
|
|
41
49
|
var euiFlyoutStyles = function euiFlyoutStyles(euiThemeContext) {
|
|
42
50
|
var euiTheme = euiThemeContext.euiTheme;
|
|
43
51
|
return {
|
|
@@ -53,10 +61,11 @@ var euiFlyoutStyles = function euiFlyoutStyles(euiThemeContext) {
|
|
|
53
61
|
left: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('left', 0), " clip-path:polygon(0 0, 150% 0, 150% 100%, 0 100%);", _global_styling.euiCanAnimate, "{animation:", euiFlyoutSlideInLeft, " ", euiTheme.animation.normal, " ", euiTheme.animation.resistance, ";};label:left;"),
|
|
54
62
|
// Type
|
|
55
63
|
overlay: /*#__PURE__*/(0, _react.css)((0, _mixins.euiShadowXLarge)(euiThemeContext), ";;label:overlay;"),
|
|
56
|
-
push:
|
|
57
|
-
|
|
64
|
+
push: {
|
|
65
|
+
push: /*#__PURE__*/(0, _react.css)("clip-path:none;z-index:", Number(euiTheme.levels.flyout) - 1, ";;label:push;"),
|
|
58
66
|
right: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('border-left', euiTheme.border.thick), ";;label:right;"),
|
|
59
|
-
left: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('border-right', euiTheme.border.thick), ";;label:left;")
|
|
67
|
+
left: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('border-right', euiTheme.border.thick), ";;label:left;"),
|
|
68
|
+
noAnimation: _ref
|
|
60
69
|
},
|
|
61
70
|
// Padding
|
|
62
71
|
paddingSizes: {
|
|
@@ -794,6 +794,10 @@ EuiDualRangeClass.propTypes = {
|
|
|
794
794
|
* Alignment of the popover relative to the input
|
|
795
795
|
*/
|
|
796
796
|
anchorPosition: _propTypes.default.oneOf(["downLeft", "downRight", "downCenter"]),
|
|
797
|
+
/**
|
|
798
|
+
* Allows automatically closing the input popover on page scroll
|
|
799
|
+
*/
|
|
800
|
+
closeOnScroll: _propTypes.default.bool,
|
|
797
801
|
inputRef: _propTypes.default.any,
|
|
798
802
|
onPanelResize: _propTypes.default.func,
|
|
799
803
|
/**
|
|
@@ -817,17 +817,6 @@ Object.keys(_steps).forEach(function (key) {
|
|
|
817
817
|
}
|
|
818
818
|
});
|
|
819
819
|
});
|
|
820
|
-
var _suggest = require("./suggest");
|
|
821
|
-
Object.keys(_suggest).forEach(function (key) {
|
|
822
|
-
if (key === "default" || key === "__esModule") return;
|
|
823
|
-
if (key in exports && exports[key] === _suggest[key]) return;
|
|
824
|
-
Object.defineProperty(exports, key, {
|
|
825
|
-
enumerable: true,
|
|
826
|
-
get: function get() {
|
|
827
|
-
return _suggest[key];
|
|
828
|
-
}
|
|
829
|
-
});
|
|
830
|
-
});
|
|
831
820
|
var _table = require("./table");
|
|
832
821
|
Object.keys(_table).forEach(function (key) {
|
|
833
822
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -5,7 +5,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.EuiInputPopover = void 0;
|
|
8
|
+
exports.EuiInputPopoverWidthContext = exports.EuiInputPopover = void 0;
|
|
9
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
11
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
@@ -21,7 +21,7 @@ var _resize_observer = require("../observer/resize_observer");
|
|
|
21
21
|
var _focus_trap = require("../focus_trap");
|
|
22
22
|
var _form = require("../form/form.styles");
|
|
23
23
|
var _popover = require("./popover");
|
|
24
|
-
var _excluded = ["children", "className", "closePopover", "disableFocusTrap", "focusTrapProps", "input", "fullWidth", "panelMinWidth", "onPanelResize", "inputRef", "panelRef"];
|
|
24
|
+
var _excluded = ["children", "className", "closePopover", "closeOnScroll", "disableFocusTrap", "focusTrapProps", "input", "fullWidth", "panelMinWidth", "onPanelResize", "inputRef", "panelRef"];
|
|
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
|
|
@@ -33,11 +33,16 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
33
33
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
34
34
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
35
35
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
36
|
+
// Used by child components that want to know the parent popover width
|
|
37
|
+
var EuiInputPopoverWidthContext = /*#__PURE__*/(0, _react.createContext)(0);
|
|
38
|
+
exports.EuiInputPopoverWidthContext = EuiInputPopoverWidthContext;
|
|
36
39
|
var EuiInputPopover = function EuiInputPopover(_ref) {
|
|
37
40
|
var _props$panelProps;
|
|
38
41
|
var children = _ref.children,
|
|
39
42
|
className = _ref.className,
|
|
40
43
|
closePopover = _ref.closePopover,
|
|
44
|
+
_ref$closeOnScroll = _ref.closeOnScroll,
|
|
45
|
+
closeOnScroll = _ref$closeOnScroll === void 0 ? false : _ref$closeOnScroll,
|
|
41
46
|
_ref$disableFocusTrap = _ref.disableFocusTrap,
|
|
42
47
|
disableFocusTrap = _ref$disableFocusTrap === void 0 ? false : _ref$disableFocusTrap,
|
|
43
48
|
focusTrapProps = _ref.focusTrapProps,
|
|
@@ -118,6 +123,40 @@ var EuiInputPopover = function EuiInputPopover(_ref) {
|
|
|
118
123
|
}
|
|
119
124
|
}
|
|
120
125
|
}, [disableFocusTrap, closePopover, panelPropsOnKeyDown]);
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Optional close on scroll behavior
|
|
129
|
+
*/
|
|
130
|
+
|
|
131
|
+
(0, _react.useEffect)(function () {
|
|
132
|
+
// When the popover opens, add a scroll listener to the page (& remove it after)
|
|
133
|
+
if (closeOnScroll && panelEl) {
|
|
134
|
+
// Close the popover, but only if the scroll event occurs outside the input or the popover itself
|
|
135
|
+
var closePopoverOnScroll = function closePopoverOnScroll(event) {
|
|
136
|
+
if (!panelEl || !inputEl || !event.target) return;
|
|
137
|
+
var scrollTarget = event.target;
|
|
138
|
+
if (panelEl.contains(scrollTarget) === false && inputEl.contains(scrollTarget) === false) {
|
|
139
|
+
closePopover();
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
// Firefox will trigger a scroll event in many common situations when the options list div is appended
|
|
144
|
+
// to the DOM; in testing it was always within 100ms, but setting a timeout here for 500ms to be safe
|
|
145
|
+
var timeoutId = setTimeout(function () {
|
|
146
|
+
window.addEventListener('scroll', closePopoverOnScroll, {
|
|
147
|
+
passive: true,
|
|
148
|
+
// for better performance as we won't call preventDefault
|
|
149
|
+
capture: true // scroll events don't bubble, they must be captured instead
|
|
150
|
+
});
|
|
151
|
+
}, 500);
|
|
152
|
+
return function () {
|
|
153
|
+
window.removeEventListener('scroll', closePopoverOnScroll, {
|
|
154
|
+
capture: true
|
|
155
|
+
});
|
|
156
|
+
clearTimeout(timeoutId);
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
}, [closeOnScroll, closePopover, panelEl, inputEl]);
|
|
121
160
|
return (0, _react2.jsx)(_popover.EuiPopover, (0, _extends2.default)({
|
|
122
161
|
css: /*#__PURE__*/(0, _react2.css)(fullWidth ? undefined : (0, _global_styling.logicalCSS)('max-width', form.maxWidth), ";label:EuiInputPopover;"),
|
|
123
162
|
repositionToCrossAxis: false,
|
|
@@ -135,7 +174,9 @@ var EuiInputPopover = function EuiInputPopover(_ref) {
|
|
|
135
174
|
}), (0, _react2.jsx)(_focus_trap.EuiFocusTrap, (0, _extends2.default)({
|
|
136
175
|
clickOutsideDisables: true,
|
|
137
176
|
disabled: disableFocusTrap
|
|
138
|
-
}, focusTrapProps),
|
|
177
|
+
}, focusTrapProps), (0, _react2.jsx)(EuiInputPopoverWidthContext.Provider, {
|
|
178
|
+
value: panelWidth
|
|
179
|
+
}, children)));
|
|
139
180
|
};
|
|
140
181
|
exports.EuiInputPopover = EuiInputPopover;
|
|
141
182
|
EuiInputPopover.propTypes = {
|
|
@@ -148,6 +189,10 @@ EuiInputPopover.propTypes = {
|
|
|
148
189
|
*/
|
|
149
190
|
anchorPosition: _propTypes.default.oneOf(["downLeft", "downRight", "downCenter"]),
|
|
150
191
|
disableFocusTrap: _propTypes.default.bool,
|
|
192
|
+
/**
|
|
193
|
+
* Allows automatically closing the input popover on page scroll
|
|
194
|
+
*/
|
|
195
|
+
closeOnScroll: _propTypes.default.bool,
|
|
151
196
|
fullWidth: _propTypes.default.bool,
|
|
152
197
|
input: _propTypes.default.any.isRequired,
|
|
153
198
|
inputRef: _propTypes.default.any,
|
|
@@ -135,7 +135,7 @@ var EuiPopover = /*#__PURE__*/function (_Component) {
|
|
|
135
135
|
}, closingTransitionTime);
|
|
136
136
|
});
|
|
137
137
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onKeyDown", function (event) {
|
|
138
|
-
if (event.key === _services.
|
|
138
|
+
if (event.key === _services.keys.ESCAPE) {
|
|
139
139
|
_this.onEscapeKey(event);
|
|
140
140
|
}
|
|
141
141
|
});
|