@elastic/eui 76.0.2 → 76.2.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 (107) hide show
  1. package/dist/eui_theme_dark.css +37 -6
  2. package/dist/eui_theme_dark.min.css +1 -1
  3. package/dist/eui_theme_light.css +37 -6
  4. package/dist/eui_theme_light.min.css +1 -1
  5. package/es/components/color_picker/color_palette_picker/color_palette_picker.js +5 -6
  6. package/es/components/datagrid/body/data_grid_body.js +19 -395
  7. package/es/components/datagrid/body/data_grid_body_custom.js +908 -0
  8. package/es/components/datagrid/body/data_grid_body_virtualized.js +1031 -0
  9. package/es/components/datagrid/body/data_grid_cell.js +16 -12
  10. package/es/components/datagrid/body/data_grid_cell_popover.js +32 -12
  11. package/es/components/datagrid/body/data_grid_cell_wrapper.js +132 -0
  12. package/es/components/datagrid/body/header/data_grid_header_row.js +3 -2
  13. package/es/components/datagrid/data_grid.js +21 -5
  14. package/es/components/datagrid/data_grid_types.js +18 -1
  15. package/es/components/datagrid/utils/row_heights.js +111 -31
  16. package/es/components/date_picker/auto_refresh/auto_refresh.js +2 -1
  17. package/es/components/form/range/dual_range.js +14 -7
  18. package/es/components/form/range/range.js +10 -3
  19. package/es/components/form/super_select/super_select.js +21 -18
  20. package/es/components/form/super_select/super_select_control.js +7 -14
  21. package/es/components/selectable/selectable.js +59 -36
  22. package/es/components/selectable/selectable_list/selectable_list.js +1 -1
  23. package/es/components/suggest/suggest.js +3 -10
  24. package/eui.d.ts +253 -146
  25. package/i18ntokens.json +89 -57
  26. package/lib/components/color_picker/color_palette_picker/color_palette_picker.js +5 -6
  27. package/lib/components/datagrid/body/data_grid_body.js +19 -416
  28. package/lib/components/datagrid/body/data_grid_body_custom.js +927 -0
  29. package/lib/components/datagrid/body/data_grid_body_virtualized.js +1059 -0
  30. package/lib/components/datagrid/body/data_grid_cell.js +16 -12
  31. package/lib/components/datagrid/body/data_grid_cell_popover.js +35 -12
  32. package/lib/components/datagrid/body/data_grid_cell_wrapper.js +147 -0
  33. package/lib/components/datagrid/body/header/data_grid_header_row.js +4 -2
  34. package/lib/components/datagrid/data_grid.js +21 -4
  35. package/lib/components/datagrid/data_grid_types.js +22 -1
  36. package/lib/components/datagrid/utils/row_heights.js +116 -33
  37. package/lib/components/date_picker/auto_refresh/auto_refresh.js +2 -1
  38. package/lib/components/form/range/dual_range.js +14 -7
  39. package/lib/components/form/range/range.js +10 -3
  40. package/lib/components/form/super_select/super_select.js +21 -18
  41. package/lib/components/form/super_select/super_select_control.js +7 -16
  42. package/lib/components/selectable/selectable.js +59 -36
  43. package/lib/components/selectable/selectable_list/selectable_list.js +1 -1
  44. package/lib/components/suggest/suggest.js +3 -12
  45. package/optimize/es/components/datagrid/body/data_grid_body.js +17 -387
  46. package/optimize/es/components/datagrid/body/data_grid_body_custom.js +176 -0
  47. package/optimize/es/components/datagrid/body/data_grid_body_virtualized.js +311 -0
  48. package/optimize/es/components/datagrid/body/data_grid_cell.js +12 -9
  49. package/optimize/es/components/datagrid/body/data_grid_cell_popover.js +30 -12
  50. package/optimize/es/components/datagrid/body/data_grid_cell_wrapper.js +127 -0
  51. package/optimize/es/components/datagrid/body/header/data_grid_header_row.js +3 -2
  52. package/optimize/es/components/datagrid/data_grid.js +8 -5
  53. package/optimize/es/components/datagrid/data_grid_types.js +18 -1
  54. package/optimize/es/components/datagrid/utils/row_heights.js +100 -31
  55. package/optimize/es/components/date_picker/auto_refresh/auto_refresh.js +2 -1
  56. package/optimize/es/components/form/range/dual_range.js +14 -7
  57. package/optimize/es/components/form/range/range.js +10 -3
  58. package/optimize/es/components/form/super_select/super_select.js +16 -12
  59. package/optimize/es/components/form/super_select/super_select_control.js +7 -14
  60. package/optimize/es/components/selectable/selectable.js +50 -34
  61. package/optimize/es/components/selectable/selectable_list/selectable_list.js +1 -1
  62. package/optimize/es/components/suggest/suggest.js +3 -10
  63. package/optimize/lib/components/datagrid/body/data_grid_body.js +16 -409
  64. package/optimize/lib/components/datagrid/body/data_grid_body_custom.js +198 -0
  65. package/optimize/lib/components/datagrid/body/data_grid_body_virtualized.js +342 -0
  66. package/optimize/lib/components/datagrid/body/data_grid_cell.js +12 -9
  67. package/optimize/lib/components/datagrid/body/data_grid_cell_popover.js +33 -19
  68. package/optimize/lib/components/datagrid/body/data_grid_cell_wrapper.js +144 -0
  69. package/optimize/lib/components/datagrid/body/header/data_grid_header_row.js +4 -2
  70. package/optimize/lib/components/datagrid/data_grid.js +8 -4
  71. package/optimize/lib/components/datagrid/data_grid_types.js +22 -1
  72. package/optimize/lib/components/datagrid/utils/row_heights.js +103 -37
  73. package/optimize/lib/components/date_picker/auto_refresh/auto_refresh.js +2 -1
  74. package/optimize/lib/components/form/range/dual_range.js +14 -7
  75. package/optimize/lib/components/form/range/range.js +10 -3
  76. package/optimize/lib/components/form/super_select/super_select.js +16 -11
  77. package/optimize/lib/components/form/super_select/super_select_control.js +7 -16
  78. package/optimize/lib/components/selectable/selectable.js +50 -35
  79. package/optimize/lib/components/selectable/selectable_list/selectable_list.js +1 -1
  80. package/optimize/lib/components/suggest/suggest.js +3 -12
  81. package/package.json +1 -1
  82. package/src/components/datagrid/_data_grid.scss +7 -0
  83. package/src/components/datagrid/_data_grid_data_row.scss +1 -0
  84. package/src/components/datagrid/body/footer/_data_grid_footer_row.scss +1 -0
  85. package/src/components/datagrid/body/header/_data_grid_header_row.scss +1 -0
  86. package/src/components/form/super_select/_super_select_control.scss +4 -0
  87. package/src/components/selectable/selectable_list/_selectable_list.scss +10 -3
  88. package/src/themes/amsterdam/global_styling/mixins/_states.scss +17 -8
  89. package/test-env/components/color_picker/color_palette_picker/color_palette_picker.js +5 -6
  90. package/test-env/components/datagrid/body/data_grid_body.js +18 -415
  91. package/test-env/components/datagrid/body/data_grid_body_custom.js +908 -0
  92. package/test-env/components/datagrid/body/data_grid_body_virtualized.js +1057 -0
  93. package/test-env/components/datagrid/body/data_grid_cell.js +16 -12
  94. package/test-env/components/datagrid/body/data_grid_cell_popover.js +33 -19
  95. package/test-env/components/datagrid/body/data_grid_cell_wrapper.js +144 -0
  96. package/test-env/components/datagrid/body/header/data_grid_header_row.js +4 -2
  97. package/test-env/components/datagrid/data_grid.js +21 -4
  98. package/test-env/components/datagrid/data_grid_types.js +22 -1
  99. package/test-env/components/datagrid/utils/row_heights.js +103 -37
  100. package/test-env/components/date_picker/auto_refresh/auto_refresh.js +2 -1
  101. package/test-env/components/form/range/dual_range.js +14 -7
  102. package/test-env/components/form/range/range.js +10 -3
  103. package/test-env/components/form/super_select/super_select.js +21 -17
  104. package/test-env/components/form/super_select/super_select_control.js +7 -16
  105. package/test-env/components/selectable/selectable.js +58 -36
  106. package/test-env/components/selectable/selectable_list/selectable_list.js +1 -1
  107. package/test-env/components/suggest/suggest.js +3 -12
