@elastic/eui 64.0.2 → 64.0.4

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 (64) hide show
  1. package/dist/eui_charts_theme.js +330 -330
  2. package/dist/eui_charts_theme.js.map +1 -1
  3. package/es/components/accordion/accordion.js +5 -4
  4. package/es/components/basic_table/in_memory_table.js +4 -0
  5. package/es/components/header/header_section/header_section_item.js +4 -3
  6. package/es/components/image/image_wrapper.js +3 -3
  7. package/es/components/page/page_header/page_header_content.js +1 -1
  8. package/es/components/page/page_section/page_section.js +3 -4
  9. package/es/components/progress/progress.js +2 -2
  10. package/es/components/search_bar/filters/custom_component_filter.js +16 -0
  11. package/es/components/search_bar/filters/filters.js +6 -0
  12. package/es/components/search_bar/query/ast.js +12 -0
  13. package/es/components/search_bar/query/query.js +17 -0
  14. package/es/components/search_bar/search_bar.js +4 -0
  15. package/es/components/search_bar/search_filters.js +4 -0
  16. package/eui.d.ts +31 -1
  17. package/lib/components/accordion/accordion.js +5 -4
  18. package/lib/components/basic_table/in_memory_table.js +4 -0
  19. package/lib/components/header/header_section/header_section_item.js +4 -3
  20. package/lib/components/image/image_wrapper.js +3 -3
  21. package/lib/components/page/page_header/page_header_content.js +1 -1
  22. package/lib/components/page/page_section/page_section.js +3 -4
  23. package/lib/components/progress/progress.js +2 -2
  24. package/lib/components/search_bar/filters/custom_component_filter.js +29 -0
  25. package/lib/components/search_bar/filters/filters.js +7 -0
  26. package/lib/components/search_bar/query/ast.js +12 -0
  27. package/lib/components/search_bar/query/query.js +17 -0
  28. package/lib/components/search_bar/search_bar.js +4 -0
  29. package/lib/components/search_bar/search_filters.js +4 -0
  30. package/optimize/es/components/accordion/accordion.js +5 -4
  31. package/optimize/es/components/header/header_section/header_section_item.js +4 -3
  32. package/optimize/es/components/image/image_wrapper.js +3 -3
  33. package/optimize/es/components/page/page_header/page_header_content.js +1 -1
  34. package/optimize/es/components/page/page_section/page_section.js +3 -4
  35. package/optimize/es/components/progress/progress.js +2 -2
  36. package/optimize/es/components/search_bar/filters/custom_component_filter.js +16 -0
  37. package/optimize/es/components/search_bar/filters/filters.js +6 -0
  38. package/optimize/es/components/search_bar/query/ast.js +12 -0
  39. package/optimize/es/components/search_bar/query/query.js +17 -0
  40. package/optimize/lib/components/accordion/accordion.js +5 -4
  41. package/optimize/lib/components/header/header_section/header_section_item.js +4 -3
  42. package/optimize/lib/components/image/image_wrapper.js +3 -3
  43. package/optimize/lib/components/page/page_header/page_header_content.js +1 -1
  44. package/optimize/lib/components/page/page_section/page_section.js +3 -4
  45. package/optimize/lib/components/progress/progress.js +2 -2
  46. package/optimize/lib/components/search_bar/filters/custom_component_filter.js +29 -0
  47. package/optimize/lib/components/search_bar/filters/filters.js +7 -0
  48. package/optimize/lib/components/search_bar/query/ast.js +12 -0
  49. package/optimize/lib/components/search_bar/query/query.js +17 -0
  50. package/package.json +1 -1
  51. package/src/components/header/header_section/_header_section_item.scss +1 -1
  52. package/test-env/components/accordion/accordion.js +5 -4
  53. package/test-env/components/basic_table/in_memory_table.js +4 -0
  54. package/test-env/components/header/header_section/header_section_item.js +4 -3
  55. package/test-env/components/image/image_wrapper.js +3 -3
  56. package/test-env/components/page/page_header/page_header_content.js +1 -1
  57. package/test-env/components/page/page_section/page_section.js +3 -4
  58. package/test-env/components/progress/progress.js +2 -2
  59. package/test-env/components/search_bar/filters/custom_component_filter.js +29 -0
  60. package/test-env/components/search_bar/filters/filters.js +7 -0
  61. package/test-env/components/search_bar/query/ast.js +12 -0
  62. package/test-env/components/search_bar/query/query.js +17 -0
  63. package/test-env/components/search_bar/search_bar.js +4 -0
  64. package/test-env/components/search_bar/search_filters.js +4 -0
