@elastic/eui 12.3.1 → 12.4.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.
Files changed (102) hide show
  1. package/CHANGELOG.md +16 -1
  2. package/dist/eui.js +1168 -210
  3. package/dist/eui.js.map +1 -1
  4. package/dist/eui.min.js +5 -5
  5. package/es/components/accordion/accordion.js +79 -56
  6. package/es/components/accordion/accordion.test.js +88 -0
  7. package/es/components/badge/badge.js +22 -1
  8. package/es/components/badge/beta_badge/beta_badge.js +22 -1
  9. package/es/components/combo_box/combo_box.js +2 -1
  10. package/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +47 -5
  11. package/es/components/delay_hide/delay_hide.test.js +5 -1
  12. package/es/components/filter_group/filter_button.js +17 -2
  13. package/es/components/form/form_control_layout/form_control_layout_custom_icon.js +22 -1
  14. package/es/components/form/form_control_layout/form_control_layout_icons.js +44 -2
  15. package/es/components/form/range/dual_range.js +1 -1
  16. package/es/components/form/range/range.js +1 -1
  17. package/es/components/form/range/range_highlight.js +1 -1
  18. package/es/components/form/range/range_label.js +27 -8
  19. package/es/components/form/range/range_levels.js +13 -8
  20. package/es/components/form/range/range_levels.test.js +55 -0
  21. package/es/components/form/range/range_slider.js +12 -8
  22. package/es/components/form/range/range_thumb.js +35 -3
  23. package/es/components/form/range/range_ticks.js +43 -22
  24. package/es/components/form/range/range_tooltip.js +20 -4
  25. package/es/components/form/range/range_track.js +33 -14
  26. package/es/components/form/range/range_track.test.js +100 -0
  27. package/es/components/form/range/range_wrapper.js +9 -2
  28. package/es/components/header/header_logo.js +22 -1
  29. package/es/components/icon/assets/cloudDrizzle.js +21 -0
  30. package/es/components/icon/assets/cloudStormy.js +21 -0
  31. package/es/components/icon/assets/cloudSunny.js +21 -0
  32. package/es/components/icon/assets/documentEdit.js +21 -0
  33. package/es/components/icon/assets/documents.js +21 -0
  34. package/es/components/icon/assets/popout.js +1 -1
  35. package/es/components/icon/assets/training.js +21 -0
  36. package/es/components/icon/assets/videoPlayer.js +21 -0
  37. package/es/components/icon/icon.js +29 -1
  38. package/es/components/index.js +1 -0
  39. package/es/components/inner_text/index.js +1 -0
  40. package/es/components/inner_text/inner_text.js +66 -0
  41. package/es/components/inner_text/inner_text.test.js +240 -0
  42. package/es/components/list_group/list_group_item.js +21 -2
  43. package/es/components/popover/popover.js +7 -3
  44. package/es/components/search_bar/query/ast_to_es_query_dsl.js +2 -2
  45. package/es/components/toast/global_toast_list.js +22 -1
  46. package/es/components/toast/toast.js +22 -1
  47. package/es/components/token/token.js +22 -1
  48. package/es/components/tool_tip/icon_tip.js +22 -1
  49. package/eui.d.ts +435 -187
  50. package/lib/components/accordion/accordion.js +79 -55
  51. package/lib/components/accordion/accordion.test.js +96 -0
  52. package/lib/components/badge/badge.js +22 -1
  53. package/lib/components/badge/beta_badge/beta_badge.js +22 -1
  54. package/lib/components/combo_box/combo_box.js +2 -1
  55. package/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +47 -5
  56. package/lib/components/delay_hide/delay_hide.test.js +5 -1
  57. package/lib/components/filter_group/filter_button.js +18 -2
  58. package/lib/components/form/form_control_layout/form_control_layout_custom_icon.js +22 -1
  59. package/lib/components/form/form_control_layout/form_control_layout_icons.js +44 -2
  60. package/lib/components/form/range/dual_range.js +1 -1
  61. package/lib/components/form/range/range.js +1 -1
  62. package/lib/components/form/range/range_label.js +26 -7
  63. package/lib/components/form/range/range_levels.js +12 -7
  64. package/lib/components/form/range/range_levels.test.js +63 -0
  65. package/lib/components/form/range/range_slider.js +13 -8
  66. package/lib/components/form/range/range_thumb.js +34 -2
  67. package/lib/components/form/range/range_ticks.js +43 -21
  68. package/lib/components/form/range/range_tooltip.js +19 -3
  69. package/lib/components/form/range/range_track.js +32 -13
  70. package/lib/components/form/range/range_track.test.js +108 -0
  71. package/lib/components/form/range/range_wrapper.js +9 -4
  72. package/lib/components/header/header_logo.js +22 -1
  73. package/lib/components/icon/assets/cloudDrizzle.js +31 -0
  74. package/lib/components/icon/assets/cloudDrizzle.svg +3 -0
  75. package/lib/components/icon/assets/cloudStormy.js +31 -0
  76. package/lib/components/icon/assets/cloudStormy.svg +3 -0
  77. package/lib/components/icon/assets/cloudSunny.js +31 -0
  78. package/lib/components/icon/assets/cloudSunny.svg +3 -0
  79. package/lib/components/icon/assets/documentEdit.js +31 -0
  80. package/lib/components/icon/assets/documentEdit.svg +3 -0
  81. package/lib/components/icon/assets/documents.js +31 -0
  82. package/lib/components/icon/assets/documents.svg +3 -0
  83. package/lib/components/icon/assets/popout.js +1 -1
  84. package/lib/components/icon/assets/popout.svg +1 -1
  85. package/lib/components/icon/assets/training.js +31 -0
  86. package/lib/components/icon/assets/training.svg +3 -0
  87. package/lib/components/icon/assets/videoPlayer.js +31 -0
  88. package/lib/components/icon/assets/videoPlayer.svg +3 -0
  89. package/lib/components/icon/icon.js +29 -1
  90. package/lib/components/index.js +14 -0
  91. package/lib/components/inner_text/index.js +19 -0
  92. package/lib/components/inner_text/inner_text.js +80 -0
  93. package/lib/components/inner_text/inner_text.test.js +250 -0
  94. package/lib/components/list_group/list_group_item.js +22 -3
  95. package/lib/components/popover/popover.js +7 -3
  96. package/lib/components/search_bar/query/ast_to_es_query_dsl.js +2 -2
  97. package/lib/components/toast/global_toast_list.js +22 -1
  98. package/lib/components/toast/toast.js +22 -1
  99. package/lib/components/token/token.js +22 -1
  100. package/lib/components/tool_tip/icon_tip.js +22 -1
  101. package/package.json +7 -4
  102. package/postcss.config.js +6 -0
