@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
@@ -5,7 +5,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.EuiQuickSelectPopover = void 0;
8
+ exports.EuiQuickSelectPopover = exports.EuiQuickSelectPanels = void 0;
9
9
 
10
10
  var _react = _interopRequireWildcard(require("react"));
11
11
 
@@ -19,10 +19,10 @@ var _popover = require("../../../popover");
19
19
 
20
20
  var _title = require("../../../title");
21
21
 
22
- var _horizontal_rule = require("../../../horizontal_rule");
23
-
24
22
  var _text = require("../../../text");
25
23
 
24
+ var _i18n = require("../../../i18n");
25
+
26
26
  var _quick_select = require("./quick_select");
27
27
 
28
28
  var _commonly_used_time_ranges = require("./commonly_used_time_ranges");
@@ -33,194 +33,102 @@ var _refresh_interval = require("../../auto_refresh/refresh_interval");
33
33
 
34
34
  var _react2 = require("@emotion/react");
35
35
 
36
+ var _excluded = ["applyTime"];
37
+
36
38
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
37
39
 
38
40
  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); }
39
41
 
40
42
  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; }
41
43
 
42
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
43
-
44
- 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); } }
45
-
46
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
47
-
48
- 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); }
49
-
50
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
51
-
52
- 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); }; }
53
-
54
- 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); }
55
-
56
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
57
-
58
- 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; } }
44
+ 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); }
59
45
 
60
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
46
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
61
47
 
62
- 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; }
48
+ 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."); }
63
49
 
64
- var EuiQuickSelectPopover = /*#__PURE__*/function (_Component) {
65
- _inherits(EuiQuickSelectPopover, _Component);
50
+ 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); }
66
51
 
67
- var _super = _createSuper(EuiQuickSelectPopover);
52
+ 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; }
68
53
 
69
- function EuiQuickSelectPopover() {
70
- var _this;
54
+ 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; }
71
55
 
72
- _classCallCheck(this, EuiQuickSelectPopover);
56
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
73
57
 
74
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
75
- args[_key] = arguments[_key];
76
- }
58
+ 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; }
77
59
 
78
- _this = _super.call.apply(_super, [this].concat(args));
60
+ 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; }
79
61
 
