@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.
- package/dist/eui_theme_dark.css +37 -6
- package/dist/eui_theme_dark.min.css +1 -1
- package/dist/eui_theme_light.css +37 -6
- package/dist/eui_theme_light.min.css +1 -1
- package/es/components/color_picker/color_palette_picker/color_palette_picker.js +5 -6
- package/es/components/datagrid/body/data_grid_body.js +19 -395
- package/es/components/datagrid/body/data_grid_body_custom.js +908 -0
- package/es/components/datagrid/body/data_grid_body_virtualized.js +1031 -0
- package/es/components/datagrid/body/data_grid_cell.js +16 -12
- package/es/components/datagrid/body/data_grid_cell_popover.js +32 -12
- package/es/components/datagrid/body/data_grid_cell_wrapper.js +132 -0
- package/es/components/datagrid/body/header/data_grid_header_row.js +3 -2
- package/es/components/datagrid/data_grid.js +21 -5
- package/es/components/datagrid/data_grid_types.js +18 -1
- package/es/components/datagrid/utils/row_heights.js +111 -31
- package/es/components/date_picker/auto_refresh/auto_refresh.js +2 -1
- package/es/components/form/range/dual_range.js +14 -7
- package/es/components/form/range/range.js +10 -3
- package/es/components/form/super_select/super_select.js +21 -18
- package/es/components/form/super_select/super_select_control.js +7 -14
- package/es/components/selectable/selectable.js +59 -36
- package/es/components/selectable/selectable_list/selectable_list.js +1 -1
- package/es/components/suggest/suggest.js +3 -10
- package/eui.d.ts +253 -146
- package/i18ntokens.json +89 -57
- package/lib/components/color_picker/color_palette_picker/color_palette_picker.js +5 -6
- package/lib/components/datagrid/body/data_grid_body.js +19 -416
- package/lib/components/datagrid/body/data_grid_body_custom.js +927 -0
- package/lib/components/datagrid/body/data_grid_body_virtualized.js +1059 -0
- package/lib/components/datagrid/body/data_grid_cell.js +16 -12
- package/lib/components/datagrid/body/data_grid_cell_popover.js +35 -12
- package/lib/components/datagrid/body/data_grid_cell_wrapper.js +147 -0
- package/lib/components/datagrid/body/header/data_grid_header_row.js +4 -2
- package/lib/components/datagrid/data_grid.js +21 -4
- package/lib/components/datagrid/data_grid_types.js +22 -1
- package/lib/components/datagrid/utils/row_heights.js +116 -33
- package/lib/components/date_picker/auto_refresh/auto_refresh.js +2 -1
- package/lib/components/form/range/dual_range.js +14 -7
- package/lib/components/form/range/range.js +10 -3
- package/lib/components/form/super_select/super_select.js +21 -18
- package/lib/components/form/super_select/super_select_control.js +7 -16
- package/lib/components/selectable/selectable.js +59 -36
- package/lib/components/selectable/selectable_list/selectable_list.js +1 -1
- package/lib/components/suggest/suggest.js +3 -12
- package/optimize/es/components/datagrid/body/data_grid_body.js +17 -387
- package/optimize/es/components/datagrid/body/data_grid_body_custom.js +176 -0
- package/optimize/es/components/datagrid/body/data_grid_body_virtualized.js +311 -0
- package/optimize/es/components/datagrid/body/data_grid_cell.js +12 -9
- package/optimize/es/components/datagrid/body/data_grid_cell_popover.js +30 -12
- package/optimize/es/components/datagrid/body/data_grid_cell_wrapper.js +127 -0
- package/optimize/es/components/datagrid/body/header/data_grid_header_row.js +3 -2
- package/optimize/es/components/datagrid/data_grid.js +8 -5
- package/optimize/es/components/datagrid/data_grid_types.js +18 -1
- package/optimize/es/components/datagrid/utils/row_heights.js +100 -31
- package/optimize/es/components/date_picker/auto_refresh/auto_refresh.js +2 -1
- package/optimize/es/components/form/range/dual_range.js +14 -7
- package/optimize/es/components/form/range/range.js +10 -3
- package/optimize/es/components/form/super_select/super_select.js +16 -12
- package/optimize/es/components/form/super_select/super_select_control.js +7 -14
- package/optimize/es/components/selectable/selectable.js +50 -34
- package/optimize/es/components/selectable/selectable_list/selectable_list.js +1 -1
- package/optimize/es/components/suggest/suggest.js +3 -10
- package/optimize/lib/components/datagrid/body/data_grid_body.js +16 -409
- package/optimize/lib/components/datagrid/body/data_grid_body_custom.js +198 -0
- package/optimize/lib/components/datagrid/body/data_grid_body_virtualized.js +342 -0
- package/optimize/lib/components/datagrid/body/data_grid_cell.js +12 -9
- package/optimize/lib/components/datagrid/body/data_grid_cell_popover.js +33 -19
- package/optimize/lib/components/datagrid/body/data_grid_cell_wrapper.js +144 -0
- package/optimize/lib/components/datagrid/body/header/data_grid_header_row.js +4 -2
- package/optimize/lib/components/datagrid/data_grid.js +8 -4
- package/optimize/lib/components/datagrid/data_grid_types.js +22 -1
- package/optimize/lib/components/datagrid/utils/row_heights.js +103 -37
- package/optimize/lib/components/date_picker/auto_refresh/auto_refresh.js +2 -1
- package/optimize/lib/components/form/range/dual_range.js +14 -7
- package/optimize/lib/components/form/range/range.js +10 -3
- package/optimize/lib/components/form/super_select/super_select.js +16 -11
- package/optimize/lib/components/form/super_select/super_select_control.js +7 -16
- package/optimize/lib/components/selectable/selectable.js +50 -35
- package/optimize/lib/components/selectable/selectable_list/selectable_list.js +1 -1
- package/optimize/lib/components/suggest/suggest.js +3 -12
- package/package.json +1 -1
- package/src/components/datagrid/_data_grid.scss +7 -0
- package/src/components/datagrid/_data_grid_data_row.scss +1 -0
- package/src/components/datagrid/body/footer/_data_grid_footer_row.scss +1 -0
- package/src/components/datagrid/body/header/_data_grid_header_row.scss +1 -0
- package/src/components/form/super_select/_super_select_control.scss +4 -0
- package/src/components/selectable/selectable_list/_selectable_list.scss +10 -3
- package/src/themes/amsterdam/global_styling/mixins/_states.scss +17 -8
- package/test-env/components/color_picker/color_palette_picker/color_palette_picker.js +5 -6
- package/test-env/components/datagrid/body/data_grid_body.js +18 -415
- package/test-env/components/datagrid/body/data_grid_body_custom.js +908 -0
- package/test-env/components/datagrid/body/data_grid_body_virtualized.js +1057 -0
- package/test-env/components/datagrid/body/data_grid_cell.js +16 -12
- package/test-env/components/datagrid/body/data_grid_cell_popover.js +33 -19
- package/test-env/components/datagrid/body/data_grid_cell_wrapper.js +144 -0
- package/test-env/components/datagrid/body/header/data_grid_header_row.js +4 -2
- package/test-env/components/datagrid/data_grid.js +21 -4
- package/test-env/components/datagrid/data_grid_types.js +22 -1
- package/test-env/components/datagrid/utils/row_heights.js +103 -37
- package/test-env/components/date_picker/auto_refresh/auto_refresh.js +2 -1
- package/test-env/components/form/range/dual_range.js +14 -7
- package/test-env/components/form/range/range.js +10 -3
- package/test-env/components/form/super_select/super_select.js +21 -17
- package/test-env/components/form/super_select/super_select_control.js +7 -16
- package/test-env/components/selectable/selectable.js +58 -36
- package/test-env/components/selectable/selectable_list/selectable_list.js +1 -1
- package/test-env/components/suggest/suggest.js +3 -12
|
@@ -598,7 +598,7 @@ EuiDataGridCellContent.propTypes = {
|
|
|
598
598
|
*/
|
|
599
599
|
scrollAnchorRow: _propTypes.default.oneOf(["start", "center", undefined])
|
|
600
600
|
}),
|
|
601
|
-
rowHeightUtils: _propTypes.default.any,
|
|
601
|
+
rowHeightUtils: _propTypes.default.oneOfType([_propTypes.default.any.isRequired, _propTypes.default.any.isRequired]),
|
|
602
602
|
pagination: _propTypes.default.shape({
|
|
603
603
|
/**
|
|
604
604
|
* The index of the current page, starts at 0 for the first page
|
|
@@ -863,7 +863,8 @@ var EuiDataGridCell = /*#__PURE__*/function (_Component) {
|
|
|
863
863
|
if (_this.isPopoverOpen()) {
|
|
864
864
|
var _this$props$popoverCo2 = _this.props.popoverContext,
|
|
865
865
|
setPopoverAnchor = _this$props$popoverCo2.setPopoverAnchor,
|
|
866
|
-
setPopoverContent = _this$props$popoverCo2.setPopoverContent
|
|
866
|
+
setPopoverContent = _this$props$popoverCo2.setPopoverContent,
|
|
867
|
+
setCellPopoverProps = _this$props$popoverCo2.setCellPopoverProps; // Set popover anchor
|
|
867
868
|
|
|
868
869
|
var cellAnchorEl = _this.popoverAnchorRef.current;
|
|
869
870
|
setPopoverAnchor(cellAnchorEl); // Set popover contents with cell content
|
|
@@ -889,7 +890,8 @@ var EuiDataGridCell = /*#__PURE__*/function (_Component) {
|
|
|
889
890
|
cellActions: (0, _react2.jsx)(_data_grid_cell_actions.EuiDataGridCellPopoverActions, (0, _extends2.default)({}, sharedProps, {
|
|
890
891
|
column: column
|
|
891
892
|
})),
|
|
892
|
-
DefaultCellPopover: _data_grid_cell_popover.DefaultCellPopover
|
|
893
|
+
DefaultCellPopover: _data_grid_cell_popover.DefaultCellPopover,
|
|
894
|
+
setCellPopoverProps: setCellPopoverProps
|
|
893
895
|
}), (0, _react2.jsx)(CellElement, (0, _extends2.default)({}, sharedProps, {
|
|
894
896
|
setCellProps: _this.setCellProps,
|
|
895
897
|
isExpandable: true,
|
|
@@ -942,7 +944,7 @@ var EuiDataGridCell = /*#__PURE__*/function (_Component) {
|
|
|
942
944
|
}, {
|
|
943
945
|
key: "componentDidUpdate",
|
|
944
946
|
value: function componentDidUpdate(prevProps) {
|
|
945
|
-
var _this$props$rowHeight, _prevProps$rowHeights, _this$props$rowHeight2, _this$props$style, _prevProps$style;
|
|
947
|
+
var _this$props$rowHeight, _prevProps$rowHeights, _this$props$rowHeight2, _this$props$rowHeight3, _this$props$style, _prevProps$style;
|
|
946
948
|
|
|
947
949
|
this.recalculateAutoHeight();
|
|
948
950
|
|
|
@@ -950,16 +952,17 @@ var EuiDataGridCell = /*#__PURE__*/function (_Component) {
|
|
|
950
952
|
this.recalculateLineHeight();
|
|
951
953
|
}
|
|
952
954
|
|
|
953
|
-
if ((_this$props$rowHeight2 = this.props.
|
|
955
|
+
if ((_this$props$rowHeight2 = this.props.rowHeightUtils) !== null && _this$props$rowHeight2 !== void 0 && _this$props$rowHeight2.compensateForLayoutShift && (_this$props$rowHeight3 = this.props.rowHeightsOptions) !== null && _this$props$rowHeight3 !== void 0 && _this$props$rowHeight3.scrollAnchorRow && this.props.colIndex === 0 && // once per row
|
|
954
956
|
this.props.columnId === prevProps.columnId && // if this is still the same column
|
|
955
957
|
this.props.rowIndex === prevProps.rowIndex && // if this is still the same row
|
|
956
958
|
((_this$props$style = this.props.style) === null || _this$props$style === void 0 ? void 0 : _this$props$style.top) !== ((_prevProps$style = prevProps.style) === null || _prevProps$style === void 0 ? void 0 : _prevProps$style.top) // if the top position has changed
|
|
957
959
|
) {
|
|
958
|
-
var _prevProps$style2, _this$props$style2, _this$props$
|
|
960
|
+
var _prevProps$style2, _this$props$style2, _this$props$rowHeight4;
|
|
959
961
|
|
|
960
962
|
var previousTop = parseFloat((_prevProps$style2 = prevProps.style) === null || _prevProps$style2 === void 0 ? void 0 : _prevProps$style2.top);
|
|
961
|
-
var currentTop = parseFloat((_this$props$style2 = this.props.style) === null || _this$props$style2 === void 0 ? void 0 : _this$props$style2.top);
|
|
962
|
-
|
|
963
|
+
var currentTop = parseFloat((_this$props$style2 = this.props.style) === null || _this$props$style2 === void 0 ? void 0 : _this$props$style2.top); // @ts-ignore We've already checked that this virtualization util is available above
|
|
964
|
+
|
|
965
|
+
this.props.rowHeightUtils.compensateForLayoutShift(this.props.rowIndex, currentTop - previousTop, (_this$props$rowHeight4 = this.props.rowHeightsOptions) === null || _this$props$rowHeight4 === void 0 ? void 0 : _this$props$rowHeight4.scrollAnchorRow);
|
|
963
966
|
}
|
|
964
967
|
|
|
965
968
|
if (this.props.popoverContext.popoverIsOpen !== prevProps.popoverContext.popoverIsOpen || this.props.popoverContext.cellLocation !== prevProps.popoverContext.cellLocation || this.props.renderCellPopover !== prevProps.renderCellPopover) {
|
|
@@ -1047,8 +1050,8 @@ var EuiDataGridCell = /*#__PURE__*/function (_Component) {
|
|
|
1047
1050
|
});
|
|
1048
1051
|
|
|
1049
1052
|
cellProps.style = _objectSpread(_objectSpread({}, style), {}, {
|
|
1050
|
-
//
|
|
1051
|
-
top: 0,
|
|
1053
|
+
// set by react-window or the custom renderer
|
|
1054
|
+
top: style !== null && style !== void 0 && style.top ? 0 : undefined,
|
|
1052
1055
|
// The cell's row will handle top positioning
|
|
1053
1056
|
width: width,
|
|
1054
1057
|
// column width, can be undefined
|
|
@@ -1595,7 +1598,8 @@ EuiDataGridCell.propTypes = {
|
|
|
1595
1598
|
openCellPopover: _propTypes.default.func.isRequired,
|
|
1596
1599
|
closeCellPopover: _propTypes.default.func.isRequired,
|
|
1597
1600
|
setPopoverAnchor: _propTypes.default.func.isRequired,
|
|
1598
|
-
setPopoverContent: _propTypes.default.func.isRequired
|
|
1601
|
+
setPopoverContent: _propTypes.default.func.isRequired,
|
|
1602
|
+
setCellPopoverProps: _propTypes.default.func.isRequired
|
|
1599
1603
|
}).isRequired,
|
|
1600
1604
|
renderCellValue: _propTypes.default.oneOfType([_propTypes.default.func.isRequired, _propTypes.default.func.isRequired]).isRequired,
|
|
1601
1605
|
renderCellPopover: _propTypes.default.oneOfType([_propTypes.default.func.isRequired, _propTypes.default.func.isRequired]),
|
|
@@ -1638,7 +1642,7 @@ EuiDataGridCell.propTypes = {
|
|
|
1638
1642
|
*/
|
|
1639
1643
|
scrollAnchorRow: _propTypes.default.oneOf(["start", "center", undefined])
|
|
1640
1644
|
}),
|
|
1641
|
-
rowHeightUtils: _propTypes.default.any,
|
|
1645
|
+
rowHeightUtils: _propTypes.default.oneOfType([_propTypes.default.any.isRequired, _propTypes.default.any.isRequired]),
|
|
1642
1646
|
rowManager: _propTypes.default.shape({
|
|
1643
1647
|
getRow: _propTypes.default.func.isRequired
|
|
1644
1648
|
}),
|
|
@@ -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
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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
|
-
|
|
114
|
-
panelProps: {
|
|
124
|
+
panelPaddingSize: "s"
|
|
125
|
+
}, cellPopoverProps, {
|
|
126
|
+
panelProps: _objectSpread({
|
|
115
127
|
'data-test-subj': 'euiDataGridExpansionPopover'
|
|
116
|
-
},
|
|
117
|
-
|
|
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
|
-
|
|
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;
|
|
@@ -23,6 +23,8 @@ var _data_grid_control_header_cell = require("./data_grid_control_header_cell");
|
|
|
23
23
|
|
|
24
24
|
var _data_grid_header_cell = require("./data_grid_header_cell");
|
|
25
25
|
|
|
26
|
+
var _data_grid_types = require("../../data_grid_types");
|
|
27
|
+
|
|
26
28
|
var _react2 = require("@emotion/react");
|
|
27
29
|
|
|
28
30
|
var _excluded = ["leadingControlColumns", "trailingControlColumns", "columns", "schema", "schemaDetectors", "columnWidths", "defaultColumnWidth", "className", "setColumnWidth", "setVisibleColumns", "switchColumnPos", "headerIsInteractive", "data-test-subj"];
|
|
@@ -33,9 +35,9 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
33
35
|
|
|
34
36
|
var EuiDataGridHeaderRow = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
35
37
|
var _props$leadingControl = props.leadingControlColumns,
|
|
36
|
-
leadingControlColumns = _props$leadingControl === void 0 ?
|
|
38
|
+
leadingControlColumns = _props$leadingControl === void 0 ? _data_grid_types.emptyControlColumns : _props$leadingControl,
|
|
37
39
|
_props$trailingContro = props.trailingControlColumns,
|
|
38
|
-
trailingControlColumns = _props$trailingContro === void 0 ?
|
|
40
|
+
trailingControlColumns = _props$trailingContro === void 0 ? _data_grid_types.emptyControlColumns : _props$trailingContro,
|
|
39
41
|
columns = props.columns,
|
|
40
42
|
schema = props.schema,
|
|
41
43
|
schemaDetectors = props.schemaDetectors,
|
|
@@ -57,9 +57,11 @@ var _data_grid_schema = require("./utils/data_grid_schema");
|
|
|
57
57
|
|
|
58
58
|
var _ref = require("./utils/ref");
|
|
59
59
|
|
|
60
|
+
var _data_grid_types = require("./data_grid_types");
|
|
61
|
+
|
|
60
62
|
var _react2 = require("@emotion/react");
|
|
61
63
|
|
|
62
|
-
var _excluded = ["leadingControlColumns", "trailingControlColumns", "columns", "columnVisibility", "schemaDetectors", "rowCount", "renderCellValue", "renderCellPopover", "renderFooterCellValue", "className", "gridStyle", "toolbarVisibility", "pagination", "sorting", "inMemory", "onColumnResize", "minSizeForControls", "height", "width", "rowHeightsOptions", "virtualizationOptions"],
|
|
64
|
+
var _excluded = ["leadingControlColumns", "trailingControlColumns", "columns", "columnVisibility", "schemaDetectors", "rowCount", "renderCellValue", "renderCellPopover", "renderFooterCellValue", "className", "gridStyle", "toolbarVisibility", "pagination", "sorting", "inMemory", "onColumnResize", "minSizeForControls", "height", "width", "rowHeightsOptions", "virtualizationOptions", "renderCustomGridBody"],
|
|
63
65
|
_excluded2 = ["focusProps"];
|
|
64
66
|
|
|
65
67
|
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); }
|
|
@@ -103,9 +105,9 @@ var EuiDataGrid = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
103
105
|
var _gridItemsRendered$cu;
|
|
104
106
|
|
|
105
107
|
var _props$leadingControl = props.leadingControlColumns,
|
|
106
|
-
leadingControlColumns = _props$leadingControl === void 0 ?
|
|
108
|
+
leadingControlColumns = _props$leadingControl === void 0 ? _data_grid_types.emptyControlColumns : _props$leadingControl,
|
|
107
109
|
_props$trailingContro = props.trailingControlColumns,
|
|
108
|
-
trailingControlColumns = _props$trailingContro === void 0 ?
|
|
110
|
+
trailingControlColumns = _props$trailingContro === void 0 ? _data_grid_types.emptyControlColumns : _props$trailingContro,
|
|
109
111
|
columns = props.columns,
|
|
110
112
|
columnVisibility = props.columnVisibility,
|
|
111
113
|
schemaDetectors = props.schemaDetectors,
|
|
@@ -126,6 +128,7 @@ var EuiDataGrid = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
126
128
|
width = props.width,
|
|
127
129
|
_rowHeightsOptions = props.rowHeightsOptions,
|
|
128
130
|
virtualizationOptions = props.virtualizationOptions,
|
|
131
|
+
renderCustomGridBody = props.renderCustomGridBody,
|
|
129
132
|
rest = (0, _objectWithoutProperties2.default)(props, _excluded);
|
|
130
133
|
/**
|
|
131
134
|
* Merge consumer settings with defaults
|
|
@@ -402,7 +405,8 @@ var EuiDataGrid = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
402
405
|
gridWidth: gridWidth,
|
|
403
406
|
gridRef: gridRef,
|
|
404
407
|
gridItemsRendered: gridItemsRendered,
|
|
405
|
-
wrapperRef: contentRef
|
|
408
|
+
wrapperRef: contentRef,
|
|
409
|
+
renderCustomGridBody: renderCustomGridBody
|
|
406
410
|
})), pagination && props['aria-labelledby'] && (0, _react2.jsx)("p", {
|
|
407
411
|
id: ariaLabelledById,
|
|
408
412
|
hidden: true
|
|
@@ -1058,6 +1062,19 @@ EuiDataGrid.propTypes = {
|
|
|
1058
1062
|
*/
|
|
1059
1063
|
renderFooterCellValue: _propTypes.default.oneOfType([_propTypes.default.func.isRequired, _propTypes.default.func.isRequired]),
|
|
1060
1064
|
|
|
1065
|
+
/**
|
|
1066
|
+
* An optional function called to completely customize and control the rendering of
|
|
1067
|
+
* EuiDataGrid's body and cell placement. This can be used to, e.g. remove EuiDataGrid's
|
|
1068
|
+
* virtualization library, or roll your own.
|
|
1069
|
+
*
|
|
1070
|
+
* This component is **only** meant as an escape hatch for extremely custom use cases.
|
|
1071
|
+
*
|
|
1072
|
+
* Behind the scenes, this function is treated as a React component,
|
|
1073
|
+
* allowing hooks, context, and other React concepts to be used.
|
|
1074
|
+
* It receives #EuiDataGridCustomBodyProps as its only argument.
|
|
1075
|
+
*/
|
|
1076
|
+
renderCustomGridBody: _propTypes.default.func,
|
|
1077
|
+
|
|
1061
1078
|
/**
|
|
1062
1079
|
* Defines the initial style of the grid. Accepts a partial #EuiDataGridStyle object.
|
|
1063
1080
|
* Settings provided may be overwritten or merged with user defined preferences if `toolbarVisibility.showDisplaySelector.allowDensity = true` (which is the default).
|
|
@@ -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;
|