@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,14 +1,7 @@
1
- import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
- import _createClass from "@babel/runtime/helpers/createClass";
3
- import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
4
- import _inherits from "@babel/runtime/helpers/inherits";
5
- import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
6
- import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
7
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
8
-
9
- 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); }; }
10
-
11
- 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; } }
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
+ var _excluded = ["applyTime"];
12
5
 
13
6
  /*
14
7
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
@@ -17,177 +10,160 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
17
10
  * in compliance with, at your election, the Elastic License 2.0 or the Server
18
11
  * Side Public License, v 1.
19
12
  */
20
- import React, { Component, Fragment } from 'react';
13
+ import React, { useState, useCallback, useMemo } from 'react';
21
14
  import { EuiButtonEmpty } from '../../../button';
22
15
  import { EuiIcon } from '../../../icon';
23
16
  import { EuiPopover } from '../../../popover';
24
17
  import { EuiTitle } from '../../../title';
25
- import { EuiHorizontalRule } from '../../../horizontal_rule';
26
18
  import { EuiText } from '../../../text';
19
+ import { useEuiI18n } from '../../../i18n';
27
20
  import { EuiQuickSelect } from './quick_select';
28
21
  import { EuiCommonlyUsedTimeRanges } from './commonly_used_time_ranges';
29
22
  import { EuiRecentlyUsed } from './recently_used';
30
23
  import { EuiRefreshInterval } from '../../auto_refresh/refresh_interval';
31
24
  import { jsx as ___EmotionJSX } from "@emotion/react";
