@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
@@ -9,10 +9,16 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports.useCellPopover = exports.JsonPopoverContent = exports.DefaultCellPopover = exports.DataGridCellPopoverContext = void 0;
11
11
 
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
12
16
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
17
 
14
18
  var _react = _interopRequireWildcard(require("react"));
15
19
 
20
+ var _classnames = _interopRequireDefault(require("classnames"));
21
+
16
22
  var _services = require("../../../services");
17
23
 
18
24
  var _popover = require("../../popover");
@@ -27,13 +33,10 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
27
33
 
28
34
  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
35
 
30
- /*
31
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
32
- * or more contributor license agreements. Licensed under the Elastic License
33
- * 2.0 and the Server Side Public License, v 1; you may not use this file except
34
- * in compliance with, at your election, the Elastic License 2.0 or the Server
35
- * Side Public License, v 1.
36
- */
36
+ 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; }
37
+
38
+ 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; }
39
+
37
40
  var DataGridCellPopoverContext = /*#__PURE__*/(0, _react.createContext)({
38
41
  popoverIsOpen: false,
39
42
  cellLocation: {
@@ -43,11 +46,14 @@ var DataGridCellPopoverContext = /*#__PURE__*/(0, _react.createContext)({
43
46
  openCellPopover: function openCellPopover() {},
44
47
  closeCellPopover: function closeCellPopover() {},
45
48
  setPopoverAnchor: function setPopoverAnchor() {},
46
- setPopoverContent: function setPopoverContent() {}
49
+ setPopoverContent: function setPopoverContent() {},
50
+ setCellPopoverProps: function setCellPopoverProps() {}
47
51
  });
48
52
  exports.DataGridCellPopoverContext = DataGridCellPopoverContext;
49
53
 
50
54
  var useCellPopover = function useCellPopover() {
55
+ var _cellPopoverProps$pan;
56
+
51
57
  // Current open state & cell location are handled here
52
58
  var _useState = (0, _react.useState)(false),
53
59
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -71,7 +77,13 @@ var useCellPopover = function useCellPopover() {
71
77
  var _useState7 = (0, _react.useState)(),
72
78
  _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
73
79
  popoverContent = _useState8[0],
74
- setPopoverContent = _useState8[1];
80
+ setPopoverContent = _useState8[1]; // Allow customization of most (not all) popover props by consumers
81
+
82
+
83
+ var _useState9 = (0, _react.useState)({}),
84
+ _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
85
+ cellPopoverProps = _useState10[0],
86
+ setCellPopoverProps = _useState10[1];
75
87
 
76
88
  var closeCellPopover = (0, _react.useCallback)(function () {
77
89
  return setPopoverIsOpen(false);
@@ -101,20 +113,20 @@ var useCellPopover = function useCellPopover() {
101
113
  openCellPopover: openCellPopover,
102
114
  cellLocation: cellLocation,
103
115
  setPopoverAnchor: setPopoverAnchor,
104
- setPopoverContent: setPopoverContent
116
+ setPopoverContent: setPopoverContent,
117
+ setCellPopoverProps: setCellPopoverProps
105
118
  }; // Note that this popover is rendered once at the top grid level, rather than one popover per cell
106
119
 
107
- var cellPopover = popoverIsOpen && popoverAnchor && (0, _react2.jsx)(_popover.EuiWrappingPopover, {
120
+ var cellPopover = popoverIsOpen && popoverAnchor && (0, _react2.jsx)(_popover.EuiWrappingPopover, (0, _extends2.default)({
108
121
  isOpen: popoverIsOpen,
109
- button: popoverAnchor,
110
122
  display: "block",
111
123
  hasArrow: false,
112
- panelPaddingSize: "s",
113
- panelClassName: "euiDataGridRowCell__popover",
114
- panelProps: {
124
+ panelPaddingSize: "s"
125
+ }, cellPopoverProps, {
126
+ panelProps: _objectSpread({
115
127
  'data-test-subj': 'euiDataGridExpansionPopover'
116
- },
117
- closePopover: closeCellPopover,
128
+ }, cellPopoverProps.panelProps || {}),
129
+ panelClassName: (0, _classnames.default)('euiDataGridRowCell__popover', cellPopoverProps.panelClassName, (_cellPopoverProps$pan = cellPopoverProps.panelProps) === null || _cellPopoverProps$pan === void 0 ? void 0 : _cellPopoverProps$pan.className),
118
130
  onKeyDown: function onKeyDown(event) {
119
131
  if (event.key === _services.keys.F2 || event.key === _services.keys.ESCAPE) {
120
132
  event.preventDefault();
@@ -125,8 +137,10 @@ var useCellPopover = function useCellPopover() {
125
137
  return popoverAnchor.parentElement.focus();
126
138
  });
127
139
  }
128
- }
129
- }, popoverContent);
140
+ },
141
+ button: popoverAnchor,
142
+ closePopover: closeCellPopover
143
+ }), popoverContent);
130
144
  return {
131
145
  cellPopoverContext: cellPopoverContext,
132
146
  cellPopover: cellPopover
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.Cell = void 0;
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
16
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
17
+
18
+ var _react = _interopRequireWildcard(require("react"));
19
+
20
+ var _classnames = _interopRequireDefault(require("classnames"));
21
+
22
+ var _sorting = require("../utils/sorting");
23
+
24
+ var _data_grid_cell_popover = require("./data_grid_cell_popover");
25
+
26
+ var _data_grid_cell = require("./data_grid_cell");
27
+
28
+ var _react2 = require("@emotion/react");
29
+
30
+ var _excluded = ["colIndex", "visibleRowIndex", "style", "schema", "schemaDetectors", "pagination", "columns", "leadingControlColumns", "trailingControlColumns", "visibleColCount", "columnWidths", "defaultColumnWidth", "renderCellValue", "renderCellPopover", "interactiveCellId", "setRowHeight", "rowHeightsOptions", "rowHeightUtils", "rowManager"];
31
+
32
+ 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); }
33
+
34
+ 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; }
35
+
36
+ /**
37
+ * A DRY wrapper used by both custom and virtualized grid cells.
38
+ * It grabs context, determines the type of cell being rendered
39
+ * (e.g. control vs data cell), & sets shared props between all cells
40
+ */
41
+ var Cell = function Cell(_ref) {
42
+ var colIndex = _ref.colIndex,
43
+ visibleRowIndex = _ref.visibleRowIndex,
44
+ style = _ref.style,
45
+ schema = _ref.schema,
46
+ schemaDetectors = _ref.schemaDetectors,
47
+ pagination = _ref.pagination,
48
+ columns = _ref.columns,
49
+ leadingControlColumns = _ref.leadingControlColumns,
50
+ trailingControlColumns = _ref.trailingControlColumns,
51
+ visibleColCount = _ref.visibleColCount,
52
+ columnWidths = _ref.columnWidths,
53
+ defaultColumnWidth = _ref.defaultColumnWidth,
54
+ renderCellValue = _ref.renderCellValue,
55
+ renderCellPopover = _ref.renderCellPopover,
56
+ interactiveCellId = _ref.interactiveCellId,
57
+ setRowHeight = _ref.setRowHeight,
58
+ rowHeightsOptions = _ref.rowHeightsOptions,
59
+ rowHeightUtils = _ref.rowHeightUtils,
60
+ rowManager = _ref.rowManager,
61
+ rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
62
+ var popoverContext = (0, _react.useContext)(_data_grid_cell_popover.DataGridCellPopoverContext);
63
+
64
+ var _useContext = (0, _react.useContext)(_sorting.DataGridSortingContext),
65
+ getCorrectRowIndex = _useContext.getCorrectRowIndex;
66
+
67
+ var cellContent;
68
+ var isFirstColumn = colIndex === 0;
69
+ var isLastColumn = colIndex === visibleColCount - 1;
70
+ var isLeadingControlColumn = colIndex < leadingControlColumns.length;
71
+ var isTrailingControlColumn = colIndex >= leadingControlColumns.length + columns.length;
72
+ var datacolIndex = colIndex - leadingControlColumns.length;
73
+ var column = columns[datacolIndex];
74
+ var columnId = column === null || column === void 0 ? void 0 : column.id;
75
+ var textTransform = (0, _react.useMemo)(function () {
76
+ var _schemaDetectors$filt;
77
+
78
+ return (_schemaDetectors$filt = schemaDetectors.filter(function (row) {
79
+ return column !== null && column !== void 0 && column.schema ? (column === null || column === void 0 ? void 0 : column.schema) === row.type : columnId === row.type;
80
+ })[0]) === null || _schemaDetectors$filt === void 0 ? void 0 : _schemaDetectors$filt.textTransform;
81
+ }, [columnId, column === null || column === void 0 ? void 0 : column.schema, schemaDetectors]);
82
+ var classes = (0, _classnames.default)((0, _defineProperty2.default)({
83
+ 'euiDataGridRowCell--firstColumn': isFirstColumn,
84
+ 'euiDataGridRowCell--lastColumn': isLastColumn,
85
+ 'euiDataGridRowCell--controlColumn': isLeadingControlColumn || isTrailingControlColumn
86
+ }, "euiDataGridRowCell--".concat(textTransform), textTransform));
87
+ var sharedCellProps = {
88
+ rowIndex: getCorrectRowIndex(visibleRowIndex),
89
+ visibleRowIndex: visibleRowIndex,
90
+ colIndex: colIndex,
91
+ interactiveCellId: interactiveCellId,
92
+ className: classes,
93
+ style: style,
94
+ rowHeightsOptions: rowHeightsOptions,
95
+ rowHeightUtils: rowHeightUtils,
96
+ setRowHeight: isFirstColumn ? setRowHeight : undefined,
97
+ rowManager: rowManager,
98
+ popoverContext: popoverContext,
99
+ pagination: pagination
100
+ };
101
+
102
+ if (isLeadingControlColumn) {
103
+ var leadingColumn = leadingControlColumns[colIndex];
104
+ var id = leadingColumn.id,
105
+ rowCellRender = leadingColumn.rowCellRender;
106
+ cellContent = (0, _react2.jsx)(_data_grid_cell.EuiDataGridCell, (0, _extends2.default)({}, sharedCellProps, {
107
+ columnId: id,
108
+ width: leadingColumn.width,
109
+ renderCellValue: rowCellRender,
110
+ isExpandable: false
111
+ }, rest));
112
+ } else if (isTrailingControlColumn) {
113
+ var columnOffset = columns.length + leadingControlColumns.length;
114
+ var trailingcolIndex = colIndex - columnOffset;
115
+ var trailingColumn = trailingControlColumns[trailingcolIndex];
116
+ var _id = trailingColumn.id,
117
+ _rowCellRender = trailingColumn.rowCellRender;
118
+ cellContent = (0, _react2.jsx)(_data_grid_cell.EuiDataGridCell, (0, _extends2.default)({}, sharedCellProps, {
119
+ columnId: _id,
120
+ width: trailingColumn.width,
121
+ renderCellValue: _rowCellRender,
122
+ isExpandable: false
123
+ }, rest));
124
+ } else {
125
+ // this is a normal data cell
126
+ var columnType = schema[columnId] ? schema[columnId].columnType : null;
127
+ var isExpandable = column.isExpandable !== undefined ? column.isExpandable : true;
128
+ var width = columnWidths[columnId] || defaultColumnWidth;
129
+ cellContent = (0, _react2.jsx)(_data_grid_cell.EuiDataGridCell, (0, _extends2.default)({}, sharedCellProps, {
130
+ columnId: columnId,
131
+ column: column,
132
+ columnType: columnType,
133
+ width: width || undefined,
134
+ renderCellValue: renderCellValue,
135
+ renderCellPopover: renderCellPopover,
136
+ interactiveCellId: interactiveCellId,
137
+ isExpandable: isExpandable
138
+ }, rest));
139
+ }
140
+
141
+ return cellContent;
142
+ };
143
+
144
+ exports.Cell = Cell;
@@ -21,6 +21,8 @@ var _data_grid_control_header_cell = require("./data_grid_control_header_cell");
21
21
 
22
22
  var _data_grid_header_cell = require("./data_grid_header_cell");
23
23
 
24
+ var _data_grid_types = require("../../data_grid_types");
25
+
24
26
  var _react2 = require("@emotion/react");
25
27
 
26
28
  var _excluded = ["leadingControlColumns", "trailingControlColumns", "columns", "schema", "schemaDetectors", "columnWidths", "defaultColumnWidth", "className", "setColumnWidth", "setVisibleColumns", "switchColumnPos", "headerIsInteractive", "data-test-subj"];
@@ -31,9 +33,9 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
31
33
 
32
34
  var EuiDataGridHeaderRow = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
33
35
  var _props$leadingControl = props.leadingControlColumns,
34
- leadingControlColumns = _props$leadingControl === void 0 ? [] : _props$leadingControl,
36
+ leadingControlColumns = _props$leadingControl === void 0 ? _data_grid_types.emptyControlColumns : _props$leadingControl,
35
37
  _props$trailingContro = props.trailingControlColumns,
36
- trailingControlColumns = _props$trailingContro === void 0 ? [] : _props$trailingContro,
38
+ trailingControlColumns = _props$trailingContro === void 0 ? _data_grid_types.emptyControlColumns : _props$trailingContro,
37
39
  columns = props.columns,
38
40
  schema = props.schema,
39
41
  schemaDetectors = props.schemaDetectors,
@@ -55,9 +55,11 @@ var _data_grid_schema = require("./utils/data_grid_schema");
55
55
 
56
56
  var _ref = require("./utils/ref");
57
57
 
58
+ var _data_grid_types = require("./data_grid_types");
59
+
58
60
  var _react2 = require("@emotion/react");
59
61
 
60
- var _excluded = ["leadingControlColumns", "trailingControlColumns", "columns", "columnVisibility", "schemaDetectors", "rowCount", "renderCellValue", "renderCellPopover", "renderFooterCellValue", "className", "gridStyle", "toolbarVisibility", "pagination", "sorting", "inMemory", "onColumnResize", "minSizeForControls", "height", "width", "rowHeightsOptions", "virtualizationOptions"],
62
+ var _excluded = ["leadingControlColumns", "trailingControlColumns", "columns", "columnVisibility", "schemaDetectors", "rowCount", "renderCellValue", "renderCellPopover", "renderFooterCellValue", "className", "gridStyle", "toolbarVisibility", "pagination", "sorting", "inMemory", "onColumnResize", "minSizeForControls", "height", "width", "rowHeightsOptions", "virtualizationOptions", "renderCustomGridBody"],
61
63
  _excluded2 = ["focusProps"];
62
64
 
63
65
  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); }
@@ -101,9 +103,9 @@ var EuiDataGrid = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
101
103
  var _gridItemsRendered$cu;
102
104
 
103
105
  var _props$leadingControl = props.leadingControlColumns,
104
- leadingControlColumns = _props$leadingControl === void 0 ? [] : _props$leadingControl,
106
+ leadingControlColumns = _props$leadingControl === void 0 ? _data_grid_types.emptyControlColumns : _props$leadingControl,
105
107
  _props$trailingContro = props.trailingControlColumns,
106
- trailingControlColumns = _props$trailingContro === void 0 ? [] : _props$trailingContro,
108
+ trailingControlColumns = _props$trailingContro === void 0 ? _data_grid_types.emptyControlColumns : _props$trailingContro,
107
109
  columns = props.columns,
108
110
  columnVisibility = props.columnVisibility,
109
111
  schemaDetectors = props.schemaDetectors,
@@ -124,6 +126,7 @@ var EuiDataGrid = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
124
126
  width = props.width,
125
127
  _rowHeightsOptions = props.rowHeightsOptions,
126
128
  virtualizationOptions = props.virtualizationOptions,
129
+ renderCustomGridBody = props.renderCustomGridBody,
127
130
  rest = (0, _objectWithoutProperties2.default)(props, _excluded);
128
131
  /**
129
132
  * Merge consumer settings with defaults
@@ -400,7 +403,8 @@ var EuiDataGrid = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
400
403
  gridWidth: gridWidth,
401
404
  gridRef: gridRef,
402
405
  gridItemsRendered: gridItemsRendered,
403
- wrapperRef: contentRef
406
+ wrapperRef: contentRef,
407
+ renderCustomGridBody: renderCustomGridBody
404
408
  })), pagination && props['aria-labelledby'] && (0, _react2.jsx)("p", {
405
409
  id: ariaLabelledById,
406
410
  hidden: true
@@ -2,4 +2,25 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
- });
5
+ });
6
+ exports.emptyControlColumns = void 0;
7
+
8
+ /*
9
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
10
+ * or more contributor license agreements. Licensed under the Elastic License
11
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
12
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
13
+ * Side Public License, v 1.
14
+ */
15
+ // since react-window doesn't export a type with the imperative api only we can
16
+ // use this to omit the react-specific class component methods
17
+ // An array of [x,y] coordinates. Note that the `y` value expected internally is a `visibleRowIndex`
18
+ // Force either aria-label or aria-labelledby to be defined
19
+
20
+ /**
21
+ * Props shared between renderCellValue and renderCellPopover
22
+ */
23
+ // The empty control column array fallbacks need to be cached, or
24
+ // they'll cause rerendering/remount issues in memoized dependencies
25
+ var emptyControlColumns = [];
26
+ exports.emptyControlColumns = emptyControlColumns;
@@ -5,10 +5,20 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.useRowHeightUtils = exports.useDefaultRowHeight = exports.cellPaddingsMap = exports.RowHeightUtils = exports.DEFAULT_ROW_HEIGHT = exports.AUTO_HEIGHT = void 0;
8
+ exports.useRowHeightUtils = exports.useDefaultRowHeight = exports.cellPaddingsMap = exports.RowHeightVirtualizationUtils = exports.RowHeightUtils = exports.DEFAULT_ROW_HEIGHT = exports.AUTO_HEIGHT = void 0;
9
9
 
10
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
11
 
12
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
13
+
14
+ var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
15
+
16
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
+
18
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
+
20
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
+
12
22
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
23
 
14
24
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
@@ -25,13 +35,10 @@ var _predicate = require("../../../services/predicate");
25
35
 
26
36
  var _sorting = require("./sorting");
27
37
 
28
- /*
29
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
30
- * or more contributor license agreements. Licensed under the Elastic License
31
- * 2.0 and the Server Side Public License, v 1; you may not use this file except
32
- * in compliance with, at your election, the Elastic License 2.0 or the Server
33
- * Side Public License, v 1.
34
- */
38
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
39
+
40
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
41
+
35
42
  // TODO: Once JS variables are available, use them here instead of hard-coded maps
36
43
  var cellPaddingsMap = {
37
44
  s: 4,
@@ -45,14 +52,10 @@ var DEFAULT_ROW_HEIGHT = 34;
45
52
  exports.DEFAULT_ROW_HEIGHT = DEFAULT_ROW_HEIGHT;
46
53
 
47
54
  var RowHeightUtils = /*#__PURE__*/function () {
48
- function RowHeightUtils(gridRef, outerGridElementRef, gridItemsRenderedRef, rerenderGridBodyRef) {
55
+ function RowHeightUtils() {
49
56
  var _this = this;
50
57
 
51
58
  (0, _classCallCheck2.default)(this, RowHeightUtils);
52
- this.gridRef = gridRef;
53
- this.outerGridElementRef = outerGridElementRef;
54
- this.gridItemsRenderedRef = gridItemsRenderedRef;
55
- this.rerenderGridBodyRef = rerenderGridBodyRef;
56
59
  (0, _defineProperty2.default)(this, "styles", {
57
60
  paddingTop: 0,
58
61
  paddingBottom: 0
@@ -82,8 +85,6 @@ var RowHeightUtils = /*#__PURE__*/function () {
82
85
  };
83
86
  });
84
87
  (0, _defineProperty2.default)(this, "heightsCache", new Map());
85
- (0, _defineProperty2.default)(this, "timerId", void 0);
86
- (0, _defineProperty2.default)(this, "lastUpdatedRow", Infinity);
87
88
  }
88
89
 
89
90
  (0, _createClass2.default)(RowHeightUtils, [{
@@ -169,6 +170,11 @@ var RowHeightUtils = /*#__PURE__*/function () {
169
170
 
170
171
  return false;
171
172
  }
173
+ /**
174
+ * Heights cache utils
175
+ * This cache is primarily used by auto heights & secondarily used by lineCount row overrides
176
+ */
177
+
172
178
  }, {
173
179
  key: "getRowHeight",
174
180
  value: function getRowHeight(rowIndex) {
@@ -181,23 +187,20 @@ var RowHeightUtils = /*#__PURE__*/function () {
181
187
  }, {
182
188
  key: "setRowHeight",
183
189
  value: function setRowHeight(rowIndex, colId) {
184
- var _this$rerenderGridBod, _this$rerenderGridBod2;
185
-
186
190
  var height = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_ROW_HEIGHT;
187
- var visibleRowIndex = arguments.length > 3 ? arguments[3] : undefined;
191
+
192
+ var _visibleRowIndex = arguments.length > 3 ? arguments[3] : undefined;
193
+
188
194
  var rowHeights = this.heightsCache.get(rowIndex) || new Map();
189
195
  var adaptedHeight = Math.ceil(height + this.styles.paddingTop + this.styles.paddingBottom);
190
196
 
191
197
  if (rowHeights.get(colId) === adaptedHeight) {
192
- return;
198
+ return false;
199
+ } else {
200
+ rowHeights.set(colId, adaptedHeight);
201
+ this.heightsCache.set(rowIndex, rowHeights);
202
+ return true;
193
203
  }
194
-
195
- rowHeights.set(colId, adaptedHeight);
196
- this.heightsCache.set(rowIndex, rowHeights);
197
- this.resetRow(visibleRowIndex); // When an auto row height is updated, force a re-render
198
- // of the grid body to update the unconstrained height
199
-
200
- (_this$rerenderGridBod = (_this$rerenderGridBod2 = this.rerenderGridBodyRef).current) === null || _this$rerenderGridBod === void 0 ? void 0 : _this$rerenderGridBod.call(_this$rerenderGridBod2);
201
204
  }
202
205
  }, {
203
206
  key: "pruneHiddenColumnHeights",
@@ -216,22 +219,80 @@ var RowHeightUtils = /*#__PURE__*/function () {
216
219
  }
217
220
  });
218
221
  });
222
+ return didModify;
223
+ }
224
+ }]);
225
+ return RowHeightUtils;
226
+ }();
227
+ /**
228
+ * Row height utils with virtualization library-specific APIs
229
+ */
230
+
231
+
232
+ exports.RowHeightUtils = RowHeightUtils;
233
+
234
+ var RowHeightVirtualizationUtils = /*#__PURE__*/function (_RowHeightUtils) {
235
+ (0, _inherits2.default)(RowHeightVirtualizationUtils, _RowHeightUtils);
236
+
237
+ var _super = _createSuper(RowHeightVirtualizationUtils);
238
+
239
+ function RowHeightVirtualizationUtils(gridRef, outerGridElementRef, gridItemsRenderedRef, rerenderGridBodyRef) {
240
+ var _this2;
241
+
242
+ (0, _classCallCheck2.default)(this, RowHeightVirtualizationUtils);
243
+ _this2 = _super.call(this);
244
+ _this2.gridRef = gridRef;
245
+ _this2.outerGridElementRef = outerGridElementRef;
246
+ _this2.gridItemsRenderedRef = gridItemsRenderedRef;
247
+ _this2.rerenderGridBodyRef = rerenderGridBodyRef;
248
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), "timerId", void 0);
249
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), "lastUpdatedRow", Infinity);
250
+ return _this2;
251
+ }
252
+ /**
253
+ * Virtualization workarounds for auto height rows
254
+ */
255
+
256
+
257
+ (0, _createClass2.default)(RowHeightVirtualizationUtils, [{
258
+ key: "setRowHeight",
259
+ value: function setRowHeight(rowIndex, colId) {
260
+ var height = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_ROW_HEIGHT;
261
+ var visibleRowIndex = arguments.length > 3 ? arguments[3] : undefined;
262
+ var didModify = (0, _get2.default)((0, _getPrototypeOf2.default)(RowHeightVirtualizationUtils.prototype), "setRowHeight", this).call(this, rowIndex, colId, height, visibleRowIndex); // When an auto row height is updated, force a re-render
263
+ // of the grid body to update the unconstrained height
264
+
265
+ if (didModify) {
266
+ var _this$rerenderGridBod, _this$rerenderGridBod2;
267
+
268
+ (_this$rerenderGridBod = (_this$rerenderGridBod2 = this.rerenderGridBodyRef).current) === null || _this$rerenderGridBod === void 0 ? void 0 : _this$rerenderGridBod.call(_this$rerenderGridBod2);
269
+ this.resetRow(visibleRowIndex);
270
+ }
271
+
272
+ return didModify; // Mostly just here for typing
273
+ }
274
+ }, {
275
+ key: "pruneHiddenColumnHeights",
276
+ value: function pruneHiddenColumnHeights(visibleColumns) {
277
+ var didModify = (0, _get2.default)((0, _getPrototypeOf2.default)(RowHeightVirtualizationUtils.prototype), "pruneHiddenColumnHeights", this).call(this, visibleColumns);
219
278
 
220
279
  if (didModify) {
221
280
  this.resetRow(0);
222
281
  }
282
+
283
+ return didModify; // Mostly just here for typing
223
284
  }
224
285
  }, {
225
286
  key: "resetRow",
226
287
  value: function resetRow(visibleRowIndex) {
227
- var _this2 = this;
288
+ var _this3 = this;
228
289
 
229
290
  // save the first row index of batch, reassigning it only
230
291
  // if this visible row index less than lastUpdatedRow
231
292
  this.lastUpdatedRow = Math.min(this.lastUpdatedRow, visibleRowIndex);
232
293
  clearTimeout(this.timerId);
233
294
  this.timerId = window.setTimeout(function () {
234
- return _this2.resetGrid();
295
+ return _this3.resetGrid();
235
296
  }, 0);
236
297
  }
237
298
  }, {
@@ -268,27 +329,32 @@ var RowHeightUtils = /*#__PURE__*/function () {
268
329
  });
269
330
  }
270
331
  }]);
