@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
|
@@ -17,7 +17,7 @@ function _extends() { return _extends = Object.assign ? Object.assign.bind() : f
|
|
|
17
17
|
* Side Public License, v 1.
|
|
18
18
|
*/
|
|
19
19
|
|
|
20
|
-
import React from 'react';
|
|
20
|
+
import React, { useEffect, useCallback, useRef } from 'react';
|
|
21
21
|
import classNames from 'classnames';
|
|
22
22
|
import { useEuiMemoizedStyles, LEFT_ALIGNMENT } from '../../services';
|
|
23
23
|
import { EuiI18n } from '../i18n';
|
|
@@ -29,6 +29,9 @@ import { resolveWidthPropsAsStyle } from './utils';
|
|
|
29
29
|
import { useEuiTableIsResponsive } from './mobile/responsive_context';
|
|
30
30
|
import { EuiTableCellContent } from './_table_cell_content';
|
|
31
31
|
import { euiTableHeaderFooterCellStyles, _useEuiTableStickyCellStyles } from './table_cells_shared.styles';
|
|
32
|
+
import { useEuiTableColumnDataStore } from './store/provider';
|
|
33
|
+
import { useEuiTableWithinStickyHeader } from './sticky_header';
|
|
34
|
+
import { useEuiTableStoreUniqueColumnId } from './store/use_unique_column_id';
|
|
32
35
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
|
33
36
|
var CellContents = function CellContents(_ref) {
|
|
34
37
|
var className = _ref.className,
|
|
@@ -105,60 +108,124 @@ export var EuiTableHeaderCell = function EuiTableHeaderCell(_ref2) {
|
|
|
105
108
|
append = _ref2.append,
|
|
106
109
|
sticky = _ref2.sticky,
|
|
107
110
|
rest = _objectWithoutProperties(_ref2, _excluded);
|
|
111
|
+
var selfRef = useRef(null);
|
|
112
|
+
var storeCellId = useEuiTableStoreUniqueColumnId();
|
|
113
|
+
var store = useEuiTableColumnDataStore();
|
|
114
|
+
var isWithinStickyHeader = useEuiTableWithinStickyHeader();
|
|
108
115
|
var styles = useEuiMemoizedStyles(euiTableHeaderFooterCellStyles);
|
|
109
116
|
var stickyStyles = _useEuiTableStickyCellStyles(sticky);
|
|
110
117
|
var isResponsive = useEuiTableIsResponsive();
|
|
111
118
|
var hideForDesktop = !isResponsive && (mobileOptions === null || mobileOptions === void 0 ? void 0 : mobileOptions.only);
|
|
112
119
|
var hideForMobile = isResponsive && (mobileOptions === null || mobileOptions === void 0 ? void 0 : mobileOptions.show) === false;
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
120
|
+
var renderHeaderCellRef = useRef();
|
|
121
|
+
renderHeaderCellRef.current = function (extraProps) {
|
|
122
|
+
if (hideForDesktop || hideForMobile) return null;
|
|
123
|
+
var classes = classNames('euiTableHeaderCell', className);
|
|
124
|
+
var cssStyles = [styles.euiTableHeaderCell, !isResponsive && stickyStyles];
|
|
125
|
+
var inlineWidthStyles = resolveWidthPropsAsStyle(_style, {
|
|
126
|
+
width: width,
|
|
127
|
+
minWidth: minWidth,
|
|
128
|
+
maxWidth: maxWidth
|
|
129
|
+
});
|
|
130
|
+
var CellComponent = children ? 'th' : 'td';
|
|
131
|
+
var cellScope = CellComponent === 'th' ? scope !== null && scope !== void 0 ? scope : 'col' : undefined; // `scope` is only valid on `th` elements
|
|
123
132
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
133
|
+
var canSort = !!(onSort && !readOnly);
|
|
134
|
+
var ariaSortValue;
|
|
135
|
+
if (isSorted) {
|
|
136
|
+
ariaSortValue = isSortAscending ? 'ascending' : 'descending';
|
|
137
|
+
} else if (canSort) {
|
|
138
|
+
ariaSortValue = 'none';
|
|
139
|
+
}
|
|
140
|
+
var cellContentsProps = {
|
|
141
|
+
css: styles.euiTableHeaderCell__content,
|
|
142
|
+
align: align,
|
|
143
|
+
tooltipProps: tooltipProps,
|
|
144
|
+
description: description,
|
|
145
|
+
canSort: canSort,
|
|
146
|
+
isSorted: isSorted,
|
|
147
|
+
isSortAscending: isSortAscending,
|
|
148
|
+
children: children
|
|
149
|
+
};
|
|
150
|
+
return ___EmotionJSX(CellComponent, _extends({
|
|
151
|
+
css: cssStyles,
|
|
152
|
+
className: classes,
|
|
153
|
+
scope: cellScope,
|
|
154
|
+
role: "columnheader",
|
|
155
|
+
"aria-sort": ariaSortValue,
|
|
156
|
+
"data-sticky": !isResponsive && (sticky === null || sticky === void 0 ? void 0 : sticky.side) || undefined,
|
|
157
|
+
style: _objectSpread(_objectSpread({}, _style), inlineWidthStyles)
|
|
158
|
+
}, rest, extraProps), canSort ? ___EmotionJSX(EuiToolTip, _extends({
|
|
159
|
+
content: tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.content
|
|
160
|
+
}, tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.tooltipProps, {
|
|
161
|
+
display: "block"
|
|
162
|
+
}), ___EmotionJSX("button", {
|
|
163
|
+
type: "button",
|
|
164
|
+
css: styles.euiTableHeaderCell__button,
|
|
165
|
+
className: classNames('euiTableHeaderButton', {
|
|
166
|
+
'euiTableHeaderButton-isSorted': isSorted
|
|
167
|
+
}),
|
|
168
|
+
onClick: onSort,
|
|
169
|
+
"data-test-subj": "tableHeaderSortButton"
|
|
170
|
+
}, ___EmotionJSX(CellContents, cellContentsProps))) : ___EmotionJSX(CellContents, cellContentsProps), append);
|
|
140
171
|
};
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
})
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
172
|
+
var handleResize = useCallback(function (entries) {
|
|
173
|
+
var entry = entries[0];
|
|
174
|
+
if (!entry) {
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
store.updateColumnWidth(storeCellId, entry.contentRect.width);
|
|
178
|
+
}, [store, storeCellId]);
|
|
179
|
+
useEffect(function () {
|
|
180
|
+
// Don't register the column inside the sticky header as the original
|
|
181
|
+
// column is already registered. This would cause an infinite loop.
|
|
182
|
+
if (isWithinStickyHeader || !selfRef.current || !renderHeaderCellRef.current) {
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
var unregisterColumn = store.registerColumn(storeCellId, {
|
|
186
|
+
renderHeaderCellRef: renderHeaderCellRef,
|
|
187
|
+
// getBoundingClientRect is not the cheapest, but we call it only once
|
|
188
|
+
currentWidth: selfRef.current.getBoundingClientRect().width
|
|
189
|
+
});
|
|
190
|
+
|
|
191
|
+
// ResizeObserver is available in all supported browsers,
|
|
192
|
+
// but jsdom and jest don't provide a polyfill for it.
|
|
193
|
+
var resizeObserver;
|
|
194
|
+
if (typeof window.ResizeObserver !== 'undefined') {
|
|
195
|
+
resizeObserver = new ResizeObserver(handleResize);
|
|
196
|
+
|
|
197
|
+
// Note: This _could_ be optimized by using a single ResizeObserver
|
|
198
|
+
// for the whole EuiTable, but it would need to be changed back to this
|
|
199
|
+
// if/when we implement resizable columns
|
|
200
|
+
resizeObserver.observe(selfRef.current);
|
|
201
|
+
}
|
|
202
|
+
return function () {
|
|
203
|
+
var _resizeObserver;
|
|
204
|
+
unregisterColumn();
|
|
205
|
+
(_resizeObserver = resizeObserver) === null || _resizeObserver === void 0 || _resizeObserver.disconnect();
|
|
206
|
+
};
|
|
207
|
+
}, [store, isWithinStickyHeader, handleResize, storeCellId]);
|
|
208
|
+
|
|
209
|
+
// Notify the store on every render so the sticky header stays in sync.
|
|
210
|
+
// React's reconciliation will efficiently handle any duplicate renders.
|
|
211
|
+
useEffect(function () {
|
|
212
|
+
// Don't update the store if the component is rendered within EuiTableStickyHeader
|
|
213
|
+
if (isWithinStickyHeader) {
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
// Don't update the store if the element doesn't exist. The render function
|
|
218
|
+
// in `renderHeaderCellRef` sometimes renders null - e.g., in mobile layout
|
|
219
|
+
if (!selfRef.current) {
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
store.updateColumn(storeCellId, {
|
|
223
|
+
renderHeaderCellRef: renderHeaderCellRef
|
|
224
|
+
});
|
|
225
|
+
});
|
|
226
|
+
return renderHeaderCellRef.current({
|
|
227
|
+
ref: selfRef
|
|
228
|
+
});
|
|
162
229
|
};
|
|
163
230
|
EuiTableHeaderCell.propTypes = {
|
|
164
231
|
className: PropTypes.string,
|
|
@@ -10,39 +10,72 @@ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t =
|
|
|
10
10
|
* Side Public License, v 1.
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
-
import React from 'react';
|
|
13
|
+
import React, { useEffect, useRef } from 'react';
|
|
14
14
|
import PropTypes from "prop-types";
|
|
15
15
|
import classNames from 'classnames';
|
|
16
16
|
import { useEuiMemoizedStyles } from '../../services';
|
|
17
17
|
import { resolveWidthPropsAsStyle } from './utils';
|
|
18
18
|
import { euiTableCellCheckboxStyles } from './table_cells_shared.styles';
|
|
19
|
+
import { useEuiTableColumnDataStore } from './store/provider';
|
|
20
|
+
import { useEuiTableWithinStickyHeader } from './sticky_header';
|
|
21
|
+
import { useEuiTableStoreUniqueColumnId } from './store/use_unique_column_id';
|
|
19
22
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
|
20
|
-
export var EuiTableHeaderCellCheckbox = function EuiTableHeaderCellCheckbox(
|
|
21
|
-
var children =
|
|
22
|
-
className =
|
|
23
|
-
|
|
24
|
-
scope =
|
|
25
|
-
_style =
|
|
26
|
-
width =
|
|
27
|
-
minWidth =
|
|
28
|
-
maxWidth =
|
|
29
|
-
append =
|
|
30
|
-
rest = _objectWithoutProperties(
|
|
31
|
-
var
|
|
23
|
+
export var EuiTableHeaderCellCheckbox = function EuiTableHeaderCellCheckbox(props) {
|
|
24
|
+
var children = props.children,
|
|
25
|
+
className = props.className,
|
|
26
|
+
_props$scope = props.scope,
|
|
27
|
+
scope = _props$scope === void 0 ? 'col' : _props$scope,
|
|
28
|
+
_style = props.style,
|
|
29
|
+
width = props.width,
|
|
30
|
+
minWidth = props.minWidth,
|
|
31
|
+
maxWidth = props.maxWidth,
|
|
32
|
+
append = props.append,
|
|
33
|
+
rest = _objectWithoutProperties(props, _excluded);
|
|
34
|
+
var storeCellId = useEuiTableStoreUniqueColumnId();
|
|
35
|
+
var store = useEuiTableColumnDataStore();
|
|
36
|
+
var isWithinStickyHeader = useEuiTableWithinStickyHeader();
|
|
32
37
|
var styles = useEuiMemoizedStyles(euiTableCellCheckboxStyles);
|
|
33
|
-
var
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
38
|
+
var renderHeaderCellRef = useRef();
|
|
39
|
+
renderHeaderCellRef.current = function (extraProps) {
|
|
40
|
+
var classes = classNames('euiTableHeaderCellCheckbox', className);
|
|
41
|
+
var style = resolveWidthPropsAsStyle(_style, {
|
|
42
|
+
width: width,
|
|
43
|
+
minWidth: minWidth,
|
|
44
|
+
maxWidth: maxWidth
|
|
45
|
+
});
|
|
46
|
+
return ___EmotionJSX("th", _extends({
|
|
47
|
+
css: styles.euiTableHeaderCellCheckbox,
|
|
48
|
+
className: classes,
|
|
49
|
+
scope: scope,
|
|
50
|
+
style: style
|
|
51
|
+
}, rest, extraProps), ___EmotionJSX("div", {
|
|
52
|
+
className: "euiTableCellContent"
|
|
53
|
+
}, children), append);
|
|
54
|
+
};
|
|
55
|
+
useEffect(function () {
|
|
56
|
+
// Don't register the column inside the sticky header as the original
|
|
57
|
+
// column is already registered. This would cause an infinite loop.
|
|
58
|
+
if (isWithinStickyHeader) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
var unregisterColumn = store.registerColumn(storeCellId, {
|
|
62
|
+
renderHeaderCellRef: renderHeaderCellRef
|
|
63
|
+
});
|
|
64
|
+
return function () {
|
|
65
|
+
unregisterColumn();
|
|
66
|
+
};
|
|
67
|
+
}, [store, isWithinStickyHeader, storeCellId]);
|
|
68
|
+
useEffect(function () {
|
|
69
|
+
// Notify the store on every render so the sticky header stays in sync.
|
|
70
|
+
// React's reconciliation will efficiently handle any duplicate renders.
|
|
71
|
+
if (isWithinStickyHeader) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
store.updateColumn(storeCellId, {
|
|
75
|
+
renderHeaderCellRef: renderHeaderCellRef
|
|
76
|
+
});
|
|
37
77
|
});
|
|
38
|
-
return
|
|
39
|
-
css: styles.euiTableHeaderCellCheckbox,
|
|
40
|
-
className: classes,
|
|
41
|
-
scope: scope,
|
|
42
|
-
style: style
|
|
43
|
-
}, rest), ___EmotionJSX("div", {
|
|
44
|
-
className: "euiTableCellContent"
|
|
45
|
-
}, children), append);
|
|
78
|
+
return renderHeaderCellRef.current({});
|
|
46
79
|
};
|
|
47
80
|
EuiTableHeaderCellCheckbox.propTypes = {
|
|
48
81
|
className: PropTypes.string,
|
|
@@ -23,6 +23,7 @@ import PropTypes from "prop-types";
|
|
|
23
23
|
import classNames from 'classnames';
|
|
24
24
|
import { useCombinedRefs, useEuiMemoizedStyles } from '../../services';
|
|
25
25
|
import { EuiResizeObserver } from '../observer/resize_observer';
|
|
26
|
+
import { EuiToolTip } from '../tool_tip';
|
|
26
27
|
import { TruncationUtils } from './utils';
|
|
27
28
|
import { euiTextTruncateStyles } from './text_truncate.styles';
|
|
28
29
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
|
@@ -204,11 +205,10 @@ var EuiTextTruncateWithWidth = function EuiTextTruncateWithWidth(_ref2) {
|
|
|
204
205
|
}, [ready, width, text, truncation, truncationOffset, truncationPosition, ellipsis, containerEl]);
|
|
205
206
|
var isTruncating = truncatedText !== text;
|
|
206
207
|
var styles = useEuiMemoizedStyles(euiTextTruncateStyles);
|
|
207
|
-
|
|
208
|
+
var content = ___EmotionJSX("div", _extends({
|
|
208
209
|
className: classNames('euiTextTruncate', className),
|
|
209
210
|
css: styles.euiTextTruncate,
|
|
210
|
-
ref: refs
|
|
211
|
-
title: isTruncating ? text : undefined
|
|
211
|
+
ref: refs
|
|
212
212
|
}, rest), isTruncating ? ___EmotionJSX(React.Fragment, null, ___EmotionJSX("span", {
|
|
213
213
|
className: "euiTextTruncate__truncatedText",
|
|
214
214
|
css: styles.euiTextTruncate__truncatedText,
|
|
@@ -222,6 +222,11 @@ var EuiTextTruncateWithWidth = function EuiTextTruncateWithWidth(_ref2) {
|
|
|
222
222
|
className: "euiTextTruncate__fullText",
|
|
223
223
|
"data-test-subj": "fullText"
|
|
224
224
|
}, children ? children(text) : text));
|
|
225
|
+
return isTruncating ? ___EmotionJSX(EuiToolTip, {
|
|
226
|
+
content: text,
|
|
227
|
+
disableScreenReaderOutput: true,
|
|
228
|
+
display: "block"
|
|
229
|
+
}, content) : content;
|
|
225
230
|
};
|
|
226
231
|
EuiTextTruncateWithWidth.propTypes = {
|
|
227
232
|
width: PropTypes.number.isRequired,
|
|
@@ -30,7 +30,7 @@ import { EuiToolTipArrow } from './tool_tip_arrow';
|
|
|
30
30
|
import { toolTipManager } from './tool_tip_manager';
|
|
31
31
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
|
32
32
|
export var POSITIONS = ['top', 'right', 'bottom', 'left'];
|
|
33
|
-
var DISPLAYS = ['inlineBlock', 'block'];
|
|
33
|
+
var DISPLAYS = ['inlineBlock', 'block', 'flex'];
|
|
34
34
|
export var DEFAULT_TOOLTIP_OFFSET = 16;
|
|
35
35
|
|
|
36
36
|
/**
|
|
@@ -43,6 +43,14 @@ export var euiToolTipStyles = function euiToolTipStyles(euiThemeContext) {
|
|
|
43
43
|
};
|
|
44
44
|
};
|
|
45
45
|
var _ref = process.env.NODE_ENV === "production" ? {
|
|
46
|
+
name: "1cjglks-flex",
|
|
47
|
+
styles: "display:flex;label:flex;"
|
|
48
|
+
} : {
|
|
49
|
+
name: "1cjglks-flex",
|
|
50
|
+
styles: "display:flex;label:flex;",
|
|
51
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
52
|
+
};
|
|
53
|
+
var _ref2 = process.env.NODE_ENV === "production" ? {
|
|
46
54
|
name: "fzilnk-inlineBlock",
|
|
47
55
|
styles: "display:inline-block;label:inlineBlock;"
|
|
48
56
|
} : {
|
|
@@ -50,7 +58,7 @@ var _ref = process.env.NODE_ENV === "production" ? {
|
|
|
50
58
|
styles: "display:inline-block;label:inlineBlock;",
|
|
51
59
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
52
60
|
};
|
|
53
|
-
var
|
|
61
|
+
var _ref3 = process.env.NODE_ENV === "production" ? {
|
|
54
62
|
name: "14aceuy-block",
|
|
55
63
|
styles: "display:block;label:block;"
|
|
56
64
|
} : {
|
|
@@ -58,7 +66,7 @@ var _ref2 = process.env.NODE_ENV === "production" ? {
|
|
|
58
66
|
styles: "display:block;label:block;",
|
|
59
67
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
60
68
|
};
|
|
61
|
-
var
|
|
69
|
+
var _ref4 = process.env.NODE_ENV === "production" ? {
|
|
62
70
|
name: "1s3i3p5-euiToolTipAnchor",
|
|
63
71
|
styles: "*[disabled]{pointer-events:none;};label:euiToolTipAnchor;"
|
|
64
72
|
} : {
|
|
@@ -69,9 +77,10 @@ var _ref3 = process.env.NODE_ENV === "production" ? {
|
|
|
69
77
|
export var euiToolTipAnchorStyles = function euiToolTipAnchorStyles() {
|
|
70
78
|
return {
|
|
71
79
|
// Elements
|
|
72
|
-
euiToolTipAnchor:
|
|
80
|
+
euiToolTipAnchor: _ref4,
|
|
73
81
|
// Variants
|
|
74
|
-
block:
|
|
75
|
-
inlineBlock:
|
|
82
|
+
block: _ref3,
|
|
83
|
+
inlineBlock: _ref2,
|
|
84
|
+
flex: _ref
|
|
76
85
|
};
|
|
77
86
|
};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
|
|
2
|
+
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; } }
|
|
3
|
+
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; }
|
|
4
|
+
/*
|
|
5
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
6
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
7
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
8
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
9
|
+
* Side Public License, v 1.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @internal
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
export var createPublisher = function createPublisher() {
|
|
24
|
+
var subscribers = new Set();
|
|
25
|
+
var unsubscribe = function unsubscribe(subscriber) {
|
|
26
|
+
subscribers.delete(subscriber);
|
|
27
|
+
};
|
|
28
|
+
var subscribe = function subscribe(subscriber) {
|
|
29
|
+
subscribers.add(subscriber);
|
|
30
|
+
return function () {
|
|
31
|
+
return unsubscribe(subscriber);
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
var notify = function notify(subject) {
|
|
35
|
+
var _iterator = _createForOfIteratorHelper(subscribers),
|
|
36
|
+
_step;
|
|
37
|
+
try {
|
|
38
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
39
|
+
var _subscriber = _step.value;
|
|
40
|
+
_subscriber(subject);
|
|
41
|
+
}
|
|
42
|
+
} catch (err) {
|
|
43
|
+
_iterator.e(err);
|
|
44
|
+
} finally {
|
|
45
|
+
_iterator.f();
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
return {
|
|
49
|
+
subscribe: subscribe,
|
|
50
|
+
unsubscribe: unsubscribe,
|
|
51
|
+
notify: notify
|
|
52
|
+
};
|
|
53
|
+
};
|