@@ -25,8 +25,9 @@ function _assertThisInitialized(self) { if (self === void 0) { throw new Referen
25
25
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
26
26
 
27
27
  import React, { Component } from 'react';
28
- import PropTypes from 'prop-types';
28
+ import PropTypes from "prop-types";
29
29
  import classNames from 'classnames';
30
+ import { keysOf } from '../common';
30
31
  import { EuiIcon } from '../icon';
31
32
  import { EuiFlexGroup, EuiFlexItem } from '../flex';
32
33
  import { EuiMutationObserver } from '../observer/mutation_observer';
@@ -38,18 +39,32 @@ var paddingSizeToClassNameMap = {
38
39
  l: 'euiAccordion__padding--l',
39
40
  xl: 'euiAccordion__padding--xl'
40
41
  };
41
- export var PADDING_SIZES = Object.keys(paddingSizeToClassNameMap);
42
+ export var PADDING_SIZES = keysOf(paddingSizeToClassNameMap);
42
43
  export var EuiAccordion =
43
44
  /*#__PURE__*/
44
45
  function (_Component) {
45
46
  _inherits(EuiAccordion, _Component);
46
47
 
47
- function EuiAccordion(props) {
48
+ function EuiAccordion() {
49
+ var _getPrototypeOf2;
50
+
48
51
  var _this;
49
52
 
50
53
  _classCallCheck(this, EuiAccordion);
51
54
 
52
- _this = _possibleConstructorReturn(this, _getPrototypeOf(EuiAccordion).call(this, props));
55
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
56
+ args[_key] = arguments[_key];
57
+ }
58
+
59
+ _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(EuiAccordion)).call.apply(_getPrototypeOf2, [this].concat(args)));
60
+
61
+ _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "childContent", null);
62
+
63
+ _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "childWrapper", null);
64
+
65
+ _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "state", {
66
+ isOpen: _this.props.initialIsOpen
67
+ });
53
68
 
54
69
  _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "setChildContentHeight", function () {
55
70
  requestAnimationFrame(function () {
@@ -58,14 +73,20 @@ function (_Component) {
58
73
  });
59
74
  });
60
75
 
76
+ _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "onToggle", function () {
77
+ _this.setState(function (prevState) {
78
+ return {
79
+ isOpen: !prevState.isOpen
80
+ };
81
+ }, function () {
82
+ _this.props.onToggle && _this.props.onToggle(_this.state.isOpen);
83
+ });
84
+ });
85
+
61
86
  _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "setChildContentRef", function (node) {
62
87
  _this.childContent = node;
63
88
  });
64
89
 
65
- _this.state = {
66
- isOpen: props.initialIsOpen
67
- };
68
- _this.onToggle = _this.onToggle.bind(_assertThisInitialized(_assertThisInitialized(_this)));
69
90
  return _this;
70
91
  }
71
92
 
