@elastic/eui 116.2.0 → 116.3.1
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/es/components/avatar/avatar.js +18 -5
- package/es/components/avatar/avatar.styles.js +16 -16
- package/es/components/banner/banner.js +202 -0
- package/es/components/banner/banner.styles.js +76 -0
- package/es/components/banner/index.js +9 -0
- package/es/components/basic_table/basic_table.js +21 -10
- package/es/components/basic_table/collapsed_item_actions.js +5 -4
- package/es/components/basic_table/default_item_action.js +3 -5
- package/es/components/breadcrumbs/_breadcrumb_content.js +29 -19
- package/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +2 -1
- package/es/components/context_menu/context_menu_panel_title.js +0 -12
- package/es/components/datagrid/body/cell/data_grid_cell_actions.js +11 -7
- package/es/components/datagrid/controls/display_selector.js +2 -1
- package/es/components/datagrid/controls/keyboard_shortcuts.js +2 -1
- package/es/components/date_picker/auto_refresh/auto_refresh.js +7 -4
- package/es/components/date_picker/react-datepicker/src/index.js +1 -5
- package/es/components/date_picker/super_date_picker/date_popover/absolute_tab.js +6 -3
- package/es/components/date_picker/super_date_picker/date_popover/date_popover_button.js +10 -2
- package/es/components/date_picker/super_date_picker/date_popover/date_popover_button.styles.js +2 -1
- package/es/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +8 -5
- package/es/components/form/field_password/field_password.js +6 -3
- package/es/components/header/header.a11y.js +1 -1
- package/es/components/index.js +1 -0
- package/es/components/markdown_editor/markdown_editor_help_button.js +7 -4
- package/es/components/pagination/pagination_button_arrow.js +6 -2
- package/es/components/panel/panel.styles.js +4 -4
- package/es/components/panel/split_panel/split_panel.styles.js +1 -1
- package/es/components/search_bar/search_bar.js +20 -16
- package/es/components/search_bar/search_box.js +4 -2
- package/es/components/selectable/selectable_list/selectable_list.js +1 -1
- package/es/components/selectable/selectable_list/selectable_list.styles.js +1 -1
- package/es/components/selectable/selectable_templates/selectable_template_sitewide.js +2 -1
- package/es/components/table/sticky_header/context.js +32 -0
- package/es/components/table/sticky_header/index.js +10 -0
- package/es/components/table/sticky_header/sticky_header.js +151 -0
- package/es/components/table/sticky_header/sticky_header.styles.js +43 -0
- package/es/components/table/store/provider.js +37 -0
- package/es/components/table/store/store.js +82 -0
- package/es/components/table/store/use_unique_column_id.js +25 -0
- package/es/components/table/table.js +28 -3
- package/es/components/table/table.styles.js +4 -4
- package/es/components/table/table_header_cell.js +115 -48
- package/es/components/table/table_header_cell_checkbox.js +58 -25
- package/es/components/text_truncate/text_truncate.js +8 -3
- package/es/components/tool_tip/tool_tip.js +1 -1
- package/es/components/tool_tip/tool_tip.styles.js +14 -5
- package/es/utils/publisher.js +53 -0
- package/eui.d.ts +1284 -975
- package/i18ntokens.json +2390 -2372
- package/lib/components/avatar/avatar.js +18 -5
- package/lib/components/avatar/avatar.styles.js +16 -16
- package/lib/components/banner/banner.js +211 -0
- package/lib/components/banner/banner.styles.js +80 -0
- package/lib/components/banner/index.js +12 -0
- package/lib/components/basic_table/basic_table.js +21 -10
- package/lib/components/basic_table/collapsed_item_actions.js +5 -4
- package/lib/components/basic_table/default_item_action.js +3 -5
- package/lib/components/breadcrumbs/_breadcrumb_content.js +29 -19
- package/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +2 -1
- package/lib/components/context_menu/context_menu_panel_title.js +0 -12
- package/lib/components/datagrid/body/cell/data_grid_cell_actions.js +11 -7
- package/lib/components/datagrid/controls/display_selector.js +2 -1
- package/lib/components/datagrid/controls/keyboard_shortcuts.js +2 -1
- package/lib/components/date_picker/auto_refresh/auto_refresh.js +7 -4
- package/lib/components/date_picker/react-datepicker/src/index.js +0 -4
- package/lib/components/date_picker/super_date_picker/date_popover/absolute_tab.js +6 -3
- package/lib/components/date_picker/super_date_picker/date_popover/date_popover_button.js +10 -2
- package/lib/components/date_picker/super_date_picker/date_popover/date_popover_button.styles.js +2 -1
- package/lib/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +8 -5
- package/lib/components/form/field_password/field_password.js +6 -3
- package/lib/components/header/header.a11y.js +1 -1
- package/lib/components/index.js +11 -0
- package/lib/components/markdown_editor/markdown_editor_help_button.js +7 -4
- package/lib/components/pagination/pagination_button_arrow.js +6 -2
- package/lib/components/panel/panel.styles.js +4 -4
- package/lib/components/panel/split_panel/split_panel.styles.js +1 -1
- package/lib/components/search_bar/search_bar.js +20 -16
- package/lib/components/search_bar/search_box.js +4 -2
- package/lib/components/selectable/selectable_list/selectable_list.js +1 -1
- package/lib/components/selectable/selectable_list/selectable_list.styles.js +1 -1
- package/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +2 -1
- package/lib/components/table/sticky_header/context.js +41 -0
- package/lib/components/table/sticky_header/index.js +19 -0
- package/lib/components/table/sticky_header/sticky_header.js +156 -0
- package/lib/components/table/sticky_header/sticky_header.styles.js +47 -0
- package/lib/components/table/store/provider.js +46 -0
- package/lib/components/table/store/store.js +87 -0
- package/lib/components/table/store/use_unique_column_id.js +34 -0
- package/lib/components/table/table.js +28 -3
- package/lib/components/table/table.styles.js +4 -4
- package/lib/components/table/table_header_cell.js +117 -48
- package/lib/components/table/table_header_cell_checkbox.js +61 -25
- package/lib/components/text_truncate/text_truncate.js +8 -3
- package/lib/components/tool_tip/tool_tip.js +1 -1
- package/lib/components/tool_tip/tool_tip.styles.js +14 -5
- package/lib/utils/publisher.js +59 -0
- package/optimize/es/components/avatar/avatar.js +16 -4
- package/optimize/es/components/avatar/avatar.styles.js +16 -16
- package/optimize/es/components/banner/banner.js +112 -0
- package/optimize/es/components/banner/banner.styles.js +76 -0
- package/optimize/es/components/banner/index.js +9 -0
- package/optimize/es/components/basic_table/basic_table.js +21 -10
- package/optimize/es/components/basic_table/collapsed_item_actions.js +5 -4
- package/optimize/es/components/basic_table/default_item_action.js +3 -5
- package/optimize/es/components/breadcrumbs/_breadcrumb_content.js +27 -18
- package/optimize/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +2 -1
- package/optimize/es/components/datagrid/body/cell/data_grid_cell_actions.js +11 -7
- package/optimize/es/components/datagrid/controls/display_selector.js +2 -1
- package/optimize/es/components/datagrid/controls/keyboard_shortcuts.js +2 -1
- package/optimize/es/components/date_picker/auto_refresh/auto_refresh.js +7 -4
- package/optimize/es/components/date_picker/react-datepicker/src/index.js +1 -5
- package/optimize/es/components/date_picker/super_date_picker/date_popover/absolute_tab.js +6 -3
- package/optimize/es/components/date_picker/super_date_picker/date_popover/date_popover_button.js +10 -2
- package/optimize/es/components/date_picker/super_date_picker/date_popover/date_popover_button.styles.js +2 -1
- package/optimize/es/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +8 -5
- package/optimize/es/components/form/field_password/field_password.js +6 -3
- package/optimize/es/components/header/header.a11y.js +1 -1
- package/optimize/es/components/index.js +1 -0
- package/optimize/es/components/markdown_editor/markdown_editor_help_button.js +7 -4
- package/optimize/es/components/pagination/pagination_button_arrow.js +6 -2
- package/optimize/es/components/panel/panel.styles.js +4 -4
- package/optimize/es/components/panel/split_panel/split_panel.styles.js +1 -1
- package/optimize/es/components/search_bar/search_bar.js +20 -16
- package/optimize/es/components/search_bar/search_box.js +4 -2
- package/optimize/es/components/selectable/selectable_list/selectable_list.js +1 -1
- package/optimize/es/components/selectable/selectable_list/selectable_list.styles.js +1 -1
- package/optimize/es/components/table/sticky_header/context.js +32 -0
- package/optimize/es/components/table/sticky_header/index.js +10 -0
- package/optimize/es/components/table/sticky_header/sticky_header.js +146 -0
- package/optimize/es/components/table/sticky_header/sticky_header.styles.js +43 -0
- package/optimize/es/components/table/store/provider.js +37 -0
- package/optimize/es/components/table/store/store.js +82 -0
- package/optimize/es/components/table/store/use_unique_column_id.js +25 -0
- package/optimize/es/components/table/table.js +15 -3
- package/optimize/es/components/table/table.styles.js +4 -4
- package/optimize/es/components/table/table_header_cell.js +115 -48
- package/optimize/es/components/table/table_header_cell_checkbox.js +58 -25
- package/optimize/es/components/text_truncate/text_truncate.js +8 -3
- package/optimize/es/components/tool_tip/tool_tip.js +1 -1
- package/optimize/es/components/tool_tip/tool_tip.styles.js +14 -5
- package/optimize/es/utils/publisher.js +53 -0
- package/optimize/lib/components/avatar/avatar.js +16 -4
- package/optimize/lib/components/avatar/avatar.styles.js +16 -16
- package/optimize/lib/components/banner/banner.js +121 -0
- package/optimize/lib/components/banner/banner.styles.js +80 -0
- package/optimize/lib/components/banner/index.js +12 -0
- package/optimize/lib/components/basic_table/basic_table.js +21 -10
- package/optimize/lib/components/basic_table/collapsed_item_actions.js +5 -4
- package/optimize/lib/components/basic_table/default_item_action.js +3 -5
- package/optimize/lib/components/breadcrumbs/_breadcrumb_content.js +27 -18
- package/optimize/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +2 -1
- package/optimize/lib/components/datagrid/body/cell/data_grid_cell_actions.js +11 -7
- package/optimize/lib/components/datagrid/controls/display_selector.js +2 -1
- package/optimize/lib/components/datagrid/controls/keyboard_shortcuts.js +2 -1
- package/optimize/lib/components/date_picker/auto_refresh/auto_refresh.js +7 -4
- package/optimize/lib/components/date_picker/react-datepicker/src/index.js +0 -4
- package/optimize/lib/components/date_picker/super_date_picker/date_popover/absolute_tab.js +6 -3
- package/optimize/lib/components/date_picker/super_date_picker/date_popover/date_popover_button.js +10 -2
- package/optimize/lib/components/date_picker/super_date_picker/date_popover/date_popover_button.styles.js +2 -1
- package/optimize/lib/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +8 -5
- package/optimize/lib/components/form/field_password/field_password.js +6 -3
- package/optimize/lib/components/header/header.a11y.js +1 -1
- package/optimize/lib/components/index.js +11 -0
- package/optimize/lib/components/markdown_editor/markdown_editor_help_button.js +7 -4
- package/optimize/lib/components/pagination/pagination_button_arrow.js +6 -2
- package/optimize/lib/components/panel/panel.styles.js +4 -4
- package/optimize/lib/components/panel/split_panel/split_panel.styles.js +1 -1
- package/optimize/lib/components/search_bar/search_bar.js +20 -16
- package/optimize/lib/components/search_bar/search_box.js +4 -2
- package/optimize/lib/components/selectable/selectable_list/selectable_list.js +1 -1
- package/optimize/lib/components/selectable/selectable_list/selectable_list.styles.js +1 -1
- package/optimize/lib/components/table/sticky_header/context.js +41 -0
- package/optimize/lib/components/table/sticky_header/index.js +19 -0
- package/optimize/lib/components/table/sticky_header/sticky_header.js +156 -0
- package/optimize/lib/components/table/sticky_header/sticky_header.styles.js +47 -0
- package/optimize/lib/components/table/store/provider.js +46 -0
- package/optimize/lib/components/table/store/store.js +87 -0
- package/optimize/lib/components/table/store/use_unique_column_id.js +34 -0
- package/optimize/lib/components/table/table.js +15 -3
- package/optimize/lib/components/table/table.styles.js +4 -4
- package/optimize/lib/components/table/table_header_cell.js +118 -48
- package/optimize/lib/components/table/table_header_cell_checkbox.js +61 -25
- package/optimize/lib/components/text_truncate/text_truncate.js +8 -3
- package/optimize/lib/components/tool_tip/tool_tip.js +1 -1
- package/optimize/lib/components/tool_tip/tool_tip.styles.js +14 -5
- package/optimize/lib/utils/publisher.js +59 -0
- package/package.json +2 -2
- package/test-env/components/avatar/avatar.js +18 -5
- package/test-env/components/avatar/avatar.styles.js +16 -16
- package/test-env/components/banner/banner.js +210 -0
- package/test-env/components/banner/banner.styles.js +80 -0
- package/test-env/components/banner/index.js +12 -0
- package/test-env/components/basic_table/basic_table.js +21 -10
- package/test-env/components/basic_table/collapsed_item_actions.js +5 -4
- package/test-env/components/basic_table/default_item_action.js +3 -5
- package/test-env/components/breadcrumbs/_breadcrumb_content.js +29 -19
- package/test-env/components/combo_box/combo_box_options_list/combo_box_options_list.js +2 -1
- package/test-env/components/context_menu/context_menu_panel_title.js +0 -12
- package/test-env/components/datagrid/body/cell/data_grid_cell_actions.js +11 -7
- package/test-env/components/datagrid/controls/display_selector.js +2 -1
- package/test-env/components/datagrid/controls/keyboard_shortcuts.js +2 -1
- package/test-env/components/date_picker/auto_refresh/auto_refresh.js +7 -4
- package/test-env/components/date_picker/react-datepicker/src/index.js +0 -4
- package/test-env/components/date_picker/super_date_picker/date_popover/absolute_tab.js +6 -3
- package/test-env/components/date_picker/super_date_picker/date_popover/date_popover_button.js +10 -2
- package/test-env/components/date_picker/super_date_picker/date_popover/date_popover_button.styles.js +2 -1
- package/test-env/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +8 -5
- package/test-env/components/form/field_password/field_password.js +6 -3
- package/test-env/components/header/header.a11y.js +1 -1
- package/test-env/components/index.js +11 -0
- package/test-env/components/markdown_editor/markdown_editor_help_button.js +7 -4
- package/test-env/components/pagination/pagination_button_arrow.js +6 -2
- package/test-env/components/panel/panel.styles.js +4 -4
- package/test-env/components/panel/split_panel/split_panel.styles.js +1 -1
- package/test-env/components/search_bar/search_bar.js +20 -16
- package/test-env/components/search_bar/search_box.js +4 -2
- package/test-env/components/selectable/selectable_list/selectable_list.js +1 -1
- package/test-env/components/selectable/selectable_list/selectable_list.styles.js +1 -1
- package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.js +2 -1
- package/test-env/components/table/sticky_header/context.js +41 -0
- package/test-env/components/table/sticky_header/index.js +19 -0
- package/test-env/components/table/sticky_header/sticky_header.js +156 -0
- package/test-env/components/table/sticky_header/sticky_header.styles.js +47 -0
- package/test-env/components/table/store/provider.js +46 -0
- package/test-env/components/table/store/store.js +87 -0
- package/test-env/components/table/store/use_unique_column_id.js +34 -0
- package/test-env/components/table/table.js +28 -3
- package/test-env/components/table/table.styles.js +4 -4
- package/test-env/components/table/table_header_cell.js +118 -48
- package/test-env/components/table/table_header_cell_checkbox.js +61 -25
- package/test-env/components/text_truncate/text_truncate.js +8 -3
- package/test-env/components/tool_tip/tool_tip.js +1 -1
- package/test-env/components/tool_tip/tool_tip.styles.js +14 -5
- package/test-env/utils/publisher.js +59 -0
|
@@ -194,7 +194,7 @@ export var EuiSelectableList = /*#__PURE__*/function (_Component) {
|
|
|
194
194
|
_this.onAddOrRemoveOption(option, event);
|
|
195
195
|
},
|
|
196
196
|
isFocused: isFocused,
|
|
197
|
-
title: searchableLabel || label,
|
|
197
|
+
title: !truncationProps && !option.toolTipContent ? searchableLabel || label : undefined,
|
|
198
198
|
checked: checked,
|
|
199
199
|
disabled: disabled,
|
|
200
200
|
prepend: prepend,
|
|
@@ -45,6 +45,6 @@ export var euiSelectableListGroupLabelStyles = function euiSelectableListGroupLa
|
|
|
45
45
|
return {
|
|
46
46
|
groupLabel: /*#__PURE__*/css(euiTitle(euiThemeContext, 'xxxs'), " position:relative;display:flex;align-items:center;gap:", itemVars.spacing.horizontal, ";", logicalCSS('padding-horizontal', itemVars.textPadding.horizontal), " ", logicalCSS('padding-vertical', spacingVertical), " &:not(:first-child){", logicalCSS('padding-top', mathWithUnits([spacingVertical], function (a) {
|
|
47
47
|
return a * 3;
|
|
48
|
-
})), " &::before{content:'';position:absolute;inset:0;inset-block-start:", spacingVertical, ";", logicalCSS('border-top', "".concat(euiTheme.border.width.thin, " solid ").concat(borderColor)), ";}};label:groupLabel;")
|
|
48
|
+
})), " &::before{content:'';position:absolute;z-index:-1;inset:0;inset-block-start:", spacingVertical, ";", logicalCSS('border-top', "".concat(euiTheme.border.width.thin, " solid ").concat(borderColor)), ";}};label:groupLabel;")
|
|
49
49
|
};
|
|
50
50
|
};
|
|
@@ -322,7 +322,8 @@ EuiSelectableTemplateSitewide.propTypes = {
|
|
|
322
322
|
*/
|
|
323
323
|
iconColor: PropTypes.oneOfType([PropTypes.oneOfType([PropTypes.string.isRequired, PropTypes.any.isRequired]).isRequired, PropTypes.oneOf([null])]),
|
|
324
324
|
/**
|
|
325
|
-
* Full name of avatar
|
|
325
|
+
* Full name of the avatar. Used as the accessible label (`aria-label`),
|
|
326
|
+
* tooltip content and used to derive initials when `initials` is not provided.
|
|
326
327
|
*/
|
|
327
328
|
name: PropTypes.string.isRequired,
|
|
328
329
|
/**
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
3
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
4
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
5
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
6
|
+
* Side Public License, v 1.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import React, { createContext, useContext } from 'react';
|
|
10
|
+
import { jsx as ___EmotionJSX } from "@emotion/react";
|
|
11
|
+
var EuiTableWithinStickyHeaderContext = /*#__PURE__*/createContext(false);
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* React context provider to detect whether a component is rendered
|
|
15
|
+
* inside <EuiTableStickyHeader> to prevent duplicated header cell renders.
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
export var EuiTableWithinStickyHeaderProvider = function EuiTableWithinStickyHeaderProvider(_ref) {
|
|
19
|
+
var children = _ref.children;
|
|
20
|
+
return ___EmotionJSX(EuiTableWithinStickyHeaderContext.Provider, {
|
|
21
|
+
value: true
|
|
22
|
+
}, children);
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Returns true if the component (usually the EuiTableHeaderCell or EuiTableHeaderCellCheckbox)
|
|
27
|
+
* is rendered inside EuiTableStickyHeader.
|
|
28
|
+
* @internal
|
|
29
|
+
*/
|
|
30
|
+
export var useEuiTableWithinStickyHeader = function useEuiTableWithinStickyHeader() {
|
|
31
|
+
return useContext(EuiTableWithinStickyHeaderContext);
|
|
32
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
3
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
4
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
5
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
6
|
+
* Side Public License, v 1.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
export { EuiTableStickyHeader } from './sticky_header';
|
|
10
|
+
export { useEuiTableWithinStickyHeader } from './context';
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
2
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
4
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
5
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
6
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
7
|
+
/*
|
|
8
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
9
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
10
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
11
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
12
|
+
* Side Public License, v 1.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import React, { useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react';
|
|
16
|
+
import { useEuiTableColumnDataStore } from '../store/provider';
|
|
17
|
+
import { EuiTableHeader } from '../table_header';
|
|
18
|
+
import { EuiTableWithinStickyHeaderProvider } from './context';
|
|
19
|
+
import { useEuiMemoizedStyles } from '../../../services';
|
|
20
|
+
import { euiTableStyles } from '../table.styles';
|
|
21
|
+
import { euiTableStickyHeaderStyles } from './sticky_header.styles';
|
|
22
|
+
import { euiContainerCSS } from '../../../global_styling';
|
|
23
|
+
import { EUI_TABLE_CSS_CONTAINER_NAME } from '../const';
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* @internal
|
|
27
|
+
*/
|
|
28
|
+
import { jsx as ___EmotionJSX } from "@emotion/react";
|
|
29
|
+
export var EuiTableStickyHeader = function EuiTableStickyHeader(_ref) {
|
|
30
|
+
var tableRef = _ref.tableRef,
|
|
31
|
+
tableWrapperRef = _ref.tableWrapperRef,
|
|
32
|
+
compressed = _ref.compressed,
|
|
33
|
+
scrollableInline = _ref.scrollableInline,
|
|
34
|
+
isResponsive = _ref.isResponsive;
|
|
35
|
+
var store = useEuiTableColumnDataStore();
|
|
36
|
+
var columnElements = useRef(new Map());
|
|
37
|
+
var stickyTableWrapperRef = useRef(null);
|
|
38
|
+
var stickyTableRef = useRef(null);
|
|
39
|
+
var _useState = useState(function () {
|
|
40
|
+
return Array.from(store.getColumns().entries());
|
|
41
|
+
}),
|
|
42
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
43
|
+
columns = _useState2[0],
|
|
44
|
+
setColumns = _useState2[1];
|
|
45
|
+
var originalStyles = useEuiMemoizedStyles(euiTableStyles);
|
|
46
|
+
var styles = useEuiMemoizedStyles(euiTableStickyHeaderStyles);
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Get a callback ref to handle the column element ref
|
|
50
|
+
*/
|
|
51
|
+
var getColumnRef = useCallback(function (id) {
|
|
52
|
+
return function (element) {
|
|
53
|
+
if (element) {
|
|
54
|
+
columnElements.current.set(id, element);
|
|
55
|
+
} else {
|
|
56
|
+
columnElements.current.delete(id);
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
}, []);
|
|
60
|
+
useEffect(function () {
|
|
61
|
+
var unsubscribe = store.subscribe(function (columns) {
|
|
62
|
+
setColumns(Array.from(columns.entries()));
|
|
63
|
+
});
|
|
64
|
+
var unsubscribeColumnWidths = store.subscribeToColumnWidths(function (columns) {
|
|
65
|
+
columns.forEach(function (width, name) {
|
|
66
|
+
var element = columnElements.current.get(name);
|
|
67
|
+
if (element) {
|
|
68
|
+
element.style.width = "".concat(width, "px");
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
return function () {
|
|
73
|
+
unsubscribe();
|
|
74
|
+
unsubscribeColumnWidths();
|
|
75
|
+
};
|
|
76
|
+
}, [store]);
|
|
77
|
+
|
|
78
|
+
// When columns change, apply column widths after render
|
|
79
|
+
useLayoutEffect(function () {
|
|
80
|
+
store.getColumnWidths().forEach(function (width, name) {
|
|
81
|
+
var element = columnElements.current.get(name);
|
|
82
|
+
if (element) {
|
|
83
|
+
element.style.width = "".concat(width, "px");
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
}, [store, columns]);
|
|
87
|
+
useEffect(function () {
|
|
88
|
+
if (!scrollableInline || !tableWrapperRef.current || !stickyTableRef.current || !tableRef.current) {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
var tableWrapper = tableWrapperRef.current;
|
|
92
|
+
var handleScroll = function handleScroll() {
|
|
93
|
+
if (stickyTableWrapperRef.current) {
|
|
94
|
+
stickyTableWrapperRef.current.scrollLeft = tableWrapper.scrollLeft;
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
var handleResize = function handleResize(entries) {
|
|
98
|
+
var element = entries[0].target;
|
|
99
|
+
if (!element) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
if (stickyTableRef.current) {
|
|
103
|
+
stickyTableRef.current.style.minWidth = "".concat(element.clientWidth, "px");
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
// Initial width sync
|
|
108
|
+
stickyTableRef.current.style.minWidth = "".concat(tableRef.current.getBoundingClientRect().width, "px");
|
|
109
|
+
|
|
110
|
+
// Use ResizeObserver to keep table width in sync
|
|
111
|
+
var resizeObserver = new ResizeObserver(handleResize);
|
|
112
|
+
resizeObserver.observe(tableRef.current);
|
|
113
|
+
tableWrapper.addEventListener('scroll', handleScroll, {
|
|
114
|
+
passive: true
|
|
115
|
+
});
|
|
116
|
+
return function () {
|
|
117
|
+
tableWrapper.removeEventListener('scroll', handleScroll);
|
|
118
|
+
resizeObserver.disconnect();
|
|
119
|
+
};
|
|
120
|
+
}, [scrollableInline, tableRef, tableWrapperRef]);
|
|
121
|
+
var tableStyles = [originalStyles.euiTable, scrollableInline && originalStyles.euiTableScrollableInline, (!compressed || isResponsive) && originalStyles.uncompressed, compressed && !isResponsive && originalStyles.compressed,
|
|
122
|
+
// Forced fixed layout since all column widths come synced from the main table
|
|
123
|
+
originalStyles.layout.fixed, originalStyles.hasBackground, styles.table];
|
|
124
|
+
if (isResponsive) {
|
|
125
|
+
return null;
|
|
126
|
+
}
|
|
127
|
+
return ___EmotionJSX(EuiTableWithinStickyHeaderProvider, null, ___EmotionJSX("div", {
|
|
128
|
+
css: styles.wrapper,
|
|
129
|
+
"aria-hidden": "true"
|
|
130
|
+
}, ___EmotionJSX("div", {
|
|
131
|
+
css: [
|
|
132
|
+
// This CSS container is needed to feed `<EuiTableHeaderCell>`
|
|
133
|
+
// with `sticky` prop set the necessary scroll state
|
|
134
|
+
euiContainerCSS('normal', EUI_TABLE_CSS_CONTAINER_NAME, true), styles.innerWrapper, ";label:EuiTableStickyHeader;"],
|
|
135
|
+
ref: stickyTableWrapperRef
|
|
136
|
+
}, ___EmotionJSX("table", {
|
|
137
|
+
css: tableStyles,
|
|
138
|
+
ref: stickyTableRef
|
|
139
|
+
}, ___EmotionJSX(EuiTableHeader, {
|
|
140
|
+
css: styles.header
|
|
141
|
+
}, columns.map(function (_ref2, index) {
|
|
142
|
+
var _data$renderHeaderCel, _data$renderHeaderCel2;
|
|
143
|
+
var _ref3 = _slicedToArray(_ref2, 2),
|
|
144
|
+
name = _ref3[0],
|
|
145
|
+
data = _ref3[1];
|
|
146
|
+
return (_data$renderHeaderCel = (_data$renderHeaderCel2 = data.renderHeaderCellRef).current) === null || _data$renderHeaderCel === void 0 ? void 0 : _data$renderHeaderCel.call(_data$renderHeaderCel2, {
|
|
147
|
+
ref: getColumnRef(name),
|
|
148
|
+
key: "".concat(name, "-").concat(index)
|
|
149
|
+
});
|
|
150
|
+
}))))));
|
|
151
|
+
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
2
|
+
/*
|
|
3
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
4
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
5
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
6
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
7
|
+
* Side Public License, v 1.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { css } from '@emotion/react';
|
|
11
|
+
var _ref = process.env.NODE_ENV === "production" ? {
|
|
12
|
+
name: "1uk19xy-table",
|
|
13
|
+
styles: "pointer-events:auto;label:table;"
|
|
14
|
+
} : {
|
|
15
|
+
name: "1uk19xy-table",
|
|
16
|
+
styles: "pointer-events:auto;label:table;",
|
|
17
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
18
|
+
};
|
|
19
|
+
var _ref2 = process.env.NODE_ENV === "production" ? {
|
|
20
|
+
name: "15dchac-innerWrapper",
|
|
21
|
+
styles: "overflow-inline:hidden;label:innerWrapper;"
|
|
22
|
+
} : {
|
|
23
|
+
name: "15dchac-innerWrapper",
|
|
24
|
+
styles: "overflow-inline:hidden;label:innerWrapper;",
|
|
25
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
26
|
+
};
|
|
27
|
+
var _ref3 = process.env.NODE_ENV === "production" ? {
|
|
28
|
+
name: "4w3rcu-wrapper",
|
|
29
|
+
styles: "position:sticky;inset-block-start:var(--euiTableStickyHeaderOffsetTop, 0);z-index:var(--euiTableStickyHeaderZIndex, 1);block-size:0;overflow-block:visible;label:wrapper;"
|
|
30
|
+
} : {
|
|
31
|
+
name: "4w3rcu-wrapper",
|
|
32
|
+
styles: "position:sticky;inset-block-start:var(--euiTableStickyHeaderOffsetTop, 0);z-index:var(--euiTableStickyHeaderZIndex, 1);block-size:0;overflow-block:visible;label:wrapper;",
|
|
33
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
34
|
+
};
|
|
35
|
+
export var euiTableStickyHeaderStyles = function euiTableStickyHeaderStyles(_ref4) {
|
|
36
|
+
var euiTheme = _ref4.euiTheme;
|
|
37
|
+
return {
|
|
38
|
+
wrapper: _ref3,
|
|
39
|
+
innerWrapper: _ref2,
|
|
40
|
+
table: _ref,
|
|
41
|
+
header: /*#__PURE__*/css("th::after{content:'';display:block;inline-size:100%;block-size:", euiTheme.border.width.thin, ";background-color:", euiTheme.border.color, ";};label:header;")
|
|
42
|
+
};
|
|
43
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
3
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
4
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
5
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
6
|
+
* Side Public License, v 1.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import React, { createContext, useRef, useContext } from 'react';
|
|
10
|
+
import { createEuiTableStore } from './store';
|
|
11
|
+
import { jsx as ___EmotionJSX } from "@emotion/react";
|
|
12
|
+
var EuiTableStoreContext = /*#__PURE__*/createContext(null);
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @internal
|
|
16
|
+
*/
|
|
17
|
+
export var EuiTableStoreProvider = function EuiTableStoreProvider(_ref) {
|
|
18
|
+
var children = _ref.children;
|
|
19
|
+
var store = useRef(null);
|
|
20
|
+
if (!store.current) {
|
|
21
|
+
store.current = createEuiTableStore();
|
|
22
|
+
}
|
|
23
|
+
return ___EmotionJSX(EuiTableStoreContext.Provider, {
|
|
24
|
+
value: store.current
|
|
25
|
+
}, children);
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* @internal
|
|
30
|
+
*/
|
|
31
|
+
export var useEuiTableColumnDataStore = function useEuiTableColumnDataStore() {
|
|
32
|
+
var store = useContext(EuiTableStoreContext);
|
|
33
|
+
if (!store) {
|
|
34
|
+
throw new Error('[useEuiTableColumnDataStore] Store context not found. This hook must be used within EuiTable!');
|
|
35
|
+
}
|
|
36
|
+
return store;
|
|
37
|
+
};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
3
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
4
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
5
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
6
|
+
* Side Public License, v 1.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { createPublisher } from '../../../utils/publisher';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @internal
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* EuiTable store that helps with column and width synchronization between
|
|
21
|
+
* the original table and the "virtual" sticky header table.
|
|
22
|
+
*
|
|
23
|
+
* This store is currently only used for these synchronization purposes, but
|
|
24
|
+
* that may extend as we implement resizable columns.
|
|
25
|
+
* If that's not implemented by the time per-axis `position: sticky`
|
|
26
|
+
* is supported in all browsers natively, this can be removed.
|
|
27
|
+
* @internal
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
export var createEuiTableStore = function createEuiTableStore() {
|
|
31
|
+
var columns = new Map();
|
|
32
|
+
var columnsPublisher = createPublisher();
|
|
33
|
+
var columnWidths = new Map();
|
|
34
|
+
var columnWidthsPublisher = createPublisher();
|
|
35
|
+
var registerColumn = function registerColumn(id, data) {
|
|
36
|
+
var _data$currentWidth;
|
|
37
|
+
if (columns.has(id)) {
|
|
38
|
+
throw new Error("[EuiTableStore] Column '".concat(id, "' already registered"));
|
|
39
|
+
}
|
|
40
|
+
columns.set(id, data);
|
|
41
|
+
// Initialize column in the columnWidths map to keep both maps in sync
|
|
42
|
+
columnWidths.set(id, (_data$currentWidth = data.currentWidth) !== null && _data$currentWidth !== void 0 ? _data$currentWidth : 0);
|
|
43
|
+
columnsPublisher.notify(columns);
|
|
44
|
+
return function () {
|
|
45
|
+
columns.delete(id);
|
|
46
|
+
columnWidths.delete(id);
|
|
47
|
+
columnsPublisher.notify(columns);
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
var updateColumn = function updateColumn(id, data) {
|
|
51
|
+
var currentData = columns.get(id);
|
|
52
|
+
if (!currentData) {
|
|
53
|
+
throw new Error("[EuiTableStore] Column '".concat(id, "' not found"));
|
|
54
|
+
}
|
|
55
|
+
columns.set(id, data);
|
|
56
|
+
columnsPublisher.notify(columns);
|
|
57
|
+
};
|
|
58
|
+
var updateColumnWidth = function updateColumnWidth(id, width) {
|
|
59
|
+
var currentWidth = columnWidths.get(id);
|
|
60
|
+
if (currentWidth === undefined) {
|
|
61
|
+
throw new Error("[EuiTableStore] No width stored for column '".concat(id, "'"));
|
|
62
|
+
}
|
|
63
|
+
if (currentWidth === width) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
columnWidths.set(id, width);
|
|
67
|
+
columnWidthsPublisher.notify(columnWidths);
|
|
68
|
+
};
|
|
69
|
+
return {
|
|
70
|
+
registerColumn: registerColumn,
|
|
71
|
+
updateColumn: updateColumn,
|
|
72
|
+
updateColumnWidth: updateColumnWidth,
|
|
73
|
+
subscribe: columnsPublisher.subscribe,
|
|
74
|
+
subscribeToColumnWidths: columnWidthsPublisher.subscribe,
|
|
75
|
+
getColumns: function getColumns() {
|
|
76
|
+
return columns;
|
|
77
|
+
},
|
|
78
|
+
getColumnWidths: function getColumnWidths() {
|
|
79
|
+
return columnWidths;
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
3
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
4
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
5
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
6
|
+
* Side Public License, v 1.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import React, { useId, useRef } from 'react';
|
|
10
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
11
|
+
var useEuiTableStoreUniqueColumnIdFallback = function useEuiTableStoreUniqueColumnIdFallback() {
|
|
12
|
+
var ref = useRef(uuidv4());
|
|
13
|
+
return ref.current;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Returns a stable unique column ID to be used when registering columns.
|
|
18
|
+
* It uses `React.useId()` when available and falls back to UUID v4 on React 17.
|
|
19
|
+
*
|
|
20
|
+
* This is needed so that static `uuid` mocks don't break column registration
|
|
21
|
+
* (at least in React 18+; in older versions this function would need
|
|
22
|
+
* to be mocked to return something unique, but stable).
|
|
23
|
+
* @internal
|
|
24
|
+
*/
|
|
25
|
+
export var useEuiTableStoreUniqueColumnId = 'useId' in React ? useId : useEuiTableStoreUniqueColumnIdFallback;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var _excluded = ["children", "className", "compressed", "tableLayout", "hasBackground", "responsiveBreakpoint", "scrollableInline", "stickyScrollbar"];
|
|
1
|
+
var _excluded = ["children", "className", "compressed", "tableLayout", "hasBackground", "responsiveBreakpoint", "scrollableInline", "stickyScrollbar", "stickyHeader"];
|
|
2
2
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
3
3
|
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
4
4
|
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.indexOf(n) >= 0) continue; t[n] = r[n]; } return t; }
|
|
@@ -21,6 +21,8 @@ import { usePropsWithComponentDefaults } from '../provider/component_defaults';
|
|
|
21
21
|
import { euiContainerCSS } from '../../global_styling';
|
|
22
22
|
import { EUI_TABLE_CSS_CONTAINER_NAME } from './const';
|
|
23
23
|
import { EuiTableStickyScrollbar } from './sticky_scrollbar';
|
|
24
|
+
import { EuiTableStickyHeader } from './sticky_header/sticky_header';
|
|
25
|
+
import { EuiTableStoreProvider } from './store/provider';
|
|
24
26
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
|
25
27
|
/**
|
|
26
28
|
* EuiTable is a low-level building block component used to render tabular data
|
|
@@ -46,20 +48,30 @@ export var EuiTable = function EuiTable(originalProps) {
|
|
|
46
48
|
scrollableInline = _usePropsWithComponen4 === void 0 ? false : _usePropsWithComponen4,
|
|
47
49
|
_usePropsWithComponen5 = _usePropsWithComponen.stickyScrollbar,
|
|
48
50
|
stickyScrollbar = _usePropsWithComponen5 === void 0 ? false : _usePropsWithComponen5,
|
|
51
|
+
_usePropsWithComponen6 = _usePropsWithComponen.stickyHeader,
|
|
52
|
+
stickyHeader = _usePropsWithComponen6 === void 0 ? false : _usePropsWithComponen6,
|
|
49
53
|
rest = _objectWithoutProperties(_usePropsWithComponen, _excluded);
|
|
50
54
|
var tableWrapperRef = useRef(null);
|
|
55
|
+
var tableRef = useRef(null);
|
|
51
56
|
var isResponsive = useIsEuiTableResponsive(responsiveBreakpoint);
|
|
52
57
|
var classes = classNames('euiTable', className);
|
|
53
58
|
var styles = useEuiMemoizedStyles(euiTableStyles);
|
|
54
59
|
var tableStyles = [styles.euiTable, scrollableInline && styles.euiTableScrollableInline, styles.layout[tableLayout], (!compressed || isResponsive) && styles.uncompressed, compressed && !isResponsive && styles.compressed, hasBackground && styles.hasBackground, isResponsive ? styles.mobile : styles.desktop];
|
|
55
60
|
var cssStyles = [euiContainerCSS('normal', EUI_TABLE_CSS_CONTAINER_NAME, true), scrollableInline && styles.scrollableWrapper];
|
|
56
|
-
return ___EmotionJSX(
|
|
61
|
+
return ___EmotionJSX(EuiTableStoreProvider, null, stickyHeader && ___EmotionJSX(EuiTableStickyHeader, {
|
|
62
|
+
scrollableInline: scrollableInline,
|
|
63
|
+
tableRef: tableRef,
|
|
64
|
+
tableWrapperRef: tableWrapperRef,
|
|
65
|
+
compressed: compressed,
|
|
66
|
+
isResponsive: isResponsive
|
|
67
|
+
}), ___EmotionJSX("div", {
|
|
57
68
|
css: cssStyles,
|
|
58
69
|
ref: tableWrapperRef
|
|
59
70
|
}, ___EmotionJSX("table", _extends({
|
|
60
71
|
tabIndex: -1,
|
|
61
72
|
css: tableStyles,
|
|
62
|
-
className: classes
|
|
73
|
+
className: classes,
|
|
74
|
+
ref: tableRef
|
|
63
75
|
}, rest), ___EmotionJSX(EuiTableIsResponsiveContext.Provider, {
|
|
64
76
|
value: isResponsive
|
|
65
77
|
}, ___EmotionJSX(EuiTableVariantContext.Provider, {
|
|
@@ -112,6 +124,19 @@ EuiTable.propTypes = {
|
|
|
112
124
|
* @default false
|
|
113
125
|
*/
|
|
114
126
|
stickyScrollbar: PropTypes.bool,
|
|
127
|
+
/**
|
|
128
|
+
* When enabled, the table header will stick to the top of the viewport as users
|
|
129
|
+
* scroll through long tables. This enhances usability by maintaining column
|
|
130
|
+
* context during vertical scrolling and unifies the scrolling experience
|
|
131
|
+
* between EuiTable components and EuiDataGrid.
|
|
132
|
+
*
|
|
133
|
+
* This feature should be used in places where it's possible for the table
|
|
134
|
+
* to grow longer than the viewport.
|
|
135
|
+
*
|
|
136
|
+
* @beta
|
|
137
|
+
* @default false
|
|
138
|
+
*/
|
|
139
|
+
stickyHeader: PropTypes.bool,
|
|
115
140
|
className: PropTypes.string,
|
|
116
141
|
"aria-label": PropTypes.string,
|
|
117
142
|
"data-test-subj": PropTypes.string,
|
|
@@ -38,11 +38,11 @@ export var euiTableVariables = function euiTableVariables(_ref6) {
|
|
|
38
38
|
};
|
|
39
39
|
};
|
|
40
40
|
var _ref = process.env.NODE_ENV === "production" ? {
|
|
41
|
-
name: "
|
|
42
|
-
styles: "overflow-inline:auto;label:scrollableWrapper;"
|
|
41
|
+
name: "l8gzfy-scrollableWrapper",
|
|
42
|
+
styles: "overflow-inline:auto;overscroll-behavior-inline:none;label:scrollableWrapper;"
|
|
43
43
|
} : {
|
|
44
|
-
name: "
|
|
45
|
-
styles: "overflow-inline:auto;label:scrollableWrapper;",
|
|
44
|
+
name: "l8gzfy-scrollableWrapper",
|
|
45
|
+
styles: "overflow-inline:auto;overscroll-behavior-inline:none;label:scrollableWrapper;",
|
|
46
46
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
47
47
|
};
|
|
48
48
|
var _ref2 = process.env.NODE_ENV === "production" ? {
|