271
- return RowHeightUtils;
272
- }();
332
+ return RowHeightVirtualizationUtils;
333
+ }(RowHeightUtils);
273
334
  /**
274
335
  * Hook for instantiating RowHeightUtils, setting internal class vars,
275
336
  * and setting up various row-height-related side effects
276
337
  */
277
338
 
278
339
 
279
- exports.RowHeightUtils = RowHeightUtils;
340
+ exports.RowHeightVirtualizationUtils = RowHeightVirtualizationUtils;
280
341
 
281
342
  var useRowHeightUtils = function useRowHeightUtils(_ref2) {
282
- var gridRef = _ref2.gridRef,
283
- outerGridElementRef = _ref2.outerGridElementRef,
284
- gridItemsRenderedRef = _ref2.gridItemsRenderedRef,
343
+ var virtualization = _ref2.virtualization,
344
+ rowHeightsOptions = _ref2.rowHeightsOptions,
285
345
  gridStyles = _ref2.gridStyles,
286
- columns = _ref2.columns,
287
- rowHeightsOptions = _ref2.rowHeightsOptions;
346
+ columns = _ref2.columns;
288
347
  var forceRenderRef = (0, _services.useLatest)((0, _services.useForceRender)());
289
348
 
290
349
  var _useState = (0, _react.useState)(function () {
291
- return new RowHeightUtils(gridRef, outerGridElementRef, gridItemsRenderedRef, forceRenderRef);
350
+ if (virtualization) {
351
+ var _gridRef = virtualization.gridRef,
352
+ _outerGridElementRef = virtualization.outerGridElementRef,
353
+ _gridItemsRenderedRef = virtualization.gridItemsRenderedRef;
354
+ return new RowHeightVirtualizationUtils(_gridRef, _outerGridElementRef, _gridItemsRenderedRef, forceRenderRef);
355
+ } else {
356
+ return new RowHeightUtils();
357
+ }
292
358
  }),
293
359
  _useState2 = (0, _slicedToArray2.default)(_useState, 1),
294
360
  rowHeightUtils = _useState2[0]; // Forces a rerender whenever the row heights change, as this can cause the
@@ -141,7 +141,8 @@ var EuiAutoRefreshButton = function EuiAutoRefreshButton(_ref2) {
141
141
  isOpen: isPopoverOpen,
142
142
  closePopover: function closePopover() {
143
143
  setIsPopoverOpen(false);
144
- }
144
+ },
145
+ popoverScreenReaderText: isPaused ? autoRefeshLabelOff : autoRefeshLabelOn
145
146
  }, (0, _react2.jsx)(_refresh_interval.EuiRefreshInterval, {
146
147
  onRefreshChange: onRefreshChange,
147
148
  isPaused: isPaused,
@@ -67,6 +67,8 @@ var _range = require("./range.styles");
67
67
 
68
68
  var _dual_range = require("./dual_range.styles");
69
69
 
70
+ var _i18n = require("../../i18n");
71
+
70
72
  var _react2 = require("@emotion/react");
71
73
 
72
74
  var _excluded = ["className", "css", "compressed", "disabled", "fullWidth", "isLoading", "readOnly", "id", "max", "min", "name", "step", "showLabels", "showInput", "showTicks", "tickInterval", "ticks", "levels", "onBlur", "onChange", "onFocus", "showRange", "value", "isInvalid", "append", "prepend", "minInputProps", "maxInputProps", "isDraggable", "theme"];
@@ -558,6 +560,10 @@ var EuiDualRangeClass = /*#__PURE__*/function (_Component) {
558
560
  var rightThumbStyles = rightThumbColor ? _objectSpread(_objectSpread({}, rightThumbPosition), {}, {
559
561
  backgroundColor: (0, _range_levels_colors.euiRangeLevelColor)(rightThumbColor, theme.euiTheme)
560
562
  }) : rightThumbPosition;
563
+ var dualSliderScreenReaderInstructions = (0, _react2.jsx)(_i18n.EuiI18n, {
564
+ token: "euiDualRange.sliderScreenReaderInstructions",
565
+ default: "You are in a custom range slider. Use the Up and Down arrow keys to change the minimum value. Press Tab to interact with the maximum value."
566
+ });
561
567
  var theRange = (0, _react2.jsx)(_range_wrapper.EuiRangeWrapper, {
562
568
  css: cssStyles,
563
569
  className: classes,
@@ -613,8 +619,8 @@ var EuiDualRangeClass = /*#__PURE__*/function (_Component) {
613
619
  onFocus: _this2.onThumbFocus,
614
620
  onBlur: _this2.onThumbBlur,
615
621
  onKeyDown: _this2.handleDraggableKeyDown,
616
- "aria-describedby": _this2.props['aria-describedby'],
617
- "aria-label": _this2.props['aria-label']
622
+ "aria-describedby": showInputOnly ? undefined : _this2.props['aria-describedby'],
623
+ "aria-label": showInputOnly ? undefined : _this2.props['aria-label']
618
624
  }), (0, _react2.jsx)(_range_thumb.EuiRangeThumb, {
619
625
  min: min,
620
626
  max: Number(_this2.upperValue),
@@ -626,8 +632,8 @@ var EuiDualRangeClass = /*#__PURE__*/function (_Component) {
626
632
  onFocus: _this2.onThumbFocus,
627
633
  onBlur: _this2.onThumbBlur,
628
634
  style: (0, _global_styling.logicalStyles)(leftThumbStyles),
629
- "aria-describedby": _this2.props['aria-describedby'],
630
- "aria-label": _this2.props['aria-label']
635
+ "aria-describedby": showInputOnly ? undefined : _this2.props['aria-describedby'],
636
+ "aria-label": showInputOnly ? undefined : _this2.props['aria-label']
631
637
  }), (0, _react2.jsx)(_range_thumb.EuiRangeThumb, {
632
638
  min: Number(_this2.lowerValue),
633
639
  max: max,
@@ -639,8 +645,8 @@ var EuiDualRangeClass = /*#__PURE__*/function (_Component) {
639
645
  onFocus: _this2.onThumbFocus,
640
646
  onBlur: _this2.onThumbBlur,
641
647
  style: (0, _global_styling.logicalStyles)(rightThumbStyles),
642
- "aria-describedby": _this2.props['aria-describedby'],
643
- "aria-label": _this2.props['aria-label']
648
+ "aria-describedby": showInputOnly ? undefined : _this2.props['aria-describedby'],
649
+ "aria-label": showInputOnly ? undefined : _this2.props['aria-label']
644
650
  })), showRange && _this2.isValid && (0, _react2.jsx)(_range_highlight.EuiRangeHighlight, {
645
651
  showTicks: showTicks,
646
652
  min: Number(min),
@@ -673,7 +679,8 @@ var EuiDualRangeClass = /*#__PURE__*/function (_Component) {
673
679
  isOpen: this.state.isPopoverOpen,
674
680
  closePopover: this.closePopover,
675
681
  disableFocusTrap: true,
676
- onPanelResize: this.onResize
682
+ onPanelResize: this.onResize,
683
+ popoverScreenReaderText: dualSliderScreenReaderInstructions
677
684
  }, theRange) : undefined;
678
685
  return thePopover || theRange;
679
686
  }