@@ -79,23 +100,10 @@ function (_Component) {
79
100
  value: function componentDidUpdate() {
80
101
  this.setChildContentHeight();
81
102
  }
82
- }, {
83
- key: "onToggle",
84
- value: function onToggle() {
85
- var _this2 = this;
86
-
87
- this.setState(function (prevState) {
88
- return {
89
- isOpen: !prevState.isOpen
90
- };
91
- }, function () {
92
- _this2.props.onToggle && _this2.props.onToggle(_this2.state.isOpen);
93
- });
94
- }
95
103
  }, {
96
104
  key: "render",
97
105
  value: function render() {
98
- var _this3 = this;
106
+ var _this2 = this;
99
107
 
100
108
  var _this$props = this.props,
101
109
  children = _this$props.children,
@@ -150,7 +158,7 @@ function (_Component) {
150
158
  }, buttonContent)))), optionalAction), React.createElement("div", {
151
159
  className: "euiAccordion__childWrapper",
152
160
  ref: function ref(node) {
153
- _this3.childWrapper = node;
161
+ _this2.childWrapper = node;
154
162
  },
155
163
  id: id
156
164
  }, React.createElement(EuiMutationObserver, {
@@ -162,7 +170,7 @@ function (_Component) {
162
170
  }, function (mutationRef) {
163
171
  return React.createElement("div", {
164
172
  ref: function ref(_ref) {
165
- _this3.setChildContentRef(_ref);
173
+ _this2.setChildContentRef(_ref);
166
174
 
167
175
  mutationRef(_ref);
168
176
  }
@@ -175,51 +183,52 @@ function (_Component) {
175
183
 
176
184
  return EuiAccordion;
177
185
  }(Component);
186
+
187
+ _defineProperty(EuiAccordion, "defaultProps", {
188
+ initialIsOpen: false,
189
+ paddingSize: 'none'
190
+ });
191
+
178
192
  EuiAccordion.propTypes = {
179
- /**
180
- * The content of the exposed accordion.
181
- */
182
- children: PropTypes.node,
193
+ className: PropTypes.string,
194
+ "aria-label": PropTypes.string,
195
+ "data-test-subj": PropTypes.string,
183
196
  id: PropTypes.string.isRequired,
184
197
 
185
198
  /**
186
- * Class that will apply to the entire accordion.
187
- */
188
- className: PropTypes.string,
199
+ * Class that will apply to the trigger for the accordion.
200
+ */
201
+ buttonClassName: PropTypes.string,
189
202
 
190
203
  /**
191
- * Class that will apply to the trigger for the accordion.
192
- */
204
+ * Class that will apply to the trigger content for the accordion.
205
+ */
193
206
  buttonContentClassName: PropTypes.string,
194
207
 
195
208
  /**
196
- * The content of the clickable trigger
197
- */
209
+ * The content of the clickable trigger
210
+ */
198
211
  buttonContent: PropTypes.node,
199
212
 
200
213
  /**
201
- * Will appear right aligned against the button. Useful for separate actions like deletions.
202
- */
214
+ * Will appear right aligned against the button. Useful for separate actions like deletions.
215
+ */
203
216
  extraAction: PropTypes.node,
204
217
 
205
218
  /**
206
- * The accordion will start in the open state.
207
- */
208
- initialIsOpen: PropTypes.bool,
219
+ * The accordion will start in the open state.
220
+ */
221
+ initialIsOpen: PropTypes.bool.isRequired,
209
222
 
210
223
  /**
211
- * The padding around the exposed accordion content.
212
- */
213
- paddingSize: PropTypes.oneOf(PADDING_SIZES),
224
+ * Optional callback method called on open and close with a single `isOpen` parameter
225
+ */
226
+ onToggle: PropTypes.func,
214
227
 
215
228
  /**
216
- * Optional callback method called on open and close with a single `isOpen` parameter
217
- */
218
- onToggle: PropTypes.func
219
- };
220
- EuiAccordion.defaultProps = {
221
- initialIsOpen: false,
222
- paddingSize: 'none'
229
+ * The padding around the exposed accordion content.
230
+ */
231
+ paddingSize: PropTypes.oneOf(["none", "xs", "s", "m", "l", "xl"]).isRequired
223
232
  };
224
233
  EuiAccordion.__docgenInfo = {
225
234
  "description": "",
@@ -288,12 +297,26 @@ EuiAccordion.__docgenInfo = {
288
297
  "required": false,
289
298
  "description": "The padding around the exposed accordion content."
290
299
  },
291
- "children": {
300
+ "className": {
292
301
  "type": {
293
- "name": "node"
302
+ "name": "string"
303
+ },
304
+ "required": false,
305
+ "description": ""
306
+ },
307
+ "aria-label": {
308
+ "type": {
309
+ "name": "string"
294
310
  },
295
311
  "required": false,
296
- "description": "The content of the exposed accordion."
312
+ "description": ""
313
+ },
314
+ "data-test-subj": {
315
+ "type": {
316
+ "name": "string"
317
+ },
318
+ "required": false,
319
+ "description": ""
297
320
  },
298
321
  "id": {
299
322
  "type": {
@@ -302,19 +325,19 @@ EuiAccordion.__docgenInfo = {
302
325
  "required": true,
303
326
  "description": ""
304
327
  },
305
- "className": {
328
+ "buttonClassName": {
306
329
  "type": {
307
330
  "name": "string"
308
331
  },
309
332
  "required": false,
310
- "description": "Class that will apply to the entire accordion."
333
+ "description": "Class that will apply to the trigger for the accordion."
311
334
  },
312
335
  "buttonContentClassName": {
313
336
  "type": {
314
337
  "name": "string"
315
338
  },
316
339
  "required": false,
317
- "description": "Class that will apply to the trigger for the accordion."
340
+ "description": "Class that will apply to the trigger content for the accordion."
318
341
  },
319
342
  "buttonContent": {
320
343
  "type": {
@@ -0,0 +1,88 @@
1
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
3
+ import React from 'react';
4
+ import { render, mount } from 'enzyme';
5
+ import { requiredProps } from '../../test/required_props';
6
+ import { EuiAccordion } from './accordion';
7
+ var id = 0;
8
+
9
+ var getId = function getId() {
10
+ return "".concat(id++);
11
+ };
12
+
13
+ describe('EuiAccordion', function () {
14
+ test('is rendered', function () {
15
+ var component = render(React.createElement(EuiAccordion, _extends({
16
+ id: getId()
17
+ }, requiredProps)));
18
+ expect(component).toMatchSnapshot();
19
+ });
20
+ describe('props', function () {
21
+ describe('buttonContentClassName', function () {
22
+ it('is rendered', function () {
23
+ var component = render(React.createElement(EuiAccordion, {
24
+ id: getId(),
25
+ buttonContentClassName: "button content class name"
26
+ }));
27
+ expect(component).toMatchSnapshot();
28
+ });
29
+ });
30
+ describe('buttonContent', function () {
31
+ it('is rendered', function () {
32
+ var component = render(React.createElement(EuiAccordion, {
33
+ id: getId(),
34
+ buttonContent: React.createElement("div", null, "Button content")
35
+ }));
36
+ expect(component).toMatchSnapshot();
37
+ });
38
+ });
39
+ describe('extraAction', function () {
40
+ it('is rendered', function () {
41
+ var component = render(React.createElement(EuiAccordion, {
42
+ id: getId(),
43
+ extraAction: React.createElement("button", null, "Extra action")
44
+ }));
45
+ expect(component).toMatchSnapshot();
46
+ });
47
+ });
48
+ describe('initialIsOpen', function () {
49
+ it('is rendered', function () {
50
+ var component = render(React.createElement(EuiAccordion, {
51
+ id: getId(),
52
+ initialIsOpen: true
53
+ }, React.createElement("p", null, "You can see me.")));
54
+ expect(component).toMatchSnapshot();
55
+ });
56
+ });
57
+ });
58
+ describe('behavior', function () {
59
+ it('opens when clicked once', function () {
60
+ var component = mount(React.createElement(EuiAccordion, {
61
+ id: getId()
62
+ }));
63
+ component.find('button').simulate('click');
64
+ expect(component).toMatchSnapshot();
65
+ });
66
+ it('closes when clicked twice', function () {
67
+ var component = mount(React.createElement(EuiAccordion, {
68
+ id: getId()
69
+ }));
70
+ component.find('button').simulate('click');
71
+ component.find('button').simulate('click');
72
+ expect(component).toMatchSnapshot();
73
+ });
74
+ it('accepts and calls an optional callback on open and close', function () {
75
+ var onToggleHandler = jest.fn();
76
+ var component = mount(React.createElement(EuiAccordion, {
77
+ id: getId(),
78
+ onToggle: onToggleHandler
79
+ }));
80
+ component.find('button').simulate('click');
81
+ expect(onToggleHandler).toBeCalled();
82
+ expect(onToggleHandler).toBeCalledWith(true);
83
+ component.find('button').simulate('click');
84
+ expect(onToggleHandler).toBeCalled();
85
+ expect(onToggleHandler).toBeCalledWith(false);
86
+ });
87
+ });
88
+ });
@@ -138,7 +138,7 @@ EuiBadge.propTypes = {
138
138
  /**
139
139
  * Accepts any string from our icon library
140
140
  */
141
- iconType: PropTypes.oneOfType([PropTypes.oneOf(["addDataApp", "advancedSettingsApp", "alert", "apmApp", "apmTrace", "apps", "arrowDown", "arrowLeft", "arrowRight", "arrowUp", "asterisk", "auditbeatApp", "beaker", "bell", "bolt", "boxesHorizontal", "boxesVertical", "branch", "broom", "brush", "bug", "bullseye", "calendar", "canvasApp", "codeApp", "check", "checkInCircleFilled", "clock", "compute", "console", "consoleApp", "controlsHorizontal", "controlsVertical", "copy", "copyClipboard", "createAdvancedJob", "createMultiMetricJob", "createPopulationJob", "createSingleMetricJob", "cross", "crossClusterReplicationApp", "crosshairs", "crossInACircleFilled", "cut", "dashboardApp", "database", "dataVisualizer", "devToolsApp", "discoverApp", "document", "dot", "editorAlignCenter", "editorAlignLeft", "editorAlignRight", "editorBold", "editorCodeBlock", "editorComment", "editorDistributeHorizontal", "editorDistributeVertical", "editorHeading", "editorItalic", "editorItemAlignLeft", "editorItemAlignBottom", "editorItemAlignCenter", "editorItemAlignMiddle", "editorItemAlignRight", "editorItemAlignTop", "editorLink", "editorOrderedList", "editorPositionBottomLeft", "editorPositionBottomRight", "editorPositionTopLeft", "editorPositionTopRight", "editorRedo", "editorStrike", "editorTable", "editorUnderline", "editorUndo", "editorUnorderedList", "email", "empty", "emsApp", "exit", "expand", "exportAction", "eye", "eyeClosed", "faceHappy", "faceNeutral", "faceSad", "filebeatApp", "filter", "flag", "folderClosed", "folderOpen", "fullScreen", "gear", "gisApp", "glasses", "globe", "grab", "grabHorizontal", "graphApp", "grid", "grokApp", "heart", "heartbeatApp", "heatmap", "help", "iInCircle", "importAction", "indexClose", "indexEdit", "indexFlush", "indexManagementApp", "indexMapping", "indexOpen", "indexPatternApp", "indexRollupApp", "indexSettings", "infraApp", "inputOutput", "inspect", "invert", "kqlField", "kqlFunction", "kqlOperand", "kqlSelector", "kqlValue", "link", "list", "listAdd", "lock", "lockOpen", "loggingApp", "logoAerospike", "logoApache", "logoAPM", "logoAppSearch", "logoAWS", "logoAWSMono", "logoAzure", "logoAzureMono", "logoBeats", "logoBusinessAnalytics", "logoCeph", "logoCloud", "logoCloudEnterprise", "logoCode", "logoCodesandbox", "logoCouchbase", "logoDocker", "logoDropwizard", "logoElastic", "logoElasticsearch", "logoElasticStack", "logoEnterpriseSearch", "logoEtcd", "logoGCP", "logoGCPMono", "logoGithub", "logoGmail", "logoGolang", "logoHAproxy", "logoIBM", "logoIBMMono", "logoKafka", "logoKibana", "logoKubernetes", "logoLogging", "logoLogstash", "logoMaps", "logoMemcached", "logoMetrics", "logoMongodb", "logoMySQL", "logoNginx", "logoOsquery", "logoPhp", "logoPostgres", "logoPrometheus", "logoRabbitmq", "logoRedis", "logoSecurity", "logoSiteSearch", "logoSketch", "logoSlack", "logoUptime", "logoWebhook", "logoWindows", "logstashFilter", "logstashIf", "logstashInput", "logstashOutput", "logstashQueue", "machineLearningApp", "magnet", "magnifyWithMinus", "magnifyWithPlus", "managementApp", "mapMarker", "memory", "menuLeft", "menuRight", "merge", "metricbeatApp", "minusInCircle", "minusInCircleFilled", "monitoringApp", "moon", "node", "notebookApp", "number", "offline", "online", "packetbeatApp", "pause", "pencil", "pin", "pinFilled", "pipelineApp", "play", "plusInCircle", "plusInCircleFilled", "popout", "questionInCircle", "refresh", "reportingApp", "save", "savedObjectsApp", "scale", "search", "searchProfilerApp", "securityAnalyticsApp", "securityApp", "shard", "share", "snowflake", "sortable", "sortDown", "sortLeft", "sortRight", "sortUp", "spacesApp", "sqlApp", "starEmpty", "starEmptySpace", "starFilled", "starFilledSpace", "starMinusEmpty", "starMinusFilled", "starPlusEmpty", "starPlusFilled", "stats", "stop", "stopFilled", "stopSlash", "storage", "string", "submodule", "swatchInput", "symlink", "tableOfContents", "tag", "tear", "temperature", "timelionApp", "trash", "upgradeAssistantApp", "uptimeApp", "user", "usersRolesApp", "vector", "visArea", "visBarHorizontal", "visBarVertical", "visControls", "visGauge", "visGoal", "visHeatmap", "visLine", "visMapCoordinate", "visMapRegion", "visMetric", "visPie", "visTable", "visTagCloud", "visText", "visTimelion", "visualizeApp", "visVega", "visVisualBuilder", "watchesApp", "wrench", "tokenClass", "tokenProperty", "tokenEnum", "tokenVariable", "tokenMethod", "tokenAnnotation", "tokenException", "tokenInterface", "tokenParameter", "tokenField", "tokenElement", "tokenFunction", "tokenBoolean", "tokenString", "tokenArray", "tokenNumber", "tokenConstant", "tokenObject", "tokenEvent", "tokenKey", "tokenNull", "tokenStruct", "tokenPackage", "tokenOperator", "tokenEnumMember", "tokenRepo", "tokenSymbol", "tokenFile", "tokenModule", "tokenNamespace"]).isRequired, PropTypes.string.isRequired, PropTypes.element.isRequired]),
141
+ iconType: PropTypes.oneOfType([PropTypes.oneOf(["addDataApp", "advancedSettingsApp", "alert", "apmApp", "apmTrace", "apps", "arrowDown", "arrowLeft", "arrowRight", "arrowUp", "asterisk", "auditbeatApp", "beaker", "bell", "bolt", "boxesHorizontal", "boxesVertical", "branch", "broom", "brush", "bug", "bullseye", "calendar", "canvasApp", "codeApp", "check", "checkInCircleFilled", "clock", "cloudDrizzle", "cloudStormy", "cloudSunny", "compute", "console", "consoleApp", "controlsHorizontal", "controlsVertical", "copy", "copyClipboard", "createAdvancedJob", "createMultiMetricJob", "createPopulationJob", "createSingleMetricJob", "cross", "crossClusterReplicationApp", "crosshairs", "crossInACircleFilled", "cut", "dashboardApp", "database", "dataVisualizer", "devToolsApp", "discoverApp", "document", "documentEdit", "documents", "dot", "editorAlignCenter", "editorAlignLeft", "editorAlignRight", "editorBold", "editorCodeBlock", "editorComment", "editorDistributeHorizontal", "editorDistributeVertical", "editorHeading", "editorItalic", "editorItemAlignLeft", "editorItemAlignBottom", "editorItemAlignCenter", "editorItemAlignMiddle", "editorItemAlignRight", "editorItemAlignTop", "editorLink", "editorOrderedList", "editorPositionBottomLeft", "editorPositionBottomRight", "editorPositionTopLeft", "editorPositionTopRight", "editorRedo", "editorStrike", "editorTable", "editorUnderline", "editorUndo", "editorUnorderedList", "email", "empty", "emsApp", "exit", "expand", "exportAction", "eye", "eyeClosed", "faceHappy", "faceNeutral", "faceSad", "filebeatApp", "filter", "flag", "folderClosed", "folderOpen", "fullScreen", "gear", "gisApp", "glasses", "globe", "grab", "grabHorizontal", "graphApp", "grid", "grokApp", "heart", "heartbeatApp", "heatmap", "help", "iInCircle", "importAction", "indexClose", "indexEdit", "indexFlush", "indexManagementApp", "indexMapping", "indexOpen", "indexPatternApp", "indexRollupApp", "indexSettings", "infraApp", "inputOutput", "inspect", "invert", "kqlField", "kqlFunction", "kqlOperand", "kqlSelector", "kqlValue", "link", "list", "listAdd", "lock", "lockOpen", "loggingApp", "logoAerospike", "logoApache", "logoAPM", "logoAppSearch", "logoAWS", "logoAWSMono", "logoAzure", "logoAzureMono", "logoBeats", "logoBusinessAnalytics", "logoCeph", "logoCloud", "logoCloudEnterprise", "logoCode", "logoCodesandbox", "logoCouchbase", "logoDocker", "logoDropwizard", "logoElastic", "logoElasticsearch", "logoElasticStack", "logoEnterpriseSearch", "logoEtcd", "logoGCP", "logoGCPMono", "logoGithub", "logoGmail", "logoGolang", "logoHAproxy", "logoIBM", "logoIBMMono", "logoKafka", "logoKibana", "logoKubernetes", "logoLogging", "logoLogstash", "logoMaps", "logoMemcached", "logoMetrics", "logoMongodb", "logoMySQL", "logoNginx", "logoOsquery", "logoPhp", "logoPostgres", "logoPrometheus", "logoRabbitmq", "logoRedis", "logoSecurity", "logoSiteSearch", "logoSketch", "logoSlack", "logoUptime", "logoWebhook", "logoWindows", "logstashFilter", "logstashIf", "logstashInput", "logstashOutput", "logstashQueue", "machineLearningApp", "magnet", "magnifyWithMinus", "magnifyWithPlus", "managementApp", "mapMarker", "memory", "menuLeft", "menuRight", "merge", "metricbeatApp", "minusInCircle", "minusInCircleFilled", "monitoringApp", "moon", "node", "notebookApp", "number", "offline", "online", "packetbeatApp", "pause", "pencil", "pin", "pinFilled", "pipelineApp", "play", "plusInCircle", "plusInCircleFilled", "popout", "questionInCircle", "refresh", "reportingApp", "save", "savedObjectsApp", "scale", "search", "searchProfilerApp", "securityAnalyticsApp", "securityApp", "shard", "share", "snowflake", "sortable", "sortDown", "sortLeft", "sortRight", "sortUp", "spacesApp", "sqlApp", "starEmpty", "starEmptySpace", "starFilled", "starFilledSpace", "starMinusEmpty", "starMinusFilled", "starPlusEmpty", "starPlusFilled", "stats", "stop", "stopFilled", "stopSlash", "storage", "string", "submodule", "swatchInput", "symlink", "tableOfContents", "tag", "tear", "temperature", "timelionApp", "training", "trash", "upgradeAssistantApp", "uptimeApp", "user", "usersRolesApp", "vector", "videoPlayer", "visArea", "visBarHorizontal", "visBarVertical", "visControls", "visGauge", "visGoal", "visHeatmap", "visLine", "visMapCoordinate", "visMapRegion", "visMetric", "visPie", "visTable", "visTagCloud", "visText", "visTimelion", "visualizeApp", "visVega", "visVisualBuilder", "watchesApp", "wrench", "tokenClass", "tokenProperty", "tokenEnum", "tokenVariable", "tokenMethod", "tokenAnnotation", "tokenException", "tokenInterface", "tokenParameter", "tokenField", "tokenElement", "tokenFunction", "tokenBoolean", "tokenString", "tokenArray", "tokenNumber", "tokenConstant", "tokenObject", "tokenEvent", "tokenKey", "tokenNull", "tokenStruct", "tokenPackage", "tokenOperator", "tokenEnumMember", "tokenRepo", "tokenSymbol", "tokenFile", "tokenModule", "tokenNamespace"]).isRequired, PropTypes.string.isRequired, PropTypes.element.isRequired]),
142
142
 
143
143
  /**
144
144
  * The side of the badge the icon should sit
@@ -346,6 +346,15 @@ EuiBadge.__docgenInfo = {
346
346
  }, {
347
347
  "value": "\"clock\"",
348
348
  "computed": false
349
+ }, {
350
+ "value": "\"cloudDrizzle\"",
351
+ "computed": false
352
+ }, {
353
+ "value": "\"cloudStormy\"",
354
+ "computed": false
355
+ }, {
356
+ "value": "\"cloudSunny\"",
357
+ "computed": false
349
358
  }, {
350
359
  "value": "\"compute\"",
351
360
  "computed": false
@@ -412,6 +421,12 @@ EuiBadge.__docgenInfo = {
412
421
  }, {
413
422
  "value": "\"document\"",
414
423
  "computed": false
424
+ }, {
425
+ "value": "\"documentEdit\"",
426
+ "computed": false
427
+ }, {
428
+ "value": "\"documents\"",
429
+ "computed": false
415
430
  }, {
416
431
  "value": "\"dot\"",
417
432
  "computed": false
@@ -1063,6 +1078,9 @@ EuiBadge.__docgenInfo = {
1063
1078
  }, {
1064
1079
  "value": "\"timelionApp\"",
1065
1080
  "computed": false
1081
+ }, {
1082
+ "value": "\"training\"",
1083
+ "computed": false
1066
1084
  }, {
1067
1085
  "value": "\"trash\"",
1068
1086
  "computed": false
@@ -1081,6 +1099,9 @@ EuiBadge.__docgenInfo = {
1081
1099
  }, {
1082
1100
  "value": "\"vector\"",
1083
1101
  "computed": false
1102
+ }, {
1103
+ "value": "\"videoPlayer\"",
1104
+ "computed": false
1084
1105
  }, {
1085
1106
  "value": "\"visArea\"",
1086
1107
  "computed": false
@@ -65,7 +65,7 @@ EuiBetaBadge.propTypes = {
65
65
  /**
66
66
  * Supply an icon type if the badge should just be an icon
67
67
  */
68
- iconType: PropTypes.oneOfType([PropTypes.oneOf(["addDataApp", "advancedSettingsApp", "alert", "apmApp", "apmTrace", "apps", "arrowDown", "arrowLeft", "arrowRight", "arrowUp", "asterisk", "auditbeatApp", "beaker", "bell", "bolt", "boxesHorizontal", "boxesVertical", "branch", "broom", "brush", "bug", "bullseye", "calendar", "canvasApp", "codeApp", "check", "checkInCircleFilled", "clock", "compute", "console", "consoleApp", "controlsHorizontal", "controlsVertical", "copy", "copyClipboard", "createAdvancedJob", "createMultiMetricJob", "createPopulationJob", "createSingleMetricJob", "cross", "crossClusterReplicationApp", "crosshairs", "crossInACircleFilled", "cut", "dashboardApp", "database", "dataVisualizer", "devToolsApp", "discoverApp", "document", "dot", "editorAlignCenter", "editorAlignLeft", "editorAlignRight", "editorBold", "editorCodeBlock", "editorComment", "editorDistributeHorizontal", "editorDistributeVertical", "editorHeading", "editorItalic", "editorItemAlignLeft", "editorItemAlignBottom", "editorItemAlignCenter", "editorItemAlignMiddle", "editorItemAlignRight", "editorItemAlignTop", "editorLink", "editorOrderedList", "editorPositionBottomLeft", "editorPositionBottomRight", "editorPositionTopLeft", "editorPositionTopRight", "editorRedo", "editorStrike", "editorTable", "editorUnderline", "editorUndo", "editorUnorderedList", "email", "empty", "emsApp", "exit", "expand", "exportAction", "eye", "eyeClosed", "faceHappy", "faceNeutral", "faceSad", "filebeatApp", "filter", "flag", "folderClosed", "folderOpen", "fullScreen", "gear", "gisApp", "glasses", "globe", "grab", "grabHorizontal", "graphApp", "grid", "grokApp", "heart", "heartbeatApp", "heatmap", "help", "iInCircle", "importAction", "indexClose", "indexEdit", "indexFlush", "indexManagementApp", "indexMapping", "indexOpen", "indexPatternApp", "indexRollupApp", "indexSettings", "infraApp", "inputOutput", "inspect", "invert", "kqlField", "kqlFunction", "kqlOperand", "kqlSelector", "kqlValue", "link", "list", "listAdd", "lock", "lockOpen", "loggingApp", "logoAerospike", "logoApache", "logoAPM", "logoAppSearch", "logoAWS", "logoAWSMono", "logoAzure", "logoAzureMono", "logoBeats", "logoBusinessAnalytics", "logoCeph", "logoCloud", "logoCloudEnterprise", "logoCode", "logoCodesandbox", "logoCouchbase", "logoDocker", "logoDropwizard", "logoElastic", "logoElasticsearch", "logoElasticStack", "logoEnterpriseSearch", "logoEtcd", "logoGCP", "logoGCPMono", "logoGithub", "logoGmail", "logoGolang", "logoHAproxy", "logoIBM", "logoIBMMono", "logoKafka", "logoKibana", "logoKubernetes", "logoLogging", "logoLogstash", "logoMaps", "logoMemcached", "logoMetrics", "logoMongodb", "logoMySQL", "logoNginx", "logoOsquery", "logoPhp", "logoPostgres", "logoPrometheus", "logoRabbitmq", "logoRedis", "logoSecurity", "logoSiteSearch", "logoSketch", "logoSlack", "logoUptime", "logoWebhook", "logoWindows", "logstashFilter", "logstashIf", "logstashInput", "logstashOutput", "logstashQueue", "machineLearningApp", "magnet", "magnifyWithMinus", "magnifyWithPlus", "managementApp", "mapMarker", "memory", "menuLeft", "menuRight", "merge", "metricbeatApp", "minusInCircle", "minusInCircleFilled", "monitoringApp", "moon", "node", "notebookApp", "number", "offline", "online", "packetbeatApp", "pause", "pencil", "pin", "pinFilled", "pipelineApp", "play", "plusInCircle", "plusInCircleFilled", "popout", "questionInCircle", "refresh", "reportingApp", "save", "savedObjectsApp", "scale", "search", "searchProfilerApp", "securityAnalyticsApp", "securityApp", "shard", "share", "snowflake", "sortable", "sortDown", "sortLeft", "sortRight", "sortUp", "spacesApp", "sqlApp", "starEmpty", "starEmptySpace", "starFilled", "starFilledSpace", "starMinusEmpty", "starMinusFilled", "starPlusEmpty", "starPlusFilled", "stats", "stop", "stopFilled", "stopSlash", "storage", "string", "submodule", "swatchInput", "symlink", "tableOfContents", "tag", "tear", "temperature", "timelionApp", "trash", "upgradeAssistantApp", "uptimeApp", "user", "usersRolesApp", "vector", "visArea", "visBarHorizontal", "visBarVertical", "visControls", "visGauge", "visGoal", "visHeatmap", "visLine", "visMapCoordinate", "visMapRegion", "visMetric", "visPie", "visTable", "visTagCloud", "visText", "visTimelion", "visualizeApp", "visVega", "visVisualBuilder", "watchesApp", "wrench", "tokenClass", "tokenProperty", "tokenEnum", "tokenVariable", "tokenMethod", "tokenAnnotation", "tokenException", "tokenInterface", "tokenParameter", "tokenField", "tokenElement", "tokenFunction", "tokenBoolean", "tokenString", "tokenArray", "tokenNumber", "tokenConstant", "tokenObject", "tokenEvent", "tokenKey", "tokenNull", "tokenStruct", "tokenPackage", "tokenOperator", "tokenEnumMember", "tokenRepo", "tokenSymbol", "tokenFile", "tokenModule", "tokenNamespace"]).isRequired, PropTypes.string.isRequired, PropTypes.element.isRequired]),
68
+ iconType: PropTypes.oneOfType([PropTypes.oneOf(["addDataApp", "advancedSettingsApp", "alert", "apmApp", "apmTrace", "apps", "arrowDown", "arrowLeft", "arrowRight", "arrowUp", "asterisk", "auditbeatApp", "beaker", "bell", "bolt", "boxesHorizontal", "boxesVertical", "branch", "broom", "brush", "bug", "bullseye", "calendar", "canvasApp", "codeApp", "check", "checkInCircleFilled", "clock", "cloudDrizzle", "cloudStormy", "cloudSunny", "compute", "console", "consoleApp", "controlsHorizontal", "controlsVertical", "copy", "copyClipboard", "createAdvancedJob", "createMultiMetricJob", "createPopulationJob", "createSingleMetricJob", "cross", "crossClusterReplicationApp", "crosshairs", "crossInACircleFilled", "cut", "dashboardApp", "database", "dataVisualizer", "devToolsApp", "discoverApp", "document", "documentEdit", "documents", "dot", "editorAlignCenter", "editorAlignLeft", "editorAlignRight", "editorBold", "editorCodeBlock", "editorComment", "editorDistributeHorizontal", "editorDistributeVertical", "editorHeading", "editorItalic", "editorItemAlignLeft", "editorItemAlignBottom", "editorItemAlignCenter", "editorItemAlignMiddle", "editorItemAlignRight", "editorItemAlignTop", "editorLink", "editorOrderedList", "editorPositionBottomLeft", "editorPositionBottomRight", "editorPositionTopLeft", "editorPositionTopRight", "editorRedo", "editorStrike", "editorTable", "editorUnderline", "editorUndo", "editorUnorderedList", "email", "empty", "emsApp", "exit", "expand", "exportAction", "eye", "eyeClosed", "faceHappy", "faceNeutral", "faceSad", "filebeatApp", "filter", "flag", "folderClosed", "folderOpen", "fullScreen", "gear", "gisApp", "glasses", "globe", "grab", "grabHorizontal", "graphApp", "grid", "grokApp", "heart", "heartbeatApp", "heatmap", "help", "iInCircle", "importAction", "indexClose", "indexEdit", "indexFlush", "indexManagementApp", "indexMapping", "indexOpen", "indexPatternApp", "indexRollupApp", "indexSettings", "infraApp", "inputOutput", "inspect", "invert", "kqlField", "kqlFunction", "kqlOperand", "kqlSelector", "kqlValue", "link", "list", "listAdd", "lock", "lockOpen", "loggingApp", "logoAerospike", "logoApache", "logoAPM", "logoAppSearch", "logoAWS", "logoAWSMono", "logoAzure", "logoAzureMono", "logoBeats", "logoBusinessAnalytics", "logoCeph", "logoCloud", "logoCloudEnterprise", "logoCode", "logoCodesandbox", "logoCouchbase", "logoDocker", "logoDropwizard", "logoElastic", "logoElasticsearch", "logoElasticStack", "logoEnterpriseSearch", "logoEtcd", "logoGCP", "logoGCPMono", "logoGithub", "logoGmail", "logoGolang", "logoHAproxy", "logoIBM", "logoIBMMono", "logoKafka", "logoKibana", "logoKubernetes", "logoLogging", "logoLogstash", "logoMaps", "logoMemcached", "logoMetrics", "logoMongodb", "logoMySQL", "logoNginx", "logoOsquery", "logoPhp", "logoPostgres", "logoPrometheus", "logoRabbitmq", "logoRedis", "logoSecurity", "logoSiteSearch", "logoSketch", "logoSlack", "logoUptime", "logoWebhook", "logoWindows", "logstashFilter", "logstashIf", "logstashInput", "logstashOutput", "logstashQueue", "machineLearningApp", "magnet", "magnifyWithMinus", "magnifyWithPlus", "managementApp", "mapMarker", "memory", "menuLeft", "menuRight", "merge", "metricbeatApp", "minusInCircle", "minusInCircleFilled", "monitoringApp", "moon", "node", "notebookApp", "number", "offline", "online", "packetbeatApp", "pause", "pencil", "pin", "pinFilled", "pipelineApp", "play", "plusInCircle", "plusInCircleFilled", "popout", "questionInCircle", "refresh", "reportingApp", "save", "savedObjectsApp", "scale", "search", "searchProfilerApp", "securityAnalyticsApp", "securityApp", "shard", "share", "snowflake", "sortable", "sortDown", "sortLeft", "sortRight", "sortUp", "spacesApp", "sqlApp", "starEmpty", "starEmptySpace", "starFilled", "starFilledSpace", "starMinusEmpty", "starMinusFilled", "starPlusEmpty", "starPlusFilled", "stats", "stop", "stopFilled", "stopSlash", "storage", "string", "submodule", "swatchInput", "symlink", "tableOfContents", "tag", "tear", "temperature", "timelionApp", "training", "trash", "upgradeAssistantApp", "uptimeApp", "user", "usersRolesApp", "vector", "videoPlayer", "visArea", "visBarHorizontal", "visBarVertical", "visControls", "visGauge", "visGoal", "visHeatmap", "visLine", "visMapCoordinate", "visMapRegion", "visMetric", "visPie", "visTable", "visTagCloud", "visText", "visTimelion", "visualizeApp", "visVega", "visVisualBuilder", "watchesApp", "wrench", "tokenClass", "tokenProperty", "tokenEnum", "tokenVariable", "tokenMethod", "tokenAnnotation", "tokenException", "tokenInterface", "tokenParameter", "tokenField", "tokenElement", "tokenFunction", "tokenBoolean", "tokenString", "tokenArray", "tokenNumber", "tokenConstant", "tokenObject", "tokenEvent", "tokenKey", "tokenNull", "tokenStruct", "tokenPackage", "tokenOperator", "tokenEnumMember", "tokenRepo", "tokenSymbol", "tokenFile", "tokenModule", "tokenNamespace"]).isRequired, PropTypes.string.isRequired, PropTypes.element.isRequired]),
69
69
 
70
70
  /**
71
71
  * One word label like "Beta" or "Lab"
@@ -231,6 +231,15 @@ EuiBetaBadge.__docgenInfo = {
231
231
  }, {
232
232
  "value": "\"clock\"",
233
233
  "computed": false
234
+ }, {
235
+ "value": "\"cloudDrizzle\"",
236
+ "computed": false
237
+ }, {
238
+ "value": "\"cloudStormy\"",
239
+ "computed": false
240
+ }, {
241
+ "value": "\"cloudSunny\"",
242
+ "computed": false
234
243
  }, {
235
244
  "value": "\"compute\"",
236
245
  "computed": false
@@ -297,6 +306,12 @@ EuiBetaBadge.__docgenInfo = {
297
306
  }, {
298
307
  "value": "\"document\"",
299
308
  "computed": false
309
+ }, {
310
+ "value": "\"documentEdit\"",
311
+ "computed": false
312
+ }, {
313
+ "value": "\"documents\"",
314
+ "computed": false
300
315
  }, {
301
316
  "value": "\"dot\"",
302
317
  "computed": false
@@ -948,6 +963,9 @@ EuiBetaBadge.__docgenInfo = {
948
963
  }, {
949
964
  "value": "\"timelionApp\"",
950
965
  "computed": false
966
+ }, {
967
+ "value": "\"training\"",
968
+ "computed": false
951
969
  }, {
952
970
  "value": "\"trash\"",
953
971
  "computed": false
@@ -966,6 +984,9 @@ EuiBetaBadge.__docgenInfo = {
966
984
  }, {
967
985
  "value": "\"vector\"",
968
986
  "computed": false
987
+ }, {
988
+ "value": "\"videoPlayer\"",
989
+ "computed": false
969
990
  }, {
970
991
  "value": "\"visArea\"",
971
992
  "computed": false
@@ -689,7 +689,8 @@ function (_Component) {
689
689
  rowHeight: rowHeight,
690
690
  "data-test-subj": optionsListDataTestSubj,
691
691
  fullWidth: fullWidth,
692
- rootId: this.rootId
692
+ rootId: this.rootId,
693
+ onCloseList: this.closeList
693
694
  }));
694
695
  }
695
696
 
@@ -68,6 +68,14 @@ function (_Component) {
68
68
  });
69
69
  });
70
70
 
71
+ _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "closeListOnScroll", function (e) {
72
+ // close the list when a scroll event happens, but not if the scroll happened in the options list
73
+ // this mirrors Firefox's approach of auto-closing `select` elements onscroll
74
+ if (_this.list && _this.list.contains(e.target) === false) {
75
+ _this.props.onCloseList();
76
+ }
77
+ });
78
+
71
79
  _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "listRef", function (node) {
72
80
  _this.props.listRef(node);
73
81
 
@@ -80,13 +88,25 @@ function (_Component) {
80
88
  _createClass(EuiComboBoxOptionsList, [{
81
89
  key: "componentDidMount",
82
90
  value: function componentDidMount() {
91
+ var _this2 = this;
92
+
83
93
  // Wait a frame, otherwise moving focus from one combo box to another will result in the class
84
94
  // being removed from the body.
85
95
  requestAnimationFrame(function () {
86
96
  document.body.classList.add('euiBody-hasPortalContent');
87
97
  });
88
98
  this.updatePosition();
89
- window.addEventListener('resize', this.updatePosition);
99
+ window.addEventListener('resize', this.updatePosition); // Firefox will trigger a scroll event in many common situations when the options list div is appended
100
+ // to the DOM; in testing it was always within 100ms, but setting a timeout here for 500ms to be safe
101
+
102
+ setTimeout(function () {
103
+ window.addEventListener('scroll', _this2.closeListOnScroll, {
104
+ passive: true,
105
+ // for better performance as we won't call preventDefault
106
+ capture: true // scroll events don't bubble, they must be captured instead
107
+
108
+ });
109
+ }, 500);
90
110
  }
91
111
  }, {
92
112
  key: "componentDidUpdate",
@@ -104,11 +124,15 @@ function (_Component) {
104
124
  value: function componentWillUnmount() {
105
125
  document.body.classList.remove('euiBody-hasPortalContent');
106
126
  window.removeEventListener('resize', this.updatePosition);
127
+ window.removeEventListener('scroll', this.closeListOnScroll, {
128
+ passive: true,
129
+ capture: true
130
+ });
107
131
  }
108
132
  }, {
109
133
  key: "render",
110
134
  value: function render() {
111
- var _this2 = this;
135
+ var _this3 = this;
112
136
 
113
137
  var _this$props = this.props,
114
138
  options = _this$props.options,
@@ -134,7 +158,8 @@ function (_Component) {
134
158
  dataTestSubj = _this$props['data-test-subj'],
135
159
  activeOptionIndex = _this$props.activeOptionIndex,
136
160
  rootId = _this$props.rootId,
137
- rest = _objectWithoutProperties(_this$props, ["options", "isLoading", "selectedOptions", "onCreateOption", "searchValue", "matchingOptions", "optionRef", "onOptionClick", "onOptionEnterKey", "areAllOptionsSelected", "getSelectedOptionForSearchValue", "position", "renderOption", "listRef", "updatePosition", "width", "scrollToIndex", "onScroll", "rowHeight", "fullWidth", "data-test-subj", "activeOptionIndex", "rootId"]);
161
+ onCloseList = _this$props.onCloseList,
162
+ rest = _objectWithoutProperties(_this$props, ["options", "isLoading", "selectedOptions", "onCreateOption", "searchValue", "matchingOptions", "optionRef", "onOptionClick", "onOptionEnterKey", "areAllOptionsSelected", "getSelectedOptionForSearchValue", "position", "renderOption", "listRef", "updatePosition", "width", "scrollToIndex", "onScroll", "rowHeight", "fullWidth", "data-test-subj", "activeOptionIndex", "rootId", "onCloseList"]);
138
163
 
139
164
  var emptyStateContent;
140
165
 
@@ -236,7 +261,7 @@ function (_Component) {
236
261
  return onOptionClick(option);
237
262
  } // onEnterKey={onOptionEnterKey}
238
263
  ,
239
- ref: optionRef.bind(_this2, index),
264
+ ref: optionRef.bind(_this3, index),
240
265
  isFocused: activeOptionIndex === index,
241
266
  id: rootId("_option-".concat(index)),
242
267
  title: label,
@@ -286,7 +311,8 @@ _defineProperty(EuiComboBoxOptionsList, "propTypes", {
286
311
  rowHeight: PropTypes.number,
287
312
  fullWidth: PropTypes.bool,
288
313
  activeOptionIndex: PropTypes.number,
289
- rootId: PropTypes.func.isRequired
314
+ rootId: PropTypes.func.isRequired,
315
+ onCloseList: PropTypes.func.isRequired
290
316
  });
291
317
 
292
318
  _defineProperty(EuiComboBoxOptionsList, "defaultProps", {
@@ -303,6 +329,15 @@ EuiComboBoxOptionsList.__docgenInfo = {
303
329
  "modifiers": [],
304
330
  "params": [],
305
331
  "returns": null
332
+ }, {
333
+ "name": "closeListOnScroll",
334
+ "docblock": null,
335
+ "modifiers": [],
336
+ "params": [{
337
+ "name": "e",
338
+ "type": null
339
+ }],
340
+ "returns": null
306
341
  }, {
307
342
  "name": "listRef",
308
343
  "docblock": null,
@@ -486,6 +521,13 @@ EuiComboBoxOptionsList.__docgenInfo = {
486
521
  },
487
522
  "required": true,
488
523
  "description": ""
524
+ },
525
+ "onCloseList": {
526
+ "type": {
527
+ "name": "func"
528
+ },
529
+ "required": true,
530
+ "description": ""
489
531
  }
490
532
  }
491
533
  };