@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
@@ -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
 
@@ -35,10 +27,10 @@ var _popover = require("../../../popover");
35
27
 
36
28
  var _title = require("../../../title");
37
29
 
38
- var _horizontal_rule = require("../../../horizontal_rule");
39
-
40
30
  var _text = require("../../../text");
41
31
 
32
+ var _i18n = require("../../../i18n");
33
+
42
34
  var _quick_select = require("./quick_select");
43
35
 
44
36
  var _commonly_used_time_ranges = require("./commonly_used_time_ranges");
@@ -49,166 +41,82 @@ var _refresh_interval = require("../../auto_refresh/refresh_interval");
49
41
 
50
42
  var _react2 = require("@emotion/react");
51
43
 
44
+ var _excluded = ["applyTime"];
45
+
52
46
  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); }
53
47
 
54
48
  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; }
55
49
 
56
- 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); }; }
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; } }
59
-
60
- var EuiQuickSelectPopover = /*#__PURE__*/function (_Component) {
61
- (0, _inherits2.default)(EuiQuickSelectPopover, _Component);
62
-
63
- var _super = _createSuper(EuiQuickSelectPopover);
64
-
65
- function EuiQuickSelectPopover() {
66
- var _this;
67
-
68
- (0, _classCallCheck2.default)(this, EuiQuickSelectPopover);
50
+ var EuiQuickSelectPopover = function EuiQuickSelectPopover(_ref) {
51
+ var _applyTime = _ref.applyTime,
52
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
53
+
54
+ var _useState = (0, _react.useState)(),
55
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
56
+ prevQuickSelect = _useState2[0],
57
+ setQuickSelect = _useState2[1];
58
+
59
+ var _useState3 = (0, _react.useState)(false),
60
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
61
+ isOpen = _useState4[0],
62
+ setIsOpen = _useState4[1];
63
+
64
+ var closePopover = (0, _react.useCallback)(function () {
65
+ return setIsOpen(false);
66
+ }, []);
67
+ var togglePopover = (0, _react.useCallback)(function () {
68
+ return setIsOpen(function (isOpen) {
69
+ return !isOpen;
70
+ });
71
+ }, []);
72
+ var applyTime = (0, _react.useCallback)(function (_ref2) {
73
+ var start = _ref2.start,
74
+ end = _ref2.end,
75
+ quickSelect = _ref2.quickSelect,
76
+ _ref2$keepPopoverOpen = _ref2.keepPopoverOpen,
77
+ keepPopoverOpen = _ref2$keepPopoverOpen === void 0 ? false : _ref2$keepPopoverOpen;
78
+
79
+ _applyTime({
80
+ start: start,
81
+ end: end
82
+ });
69
83
 
70
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
71
- args[_key] = arguments[_key];
84
+ if (quickSelect) {
85
+ setQuickSelect(quickSelect);
72
86
  }
73
87
 
74
- _this = _super.call.apply(_super, [this].concat(args));
75
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "state", {
76
- isOpen: false
77
- });
78
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "closePopover", function () {
79
- _this.setState({
80
- isOpen: false
81
- });
82
- });
83
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "togglePopover", function () {
84
- _this.setState(function (prevState) {
85
- return {
86
- isOpen: !prevState.isOpen
87
- };
88
- });
89
- });
90
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "applyTime", function (_ref) {
91
- var start = _ref.start,
92
- end = _ref.end,
93
- quickSelect = _ref.quickSelect,
94
- _ref$keepPopoverOpen = _ref.keepPopoverOpen,
95
- keepPopoverOpen = _ref$keepPopoverOpen === void 0 ? false : _ref$keepPopoverOpen;
96
-
97
- _this.props.applyTime({
98
- start: start,
99
- end: end
100
- });
101
-
102
- if (quickSelect) {
103
- _this.setState({
104
- prevQuickSelect: quickSelect
105
- });
106
- }
107
-
108
- if (!keepPopoverOpen) {
109
- _this.closePopover();
110
- }
111
- });
112
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderDateTimeSections", function () {
113
- var _this$props = _this.props,
114
- commonlyUsedRanges = _this$props.commonlyUsedRanges,
115
- dateFormat = _this$props.dateFormat,
116
- end = _this$props.end,
117
- recentlyUsedRanges = _this$props.recentlyUsedRanges,
118
- start = _this$props.start,
119
- timeOptions = _this$props.timeOptions;
120
- var prevQuickSelect = _this.state.prevQuickSelect;
121
- return (0, _react2.jsx)(_react.Fragment, null, (0, _react2.jsx)(_quick_select.EuiQuickSelect, {
122
- applyTime: _this.applyTime,
123
- start: start,
124
- end: end,
125
- prevQuickSelect: prevQuickSelect,
126
- timeOptions: timeOptions
127
- }), commonlyUsedRanges.length > 0 && (0, _react2.jsx)(_horizontal_rule.EuiHorizontalRule, {
128
- margin: "s"
129
- }), (0, _react2.jsx)(_commonly_used_time_ranges.EuiCommonlyUsedTimeRanges, {
130
- applyTime: _this.applyTime,
131
- commonlyUsedRanges: commonlyUsedRanges
132
- }), recentlyUsedRanges.length > 0 && (0, _react2.jsx)(_horizontal_rule.EuiHorizontalRule, {
133
- margin: "s"
134
- }), (0, _react2.jsx)(_recently_used.EuiRecentlyUsed, {
135
- applyTime: _this.applyTime,
136
- commonlyUsedRanges: commonlyUsedRanges,
137
- dateFormat: dateFormat,
138
- recentlyUsedRanges: recentlyUsedRanges
139
- }), _this.renderCustomQuickSelectPanels());
140
- });
141
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderCustomQuickSelectPanels", function () {
142
- var customQuickSelectPanels = _this.props.customQuickSelectPanels;
143
-
144
- if (!customQuickSelectPanels) {
145
- return null;
146
- }
147
-
148
- return customQuickSelectPanels.map(function (_ref2) {
149
- var title = _ref2.title,
150
- content = _ref2.content;
151
- return (0, _react2.jsx)(_react.Fragment, {
152
- key: title
153
- }, (0, _react2.jsx)(_horizontal_rule.EuiHorizontalRule, {
154
- margin: "s"
155
- }), (0, _react2.jsx)(_title.EuiTitle, {
156
- size: "xxxs"
157
- }, (0, _react2.jsx)("span", null, title)), (0, _react2.jsx)(_text.EuiText, {
158
- size: "s",
159
- className: "euiQuickSelectPopover__section"
160
- }, /*#__PURE__*/_react.default.cloneElement(content, {
161
- applyTime: _this.applyTime
162
- })));
163
- });
164
- });
165
- return _this;
166
- }
167
-
168
- (0, _createClass2.default)(EuiQuickSelectPopover, [{
169
- key: "render",
170
- value: function render() {
171
- var _this$props2 = this.props,
172
- applyRefreshInterval = _this$props2.applyRefreshInterval,
173
- isDisabled = _this$props2.isDisabled,
174
- isPaused = _this$props2.isPaused,
175
- refreshInterval = _this$props2.refreshInterval;
176
- var isOpen = this.state.isOpen;
177
- var quickSelectButton = (0, _react2.jsx)(_button.EuiButtonEmpty, {
178
- className: "euiFormControlLayout__prepend",
179
- textProps: {
180
- className: 'euiQuickSelectPopover__buttonText'
181
- },
182
- onClick: this.togglePopover,
183
- "aria-label": "Date quick select",
184
- size: "xs",
185
- iconType: "arrowDown",
186
- iconSide: "right",
187
- isDisabled: isDisabled,
188
- "data-test-subj": "superDatePickerToggleQuickMenuButton"
189
- }, (0, _react2.jsx)(_icon.EuiIcon, {
190
- type: "calendar"
191
- }));
192
- return (0, _react2.jsx)(_popover.EuiPopover, {
193
- button: quickSelectButton,
194
- isOpen: isOpen,
195
- closePopover: this.closePopover,
196
- anchorPosition: "downLeft",
197
- anchorClassName: "euiQuickSelectPopover__anchor"
198
- }, (0, _react2.jsx)("div", {
199
- className: "euiQuickSelectPopover__content",
200
- "data-test-subj": "superDatePickerQuickMenu"
201
- }, this.renderDateTimeSections(), applyRefreshInterval && (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_horizontal_rule.EuiHorizontalRule, {
202
- margin: "s"
203
- }), (0, _react2.jsx)(_refresh_interval.EuiRefreshInterval, {
204
- onRefreshChange: applyRefreshInterval,
205
- isPaused: isPaused,
206
- refreshInterval: refreshInterval
207
- }))));
88
+ if (!keepPopoverOpen) {
89
+ closePopover();
208
90
  }
209
- }]);
210
- return EuiQuickSelectPopover;
211
- }(_react.Component);
91
+ }, [_applyTime, closePopover]);
92
+ var buttonlabel = (0, _i18n.useEuiI18n)('euiQuickSelectPopover.buttonLabel', 'Date quick select');
93
+ var quickSelectButton = (0, _react2.jsx)(_button.EuiButtonEmpty, {
94
+ className: "euiFormControlLayout__prepend",
95
+ textProps: {
96
+ className: 'euiQuickSelectPopover__buttonText'
97
+ },
98
+ onClick: togglePopover,
99
+ "aria-label": buttonlabel,
100
+ title: buttonlabel,
101
+ size: "xs",
102
+ iconType: "arrowDown",
103
+ iconSide: "right",
104
+ isDisabled: props.isDisabled,
105
+ "data-test-subj": "superDatePickerToggleQuickMenuButton"
106
+ }, (0, _react2.jsx)(_icon.EuiIcon, {
107
+ type: "calendar"
108
+ }));
109
+ return (0, _react2.jsx)(_popover.EuiPopover, {
110
+ button: quickSelectButton,
111
+ isOpen: isOpen,
112
+ closePopover: closePopover,
113
+ anchorPosition: "downLeft",
114
+ anchorClassName: "euiQuickSelectPopover__anchor"
115
+ }, (0, _react2.jsx)(EuiQuickSelectPanels, (0, _extends2.default)({}, props, {
116
+ applyTime: applyTime,
117
+ prevQuickSelect: prevQuickSelect
118
+ })));
119
+ };
212
120
 
