@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
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- var _excluded = ["isSelected", "children", "className", "disabled", "href", "target", "rel", "prepend", "append", "size", "expand"];
3
+ var _excluded = ["isSelected", "children", "className", "disabled", "href", "target", "rel", "prepend", "append"];
4
4
 
5
5
  /*
6
6
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
@@ -9,11 +9,12 @@ var _excluded = ["isSelected", "children", "className", "disabled", "href", "tar
9
9
  * in compliance with, at your election, the Elastic License 2.0 or the Server
10
10
  * Side Public License, v 1.
11
11
  */
12
- import React from 'react';
12
+ import React, { useContext } from 'react';
13
13
  import classNames from 'classnames';
14
14
  import { getSecureRelForTarget, useEuiTheme } from '../../services';
15
15
  import { validateHref } from '../../services/security/href_validator';
16
16
  import { euiTabStyles, euiTabContentStyles } from './tab.styles';
17
+ import { EuiTabsContext } from './tabs_context';
17
18
  import { jsx as ___EmotionJSX } from "@emotion/react";
18
19
  export var EuiTab = function EuiTab(_ref) {
19
20
  var isSelected = _ref.isSelected,
@@ -25,11 +26,12 @@ export var EuiTab = function EuiTab(_ref) {
25
26
  rel = _ref.rel,
26
27
  prepend = _ref.prepend,
27
28
  append = _ref.append,
28
- _ref$size = _ref.size,
29
- size = _ref$size === void 0 ? 'm' : _ref$size,
30
- expand = _ref.expand,
31
29
  rest = _objectWithoutProperties(_ref, _excluded);
32
30
 
31
+ var _useContext = useContext(EuiTabsContext),
32
+ size = _useContext.size,
33
+ expand = _useContext.expand;
34
+
33
35
  var euiTheme = useEuiTheme();
34
36
  var isHrefValid = !href || validateHref(href);
35
37
  var disabled = _disabled || !isHrefValid; // Keep CSS classnames for reference
@@ -12,8 +12,8 @@ var _excluded = ["children", "className", "bottomBorder", "expand", "size"];
12
12
  import React, { forwardRef } from 'react';
13
13
  import classNames from 'classnames';
14
14
  import { useEuiTheme } from '../../services';
15
- import { cloneElementWithCss } from '../../services/theme/clone_element';
16
15
  import { euiTabsStyles } from './tabs.styles';
16
+ import { EuiTabsContext } from './tabs_context';
17
17
  import { jsx as ___EmotionJSX } from "@emotion/react";
18
18
  export var SIZES = ['s', 'm', 'l', 'xl'];
19
19
  export var EuiTabs = /*#__PURE__*/forwardRef(function (_ref, ref) {
@@ -31,21 +31,17 @@ export var EuiTabs = /*#__PURE__*/forwardRef(function (_ref, ref) {
31
31
  var classes = classNames('euiTabs', className);
32
32
  var styles = euiTabsStyles(euiTheme);
33
33
  var cssStyles = [styles.euiTabs, styles[size], bottomBorder && styles.bottomBorder];
34
- var tabItems = React.Children.map(children, function (child) {
35
- if ( /*#__PURE__*/React.isValidElement(child)) {
36
- return cloneElementWithCss(child, {
37
- // we're passing the parent `size` and `expand` down to the children
38
- size: size,
39
- expand: expand
40
- });
41
- }
42
- });
43
34
  return ___EmotionJSX("div", _extends({
44
35
  ref: ref,
45
36
  className: classes,
46
37
  css: cssStyles
47
38
  }, children && {
48
39
  role: 'tablist'
49
- }, rest), tabItems);
40
+ }, rest), ___EmotionJSX(EuiTabsContext.Provider, {
41
+ value: {
42
+ expand: expand,
43
+ size: size
44
+ }
45
+ }, children));
50
46
  });
51
47
  EuiTabs.displayName = 'EuiTabs';
@@ -0,0 +1,13 @@
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
+ import { createContext } from 'react';
9
+ export var contextDefaults = {
10
+ expand: false,
11
+ size: 'm'
12
+ };
13
+ export var EuiTabsContext = /*#__PURE__*/createContext(contextDefaults);
@@ -223,7 +223,9 @@ var EuiRefreshInterval = /*#__PURE__*/function (_Component) {
223
223
  units = _this$state5.units;
224
224
  return (0, _react2.jsx)(_time_options.RenderI18nTimeOptions, null, function (_ref3) {
225
225
  var refreshUnitsOptions = _ref3.refreshUnitsOptions;
226
- return (0, _react2.jsx)("fieldset", null, (0, _react2.jsx)(_flex.EuiFlexGroup, {
226
+ return (0, _react2.jsx)("fieldset", {
227
+ className: "euiQuickSelectPopover__panel"
228
+ }, (0, _react2.jsx)(_flex.EuiFlexGroup, {
227
229
  alignItems: "center",
228
230
  gutterSize: "s",
229
231
  responsive: false,
@@ -54,10 +54,13 @@ var EuiCommonlyUsedTimeRanges = function EuiCommonlyUsedTimeRanges(_ref) {
54
54
  "data-test-subj": dataTestSubj
55
55
  }, label));
56
56
  });
57
- return (0, _react2.jsx)("fieldset", null, (0, _react2.jsx)(_title.EuiTitle, {
57
+ return (0, _react2.jsx)("fieldset", {
58
+ className: "euiQuickSelectPopover__panel"
59
+ }, (0, _react2.jsx)(_title.EuiTitle, {
58
60
  size: "xxxs"
59
61
  }, (0, _react2.jsx)("legend", {
60
- id: legendId
62
+ id: legendId,
63
+ className: "euiQuickSelectPopover__panelTitle"
61
64
  }, (0, _react2.jsx)(_i18n.EuiI18n, {
62
65
  token: "euiCommonlyUsedTimeRanges.legend",
63
66
  default: "Commonly used"
@@ -191,7 +191,9 @@ var EuiQuickSelect = /*#__PURE__*/function (_Component) {
191
191
  return value === timeUnits;
192
192
  });
193
193
  var timeUnit = matchedTimeUnit ? matchedTimeUnit.text : '';
194
- return (0, _react2.jsx)("fieldset", null, (0, _react2.jsx)(_i18n.EuiI18n, {
194
+ return (0, _react2.jsx)("fieldset", {
195
+ className: "euiQuickSelectPopover__panel"
196
+ }, (0, _react2.jsx)(_i18n.EuiI18n, {
195
197
  token: "euiQuickSelect.legendText",
196
198
  default: "Quick select a time range"
197
199
  }, function (legendText) {
@@ -7,21 +7,13 @@ var _typeof = require("@babel/runtime/helpers/typeof");
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
- exports.EuiQuickSelectPopover = void 0;
10
+ exports.EuiQuickSelectPopover = exports.EuiQuickSelectPanels = void 0;
11
11
 
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
13
 
14
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
15
 
16
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
-
18
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
-
20
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
-
22
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
-
24
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
25
17
 
26
18
  var _react = _interopRequireWildcard(require("react"));
27
19
 
@@ -33,10 +25,10 @@ var _popover = require("../../../popover");
33
25
 
34
26
  var _title = require("../../../title");
35
27
 
36
- var _horizontal_rule = require("../../../horizontal_rule");
37
-
38
28
  var _text = require("../../../text");
39
29
 
30
+ var _i18n = require("../../../i18n");
31
+
40
32
  var _quick_select = require("./quick_select");
41
33
 
42
34
  var _commonly_used_time_ranges = require("./commonly_used_time_ranges");
@@ -47,165 +39,152 @@ var _refresh_interval = require("../../auto_refresh/refresh_interval");
47
39
 
48
40
  var _react2 = require("@emotion/react");
49
41
 
42
+ var _excluded = ["applyTime"];
43
+
50
44
  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); }
51
45
 
52
46
  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; }
53
47
 
54
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
55
-
56
- 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; } }
57
-
58
- var EuiQuickSelectPopover = /*#__PURE__*/function (_Component) {
59
- (0, _inherits2.default)(EuiQuickSelectPopover, _Component);
60
-
61
- var _super = _createSuper(EuiQuickSelectPopover);
62
-
63
- function EuiQuickSelectPopover() {
64
- var _this;
65
-
66
- (0, _classCallCheck2.default)(this, EuiQuickSelectPopover);
48
+ var EuiQuickSelectPopover = function EuiQuickSelectPopover(_ref) {
49
+ var _applyTime = _ref.applyTime,
50
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
51
+
52
+ var _useState = (0, _react.useState)(),
53
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
54
+ prevQuickSelect = _useState2[0],
55
+ setQuickSelect = _useState2[1];
56
+
57
+ var _useState3 = (0, _react.useState)(false),
58
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
59
+ isOpen = _useState4[0],
60
+ setIsOpen = _useState4[1];
61
+
62
+ var closePopover = (0, _react.useCallback)(function () {
63
+ return setIsOpen(false);
64
+ }, []);
65
+ var togglePopover = (0, _react.useCallback)(function () {
66
+ return setIsOpen(function (isOpen) {
67
+ return !isOpen;
68
+ });
69
+ }, []);
70
+ var applyTime = (0, _react.useCallback)(function (_ref2) {
71
+ var start = _ref2.start,
72
+ end = _ref2.end,
73
+ quickSelect = _ref2.quickSelect,
74
+ _ref2$keepPopoverOpen = _ref2.keepPopoverOpen,
75
+ keepPopoverOpen = _ref2$keepPopoverOpen === void 0 ? false : _ref2$keepPopoverOpen;
76
+
77
+ _applyTime({
78
+ start: start,
79
+ end: end
80
+ });
67
81
 
68
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
69
- args[_key] = arguments[_key];
82
+ if (quickSelect) {
83
+ setQuickSelect(quickSelect);
70
84
  }
71
85
 
72
- _this = _super.call.apply(_super, [this].concat(args));
73
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "state", {
74
- isOpen: false
75
- });
76
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "closePopover", function () {
77
- _this.setState({
78
- isOpen: false
79
- });
80
- });
81
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "togglePopover", function () {
82
- _this.setState(function (prevState) {
83
- return {
84
- isOpen: !prevState.isOpen
85
- };
86
- });
87
- });
88
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "applyTime", function (_ref) {
89
- var start = _ref.start,
90
- end = _ref.end,
91
- quickSelect = _ref.quickSelect,
92
- _ref$keepPopoverOpen = _ref.keepPopoverOpen,
93
- keepPopoverOpen = _ref$keepPopoverOpen === void 0 ? false : _ref$keepPopoverOpen;
94
-
95
- _this.props.applyTime({
96
- start: start,
97
- end: end
98
- });
99
-
100
- if (quickSelect) {
101
- _this.setState({
102
- prevQuickSelect: quickSelect
103
- });
104
- }
105
-
106
- if (!keepPopoverOpen) {
107
- _this.closePopover();
108
- }
109
- });
110
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderDateTimeSections", function () {
111
- var _this$props = _this.props,
112
- commonlyUsedRanges = _this$props.commonlyUsedRanges,
113
- dateFormat = _this$props.dateFormat,
114
- end = _this$props.end,
115
- recentlyUsedRanges = _this$props.recentlyUsedRanges,
116
- start = _this$props.start,
117
- timeOptions = _this$props.timeOptions;
118
- var prevQuickSelect = _this.state.prevQuickSelect;
119
- return (0, _react2.jsx)(_react.Fragment, null, (0, _react2.jsx)(_quick_select.EuiQuickSelect, {
120
- applyTime: _this.applyTime,
121
- start: start,
122
- end: end,
123
- prevQuickSelect: prevQuickSelect,
124
- timeOptions: timeOptions
125
- }), commonlyUsedRanges.length > 0 && (0, _react2.jsx)(_horizontal_rule.EuiHorizontalRule, {
126
- margin: "s"
127
- }), (0, _react2.jsx)(_commonly_used_time_ranges.EuiCommonlyUsedTimeRanges, {
128
- applyTime: _this.applyTime,
129
- commonlyUsedRanges: commonlyUsedRanges
130
- }), recentlyUsedRanges.length > 0 && (0, _react2.jsx)(_horizontal_rule.EuiHorizontalRule, {
131
- margin: "s"
132
- }), (0, _react2.jsx)(_recently_used.EuiRecentlyUsed, {
133
- applyTime: _this.applyTime,
134
- commonlyUsedRanges: commonlyUsedRanges,
135
- dateFormat: dateFormat,
136
- recentlyUsedRanges: recentlyUsedRanges
137
- }), _this.renderCustomQuickSelectPanels());
138
- });
139
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderCustomQuickSelectPanels", function () {
140
- var customQuickSelectPanels = _this.props.customQuickSelectPanels;
141
-
142
- if (!customQuickSelectPanels) {
143
- return null;
144
- }
145
-
146
- return customQuickSelectPanels.map(function (_ref2) {
147
- var title = _ref2.title,
148
- content = _ref2.content;
149
- return (0, _react2.jsx)(_react.Fragment, {
150
- key: title
151
- }, (0, _react2.jsx)(_horizontal_rule.EuiHorizontalRule, {
152
- margin: "s"
153
- }), (0, _react2.jsx)(_title.EuiTitle, {
154
- size: "xxxs"
155
- }, (0, _react2.jsx)("span", null, title)), (0, _react2.jsx)(_text.EuiText, {
156
- size: "s",
157
- className: "euiQuickSelectPopover__section"
158
- }, /*#__PURE__*/_react.default.cloneElement(content, {
159
- applyTime: _this.applyTime
160
- })));
161
- });
162
- });
163
- return _this;
164
- }
165
-
166
- (0, _createClass2.default)(EuiQuickSelectPopover, [{
167
- key: "render",
168
- value: function render() {
169
- var _this$props2 = this.props,
170
- applyRefreshInterval = _this$props2.applyRefreshInterval,
171
- isDisabled = _this$props2.isDisabled,
172
- isPaused = _this$props2.isPaused,
173
- refreshInterval = _this$props2.refreshInterval;
174
- var isOpen = this.state.isOpen;
175
- var quickSelectButton = (0, _react2.jsx)(_button.EuiButtonEmpty, {
176
- className: "euiFormControlLayout__prepend",
177
- textProps: {
178
- className: 'euiQuickSelectPopover__buttonText'
179
- },
180
- onClick: this.togglePopover,
181
- "aria-label": "Date quick select",
182
- size: "xs",
183
- iconType: "arrowDown",
184
- iconSide: "right",
185
- isDisabled: isDisabled,
186
- "data-test-subj": "superDatePickerToggleQuickMenuButton"
187
- }, (0, _react2.jsx)(_icon.EuiIcon, {
188
- type: "calendar"
189
- }));
190
- return (0, _react2.jsx)(_popover.EuiPopover, {
191
- button: quickSelectButton,
192
- isOpen: isOpen,
193
- closePopover: this.closePopover,
194
- anchorPosition: "downLeft",
195
- anchorClassName: "euiQuickSelectPopover__anchor"
196
- }, (0, _react2.jsx)("div", {
197
- className: "euiQuickSelectPopover__content",
198
- "data-test-subj": "superDatePickerQuickMenu"
199
- }, this.renderDateTimeSections(), applyRefreshInterval && (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_horizontal_rule.EuiHorizontalRule, {
200
- margin: "s"
201
- }), (0, _react2.jsx)(_refresh_interval.EuiRefreshInterval, {
202
- onRefreshChange: applyRefreshInterval,
203
- isPaused: isPaused,
204
- refreshInterval: refreshInterval
205
- }))));
86
+ if (!keepPopoverOpen) {
87
+ closePopover();
88
+ }
89
+ }, [_applyTime, closePopover]);
90
+ var buttonlabel = (0, _i18n.useEuiI18n)('euiQuickSelectPopover.buttonLabel', 'Date quick select');
91
+ var quickSelectButton = (0, _react2.jsx)(_button.EuiButtonEmpty, {
92
+ className: "euiFormControlLayout__prepend",
93
+ textProps: {
94
+ className: 'euiQuickSelectPopover__buttonText'
95
+ },
96
+ onClick: togglePopover,
97
+ "aria-label": buttonlabel,
98
+ title: buttonlabel,
99
+ size: "xs",
100
+ iconType: "arrowDown",
101
+ iconSide: "right",
102
+ isDisabled: props.isDisabled,
103
+ "data-test-subj": "superDatePickerToggleQuickMenuButton"
104
+ }, (0, _react2.jsx)(_icon.EuiIcon, {
105
+ type: "calendar"
106
+ }));
107
+ return (0, _react2.jsx)(_popover.EuiPopover, {
108
+ button: quickSelectButton,
109
+ isOpen: isOpen,
110
+ closePopover: closePopover,
111
+ anchorPosition: "downLeft",
112
+ anchorClassName: "euiQuickSelectPopover__anchor"
113
+ }, (0, _react2.jsx)(EuiQuickSelectPanels, (0, _extends2.default)({}, props, {
114
+ applyTime: applyTime,
115
+ prevQuickSelect: prevQuickSelect
116
+ })));
117
+ };
118
+
119
+ exports.EuiQuickSelectPopover = EuiQuickSelectPopover;
120
+
121
+ var EuiQuickSelectPanels = function EuiQuickSelectPanels(_ref3) {
122
+ var start = _ref3.start,
123
+ end = _ref3.end,
124
+ dateFormat = _ref3.dateFormat,
125
+ timeOptions = _ref3.timeOptions,
126
+ commonlyUsedRanges = _ref3.commonlyUsedRanges,
127
+ recentlyUsedRanges = _ref3.recentlyUsedRanges,
128
+ customQuickSelectPanels = _ref3.customQuickSelectPanels,
129
+ customQuickSelectRender = _ref3.customQuickSelectRender,
130
+ isPaused = _ref3.isPaused,
131
+ refreshInterval = _ref3.refreshInterval,
132
+ applyRefreshInterval = _ref3.applyRefreshInterval,
133
+ applyTime = _ref3.applyTime,
134
+ prevQuickSelect = _ref3.prevQuickSelect;
135
+ var quickSelectElement = (0, _react2.jsx)(_quick_select.EuiQuickSelect, {
136
+ applyTime: applyTime,
137
+ start: start,
138
+ end: end,
139
+ prevQuickSelect: prevQuickSelect,
140
+ timeOptions: timeOptions
141
+ });
142
+ var commonlyUsedElement = (0, _react2.jsx)(_commonly_used_time_ranges.EuiCommonlyUsedTimeRanges, {
143
+ applyTime: applyTime,
144
+ commonlyUsedRanges: commonlyUsedRanges
145
+ });
146
+ var recentlyUsedElement = (0, _react2.jsx)(_recently_used.EuiRecentlyUsed, {
147
+ applyTime: applyTime,
148
+ commonlyUsedRanges: commonlyUsedRanges,
149
+ dateFormat: dateFormat,
150
+ recentlyUsedRanges: recentlyUsedRanges
151
+ });
152
+ var refreshIntervalElement = applyRefreshInterval && (0, _react2.jsx)(_refresh_interval.EuiRefreshInterval, {
153
+ onRefreshChange: applyRefreshInterval,
154
+ isPaused: isPaused,
155
+ refreshInterval: refreshInterval
156
+ });
157
+ var customQuickSelectPanelsElement = (0, _react.useMemo)(function () {
158
+ if (!customQuickSelectPanels) {
159
+ return null;
206
160
  }
207
- }]);
208
- return EuiQuickSelectPopover;
209
- }(_react.Component);
210
161
 
211
- exports.EuiQuickSelectPopover = EuiQuickSelectPopover;
162
+ return customQuickSelectPanels.map(function (_ref4) {
163
+ var title = _ref4.title,
164
+ content = _ref4.content;
165
+ return (0, _react2.jsx)("div", {
166
+ key: title,
167
+ className: "euiQuickSelectPopover__panel"
168
+ }, (0, _react2.jsx)(_title.EuiTitle, {
169
+ size: "xxxs"
170
+ }, (0, _react2.jsx)("span", null, title)), (0, _react2.jsx)(_text.EuiText, {
171
+ size: "s",
172
+ className: "euiQuickSelectPopover__section"
173
+ }, /*#__PURE__*/_react.default.cloneElement(content, {
174
+ applyTime: applyTime
175
+ })));
176
+ });
177
+ }, [customQuickSelectPanels, applyTime]);
178
+ return (0, _react2.jsx)("div", {
179
+ className: "euiQuickSelectPopover__content",
180
+ "data-test-subj": "superDatePickerQuickMenu"
181
+ }, customQuickSelectRender ? customQuickSelectRender({
182
+ quickSelect: quickSelectElement,
183
+ commonlyUsedRanges: commonlyUsedElement,
184
+ recentlyUsedRanges: recentlyUsedElement,
185
+ refreshInterval: refreshIntervalElement,
186
+ customQuickSelectPanels: customQuickSelectPanelsElement
187
+ }) : (0, _react2.jsx)(_react.default.Fragment, null, quickSelectElement, commonlyUsedElement, recentlyUsedElement, refreshIntervalElement, customQuickSelectPanelsElement));
188
+ };
189
+
190
+ exports.EuiQuickSelectPanels = EuiQuickSelectPanels;
@@ -63,10 +63,13 @@ var EuiRecentlyUsed = function EuiRecentlyUsed(_ref) {
63
63
  dateFormat: dateFormat
64
64
  })));
65
65
  });
66
- return (0, _react2.jsx)("fieldset", null, (0, _react2.jsx)(_title.EuiTitle, {
66
+ return (0, _react2.jsx)("fieldset", {
67
+ className: "euiQuickSelectPopover__panel"
68
+ }, (0, _react2.jsx)(_title.EuiTitle, {
67
69
  size: "xxxs"
68
70
  }, (0, _react2.jsx)("legend", {
69
- id: legendId
71
+ id: legendId,
72
+ className: "euiQuickSelectPopover__panelTitle"
70
73
  }, (0, _react2.jsx)(_i18n.EuiI18n, {
71
74
  token: "euiRecentlyUsed.legend",
72
75
  default: "Recently used date ranges"
@@ -393,6 +393,7 @@ var EuiSuperDatePickerInternal = /*#__PURE__*/function (_Component) {
393
393
  commonlyUsedRanges = _this$props5.commonlyUsedRanges,
394
394
  timeOptions = _this$props5.timeOptions,
395
395
  customQuickSelectPanels = _this$props5.customQuickSelectPanels,
396
+ customQuickSelectRender = _this$props5.customQuickSelectRender,
396
397
  dateFormat = _this$props5.dateFormat,
397
398
  end = _this$props5.end,
398
399
  isAutoRefreshOnly = _this$props5.isAutoRefreshOnly,
@@ -423,6 +424,7 @@ var EuiSuperDatePickerInternal = /*#__PURE__*/function (_Component) {
423
424
  applyTime: this.applyQuickTime,
424
425
  commonlyUsedRanges: commonlyUsedRanges,
425
426
  customQuickSelectPanels: customQuickSelectPanels,
427
+ customQuickSelectRender: customQuickSelectRender,
426
428
  dateFormat: dateFormat,
427
429
  end: end,
428
430
  isDisabled: isDisabled,
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _button = require("../button");
8
+
9
+ var _error_boundary = require("./error_boundary");
10
+
11
+ var _spacer = require("../spacer");
12
+
13
+ var _react2 = require("@emotion/react");
14
+
15
+ /*
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
+ /// <reference types="../../../cypress/support"/>
23
+ var handleFocus = function handleFocus() {
24
+ var target = document.querySelector('pre.euiCodeBlock__pre');
25
+ target.focus();
26
+ };
27
+
28
+ describe('EuiErrorBoundary', function () {
29
+ describe('Automated accessibility check when an error is thrown', function () {
30
+ var BadComponent = function BadComponent() {
31
+ throw new Error('Throw the error.');
32
+ };
33
+
34
+ beforeEach(function () {
35
+ cy.on('uncaught:exception', function (err) {
36
+ if (err.message.includes('Throw the error')) {
37
+ return false;
38
+ }
39
+ });
40
+ cy.viewport(1024, 768); // medium breakpoint
41
+
42
+ cy.realMount((0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_button.EuiButton, {
43
+ color: "primary",
44
+ onClick: handleFocus,
45
+ "data-test-subj": "cy-error-boundary-button"
46
+ }, "Press to focus"), (0, _react2.jsx)(_spacer.EuiSpacer, null), (0, _react2.jsx)(_error_boundary.EuiErrorBoundary, null, (0, _react2.jsx)(BadComponent, null))));
47
+ });
48
+ it('has zero violations on first render', function () {
49
+ cy.checkAxe();
50
+ });
51
+ it('has zero violations and accepts focus when the button is pressed', function () {
52
+ cy.realPress('Tab');
53
+ cy.realPress('Enter');
54
+ cy.get('pre.euiCodeBlock__pre').should('have.focus');
55
+ cy.checkAxe();
56
+ });
57
+ });
58
+ describe('Automated accessibility check when no error is thrown', function () {
59
+ var GoodComponent = function GoodComponent() {
60
+ return (0, _react2.jsx)("div", {
61
+ "data-test-subj": "cy-good-component"
62
+ }, "This is a properly rendered component.");
63
+ };
64
+
65
+ beforeEach(function () {
66
+ cy.viewport(1024, 768); // medium breakpoint
67
+
68
+ cy.realMount((0, _react2.jsx)(_error_boundary.EuiErrorBoundary, null, (0, _react2.jsx)(GoodComponent, null)));
69
+ });
70
+ it('has zero violations when no violations are thrown', function () {
71
+ cy.get('div[data-test-subj="cy-good-component"]').should('exist');
72
+ cy.checkAxe();
73
+ });
74
+ });
75
+ });