@elastic/eui 71.1.0 → 72.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.
Files changed (132) hide show
  1. package/dist/eui_theme_dark.css +20 -28
  2. package/dist/eui_theme_dark.min.css +1 -1
  3. package/dist/eui_theme_light.css +20 -28
  4. package/dist/eui_theme_light.min.css +1 -1
  5. package/es/components/date_picker/auto_refresh/refresh_interval.js +3 -1
  6. package/es/components/date_picker/super_date_picker/quick_select_popover/commonly_used_time_ranges.js +5 -2
  7. package/es/components/date_picker/super_date_picker/quick_select_popover/quick_select.js +3 -1
  8. package/es/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +160 -173
  9. package/es/components/date_picker/super_date_picker/quick_select_popover/recently_used.js +5 -2
  10. package/es/components/date_picker/super_date_picker/super_date_picker.js +16 -0
  11. package/es/components/error_boundary/error_boundary.a11y.js +67 -0
  12. package/es/components/expression/expression.a11y.js +254 -0
  13. package/es/components/filter_group/filter_group.a11y.js +281 -0
  14. package/es/components/focus_trap/focus_trap.a11y.js +131 -0
  15. package/es/components/form/file_picker/file_picker.js +1 -0
  16. package/es/components/header/header.a11y.js +374 -0
  17. package/es/components/icon/icon_ML.a11y.js +33 -0
  18. package/es/components/icon/icon_apps.a11y.js +33 -0
  19. package/es/components/icon/icon_editor.a11y.js +33 -0
  20. package/es/components/icon/icon_elastic.a11y.js +33 -0
  21. package/es/components/icon/icon_glyphs.a11y.js +33 -0
  22. package/es/components/icon/icon_tokens.a11y.js +33 -0
  23. package/es/components/markdown_editor/plugins/markdown_default_plugins/parsing_plugins.js +1 -1
  24. package/es/components/selectable/selectable.js +4 -3
  25. package/es/components/selectable/selectable_list/selectable_list.js +17 -5
  26. package/es/components/tabs/tab.js +7 -17
  27. package/es/components/tabs/tabbed_content/tabbed_content.js +0 -16
  28. package/es/components/tabs/tabs.js +7 -11
  29. package/es/components/tabs/tabs_context.js +13 -0
  30. package/eui.d.ts +41 -32
  31. package/i18ntokens.json +30 -14
  32. package/lib/components/date_picker/auto_refresh/refresh_interval.js +3 -1
  33. package/lib/components/date_picker/super_date_picker/quick_select_popover/commonly_used_time_ranges.js +5 -2
  34. package/lib/components/date_picker/super_date_picker/quick_select_popover/quick_select.js +3 -1
  35. package/lib/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +155 -168
  36. package/lib/components/date_picker/super_date_picker/quick_select_popover/recently_used.js +5 -2
  37. package/lib/components/date_picker/super_date_picker/super_date_picker.js +16 -0
  38. package/lib/components/error_boundary/error_boundary.a11y.js +75 -0
  39. package/lib/components/expression/expression.a11y.js +262 -0
  40. package/lib/components/filter_group/filter_group.a11y.js +287 -0
  41. package/lib/components/focus_trap/focus_trap.a11y.js +140 -0
  42. package/lib/components/form/file_picker/file_picker.js +1 -0
  43. package/lib/components/header/header.a11y.js +385 -0
  44. package/lib/components/icon/icon_ML.a11y.js +40 -0
  45. package/lib/components/icon/icon_apps.a11y.js +40 -0
  46. package/lib/components/icon/icon_editor.a11y.js +40 -0
  47. package/lib/components/icon/icon_elastic.a11y.js +40 -0
  48. package/lib/components/icon/icon_glyphs.a11y.js +40 -0
  49. package/lib/components/icon/icon_tokens.a11y.js +40 -0
  50. package/lib/components/markdown_editor/plugins/markdown_default_plugins/parsing_plugins.js +2 -2
  51. package/lib/components/selectable/selectable.js +4 -3
  52. package/lib/components/selectable/selectable_list/selectable_list.js +17 -5
  53. package/lib/components/tabs/tab.js +14 -17
  54. package/lib/components/tabs/tabbed_content/tabbed_content.js +0 -16
  55. package/lib/components/tabs/tabs.js +8 -14
  56. package/lib/components/tabs/tabs_context.js +23 -0
  57. package/optimize/es/components/date_picker/auto_refresh/refresh_interval.js +3 -1
  58. package/optimize/es/components/date_picker/super_date_picker/quick_select_popover/commonly_used_time_ranges.js +5 -2
  59. package/optimize/es/components/date_picker/super_date_picker/quick_select_popover/quick_select.js +3 -1
  60. package/optimize/es/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +145 -169
  61. package/optimize/es/components/date_picker/super_date_picker/quick_select_popover/recently_used.js +5 -2
  62. package/optimize/es/components/date_picker/super_date_picker/super_date_picker.js +2 -0
  63. package/optimize/es/components/error_boundary/error_boundary.a11y.js +67 -0
  64. package/optimize/es/components/expression/expression.a11y.js +243 -0
  65. package/optimize/es/components/filter_group/filter_group.a11y.js +271 -0
  66. package/optimize/es/components/focus_trap/focus_trap.a11y.js +120 -0
  67. package/optimize/es/components/form/file_picker/file_picker.js +1 -0
  68. package/optimize/es/components/header/header.a11y.js +364 -0
  69. package/optimize/es/components/icon/icon_ML.a11y.js +33 -0
  70. package/optimize/es/components/icon/icon_apps.a11y.js +33 -0
  71. package/optimize/es/components/icon/icon_editor.a11y.js +33 -0
  72. package/optimize/es/components/icon/icon_elastic.a11y.js +33 -0
  73. package/optimize/es/components/icon/icon_glyphs.a11y.js +33 -0
  74. package/optimize/es/components/icon/icon_tokens.a11y.js +33 -0
  75. package/optimize/es/components/markdown_editor/plugins/markdown_default_plugins/parsing_plugins.js +1 -1
  76. package/optimize/es/components/selectable/selectable.js +2 -2
  77. package/optimize/es/components/selectable/selectable_list/selectable_list.js +15 -4
  78. package/optimize/es/components/tabs/tab.js +7 -5
  79. package/optimize/es/components/tabs/tabs.js +7 -11
  80. package/optimize/es/components/tabs/tabs_context.js +13 -0
  81. package/optimize/lib/components/date_picker/auto_refresh/refresh_interval.js +3 -1
  82. package/optimize/lib/components/date_picker/super_date_picker/quick_select_popover/commonly_used_time_ranges.js +5 -2
  83. package/optimize/lib/components/date_picker/super_date_picker/quick_select_popover/quick_select.js +3 -1
  84. package/optimize/lib/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +146 -167
  85. package/optimize/lib/components/date_picker/super_date_picker/quick_select_popover/recently_used.js +5 -2
  86. package/optimize/lib/components/date_picker/super_date_picker/super_date_picker.js +2 -0
  87. package/optimize/lib/components/error_boundary/error_boundary.a11y.js +75 -0
  88. package/optimize/lib/components/expression/expression.a11y.js +254 -0
  89. package/optimize/lib/components/filter_group/filter_group.a11y.js +287 -0
  90. package/optimize/lib/components/focus_trap/focus_trap.a11y.js +140 -0
  91. package/optimize/lib/components/form/file_picker/file_picker.js +1 -0
  92. package/optimize/lib/components/header/header.a11y.js +385 -0
  93. package/optimize/lib/components/icon/icon_ML.a11y.js +40 -0
  94. package/optimize/lib/components/icon/icon_apps.a11y.js +40 -0
  95. package/optimize/lib/components/icon/icon_editor.a11y.js +40 -0
  96. package/optimize/lib/components/icon/icon_elastic.a11y.js +40 -0
  97. package/optimize/lib/components/icon/icon_glyphs.a11y.js +40 -0
  98. package/optimize/lib/components/icon/icon_tokens.a11y.js +40 -0
  99. package/optimize/lib/components/markdown_editor/plugins/markdown_default_plugins/parsing_plugins.js +2 -2
  100. package/optimize/lib/components/selectable/selectable.js +2 -2
  101. package/optimize/lib/components/selectable/selectable_list/selectable_list.js +15 -4
  102. package/optimize/lib/components/tabs/tab.js +15 -5
  103. package/optimize/lib/components/tabs/tabs.js +8 -14
  104. package/optimize/lib/components/tabs/tabs_context.js +23 -0
  105. package/package.json +4 -6
  106. package/src/components/date_picker/super_date_picker/quick_select_popover/_quick_select_popover.scss +14 -0
  107. package/src/components/form/file_picker/_file_picker.scss +14 -14
  108. package/test-env/components/date_picker/auto_refresh/refresh_interval.js +3 -1
  109. package/test-env/components/date_picker/super_date_picker/quick_select_popover/commonly_used_time_ranges.js +5 -2
  110. package/test-env/components/date_picker/super_date_picker/quick_select_popover/quick_select.js +3 -1
  111. package/test-env/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +153 -166
  112. package/test-env/components/date_picker/super_date_picker/quick_select_popover/recently_used.js +5 -2
  113. package/test-env/components/date_picker/super_date_picker/super_date_picker.js +16 -0
  114. package/test-env/components/error_boundary/error_boundary.a11y.js +75 -0
  115. package/test-env/components/expression/expression.a11y.js +254 -0
  116. package/test-env/components/filter_group/filter_group.a11y.js +287 -0
  117. package/test-env/components/focus_trap/focus_trap.a11y.js +140 -0
  118. package/test-env/components/form/file_picker/file_picker.js +1 -0
  119. package/test-env/components/header/header.a11y.js +385 -0
  120. package/test-env/components/icon/icon_ML.a11y.js +40 -0
  121. package/test-env/components/icon/icon_apps.a11y.js +40 -0
  122. package/test-env/components/icon/icon_editor.a11y.js +40 -0
  123. package/test-env/components/icon/icon_elastic.a11y.js +40 -0
  124. package/test-env/components/icon/icon_glyphs.a11y.js +40 -0
  125. package/test-env/components/icon/icon_tokens.a11y.js +40 -0
  126. package/test-env/components/markdown_editor/plugins/markdown_default_plugins/parsing_plugins.js +2 -2
  127. package/test-env/components/selectable/selectable.js +4 -3
  128. package/test-env/components/selectable/selectable_list/selectable_list.js +17 -5
  129. package/test-env/components/tabs/tab.js +15 -17
  130. package/test-env/components/tabs/tabbed_content/tabbed_content.js +0 -16
  131. package/test-env/components/tabs/tabs.js +8 -14
  132. package/test-env/components/tabs/tabs_context.js +23 -0