213
121
  exports.EuiQuickSelectPopover = EuiQuickSelectPopover;
214
122
  EuiQuickSelectPopover.propTypes = {
@@ -223,6 +131,7 @@ EuiQuickSelectPopover.propTypes = {
223
131
  title: _propTypes.default.string.isRequired,
224
132
  content: _propTypes.default.element.isRequired
225
133
  }).isRequired),
134
+ customQuickSelectRender: _propTypes.default.func,
226
135
  dateFormat: _propTypes.default.string.isRequired,
227
136
  end: _propTypes.default.string.isRequired,
228
137
  isDisabled: _propTypes.default.bool.isRequired,
@@ -249,4 +158,82 @@ EuiQuickSelectPopover.propTypes = {
249
158
  start: _propTypes.default.oneOfType([_propTypes.default.oneOf(["now"]), _propTypes.default.string.isRequired]).isRequired
250
159
  }).isRequired).isRequired
251
160
  }).isRequired
161
+ };
162
+
163
+ var EuiQuickSelectPanels = function EuiQuickSelectPanels(_ref3) {
164
+ var start = _ref3.start,
165
+ end = _ref3.end,
166
+ dateFormat = _ref3.dateFormat,
167
+ timeOptions = _ref3.timeOptions,
168
+ commonlyUsedRanges = _ref3.commonlyUsedRanges,
169
+ recentlyUsedRanges = _ref3.recentlyUsedRanges,
170
+ customQuickSelectPanels = _ref3.customQuickSelectPanels,
171
+ customQuickSelectRender = _ref3.customQuickSelectRender,
172
+ isPaused = _ref3.isPaused,
173
+ refreshInterval = _ref3.refreshInterval,
174
+ applyRefreshInterval = _ref3.applyRefreshInterval,
175
+ applyTime = _ref3.applyTime,
176
+ prevQuickSelect = _ref3.prevQuickSelect;
177
+ var quickSelectElement = (0, _react2.jsx)(_quick_select.EuiQuickSelect, {
178
+ applyTime: applyTime,
179
+ start: start,
180
+ end: end,
181
+ prevQuickSelect: prevQuickSelect,
182
+ timeOptions: timeOptions
183
+ });
184
+ var commonlyUsedElement = (0, _react2.jsx)(_commonly_used_time_ranges.EuiCommonlyUsedTimeRanges, {
185
+ applyTime: applyTime,
186
+ commonlyUsedRanges: commonlyUsedRanges
187
+ });
188
+ var recentlyUsedElement = (0, _react2.jsx)(_recently_used.EuiRecentlyUsed, {
189
+ applyTime: applyTime,
190
+ commonlyUsedRanges: commonlyUsedRanges,
191
+ dateFormat: dateFormat,
192
+ recentlyUsedRanges: recentlyUsedRanges
193
+ });
194
+ var refreshIntervalElement = applyRefreshInterval && (0, _react2.jsx)(_refresh_interval.EuiRefreshInterval, {
195
+ onRefreshChange: applyRefreshInterval,
196
+ isPaused: isPaused,
197
+ refreshInterval: refreshInterval
198
+ });
199
+ var customQuickSelectPanelsElement = (0, _react.useMemo)(function () {
200
+ if (!customQuickSelectPanels) {
201
+ return null;
202
+ }
203
+
204
+ return customQuickSelectPanels.map(function (_ref4) {
205
+ var title = _ref4.title,
206
+ content = _ref4.content;
207
+ return (0, _react2.jsx)("div", {
208
+ key: title,
209
+ className: "euiQuickSelectPopover__panel"
210
+ }, (0, _react2.jsx)(_title.EuiTitle, {
211
+ size: "xxxs"
212
+ }, (0, _react2.jsx)("span", null, title)), (0, _react2.jsx)(_text.EuiText, {
213
+ size: "s",
214
+ className: "euiQuickSelectPopover__section"
215
+ }, /*#__PURE__*/_react.default.cloneElement(content, {
216
+ applyTime: applyTime
217
+ })));
218
+ });
219
+ }, [customQuickSelectPanels, applyTime]);
220
+ return (0, _react2.jsx)("div", {
221
+ className: "euiQuickSelectPopover__content",
222
+ "data-test-subj": "superDatePickerQuickMenu"
223
+ }, customQuickSelectRender ? customQuickSelectRender({
224
+ quickSelect: quickSelectElement,
225
+ commonlyUsedRanges: commonlyUsedElement,
226
+ recentlyUsedRanges: recentlyUsedElement,
227
+ refreshInterval: refreshIntervalElement,
228
+ customQuickSelectPanels: customQuickSelectPanelsElement
229
+ }) : (0, _react2.jsx)(_react.default.Fragment, null, quickSelectElement, commonlyUsedElement, recentlyUsedElement, refreshIntervalElement, customQuickSelectPanelsElement));
230
+ };
231
+
232
+ exports.EuiQuickSelectPanels = EuiQuickSelectPanels;
233
+ EuiQuickSelectPanels.propTypes = {
234
+ prevQuickSelect: _propTypes.default.shape({
235
+ timeTense: _propTypes.default.string.isRequired,
236
+ timeValue: _propTypes.default.number.isRequired,
237
+ timeUnits: _propTypes.default.oneOf(["s", "m", "h", "d", "w", "M", "y"]).isRequired
238
+ })
252
239
  };