32
- export var EuiQuickSelectPopover = /*#__PURE__*/function (_Component) {
33
- _inherits(EuiQuickSelectPopover, _Component);
34
-
35
- var _super = _createSuper(EuiQuickSelectPopover);
36
-
37
- function EuiQuickSelectPopover() {
38
- var _this;
39
-
40
- _classCallCheck(this, EuiQuickSelectPopover);
41
-
42
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
43
- args[_key] = arguments[_key];
44
- }
45
-
46
- _this = _super.call.apply(_super, [this].concat(args));
47
-
48
- _defineProperty(_assertThisInitialized(_this), "state", {
49
- isOpen: false
50
- });
51
-
52
- _defineProperty(_assertThisInitialized(_this), "closePopover", function () {
53
- _this.setState({
54
- isOpen: false
55
- });
56
- });
57
-
58
- _defineProperty(_assertThisInitialized(_this), "togglePopover", function () {
59
- _this.setState(function (prevState) {
60
- return {
61
- isOpen: !prevState.isOpen
62
- };
63
- });
64
- });
65
-
66
- _defineProperty(_assertThisInitialized(_this), "applyTime", function (_ref) {
67
- var start = _ref.start,
68
- end = _ref.end,
69
- quickSelect = _ref.quickSelect,
70
- _ref$keepPopoverOpen = _ref.keepPopoverOpen,
71
- keepPopoverOpen = _ref$keepPopoverOpen === void 0 ? false : _ref$keepPopoverOpen;
72
-
73
- _this.props.applyTime({
74
- start: start,
75
- end: end
76
- });
77
-
78
- if (quickSelect) {
79
- _this.setState({
80
- prevQuickSelect: quickSelect
81
- });
82
- }
83
-
84
- if (!keepPopoverOpen) {
85
- _this.closePopover();
86
- }
25
+ export var EuiQuickSelectPopover = function EuiQuickSelectPopover(_ref) {
26
+ var _applyTime = _ref.applyTime,
27
+ props = _objectWithoutProperties(_ref, _excluded);
28
+
29
+ var _useState = useState(),
30
+ _useState2 = _slicedToArray(_useState, 2),
31
+ prevQuickSelect = _useState2[0],
32
+ setQuickSelect = _useState2[1];
33
+
34
+ var _useState3 = useState(false),
35
+ _useState4 = _slicedToArray(_useState3, 2),
36
+ isOpen = _useState4[0],
37
+ setIsOpen = _useState4[1];
38
+
39
+ var closePopover = useCallback(function () {
40
+ return setIsOpen(false);
41
+ }, []);
42
+ var togglePopover = useCallback(function () {
43
+ return setIsOpen(function (isOpen) {
44
+ return !isOpen;
87
45
  });
88
-
89
- _defineProperty(_assertThisInitialized(_this), "renderDateTimeSections", function () {
90
- var _this$props = _this.props,
91
- commonlyUsedRanges = _this$props.commonlyUsedRanges,
92
- dateFormat = _this$props.dateFormat,
93
- end = _this$props.end,
94
- recentlyUsedRanges = _this$props.recentlyUsedRanges,
95
- start = _this$props.start,
96
- timeOptions = _this$props.timeOptions;
97
- var prevQuickSelect = _this.state.prevQuickSelect;
98
- return ___EmotionJSX(Fragment, null, ___EmotionJSX(EuiQuickSelect, {
99
- applyTime: _this.applyTime,
100
- start: start,
101
- end: end,
102
- prevQuickSelect: prevQuickSelect,
103
- timeOptions: timeOptions
104
- }), commonlyUsedRanges.length > 0 && ___EmotionJSX(EuiHorizontalRule, {
105
- margin: "s"
106
- }), ___EmotionJSX(EuiCommonlyUsedTimeRanges, {
107
- applyTime: _this.applyTime,
108
- commonlyUsedRanges: commonlyUsedRanges
109
- }), recentlyUsedRanges.length > 0 && ___EmotionJSX(EuiHorizontalRule, {
110
- margin: "s"
111
- }), ___EmotionJSX(EuiRecentlyUsed, {
112
- applyTime: _this.applyTime,
113
- commonlyUsedRanges: commonlyUsedRanges,
114
- dateFormat: dateFormat,
115
- recentlyUsedRanges: recentlyUsedRanges
116
- }), _this.renderCustomQuickSelectPanels());
117
- });
118
-
119
- _defineProperty(_assertThisInitialized(_this), "renderCustomQuickSelectPanels", function () {
120
- var customQuickSelectPanels = _this.props.customQuickSelectPanels;
121
-
122
- if (!customQuickSelectPanels) {
123
- return null;
124
- }
125
-
126
- return customQuickSelectPanels.map(function (_ref2) {
127
- var title = _ref2.title,
128
- content = _ref2.content;
129
- return ___EmotionJSX(Fragment, {
130
- key: title
131
- }, ___EmotionJSX(EuiHorizontalRule, {
132
- margin: "s"
133
- }), ___EmotionJSX(EuiTitle, {
134
- size: "xxxs"
135
- }, ___EmotionJSX("span", null, title)), ___EmotionJSX(EuiText, {
136
- size: "s",
137
- className: "euiQuickSelectPopover__section"
138
- }, /*#__PURE__*/React.cloneElement(content, {
139
- applyTime: _this.applyTime
140
- })));
141
- });
46
+ }, []);
47
+ var applyTime = useCallback(function (_ref2) {
48
+ var start = _ref2.start,
49
+ end = _ref2.end,
50
+ quickSelect = _ref2.quickSelect,
51
+ _ref2$keepPopoverOpen = _ref2.keepPopoverOpen,
52
+ keepPopoverOpen = _ref2$keepPopoverOpen === void 0 ? false : _ref2$keepPopoverOpen;
53
+
54
+ _applyTime({
55
+ start: start,
56
+ end: end
142
57
  });
143
58
 
144
- return _this;
145
- }
146
-
147
- _createClass(EuiQuickSelectPopover, [{
148
- key: "render",
149
- value: function render() {
150
- var _this$props2 = this.props,
151
- applyRefreshInterval = _this$props2.applyRefreshInterval,
152
- isDisabled = _this$props2.isDisabled,
153
- isPaused = _this$props2.isPaused,
154
- refreshInterval = _this$props2.refreshInterval;
155
- var isOpen = this.state.isOpen;
156
-
157
- var quickSelectButton = ___EmotionJSX(EuiButtonEmpty, {
158
- className: "euiFormControlLayout__prepend",
159
- textProps: {
160
- className: 'euiQuickSelectPopover__buttonText'
161
- },
162
- onClick: this.togglePopover,
163
- "aria-label": "Date quick select",
164
- size: "xs",
165
- iconType: "arrowDown",
166
- iconSide: "right",
167
- isDisabled: isDisabled,
168
- "data-test-subj": "superDatePickerToggleQuickMenuButton"
169
- }, ___EmotionJSX(EuiIcon, {
170
- type: "calendar"
171
- }));
59
+ if (quickSelect) {
60
+ setQuickSelect(quickSelect);
61
+ }
172
62
 
173
- return ___EmotionJSX(EuiPopover, {
174
- button: quickSelectButton,
175
- isOpen: isOpen,
176
- closePopover: this.closePopover,
177
- anchorPosition: "downLeft",
178
- anchorClassName: "euiQuickSelectPopover__anchor"
179
- }, ___EmotionJSX("div", {
180
- className: "euiQuickSelectPopover__content",
181
- "data-test-subj": "superDatePickerQuickMenu"
182
- }, this.renderDateTimeSections(), applyRefreshInterval && ___EmotionJSX(React.Fragment, null, ___EmotionJSX(EuiHorizontalRule, {
183
- margin: "s"
184
- }), ___EmotionJSX(EuiRefreshInterval, {
185
- onRefreshChange: applyRefreshInterval,
186
- isPaused: isPaused,
187
- refreshInterval: refreshInterval
188
- }))));
63
+ if (!keepPopoverOpen) {
64
+ closePopover();
65
+ }
66
+ }, [_applyTime, closePopover]);
67
+ var buttonlabel = useEuiI18n('euiQuickSelectPopover.buttonLabel', 'Date quick select');
68
+
69
+ var quickSelectButton = ___EmotionJSX(EuiButtonEmpty, {
70
+ className: "euiFormControlLayout__prepend",
71
+ textProps: {
72
+ className: 'euiQuickSelectPopover__buttonText'
73
+ },
74
+ onClick: togglePopover,
75
+ "aria-label": buttonlabel,
76
+ title: buttonlabel,
77
+ size: "xs",
78
+ iconType: "arrowDown",
79
+ iconSide: "right",
80
+ isDisabled: props.isDisabled,
81
+ "data-test-subj": "superDatePickerToggleQuickMenuButton"
82
+ }, ___EmotionJSX(EuiIcon, {
83
+ type: "calendar"
84
+ }));
85
+
86
+ return ___EmotionJSX(EuiPopover, {
87
+ button: quickSelectButton,
88
+ isOpen: isOpen,
89
+ closePopover: closePopover,
90
+ anchorPosition: "downLeft",
91
+ anchorClassName: "euiQuickSelectPopover__anchor"
92
+ }, ___EmotionJSX(EuiQuickSelectPanels, _extends({}, props, {
93
+ applyTime: applyTime,
94
+ prevQuickSelect: prevQuickSelect
95
+ })));
96
+ };
97
+ export var EuiQuickSelectPanels = function EuiQuickSelectPanels(_ref3) {
98
+ var start = _ref3.start,
99
+ end = _ref3.end,
100
+ dateFormat = _ref3.dateFormat,
101
+ timeOptions = _ref3.timeOptions,
102
+ commonlyUsedRanges = _ref3.commonlyUsedRanges,
103
+ recentlyUsedRanges = _ref3.recentlyUsedRanges,
104
+ customQuickSelectPanels = _ref3.customQuickSelectPanels,
105
+ customQuickSelectRender = _ref3.customQuickSelectRender,
106
+ isPaused = _ref3.isPaused,
107
+ refreshInterval = _ref3.refreshInterval,
108
+ applyRefreshInterval = _ref3.applyRefreshInterval,
109
+ applyTime = _ref3.applyTime,
110
+ prevQuickSelect = _ref3.prevQuickSelect;
111
+
112
+ var quickSelectElement = ___EmotionJSX(EuiQuickSelect, {
113
+ applyTime: applyTime,
114
+ start: start,
115
+ end: end,
116
+ prevQuickSelect: prevQuickSelect,
117
+ timeOptions: timeOptions
118
+ });
119
+
120
+ var commonlyUsedElement = ___EmotionJSX(EuiCommonlyUsedTimeRanges, {
121
+ applyTime: applyTime,
122
+ commonlyUsedRanges: commonlyUsedRanges
123
+ });
124
+
125
+ var recentlyUsedElement = ___EmotionJSX(EuiRecentlyUsed, {
126
+ applyTime: applyTime,
127
+ commonlyUsedRanges: commonlyUsedRanges,
128
+ dateFormat: dateFormat,
129
+ recentlyUsedRanges: recentlyUsedRanges
130
+ });
131
+
132
+ var refreshIntervalElement = applyRefreshInterval && ___EmotionJSX(EuiRefreshInterval, {
133
+ onRefreshChange: applyRefreshInterval,
134
+ isPaused: isPaused,
135
+ refreshInterval: refreshInterval
136
+ });
137
+
138
+ var customQuickSelectPanelsElement = useMemo(function () {
139
+ if (!customQuickSelectPanels) {
140
+ return null;
189
141
  }
190
- }]);
191
142
 
192
- return EuiQuickSelectPopover;
193
- }(Component);
143
+ return customQuickSelectPanels.map(function (_ref4) {
144
+ var title = _ref4.title,
145
+ content = _ref4.content;
146
+ return ___EmotionJSX("div", {
147
+ key: title,
148
+ className: "euiQuickSelectPopover__panel"
149
+ }, ___EmotionJSX(EuiTitle, {
150
+ size: "xxxs"
151
+ }, ___EmotionJSX("span", null, title)), ___EmotionJSX(EuiText, {
152
+ size: "s",
153
+ className: "euiQuickSelectPopover__section"
154
+ }, /*#__PURE__*/React.cloneElement(content, {
155
+ applyTime: applyTime
156
+ })));
157
+ });
158
+ }, [customQuickSelectPanels, applyTime]);
159
+ return ___EmotionJSX("div", {
160
+ className: "euiQuickSelectPopover__content",
161
+ "data-test-subj": "superDatePickerQuickMenu"
162
+ }, customQuickSelectRender ? customQuickSelectRender({
163
+ quickSelect: quickSelectElement,
164
+ commonlyUsedRanges: commonlyUsedElement,
165
+ recentlyUsedRanges: recentlyUsedElement,
166
+ refreshInterval: refreshIntervalElement,
167
+ customQuickSelectPanels: customQuickSelectPanelsElement
168
+ }) : ___EmotionJSX(React.Fragment, null, quickSelectElement, commonlyUsedElement, recentlyUsedElement, refreshIntervalElement, customQuickSelectPanelsElement));
169
+ };
@@ -47,10 +47,13 @@ export var EuiRecentlyUsed = function EuiRecentlyUsed(_ref) {
47
47
  dateFormat: dateFormat
48
48
  })));
49
49
  });
