@elastic/eui 92.0.0 → 92.1.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 (156) hide show
  1. package/dist/eui_theme_dark.css +3 -18
  2. package/dist/eui_theme_dark.min.css +1 -1
  3. package/dist/eui_theme_light.css +3 -18
  4. package/dist/eui_theme_light.min.css +1 -1
  5. package/es/components/aspect_ratio/aspect_ratio.js +1 -1
  6. package/es/components/collapsible_nav_beta/collapsible_nav_body_footer.js +7 -3
  7. package/es/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +4 -4
  8. package/es/components/datagrid/body/{data_grid_cell.js → cell/data_grid_cell.js} +56 -209
  9. package/es/components/datagrid/body/{data_grid_cell_actions.js → cell/data_grid_cell_actions.js} +5 -5
  10. package/es/components/datagrid/body/{data_grid_cell_popover.js → cell/data_grid_cell_popover.js} +4 -4
  11. package/es/components/datagrid/body/{data_grid_cell_wrapper.js → cell/data_grid_cell_wrapper.js} +1 -1
  12. package/es/components/datagrid/body/cell/focus_utils.js +166 -0
  13. package/es/components/datagrid/body/cell/index.js +11 -0
  14. package/es/components/datagrid/body/data_grid_body.js +0 -2
  15. package/es/components/datagrid/body/data_grid_body_custom.js +1 -7
  16. package/es/components/datagrid/body/data_grid_body_virtualized.js +1 -7
  17. package/es/components/datagrid/body/footer/data_grid_footer_row.js +1 -2
  18. package/es/components/datagrid/body/header/data_grid_control_header_cell.js +3 -6
  19. package/es/components/datagrid/body/header/data_grid_header_cell.js +27 -12
  20. package/es/components/datagrid/body/header/data_grid_header_cell_wrapper.js +45 -116
  21. package/es/components/datagrid/body/header/data_grid_header_row.js +5 -10
  22. package/es/components/datagrid/body/header/use_data_grid_header.js +3 -14
  23. package/es/components/datagrid/data_grid.js +2 -12
  24. package/es/components/datagrid/utils/focus.js +25 -54
  25. package/es/components/datagrid/utils/scrolling.js +1 -1
  26. package/es/components/flyout/flyout_resizable.js +10 -10
  27. package/es/components/flyout/flyout_resizable.styles.js +12 -6
  28. package/es/components/resizable_container/helpers.js +5 -6
  29. package/es/components/resizable_container/resizable_button.js +13 -4
  30. package/es/components/resizable_container/resizable_button.styles.js +18 -8
  31. package/es/components/resizable_container/resizable_container.js +28 -22
  32. package/es/components/steps/step_number.styles.js +6 -7
  33. package/es/components/tree_view/tree_view.js +9 -2
  34. package/eui.d.ts +125 -90
  35. package/i18ntokens.json +108 -72
  36. package/lib/components/aspect_ratio/aspect_ratio.js +1 -1
  37. package/lib/components/collapsible_nav_beta/collapsible_nav_body_footer.js +7 -3
  38. package/lib/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +4 -4
  39. package/lib/components/datagrid/body/{data_grid_cell.js → cell/data_grid_cell.js} +56 -209
  40. package/lib/components/datagrid/body/{data_grid_cell_actions.js → cell/data_grid_cell_actions.js} +5 -5
  41. package/lib/components/datagrid/body/{data_grid_cell_popover.js → cell/data_grid_cell_popover.js} +4 -4
  42. package/lib/components/datagrid/body/{data_grid_cell_wrapper.js → cell/data_grid_cell_wrapper.js} +1 -1
  43. package/lib/components/datagrid/body/cell/focus_utils.js +174 -0
  44. package/lib/components/datagrid/body/cell/index.js +32 -0
  45. package/lib/components/datagrid/body/data_grid_body.js +0 -2
  46. package/lib/components/datagrid/body/data_grid_body_custom.js +2 -8
  47. package/lib/components/datagrid/body/data_grid_body_virtualized.js +2 -8
  48. package/lib/components/datagrid/body/footer/data_grid_footer_row.js +5 -6
  49. package/lib/components/datagrid/body/header/data_grid_control_header_cell.js +3 -6
  50. package/lib/components/datagrid/body/header/data_grid_header_cell.js +35 -20
  51. package/lib/components/datagrid/body/header/data_grid_header_cell_wrapper.js +47 -119
  52. package/lib/components/datagrid/body/header/data_grid_header_row.js +5 -10
  53. package/lib/components/datagrid/body/header/use_data_grid_header.js +10 -24
  54. package/lib/components/datagrid/data_grid.js +4 -14
  55. package/lib/components/datagrid/utils/focus.js +26 -56
  56. package/lib/components/datagrid/utils/scrolling.js +2 -2
  57. package/lib/components/flyout/flyout_resizable.js +10 -10
  58. package/lib/components/flyout/flyout_resizable.styles.js +12 -6
  59. package/lib/components/resizable_container/helpers.js +7 -7
  60. package/lib/components/resizable_container/resizable_button.js +13 -4
  61. package/lib/components/resizable_container/resizable_button.styles.js +18 -8
  62. package/lib/components/resizable_container/resizable_container.js +28 -22
  63. package/lib/components/steps/step_number.styles.js +6 -7
  64. package/lib/components/tree_view/tree_view.js +9 -2
  65. package/optimize/es/components/aspect_ratio/aspect_ratio.js +1 -1
  66. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_body_footer.js +7 -3
  67. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +4 -4
  68. package/optimize/es/components/datagrid/body/{data_grid_cell.js → cell/data_grid_cell.js} +56 -209
  69. package/optimize/es/components/datagrid/body/{data_grid_cell_actions.js → cell/data_grid_cell_actions.js} +5 -5
  70. package/optimize/es/components/datagrid/body/{data_grid_cell_popover.js → cell/data_grid_cell_popover.js} +4 -4
  71. package/optimize/es/components/datagrid/body/{data_grid_cell_wrapper.js → cell/data_grid_cell_wrapper.js} +1 -1
  72. package/optimize/es/components/datagrid/body/cell/focus_utils.js +153 -0
  73. package/optimize/es/components/datagrid/body/cell/index.js +11 -0
  74. package/optimize/es/components/datagrid/body/data_grid_body_custom.js +1 -5
  75. package/optimize/es/components/datagrid/body/data_grid_body_virtualized.js +1 -5
  76. package/optimize/es/components/datagrid/body/footer/data_grid_footer_row.js +1 -2
  77. package/optimize/es/components/datagrid/body/header/data_grid_control_header_cell.js +2 -4
  78. package/optimize/es/components/datagrid/body/header/data_grid_header_cell.js +25 -10
  79. package/optimize/es/components/datagrid/body/header/data_grid_header_cell_wrapper.js +41 -115
  80. package/optimize/es/components/datagrid/body/header/data_grid_header_row.js +4 -8
  81. package/optimize/es/components/datagrid/body/header/use_data_grid_header.js +3 -13
  82. package/optimize/es/components/datagrid/data_grid.js +2 -12
  83. package/optimize/es/components/datagrid/utils/focus.js +25 -54
  84. package/optimize/es/components/datagrid/utils/scrolling.js +1 -1
  85. package/optimize/es/components/flyout/flyout_resizable.js +10 -10
  86. package/optimize/es/components/flyout/flyout_resizable.styles.js +12 -6
  87. package/optimize/es/components/resizable_container/helpers.js +5 -6
  88. package/optimize/es/components/resizable_container/resizable_button.js +5 -2
  89. package/optimize/es/components/resizable_container/resizable_button.styles.js +18 -8
  90. package/optimize/es/components/resizable_container/resizable_container.js +28 -22
  91. package/optimize/es/components/steps/step_number.styles.js +6 -7
  92. package/optimize/es/components/tree_view/tree_view.js +9 -2
  93. package/optimize/lib/components/aspect_ratio/aspect_ratio.js +1 -1
  94. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_body_footer.js +7 -3
  95. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +4 -4
  96. package/optimize/lib/components/datagrid/body/{data_grid_cell.js → cell/data_grid_cell.js} +56 -209
  97. package/optimize/lib/components/datagrid/body/{data_grid_cell_actions.js → cell/data_grid_cell_actions.js} +5 -5
  98. package/optimize/lib/components/datagrid/body/{data_grid_cell_popover.js → cell/data_grid_cell_popover.js} +4 -4
  99. package/optimize/lib/components/datagrid/body/{data_grid_cell_wrapper.js → cell/data_grid_cell_wrapper.js} +1 -1
  100. package/optimize/lib/components/datagrid/body/cell/focus_utils.js +163 -0
  101. package/optimize/lib/components/datagrid/body/cell/index.js +32 -0
  102. package/optimize/lib/components/datagrid/body/data_grid_body_custom.js +2 -6
  103. package/optimize/lib/components/datagrid/body/data_grid_body_virtualized.js +2 -6
  104. package/optimize/lib/components/datagrid/body/footer/data_grid_footer_row.js +5 -6
  105. package/optimize/lib/components/datagrid/body/header/data_grid_control_header_cell.js +2 -4
  106. package/optimize/lib/components/datagrid/body/header/data_grid_header_cell.js +25 -10
  107. package/optimize/lib/components/datagrid/body/header/data_grid_header_cell_wrapper.js +41 -115
  108. package/optimize/lib/components/datagrid/body/header/data_grid_header_row.js +4 -8
  109. package/optimize/lib/components/datagrid/body/header/use_data_grid_header.js +4 -14
  110. package/optimize/lib/components/datagrid/data_grid.js +4 -14
  111. package/optimize/lib/components/datagrid/utils/focus.js +26 -56
  112. package/optimize/lib/components/datagrid/utils/scrolling.js +2 -2
  113. package/optimize/lib/components/flyout/flyout_resizable.js +10 -10
  114. package/optimize/lib/components/flyout/flyout_resizable.styles.js +12 -6
  115. package/optimize/lib/components/resizable_container/helpers.js +7 -7
  116. package/optimize/lib/components/resizable_container/resizable_button.js +5 -2
  117. package/optimize/lib/components/resizable_container/resizable_button.styles.js +18 -8
  118. package/optimize/lib/components/resizable_container/resizable_container.js +28 -22
  119. package/optimize/lib/components/steps/step_number.styles.js +6 -7
  120. package/optimize/lib/components/tree_view/tree_view.js +9 -2
  121. package/package.json +1 -1
  122. package/src/components/datagrid/body/header/_data_grid_header_row.scss +8 -7
  123. package/test-env/components/aspect_ratio/aspect_ratio.js +1 -1
  124. package/test-env/components/collapsible_nav_beta/collapsible_nav_body_footer.js +7 -3
  125. package/test-env/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +4 -4
  126. package/test-env/components/datagrid/body/{data_grid_cell.js → cell/data_grid_cell.js} +56 -209
  127. package/test-env/components/datagrid/body/{data_grid_cell_actions.js → cell/data_grid_cell_actions.js} +5 -5
  128. package/test-env/components/datagrid/body/{data_grid_cell_popover.js → cell/data_grid_cell_popover.js} +4 -4
  129. package/test-env/components/datagrid/body/{data_grid_cell_wrapper.js → cell/data_grid_cell_wrapper.js} +1 -1
  130. package/test-env/components/datagrid/body/cell/focus_utils.js +172 -0
  131. package/test-env/components/datagrid/body/cell/index.js +32 -0
  132. package/test-env/components/datagrid/body/data_grid_body.js +0 -2
  133. package/test-env/components/datagrid/body/data_grid_body_custom.js +2 -8
  134. package/test-env/components/datagrid/body/data_grid_body_virtualized.js +2 -8
  135. package/test-env/components/datagrid/body/footer/data_grid_footer_row.js +5 -6
  136. package/test-env/components/datagrid/body/header/data_grid_control_header_cell.js +3 -6
  137. package/test-env/components/datagrid/body/header/data_grid_header_cell.js +25 -10
  138. package/test-env/components/datagrid/body/header/data_grid_header_cell_wrapper.js +44 -116
  139. package/test-env/components/datagrid/body/header/data_grid_header_row.js +5 -10
  140. package/test-env/components/datagrid/body/header/use_data_grid_header.js +4 -14
  141. package/test-env/components/datagrid/data_grid.js +4 -14
  142. package/test-env/components/datagrid/utils/focus.js +26 -56
  143. package/test-env/components/datagrid/utils/scrolling.js +2 -2
  144. package/test-env/components/flyout/flyout_resizable.js +10 -10
  145. package/test-env/components/flyout/flyout_resizable.styles.js +12 -6
  146. package/test-env/components/resizable_container/helpers.js +7 -7
  147. package/test-env/components/resizable_container/resizable_button.js +13 -4
  148. package/test-env/components/resizable_container/resizable_button.styles.js +18 -8
  149. package/test-env/components/resizable_container/resizable_container.js +28 -22
  150. package/test-env/components/steps/step_number.styles.js +6 -7
  151. package/test-env/components/tree_view/tree_view.js +9 -2
  152. package/es/components/datagrid/body/header/header_is_interactive.js +0 -58
  153. package/lib/components/datagrid/body/header/header_is_interactive.js +0 -63
  154. package/optimize/es/components/datagrid/body/header/header_is_interactive.js +0 -53
  155. package/optimize/lib/components/datagrid/body/header/header_is_interactive.js +0 -61
  156. package/test-env/components/datagrid/body/header/header_is_interactive.js +0 -61