80
- _defineProperty(_assertThisInitialized(_this), "state", {
81
- isOpen: false
82
- });
62
+ var EuiQuickSelectPopover = function EuiQuickSelectPopover(_ref) {
63
+ var _applyTime = _ref.applyTime,
64
+ props = _objectWithoutProperties(_ref, _excluded);
83
65
 
84
- _defineProperty(_assertThisInitialized(_this), "closePopover", function () {
85
- _this.setState({
86
- isOpen: false
87
- });
88
- });
66
+ var _useState = (0, _react.useState)(),
67
+ _useState2 = _slicedToArray(_useState, 2),
68
+ prevQuickSelect = _useState2[0],
69
+ setQuickSelect = _useState2[1];
89
70
 
90
- _defineProperty(_assertThisInitialized(_this), "togglePopover", function () {
91
- _this.setState(function (prevState) {
92
- return {
93
- isOpen: !prevState.isOpen
94
- };
95
- });
96
- });
71
+ var _useState3 = (0, _react.useState)(false),
72
+ _useState4 = _slicedToArray(_useState3, 2),
73
+ isOpen = _useState4[0],
74
+ setIsOpen = _useState4[1];
97
75
 
98
- _defineProperty(_assertThisInitialized(_this), "applyTime", function (_ref) {
99
- var start = _ref.start,
100
- end = _ref.end,
101
- quickSelect = _ref.quickSelect,
102
- _ref$keepPopoverOpen = _ref.keepPopoverOpen,
103
- keepPopoverOpen = _ref$keepPopoverOpen === void 0 ? false : _ref$keepPopoverOpen;
104
-
105
- _this.props.applyTime({
106
- start: start,
107
- end: end
108
- });
109
-
110
- if (quickSelect) {
111
- _this.setState({
112
- prevQuickSelect: quickSelect
113
- });
114
- }
115
-
116
- if (!keepPopoverOpen) {
117
- _this.closePopover();
118
- }
76
+ var closePopover = (0, _react.useCallback)(function () {
77
+ return setIsOpen(false);
78
+ }, []);
79
+ var togglePopover = (0, _react.useCallback)(function () {
80
+ return setIsOpen(function (isOpen) {
81
+ return !isOpen;
119
82
  });
120
-
121
- _defineProperty(_assertThisInitialized(_this), "renderDateTimeSections", function () {
122
- var _this$props = _this.props,
123
- commonlyUsedRanges = _this$props.commonlyUsedRanges,
124
- dateFormat = _this$props.dateFormat,
125
- end = _this$props.end,
126
- recentlyUsedRanges = _this$props.recentlyUsedRanges,
127
- start = _this$props.start,
128
- timeOptions = _this$props.timeOptions;
129
- var prevQuickSelect = _this.state.prevQuickSelect;
130
- return (0, _react2.jsx)(_react.Fragment, null, (0, _react2.jsx)(_quick_select.EuiQuickSelect, {
131
- applyTime: _this.applyTime,
132
- start: start,
133
- end: end,
134
- prevQuickSelect: prevQuickSelect,
135
- timeOptions: timeOptions
136
- }), commonlyUsedRanges.length > 0 && (0, _react2.jsx)(_horizontal_rule.EuiHorizontalRule, {
137
- margin: "s"
138
- }), (0, _react2.jsx)(_commonly_used_time_ranges.EuiCommonlyUsedTimeRanges, {
139
- applyTime: _this.applyTime,
140
- commonlyUsedRanges: commonlyUsedRanges
141
- }), recentlyUsedRanges.length > 0 && (0, _react2.jsx)(_horizontal_rule.EuiHorizontalRule, {
142
- margin: "s"
143
- }), (0, _react2.jsx)(_recently_used.EuiRecentlyUsed, {
144
- applyTime: _this.applyTime,
145
- commonlyUsedRanges: commonlyUsedRanges,
146
- dateFormat: dateFormat,
147
- recentlyUsedRanges: recentlyUsedRanges
148
- }), _this.renderCustomQuickSelectPanels());
83
+ }, []);
84
+ var applyTime = (0, _react.useCallback)(function (_ref2) {
85
+ var start = _ref2.start,
86
+ end = _ref2.end,
87
+ quickSelect = _ref2.quickSelect,
88
+ _ref2$keepPopoverOpen = _ref2.keepPopoverOpen,
89
+ keepPopoverOpen = _ref2$keepPopoverOpen === void 0 ? false : _ref2$keepPopoverOpen;
90
+
91
+ _applyTime({
92
+ start: start,
93
+ end: end
149
94
  });
150
95
 
151
- _defineProperty(_assertThisInitialized(_this), "renderCustomQuickSelectPanels", function () {
152
- var customQuickSelectPanels = _this.props.customQuickSelectPanels;
153
-
154
- if (!customQuickSelectPanels) {
155
- return null;
156
- }
157
-
158
- return customQuickSelectPanels.map(function (_ref2) {
159
- var title = _ref2.title,
160
- content = _ref2.content;
161
- return (0, _react2.jsx)(_react.Fragment, {
162
- key: title
163
- }, (0, _react2.jsx)(_horizontal_rule.EuiHorizontalRule, {
164
- margin: "s"
165
- }), (0, _react2.jsx)(_title.EuiTitle, {
166
- size: "xxxs"
167
- }, (0, _react2.jsx)("span", null, title)), (0, _react2.jsx)(_text.EuiText, {
168
- size: "s",
169
- className: "euiQuickSelectPopover__section"
170
- }, /*#__PURE__*/_react.default.cloneElement(content, {
171
- applyTime: _this.applyTime
172
- })));
173
- });
174
- });
175
-
176
- return _this;
177
- }
178
-
179
- _createClass(EuiQuickSelectPopover, [{
180
- key: "render",
181
- value: function render() {
182
- var _this$props2 = this.props,
183
- applyRefreshInterval = _this$props2.applyRefreshInterval,
184
- isDisabled = _this$props2.isDisabled,
185
- isPaused = _this$props2.isPaused,
186
- refreshInterval = _this$props2.refreshInterval;
187
- var isOpen = this.state.isOpen;
188
- var quickSelectButton = (0, _react2.jsx)(_button.EuiButtonEmpty, {
189
- className: "euiFormControlLayout__prepend",
190
- textProps: {
191
- className: 'euiQuickSelectPopover__buttonText'
192
- },
193
- onClick: this.togglePopover,
194
- "aria-label": "Date quick select",
195
- size: "xs",
196
- iconType: "arrowDown",
197
- iconSide: "right",
198
- isDisabled: isDisabled,
199
- "data-test-subj": "superDatePickerToggleQuickMenuButton"
200
- }, (0, _react2.jsx)(_icon.EuiIcon, {
201
- type: "calendar"
202
- }));
203
- return (0, _react2.jsx)(_popover.EuiPopover, {
204
- button: quickSelectButton,
205
- isOpen: isOpen,
206
- closePopover: this.closePopover,
207
- anchorPosition: "downLeft",
208
- anchorClassName: "euiQuickSelectPopover__anchor"
209
- }, (0, _react2.jsx)("div", {
210
- className: "euiQuickSelectPopover__content",
211
- "data-test-subj": "superDatePickerQuickMenu"
212
- }, this.renderDateTimeSections(), applyRefreshInterval && (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_horizontal_rule.EuiHorizontalRule, {
213
- margin: "s"
214
- }), (0, _react2.jsx)(_refresh_interval.EuiRefreshInterval, {
215
- onRefreshChange: applyRefreshInterval,
216
- isPaused: isPaused,
217
- refreshInterval: refreshInterval
218
- }))));
96
+ if (quickSelect) {
97
+ setQuickSelect(quickSelect);
219
98
  }
220
- }]);
221
99
 
222
- return EuiQuickSelectPopover;
223
- }(_react.Component);
100
+ if (!keepPopoverOpen) {
101
+ closePopover();
102
+ }
103
+ }, [_applyTime, closePopover]);
104
+ var buttonlabel = (0, _i18n.useEuiI18n)('euiQuickSelectPopover.buttonLabel', 'Date quick select');
105
+ var quickSelectButton = (0, _react2.jsx)(_button.EuiButtonEmpty, {
106
+ className: "euiFormControlLayout__prepend",
107
+ textProps: {
108
+ className: 'euiQuickSelectPopover__buttonText'
109
+ },
110
+ onClick: togglePopover,
111
+ "aria-label": buttonlabel,
112
+ title: buttonlabel,
113
+ size: "xs",
114
+ iconType: "arrowDown",
115
+ iconSide: "right",
116
+ isDisabled: props.isDisabled,
117
+ "data-test-subj": "superDatePickerToggleQuickMenuButton"
118
+ }, (0, _react2.jsx)(_icon.EuiIcon, {
119
+ type: "calendar"
120
+ }));
121
+ return (0, _react2.jsx)(_popover.EuiPopover, {
122
+ button: quickSelectButton,
123
+ isOpen: isOpen,
124
+ closePopover: closePopover,
125
+ anchorPosition: "downLeft",
126
+ anchorClassName: "euiQuickSelectPopover__anchor"
127
+ }, (0, _react2.jsx)(EuiQuickSelectPanels, _extends({}, props, {
128
+ applyTime: applyTime,
129
+ prevQuickSelect: prevQuickSelect
130
+ })));
131
+ };
224
132
 
225
133
  exports.EuiQuickSelectPopover = EuiQuickSelectPopover;
226
134
  EuiQuickSelectPopover.propTypes = {
@@ -235,6 +143,7 @@ EuiQuickSelectPopover.propTypes = {
235
143
  title: _propTypes.default.string.isRequired,
236
144
  content: _propTypes.default.element.isRequired
237
145
  }).isRequired),
146
+ customQuickSelectRender: _propTypes.default.func,
238
147
  dateFormat: _propTypes.default.string.isRequired,
239
148
  end: _propTypes.default.string.isRequired,
240
149
  isDisabled: _propTypes.default.bool.isRequired,
@@ -261,4 +170,82 @@ EuiQuickSelectPopover.propTypes = {
261
170
  start: _propTypes.default.oneOfType([_propTypes.default.oneOf(["now"]), _propTypes.default.string.isRequired]).isRequired
262
171
  }).isRequired).isRequired