50
- return ___EmotionJSX("fieldset", null, ___EmotionJSX(EuiTitle, {
50
+ return ___EmotionJSX("fieldset", {
51
+ className: "euiQuickSelectPopover__panel"
52
+ }, ___EmotionJSX(EuiTitle, {
51
53
  size: "xxxs"
52
54
  }, ___EmotionJSX("legend", {
53
- id: legendId
55
+ id: legendId,
56
+ className: "euiQuickSelectPopover__panelTitle"
54
57
  }, ___EmotionJSX(EuiI18n, {
55
58
  token: "euiRecentlyUsed.legend",
56
59
  default: "Recently used date ranges"
@@ -384,6 +384,7 @@ export var EuiSuperDatePickerInternal = /*#__PURE__*/function (_Component) {
384
384
  commonlyUsedRanges = _this$props5.commonlyUsedRanges,
385
385
  timeOptions = _this$props5.timeOptions,
386
386
  customQuickSelectPanels = _this$props5.customQuickSelectPanels,
387
+ customQuickSelectRender = _this$props5.customQuickSelectRender,
387
388
  dateFormat = _this$props5.dateFormat,
388
389
  end = _this$props5.end,
389
390
  isAutoRefreshOnly = _this$props5.isAutoRefreshOnly,
@@ -415,6 +416,7 @@ export var EuiSuperDatePickerInternal = /*#__PURE__*/function (_Component) {
415
416
  applyTime: this.applyQuickTime,
416
417
  commonlyUsedRanges: commonlyUsedRanges,
417
418
  customQuickSelectPanels: customQuickSelectPanels,
419
+ customQuickSelectRender: customQuickSelectRender,
418
420
  dateFormat: dateFormat,
419
421
  end: end,
420
422
  isDisabled: isDisabled,
@@ -0,0 +1,67 @@
1
+ /*
2
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3
+ * or more contributor license agreements. Licensed under the Elastic License
4
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
5
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
6
+ * Side Public License, v 1.
7
+ */
8
+ /// <reference types="../../../cypress/support"/>
9
+ import React from 'react';
10
+ import { EuiButton } from '../button';
11
+ import { EuiErrorBoundary } from './error_boundary';
12
+ import { EuiSpacer } from '../spacer';
13
+ import { jsx as ___EmotionJSX } from "@emotion/react";
14
+
15
+ var handleFocus = function handleFocus() {
16
+ var target = document.querySelector('pre.euiCodeBlock__pre');
17
+ target.focus();
18
+ };
19
+
20
+ describe('EuiErrorBoundary', function () {
21
+ describe('Automated accessibility check when an error is thrown', function () {
22
+ var BadComponent = function BadComponent() {
23
+ throw new Error('Throw the error.');
24
+ };
25
+
26
+ beforeEach(function () {
27
+ cy.on('uncaught:exception', function (err) {
28
+ if (err.message.includes('Throw the error')) {
29
+ return false;
30
+ }
31
+ });
32
+ cy.viewport(1024, 768); // medium breakpoint
33
+
34
+ cy.realMount(___EmotionJSX(React.Fragment, null, ___EmotionJSX(EuiButton, {
35
+ color: "primary",
36
+ onClick: handleFocus,
37
+ "data-test-subj": "cy-error-boundary-button"
38
+ }, "Press to focus"), ___EmotionJSX(EuiSpacer, null), ___EmotionJSX(EuiErrorBoundary, null, ___EmotionJSX(BadComponent, null))));
39
+ });
40
+ it('has zero violations on first render', function () {
41
+ cy.checkAxe();
42
+ });
43
+ it('has zero violations and accepts focus when the button is pressed', function () {
44
+ cy.realPress('Tab');
45
+ cy.realPress('Enter');
46
+ cy.get('pre.euiCodeBlock__pre').should('have.focus');
47
+ cy.checkAxe();
48
+ });
49
+ });
50
+ describe('Automated accessibility check when no error is thrown', function () {
51
+ var GoodComponent = function GoodComponent() {
52
+ return ___EmotionJSX("div", {
53
+ "data-test-subj": "cy-good-component"
54
+ }, "This is a properly rendered component.");
55
+ };
56
+
57
+ beforeEach(function () {
58
+ cy.viewport(1024, 768); // medium breakpoint
59
+
60
+ cy.realMount(___EmotionJSX(EuiErrorBoundary, null, ___EmotionJSX(GoodComponent, null)));
61
+ });
62
+ it('has zero violations when no violations are thrown', function () {
63
+ cy.get('div[data-test-subj="cy-good-component"]').should('exist');
64
+ cy.checkAxe();
65
+ });
66
+ });
67
+ });
@@ -0,0 +1,243 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+
4
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
5
+
6
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
7
+
8
+ /*
9
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
10
+ * or more contributor license agreements. Licensed under the Elastic License
11
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
12
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
13
+ * Side Public License, v 1.
14
+ */
15
+ /// <reference types="../../../cypress/support"/>
16
+ import React, { useState } from 'react';
17
+ import { EuiExpression } from './expression';
18
+ import { EuiFieldNumber, EuiSelect } from '../form';
19
+ import { EuiFlexGroup, EuiFlexItem } from '../flex';
20
+ import { EuiPanel } from '../panel';
21
+ import { EuiPopover, EuiPopoverTitle } from '../popover';
22
+ import { useGeneratedHtmlId } from '../../services';
23
+ import { jsx as ___EmotionJSX } from "@emotion/react";
24
+ describe('EuiExpression', function () {
25
+ var BaseExpression = function BaseExpression() {
26
+ var _useState = useState({
27
+ isOpen: false,
28
+ value: 'count()'
29
+ }),
30
+ _useState2 = _slicedToArray(_useState, 2),
31
+ example1 = _useState2[0],
32
+ setExample1 = _useState2[1];
33
+
34
+ var _useState3 = useState({
35
+ value: 100,
36
+ description: 'Is above'
37
+ }),
38
+ _useState4 = _slicedToArray(_useState3, 2),
39
+ example2 = _useState4[0],
40
+ setExample2 = _useState4[1];
41
+
42
+ var expressionPopoverId__1 = useGeneratedHtmlId({
43
+ prefix: 'expressionPopover',
44
+ suffix: 'first'
45
+ });
46
+ var expressionPopoverId__2 = useGeneratedHtmlId({
47
+ prefix: 'expressionPopover',
48
+ suffix: 'second'
49
+ });
50
+
51
+ var openExample1 = function openExample1() {
52
+ setExample1(_objectSpread(_objectSpread({}, example1), {}, {
53
+ isOpen: true
54
+ }));
55
+ setExample2(_objectSpread(_objectSpread({}, example2), {}, {
56
+ isOpen: false
57
+ }));
58
+ };
59
+
60
+ var closeExample1 = function closeExample1() {
61
+ setExample1(_objectSpread(_objectSpread({}, example1), {}, {
62
+ isOpen: false
63
+ }));
64
+ };
65
+
66
+ var openExample2 = function openExample2() {
67
+ setExample1(_objectSpread(_objectSpread({}, example1), {}, {
68
+ isOpen: false
69
+ }));
70
+ setExample2(_objectSpread(_objectSpread({}, example2), {}, {
71
+ isOpen: true
72
+ }));
73
+ };
74
+
75
+ var closeExample2 = function closeExample2() {
76
+ setExample2(_objectSpread(_objectSpread({}, example2), {}, {
77
+ isOpen: false
78
+ }));
79
+ };
80
+
81
+ var changeExample1 = function changeExample1(event) {
82
+ setExample1(_objectSpread(_objectSpread({}, example1), {}, {
83
+ value: event.target.value
84
+ }));
85
+ };
86
+
87
+ var changeExample2Value = function changeExample2Value(e) {
88
+ var sanitizedValue = parseInt(e.target.value, 10);
89
+ setExample2(_objectSpread(_objectSpread({}, example2), {}, {
90
+ value: isNaN(sanitizedValue) ? '' : sanitizedValue
91
+ }));
92
+ };
93
+
94
+ var changeExample2Description = function changeExample2Description(event) {
95
+ setExample2(_objectSpread(_objectSpread({}, example2), {}, {
96
+ description: event.target.value
97
+ }));
98
+ };
99
+
100
+ var renderPopover1 = function renderPopover1() {
101
+ return ___EmotionJSX("div", {
102
+ "data-test-subj": "cy-expression-popover-1"
103
+ }, ___EmotionJSX(EuiPopoverTitle, null, "When"), ___EmotionJSX(EuiSelect, {
104
+ compressed: true,
105
+ value: example1.value,
106
+ onChange: changeExample1,
107
+ options: [{
108
+ value: 'count()',
109
+ text: 'count()'
110
+ }, {
111
+ value: 'average()',
112
+ text: 'average()'
113
+ }, {
114
+ value: 'sum()',
115
+ text: 'sum()'
116
+ }, {
117
+ value: 'median()',
118
+ text: 'median()'
119
+ }, {
120
+ value: 'min()',
121
+ text: 'min()'
122
+ }, {
123
+ value: 'max()',
124
+ text: 'max()'
125
+ }]
126
+ }));
127
+ };
128
+
129
+ var renderPopover2 = function renderPopover2() {
130
+ return ___EmotionJSX("div", {
131
+ "data-test-subj": "cy-expression-popover-2"
132
+ }, ___EmotionJSX(EuiFlexGroup, {
133
+ gutterSize: "s"
134
+ }, ___EmotionJSX(EuiFlexItem, {
135
+ grow: false,
136
+ style: {
137
+ width: 150
138
+ }
139
+ }, ___EmotionJSX(EuiSelect, {
140
+ compressed: true,
141
+ value: example2.description,
142
+ onChange: changeExample2Description,
143
+ options: [{
144
+ value: 'Is above',
145
+ text: 'Is above'
146
+ }, {
147
+ value: 'Is below',
148
+ text: 'Is below'
149
+ }, {
150
+ value: 'Is exactly',
151
+ text: 'Is exactly'
152
+ }]
153
+ })), ___EmotionJSX(EuiFlexItem, {
154
+ grow: false,
155
+ style: {
156
+ width: 100
157
+ }
158
+ }, ___EmotionJSX(EuiFieldNumber, {
159
+ compressed: true,
160
+ value: example2.value,
161
+ onChange: changeExample2Value
162
+ }))));
163
+ };
164
+
165
+ return ___EmotionJSX(EuiPanel, null, ___EmotionJSX(EuiFlexGroup, {
166
+ gutterSize: "s"
167
+ }, ___EmotionJSX(EuiFlexItem, {
168
+ grow: false
169
+ }, ___EmotionJSX(EuiPopover, {
170
+ id: expressionPopoverId__1,
171
+ button: ___EmotionJSX(EuiExpression, {
172
+ description: "when",
173
+ value: example1.value,
174
+ isActive: example1.isOpen,
175
+ onClick: openExample1
176
+ }),
177
+ isOpen: example1.isOpen,
178
+ closePopover: closeExample1,
179
+ panelPaddingSize: "s",
180
+ anchorPosition: "downLeft"
181
+ }, renderPopover1())), ___EmotionJSX(EuiFlexItem, {
182
+ grow: false
183
+ }, ___EmotionJSX(EuiPopover, {
184
+ id: expressionPopoverId__2,
185
+ panelPaddingSize: "s",
186
+ button: ___EmotionJSX(EuiExpression, {
187
+ description: example2.description,
188
+ value: example2.value,
189
+ isActive: example2.isOpen,
190
+ onClick: openExample2
191
+ }),
192
+ isOpen: example2.isOpen,
193
+ closePopover: closeExample2,
194
+ anchorPosition: "downLeft"
195
+ }, renderPopover2()))));
196
+ };
197
+
198
+ beforeEach(function () {
199
+ cy.viewport(1024, 768); // medium breakpoint
200
+
201
+ cy.realMount(___EmotionJSX(BaseExpression, null));
202
+ });
203
+ describe('Automated accessibility check', function () {
204
+ it('has zero violations on first render', function () {
205
+ cy.checkAxe();
206
+ });
207
+ it('has zero violations when count popover is open', function () {
208
+ cy.get('button').contains(/When count\(\)/i).realClick();
209
+ cy.get('div[data-test-subj="cy-expression-popover-1"]').should('exist');
210
+ cy.checkAxe();
211
+ });
212
+ it('has zero violations when is above popover is open', function () {
213
+ cy.get('button').contains(/Is above 100/i).realClick();
214
+ cy.get('div[data-test-subj="cy-expression-popover-2"]').should('exist');
215
+ cy.checkAxe();
216
+ });
217
+ it('has zero violations when first popover is interacted with by keyboard', function () {
218
+ cy.realPress('Tab');
219
+ cy.get('button').contains(/When count\(\)/i).should('have.focus');
220
+ cy.realPress('Enter');
221
+ cy.get('div[data-test-subj="cy-expression-popover-1"]').should('exist');
222
+ cy.realPress('Tab');
223
+ cy.realPress(['a', 'v', 'g']);
224
+ cy.realPress('Escape');
225
+ cy.get('button').contains(/When average\(\)/i).should('have.focus');
226
+ cy.checkAxe();
227
+ });
228
+ it('has zero violations when second popover is interacted with by keyboard', function () {
229
+ cy.repeatRealPress('Tab');
230
+ cy.get('button').contains(/Is above 100/i).should('have.focus');
231
+ cy.realPress('Enter');
232
+ cy.get('div[data-test-subj="cy-expression-popover-2"]').should('exist');
233
+ cy.realPress('Tab');
234
+ cy.realPress(['I', 's', ' ', 'e']);
235
+ cy.realPress('Tab');
236
+ cy.repeatRealPress('Delete', 3);
237
+ cy.realPress(['5', '0', '0']);
238
+ cy.realPress('Escape');
239
+ cy.get('button').contains(/Is exactly 500/i).should('have.focus');
240
+ cy.checkAxe();
241
+ });
242
+ });
243
+ });