@@ -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"
@@ -395,6 +395,7 @@ var EuiSuperDatePickerInternal = /*#__PURE__*/function (_Component) {
395
395
  commonlyUsedRanges = _this$props5.commonlyUsedRanges,
396
396
  timeOptions = _this$props5.timeOptions,
397
397
  customQuickSelectPanels = _this$props5.customQuickSelectPanels,
398
+ customQuickSelectRender = _this$props5.customQuickSelectRender,
398
399
  dateFormat = _this$props5.dateFormat,
399
400
  end = _this$props5.end,
400
401
  isAutoRefreshOnly = _this$props5.isAutoRefreshOnly,
@@ -425,6 +426,7 @@ var EuiSuperDatePickerInternal = /*#__PURE__*/function (_Component) {
425
426
  applyTime: this.applyQuickTime,
426
427
  commonlyUsedRanges: commonlyUsedRanges,
427
428
  customQuickSelectPanels: customQuickSelectPanels,
429
+ customQuickSelectRender: customQuickSelectRender,
428
430
  dateFormat: dateFormat,
429
431
  end: end,
430
432
  isDisabled: isDisabled,
@@ -524,6 +526,13 @@ EuiSuperDatePickerInternal.propTypes = {
524
526
  content: _propTypes.default.element.isRequired
525
527
  }).isRequired),
526
528
 
529
+ /**
530
+ * An optional render prop function that allows customizing the display of the Quick Select menu.
531
+ * This function passes all default quick select panels within an object, allowing you to
532
+ * re-order panels, omit certain panels entirely, or pass in your own fully custom content.
533
+ */
534
+ customQuickSelectRender: _propTypes.default.func,
535
+
527
536
  /**
528
537
  * Specifies the formatted used when displaying dates and/or datetimes
529
538
  */
@@ -739,6 +748,13 @@ EuiSuperDatePicker.propTypes = {
739
748
  content: _propTypes.default.element.isRequired
740
749
  }).isRequired),
741
750
 
751
+ /**
752
+ * An optional render prop function that allows customizing the display of the Quick Select menu.
753
+ * This function passes all default quick select panels within an object, allowing you to
754
+ * re-order panels, omit certain panels entirely, or pass in your own fully custom content.
755
+ */
756
+ customQuickSelectRender: _propTypes.default.func,
757
+
742
758
  /**
743
759
  * Specifies the formatted used when displaying dates and/or datetimes
744
760
  */
@@ -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
+ });