263
172
  }).isRequired
173
+ };
174
+
175
+ var EuiQuickSelectPanels = function EuiQuickSelectPanels(_ref3) {
176
+ var start = _ref3.start,
177
+ end = _ref3.end,
178
+ dateFormat = _ref3.dateFormat,
179
+ timeOptions = _ref3.timeOptions,
180
+ commonlyUsedRanges = _ref3.commonlyUsedRanges,
181
+ recentlyUsedRanges = _ref3.recentlyUsedRanges,
182
+ customQuickSelectPanels = _ref3.customQuickSelectPanels,
183
+ customQuickSelectRender = _ref3.customQuickSelectRender,
184
+ isPaused = _ref3.isPaused,
185
+ refreshInterval = _ref3.refreshInterval,
186
+ applyRefreshInterval = _ref3.applyRefreshInterval,
187
+ applyTime = _ref3.applyTime,
188
+ prevQuickSelect = _ref3.prevQuickSelect;
189
+ var quickSelectElement = (0, _react2.jsx)(_quick_select.EuiQuickSelect, {
190
+ applyTime: applyTime,
191
+ start: start,
192
+ end: end,
193
+ prevQuickSelect: prevQuickSelect,
194
+ timeOptions: timeOptions
195
+ });
196
+ var commonlyUsedElement = (0, _react2.jsx)(_commonly_used_time_ranges.EuiCommonlyUsedTimeRanges, {
197
+ applyTime: applyTime,
198
+ commonlyUsedRanges: commonlyUsedRanges
199
+ });
200
+ var recentlyUsedElement = (0, _react2.jsx)(_recently_used.EuiRecentlyUsed, {
201
+ applyTime: applyTime,
202
+ commonlyUsedRanges: commonlyUsedRanges,
203
+ dateFormat: dateFormat,
204
+ recentlyUsedRanges: recentlyUsedRanges
205
+ });
206
+ var refreshIntervalElement = applyRefreshInterval && (0, _react2.jsx)(_refresh_interval.EuiRefreshInterval, {
207
+ onRefreshChange: applyRefreshInterval,
208
+ isPaused: isPaused,
209
+ refreshInterval: refreshInterval
210
+ });
211
+ var customQuickSelectPanelsElement = (0, _react.useMemo)(function () {
212
+ if (!customQuickSelectPanels) {
213
+ return null;
214
+ }
215
+
216
+ return customQuickSelectPanels.map(function (_ref4) {
217
+ var title = _ref4.title,
218
+ content = _ref4.content;
219
+ return (0, _react2.jsx)("div", {
220
+ key: title,
221
+ className: "euiQuickSelectPopover__panel"
222
+ }, (0, _react2.jsx)(_title.EuiTitle, {
223
+ size: "xxxs"
224
+ }, (0, _react2.jsx)("span", null, title)), (0, _react2.jsx)(_text.EuiText, {
225
+ size: "s",
226
+ className: "euiQuickSelectPopover__section"
227
+ }, /*#__PURE__*/_react.default.cloneElement(content, {
228
+ applyTime: applyTime
229
+ })));
230
+ });
231
+ }, [customQuickSelectPanels, applyTime]);
232
+ return (0, _react2.jsx)("div", {
233
+ className: "euiQuickSelectPopover__content",
234
+ "data-test-subj": "superDatePickerQuickMenu"
235
+ }, customQuickSelectRender ? customQuickSelectRender({
236
+ quickSelect: quickSelectElement,
237
+ commonlyUsedRanges: commonlyUsedElement,
238
+ recentlyUsedRanges: recentlyUsedElement,
239
+ refreshInterval: refreshIntervalElement,
240
+ customQuickSelectPanels: customQuickSelectPanelsElement
241
+ }) : (0, _react2.jsx)(_react.default.Fragment, null, quickSelectElement, commonlyUsedElement, recentlyUsedElement, refreshIntervalElement, customQuickSelectPanelsElement));
242
+ };
243
+
244
+ exports.EuiQuickSelectPanels = EuiQuickSelectPanels;
245
+ EuiQuickSelectPanels.propTypes = {
246
+ prevQuickSelect: _propTypes.default.shape({
247
+ timeTense: _propTypes.default.string.isRequired,
248
+ timeValue: _propTypes.default.number.isRequired,
249
+ timeUnits: _propTypes.default.oneOf(["s", "m", "h", "d", "w", "M", "y"]).isRequired
250
+ })
264
251
  };