@@ -207,10 +207,10 @@ export var EuiAccordionClass = /*#__PURE__*/function (_Component) {
207
207
 
208
208
  if (_arrowDisplay !== 'none') {
209
209
  iconButton = ___EmotionJSX(EuiButtonIcon, _extends({
210
- color: "text"
210
+ color: "text",
211
+ css: cssIconButtonStyles
211
212
  }, arrowProps, {
212
213
  className: iconButtonClasses,
213
- css: cssIconButtonStyles,
214
214
  iconType: "arrowRight",
215
215
  onClick: this.onToggle,
216
216
  "aria-controls": id,
@@ -246,10 +246,11 @@ export var EuiAccordionClass = /*#__PURE__*/function (_Component) {
246
246
  childrenContent = children;
247
247
  }
248
248
 
249
- var button = ___EmotionJSX(ButtonElement, _extends({}, buttonProps, {
249
+ var button = ___EmotionJSX(ButtonElement, _extends({
250
+ css: cssButtonStyles
251
+ }, buttonProps, {
250
252
  id: buttonId,
251
253
  className: buttonClasses,
252
- css: cssButtonStyles,
253
254
  "aria-controls": id,
254
255
  "aria-expanded": isOpen,
255
256
  onClick: isDisabled ? undefined : this.onToggle,
@@ -1099,6 +1099,10 @@ EuiInMemoryTable.propTypes = {
1099
1099
  operator: PropTypes.oneOf(["eq", "exact", "gt", "gte", "lt", "lte"])
1100
1100
  }).isRequired).isRequired,
1101
1101
  available: PropTypes.func
1102
+ }).isRequired, PropTypes.shape({
1103
+ type: PropTypes.oneOf(["custom_component"]).isRequired,
1104
+ component: PropTypes.elementType.isRequired,
1105
+ available: PropTypes.func
1102
1106
  }).isRequired]).isRequired),
1103
1107
 
1104
1108
  /**
@@ -29,10 +29,11 @@ export var EuiHeaderSectionItem = function EuiHeaderSectionItem(_ref) {
29
29
  className = _ref.className,
30
30
  rest = _objectWithoutProperties(_ref, _excluded);
31
31
 
32
- var classes = classNames('euiHeaderSectionItem', borderToClassNameMap[border], className);
33
- return ___EmotionJSX("div", _extends({
32
+ var classes = classNames('euiHeaderSectionItem', borderToClassNameMap[border], className); // we check if there is any children and if not, we don't render anything
33
+
34
+ return children ? ___EmotionJSX("div", _extends({
34
35
  className: classes
35
- }, rest), children);
36
+ }, rest), children) : null;
36
37
  };
37
38
  EuiHeaderSectionItem.propTypes = {
38
39
  className: PropTypes.string,
@@ -56,10 +56,10 @@ export var EuiImageWrapper = function EuiImageWrapper(_ref) {
56
56
  optionalCaptionText = _useInnerText2[1];
57
57
 
58
58
  return ___EmotionJSX("figure", _extends({
59
- "aria-label": optionalCaptionText
60
- }, wrapperProps, {
61
- className: classes,
59
+ "aria-label": optionalCaptionText,
62
60
  css: cssFigureStyles
61
+ }, wrapperProps, {
62
+ className: classes
63
63
  }), allowFullScreen ? ___EmotionJSX(React.Fragment, null, ___EmotionJSX(EuiImageButton, {
64
64
  hasAlt: !!alt,
65
65
  hasShadow: hasShadow,
@@ -59,7 +59,7 @@ export var EuiPageHeaderContent = function EuiPageHeaderContent(_ref) {
59
59
 
60
60
  var isResponsiveBreakpoint = useIsWithinBreakpoints(['xs', 's'], !!responsive);
61
61
  var useTheme = useEuiTheme();
62
- var classes = classNames('euiPageHeaderContent');
62
+ var classes = classNames('euiPageHeaderContent', className);
63
63
  var pageHeaderStyles = euiPageHeaderStyles(useTheme);
64
64
  var contentStyles = euiPageHeaderContentStyles(useTheme);
65
65
  var styles = setStyleForRestrictedPageWidth(restrictWidth, style);
@@ -47,12 +47,11 @@ export var EuiPageSection = function EuiPageSection(_ref) {
47
47
  var colors = useEuiBackgroundColorCSS();
48
48
  var cssStyles = [styles.euiPageSection, grow && styles.grow, inlinePadding[paddingSize], bottomBorder === 'extended' && styles.border, alignment && styles[alignment], colors[color]];
49
49
  var contentStyles = euiPageSectionContentStyles();
50
- var cssContentStyles = [contentStyles.euiPageSection__content, blockPadding[paddingSize], bottomBorder === true && styles.border, alignment.toLowerCase().includes('center') && contentStyles.center, restrictWidth && contentStyles.restrictWidth];
50
+ var cssContentStyles = [contentStyles.euiPageSection__content, blockPadding[paddingSize], bottomBorder === true && styles.border, alignment.toLowerCase().includes('center') && contentStyles.center, restrictWidth && contentStyles.restrictWidth, (contentProps === null || contentProps === void 0 ? void 0 : contentProps.css) && contentProps.css];
51
51
  return ___EmotionJSX(Component, _extends({
52
52
  css: cssStyles
53
- }, rest), ___EmotionJSX("div", _extends({
54
- css: cssContentStyles
55
- }, contentProps, {
53
+ }, rest), ___EmotionJSX("div", _extends({}, contentProps, {
54
+ css: cssContentStyles,
56
55
  style: widthStyles
57
56
  }), children));
58
57
  };
@@ -84,9 +84,9 @@ export var EuiProgress = function EuiProgress(_ref) {
84
84
  }, label && ___EmotionJSX(EuiInnerText, null, function (ref, innerText) {
85
85
  return ___EmotionJSX("span", _extends({
86
86
  title: innerText,
87
- ref: ref
87
+ ref: ref,
88
+ css: labelCssStyles
88
89
  }, labelProps, {
89
- css: labelCssStyles,
90
90
  className: labelClasses
91
91
  }), label);
92
92
  }), valueRender && ___EmotionJSX(EuiInnerText, null, function (ref, innerText) {
@@ -0,0 +1,16 @@
1
+ /*
2
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3
+ * or more contributor license agreements. Licensed under the Elastic License
4
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
5
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
6
+ * Side Public License, v 1.
7
+ */
8
+ import React from 'react';
9
+ import { jsx as ___EmotionJSX } from "@emotion/react";
10
+ export var CustomComponentFilter = function CustomComponentFilter(props) {
11
+ var CustomComponent = props.config.component;
12
+ return ___EmotionJSX(CustomComponent, {
13
+ query: props.query,
14
+ onChange: props.onChange
15
+ });
16
+ };
@@ -12,6 +12,7 @@ import { IsFilter } from './is_filter';
12
12
  import { FieldValueSelectionFilter } from './field_value_selection_filter';
13
13
  import { FieldValueToggleFilter } from './field_value_toggle_filter';
14
14
  import { FieldValueToggleGroupFilter } from './field_value_toggle_group_filter';
15
+ import { CustomComponentFilter } from './custom_component_filter';
15
16
  import { jsx as ___EmotionJSX } from "@emotion/react";
16
17
  export var createFilter = function createFilter(index, config, query, onChange) {
17
18
  var props = {
@@ -45,6 +46,11 @@ export var createFilter = function createFilter(index, config, query, onChange)
45
46
  config: config
46
47
  }));
47
48
 
49
+ case 'custom_component':
50
+ return ___EmotionJSX(CustomComponentFilter, _extends({}, props, {
51
+ config: config
52
+ }));
53
+
48
54
  default:
49
55
  // @ts-ignore TS knows that we've checked `config.type` exhaustively
50
56
  throw new Error("Unknown search filter type [".concat(config.type, "]"));
@@ -543,6 +543,18 @@ export var _AST = /*#__PURE__*/function () {
543
543
  return !Is.isInstance(clause) || clause.flag !== flag;
544
544
  }));
545
545
  }