@@ -226,7 +226,9 @@ export var EuiRefreshInterval = /*#__PURE__*/function (_Component) {
226
226
  units = _this$state5.units;
227
227
  return ___EmotionJSX(RenderI18nTimeOptions, null, function (_ref3) {
228
228
  var refreshUnitsOptions = _ref3.refreshUnitsOptions;
229
- return ___EmotionJSX("fieldset", null, ___EmotionJSX(EuiFlexGroup, {
229
+ return ___EmotionJSX("fieldset", {
230
+ className: "euiQuickSelectPopover__panel"
231
+ }, ___EmotionJSX(EuiFlexGroup, {
230
232
  alignItems: "center",
231
233
  gutterSize: "s",
232
234
  responsive: false,
@@ -39,10 +39,13 @@ export var EuiCommonlyUsedTimeRanges = function EuiCommonlyUsedTimeRanges(_ref)
39
39
  "data-test-subj": dataTestSubj
40
40
  }, label));
41
41
  });
42
- return ___EmotionJSX("fieldset", null, ___EmotionJSX(EuiTitle, {
42
+ return ___EmotionJSX("fieldset", {
43
+ className: "euiQuickSelectPopover__panel"
44
+ }, ___EmotionJSX(EuiTitle, {
43
45
  size: "xxxs"
44
46
  }, ___EmotionJSX("legend", {
45
- id: legendId
47
+ id: legendId,
48
+ className: "euiQuickSelectPopover__panelTitle"
46
49
  }, ___EmotionJSX(EuiI18n, {
47
50
  token: "euiCommonlyUsedTimeRanges.legend",
48
51
  default: "Commonly used"
@@ -186,7 +186,9 @@ export var EuiQuickSelect = /*#__PURE__*/function (_Component) {
186
186
  return value === timeUnits;
187
187
  });
188
188
  var timeUnit = matchedTimeUnit ? matchedTimeUnit.text : '';
189
- return ___EmotionJSX("fieldset", null, ___EmotionJSX(EuiI18n, {
189
+ return ___EmotionJSX("fieldset", {
190
+ className: "euiQuickSelectPopover__panel"
191
+ }, ___EmotionJSX(EuiI18n, {
190
192
  token: "euiQuickSelect.legendText",
191
193
  default: "Quick select a time range"
192
194
  }, function (legendText) {
@@ -1,26 +1,22 @@
1
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
1
+ var _excluded = ["applyTime"];
2
2
 
3
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
3
+ 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); }
4
4
 
5
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
5
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
6
6
 
7
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
7
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
8
8
 
9
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
9
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
10
10
 
11
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
11
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
12
12
 
13
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
13
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
14
14
 
15
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
15
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
16
16
 
17
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
17
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
18
18
 
19
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
20
-
21
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
22
-
23
- 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; }
19
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
24
20
 
25
21
  /*
26
22
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
@@ -29,181 +25,91 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
29
25
  * in compliance with, at your election, the Elastic License 2.0 or the Server
30
26
  * Side Public License, v 1.
31
27
  */
32
- import React, { Component, Fragment } from 'react';
28
+ import React, { useState, useCallback, useMemo } from 'react';
33
29
  import PropTypes from "prop-types";
34
30
  import { EuiButtonEmpty } from '../../../button';
35
31
  import { EuiIcon } from '../../../icon';
36
32
  import { EuiPopover } from '../../../popover';
37
33
  import { EuiTitle } from '../../../title';
38
- import { EuiHorizontalRule } from '../../../horizontal_rule';
39
34
  import { EuiText } from '../../../text';
35
+ import { useEuiI18n } from '../../../i18n';
40
36
  import { EuiQuickSelect } from './quick_select';
41
37
  import { EuiCommonlyUsedTimeRanges } from './commonly_used_time_ranges';
42
38
  import { EuiRecentlyUsed } from './recently_used';
43
39
  import { EuiRefreshInterval } from '../../auto_refresh/refresh_interval';
44
40
  import { jsx as ___EmotionJSX } from "@emotion/react";
45
- export var EuiQuickSelectPopover = /*#__PURE__*/function (_Component) {
46
- _inherits(EuiQuickSelectPopover, _Component);
47
-
48
- var _super = _createSuper(EuiQuickSelectPopover);
49
-
50
- function EuiQuickSelectPopover() {
51
- var _this;
52
-
53
- _classCallCheck(this, EuiQuickSelectPopover);
54
-
55
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
56
- args[_key] = arguments[_key];
57
- }
58
-
59
- _this = _super.call.apply(_super, [this].concat(args));
60
-
61
- _defineProperty(_assertThisInitialized(_this), "state", {
62
- isOpen: false
63
- });
64
-
65
- _defineProperty(_assertThisInitialized(_this), "closePopover", function () {
66
- _this.setState({
67
- isOpen: false
68
- });
41
+ export var EuiQuickSelectPopover = function EuiQuickSelectPopover(_ref) {
42
+ var _applyTime = _ref.applyTime,
43
+ props = _objectWithoutProperties(_ref, _excluded);
44
+
45
+ var _useState = useState(),
46
+ _useState2 = _slicedToArray(_useState, 2),
47
+ prevQuickSelect = _useState2[0],
48
+ setQuickSelect = _useState2[1];
49
+
50
+ var _useState3 = useState(false),
51
+ _useState4 = _slicedToArray(_useState3, 2),
52
+ isOpen = _useState4[0],
53
+ setIsOpen = _useState4[1];
54
+
55
+ var closePopover = useCallback(function () {
56
+ return setIsOpen(false);
57
+ }, []);
58
+ var togglePopover = useCallback(function () {
59
+ return setIsOpen(function (isOpen) {
60
+ return !isOpen;
69
61
  });
70
-
71
- _defineProperty(_assertThisInitialized(_this), "togglePopover", function () {
72
- _this.setState(function (prevState) {
73
- return {
74
- isOpen: !prevState.isOpen
75
- };
76
- });
77
- });
78
-
79
- _defineProperty(_assertThisInitialized(_this), "applyTime", function (_ref) {
80
- var start = _ref.start,
81
- end = _ref.end,
82
- quickSelect = _ref.quickSelect,
83
- _ref$keepPopoverOpen = _ref.keepPopoverOpen,
84
- keepPopoverOpen = _ref$keepPopoverOpen === void 0 ? false : _ref$keepPopoverOpen;
85
-
86
- _this.props.applyTime({
87
- start: start,
88
- end: end
89
- });
90
-
91
- if (quickSelect) {
92
- _this.setState({
93
- prevQuickSelect: quickSelect
94
- });
95
- }
96
-
97
- if (!keepPopoverOpen) {
98
- _this.closePopover();
99
- }
62
+ }, []);
63
+ var applyTime = useCallback(function (_ref2) {
64
+ var start = _ref2.start,
65
+ end = _ref2.end,
66
+ quickSelect = _ref2.quickSelect,
67
+ _ref2$keepPopoverOpen = _ref2.keepPopoverOpen,
68
+ keepPopoverOpen = _ref2$keepPopoverOpen === void 0 ? false : _ref2$keepPopoverOpen;
69
+
70
+ _applyTime({
71
+ start: start,
72
+ end: end
100
73
  });
101
74
 
102
- _defineProperty(_assertThisInitialized(_this), "renderDateTimeSections", function () {
103
- var _this$props = _this.props,
104
- commonlyUsedRanges = _this$props.commonlyUsedRanges,
105
- dateFormat = _this$props.dateFormat,
106
- end = _this$props.end,
107
- recentlyUsedRanges = _this$props.recentlyUsedRanges,
108
- start = _this$props.start,
109
- timeOptions = _this$props.timeOptions;
110
- var prevQuickSelect = _this.state.prevQuickSelect;
111
- return ___EmotionJSX(Fragment, null, ___EmotionJSX(EuiQuickSelect, {
112
- applyTime: _this.applyTime,
113
- start: start,
114
- end: end,
115
- prevQuickSelect: prevQuickSelect,
116
- timeOptions: timeOptions
117
- }), commonlyUsedRanges.length > 0 && ___EmotionJSX(EuiHorizontalRule, {
118
- margin: "s"
119
- }), ___EmotionJSX(EuiCommonlyUsedTimeRanges, {
120
- applyTime: _this.applyTime,
121
- commonlyUsedRanges: commonlyUsedRanges
122
- }), recentlyUsedRanges.length > 0 && ___EmotionJSX(EuiHorizontalRule, {
123
- margin: "s"
124
- }), ___EmotionJSX(EuiRecentlyUsed, {
125
- applyTime: _this.applyTime,
126
- commonlyUsedRanges: commonlyUsedRanges,
127
- dateFormat: dateFormat,
128
- recentlyUsedRanges: recentlyUsedRanges
129
- }), _this.renderCustomQuickSelectPanels());
130
- });
131
-
132
- _defineProperty(_assertThisInitialized(_this), "renderCustomQuickSelectPanels", function () {
133
- var customQuickSelectPanels = _this.props.customQuickSelectPanels;
134
-
135
- if (!customQuickSelectPanels) {
136
- return null;
137
- }
138
-
139
- return customQuickSelectPanels.map(function (_ref2) {
140
- var title = _ref2.title,
141
- content = _ref2.content;
142
- return ___EmotionJSX(Fragment, {
143
- key: title
144
- }, ___EmotionJSX(EuiHorizontalRule, {
145
- margin: "s"
146
- }), ___EmotionJSX(EuiTitle, {
147
- size: "xxxs"
148
- }, ___EmotionJSX("span", null, title)), ___EmotionJSX(EuiText, {
149
- size: "s",
150
- className: "euiQuickSelectPopover__section"
151
- }, /*#__PURE__*/React.cloneElement(content, {
152
- applyTime: _this.applyTime
153
- })));
154
- });
155
- });
156
-
157
- return _this;
158
- }
159
-
160
- _createClass(EuiQuickSelectPopover, [{
161
- key: "render",
162
- value: function render() {
163
- var _this$props2 = this.props,
164
- applyRefreshInterval = _this$props2.applyRefreshInterval,
165
- isDisabled = _this$props2.isDisabled,
166
- isPaused = _this$props2.isPaused,
167
- refreshInterval = _this$props2.refreshInterval;
168
- var isOpen = this.state.isOpen;
169
-
170
- var quickSelectButton = ___EmotionJSX(EuiButtonEmpty, {
171
- className: "euiFormControlLayout__prepend",
172
- textProps: {
173
- className: 'euiQuickSelectPopover__buttonText'
174
- },
175
- onClick: this.togglePopover,
176
- "aria-label": "Date quick select",
177
- size: "xs",
178
- iconType: "arrowDown",
179
- iconSide: "right",
180
- isDisabled: isDisabled,
181
- "data-test-subj": "superDatePickerToggleQuickMenuButton"
182
- }, ___EmotionJSX(EuiIcon, {
183
- type: "calendar"
184
- }));
185
-
186
- return ___EmotionJSX(EuiPopover, {
187
- button: quickSelectButton,
188
- isOpen: isOpen,
189
- closePopover: this.closePopover,
190
- anchorPosition: "downLeft",
191
- anchorClassName: "euiQuickSelectPopover__anchor"
192
- }, ___EmotionJSX("div", {
193
- className: "euiQuickSelectPopover__content",
194
- "data-test-subj": "superDatePickerQuickMenu"
195
- }, this.renderDateTimeSections(), applyRefreshInterval && ___EmotionJSX(React.Fragment, null, ___EmotionJSX(EuiHorizontalRule, {
196
- margin: "s"
197
- }), ___EmotionJSX(EuiRefreshInterval, {
198
- onRefreshChange: applyRefreshInterval,
199
- isPaused: isPaused,
200
- refreshInterval: refreshInterval
201
- }))));
75
+ if (quickSelect) {
76
+ setQuickSelect(quickSelect);
202
77
  }
203
- }]);
204
78
 
205
- return EuiQuickSelectPopover;
206
- }(Component);
79
+ if (!keepPopoverOpen) {
80
+ closePopover();
81
+ }
82
+ }, [_applyTime, closePopover]);
83
+ var buttonlabel = useEuiI18n('euiQuickSelectPopover.buttonLabel', 'Date quick select');
84
+
85
+ var quickSelectButton = ___EmotionJSX(EuiButtonEmpty, {
86
+ className: "euiFormControlLayout__prepend",
87
+ textProps: {
88
+ className: 'euiQuickSelectPopover__buttonText'
89
+ },
90
+ onClick: togglePopover,
91
+ "aria-label": buttonlabel,
92
+ title: buttonlabel,
93
+ size: "xs",
94
+ iconType: "arrowDown",
95
+ iconSide: "right",
96
+ isDisabled: props.isDisabled,
97
+ "data-test-subj": "superDatePickerToggleQuickMenuButton"
98
+ }, ___EmotionJSX(EuiIcon, {
99
+ type: "calendar"
100
+ }));
101
+
102
+ return ___EmotionJSX(EuiPopover, {
103
+ button: quickSelectButton,
104
+ isOpen: isOpen,
105
+ closePopover: closePopover,
106
+ anchorPosition: "downLeft",
107
+ anchorClassName: "euiQuickSelectPopover__anchor"
108
+ }, ___EmotionJSX(EuiQuickSelectPanels, _extends({}, props, {
109
+ applyTime: applyTime,
110
+ prevQuickSelect: prevQuickSelect
111
+ })));
112
+ };
207
113
  EuiQuickSelectPopover.propTypes = {
208
114
  applyRefreshInterval: PropTypes.func,
209
115
  applyTime: PropTypes.func.isRequired,
@@ -216,6 +122,7 @@ EuiQuickSelectPopover.propTypes = {
216
122
  title: PropTypes.string.isRequired,
217
123
  content: PropTypes.element.isRequired
218
124
  }).isRequired),
125
+ customQuickSelectRender: PropTypes.func,
219
126
  dateFormat: PropTypes.string.isRequired,
220
127
  end: PropTypes.string.isRequired,
221
128
  isDisabled: PropTypes.bool.isRequired,
@@ -242,4 +149,84 @@ EuiQuickSelectPopover.propTypes = {
242
149
  start: PropTypes.oneOfType([PropTypes.oneOf(["now"]), PropTypes.string.isRequired]).isRequired
243
150
  }).isRequired).isRequired
244
151
  }).isRequired
152
+ };
153
+ export var EuiQuickSelectPanels = function EuiQuickSelectPanels(_ref3) {
154
+ var start = _ref3.start,
155
+ end = _ref3.end,
156
+ dateFormat = _ref3.dateFormat,
157
+ timeOptions = _ref3.timeOptions,
158
+ commonlyUsedRanges = _ref3.commonlyUsedRanges,
159
+ recentlyUsedRanges = _ref3.recentlyUsedRanges,
160
+ customQuickSelectPanels = _ref3.customQuickSelectPanels,
161
+ customQuickSelectRender = _ref3.customQuickSelectRender,
162
+ isPaused = _ref3.isPaused,
163
+ refreshInterval = _ref3.refreshInterval,
164
+ applyRefreshInterval = _ref3.applyRefreshInterval,
165
+ applyTime = _ref3.applyTime,
166
+ prevQuickSelect = _ref3.prevQuickSelect;
167
+
168
+ var quickSelectElement = ___EmotionJSX(EuiQuickSelect, {
169
+ applyTime: applyTime,
170
+ start: start,
171
+ end: end,
172
+ prevQuickSelect: prevQuickSelect,
173
+ timeOptions: timeOptions
174
+ });
175
+
176
+ var commonlyUsedElement = ___EmotionJSX(EuiCommonlyUsedTimeRanges, {
177
+ applyTime: applyTime,
178
+ commonlyUsedRanges: commonlyUsedRanges
179
+ });
180
+
181
+ var recentlyUsedElement = ___EmotionJSX(EuiRecentlyUsed, {
182
+ applyTime: applyTime,
183
+ commonlyUsedRanges: commonlyUsedRanges,
184
+ dateFormat: dateFormat,
185
+ recentlyUsedRanges: recentlyUsedRanges
186
+ });
187
+
188
+ var refreshIntervalElement = applyRefreshInterval && ___EmotionJSX(EuiRefreshInterval, {
189
+ onRefreshChange: applyRefreshInterval,
190
+ isPaused: isPaused,
191
+ refreshInterval: refreshInterval
192
+ });
193
+
194
+ var customQuickSelectPanelsElement = useMemo(function () {
195
+ if (!customQuickSelectPanels) {
196
+ return null;
197
+ }
198
+
199
+ return customQuickSelectPanels.map(function (_ref4) {
200
+ var title = _ref4.title,
201
+ content = _ref4.content;
202
+ return ___EmotionJSX("div", {
203
+ key: title,
204
+ className: "euiQuickSelectPopover__panel"
205
+ }, ___EmotionJSX(EuiTitle, {
206
+ size: "xxxs"
207
+ }, ___EmotionJSX("span", null, title)), ___EmotionJSX(EuiText, {
208
+ size: "s",
209
+ className: "euiQuickSelectPopover__section"
210
+ }, /*#__PURE__*/React.cloneElement(content, {
211
+ applyTime: applyTime
212
+ })));
213
+ });
214
+ }, [customQuickSelectPanels, applyTime]);
215
+ return ___EmotionJSX("div", {
216
+ className: "euiQuickSelectPopover__content",
217
+ "data-test-subj": "superDatePickerQuickMenu"
218
+ }, customQuickSelectRender ? customQuickSelectRender({
219
+ quickSelect: quickSelectElement,
220
+ commonlyUsedRanges: commonlyUsedElement,
221
+ recentlyUsedRanges: recentlyUsedElement,
222
+ refreshInterval: refreshIntervalElement,
223
+ customQuickSelectPanels: customQuickSelectPanelsElement
224
+ }) : ___EmotionJSX(React.Fragment, null, quickSelectElement, commonlyUsedElement, recentlyUsedElement, refreshIntervalElement, customQuickSelectPanelsElement));
225
+ };
226
+ EuiQuickSelectPanels.propTypes = {
227
+ prevQuickSelect: PropTypes.shape({
228
+ timeTense: PropTypes.string.isRequired,
229
+ timeValue: PropTypes.number.isRequired,
230
+ timeUnits: PropTypes.oneOf(["s", "m", "h", "d", "w", "M", "y"]).isRequired
231
+ })
245
232
  };
@@ -48,10 +48,13 @@ export var EuiRecentlyUsed = function EuiRecentlyUsed(_ref) {
48
48
  dateFormat: dateFormat
49
49
  })));
50
50
  });
51
- return ___EmotionJSX("fieldset", null, ___EmotionJSX(EuiTitle, {
51
+ return ___EmotionJSX("fieldset", {
52
+ className: "euiQuickSelectPopover__panel"
53
+ }, ___EmotionJSX(EuiTitle, {
52
54
  size: "xxxs"
53
55
  }, ___EmotionJSX("legend", {
54
- id: legendId
56
+ id: legendId,
57
+ className: "euiQuickSelectPopover__panelTitle"
55
58
  }, ___EmotionJSX(EuiI18n, {
56
59
  token: "euiRecentlyUsed.legend",
57
60
  default: "Recently used date ranges"
@@ -398,6 +398,7 @@ export var EuiSuperDatePickerInternal = /*#__PURE__*/function (_Component) {
398
398
  commonlyUsedRanges = _this$props5.commonlyUsedRanges,
399
399
  timeOptions = _this$props5.timeOptions,
400
400
  customQuickSelectPanels = _this$props5.customQuickSelectPanels,
401
+ customQuickSelectRender = _this$props5.customQuickSelectRender,
401
402
  dateFormat = _this$props5.dateFormat,
402
403
  end = _this$props5.end,
403
404
  isAutoRefreshOnly = _this$props5.isAutoRefreshOnly,
@@ -429,6 +430,7 @@ export var EuiSuperDatePickerInternal = /*#__PURE__*/function (_Component) {
429
430
  applyTime: this.applyQuickTime,
430
431
  commonlyUsedRanges: commonlyUsedRanges,
431
432
  customQuickSelectPanels: customQuickSelectPanels,
433
+ customQuickSelectRender: customQuickSelectRender,
432
434
  dateFormat: dateFormat,
433
435
  end: end,
434
436
  isDisabled: isDisabled,
@@ -529,6 +531,13 @@ EuiSuperDatePickerInternal.propTypes = {
529
531
  content: PropTypes.element.isRequired
530
532
  }).isRequired),
531
533
 
534
+ /**
535
+ * An optional render prop function that allows customizing the display of the Quick Select menu.
536
+ * This function passes all default quick select panels within an object, allowing you to
537
+ * re-order panels, omit certain panels entirely, or pass in your own fully custom content.
538
+ */
539
+ customQuickSelectRender: PropTypes.func,
540
+
532
541
  /**
533
542
  * Specifies the formatted used when displaying dates and/or datetimes
534
543
  */
@@ -741,6 +750,13 @@ EuiSuperDatePicker.propTypes = {
741
750
  content: PropTypes.element.isRequired
742
751
  }).isRequired),
743
752
 
753
+ /**
754
+ * An optional render prop function that allows customizing the display of the Quick Select menu.
755
+ * This function passes all default quick select panels within an object, allowing you to
756
+ * re-order panels, omit certain panels entirely, or pass in your own fully custom content.
757
+ */
758
+ customQuickSelectRender: PropTypes.func,
759
+
744
760
  /**
745
761
  * Specifies the formatted used when displaying dates and/or datetimes
746
762
  */
@@ -0,0 +1,67 @@
1
+ /*
2
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3
+ * or more contributor license agreements. Licensed under the Elastic License
4
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
5
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
6
+ * Side Public License, v 1.
7
+ */
8
+ /// <reference types="../../../cypress/support"/>
9
+ import React from 'react';
10
+ import { EuiButton } from '../button';
11
+ import { EuiErrorBoundary } from './error_boundary';
12
+ import { EuiSpacer } from '../spacer';
13
+ import { jsx as ___EmotionJSX } from "@emotion/react";
14
+
15
+ var handleFocus = function handleFocus() {
16
+ var target = document.querySelector('pre.euiCodeBlock__pre');
17
+ target.focus();
18
+ };
19
+
20
+ describe('EuiErrorBoundary', function () {
21
+ describe('Automated accessibility check when an error is thrown', function () {
22
+ var BadComponent = function BadComponent() {
23
+ throw new Error('Throw the error.');
24
+ };
25
+
26
+ beforeEach(function () {
27
+ cy.on('uncaught:exception', function (err) {
28
+ if (err.message.includes('Throw the error')) {
29
+ return false;
30
+ }
31
+ });
32
+ cy.viewport(1024, 768); // medium breakpoint
33
+
34
+ cy.realMount(___EmotionJSX(React.Fragment, null, ___EmotionJSX(EuiButton, {
35
+ color: "primary",
36
+ onClick: handleFocus,
37
+ "data-test-subj": "cy-error-boundary-button"
38
+ }, "Press to focus"), ___EmotionJSX(EuiSpacer, null), ___EmotionJSX(EuiErrorBoundary, null, ___EmotionJSX(BadComponent, null))));
39
+ });
40
+ it('has zero violations on first render', function () {
41
+ cy.checkAxe();
42
+ });
43
+ it('has zero violations and accepts focus when the button is pressed', function () {
44
+ cy.realPress('Tab');
45
+ cy.realPress('Enter');
46
+ cy.get('pre.euiCodeBlock__pre').should('have.focus');
47
+ cy.checkAxe();
48
+ });
49
+ });
50
+ describe('Automated accessibility check when no error is thrown', function () {
51
+ var GoodComponent = function GoodComponent() {
52
+ return ___EmotionJSX("div", {
53
+ "data-test-subj": "cy-good-component"
54
+ }, "This is a properly rendered component.");
55
+ };
56
+
57
+ beforeEach(function () {
58
+ cy.viewport(1024, 768); // medium breakpoint
59
+
60
+ cy.realMount(___EmotionJSX(EuiErrorBoundary, null, ___EmotionJSX(GoodComponent, null)));
61
+ });
62
+ it('has zero violations when no violations are thrown', function () {
63
+ cy.get('div[data-test-subj="cy-good-component"]').should('exist');
64
+ cy.checkAxe();
65
+ });
66
+ });
67
+ });