@@ -65,10 +65,13 @@ var EuiRecentlyUsed = function EuiRecentlyUsed(_ref) {
65
65
  dateFormat: dateFormat
66
66
  })));
67
67
  });
68
- return (0, _react2.jsx)("fieldset", null, (0, _react2.jsx)(_title.EuiTitle, {
68
+ return (0, _react2.jsx)("fieldset", {
69
+ className: "euiQuickSelectPopover__panel"
70
+ }, (0, _react2.jsx)(_title.EuiTitle, {
69
71
  size: "xxxs"
70
72
  }, (0, _react2.jsx)("legend", {
71
- id: legendId
73
+ id: legendId,
74
+ className: "euiQuickSelectPopover__panelTitle"
72
75
  }, (0, _react2.jsx)(_i18n.EuiI18n, {
73
76
  token: "euiRecentlyUsed.legend",
74
77
  default: "Recently used date ranges"
@@ -421,6 +421,7 @@ var EuiSuperDatePickerInternal = /*#__PURE__*/function (_Component) {
421
421
  commonlyUsedRanges = _this$props5.commonlyUsedRanges,
422
422
  timeOptions = _this$props5.timeOptions,
423
423
  customQuickSelectPanels = _this$props5.customQuickSelectPanels,
424
+ customQuickSelectRender = _this$props5.customQuickSelectRender,
424
425
  dateFormat = _this$props5.dateFormat,
425
426
  end = _this$props5.end,
426
427
  isAutoRefreshOnly = _this$props5.isAutoRefreshOnly,
@@ -451,6 +452,7 @@ var EuiSuperDatePickerInternal = /*#__PURE__*/function (_Component) {
451
452
  applyTime: this.applyQuickTime,
452
453
  commonlyUsedRanges: commonlyUsedRanges,
453
454
  customQuickSelectPanels: customQuickSelectPanels,
455
+ customQuickSelectRender: customQuickSelectRender,
454
456
  dateFormat: dateFormat,
455
457
  end: end,
456
458
  isDisabled: isDisabled,
@@ -553,6 +555,13 @@ EuiSuperDatePickerInternal.propTypes = {
553
555
  content: _propTypes.default.element.isRequired
554
556
  }).isRequired),
555
557
 
558
+ /**
559
+ * An optional render prop function that allows customizing the display of the Quick Select menu.
560
+ * This function passes all default quick select panels within an object, allowing you to
561
+ * re-order panels, omit certain panels entirely, or pass in your own fully custom content.
562
+ */
563
+ customQuickSelectRender: _propTypes.default.func,
564
+
556
565
  /**
557
566
  * Specifies the formatted used when displaying dates and/or datetimes
558
567
  */
@@ -768,6 +777,13 @@ EuiSuperDatePicker.propTypes = {
768
777
  content: _propTypes.default.element.isRequired
769
778
  }).isRequired),
770
779
 
780
+ /**
781
+ * An optional render prop function that allows customizing the display of the Quick Select menu.
782
+ * This function passes all default quick select panels within an object, allowing you to
783
+ * re-order panels, omit certain panels entirely, or pass in your own fully custom content.
784
+ */
785
+ customQuickSelectRender: _propTypes.default.func,
786
+
771
787
  /**
772
788
  * Specifies the formatted used when displaying dates and/or datetimes
773
789
  */
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ var _react = _interopRequireDefault(require("react"));
4
+
5
+ var _button = require("../button");
6
+
7
+ var _error_boundary = require("./error_boundary");
8
+
9
+ var _spacer = require("../spacer");
10
+
11
+ var _react2 = require("@emotion/react");
12
+
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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
+ });