@@ -2,437 +2,39 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
- exports.EuiDataGridBody = exports.DataGridWrapperRowsContext = exports.Cell = void 0;
11
-
12
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
-
14
- var _propTypes = _interopRequireDefault(require("prop-types"));
8
+ exports.EuiDataGridBody = void 0;
15
9
 
16
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
17
11
 
18
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
19
-
20
- var _classnames = _interopRequireDefault(require("classnames"));
21
-
22
- var _react = _interopRequireWildcard(require("react"));
23
-
24
- var _reactWindow = require("react-window");
25
-
26
- var _resize_observer = require("../../observer/resize_observer");
27
-
28
- var _data_grid_cell = require("./data_grid_cell");
29
-
30
- var _header = require("./header");
31
-
32
- var _footer = require("./footer");
33
-
34
- var _data_grid_cell_popover = require("./data_grid_cell_popover");
35
-
36
- var _data_grid_row_manager = require("./data_grid_row_manager");
37
-
38
- var _grid_height_width = require("../utils/grid_height_width");
39
-
40
- var _col_widths = require("../utils/col_widths");
12
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
41
13
 
42
- var _row_heights = require("../utils/row_heights");
14
+ var _react = _interopRequireDefault(require("react"));
43
15
 
44
- var _scrolling = require("../utils/scrolling");
16
+ var _propTypes = _interopRequireDefault(require("prop-types"));
45
17
 