@@ -18,7 +18,7 @@ var _col_widths = require("../utils/col_widths");
18
18
  var _row_heights = require("../utils/row_heights");
19
19
  var _header = require("./header");
20
20
  var _footer = require("./footer");
21
- var _data_grid_cell_wrapper = require("./data_grid_cell_wrapper");
21
+ var _cell = require("./cell");
22
22
  var _react2 = require("@emotion/react");
23
23
  var _excluded = ["colIndex", "visibleRowIndex"];
24
24
  /*
@@ -45,8 +45,6 @@ var EuiDataGridBodyCustomRender = function EuiDataGridBodyCustomRender(_ref) {
45
45
  renderCellPopover = _ref.renderCellPopover,
46
46
  renderFooterCellValue = _ref.renderFooterCellValue,
47
47
  interactiveCellId = _ref.interactiveCellId,
48
- headerIsInteractive = _ref.headerIsInteractive,
49
- handleHeaderMutation = _ref.handleHeaderMutation,
50
48
  setVisibleColumns = _ref.setVisibleColumns,
51
49
  switchColumnPos = _ref.switchColumnPos,
52
50
  onColumnResize = _ref.onColumnResize,
@@ -92,8 +90,6 @@ var EuiDataGridBodyCustomRender = function EuiDataGridBodyCustomRender(_ref) {
92
90
  * Header & footer
93
91
  */