546
+ }, {
547
+ key: "removeIsClauses",
548
+ value: function removeIsClauses() {
549
+ return new _AST(this._clauses.filter(function (clause) {
550
+ return !Is.isInstance(clause);
551
+ }));
552
+ }
553
+ }, {
554
+ key: "removeAllClauses",
555
+ value: function removeAllClauses() {
556
+ return new _AST();
557
+ }
546
558
  }, {
547
559
  key: "getGroupClauses",
548
560
  value: function getGroupClauses() {
@@ -44,6 +44,11 @@ export var Query = /*#__PURE__*/function () {
44
44
  }
45
45
 
46
46
  _createClass(Query, [{
47
+ key: "hasClauses",
48
+ value: function hasClauses() {
49
+ return this.ast.clauses.length > 0;
50
+ }
51
+ }, {
47
52
  key: "hasSimpleFieldClause",
48
53
  value: function hasSimpleFieldClause(field, value) {
49
54
  return this.ast.hasSimpleFieldClause(field, value);
@@ -103,6 +108,12 @@ export var Query = /*#__PURE__*/function () {
103
108
  var ast = this.ast.removeOrFieldClauses(field);
104
109
  return new Query(ast, this.syntax);
105
110
  }
111
+ }, {
112
+ key: "removeAllClauses",
113
+ value: function removeAllClauses() {
114
+ var ast = this.ast.removeAllClauses();
115
+ return new Query(ast, this.syntax);
116
+ }
106
117
  }, {
107
118
  key: "hasIsClause",
108
119
  value: function hasIsClause(flag) {
@@ -131,6 +142,12 @@ export var Query = /*#__PURE__*/function () {
131
142
  var ast = this.ast.removeIsClause(flag);
132
143
  return new Query(ast, this.syntax);
133
144
  }
145
+ }, {
146
+ key: "removeIsClauses",
147
+ value: function removeIsClauses() {
148
+ var ast = this.ast.removeIsClauses();
149
+ return new Query(ast, this.syntax);
150
+ }
134
151
  /**
135
152
  * Executes this query over the given iterable item and returns
136
153
  * an new array of all items that matched this query. Options:
@@ -412,6 +412,10 @@ EuiSearchBar.propTypes = {
412
412
  operator: PropTypes.oneOf(["eq", "exact", "gt", "gte", "lt", "lte"])
413
413
  }).isRequired).isRequired,
414
414
  available: PropTypes.func
415
+ }).isRequired, PropTypes.shape({
416
+ type: PropTypes.oneOf(["custom_component"]).isRequired,
417
+ component: PropTypes.elementType.isRequired,
418
+ available: PropTypes.func
415
419
  }).isRequired]).isRequired),
416
420
 
417
421
  /**
@@ -156,5 +156,9 @@ EuiSearchFilters.propTypes = {
156
156
  operator: PropTypes.oneOf(["eq", "exact", "gt", "gte", "lt", "lte"])
157
157
  }).isRequired).isRequired,
158
158
  available: PropTypes.func
159
+ }).isRequired, PropTypes.shape({
160
+ type: PropTypes.oneOf(["custom_component"]).isRequired,
161
+ component: PropTypes.elementType.isRequired,
162
+ available: PropTypes.func
159
163
  }).isRequired]).isRequired).isRequired
160
164
  };
package/eui.d.ts CHANGED
@@ -15977,6 +15977,8 @@ declare module '@elastic/eui/src/components/search_bar/query/ast' {
15977
15977
  getIsClauses(): IsClause[];
15978
15978
  getIsClause(flag: string): IsClause;
15979
15979
  removeIsClause(flag: string): _AST;
15980
+ removeIsClauses(): _AST;
15981
+ removeAllClauses(): _AST;
15980
15982
  getGroupClauses(): GroupClause[];
15981
15983
  /**
15982
15984
  * Creates and returns a new AST with the given clause added to the current clauses. If
@@ -16289,6 +16291,7 @@ declare module '@elastic/eui/src/components/search_bar/query/query' {
16289
16291
  text: string;
16290
16292
  private syntax;
16291
16293
  constructor(ast: _AST, syntax?: Syntax, text?: string);
16294
+ hasClauses(): boolean;
16292
16295
  hasSimpleFieldClause(field: string, value?: string): boolean;
16293
16296
  getSimpleFieldClause(field: string, value?: Value): import ("@elastic/eui/src/components/search_bar/query/ast").FieldClause | undefined;
16294
16297
  removeSimpleFieldClauses(field: string): Query;
@@ -16299,11 +16302,13 @@ declare module '@elastic/eui/src/components/search_bar/query/query' {
16299
16302
  addOrFieldValue(field: string, value: Value, must?: boolean, operator?: OperatorType): Query;
16300
16303
  removeOrFieldValue(field: string, value: Value): Query;
16301
16304
  removeOrFieldClauses(field: string): Query;
16305
+ removeAllClauses(): Query;
16302
16306
  hasIsClause(flag: string): boolean;
16303
16307
  getIsClause(flag: string): import ("@elastic/eui/src/components/search_bar/query/ast").IsClause;
16304
16308
  addMustIsClause(flag: string): Query;
16305
16309
  addMustNotIsClause(flag: string): Query;
16306
16310
  removeIsClause(flag: string): Query;
16311
+ removeIsClauses(): Query;
16307
16312
  /**
16308
16313
  * Executes this query over the given iterable item and returns
16309
16314
  * an new array of all items that matched this query. Options:
@@ -17080,6 +17085,30 @@ declare module '@elastic/eui/src/components/search_bar/filters/field_value_toggl
17080
17085
  render(): JSX.Element[];
17081
17086
  }
17082
17087
 
17088
+ }
17089
+ declare module '@elastic/eui/src/components/search_bar/filters/custom_component_filter' {
17090
+ import React, { FC } from 'react';
17091
+ import { Query } from '@elastic/eui/src/components/search_bar/query';
17092
+ /**
17093
+ * The props that are passed down to the custom component
17094
+ */
17095
+ export interface CustomComponentProps {
17096
+ query: Query;
17097
+ onChange?: (query: Query) => void;
17098
+ }
17099
+ export interface CustomComponentFilterConfigType<T extends CustomComponentProps = CustomComponentProps> {
17100
+ type: 'custom_component';
17101
+ component: React.ComponentType<T>;
17102
+ available?: () => boolean;
17103
+ }
17104
+ export interface CustomComponentFilterProps<T extends CustomComponentProps = CustomComponentProps> {
17105
+ index: number;
17106
+ config: CustomComponentFilterConfigType<T>;
17107
+ query: Query;
17108
+ onChange?: (query: Query) => void;
17109
+ }
17110
+ export const CustomComponentFilter: FC<CustomComponentFilterProps>;
17111
+
17083
17112
  }
17084
17113
  declare module '@elastic/eui/src/components/search_bar/filters/filters' {
17085
17114
 
@@ -17087,9 +17116,10 @@ declare module '@elastic/eui/src/components/search_bar/filters/filters' {
17087
17116
  import { FieldValueSelectionFilterConfigType } from '@elastic/eui/src/components/search_bar/filters/field_value_selection_filter';
17088
17117
  import { FieldValueToggleFilterConfigType } from '@elastic/eui/src/components/search_bar/filters/field_value_toggle_filter';
17089
17118
  import { FieldValueToggleGroupFilterConfigType } from '@elastic/eui/src/components/search_bar/filters/field_value_toggle_group_filter';
17119
+ import { CustomComponentFilterConfigType } from '@elastic/eui/src/components/search_bar/filters/custom_component_filter';
17090
17120
  import { Query } from '@elastic/eui/src/components/search_bar/query';
17091
17121
  export const createFilter: (index: number, config: SearchFilterConfig, query: Query, onChange: (query: Query) => void) => JSX.Element;
17092
- export type SearchFilterConfig = IsFilterConfigType | FieldValueSelectionFilterConfigType | FieldValueToggleFilterConfigType | FieldValueToggleGroupFilterConfigType;
17122
+ export type SearchFilterConfig = IsFilterConfigType | FieldValueSelectionFilterConfigType | FieldValueToggleFilterConfigType | FieldValueToggleGroupFilterConfigType | CustomComponentFilterConfigType;
17093
17123
 
17094
17124
  }
17095
17125
  declare module '@elastic/eui/src/components/search_bar/filters' {
@@ -227,10 +227,10 @@ var EuiAccordionClass = /*#__PURE__*/function (_Component) {
227
227
 
228
228
  if (_arrowDisplay !== 'none') {
229
229
  iconButton = (0, _react2.jsx)(_button.EuiButtonIcon, _extends({
230
- color: "text"
230
+ color: "text",
231
+ css: cssIconButtonStyles
231
232
  }, arrowProps, {
232
233
  className: iconButtonClasses,
233
- css: cssIconButtonStyles,
234
234
  iconType: "arrowRight",
235
235
  onClick: this.onToggle,
236
236
  "aria-controls": id,
@@ -266,10 +266,11 @@ var EuiAccordionClass = /*#__PURE__*/function (_Component) {
266
266
  childrenContent = children;
267
267
  }
268
268
 
269
- var button = (0, _react2.jsx)(ButtonElement, _extends({}, buttonProps, {
269
+ var button = (0, _react2.jsx)(ButtonElement, _extends({
270
+ css: cssButtonStyles
271
+ }, buttonProps, {
270
272
  id: buttonId,
271
273
  className: buttonClasses,
272
- css: cssButtonStyles,
273
274
  "aria-controls": id,
274
275
  "aria-expanded": isOpen,
275
276
  onClick: isDisabled ? undefined : this.onToggle,
@@ -1114,6 +1114,10 @@ EuiInMemoryTable.propTypes = {
1114
1114
  operator: _propTypes.default.oneOf(["eq", "exact", "gt", "gte", "lt", "lte"])
1115
1115
  }).isRequired).isRequired,
1116
1116
  available: _propTypes.default.func
1117
+ }).isRequired, _propTypes.default.shape({
1118
+ type: _propTypes.default.oneOf(["custom_component"]).isRequired,
1119
+ component: _propTypes.default.elementType.isRequired,
1120
+ available: _propTypes.default.func
1117
1121
  }).isRequired]).isRequired),
1118
1122
 
1119
1123
  /**
@@ -36,10 +36,11 @@ var EuiHeaderSectionItem = function EuiHeaderSectionItem(_ref) {
36
36
  className = _ref.className,
37
37
  rest = _objectWithoutProperties(_ref, _excluded);
38
38
 
39
- var classes = (0, _classnames.default)('euiHeaderSectionItem', borderToClassNameMap[border], className);
40
- return (0, _react2.jsx)("div", _extends({
39
+ var classes = (0, _classnames.default)('euiHeaderSectionItem', borderToClassNameMap[border], className); // we check if there is any children and if not, we don't render anything
40
+
41
+ return children ? (0, _react2.jsx)("div", _extends({
41
42
  className: classes
42
- }, rest), children);
43
+ }, rest), children) : null;
43
44
  };
44
45
 
45
46
  exports.EuiHeaderSectionItem = EuiHeaderSectionItem;
@@ -67,10 +67,10 @@ var EuiImageWrapper = function EuiImageWrapper(_ref) {
67
67
  optionalCaptionText = _useInnerText2[1];
68
68
 
69
69
  return (0, _react2.jsx)("figure", _extends({
70
- "aria-label": optionalCaptionText
71
- }, wrapperProps, {
72
- className: classes,
70
+ "aria-label": optionalCaptionText,
73
71
  css: cssFigureStyles
72
+ }, wrapperProps, {
73
+ className: classes
74
74
  }), allowFullScreen ? (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_image_button.EuiImageButton, {
75
75
  hasAlt: !!alt,
76
76
  hasShadow: hasShadow,
@@ -80,7 +80,7 @@ var EuiPageHeaderContent = function EuiPageHeaderContent(_ref) {
80
80
 
81
81
  var isResponsiveBreakpoint = (0, _services.useIsWithinBreakpoints)(['xs', 's'], !!responsive);
82
82
  var useTheme = (0, _services.useEuiTheme)();
83
- var classes = (0, _classnames.default)('euiPageHeaderContent');
83
+ var classes = (0, _classnames.default)('euiPageHeaderContent', className);
84
84
  var pageHeaderStyles = (0, _page_header.euiPageHeaderStyles)(useTheme);
85
85
  var contentStyles = (0, _page_header_content.euiPageHeaderContentStyles)(useTheme);
86
86
  var styles = (0, _restrict_width.setStyleForRestrictedPageWidth)(restrictWidth, style);
@@ -56,12 +56,11 @@ var EuiPageSection = function EuiPageSection(_ref) {
56
56
  var colors = (0, _global_styling.useEuiBackgroundColorCSS)();
57
57
  var cssStyles = [styles.euiPageSection, grow && styles.grow, inlinePadding[paddingSize], bottomBorder === 'extended' && styles.border, alignment && styles[alignment], colors[color]];
58
58
  var contentStyles = (0, _page_section.euiPageSectionContentStyles)();
59
- var cssContentStyles = [contentStyles.euiPageSection__content, blockPadding[paddingSize], bottomBorder === true && styles.border, alignment.toLowerCase().includes('center') && contentStyles.center, restrictWidth && contentStyles.restrictWidth];
59
+ var cssContentStyles = [contentStyles.euiPageSection__content, blockPadding[paddingSize], bottomBorder === true && styles.border, alignment.toLowerCase().includes('center') && contentStyles.center, restrictWidth && contentStyles.restrictWidth, (contentProps === null || contentProps === void 0 ? void 0 : contentProps.css) && contentProps.css];
60
60
  return (0, _react2.jsx)(Component, _extends({
61
61
  css: cssStyles
62
- }, rest), (0, _react2.jsx)("div", _extends({
63
- css: cssContentStyles
64
- }, contentProps, {
62
+ }, rest), (0, _react2.jsx)("div", _extends({}, contentProps, {
63
+ css: cssContentStyles,
65
64
  style: widthStyles
66
65
  }), children));
67
66
  };
@@ -105,9 +105,9 @@ var EuiProgress = function EuiProgress(_ref) {
105
105
  }, label && (0, _react2.jsx)(_inner_text.EuiInnerText, null, function (ref, innerText) {
106
106
  return (0, _react2.jsx)("span", _extends({
107
107
  title: innerText,
108
- ref: ref
108
+ ref: ref,
109
+ css: labelCssStyles
109
110
  }, labelProps, {
110
- css: labelCssStyles,
111
111
  className: labelClasses
112
112
  }), label);
113
113
  }), valueRender && (0, _react2.jsx)(_inner_text.EuiInnerText, null, function (ref, innerText) {
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.CustomComponentFilter = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _react2 = require("@emotion/react");
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ /*
15
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
16
+ * or more contributor license agreements. Licensed under the Elastic License
17
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
18
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
19
+ * Side Public License, v 1.
20
+ */
21
+ var CustomComponentFilter = function CustomComponentFilter(props) {
22
+ var CustomComponent = props.config.component;
23
+ return (0, _react2.jsx)(CustomComponent, {
24
+ query: props.query,
25
+ onChange: props.onChange
26
+ });
27
+ };
28
+
29
+ exports.CustomComponentFilter = CustomComponentFilter;
@@ -15,6 +15,8 @@ var _field_value_toggle_filter = require("./field_value_toggle_filter");
15
15
 
16
16
  var _field_value_toggle_group_filter = require("./field_value_toggle_group_filter");
17
17
 
18
+ var _custom_component_filter = require("./custom_component_filter");
19
+
18
20
  var _react2 = require("@emotion/react");
19
21
 
20
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -53,6 +55,11 @@ var createFilter = function createFilter(index, config, query, onChange) {
53
55
  config: config
54
56
  }));
55
57
 
58
+ case 'custom_component':
59
+ return (0, _react2.jsx)(_custom_component_filter.CustomComponentFilter, _extends({}, props, {
60
+ config: config
61
+ }));
62
+
56
63
  default:
57
64
  // @ts-ignore TS knows that we've checked `config.type` exhaustively
58
65
  throw new Error("Unknown search filter type [".concat(config.type, "]"));
@@ -547,6 +547,18 @@ var _AST = /*#__PURE__*/function () {
547
547
  return !Is.isInstance(clause) || clause.flag !== flag;
548
548
  }));
549
549
  }
550
+ }, {
551
+ key: "removeIsClauses",
552
+ value: function removeIsClauses() {
553
+ return new _AST(this._clauses.filter(function (clause) {
554
+ return !Is.isInstance(clause);
555
+ }));
556
+ }
557
+ }, {
558
+ key: "removeAllClauses",
559
+ value: function removeAllClauses() {
560
+ return new _AST();
561
+ }
550
562
  }, {
551
563
  key: "getGroupClauses",
552
564
  value: function getGroupClauses() {
@@ -49,6 +49,11 @@ var Query = /*#__PURE__*/function () {
49
49
  }
50
50
 
51
51
  _createClass(Query, [{
52
+ key: "hasClauses",
53
+ value: function hasClauses() {
54
+ return this.ast.clauses.length > 0;
55
+ }
56
+ }, {
52
57
  key: "hasSimpleFieldClause",
53
58
  value: function hasSimpleFieldClause(field, value) {
54
59
  return this.ast.hasSimpleFieldClause(field, value);
@@ -108,6 +113,12 @@ var Query = /*#__PURE__*/function () {
108
113
  var ast = this.ast.removeOrFieldClauses(field);
109
114
  return new Query(ast, this.syntax);
110
115
  }
116
+ }, {
117
+ key: "removeAllClauses",
118
+ value: function removeAllClauses() {
119
+ var ast = this.ast.removeAllClauses();
120
+ return new Query(ast, this.syntax);
121
+ }
111
122
  }, {
112
123
  key: "hasIsClause",
113
124
  value: function hasIsClause(flag) {
@@ -136,6 +147,12 @@ var Query = /*#__PURE__*/function () {
136
147
  var ast = this.ast.removeIsClause(flag);
137
148
  return new Query(ast, this.syntax);
138
149
  }
150
+ }, {
151
+ key: "removeIsClauses",
152
+ value: function removeIsClauses() {
153
+ var ast = this.ast.removeIsClauses();
154
+ return new Query(ast, this.syntax);
155
+ }
139
156
  /**
140
157
  * Executes this query over the given iterable item and returns
141
158
  * an new array of all items that matched this query. Options:
@@ -437,6 +437,10 @@ EuiSearchBar.propTypes = {
437
437
  operator: _propTypes.default.oneOf(["eq", "exact", "gt", "gte", "lt", "lte"])
438
438
  }).isRequired).isRequired,
439
439
  available: _propTypes.default.func
440
+ }).isRequired, _propTypes.default.shape({
441
+ type: _propTypes.default.oneOf(["custom_component"]).isRequired,
442
+ component: _propTypes.default.elementType.isRequired,
443
+ available: _propTypes.default.func
440
444
  }).isRequired]).isRequired),
441
445
 
442
446
  /**
@@ -169,5 +169,9 @@ EuiSearchFilters.propTypes = {
169
169
  operator: _propTypes.default.oneOf(["eq", "exact", "gt", "gte", "lt", "lte"])
170
170
  }).isRequired).isRequired,
171
171
  available: _propTypes.default.func
172
+ }).isRequired, _propTypes.default.shape({
173
+ type: _propTypes.default.oneOf(["custom_component"]).isRequired,
174
+ component: _propTypes.default.elementType.isRequired,
175
+ available: _propTypes.default.func
172
176
  }).isRequired]).isRequired).isRequired
173
177
  };
@@ -189,10 +189,10 @@ export var EuiAccordionClass = /*#__PURE__*/function (_Component) {
189
189
 
190
190
  if (_arrowDisplay !== 'none') {
191
191
  iconButton = ___EmotionJSX(EuiButtonIcon, _extends({
192
- color: "text"
192
+ color: "text",
193
+ css: cssIconButtonStyles
193
194
  }, arrowProps, {
194
195
  className: iconButtonClasses,
195
- css: cssIconButtonStyles,
196
196
  iconType: "arrowRight",
197
197
  onClick: this.onToggle,
198
198
  "aria-controls": id,
@@ -228,10 +228,11 @@ export var EuiAccordionClass = /*#__PURE__*/function (_Component) {
228
228
  childrenContent = children;
229
229
  }
230
230
 
231
- var button = ___EmotionJSX(ButtonElement, _extends({}, buttonProps, {
231
+ var button = ___EmotionJSX(ButtonElement, _extends({
232
+ css: cssButtonStyles
233
+ }, buttonProps, {
232
234
  id: buttonId,
233
235
  className: buttonClasses,
234
- css: cssButtonStyles,
235
236
  "aria-controls": id,
236
237
  "aria-expanded": isOpen,
237
238
  onClick: isDisabled ? undefined : this.onToggle,
@@ -24,8 +24,9 @@ export var EuiHeaderSectionItem = function EuiHeaderSectionItem(_ref) {
24
24
  className = _ref.className,
25
25
  rest = _objectWithoutProperties(_ref, _excluded);
26
26
 
27
- var classes = classNames('euiHeaderSectionItem', borderToClassNameMap[border], className);
28
- return ___EmotionJSX("div", _extends({
27
+ var classes = classNames('euiHeaderSectionItem', borderToClassNameMap[border], className); // we check if there is any children and if not, we don't render anything
28
+
29
+ return children ? ___EmotionJSX("div", _extends({
29
30
  className: classes
30
- }, rest), children);
31
+ }, rest), children) : null;
31
32
  };
@@ -44,10 +44,10 @@ export var EuiImageWrapper = function EuiImageWrapper(_ref) {
44
44
  optionalCaptionText = _useInnerText2[1];
45
45
 
46
46
  return ___EmotionJSX("figure", _extends({
47
- "aria-label": optionalCaptionText
48
- }, wrapperProps, {
49
- className: classes,
47
+ "aria-label": optionalCaptionText,
50
48
  css: cssFigureStyles
49
+ }, wrapperProps, {
50
+ className: classes
51
51
  }), allowFullScreen ? ___EmotionJSX(React.Fragment, null, ___EmotionJSX(EuiImageButton, {
52
52
  hasAlt: !!alt,
53
53
  hasShadow: hasShadow,
@@ -54,7 +54,7 @@ export var EuiPageHeaderContent = function EuiPageHeaderContent(_ref) {
54
54
 
55
55
  var isResponsiveBreakpoint = useIsWithinBreakpoints(['xs', 's'], !!responsive);
56
56
  var useTheme = useEuiTheme();
57
- var classes = classNames('euiPageHeaderContent');
57
+ var classes = classNames('euiPageHeaderContent', className);
58
58
  var pageHeaderStyles = euiPageHeaderStyles(useTheme);
59
59
  var contentStyles = euiPageHeaderContentStyles(useTheme);
60
60
  var styles = setStyleForRestrictedPageWidth(restrictWidth, style);
@@ -42,12 +42,11 @@ export var EuiPageSection = function EuiPageSection(_ref) {
42
42
  var colors = useEuiBackgroundColorCSS();
43
43
  var cssStyles = [styles.euiPageSection, grow && styles.grow, inlinePadding[paddingSize], bottomBorder === 'extended' && styles.border, alignment && styles[alignment], colors[color]];
44
44
  var contentStyles = euiPageSectionContentStyles();
45
- var cssContentStyles = [contentStyles.euiPageSection__content, blockPadding[paddingSize], bottomBorder === true && styles.border, alignment.toLowerCase().includes('center') && contentStyles.center, restrictWidth && contentStyles.restrictWidth];
45
+ var cssContentStyles = [contentStyles.euiPageSection__content, blockPadding[paddingSize], bottomBorder === true && styles.border, alignment.toLowerCase().includes('center') && contentStyles.center, restrictWidth && contentStyles.restrictWidth, (contentProps === null || contentProps === void 0 ? void 0 : contentProps.css) && contentProps.css];
46
46
  return ___EmotionJSX(Component, _extends({
47
47
  css: cssStyles
48
- }, rest), ___EmotionJSX("div", _extends({
49
- css: cssContentStyles
50
- }, contentProps, {
48
+ }, rest), ___EmotionJSX("div", _extends({}, contentProps, {
49
+ css: cssContentStyles,
51
50
  style: widthStyles
52
51
  }), children));
53
52
  };
@@ -79,9 +79,9 @@ export var EuiProgress = function EuiProgress(_ref) {
79
79
  }, label && ___EmotionJSX(EuiInnerText, null, function (ref, innerText) {
80
80
  return ___EmotionJSX("span", _extends({
81
81
  title: innerText,
82
- ref: ref
82
+ ref: ref,
83
+ css: labelCssStyles
83
84
  }, labelProps, {
84
- css: labelCssStyles,
85
85
  className: labelClasses
86
86
  }), label);
87
87
  }), valueRender && ___EmotionJSX(EuiInnerText, null, function (ref, innerText) {