46
- var _sorting = require("../utils/sorting");
18
+ var _data_grid_body_virtualized = require("./data_grid_body_virtualized");
47
19
 
48
- var _utils = require("../../../utils");
20
+ var _data_grid_body_custom = require("./data_grid_body_custom");
49
21
 
50
22
  var _react2 = require("@emotion/react");
51
23
 
52
- var _excluded = ["children", "style"];
53
-
54
- 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); }
55
-
56
- 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; }
57
-
58
- 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; }
59
-
60
- 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) { (0, _defineProperty2.default)(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; }
61
-
62
- var Cell = function Cell(_ref) {
63
- var columnIndex = _ref.columnIndex,
64
- visibleRowIndex = _ref.rowIndex,
65
- style = _ref.style,
66
- data = _ref.data;
67
- var leadingControlColumns = data.leadingControlColumns,
68
- trailingControlColumns = data.trailingControlColumns,
69
- columns = data.columns,
70
- visibleColCount = data.visibleColCount,
71
- schema = data.schema,
72
- columnWidths = data.columnWidths,
73
- defaultColumnWidth = data.defaultColumnWidth,
74
- renderCellValue = data.renderCellValue,
75
- renderCellPopover = data.renderCellPopover,
76
- interactiveCellId = data.interactiveCellId,
77
- setRowHeight = data.setRowHeight,
78
- schemaDetectors = data.schemaDetectors,
79
- rowHeightsOptions = data.rowHeightsOptions,
80
- rowHeightUtils = data.rowHeightUtils,
81
- rowManager = data.rowManager,
82
- pagination = data.pagination;
83
- var popoverContext = (0, _react.useContext)(_data_grid_cell_popover.DataGridCellPopoverContext);
84
-
85
- var _useContext = (0, _react.useContext)(DataGridWrapperRowsContext),
86
- headerRowHeight = _useContext.headerRowHeight;
87
-
88
- var _useContext2 = (0, _react.useContext)(_sorting.DataGridSortingContext),
89
- getCorrectRowIndex = _useContext2.getCorrectRowIndex;
90
-
91
- var cellContent;
92
- var isFirstColumn = columnIndex === 0;
93
- var isLastColumn = columnIndex === visibleColCount - 1;
94
- var isLeadingControlColumn = columnIndex < leadingControlColumns.length;
95
- var isTrailingControlColumn = columnIndex >= leadingControlColumns.length + columns.length;
96
- var dataColumnIndex = columnIndex - leadingControlColumns.length;
97
- var column = columns[dataColumnIndex];
98
- var columnId = column === null || column === void 0 ? void 0 : column.id;
99
- var transformClass = schemaDetectors.filter(function (row) {
100
- return column !== null && column !== void 0 && column.schema ? (column === null || column === void 0 ? void 0 : column.schema) === row.type : columnId === row.type;
101
- })[0];
102
- var textTransform = transformClass === null || transformClass === void 0 ? void 0 : transformClass.textTransform;
103
- var classes = (0, _classnames.default)((0, _defineProperty2.default)({
104
- 'euiDataGridRowCell--firstColumn': isFirstColumn,
105
- 'euiDataGridRowCell--lastColumn': isLastColumn,
106
- 'euiDataGridRowCell--controlColumn': isLeadingControlColumn || isTrailingControlColumn
107
- }, "euiDataGridRowCell--".concat(textTransform), textTransform));
108
- var sharedCellProps = {
109
- rowIndex: getCorrectRowIndex(visibleRowIndex),
110
- visibleRowIndex: visibleRowIndex,
111
- colIndex: columnIndex,
112
- interactiveCellId: interactiveCellId,
113
- className: classes,
114
- style: _objectSpread(_objectSpread({}, style), {}, {
115
- top: "".concat(parseFloat(style.top) + headerRowHeight, "px")
116
- }),
117
- rowHeightsOptions: rowHeightsOptions,
118
- rowHeightUtils: rowHeightUtils,
119
- setRowHeight: isFirstColumn ? setRowHeight : undefined,
120
- rowManager: rowManager,
121
- popoverContext: popoverContext,
122
- pagination: pagination
123
- };
124
-
125
- if (isLeadingControlColumn) {
126
- var leadingColumn = leadingControlColumns[columnIndex];
127
- var id = leadingColumn.id,
128
- rowCellRender = leadingColumn.rowCellRender;
129
- cellContent = (0, _react2.jsx)(_data_grid_cell.EuiDataGridCell, (0, _extends2.default)({}, sharedCellProps, {
130
- columnId: id,
131
- width: leadingColumn.width,
132
- renderCellValue: rowCellRender,
133
- isExpandable: false
134
- }));
135
- } else if (isTrailingControlColumn) {
136
- var columnOffset = columns.length + leadingControlColumns.length;
137
- var trailingColumnIndex = columnIndex - columnOffset;
138
- var trailingColumn = trailingControlColumns[trailingColumnIndex];
139
- var _id = trailingColumn.id,
140
- _rowCellRender = trailingColumn.rowCellRender;
141
- cellContent = (0, _react2.jsx)(_data_grid_cell.EuiDataGridCell, (0, _extends2.default)({}, sharedCellProps, {
142
- columnId: _id,
143
- width: trailingColumn.width,
144
- renderCellValue: _rowCellRender,
145
- isExpandable: false
146
- }));
147
- } else {
148
- // this is a normal data cell
149
- var columnType = schema[columnId] ? schema[columnId].columnType : null;
150
- var isExpandable = column.isExpandable !== undefined ? column.isExpandable : true;
151
- var width = columnWidths[columnId] || defaultColumnWidth;
152
- cellContent = (0, _react2.jsx)(_data_grid_cell.EuiDataGridCell, (0, _extends2.default)({}, sharedCellProps, {
153
- columnId: columnId,
154
- column: column,
155
- columnType: columnType,
156
- width: width || undefined,
157
- renderCellValue: renderCellValue,
158
- renderCellPopover: renderCellPopover,
159
- interactiveCellId: interactiveCellId,
160
- isExpandable: isExpandable
161
- }));
162
- }
163
-
164
- return cellContent;
165
- }; // Context is required to pass props to react-window's innerElementType
166
- // @see https://github.com/bvaughn/react-window/issues/404
167
-
168
-
169
- exports.Cell = Cell;
170
- var DataGridWrapperRowsContext = /*#__PURE__*/(0, _react.createContext)({
171
- headerRow: (0, _react2.jsx)("div", null),
172
- headerRowHeight: 0,
173
- footerRow: null
174
- });
175
- exports.DataGridWrapperRowsContext = DataGridWrapperRowsContext;
176
- var InnerElement = /*#__PURE__*/(0, _react.forwardRef)(function (_ref2, ref) {
177
- var children = _ref2.children,
178
- style = _ref2.style,
179
- rest = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
180
-
181
- var _useContext3 = (0, _react.useContext)(DataGridWrapperRowsContext),
182
- headerRowHeight = _useContext3.headerRowHeight,
183
- headerRow = _useContext3.headerRow,
184
- footerRow = _useContext3.footerRow;
185
-
186
- return (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("div", (0, _extends2.default)({
187
- ref: ref,
188
- style: _objectSpread(_objectSpread({}, style), {}, {
189
- height: style.height + headerRowHeight
190
- })
191
- }, rest), headerRow, children), footerRow);
192
- });
193
- InnerElement.propTypes = {
194
- style: _propTypes.default.shape({
195
- height: _propTypes.default.number.isRequired
196
- }).isRequired
197
- };
198
- InnerElement.displayName = 'EuiDataGridInnerElement';
199
-
200
- var EuiDataGridBody = function EuiDataGridBody(props) {
201
- var leadingControlColumns = props.leadingControlColumns,
202
- trailingControlColumns = props.trailingControlColumns,
203
- columns = props.columns,
204
- visibleColCount = props.visibleColCount,
205
- schema = props.schema,
206
- schemaDetectors = props.schemaDetectors,
207
- rowCount = props.rowCount,
208
- _props$visibleRows = props.visibleRows,
209
- startRow = _props$visibleRows.startRow,
210
- endRow = _props$visibleRows.endRow,
211
- visibleRowCount = _props$visibleRows.visibleRowCount,
212
- renderCellValue = props.renderCellValue,
213
- renderCellPopover = props.renderCellPopover,
214
- renderFooterCellValue = props.renderFooterCellValue,
215
- interactiveCellId = props.interactiveCellId,
216
- pagination = props.pagination,
217
- headerIsInteractive = props.headerIsInteractive,
218
- handleHeaderMutation = props.handleHeaderMutation,
219
- setVisibleColumns = props.setVisibleColumns,
220
- switchColumnPos = props.switchColumnPos,
221
- onColumnResize = props.onColumnResize,
222
- rowHeightsOptions = props.rowHeightsOptions,
223
- virtualizationOptions = props.virtualizationOptions,
224
- isFullScreen = props.isFullScreen,
225
- gridStyles = props.gridStyles,
226
- gridWidth = props.gridWidth,
227
- gridRef = props.gridRef,
228
- gridItemsRendered = props.gridItemsRendered,
229
- wrapperRef = props.wrapperRef;
230
- /**
231
- * Grid refs & observers
232
- */
233
-
234
- var wrapperDimensions = (0, _resize_observer.useResizeObserver)(wrapperRef.current);
235
- var outerGridRef = (0, _react.useRef)(null); // container that becomes scrollable
236
-
237
- var innerGridRef = (0, _react.useRef)(null); // container sized to fit all content
24
+ var _excluded = ["renderCustomGridBody"];
238
25
 
239
- /**
240
- * Scroll bars
241
- */
26
+ var EuiDataGridBody = function EuiDataGridBody(_ref) {
27
+ var renderCustomGridBody = _ref.renderCustomGridBody,
28
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
242
29
 
243
- var _useScrollBars = (0, _scrolling.useScrollBars)(outerGridRef, gridStyles.border),
244
- scrollBarHeight = _useScrollBars.scrollBarHeight,
245
- hasVerticalScroll = _useScrollBars.hasVerticalScroll,
246
- hasHorizontalScroll = _useScrollBars.hasHorizontalScroll,
247
- scrollBorderOverlay = _useScrollBars.scrollBorderOverlay;
248
- /**
249
- * Widths
30
+ /*
31
+ * Determine whether we should use the default EuiDataGridBody
32
+ * + virtualization library for rendering content, or if consumers have
33
+ * passed their own custom renderer
250
34
  */
251
-
252
-
253
- var virtualizeContainerWidth = (0, _grid_height_width.useVirtualizeContainerWidth)(outerGridRef.current, gridWidth, pagination === null || pagination === void 0 ? void 0 : pagination.pageSize); // compute the default column width from the container's width and count of visible columns
254
-
255
- var defaultColumnWidth = (0, _col_widths.useDefaultColumnWidth)(virtualizeContainerWidth, leadingControlColumns, trailingControlColumns, columns);
256
-
257
- var _useColumnWidths = (0, _col_widths.useColumnWidths)({
258
- columns: columns,
259
- leadingControlColumns: leadingControlColumns,
260
- trailingControlColumns: trailingControlColumns,
261
- defaultColumnWidth: defaultColumnWidth,
262
- onColumnResize: onColumnResize
263
- }),
264
- columnWidths = _useColumnWidths.columnWidths,
265
- setColumnWidth = _useColumnWidths.setColumnWidth,
266
- getColumnWidth = _useColumnWidths.getColumnWidth;
267
- /**
268
- * Header & footer
269
- */
270
-
271
-
272
- var _useDataGridHeader = (0, _header.useDataGridHeader)({
273
- headerIsInteractive: headerIsInteractive,
274
- handleHeaderMutation: handleHeaderMutation,
275
- switchColumnPos: switchColumnPos,
276
- setVisibleColumns: setVisibleColumns,
277
- leadingControlColumns: leadingControlColumns,
278
- trailingControlColumns: trailingControlColumns,
279
- columns: columns,
280
- columnWidths: columnWidths,
281
- defaultColumnWidth: defaultColumnWidth,
282
- setColumnWidth: setColumnWidth,
283
- schema: schema,
284
- schemaDetectors: schemaDetectors
285
- }),
286
- headerRow = _useDataGridHeader.headerRow,
287
- headerRowHeight = _useDataGridHeader.headerRowHeight;
288
-
289
- var _useDataGridFooter = (0, _footer.useDataGridFooter)({
290
- renderFooterCellValue: renderFooterCellValue,
291
- renderCellPopover: renderCellPopover,
292
- rowIndex: visibleRowCount,
293
- visibleRowIndex: visibleRowCount,
294
- interactiveCellId: interactiveCellId,
295
- leadingControlColumns: leadingControlColumns,
296
- trailingControlColumns: trailingControlColumns,
297
- columns: columns,
298
- columnWidths: columnWidths,
299
- defaultColumnWidth: defaultColumnWidth,
300
- schema: schema
301
- }),
302
- footerRow = _useDataGridFooter.footerRow,
303
- footerRowHeight = _useDataGridFooter.footerRowHeight;
304
- /**
305
- * Handle scrolling cells fully into view
306
- */
307
-
308
-
309
- (0, _scrolling.useScroll)({
310
- gridRef: gridRef,
311
- outerGridRef: outerGridRef,
312
- hasGridScrolling: hasVerticalScroll || hasHorizontalScroll,
313
- headerRowHeight: headerRowHeight,
314
- footerRowHeight: footerRowHeight,
315
- visibleRowCount: visibleRowCount,
316
- hasStickyFooter: !!(renderFooterCellValue && gridStyles.stickyFooter)
317
- });
318
- /**
319
- * Row manager
320
- */
321
-
322
- var rowManager = (0, _data_grid_row_manager.useRowManager)({
323
- innerGridRef: innerGridRef,
324
- rowClasses: gridStyles.rowClasses
325
- });
326
- /**
327
- * Heights
328
- */
329
-
330
- var rowHeightUtils = (0, _row_heights.useRowHeightUtils)({
331
- gridRef: gridRef,
332
- outerGridElementRef: outerGridRef,
333
- gridItemsRenderedRef: gridItemsRendered,
334
- gridStyles: gridStyles,
335
- columns: columns,
336
- rowHeightsOptions: rowHeightsOptions
337
- });
338
-
339
- var _useDefaultRowHeight = (0, _row_heights.useDefaultRowHeight)({
340
- rowHeightsOptions: rowHeightsOptions,
341
- rowHeightUtils: rowHeightUtils
342
- }),
343
- defaultRowHeight = _useDefaultRowHeight.defaultRowHeight,
344
- setRowHeight = _useDefaultRowHeight.setRowHeight,
345
- getRowHeight = _useDefaultRowHeight.getRowHeight;
346
-
347
- var unconstrainedHeight = (0, _grid_height_width.useUnconstrainedHeight)({
348
- rowHeightUtils: rowHeightUtils,
349
- startRow: startRow,
350
- endRow: endRow,
351
- rowHeightsOptions: rowHeightsOptions,
352
- defaultRowHeight: defaultRowHeight,
353
- headerRowHeight: headerRowHeight,
354
- footerRowHeight: footerRowHeight,
355
- scrollBarHeight: scrollBarHeight,
356
- innerGridRef: innerGridRef
357
- });
358
- /**
359
- * Final grid height & width
360
- */
361
-
362
- var _useFinalGridDimensio = (0, _grid_height_width.useFinalGridDimensions)({
363
- unconstrainedHeight: unconstrainedHeight,
364
- unconstrainedWidth: 0,
365
- // unable to determine this until the container's size is known
366
- wrapperDimensions: wrapperDimensions,
367
- wrapperRef: wrapperRef,
368
- isFullScreen: isFullScreen,
369
- rowCount: rowCount
370
- }),
371
- finalWidth = _useFinalGridDimensio.finalWidth,
372
- finalHeight = _useFinalGridDimensio.finalHeight;
373
- /**
374
- * Grid resets
375
- */
376
-
377
-
378
- (0, _react.useEffect)(function () {
379
- if (gridRef.current) {
380
- gridRef.current.resetAfterColumnIndex(0);
381
- }
382
- }, [gridRef, columns, columnWidths, defaultColumnWidth]);
383
- (0, _react.useEffect)(function () {
384
- if (gridRef.current && rowHeightsOptions) {
385
- gridRef.current.resetAfterRowIndex(0);
386
- }
387
- }, [gridRef, pagination === null || pagination === void 0 ? void 0 : pagination.pageIndex, rowHeightsOptions, gridStyles === null || gridStyles === void 0 ? void 0 : gridStyles.cellPadding, gridStyles === null || gridStyles === void 0 ? void 0 : gridStyles.fontSize]);
388
- (0, _react.useEffect)(function () {
389
- if (gridRef.current) {
390
- gridRef.current.resetAfterRowIndex(0);
391
- }
392
- }, [gridRef, getRowHeight]);
393
- return _utils.IS_JEST_ENVIRONMENT || finalWidth > 0 ? (0, _react2.jsx)(DataGridWrapperRowsContext.Provider, {
394
- value: {
395
- headerRowHeight: headerRowHeight,
396
- headerRow: headerRow,
397
- footerRow: footerRow
398
- }
399
- }, (0, _react2.jsx)(_reactWindow.VariableSizeGrid, (0, _extends2.default)({}, virtualizationOptions ? virtualizationOptions : {}, {
400
- ref: gridRef,
401
- className: (0, _classnames.default)('euiDataGrid__virtualized', virtualizationOptions === null || virtualizationOptions === void 0 ? void 0 : virtualizationOptions.className),
402
- onItemsRendered: function onItemsRendered(itemsRendered) {
403
- var _virtualizationOption;
404
-
405
- gridItemsRendered.current = itemsRendered;
406
- virtualizationOptions === null || virtualizationOptions === void 0 ? void 0 : (_virtualizationOption = virtualizationOptions.onItemsRendered) === null || _virtualizationOption === void 0 ? void 0 : _virtualizationOption.call(virtualizationOptions, itemsRendered);
407
- },
408
- innerElementType: InnerElement,
409
- outerRef: outerGridRef,
410
- innerRef: innerGridRef,
411
- columnCount: visibleColCount,
412
- width: finalWidth,
413
- columnWidth: getColumnWidth,
414
- height: finalHeight,
415
- rowHeight: getRowHeight,
416
- itemData: {
417
- schemaDetectors: schemaDetectors,
418
- setRowHeight: setRowHeight,
419
- leadingControlColumns: leadingControlColumns,
420
- trailingControlColumns: trailingControlColumns,
421
- columns: columns,
422
- visibleColCount: visibleColCount,
423
- schema: schema,
424
- columnWidths: columnWidths,
425
- defaultColumnWidth: defaultColumnWidth,
426
- renderCellValue: renderCellValue,
427
- renderCellPopover: renderCellPopover,
428
- interactiveCellId: interactiveCellId,
429
- rowHeightsOptions: rowHeightsOptions,
430
- rowHeightUtils: rowHeightUtils,
431
- rowManager: rowManager,
432
- pagination: pagination
433
- },
434
- rowCount: _utils.IS_JEST_ENVIRONMENT || headerRowHeight > 0 ? visibleRowCount : 0
435
- }), Cell), scrollBorderOverlay) : null;
35
+ return renderCustomGridBody ? (0, _react2.jsx)(_data_grid_body_custom.EuiDataGridBodyCustomRender, (0, _extends2.default)({
36
+ renderCustomGridBody: renderCustomGridBody
37
+ }, props)) : (0, _react2.jsx)(_data_grid_body_virtualized.EuiDataGridBodyVirtualized, props);
436
38
  };
437
39
 
438
40
  exports.EuiDataGridBody = EuiDataGridBody;
@@ -1013,6 +615,7 @@ EuiDataGridBody.propTypes = {
1013
615
  renderCellValue: _propTypes.default.oneOfType([_propTypes.default.func.isRequired, _propTypes.default.func.isRequired]).isRequired,
1014
616
  renderCellPopover: _propTypes.default.oneOfType([_propTypes.default.func.isRequired, _propTypes.default.func.isRequired]),
1015
617
  renderFooterCellValue: _propTypes.default.oneOfType([_propTypes.default.func.isRequired, _propTypes.default.func.isRequired]),
618
+ renderCustomGridBody: _propTypes.default.func,
1016
619
  interactiveCellId: _propTypes.default.string.isRequired,
1017
620
  pagination: _propTypes.default.shape({
1018
621
  /**