94
92
  var _useDataGridHeader = (0, _header.useDataGridHeader)({
95
- headerIsInteractive: headerIsInteractive,
96
- handleHeaderMutation: handleHeaderMutation,
97
93
  switchColumnPos: switchColumnPos,
98
94
  setVisibleColumns: setVisibleColumns,
99
95
  leadingControlColumns: leadingControlColumns,
@@ -153,7 +149,7 @@ var EuiDataGridBodyCustomRender = function EuiDataGridBodyCustomRender(_ref) {
153
149
  visibleRowIndex: visibleRowIndex,
154
150
  style: style
155
151
  }, cellProps);
156
- return (0, _react2.jsx)(_data_grid_cell_wrapper.Cell, (0, _extends2.default)({}, props, rest));
152
+ return (0, _react2.jsx)(_cell.Cell, (0, _extends2.default)({}, props, rest));
157
153
  }, [].concat((0, _toConsumableArray2.default)(Object.values(cellProps)), [getRowHeight]) // eslint-disable-line react-hooks/exhaustive-deps
158
154
  );
159
155
 
@@ -712,8 +708,6 @@ EuiDataGridBodyCustomRender.propTypes = {
712
708
  renderCustomGridBody: _propTypes.default.func,
713
709
  interactiveCellId: _propTypes.default.string.isRequired,
714
710
  pagination: _propTypes.default.any,
715
- headerIsInteractive: _propTypes.default.bool.isRequired,
716
- handleHeaderMutation: _propTypes.default.any.isRequired,
717
711
  setVisibleColumns: _propTypes.default.func.isRequired,
718
712
  switchColumnPos: _propTypes.default.func.isRequired,
719
713
  onColumnResize: _propTypes.default.func,
@@ -16,7 +16,7 @@ var _reactWindow = require("react-window");
16
16
  var _resize_observer = require("../../observer/resize_observer");
17
17
  var _header = require("./header");
18
18
  var _footer = require("./footer");
19
- var _data_grid_cell_wrapper = require("./data_grid_cell_wrapper");
19
+ var _cell = require("./cell");
20
20
  var _data_grid_row_manager = require("./data_grid_row_manager");
21
21
  var _grid_height_width = require("../utils/grid_height_width");
22
22
  var _col_widths = require("../utils/col_widths");
@@ -42,7 +42,7 @@ var _Cell = function _Cell(_ref) {
42
42
  data = _ref.data;
43
43
  var _useContext = (0, _react.useContext)(DataGridWrapperRowsContext),
44
44
  headerRowHeight = _useContext.headerRowHeight;
45
- return (0, _react2.jsx)(_data_grid_cell_wrapper.Cell, (0, _extends2.default)({
45
+ return (0, _react2.jsx)(_cell.Cell, (0, _extends2.default)({
46
46
  colIndex: columnIndex,
47
47
  visibleRowIndex: rowIndex,
48
48
  style: _objectSpread(_objectSpread({}, style), {}, {
@@ -98,8 +98,6 @@ var EuiDataGridBodyVirtualized = function EuiDataGridBodyVirtualized(_ref3) {
98
98
  renderFooterCellValue = _ref3.renderFooterCellValue,
99
99
  interactiveCellId = _ref3.interactiveCellId,
100
100
  pagination = _ref3.pagination,
101
- headerIsInteractive = _ref3.headerIsInteractive,
102
- handleHeaderMutation = _ref3.handleHeaderMutation,
103
101
  setVisibleColumns = _ref3.setVisibleColumns,
104
102
  switchColumnPos = _ref3.switchColumnPos,
105
103
  onColumnResize = _ref3.onColumnResize,
@@ -149,8 +147,6 @@ var EuiDataGridBodyVirtualized = function EuiDataGridBodyVirtualized(_ref3) {
149
147
  * Header & footer
150
148
  */
151
149
  var _useDataGridHeader = (0, _header.useDataGridHeader)({
152
- headerIsInteractive: headerIsInteractive,
153
- handleHeaderMutation: handleHeaderMutation,
154
150
  switchColumnPos: switchColumnPos,
155
151
  setVisibleColumns: setVisibleColumns,
156
152
  leadingControlColumns: leadingControlColumns,
@@ -850,8 +846,6 @@ EuiDataGridBodyVirtualized.propTypes = {
850
846
  renderCustomGridBody: _propTypes.default.func,
851
847
  interactiveCellId: _propTypes.default.string.isRequired,
852
848
  pagination: _propTypes.default.any,
853
- headerIsInteractive: _propTypes.default.bool.isRequired,
854
- handleHeaderMutation: _propTypes.default.any.isRequired,
855
849
  setVisibleColumns: _propTypes.default.func.isRequired,
856
850
  switchColumnPos: _propTypes.default.func.isRequired,
857
851
  onColumnResize: _propTypes.default.func,
@@ -10,8 +10,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
10
10
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
11
  var _classnames = _interopRequireDefault(require("classnames"));
12
12
  var _react = _interopRequireWildcard(require("react"));
13
- var _data_grid_cell = require("../data_grid_cell");
14
- var _data_grid_cell_popover = require("../data_grid_cell_popover");
13
+ var _cell = require("../cell");
15
14
  var _react2 = require("@emotion/react");
16
15
  var _excluded = ["leadingControlColumns", "trailingControlColumns", "columns", "schema", "columnWidths", "defaultColumnWidth", "className", "renderCellValue", "renderCellPopover", "rowIndex", "interactiveCellId", "data-test-subj", "visibleRowIndex"];
17
16
  /*
@@ -46,7 +45,7 @@ var EuiDataGridFooterRow = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _reac
46
45
  'euiDataGridRow--striped': visibleRowIndex % 2 !== 0
47
46
  }, 'euiDataGridFooter', className);
48
47
  var dataTestSubj = (0, _classnames.default)('dataGridRow', 'dataGridFooterRow', _dataTestSubj);
49
- var popoverContext = (0, _react.useContext)(_data_grid_cell_popover.DataGridCellPopoverContext);
48
+ var popoverContext = (0, _react.useContext)(_cell.DataGridCellPopoverContext);
50
49
  var sharedCellProps = {
51
50
  rowIndex: rowIndex,
52
51
  visibleRowIndex: visibleRowIndex,
@@ -63,7 +62,7 @@ var EuiDataGridFooterRow = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _reac
63
62
  width = _ref2.width,
64
63
  footerCellRender = _ref2.footerCellRender,
65
64
  footerCellProps = _ref2.footerCellProps;
66
- return (0, _react2.jsx)(_data_grid_cell.EuiDataGridCell, (0, _extends2.default)({}, footerCellProps, sharedCellProps, {
65
+ return (0, _react2.jsx)(_cell.EuiDataGridCell, (0, _extends2.default)({}, footerCellProps, sharedCellProps, {
67
66
  key: "".concat(id, "-").concat(rowIndex),
68
67
  colIndex: i,
69
68
  columnId: id,
@@ -77,7 +76,7 @@ var EuiDataGridFooterRow = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _reac
77
76
  var columnType = schema[id] ? schema[id].columnType : null;
78
77
  var width = columnWidths[id] || defaultColumnWidth;
79
78
  var columnPosition = i + leadingControlColumns.length;
80
- return (0, _react2.jsx)(_data_grid_cell.EuiDataGridCell, (0, _extends2.default)({}, sharedCellProps, {
79
+ return (0, _react2.jsx)(_cell.EuiDataGridCell, (0, _extends2.default)({}, sharedCellProps, {
81
80
  key: "".concat(columnPosition, ",").concat(visibleRowIndex) // Note: this key should use cell position to match react-window/data cell behavior. See #5720
82
81
  ,
83
82
  colIndex: columnPosition,
@@ -95,7 +94,7 @@ var EuiDataGridFooterRow = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _reac
95
94
  footerCellRender = _ref4.footerCellRender,
96
95
  footerCellProps = _ref4.footerCellProps;
97
96
  var colIndex = i + columns.length + leadingControlColumns.length;
98
- return (0, _react2.jsx)(_data_grid_cell.EuiDataGridCell, (0, _extends2.default)({}, footerCellProps, sharedCellProps, {
97
+ return (0, _react2.jsx)(_cell.EuiDataGridCell, (0, _extends2.default)({}, footerCellProps, sharedCellProps, {
99
98
  key: "".concat(id, "-").concat(rowIndex),
100
99
  colIndex: colIndex,
101
100
  columnId: id,
@@ -21,8 +21,7 @@ var _react2 = require("@emotion/react");
21
21
 
22
22
  var EuiDataGridControlHeaderCell = function EuiDataGridControlHeaderCell(_ref) {
23
23
  var controlColumn = _ref.controlColumn,
24
- index = _ref.index,
25
- headerIsInteractive = _ref.headerIsInteractive;
24
+ index = _ref.index;
26
25
  var HeaderCellRender = controlColumn.headerCellRender,
27
26
  headerCellProps = controlColumn.headerCellProps,
28
27
  width = controlColumn.width,
@@ -31,8 +30,7 @@ var EuiDataGridControlHeaderCell = function EuiDataGridControlHeaderCell(_ref) {
31
30
  className: (0, _classnames.default)('euiDataGridHeaderCell--controlColumn', headerCellProps === null || headerCellProps === void 0 ? void 0 : headerCellProps.className),
32
31
  id: id,
33
32
  index: index,
34
- width: width,
35
- headerIsInteractive: headerIsInteractive
33
+ width: width
36
34
  }), (0, _react2.jsx)("div", {
37
35
  className: "euiDataGridHeaderCell__content"
38
36
  }, (0, _react2.jsx)(HeaderCellRender, null)));
@@ -69,6 +67,5 @@ EuiDataGridControlHeaderCell.propTypes = {
69
67
  * Optional props to pass to the column footer cell
70
68
  */
71
69
  footerCellProps: _propTypes.default.any
72
- }).isRequired,
73
- headerIsInteractive: _propTypes.default.bool.isRequired
70
+ }).isRequired
74
71
  };
@@ -7,8 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.useSortingUtils = exports.usePopoverArrowNavigation = exports.EuiDataGridHeaderCell = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12
12
  var _classnames2 = _interopRequireDefault(require("classnames"));
13
13
  var _propTypes = _interopRequireDefault(require("prop-types"));
14
14
  var _react = _interopRequireWildcard(require("react"));
@@ -44,6 +44,7 @@ var _ref2 = process.env.NODE_ENV === "production" ? {
44
44
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
45
45
  };
46
46
  var EuiDataGridHeaderCell = function EuiDataGridHeaderCell(_ref) {
47
+ var _classnames;
47
48
  var column = _ref.column,
48
49
  index = _ref.index,
49
50
  columns = _ref.columns,
@@ -53,15 +54,13 @@ var EuiDataGridHeaderCell = function EuiDataGridHeaderCell(_ref) {
53
54
  defaultColumnWidth = _ref.defaultColumnWidth,
54
55
  setColumnWidth = _ref.setColumnWidth,
55
56
  setVisibleColumns = _ref.setVisibleColumns,
56
- switchColumnPos = _ref.switchColumnPos,
57
- headerIsInteractive = _ref.headerIsInteractive;
57
+ switchColumnPos = _ref.switchColumnPos;
58
58
  var id = column.id,
59
59
  display = column.display,
60
60
  displayAsText = column.displayAsText,
61
61
  displayHeaderCellProps = column.displayHeaderCellProps;
62
62
  var width = columnWidths[id] || defaultColumnWidth;
63
63
  var columnType = schema[id] ? schema[id].columnType : null;
64
- var classes = (0, _classnames2.default)((0, _defineProperty2.default)({}, "euiDataGridHeaderCell--".concat(columnType), columnType), displayHeaderCellProps === null || displayHeaderCellProps === void 0 ? void 0 : displayHeaderCellProps.className);
65
64
  var _useContext = (0, _react.useContext)(_focus.DataGridFocusContext),
66
65
  setFocusedCell = _useContext.setFocusedCell,
67
66
  focusFirstVisibleInteractiveCell = _useContext.focusFirstVisibleInteractiveCell;
@@ -86,6 +85,14 @@ var EuiDataGridHeaderCell = function EuiDataGridHeaderCell(_ref) {
86
85
  });
87
86
  var showColumnActions = columnActions && columnActions.length > 0;
88
87
  var actionsButtonRef = (0, _react.useRef)(null);
88
+ var focusActionsButton = (0, _react.useCallback)(function () {
89
+ var _actionsButtonRef$cur;
90
+ (_actionsButtonRef$cur = actionsButtonRef.current) === null || _actionsButtonRef$cur === void 0 ? void 0 : _actionsButtonRef$cur.focus();
91
+ }, []);
92
+ var _useState3 = (0, _react.useState)(false),
93
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
94
+ isActionsButtonFocused = _useState4[0],
95
+ setIsActionsButtonFocused = _useState4[1];
89
96
  var _useSortingUtils = useSortingUtils({
90
97
  sorting: sorting,
91
98
  id: id,
@@ -106,13 +113,16 @@ var EuiDataGridHeaderCell = function EuiDataGridHeaderCell(_ref) {
106
113
  title: displayAsText || id,
107
114
  className: "euiDataGridHeaderCell__content"
108
115
  }, display || displayAsText || id), sortingArrow);
116
+ var classes = (0, _classnames2.default)((_classnames = {}, (0, _defineProperty2.default)(_classnames, "euiDataGridHeaderCell--".concat(columnType), columnType), (0, _defineProperty2.default)(_classnames, 'euiDataGridHeaderCell--hasColumnActions', showColumnActions), (0, _defineProperty2.default)(_classnames, 'euiDataGridHeaderCell--isActionsPopoverOpen', isPopoverOpen), _classnames), displayHeaderCellProps === null || displayHeaderCellProps === void 0 ? void 0 : displayHeaderCellProps.className);
109
117
  return (0, _react2.jsx)(_data_grid_header_cell_wrapper.EuiDataGridHeaderCellWrapper, (0, _extends2.default)({}, displayHeaderCellProps, {
110
118
  className: classes,
111
119
  id: id,
112
120
  index: index,
113
121
  width: width,
114
- headerIsInteractive: headerIsInteractive,
115
- "aria-sort": ariaSort
122
+ "aria-sort": ariaSort,
123
+ hasActionsPopover: showColumnActions,
124
+ isActionsButtonFocused: isActionsButtonFocused,
125
+ focusActionsButton: focusActionsButton
116
126
  }), column.isResizable !== false && width != null ? (0, _react2.jsx)(_data_grid_column_resizer.EuiDataGridColumnResizer, {
117
127
  columnId: id,
118
128
  columnWidth: width,
@@ -120,11 +130,16 @@ var EuiDataGridHeaderCell = function EuiDataGridHeaderCell(_ref) {
120
130
  }) : null, !showColumnActions ? (0, _react2.jsx)(_react.default.Fragment, null, cellContent, sortingScreenReaderText && (0, _react2.jsx)(_accessibility2.EuiScreenReaderOnly, null, (0, _react2.jsx)("p", null, sortingScreenReaderText))) : (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("button", {
121
131
  className: "euiDataGridHeaderCell__button",
122
132
  onClick: function onClick() {
123
- setFocusedCell([index, -1]);
124
- setIsPopoverOpen(function (isPopoverOpen) {
133
+ return setIsPopoverOpen(function (isPopoverOpen) {
125
134
  return !isPopoverOpen;
126
135
  });
127
136
  },
137
+ onFocus: function onFocus() {
138
+ return setIsActionsButtonFocused(true);
139
+ },
140
+ onBlur: function onBlur() {
141
+ return setIsActionsButtonFocused(false);
142
+ },
128
143
  "aria-describedby": "".concat(sortingAriaId, " ").concat(actionsAriaId),
129
144
  ref: actionsButtonRef,
130
145
  "data-test-subj": "dataGridHeaderCellActionButton-".concat(id)
@@ -138,8 +153,8 @@ var EuiDataGridHeaderCell = function EuiDataGridHeaderCell(_ref) {
138
153
  focusTrapProps: {
139
154
  // We need to override the default EuiPopover `onClickOutside` since the anchor is separate from the actual button
140
155
  onClickOutside: function onClickOutside(event) {
141
- var _actionsButtonRef$cur;
142
- if (((_actionsButtonRef$cur = actionsButtonRef.current) === null || _actionsButtonRef$cur === void 0 ? void 0 : _actionsButtonRef$cur.contains(event.target)) === false) {
156
+ var _actionsButtonRef$cur2;
157
+ if (((_actionsButtonRef$cur2 = actionsButtonRef.current) === null || _actionsButtonRef$cur2 === void 0 ? void 0 : _actionsButtonRef$cur2.contains(event.target)) === false) {
143
158
  setIsPopoverOpen(false);
144
159
  }
145
160
  }
@@ -12,11 +12,10 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
12
12
  var _classnames = _interopRequireDefault(require("classnames"));
13
13
  var _propTypes = _interopRequireDefault(require("prop-types"));
14
14
  var _react = _interopRequireWildcard(require("react"));
15
- var _tabbable = require("tabbable");
16
- var _services = require("../../../../services");
17
15
  var _focus = require("../../utils/focus");
16
+ var _focus_utils = require("../cell/focus_utils");
18
17
  var _react2 = require("@emotion/react");
19
- var _excluded = ["id", "index", "headerIsInteractive", "width", "className", "children"];
18
+ var _excluded = ["id", "index", "width", "className", "children", "hasActionsPopover", "isActionsButtonFocused", "focusActionsButton"];
20
19
  /*
21
20
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
22
21
  * or more contributor license agreements. Licensed under the Elastic License
@@ -24,120 +23,66 @@ var _excluded = ["id", "index", "headerIsInteractive", "width", "className", "ch
24
23
  * in compliance with, at your election, the Elastic License 2.0 or the Server
25
24
  * Side Public License, v 1.
26
25
  */
27
- 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); }
28
- 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; }
29
26
  /**
30
27
  * This is a wrapper that handles repeated concerns between control &
31
28
  * standard header cells. Most of its shared logic is around focus state/UX,
32
29
  * but it also DRY's out certain class/data-test-subj/style attributes
33
30
  */
31
+ 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); }
32
+ 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; }
34
33
  var EuiDataGridHeaderCellWrapper = function EuiDataGridHeaderCellWrapper(_ref) {
35
34
  var id = _ref.id,
36
35
  index = _ref.index,
37
- headerIsInteractive = _ref.headerIsInteractive,
38
36
  width = _ref.width,
39
37
  className = _ref.className,
40
38
  children = _ref.children,
39
+ hasActionsPopover = _ref.hasActionsPopover,
40
+ isActionsButtonFocused = _ref.isActionsButtonFocused,
41
+ focusActionsButton = _ref.focusActionsButton,
41
42
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
42
43
  var classes = (0, _classnames.default)('euiDataGridHeaderCell', className);
44
+
45
+ // Must be a state and not a ref to trigger a HandleInteractiveChildren rerender
46
+ var _useState = (0, _react.useState)(null),
47
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
48
+ headerEl = _useState2[0],
49
+ setHeaderEl = _useState2[1];
43
50
  var _useContext = (0, _react.useContext)(_focus.DataGridFocusContext),
44
51
  setFocusedCell = _useContext.setFocusedCell,
45
52
  onFocusUpdate = _useContext.onFocusUpdate;
46
- var _useState = (0, _react.useState)(false),
47
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
48
- isFocused = _useState2[0],
49
- setIsFocused = _useState2[1];
53
+ var updateCellFocusContext = (0, _react.useCallback)(function () {
54
+ setFocusedCell([index, -1]);
55
+ }, [index, setFocusedCell]);
56
+ var _useState3 = (0, _react.useState)(false),
57
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
58
+ isFocused = _useState4[0],
59
+ setIsFocused = _useState4[1];
50
60
  (0, _react.useEffect)(function () {
51
61
  onFocusUpdate([index, -1], function (isFocused) {
52
62
  setIsFocused(isFocused);
53
63
  });
54
64
  }, [index, onFocusUpdate]);
55
- var headerRef = (0, _react.useRef)(null);
56
- var _useState3 = (0, _react.useState)(false),
57
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
58
- isCellEntered = _useState4[0],
59
- setIsCellEntered = _useState4[1];
60
65
  (0, _react.useEffect)(function () {
61
- var headerNode = headerRef.current;
62
- if (isCellEntered) {
63
- enableAndFocusInteractives(headerNode);
64
- } else {
65
- disableInteractives(headerNode);
66
- }
67
- }, [isCellEntered]);
68
- (0, _react.useEffect)(function () {
69
- var headerNode = headerRef.current;
70
- if (isFocused) {
71
- var interactives = headerNode.querySelectorAll('[data-euigrid-tab-managed]');
72
- if (interactives.length === 1) {
73
- setIsCellEntered(true);
74
- } else {
75
- headerNode.focus();
66
+ if (isFocused && headerEl) {
67
+ // Only focus the cell if not already focused on something in the cell
68
+ if (!headerEl.contains(document.activeElement)) {
69
+ headerEl.focus();
76
70
  }
77
- } else {
78
- setIsCellEntered(false);
79
71
  }
72
+ }, [isFocused, headerEl]);
80
73
 
81
- // focusin bubbles while focus does not, and this needs to react to children gaining focus
82
- var onFocusIn = function onFocusIn(e) {
83
- if (!headerIsInteractive) {
84
- // header is not interactive, avoid focusing
85
- requestAnimationFrame(function () {
86
- return headerNode.blur();
87
- });
88
- e.preventDefault();
89
- return false;
90
- } else {
91
- // take the focus
92
- if (isFocused === false) {
93
- setFocusedCell([index, -1]);
94
- } else {
95
- // this cell already had the grid's focus, so re-enable and focus interactives
96
- setIsCellEntered(true);
97
- }
98
- }
99
- };
100
-
101
- // focusout bubbles while blur does not, and this needs to react to the children losing focus
102
- var onFocusOut = function onFocusOut() {
103
- // wait for the next element to receive focus, then update interactives' state
104
- requestAnimationFrame(function () {
105
- if (!headerNode.contains(document.activeElement)) {
106
- setIsCellEntered(false);
107
- }
108
- });
109
- };
110
- var onKeyUp = function onKeyUp(event) {
111
- switch (event.key) {
112
- case _services.keys.ENTER:
113
- {
114
- event.preventDefault();
115
- setIsCellEntered(true);
116
- break;
117
- }
118
- case _services.keys.ESCAPE:
119
- {
120
- event.preventDefault();
121
- // move focus to cell
122
- setIsCellEntered(false);
123
- headerNode.focus();
124
- break;
125
- }
126
- }
127
- };
128
- headerNode.addEventListener('focusin', onFocusIn);
129
- headerNode.addEventListener('focusout', onFocusOut);
130
- headerNode.addEventListener('keyup', onKeyUp);
131
- return function () {
132
- headerNode.removeEventListener('focusin', onFocusIn);
133
- headerNode.removeEventListener('focusout', onFocusOut);
134
- headerNode.removeEventListener('keyup', onKeyUp);
135
- };
136
- }, [headerIsInteractive, isFocused, index, setFocusedCell]);
74
+ // For cell headers with actions, auto-focus into the button instead of the cell wrapper div
75
+ // The button text is significantly more useful to screen readers (e.g. contains sort order & hints)
76
+ var onFocus = (0, _react.useCallback)(function (e) {
77
+ if (hasActionsPopover && e.target === headerEl) {
78
+ focusActionsButton === null || focusActionsButton === void 0 ? void 0 : focusActionsButton();
79
+ }
80
+ }, [hasActionsPopover, focusActionsButton, headerEl]);
137
81
  return (0, _react2.jsx)("div", (0, _extends2.default)({
138
82
  role: "columnheader",
139
- ref: headerRef,
140
- tabIndex: isFocused && !isCellEntered ? 0 : -1,
83
+ ref: setHeaderEl,
84
+ tabIndex: isFocused && !isActionsButtonFocused ? 0 : -1,
85
+ onFocus: onFocus,
141
86
  className: classes,
142
87
  "data-test-subj": "dataGridHeaderCell-".concat(id),
143
88
  "data-gridcell-column-id": id,
@@ -147,36 +92,19 @@ var EuiDataGridHeaderCellWrapper = function EuiDataGridHeaderCellWrapper(_ref) {
147
92
  style: width != null ? {
148
93
  width: "".concat(width, "px")
149
94
  } : {}
150
- }, rest), children);
95
+ }, rest), (0, _react2.jsx)(_focus_utils.HandleInteractiveChildren, {
96
+ cellEl: headerEl,
97
+ updateCellFocusContext: updateCellFocusContext,
98
+ renderFocusTrap: !hasActionsPopover
99
+ }, children));
151
100
  };
152
-
153
- /**
154
- * Utility fns for managing child interactive tabIndex state
155
- */
156
101
  exports.EuiDataGridHeaderCellWrapper = EuiDataGridHeaderCellWrapper;
157
102
  EuiDataGridHeaderCellWrapper.propTypes = {
158
103
  id: _propTypes.default.string.isRequired,
159
104
  index: _propTypes.default.number.isRequired,
160
- headerIsInteractive: _propTypes.default.bool.isRequired,
161
105
  width: _propTypes.default.oneOfType([_propTypes.default.number.isRequired, _propTypes.default.oneOf([null])]),
162
- className: _propTypes.default.string
163
- };
164
- var disableInteractives = function disableInteractives(headerNode) {
165
- var tabbables = (0, _tabbable.tabbable)(headerNode);
166
- if (tabbables.length > 1) {
167
- console.warn("EuiDataGridHeaderCell expects at most 1 tabbable element, ".concat(tabbables.length, " found instead"));
168
- }
169
- tabbables.forEach(function (element) {
170
- element.setAttribute('data-euigrid-tab-managed', 'true');
171
- element.setAttribute('tabIndex', '-1');
172
- });
173
- };
174
- var enableAndFocusInteractives = function enableAndFocusInteractives(headerNode) {
175
- var interactiveElements = headerNode.querySelectorAll('[data-euigrid-tab-managed]');
176
- interactiveElements.forEach(function (element, i) {
177
- element.setAttribute('tabIndex', '0');
178
- if (i === 0) {
179
- element.focus();
180
- }
181
- });
106
+ className: _propTypes.default.string,
107
+ hasActionsPopover: _propTypes.default.bool,
108
+ isActionsButtonFocused: _propTypes.default.bool,
109
+ focusActionsButton: _propTypes.default.func
182
110
  };
@@ -15,7 +15,7 @@ var _data_grid_control_header_cell = require("./data_grid_control_header_cell");
15
15
  var _data_grid_header_cell = require("./data_grid_header_cell");
16
16
  var _data_grid_types = require("../../data_grid_types");
17
17
  var _react2 = require("@emotion/react");
18
- var _excluded = ["leadingControlColumns", "trailingControlColumns", "columns", "schema", "schemaDetectors", "columnWidths", "defaultColumnWidth", "className", "setColumnWidth", "setVisibleColumns", "switchColumnPos", "headerIsInteractive", "data-test-subj"];
18
+ var _excluded = ["leadingControlColumns", "trailingControlColumns", "columns", "schema", "schemaDetectors", "columnWidths", "defaultColumnWidth", "className", "setColumnWidth", "setVisibleColumns", "switchColumnPos", "data-test-subj"];
19
19
  /*
20
20
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
21
21
  * or more contributor license agreements. Licensed under the Elastic License
@@ -39,7 +39,6 @@ var EuiDataGridHeaderRow = /*#__PURE__*/(0, _react.forwardRef)(function (props,
39
39
  setColumnWidth = props.setColumnWidth,
40
40
  setVisibleColumns = props.setVisibleColumns,
41
41
  switchColumnPos = props.switchColumnPos,
42
- headerIsInteractive = props.headerIsInteractive,
43
42
  _dataTestSubj = props['data-test-subj'],
44
43
  rest = (0, _objectWithoutProperties2.default)(props, _excluded);
45
44
  var classes = (0, _classnames.default)('euiDataGridHeader', className);
@@ -53,8 +52,7 @@ var EuiDataGridHeaderRow = /*#__PURE__*/(0, _react.forwardRef)(function (props,
53
52
  return (0, _react2.jsx)(_data_grid_control_header_cell.EuiDataGridControlHeaderCell, {
54
53
  key: controlColumn.id,
55
54
  index: index,
56
- controlColumn: controlColumn,
57
- headerIsInteractive: headerIsInteractive
55
+ controlColumn: controlColumn
58
56
  });
59
57
  }), columns.map(function (column, index) {
60
58
  return (0, _react2.jsx)(_data_grid_header_cell.EuiDataGridHeaderCell, {
@@ -68,15 +66,13 @@ var EuiDataGridHeaderRow = /*#__PURE__*/(0, _react.forwardRef)(function (props,
68
66
  setColumnWidth: setColumnWidth,
69
67
  setVisibleColumns: setVisibleColumns,
70
68
  switchColumnPos: switchColumnPos,
71
- defaultColumnWidth: defaultColumnWidth,
72
- headerIsInteractive: headerIsInteractive
69
+ defaultColumnWidth: defaultColumnWidth
73
70
  });
74
71
  }), trailingControlColumns.map(function (controlColumn, index) {
75
72
  return (0, _react2.jsx)(_data_grid_control_header_cell.EuiDataGridControlHeaderCell, {
76
73
  key: controlColumn.id,
77
74
  index: index + leadingControlColumns.length + columns.length,
78
- controlColumn: controlColumn,
79
- headerIsInteractive: headerIsInteractive
75
+ controlColumn: controlColumn
80
76
  });
81
77
  }));
82
78
  });
@@ -616,7 +612,6 @@ EuiDataGridHeaderRow.propTypes = {
616
612
  defaultColumnWidth: _propTypes.default.oneOfType([_propTypes.default.number.isRequired, _propTypes.default.oneOf([null])]),
617
613
  setColumnWidth: _propTypes.default.func.isRequired,
618
614
  setVisibleColumns: _propTypes.default.func.isRequired,
619
- switchColumnPos: _propTypes.default.func.isRequired,
620
- headerIsInteractive: _propTypes.default.bool.isRequired
615
+ switchColumnPos: _propTypes.default.func.isRequired
621
616
  };
622
617
  EuiDataGridHeaderRow.displayName = 'EuiDataGridHeaderRow';
@@ -8,14 +8,12 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.useDataGridHeader = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
12
11
  var _react = _interopRequireWildcard(require("react"));
13
- var _mutation_observer = require("../../../observer/mutation_observer");
14
12
  var _resize_observer = require("../../../observer/resize_observer");
15
- var _focus = require("../../utils/focus");
16
13
  var _data_grid_header_row = require("./data_grid_header_row");
17
14
  var _react2 = require("@emotion/react");
18
- var _excluded = ["handleHeaderMutation"];
15
+ 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); }
16
+ 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; }
19
17
  /*
20
18
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
21
19
  * or more contributor license agreements. Licensed under the Elastic License
@@ -23,22 +21,15 @@ var _excluded = ["handleHeaderMutation"];
23
21
  * in compliance with, at your election, the Elastic License 2.0 or the Server
24
22
  * Side Public License, v 1.
25
23
  */
26
- 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); }
27
- 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; }
24
+
28
25
  /**
29
26
  * DRY out setting up the grid header and its refs & observers
30
27
  */
31
- var useDataGridHeader = function useDataGridHeader(_ref) {
32
- var handleHeaderMutation = _ref.handleHeaderMutation,
33
- props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
28
+ var useDataGridHeader = function useDataGridHeader(props) {
34
29
  var _useState = (0, _react.useState)(null),
35
30
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
36
31
  headerRowRef = _useState2[0],
37
32
  setHeaderRowRef = _useState2[1];
38
- (0, _mutation_observer.useMutationObserver)(headerRowRef, handleHeaderMutation, {
39
- subtree: true,
40
- childList: true
41
- });
42
33
  var _useResizeObserver = (0, _resize_observer.useResizeObserver)(headerRowRef, 'height'),
43
34
  headerRowHeight = _useResizeObserver.height;
44
35
  var headerRow = (0, _react.useMemo)(function () {
@@ -47,7 +38,6 @@ var useDataGridHeader = function useDataGridHeader(_ref) {
47
38
  }, props));
48
39
  }, Object.values(props)); // eslint-disable-line react-hooks/exhaustive-deps
49
40
 
50
- (0, _focus.useHeaderFocusWorkaround)(props.headerIsInteractive);
51
41
  return {
52
42
  headerRow: headerRow,
53
43
  headerRowHeight: headerRowHeight
@@ -24,8 +24,7 @@ var _controls = require("./controls");
24
24
  var _sorting = require("./utils/sorting");
25
25
  var _focus = require("./utils/focus");
26
26
  var _in_memory = require("./utils/in_memory");
27
- var _header_is_interactive = require("./body/header/header_is_interactive");
28
- var _data_grid_cell_popover = require("./body/data_grid_cell_popover");
27
+ var _cell = require("./body/cell");
29
28
  var _row_count = require("./utils/row_count");
30
29
  var _data_grid_pagination = require("./utils/data_grid_pagination");
31
30
  var _data_grid_schema = require("./utils/data_grid_schema");
@@ -207,20 +206,14 @@ var EuiDataGrid = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _react.forward
207
206
  /**
208
207
  * Focus
209
208
  */
210
- var _useHeaderIsInteracti = (0, _header_is_interactive.useHeaderIsInteractive)(contentRef.current),
211
- headerIsInteractive = _useHeaderIsInteracti.headerIsInteractive,
212
- handleHeaderMutation = _useHeaderIsInteracti.handleHeaderMutation;
213
- var _useFocus = (0, _focus.useFocus)({
214
- headerIsInteractive: headerIsInteractive,
215
- gridItemsRendered: gridItemsRendered
216
- }),
209
+ var _useFocus = (0, _focus.useFocus)(),
217
210
  wrappingDivFocusProps = _useFocus.focusProps,
218
211
  focusContext = (0, _objectWithoutProperties2.default)(_useFocus, _excluded2);
219
212
 
220
213
  /**
221
214
  * Cell popover
222
215
  */
223
- var _useCellPopover = (0, _data_grid_cell_popover.useCellPopover)(),
216
+ var _useCellPopover = (0, _cell.useCellPopover)(),
224
217
  cellPopoverContext = _useCellPopover.cellPopoverContext,
225
218
  cellPopover = _useCellPopover.cellPopover;
226
219
 
@@ -294,7 +287,7 @@ var EuiDataGrid = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _react.forward
294
287
  }
295
288
  return (0, _react2.jsx)(_focus.DataGridFocusContext.Provider, {
296
289
  value: focusContext
297
- }, (0, _react2.jsx)(_data_grid_cell_popover.DataGridCellPopoverContext.Provider, {
290
+ }, (0, _react2.jsx)(_cell.DataGridCellPopoverContext.Provider, {
298
291
  value: cellPopoverContext
299
292
  }, (0, _react2.jsx)(_sorting.DataGridSortingContext.Provider, {
300
293
  value: sortingContext
@@ -341,7 +334,6 @@ var EuiDataGrid = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _react.forward
341
334
  rowCount: rowCount,
342
335
  pagination: pagination,
343
336
  hasFooter: !!renderFooterCellValue,
344
- headerIsInteractive: headerIsInteractive,
345
337
  focusContext: focusContext
346
338
  }),
347
339
  "data-test-subj": "euiDataGridBody",
@@ -358,8 +350,6 @@ var EuiDataGrid = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _react.forward
358
350
  setVisibleColumns: setVisibleColumns,
359
351
  switchColumnPos: switchColumnPos,
360
352
  onColumnResize: onColumnResize,
361
- headerIsInteractive: headerIsInteractive,
362
- handleHeaderMutation: handleHeaderMutation,
363
353
  schemaDetectors: allSchemaDetectors,
364
354
  pagination: pagination,
365
355
  renderCellValue: renderCellValue,