@elastic/eui 116.3.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 +4 -0
- package/es/components/avatar/avatar.styles.js +16 -16
- package/es/components/table/store/use_unique_column_id.js +25 -0
- package/es/components/table/table_header_cell.js +7 -8
- package/es/components/table/table_header_cell_checkbox.js +5 -6
- package/eui.d.ts +18 -0
- package/lib/components/avatar/avatar.js +4 -0
- package/lib/components/avatar/avatar.styles.js +16 -16
- package/lib/components/table/store/use_unique_column_id.js +34 -0
- package/lib/components/table/table_header_cell.js +7 -8
- package/lib/components/table/table_header_cell_checkbox.js +5 -6
- package/optimize/es/components/avatar/avatar.js +4 -0
- package/optimize/es/components/avatar/avatar.styles.js +16 -16
- package/optimize/es/components/table/store/use_unique_column_id.js +25 -0
- package/optimize/es/components/table/table_header_cell.js +7 -8
- package/optimize/es/components/table/table_header_cell_checkbox.js +5 -6
- package/optimize/lib/components/avatar/avatar.js +4 -0
- package/optimize/lib/components/avatar/avatar.styles.js +16 -16
- package/optimize/lib/components/table/store/use_unique_column_id.js +34 -0
- package/optimize/lib/components/table/table_header_cell.js +7 -8
- package/optimize/lib/components/table/table_header_cell_checkbox.js +5 -6
- package/package.json +1 -1
- package/test-env/components/avatar/avatar.js +4 -0
- package/test-env/components/avatar/avatar.styles.js +16 -16
- package/test-env/components/table/store/use_unique_column_id.js +34 -0
- package/test-env/components/table/table_header_cell.js +7 -8
- package/test-env/components/table/table_header_cell_checkbox.js +5 -6
|
@@ -75,6 +75,7 @@ export var EuiAvatar = function EuiAvatar(_ref) {
|
|
|
75
75
|
var classes = classNames('euiAvatar', _defineProperty(_defineProperty(_defineProperty({}, "euiAvatar--".concat(size), size), "euiAvatar--".concat(type), type), 'euiAvatar-isDisabled', isDisabled), className);
|
|
76
76
|
var styles = useEuiMemoizedStyles(euiAvatarStyles);
|
|
77
77
|
var cssStyles = [styles.euiAvatar, styles[type], styles[size], styles[casing], isPlain && styles.plain, isSubdued && styles.subdued, isDisabled && styles.isDisabled];
|
|
78
|
+
var tooltipCssStyles = [styles.tooltip[type]];
|
|
78
79
|
var avatarStyle = useMemo(function () {
|
|
79
80
|
if (imageUrl) {
|
|
80
81
|
return {
|
|
@@ -129,6 +130,9 @@ export var EuiAvatar = function EuiAvatar(_ref) {
|
|
|
129
130
|
// It already has `aria-label`, the tooltip is only visual.
|
|
130
131
|
return name ? ___EmotionJSX(EuiToolTip, {
|
|
131
132
|
content: name,
|
|
133
|
+
anchorProps: {
|
|
134
|
+
css: tooltipCssStyles
|
|
135
|
+
},
|
|
132
136
|
disableScreenReaderOutput: true
|
|
133
137
|
}, avatarNode) : avatarNode;
|
|
134
138
|
};
|
|
@@ -9,9 +9,9 @@ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringif
|
|
|
9
9
|
|
|
10
10
|
import { css } from '@emotion/react';
|
|
11
11
|
import { logicalSizeCSS, mathWithUnits } from '../../global_styling';
|
|
12
|
-
var _avatarSize = function _avatarSize(
|
|
13
|
-
var size =
|
|
14
|
-
fontSize =
|
|
12
|
+
var _avatarSize = function _avatarSize(_ref6) {
|
|
13
|
+
var size = _ref6.size,
|
|
14
|
+
fontSize = _ref6.fontSize;
|
|
15
15
|
return "\n ".concat(logicalSizeCSS(size), ";\n font-size: ").concat(fontSize, ";\n ");
|
|
16
16
|
};
|
|
17
17
|
var _ref = process.env.NODE_ENV === "production" ? {
|
|
@@ -54,24 +54,20 @@ var _ref5 = process.env.NODE_ENV === "production" ? {
|
|
|
54
54
|
styles: "cursor:not-allowed;filter:grayscale(100%);label:isDisabled;",
|
|
55
55
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
56
56
|
};
|
|
57
|
-
var
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
64
|
-
};
|
|
65
|
-
export var euiAvatarStyles = function euiAvatarStyles(_ref8) {
|
|
66
|
-
var euiTheme = _ref8.euiTheme;
|
|
57
|
+
export var euiAvatarStyles = function euiAvatarStyles(_ref7) {
|
|
58
|
+
var euiTheme = _ref7.euiTheme;
|
|
59
|
+
var borderRadius = {
|
|
60
|
+
user: '50%',
|
|
61
|
+
space: euiTheme.border.radius.medium
|
|
62
|
+
};
|
|
67
63
|
return {
|
|
68
64
|
// Base
|
|
69
65
|
euiAvatar: /*#__PURE__*/css("flex-shrink:0;display:inline-flex;justify-content:center;align-items:center;vertical-align:middle;background-size:cover;background-color:", euiTheme.colors.lightShade, ";overflow:hidden;font-weight:", euiTheme.font.weight.medium, ";;label:euiAvatar;"),
|
|
70
66
|
// Variants
|
|
71
67
|
plain: /*#__PURE__*/css("background-color:", euiTheme.colors.emptyShade, ";;label:plain;"),
|
|
72
68
|
subdued: /*#__PURE__*/css("background-color:", euiTheme.colors.lightestShade, ";;label:subdued;"),
|
|
73
|
-
user:
|
|
74
|
-
space: /*#__PURE__*/css("border-radius:",
|
|
69
|
+
user: /*#__PURE__*/css("border-radius:", borderRadius.user, ";;label:user;"),
|
|
70
|
+
space: /*#__PURE__*/css("border-radius:", borderRadius.space, ";;label:space;"),
|
|
75
71
|
// States
|
|
76
72
|
isDisabled: _ref5,
|
|
77
73
|
// Sizes
|
|
@@ -101,6 +97,10 @@ export var euiAvatarStyles = function euiAvatarStyles(_ref8) {
|
|
|
101
97
|
capitalize: _ref4,
|
|
102
98
|
uppercase: _ref3,
|
|
103
99
|
lowercase: _ref2,
|
|
104
|
-
none: _ref
|
|
100
|
+
none: _ref,
|
|
101
|
+
tooltip: {
|
|
102
|
+
user: /*#__PURE__*/css("border-radius:", borderRadius.user, ";;label:user;"),
|
|
103
|
+
space: /*#__PURE__*/css("border-radius:", borderRadius.space, ";;label:space;")
|
|
104
|
+
}
|
|
105
105
|
};
|
|
106
106
|
};
|
|
@@ -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;
|
|
@@ -20,7 +20,6 @@ function _extends() { return _extends = Object.assign ? Object.assign.bind() : f
|
|
|
20
20
|
import React, { useEffect, useCallback, useRef } from 'react';
|
|
21
21
|
import classNames from 'classnames';
|
|
22
22
|
import { useEuiMemoizedStyles, LEFT_ALIGNMENT } from '../../services';
|
|
23
|
-
import { useGeneratedHtmlId } from '../../services/accessibility/html_id_generator';
|
|
24
23
|
import { EuiI18n } from '../i18n';
|
|
25
24
|
import { EuiScreenReaderOnly } from '../accessibility';
|
|
26
25
|
import { EuiIcon } from '../icon';
|
|
@@ -32,6 +31,7 @@ import { EuiTableCellContent } from './_table_cell_content';
|
|
|
32
31
|
import { euiTableHeaderFooterCellStyles, _useEuiTableStickyCellStyles } from './table_cells_shared.styles';
|
|
33
32
|
import { useEuiTableColumnDataStore } from './store/provider';
|
|
34
33
|
import { useEuiTableWithinStickyHeader } from './sticky_header';
|
|
34
|
+
import { useEuiTableStoreUniqueColumnId } from './store/use_unique_column_id';
|
|
35
35
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
|
36
36
|
var CellContents = function CellContents(_ref) {
|
|
37
37
|
var className = _ref.className,
|
|
@@ -109,7 +109,7 @@ export var EuiTableHeaderCell = function EuiTableHeaderCell(_ref2) {
|
|
|
109
109
|
sticky = _ref2.sticky,
|
|
110
110
|
rest = _objectWithoutProperties(_ref2, _excluded);
|
|
111
111
|
var selfRef = useRef(null);
|
|
112
|
-
var
|
|
112
|
+
var storeCellId = useEuiTableStoreUniqueColumnId();
|
|
113
113
|
var store = useEuiTableColumnDataStore();
|
|
114
114
|
var isWithinStickyHeader = useEuiTableWithinStickyHeader();
|
|
115
115
|
var styles = useEuiMemoizedStyles(euiTableHeaderFooterCellStyles);
|
|
@@ -174,15 +174,15 @@ export var EuiTableHeaderCell = function EuiTableHeaderCell(_ref2) {
|
|
|
174
174
|
if (!entry) {
|
|
175
175
|
return;
|
|
176
176
|
}
|
|
177
|
-
store.updateColumnWidth(
|
|
178
|
-
}, [store,
|
|
177
|
+
store.updateColumnWidth(storeCellId, entry.contentRect.width);
|
|
178
|
+
}, [store, storeCellId]);
|
|
179
179
|
useEffect(function () {
|
|
180
180
|
// Don't register the column inside the sticky header as the original
|
|
181
181
|
// column is already registered. This would cause an infinite loop.
|
|
182
182
|
if (isWithinStickyHeader || !selfRef.current || !renderHeaderCellRef.current) {
|
|
183
183
|
return;
|
|
184
184
|
}
|
|
185
|
-
var unregisterColumn = store.registerColumn(
|
|
185
|
+
var unregisterColumn = store.registerColumn(storeCellId, {
|
|
186
186
|
renderHeaderCellRef: renderHeaderCellRef,
|
|
187
187
|
// getBoundingClientRect is not the cheapest, but we call it only once
|
|
188
188
|
currentWidth: selfRef.current.getBoundingClientRect().width
|
|
@@ -204,8 +204,7 @@ export var EuiTableHeaderCell = function EuiTableHeaderCell(_ref2) {
|
|
|
204
204
|
unregisterColumn();
|
|
205
205
|
(_resizeObserver = resizeObserver) === null || _resizeObserver === void 0 || _resizeObserver.disconnect();
|
|
206
206
|
};
|
|
207
|
-
|
|
208
|
-
}, [store, internalCellId, isWithinStickyHeader]);
|
|
207
|
+
}, [store, isWithinStickyHeader, handleResize, storeCellId]);
|
|
209
208
|
|
|
210
209
|
// Notify the store on every render so the sticky header stays in sync.
|
|
211
210
|
// React's reconciliation will efficiently handle any duplicate renders.
|
|
@@ -220,7 +219,7 @@ export var EuiTableHeaderCell = function EuiTableHeaderCell(_ref2) {
|
|
|
220
219
|
if (!selfRef.current) {
|
|
221
220
|
return;
|
|
222
221
|
}
|
|
223
|
-
store.updateColumn(
|
|
222
|
+
store.updateColumn(storeCellId, {
|
|
224
223
|
renderHeaderCellRef: renderHeaderCellRef
|
|
225
224
|
});
|
|
226
225
|
});
|
|
@@ -14,11 +14,11 @@ 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
|
-
import { useGeneratedHtmlId } from '../../services/accessibility/html_id_generator';
|
|
18
17
|
import { resolveWidthPropsAsStyle } from './utils';
|
|
19
18
|
import { euiTableCellCheckboxStyles } from './table_cells_shared.styles';
|
|
20
19
|
import { useEuiTableColumnDataStore } from './store/provider';
|
|
21
20
|
import { useEuiTableWithinStickyHeader } from './sticky_header';
|
|
21
|
+
import { useEuiTableStoreUniqueColumnId } from './store/use_unique_column_id';
|
|
22
22
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
|
23
23
|
export var EuiTableHeaderCellCheckbox = function EuiTableHeaderCellCheckbox(props) {
|
|
24
24
|
var children = props.children,
|
|
@@ -31,7 +31,7 @@ export var EuiTableHeaderCellCheckbox = function EuiTableHeaderCellCheckbox(prop
|
|
|
31
31
|
maxWidth = props.maxWidth,
|
|
32
32
|
append = props.append,
|
|
33
33
|
rest = _objectWithoutProperties(props, _excluded);
|
|
34
|
-
var
|
|
34
|
+
var storeCellId = useEuiTableStoreUniqueColumnId();
|
|
35
35
|
var store = useEuiTableColumnDataStore();
|
|
36
36
|
var isWithinStickyHeader = useEuiTableWithinStickyHeader();
|
|
37
37
|
var styles = useEuiMemoizedStyles(euiTableCellCheckboxStyles);
|
|
@@ -58,21 +58,20 @@ export var EuiTableHeaderCellCheckbox = function EuiTableHeaderCellCheckbox(prop
|
|
|
58
58
|
if (isWithinStickyHeader) {
|
|
59
59
|
return;
|
|
60
60
|
}
|
|
61
|
-
var unregisterColumn = store.registerColumn(
|
|
61
|
+
var unregisterColumn = store.registerColumn(storeCellId, {
|
|
62
62
|
renderHeaderCellRef: renderHeaderCellRef
|
|
63
63
|
});
|
|
64
64
|
return function () {
|
|
65
65
|
unregisterColumn();
|
|
66
66
|
};
|
|
67
|
-
|
|
68
|
-
}, [store, internalCellId, isWithinStickyHeader]);
|
|
67
|
+
}, [store, isWithinStickyHeader, storeCellId]);
|
|
69
68
|
useEffect(function () {
|
|
70
69
|
// Notify the store on every render so the sticky header stays in sync.
|
|
71
70
|
// React's reconciliation will efficiently handle any duplicate renders.
|
|
72
71
|
if (isWithinStickyHeader) {
|
|
73
72
|
return;
|
|
74
73
|
}
|
|
75
|
-
store.updateColumn(
|
|
74
|
+
store.updateColumn(storeCellId, {
|
|
76
75
|
renderHeaderCellRef: renderHeaderCellRef
|
|
77
76
|
});
|
|
78
77
|
});
|
package/eui.d.ts
CHANGED
|
@@ -17237,6 +17237,20 @@ declare module '@elastic/eui/src/components/table/sticky_header' {
|
|
|
17237
17237
|
export { EuiTableStickyHeader } from '@elastic/eui/src/components/table/sticky_header/sticky_header';
|
|
17238
17238
|
export { useEuiTableWithinStickyHeader } from '@elastic/eui/src/components/table/sticky_header/context';
|
|
17239
17239
|
|
|
17240
|
+
}
|
|
17241
|
+
declare module '@elastic/eui/src/components/table/store/use_unique_column_id' {
|
|
17242
|
+
import React from 'react';
|
|
17243
|
+
/**
|
|
17244
|
+
* Returns a stable unique column ID to be used when registering columns.
|
|
17245
|
+
* It uses `React.useId()` when available and falls back to UUID v4 on React 17.
|
|
17246
|
+
*
|
|
17247
|
+
* This is needed so that static `uuid` mocks don't break column registration
|
|
17248
|
+
* (at least in React 18+; in older versions this function would need
|
|
17249
|
+
* to be mocked to return something unique, but stable).
|
|
17250
|
+
* @internal
|
|
17251
|
+
*/
|
|
17252
|
+
export const useEuiTableStoreUniqueColumnId: typeof React.useId;
|
|
17253
|
+
|
|
17240
17254
|
}
|
|
17241
17255
|
declare module '@elastic/eui/src/components/table/table_header_cell' {
|
|
17242
17256
|
import { FunctionComponent, ThHTMLAttributes, ReactNode } from 'react';
|
|
@@ -22084,6 +22098,10 @@ declare module '@elastic/eui/src/components/avatar/avatar.styles' {
|
|
|
22084
22098
|
uppercase: import("@emotion/react").SerializedStyles;
|
|
22085
22099
|
lowercase: import("@emotion/react").SerializedStyles;
|
|
22086
22100
|
none: import("@emotion/react").SerializedStyles;
|
|
22101
|
+
tooltip: {
|
|
22102
|
+
user: import("@emotion/react").SerializedStyles;
|
|
22103
|
+
space: import("@emotion/react").SerializedStyles;
|
|
22104
|
+
};
|
|
22087
22105
|
};
|
|
22088
22106
|
|
|
22089
22107
|
}
|
|
@@ -83,6 +83,7 @@ var EuiAvatar = exports.EuiAvatar = function EuiAvatar(_ref) {
|
|
|
83
83
|
var classes = (0, _classnames.default)('euiAvatar', _defineProperty(_defineProperty(_defineProperty({}, "euiAvatar--".concat(size), size), "euiAvatar--".concat(type), type), 'euiAvatar-isDisabled', isDisabled), className);
|
|
84
84
|
var styles = (0, _services.useEuiMemoizedStyles)(_avatar.euiAvatarStyles);
|
|
85
85
|
var cssStyles = [styles.euiAvatar, styles[type], styles[size], styles[casing], isPlain && styles.plain, isSubdued && styles.subdued, isDisabled && styles.isDisabled];
|
|
86
|
+
var tooltipCssStyles = [styles.tooltip[type]];
|
|
86
87
|
var avatarStyle = (0, _react.useMemo)(function () {
|
|
87
88
|
if (imageUrl) {
|
|
88
89
|
return {
|
|
@@ -137,6 +138,9 @@ var EuiAvatar = exports.EuiAvatar = function EuiAvatar(_ref) {
|
|
|
137
138
|
// It already has `aria-label`, the tooltip is only visual.
|
|
138
139
|
return name ? (0, _react2.jsx)(_tool_tip.EuiToolTip, {
|
|
139
140
|
content: name,
|
|
141
|
+
anchorProps: {
|
|
142
|
+
css: tooltipCssStyles
|
|
143
|
+
},
|
|
140
144
|
disableScreenReaderOutput: true
|
|
141
145
|
}, avatarNode) : avatarNode;
|
|
142
146
|
};
|
|
@@ -13,9 +13,9 @@ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringif
|
|
|
13
13
|
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
14
14
|
* Side Public License, v 1.
|
|
15
15
|
*/
|
|
16
|
-
var _avatarSize = function _avatarSize(
|
|
17
|
-
var size =
|
|
18
|
-
fontSize =
|
|
16
|
+
var _avatarSize = function _avatarSize(_ref6) {
|
|
17
|
+
var size = _ref6.size,
|
|
18
|
+
fontSize = _ref6.fontSize;
|
|
19
19
|
return "\n ".concat((0, _global_styling.logicalSizeCSS)(size), ";\n font-size: ").concat(fontSize, ";\n ");
|
|
20
20
|
};
|
|
21
21
|
var _ref = process.env.NODE_ENV === "production" ? {
|
|
@@ -58,24 +58,20 @@ var _ref5 = process.env.NODE_ENV === "production" ? {
|
|
|
58
58
|
styles: "cursor:not-allowed;filter:grayscale(100%);label:isDisabled;",
|
|
59
59
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
60
60
|
};
|
|
61
|
-
var
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
68
|
-
};
|
|
69
|
-
var euiAvatarStyles = exports.euiAvatarStyles = function euiAvatarStyles(_ref8) {
|
|
70
|
-
var euiTheme = _ref8.euiTheme;
|
|
61
|
+
var euiAvatarStyles = exports.euiAvatarStyles = function euiAvatarStyles(_ref7) {
|
|
62
|
+
var euiTheme = _ref7.euiTheme;
|
|
63
|
+
var borderRadius = {
|
|
64
|
+
user: '50%',
|
|
65
|
+
space: euiTheme.border.radius.medium
|
|
66
|
+
};
|
|
71
67
|
return {
|
|
72
68
|
// Base
|
|
73
69
|
euiAvatar: /*#__PURE__*/(0, _react.css)("flex-shrink:0;display:inline-flex;justify-content:center;align-items:center;vertical-align:middle;background-size:cover;background-color:", euiTheme.colors.lightShade, ";overflow:hidden;font-weight:", euiTheme.font.weight.medium, ";;label:euiAvatar;"),
|
|
74
70
|
// Variants
|
|
75
71
|
plain: /*#__PURE__*/(0, _react.css)("background-color:", euiTheme.colors.emptyShade, ";;label:plain;"),
|
|
76
72
|
subdued: /*#__PURE__*/(0, _react.css)("background-color:", euiTheme.colors.lightestShade, ";;label:subdued;"),
|
|
77
|
-
user:
|
|
78
|
-
space: /*#__PURE__*/(0, _react.css)("border-radius:",
|
|
73
|
+
user: /*#__PURE__*/(0, _react.css)("border-radius:", borderRadius.user, ";;label:user;"),
|
|
74
|
+
space: /*#__PURE__*/(0, _react.css)("border-radius:", borderRadius.space, ";;label:space;"),
|
|
79
75
|
// States
|
|
80
76
|
isDisabled: _ref5,
|
|
81
77
|
// Sizes
|
|
@@ -105,6 +101,10 @@ var euiAvatarStyles = exports.euiAvatarStyles = function euiAvatarStyles(_ref8)
|
|
|
105
101
|
capitalize: _ref4,
|
|
106
102
|
uppercase: _ref3,
|
|
107
103
|
lowercase: _ref2,
|
|
108
|
-
none: _ref
|
|
104
|
+
none: _ref,
|
|
105
|
+
tooltip: {
|
|
106
|
+
user: /*#__PURE__*/(0, _react.css)("border-radius:", borderRadius.user, ";;label:user;"),
|
|
107
|
+
space: /*#__PURE__*/(0, _react.css)("border-radius:", borderRadius.space, ";;label:space;")
|
|
108
|
+
}
|
|
109
109
|
};
|
|
110
110
|
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useEuiTableStoreUniqueColumnId = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _uuid = require("uuid");
|
|
10
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
11
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
12
|
+
/*
|
|
13
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
14
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
15
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
16
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
17
|
+
* Side Public License, v 1.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
var useEuiTableStoreUniqueColumnIdFallback = function useEuiTableStoreUniqueColumnIdFallback() {
|
|
21
|
+
var ref = (0, _react.useRef)((0, _uuid.v4)());
|
|
22
|
+
return ref.current;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Returns a stable unique column ID to be used when registering columns.
|
|
27
|
+
* It uses `React.useId()` when available and falls back to UUID v4 on React 17.
|
|
28
|
+
*
|
|
29
|
+
* This is needed so that static `uuid` mocks don't break column registration
|
|
30
|
+
* (at least in React 18+; in older versions this function would need
|
|
31
|
+
* to be mocked to return something unique, but stable).
|
|
32
|
+
* @internal
|
|
33
|
+
*/
|
|
34
|
+
var useEuiTableStoreUniqueColumnId = exports.useEuiTableStoreUniqueColumnId = 'useId' in _react.default ? _react.useId : useEuiTableStoreUniqueColumnIdFallback;
|
|
@@ -9,7 +9,6 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
9
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
11
11
|
var _services = require("../../services");
|
|
12
|
-
var _html_id_generator = require("../../services/accessibility/html_id_generator");
|
|
13
12
|
var _i18n = require("../i18n");
|
|
14
13
|
var _accessibility = require("../accessibility");
|
|
15
14
|
var _icon = require("../icon");
|
|
@@ -21,6 +20,7 @@ var _table_cell_content = require("./_table_cell_content");
|
|
|
21
20
|
var _table_cells_shared = require("./table_cells_shared.styles");
|
|
22
21
|
var _provider = require("./store/provider");
|
|
23
22
|
var _sticky_header = require("./sticky_header");
|
|
23
|
+
var _use_unique_column_id = require("./store/use_unique_column_id");
|
|
24
24
|
var _react2 = require("@emotion/react");
|
|
25
25
|
var _excluded = ["children", "align", "onSort", "isSorted", "isSortAscending", "className", "scope", "mobileOptions", "width", "minWidth", "maxWidth", "style", "readOnly", "tooltipProps", "description", "append", "sticky"];
|
|
26
26
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
@@ -116,7 +116,7 @@ var EuiTableHeaderCell = exports.EuiTableHeaderCell = function EuiTableHeaderCel
|
|
|
116
116
|
sticky = _ref2.sticky,
|
|
117
117
|
rest = _objectWithoutProperties(_ref2, _excluded);
|
|
118
118
|
var selfRef = (0, _react.useRef)(null);
|
|
119
|
-
var
|
|
119
|
+
var storeCellId = (0, _use_unique_column_id.useEuiTableStoreUniqueColumnId)();
|
|
120
120
|
var store = (0, _provider.useEuiTableColumnDataStore)();
|
|
121
121
|
var isWithinStickyHeader = (0, _sticky_header.useEuiTableWithinStickyHeader)();
|
|
122
122
|
var styles = (0, _services.useEuiMemoizedStyles)(_table_cells_shared.euiTableHeaderFooterCellStyles);
|
|
@@ -181,15 +181,15 @@ var EuiTableHeaderCell = exports.EuiTableHeaderCell = function EuiTableHeaderCel
|
|
|
181
181
|
if (!entry) {
|
|
182
182
|
return;
|
|
183
183
|
}
|
|
184
|
-
store.updateColumnWidth(
|
|
185
|
-
}, [store,
|
|
184
|
+
store.updateColumnWidth(storeCellId, entry.contentRect.width);
|
|
185
|
+
}, [store, storeCellId]);
|
|
186
186
|
(0, _react.useEffect)(function () {
|
|
187
187
|
// Don't register the column inside the sticky header as the original
|
|
188
188
|
// column is already registered. This would cause an infinite loop.
|
|
189
189
|
if (isWithinStickyHeader || !selfRef.current || !renderHeaderCellRef.current) {
|
|
190
190
|
return;
|
|
191
191
|
}
|
|
192
|
-
var unregisterColumn = store.registerColumn(
|
|
192
|
+
var unregisterColumn = store.registerColumn(storeCellId, {
|
|
193
193
|
renderHeaderCellRef: renderHeaderCellRef,
|
|
194
194
|
// getBoundingClientRect is not the cheapest, but we call it only once
|
|
195
195
|
currentWidth: selfRef.current.getBoundingClientRect().width
|
|
@@ -211,8 +211,7 @@ var EuiTableHeaderCell = exports.EuiTableHeaderCell = function EuiTableHeaderCel
|
|
|
211
211
|
unregisterColumn();
|
|
212
212
|
(_resizeObserver = resizeObserver) === null || _resizeObserver === void 0 || _resizeObserver.disconnect();
|
|
213
213
|
};
|
|
214
|
-
|
|
215
|
-
}, [store, internalCellId, isWithinStickyHeader]);
|
|
214
|
+
}, [store, isWithinStickyHeader, handleResize, storeCellId]);
|
|
216
215
|
|
|
217
216
|
// Notify the store on every render so the sticky header stays in sync.
|
|
218
217
|
// React's reconciliation will efficiently handle any duplicate renders.
|
|
@@ -227,7 +226,7 @@ var EuiTableHeaderCell = exports.EuiTableHeaderCell = function EuiTableHeaderCel
|
|
|
227
226
|
if (!selfRef.current) {
|
|
228
227
|
return;
|
|
229
228
|
}
|
|
230
|
-
store.updateColumn(
|
|
229
|
+
store.updateColumn(storeCellId, {
|
|
231
230
|
renderHeaderCellRef: renderHeaderCellRef
|
|
232
231
|
});
|
|
233
232
|
});
|
|
@@ -9,11 +9,11 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
9
9
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
10
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
11
11
|
var _services = require("../../services");
|
|
12
|
-
var _html_id_generator = require("../../services/accessibility/html_id_generator");
|
|
13
12
|
var _utils = require("./utils");
|
|
14
13
|
var _table_cells_shared = require("./table_cells_shared.styles");
|
|
15
14
|
var _provider = require("./store/provider");
|
|
16
15
|
var _sticky_header = require("./sticky_header");
|
|
16
|
+
var _use_unique_column_id = require("./store/use_unique_column_id");
|
|
17
17
|
var _react2 = require("@emotion/react");
|
|
18
18
|
var _excluded = ["children", "className", "scope", "style", "width", "minWidth", "maxWidth", "append"];
|
|
19
19
|
/*
|
|
@@ -40,7 +40,7 @@ var EuiTableHeaderCellCheckbox = exports.EuiTableHeaderCellCheckbox = function E
|
|
|
40
40
|
maxWidth = props.maxWidth,
|
|
41
41
|
append = props.append,
|
|
42
42
|
rest = _objectWithoutProperties(props, _excluded);
|
|
43
|
-
var
|
|
43
|
+
var storeCellId = (0, _use_unique_column_id.useEuiTableStoreUniqueColumnId)();
|
|
44
44
|
var store = (0, _provider.useEuiTableColumnDataStore)();
|
|
45
45
|
var isWithinStickyHeader = (0, _sticky_header.useEuiTableWithinStickyHeader)();
|
|
46
46
|
var styles = (0, _services.useEuiMemoizedStyles)(_table_cells_shared.euiTableCellCheckboxStyles);
|
|
@@ -67,21 +67,20 @@ var EuiTableHeaderCellCheckbox = exports.EuiTableHeaderCellCheckbox = function E
|
|
|
67
67
|
if (isWithinStickyHeader) {
|
|
68
68
|
return;
|
|
69
69
|
}
|
|
70
|
-
var unregisterColumn = store.registerColumn(
|
|
70
|
+
var unregisterColumn = store.registerColumn(storeCellId, {
|
|
71
71
|
renderHeaderCellRef: renderHeaderCellRef
|
|
72
72
|
});
|
|
73
73
|
return function () {
|
|
74
74
|
unregisterColumn();
|
|
75
75
|
};
|
|
76
|
-
|
|
77
|
-
}, [store, internalCellId, isWithinStickyHeader]);
|
|
76
|
+
}, [store, isWithinStickyHeader, storeCellId]);
|
|
78
77
|
(0, _react.useEffect)(function () {
|
|
79
78
|
// Notify the store on every render so the sticky header stays in sync.
|
|
80
79
|
// React's reconciliation will efficiently handle any duplicate renders.
|
|
81
80
|
if (isWithinStickyHeader) {
|
|
82
81
|
return;
|
|
83
82
|
}
|
|
84
|
-
store.updateColumn(
|
|
83
|
+
store.updateColumn(storeCellId, {
|
|
85
84
|
renderHeaderCellRef: renderHeaderCellRef
|
|
86
85
|
});
|
|
87
86
|
});
|
|
@@ -65,6 +65,7 @@ export var EuiAvatar = function EuiAvatar(_ref) {
|
|
|
65
65
|
var classes = classNames('euiAvatar', _defineProperty(_defineProperty(_defineProperty({}, "euiAvatar--".concat(size), size), "euiAvatar--".concat(type), type), 'euiAvatar-isDisabled', isDisabled), className);
|
|
66
66
|
var styles = useEuiMemoizedStyles(euiAvatarStyles);
|
|
67
67
|
var cssStyles = [styles.euiAvatar, styles[type], styles[size], styles[casing], isPlain && styles.plain, isSubdued && styles.subdued, isDisabled && styles.isDisabled];
|
|
68
|
+
var tooltipCssStyles = [styles.tooltip[type]];
|
|
68
69
|
var avatarStyle = useMemo(function () {
|
|
69
70
|
if (imageUrl) {
|
|
70
71
|
return {
|
|
@@ -119,6 +120,9 @@ export var EuiAvatar = function EuiAvatar(_ref) {
|
|
|
119
120
|
// It already has `aria-label`, the tooltip is only visual.
|
|
120
121
|
return name ? ___EmotionJSX(EuiToolTip, {
|
|
121
122
|
content: name,
|
|
123
|
+
anchorProps: {
|
|
124
|
+
css: tooltipCssStyles
|
|
125
|
+
},
|
|
122
126
|
disableScreenReaderOutput: true
|
|
123
127
|
}, avatarNode) : avatarNode;
|
|
124
128
|
};
|
|
@@ -9,9 +9,9 @@ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringif
|
|
|
9
9
|
|
|
10
10
|
import { css } from '@emotion/react';
|
|
11
11
|
import { logicalSizeCSS, mathWithUnits } from '../../global_styling';
|
|
12
|
-
var _avatarSize = function _avatarSize(
|
|
13
|
-
var size =
|
|
14
|
-
fontSize =
|
|
12
|
+
var _avatarSize = function _avatarSize(_ref6) {
|
|
13
|
+
var size = _ref6.size,
|
|
14
|
+
fontSize = _ref6.fontSize;
|
|
15
15
|
return "\n ".concat(logicalSizeCSS(size), ";\n font-size: ").concat(fontSize, ";\n ");
|
|
16
16
|
};
|
|
17
17
|
var _ref = process.env.NODE_ENV === "production" ? {
|
|
@@ -54,24 +54,20 @@ var _ref5 = process.env.NODE_ENV === "production" ? {
|
|
|
54
54
|
styles: "cursor:not-allowed;filter:grayscale(100%);label:isDisabled;",
|
|
55
55
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
56
56
|
};
|
|
57
|
-
var
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
64
|
-
};
|
|
65
|
-
export var euiAvatarStyles = function euiAvatarStyles(_ref8) {
|
|
66
|
-
var euiTheme = _ref8.euiTheme;
|
|
57
|
+
export var euiAvatarStyles = function euiAvatarStyles(_ref7) {
|
|
58
|
+
var euiTheme = _ref7.euiTheme;
|
|
59
|
+
var borderRadius = {
|
|
60
|
+
user: '50%',
|
|
61
|
+
space: euiTheme.border.radius.medium
|
|
62
|
+
};
|
|
67
63
|
return {
|
|
68
64
|
// Base
|
|
69
65
|
euiAvatar: /*#__PURE__*/css("flex-shrink:0;display:inline-flex;justify-content:center;align-items:center;vertical-align:middle;background-size:cover;background-color:", euiTheme.colors.lightShade, ";overflow:hidden;font-weight:", euiTheme.font.weight.medium, ";;label:euiAvatar;"),
|
|
70
66
|
// Variants
|
|
71
67
|
plain: /*#__PURE__*/css("background-color:", euiTheme.colors.emptyShade, ";;label:plain;"),
|
|
72
68
|
subdued: /*#__PURE__*/css("background-color:", euiTheme.colors.lightestShade, ";;label:subdued;"),
|
|
73
|
-
user:
|
|
74
|
-
space: /*#__PURE__*/css("border-radius:",
|
|
69
|
+
user: /*#__PURE__*/css("border-radius:", borderRadius.user, ";;label:user;"),
|
|
70
|
+
space: /*#__PURE__*/css("border-radius:", borderRadius.space, ";;label:space;"),
|
|
75
71
|
// States
|
|
76
72
|
isDisabled: _ref5,
|
|
77
73
|
// Sizes
|
|
@@ -101,6 +97,10 @@ export var euiAvatarStyles = function euiAvatarStyles(_ref8) {
|
|
|
101
97
|
capitalize: _ref4,
|
|
102
98
|
uppercase: _ref3,
|
|
103
99
|
lowercase: _ref2,
|
|
104
|
-
none: _ref
|
|
100
|
+
none: _ref,
|
|
101
|
+
tooltip: {
|
|
102
|
+
user: /*#__PURE__*/css("border-radius:", borderRadius.user, ";;label:user;"),
|
|
103
|
+
space: /*#__PURE__*/css("border-radius:", borderRadius.space, ";;label:space;")
|
|
104
|
+
}
|
|
105
105
|
};
|
|
106
106
|
};
|
|
@@ -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;
|
|
@@ -15,7 +15,6 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
15
15
|
import React, { useEffect, useCallback, useRef } from 'react';
|
|
16
16
|
import classNames from 'classnames';
|
|
17
17
|
import { useEuiMemoizedStyles, LEFT_ALIGNMENT } from '../../services';
|
|
18
|
-
import { useGeneratedHtmlId } from '../../services/accessibility/html_id_generator';
|
|
19
18
|
import { EuiI18n } from '../i18n';
|
|
20
19
|
import { EuiScreenReaderOnly } from '../accessibility';
|
|
21
20
|
import { EuiIcon } from '../icon';
|
|
@@ -27,6 +26,7 @@ import { EuiTableCellContent } from './_table_cell_content';
|
|
|
27
26
|
import { euiTableHeaderFooterCellStyles, _useEuiTableStickyCellStyles } from './table_cells_shared.styles';
|
|
28
27
|
import { useEuiTableColumnDataStore } from './store/provider';
|
|
29
28
|
import { useEuiTableWithinStickyHeader } from './sticky_header';
|
|
29
|
+
import { useEuiTableStoreUniqueColumnId } from './store/use_unique_column_id';
|
|
30
30
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
|
31
31
|
var CellContents = function CellContents(_ref) {
|
|
32
32
|
var className = _ref.className,
|
|
@@ -104,7 +104,7 @@ export var EuiTableHeaderCell = function EuiTableHeaderCell(_ref2) {
|
|
|
104
104
|
sticky = _ref2.sticky,
|
|
105
105
|
rest = _objectWithoutProperties(_ref2, _excluded);
|
|
106
106
|
var selfRef = useRef(null);
|
|
107
|
-
var
|
|
107
|
+
var storeCellId = useEuiTableStoreUniqueColumnId();
|
|
108
108
|
var store = useEuiTableColumnDataStore();
|
|
109
109
|
var isWithinStickyHeader = useEuiTableWithinStickyHeader();
|
|
110
110
|
var styles = useEuiMemoizedStyles(euiTableHeaderFooterCellStyles);
|
|
@@ -169,15 +169,15 @@ export var EuiTableHeaderCell = function EuiTableHeaderCell(_ref2) {
|
|
|
169
169
|
if (!entry) {
|
|
170
170
|
return;
|
|
171
171
|
}
|
|
172
|
-
store.updateColumnWidth(
|
|
173
|
-
}, [store,
|
|
172
|
+
store.updateColumnWidth(storeCellId, entry.contentRect.width);
|
|
173
|
+
}, [store, storeCellId]);
|
|
174
174
|
useEffect(function () {
|
|
175
175
|
// Don't register the column inside the sticky header as the original
|
|
176
176
|
// column is already registered. This would cause an infinite loop.
|
|
177
177
|
if (isWithinStickyHeader || !selfRef.current || !renderHeaderCellRef.current) {
|
|
178
178
|
return;
|
|
179
179
|
}
|
|
180
|
-
var unregisterColumn = store.registerColumn(
|
|
180
|
+
var unregisterColumn = store.registerColumn(storeCellId, {
|
|
181
181
|
renderHeaderCellRef: renderHeaderCellRef,
|
|
182
182
|
// getBoundingClientRect is not the cheapest, but we call it only once
|
|
183
183
|
currentWidth: selfRef.current.getBoundingClientRect().width
|
|
@@ -199,8 +199,7 @@ export var EuiTableHeaderCell = function EuiTableHeaderCell(_ref2) {
|
|
|
199
199
|
unregisterColumn();
|
|
200
200
|
(_resizeObserver = resizeObserver) === null || _resizeObserver === void 0 || _resizeObserver.disconnect();
|
|
201
201
|
};
|
|
202
|
-
|
|
203
|
-
}, [store, internalCellId, isWithinStickyHeader]);
|
|
202
|
+
}, [store, isWithinStickyHeader, handleResize, storeCellId]);
|
|
204
203
|
|
|
205
204
|
// Notify the store on every render so the sticky header stays in sync.
|
|
206
205
|
// React's reconciliation will efficiently handle any duplicate renders.
|
|
@@ -215,7 +214,7 @@ export var EuiTableHeaderCell = function EuiTableHeaderCell(_ref2) {
|
|
|
215
214
|
if (!selfRef.current) {
|
|
216
215
|
return;
|
|
217
216
|
}
|
|
218
|
-
store.updateColumn(
|
|
217
|
+
store.updateColumn(storeCellId, {
|
|
219
218
|
renderHeaderCellRef: renderHeaderCellRef
|
|
220
219
|
});
|
|
221
220
|
});
|
|
@@ -12,11 +12,11 @@ var _excluded = ["children", "className", "scope", "style", "width", "minWidth",
|
|
|
12
12
|
import React, { useEffect, useRef } from 'react';
|
|
13
13
|
import classNames from 'classnames';
|
|
14
14
|
import { useEuiMemoizedStyles } from '../../services';
|
|
15
|
-
import { useGeneratedHtmlId } from '../../services/accessibility/html_id_generator';
|
|
16
15
|
import { resolveWidthPropsAsStyle } from './utils';
|
|
17
16
|
import { euiTableCellCheckboxStyles } from './table_cells_shared.styles';
|
|
18
17
|
import { useEuiTableColumnDataStore } from './store/provider';
|
|
19
18
|
import { useEuiTableWithinStickyHeader } from './sticky_header';
|
|
19
|
+
import { useEuiTableStoreUniqueColumnId } from './store/use_unique_column_id';
|
|
20
20
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
|
21
21
|
export var EuiTableHeaderCellCheckbox = function EuiTableHeaderCellCheckbox(props) {
|
|
22
22
|
var children = props.children,
|
|
@@ -29,7 +29,7 @@ export var EuiTableHeaderCellCheckbox = function EuiTableHeaderCellCheckbox(prop
|
|
|
29
29
|
maxWidth = props.maxWidth,
|
|
30
30
|
append = props.append,
|
|
31
31
|
rest = _objectWithoutProperties(props, _excluded);
|
|
32
|
-
var
|
|
32
|
+
var storeCellId = useEuiTableStoreUniqueColumnId();
|
|
33
33
|
var store = useEuiTableColumnDataStore();
|
|
34
34
|
var isWithinStickyHeader = useEuiTableWithinStickyHeader();
|
|
35
35
|
var styles = useEuiMemoizedStyles(euiTableCellCheckboxStyles);
|
|
@@ -56,21 +56,20 @@ export var EuiTableHeaderCellCheckbox = function EuiTableHeaderCellCheckbox(prop
|
|
|
56
56
|
if (isWithinStickyHeader) {
|
|
57
57
|
return;
|
|
58
58
|
}
|
|
59
|
-
var unregisterColumn = store.registerColumn(
|
|
59
|
+
var unregisterColumn = store.registerColumn(storeCellId, {
|
|
60
60
|
renderHeaderCellRef: renderHeaderCellRef
|
|
61
61
|
});
|
|
62
62
|
return function () {
|
|
63
63
|
unregisterColumn();
|
|
64
64
|
};
|
|
65
|
-
|
|
66
|
-
}, [store, internalCellId, isWithinStickyHeader]);
|
|
65
|
+
}, [store, isWithinStickyHeader, storeCellId]);
|
|
67
66
|
useEffect(function () {
|
|
68
67
|
// Notify the store on every render so the sticky header stays in sync.
|
|
69
68
|
// React's reconciliation will efficiently handle any duplicate renders.
|
|
70
69
|
if (isWithinStickyHeader) {
|
|
71
70
|
return;
|
|
72
71
|
}
|
|
73
|
-
store.updateColumn(
|
|
72
|
+
store.updateColumn(storeCellId, {
|
|
74
73
|
renderHeaderCellRef: renderHeaderCellRef
|
|
75
74
|
});
|
|
76
75
|
});
|
|
@@ -74,6 +74,7 @@ var EuiAvatar = exports.EuiAvatar = function EuiAvatar(_ref) {
|
|
|
74
74
|
var classes = (0, _classnames.default)('euiAvatar', (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, "euiAvatar--".concat(size), size), "euiAvatar--".concat(type), type), 'euiAvatar-isDisabled', isDisabled), className);
|
|
75
75
|
var styles = (0, _services.useEuiMemoizedStyles)(_avatar.euiAvatarStyles);
|
|
76
76
|
var cssStyles = [styles.euiAvatar, styles[type], styles[size], styles[casing], isPlain && styles.plain, isSubdued && styles.subdued, isDisabled && styles.isDisabled];
|
|
77
|
+
var tooltipCssStyles = [styles.tooltip[type]];
|
|
77
78
|
var avatarStyle = (0, _react.useMemo)(function () {
|
|
78
79
|
if (imageUrl) {
|
|
79
80
|
return {
|
|
@@ -128,6 +129,9 @@ var EuiAvatar = exports.EuiAvatar = function EuiAvatar(_ref) {
|
|
|
128
129
|
// It already has `aria-label`, the tooltip is only visual.
|
|
129
130
|
return name ? (0, _react2.jsx)(_tool_tip.EuiToolTip, {
|
|
130
131
|
content: name,
|
|
132
|
+
anchorProps: {
|
|
133
|
+
css: tooltipCssStyles
|
|
134
|
+
},
|
|
131
135
|
disableScreenReaderOutput: true
|
|
132
136
|
}, avatarNode) : avatarNode;
|
|
133
137
|
};
|
|
@@ -13,9 +13,9 @@ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringif
|
|
|
13
13
|
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
14
14
|
* Side Public License, v 1.
|
|
15
15
|
*/
|
|
16
|
-
var _avatarSize = function _avatarSize(
|
|
17
|
-
var size =
|
|
18
|
-
fontSize =
|
|
16
|
+
var _avatarSize = function _avatarSize(_ref6) {
|
|
17
|
+
var size = _ref6.size,
|
|
18
|
+
fontSize = _ref6.fontSize;
|
|
19
19
|
return "\n ".concat((0, _global_styling.logicalSizeCSS)(size), ";\n font-size: ").concat(fontSize, ";\n ");
|
|
20
20
|
};
|
|
21
21
|
var _ref = process.env.NODE_ENV === "production" ? {
|
|
@@ -58,24 +58,20 @@ var _ref5 = process.env.NODE_ENV === "production" ? {
|
|
|
58
58
|
styles: "cursor:not-allowed;filter:grayscale(100%);label:isDisabled;",
|
|
59
59
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
60
60
|
};
|
|
61
|
-
var
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
68
|
-
};
|
|
69
|
-
var euiAvatarStyles = exports.euiAvatarStyles = function euiAvatarStyles(_ref8) {
|
|
70
|
-
var euiTheme = _ref8.euiTheme;
|
|
61
|
+
var euiAvatarStyles = exports.euiAvatarStyles = function euiAvatarStyles(_ref7) {
|
|
62
|
+
var euiTheme = _ref7.euiTheme;
|
|
63
|
+
var borderRadius = {
|
|
64
|
+
user: '50%',
|
|
65
|
+
space: euiTheme.border.radius.medium
|
|
66
|
+
};
|
|
71
67
|
return {
|
|
72
68
|
// Base
|
|
73
69
|
euiAvatar: /*#__PURE__*/(0, _react.css)("flex-shrink:0;display:inline-flex;justify-content:center;align-items:center;vertical-align:middle;background-size:cover;background-color:", euiTheme.colors.lightShade, ";overflow:hidden;font-weight:", euiTheme.font.weight.medium, ";;label:euiAvatar;"),
|
|
74
70
|
// Variants
|
|
75
71
|
plain: /*#__PURE__*/(0, _react.css)("background-color:", euiTheme.colors.emptyShade, ";;label:plain;"),
|
|
76
72
|
subdued: /*#__PURE__*/(0, _react.css)("background-color:", euiTheme.colors.lightestShade, ";;label:subdued;"),
|
|
77
|
-
user:
|
|
78
|
-
space: /*#__PURE__*/(0, _react.css)("border-radius:",
|
|
73
|
+
user: /*#__PURE__*/(0, _react.css)("border-radius:", borderRadius.user, ";;label:user;"),
|
|
74
|
+
space: /*#__PURE__*/(0, _react.css)("border-radius:", borderRadius.space, ";;label:space;"),
|
|
79
75
|
// States
|
|
80
76
|
isDisabled: _ref5,
|
|
81
77
|
// Sizes
|
|
@@ -105,6 +101,10 @@ var euiAvatarStyles = exports.euiAvatarStyles = function euiAvatarStyles(_ref8)
|
|
|
105
101
|
capitalize: _ref4,
|
|
106
102
|
uppercase: _ref3,
|
|
107
103
|
lowercase: _ref2,
|
|
108
|
-
none: _ref
|
|
104
|
+
none: _ref,
|
|
105
|
+
tooltip: {
|
|
106
|
+
user: /*#__PURE__*/(0, _react.css)("border-radius:", borderRadius.user, ";;label:user;"),
|
|
107
|
+
space: /*#__PURE__*/(0, _react.css)("border-radius:", borderRadius.space, ";;label:space;")
|
|
108
|
+
}
|
|
109
109
|
};
|
|
110
110
|
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useEuiTableStoreUniqueColumnId = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _uuid = require("uuid");
|
|
10
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
11
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
12
|
+
/*
|
|
13
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
14
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
15
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
16
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
17
|
+
* Side Public License, v 1.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
var useEuiTableStoreUniqueColumnIdFallback = function useEuiTableStoreUniqueColumnIdFallback() {
|
|
21
|
+
var ref = (0, _react.useRef)((0, _uuid.v4)());
|
|
22
|
+
return ref.current;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Returns a stable unique column ID to be used when registering columns.
|
|
27
|
+
* It uses `React.useId()` when available and falls back to UUID v4 on React 17.
|
|
28
|
+
*
|
|
29
|
+
* This is needed so that static `uuid` mocks don't break column registration
|
|
30
|
+
* (at least in React 18+; in older versions this function would need
|
|
31
|
+
* to be mocked to return something unique, but stable).
|
|
32
|
+
* @internal
|
|
33
|
+
*/
|
|
34
|
+
var useEuiTableStoreUniqueColumnId = exports.useEuiTableStoreUniqueColumnId = 'useId' in _react.default ? _react.useId : useEuiTableStoreUniqueColumnIdFallback;
|
|
@@ -12,7 +12,6 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
12
12
|
var _react = _interopRequireWildcard(require("react"));
|
|
13
13
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
14
14
|
var _services = require("../../services");
|
|
15
|
-
var _html_id_generator = require("../../services/accessibility/html_id_generator");
|
|
16
15
|
var _i18n = require("../i18n");
|
|
17
16
|
var _accessibility = require("../accessibility");
|
|
18
17
|
var _icon = require("../icon");
|
|
@@ -24,6 +23,7 @@ var _table_cell_content = require("./_table_cell_content");
|
|
|
24
23
|
var _table_cells_shared = require("./table_cells_shared.styles");
|
|
25
24
|
var _provider = require("./store/provider");
|
|
26
25
|
var _sticky_header = require("./sticky_header");
|
|
26
|
+
var _use_unique_column_id = require("./store/use_unique_column_id");
|
|
27
27
|
var _react2 = require("@emotion/react");
|
|
28
28
|
var _excluded = ["children", "align", "onSort", "isSorted", "isSortAscending", "className", "scope", "mobileOptions", "width", "minWidth", "maxWidth", "style", "readOnly", "tooltipProps", "description", "append", "sticky"];
|
|
29
29
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
@@ -112,7 +112,7 @@ var EuiTableHeaderCell = exports.EuiTableHeaderCell = function EuiTableHeaderCel
|
|
|
112
112
|
sticky = _ref2.sticky,
|
|
113
113
|
rest = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
|
|
114
114
|
var selfRef = (0, _react.useRef)(null);
|
|
115
|
-
var
|
|
115
|
+
var storeCellId = (0, _use_unique_column_id.useEuiTableStoreUniqueColumnId)();
|
|
116
116
|
var store = (0, _provider.useEuiTableColumnDataStore)();
|
|
117
117
|
var isWithinStickyHeader = (0, _sticky_header.useEuiTableWithinStickyHeader)();
|
|
118
118
|
var styles = (0, _services.useEuiMemoizedStyles)(_table_cells_shared.euiTableHeaderFooterCellStyles);
|
|
@@ -177,15 +177,15 @@ var EuiTableHeaderCell = exports.EuiTableHeaderCell = function EuiTableHeaderCel
|
|
|
177
177
|
if (!entry) {
|
|
178
178
|
return;
|
|
179
179
|
}
|
|
180
|
-
store.updateColumnWidth(
|
|
181
|
-
}, [store,
|
|
180
|
+
store.updateColumnWidth(storeCellId, entry.contentRect.width);
|
|
181
|
+
}, [store, storeCellId]);
|
|
182
182
|
(0, _react.useEffect)(function () {
|
|
183
183
|
// Don't register the column inside the sticky header as the original
|
|
184
184
|
// column is already registered. This would cause an infinite loop.
|
|
185
185
|
if (isWithinStickyHeader || !selfRef.current || !renderHeaderCellRef.current) {
|
|
186
186
|
return;
|
|
187
187
|
}
|
|
188
|
-
var unregisterColumn = store.registerColumn(
|
|
188
|
+
var unregisterColumn = store.registerColumn(storeCellId, {
|
|
189
189
|
renderHeaderCellRef: renderHeaderCellRef,
|
|
190
190
|
// getBoundingClientRect is not the cheapest, but we call it only once
|
|
191
191
|
currentWidth: selfRef.current.getBoundingClientRect().width
|
|
@@ -207,8 +207,7 @@ var EuiTableHeaderCell = exports.EuiTableHeaderCell = function EuiTableHeaderCel
|
|
|
207
207
|
unregisterColumn();
|
|
208
208
|
(_resizeObserver = resizeObserver) === null || _resizeObserver === void 0 || _resizeObserver.disconnect();
|
|
209
209
|
};
|
|
210
|
-
|
|
211
|
-
}, [store, internalCellId, isWithinStickyHeader]);
|
|
210
|
+
}, [store, isWithinStickyHeader, handleResize, storeCellId]);
|
|
212
211
|
|
|
213
212
|
// Notify the store on every render so the sticky header stays in sync.
|
|
214
213
|
// React's reconciliation will efficiently handle any duplicate renders.
|
|
@@ -223,7 +222,7 @@ var EuiTableHeaderCell = exports.EuiTableHeaderCell = function EuiTableHeaderCel
|
|
|
223
222
|
if (!selfRef.current) {
|
|
224
223
|
return;
|
|
225
224
|
}
|
|
226
|
-
store.updateColumn(
|
|
225
|
+
store.updateColumn(storeCellId, {
|
|
227
226
|
renderHeaderCellRef: renderHeaderCellRef
|
|
228
227
|
});
|
|
229
228
|
});
|
|
@@ -11,11 +11,11 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
|
|
|
11
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
12
12
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
13
13
|
var _services = require("../../services");
|
|
14
|
-
var _html_id_generator = require("../../services/accessibility/html_id_generator");
|
|
15
14
|
var _utils = require("./utils");
|
|
16
15
|
var _table_cells_shared = require("./table_cells_shared.styles");
|
|
17
16
|
var _provider = require("./store/provider");
|
|
18
17
|
var _sticky_header = require("./sticky_header");
|
|
18
|
+
var _use_unique_column_id = require("./store/use_unique_column_id");
|
|
19
19
|
var _react2 = require("@emotion/react");
|
|
20
20
|
var _excluded = ["children", "className", "scope", "style", "width", "minWidth", "maxWidth", "append"];
|
|
21
21
|
/*
|
|
@@ -38,7 +38,7 @@ var EuiTableHeaderCellCheckbox = exports.EuiTableHeaderCellCheckbox = function E
|
|
|
38
38
|
maxWidth = props.maxWidth,
|
|
39
39
|
append = props.append,
|
|
40
40
|
rest = (0, _objectWithoutProperties2.default)(props, _excluded);
|
|
41
|
-
var
|
|
41
|
+
var storeCellId = (0, _use_unique_column_id.useEuiTableStoreUniqueColumnId)();
|
|
42
42
|
var store = (0, _provider.useEuiTableColumnDataStore)();
|
|
43
43
|
var isWithinStickyHeader = (0, _sticky_header.useEuiTableWithinStickyHeader)();
|
|
44
44
|
var styles = (0, _services.useEuiMemoizedStyles)(_table_cells_shared.euiTableCellCheckboxStyles);
|
|
@@ -65,21 +65,20 @@ var EuiTableHeaderCellCheckbox = exports.EuiTableHeaderCellCheckbox = function E
|
|
|
65
65
|
if (isWithinStickyHeader) {
|
|
66
66
|
return;
|
|
67
67
|
}
|
|
68
|
-
var unregisterColumn = store.registerColumn(
|
|
68
|
+
var unregisterColumn = store.registerColumn(storeCellId, {
|
|
69
69
|
renderHeaderCellRef: renderHeaderCellRef
|
|
70
70
|
});
|
|
71
71
|
return function () {
|
|
72
72
|
unregisterColumn();
|
|
73
73
|
};
|
|
74
|
-
|
|
75
|
-
}, [store, internalCellId, isWithinStickyHeader]);
|
|
74
|
+
}, [store, isWithinStickyHeader, storeCellId]);
|
|
76
75
|
(0, _react.useEffect)(function () {
|
|
77
76
|
// Notify the store on every render so the sticky header stays in sync.
|
|
78
77
|
// React's reconciliation will efficiently handle any duplicate renders.
|
|
79
78
|
if (isWithinStickyHeader) {
|
|
80
79
|
return;
|
|
81
80
|
}
|
|
82
|
-
store.updateColumn(
|
|
81
|
+
store.updateColumn(storeCellId, {
|
|
83
82
|
renderHeaderCellRef: renderHeaderCellRef
|
|
84
83
|
});
|
|
85
84
|
});
|
package/package.json
CHANGED
|
@@ -75,6 +75,7 @@ var EuiAvatar = exports.EuiAvatar = function EuiAvatar(_ref) {
|
|
|
75
75
|
var classes = (0, _classnames.default)('euiAvatar', (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, "euiAvatar--".concat(size), size), "euiAvatar--".concat(type), type), 'euiAvatar-isDisabled', isDisabled), className);
|
|
76
76
|
var styles = (0, _services.useEuiMemoizedStyles)(_avatar.euiAvatarStyles);
|
|
77
77
|
var cssStyles = [styles.euiAvatar, styles[type], styles[size], styles[casing], isPlain && styles.plain, isSubdued && styles.subdued, isDisabled && styles.isDisabled];
|
|
78
|
+
var tooltipCssStyles = [styles.tooltip[type]];
|
|
78
79
|
var avatarStyle = (0, _react.useMemo)(function () {
|
|
79
80
|
if (imageUrl) {
|
|
80
81
|
return {
|
|
@@ -129,6 +130,9 @@ var EuiAvatar = exports.EuiAvatar = function EuiAvatar(_ref) {
|
|
|
129
130
|
// It already has `aria-label`, the tooltip is only visual.
|
|
130
131
|
return name ? (0, _react2.jsx)(_tool_tip.EuiToolTip, {
|
|
131
132
|
content: name,
|
|
133
|
+
anchorProps: {
|
|
134
|
+
css: tooltipCssStyles
|
|
135
|
+
},
|
|
132
136
|
disableScreenReaderOutput: true
|
|
133
137
|
}, avatarNode) : avatarNode;
|
|
134
138
|
};
|
|
@@ -13,9 +13,9 @@ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringif
|
|
|
13
13
|
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
14
14
|
* Side Public License, v 1.
|
|
15
15
|
*/
|
|
16
|
-
var _avatarSize = function _avatarSize(
|
|
17
|
-
var size =
|
|
18
|
-
fontSize =
|
|
16
|
+
var _avatarSize = function _avatarSize(_ref6) {
|
|
17
|
+
var size = _ref6.size,
|
|
18
|
+
fontSize = _ref6.fontSize;
|
|
19
19
|
return "\n ".concat((0, _global_styling.logicalSizeCSS)(size), ";\n font-size: ").concat(fontSize, ";\n ");
|
|
20
20
|
};
|
|
21
21
|
var _ref = process.env.NODE_ENV === "production" ? {
|
|
@@ -58,24 +58,20 @@ var _ref5 = process.env.NODE_ENV === "production" ? {
|
|
|
58
58
|
styles: "cursor:not-allowed;filter:grayscale(100%);label:isDisabled;",
|
|
59
59
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
60
60
|
};
|
|
61
|
-
var
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
68
|
-
};
|
|
69
|
-
var euiAvatarStyles = exports.euiAvatarStyles = function euiAvatarStyles(_ref8) {
|
|
70
|
-
var euiTheme = _ref8.euiTheme;
|
|
61
|
+
var euiAvatarStyles = exports.euiAvatarStyles = function euiAvatarStyles(_ref7) {
|
|
62
|
+
var euiTheme = _ref7.euiTheme;
|
|
63
|
+
var borderRadius = {
|
|
64
|
+
user: '50%',
|
|
65
|
+
space: euiTheme.border.radius.medium
|
|
66
|
+
};
|
|
71
67
|
return {
|
|
72
68
|
// Base
|
|
73
69
|
euiAvatar: /*#__PURE__*/(0, _react.css)("flex-shrink:0;display:inline-flex;justify-content:center;align-items:center;vertical-align:middle;background-size:cover;background-color:", euiTheme.colors.lightShade, ";overflow:hidden;font-weight:", euiTheme.font.weight.medium, ";;label:euiAvatar;"),
|
|
74
70
|
// Variants
|
|
75
71
|
plain: /*#__PURE__*/(0, _react.css)("background-color:", euiTheme.colors.emptyShade, ";;label:plain;"),
|
|
76
72
|
subdued: /*#__PURE__*/(0, _react.css)("background-color:", euiTheme.colors.lightestShade, ";;label:subdued;"),
|
|
77
|
-
user:
|
|
78
|
-
space: /*#__PURE__*/(0, _react.css)("border-radius:",
|
|
73
|
+
user: /*#__PURE__*/(0, _react.css)("border-radius:", borderRadius.user, ";;label:user;"),
|
|
74
|
+
space: /*#__PURE__*/(0, _react.css)("border-radius:", borderRadius.space, ";;label:space;"),
|
|
79
75
|
// States
|
|
80
76
|
isDisabled: _ref5,
|
|
81
77
|
// Sizes
|
|
@@ -105,6 +101,10 @@ var euiAvatarStyles = exports.euiAvatarStyles = function euiAvatarStyles(_ref8)
|
|
|
105
101
|
capitalize: _ref4,
|
|
106
102
|
uppercase: _ref3,
|
|
107
103
|
lowercase: _ref2,
|
|
108
|
-
none: _ref
|
|
104
|
+
none: _ref,
|
|
105
|
+
tooltip: {
|
|
106
|
+
user: /*#__PURE__*/(0, _react.css)("border-radius:", borderRadius.user, ";;label:user;"),
|
|
107
|
+
space: /*#__PURE__*/(0, _react.css)("border-radius:", borderRadius.space, ";;label:space;")
|
|
108
|
+
}
|
|
109
109
|
};
|
|
110
110
|
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useEuiTableStoreUniqueColumnId = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _uuid = require("uuid");
|
|
10
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
11
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
12
|
+
/*
|
|
13
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
14
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
15
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
16
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
17
|
+
* Side Public License, v 1.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
var useEuiTableStoreUniqueColumnIdFallback = function useEuiTableStoreUniqueColumnIdFallback() {
|
|
21
|
+
var ref = (0, _react.useRef)((0, _uuid.v4)());
|
|
22
|
+
return ref.current;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Returns a stable unique column ID to be used when registering columns.
|
|
27
|
+
* It uses `React.useId()` when available and falls back to UUID v4 on React 17.
|
|
28
|
+
*
|
|
29
|
+
* This is needed so that static `uuid` mocks don't break column registration
|
|
30
|
+
* (at least in React 18+; in older versions this function would need
|
|
31
|
+
* to be mocked to return something unique, but stable).
|
|
32
|
+
* @internal
|
|
33
|
+
*/
|
|
34
|
+
var useEuiTableStoreUniqueColumnId = exports.useEuiTableStoreUniqueColumnId = 'useId' in _react.default ? _react.useId : useEuiTableStoreUniqueColumnIdFallback;
|
|
@@ -13,7 +13,6 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
13
13
|
var _react = _interopRequireWildcard(require("react"));
|
|
14
14
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
15
15
|
var _services = require("../../services");
|
|
16
|
-
var _html_id_generator = require("../../services/accessibility/html_id_generator");
|
|
17
16
|
var _i18n = require("../i18n");
|
|
18
17
|
var _accessibility = require("../accessibility");
|
|
19
18
|
var _icon = require("../icon");
|
|
@@ -25,6 +24,7 @@ var _table_cell_content = require("./_table_cell_content");
|
|
|
25
24
|
var _table_cells_shared = require("./table_cells_shared.styles");
|
|
26
25
|
var _provider = require("./store/provider");
|
|
27
26
|
var _sticky_header = require("./sticky_header");
|
|
27
|
+
var _use_unique_column_id = require("./store/use_unique_column_id");
|
|
28
28
|
var _react2 = require("@emotion/react");
|
|
29
29
|
var _excluded = ["children", "align", "onSort", "isSorted", "isSortAscending", "className", "scope", "mobileOptions", "width", "minWidth", "maxWidth", "style", "readOnly", "tooltipProps", "description", "append", "sticky"];
|
|
30
30
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
@@ -113,7 +113,7 @@ var EuiTableHeaderCell = exports.EuiTableHeaderCell = function EuiTableHeaderCel
|
|
|
113
113
|
sticky = _ref2.sticky,
|
|
114
114
|
rest = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
|
|
115
115
|
var selfRef = (0, _react.useRef)(null);
|
|
116
|
-
var
|
|
116
|
+
var storeCellId = (0, _use_unique_column_id.useEuiTableStoreUniqueColumnId)();
|
|
117
117
|
var store = (0, _provider.useEuiTableColumnDataStore)();
|
|
118
118
|
var isWithinStickyHeader = (0, _sticky_header.useEuiTableWithinStickyHeader)();
|
|
119
119
|
var styles = (0, _services.useEuiMemoizedStyles)(_table_cells_shared.euiTableHeaderFooterCellStyles);
|
|
@@ -178,15 +178,15 @@ var EuiTableHeaderCell = exports.EuiTableHeaderCell = function EuiTableHeaderCel
|
|
|
178
178
|
if (!entry) {
|
|
179
179
|
return;
|
|
180
180
|
}
|
|
181
|
-
store.updateColumnWidth(
|
|
182
|
-
}, [store,
|
|
181
|
+
store.updateColumnWidth(storeCellId, entry.contentRect.width);
|
|
182
|
+
}, [store, storeCellId]);
|
|
183
183
|
(0, _react.useEffect)(function () {
|
|
184
184
|
// Don't register the column inside the sticky header as the original
|
|
185
185
|
// column is already registered. This would cause an infinite loop.
|
|
186
186
|
if (isWithinStickyHeader || !selfRef.current || !renderHeaderCellRef.current) {
|
|
187
187
|
return;
|
|
188
188
|
}
|
|
189
|
-
var unregisterColumn = store.registerColumn(
|
|
189
|
+
var unregisterColumn = store.registerColumn(storeCellId, {
|
|
190
190
|
renderHeaderCellRef: renderHeaderCellRef,
|
|
191
191
|
// getBoundingClientRect is not the cheapest, but we call it only once
|
|
192
192
|
currentWidth: selfRef.current.getBoundingClientRect().width
|
|
@@ -208,8 +208,7 @@ var EuiTableHeaderCell = exports.EuiTableHeaderCell = function EuiTableHeaderCel
|
|
|
208
208
|
unregisterColumn();
|
|
209
209
|
(_resizeObserver = resizeObserver) === null || _resizeObserver === void 0 || _resizeObserver.disconnect();
|
|
210
210
|
};
|
|
211
|
-
|
|
212
|
-
}, [store, internalCellId, isWithinStickyHeader]);
|
|
211
|
+
}, [store, isWithinStickyHeader, handleResize, storeCellId]);
|
|
213
212
|
|
|
214
213
|
// Notify the store on every render so the sticky header stays in sync.
|
|
215
214
|
// React's reconciliation will efficiently handle any duplicate renders.
|
|
@@ -224,7 +223,7 @@ var EuiTableHeaderCell = exports.EuiTableHeaderCell = function EuiTableHeaderCel
|
|
|
224
223
|
if (!selfRef.current) {
|
|
225
224
|
return;
|
|
226
225
|
}
|
|
227
|
-
store.updateColumn(
|
|
226
|
+
store.updateColumn(storeCellId, {
|
|
228
227
|
renderHeaderCellRef: renderHeaderCellRef
|
|
229
228
|
});
|
|
230
229
|
});
|
|
@@ -12,11 +12,11 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
12
12
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
13
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
14
14
|
var _services = require("../../services");
|
|
15
|
-
var _html_id_generator = require("../../services/accessibility/html_id_generator");
|
|
16
15
|
var _utils = require("./utils");
|
|
17
16
|
var _table_cells_shared = require("./table_cells_shared.styles");
|
|
18
17
|
var _provider = require("./store/provider");
|
|
19
18
|
var _sticky_header = require("./sticky_header");
|
|
19
|
+
var _use_unique_column_id = require("./store/use_unique_column_id");
|
|
20
20
|
var _react2 = require("@emotion/react");
|
|
21
21
|
var _excluded = ["children", "className", "scope", "style", "width", "minWidth", "maxWidth", "append"];
|
|
22
22
|
/*
|
|
@@ -39,7 +39,7 @@ var EuiTableHeaderCellCheckbox = exports.EuiTableHeaderCellCheckbox = function E
|
|
|
39
39
|
maxWidth = props.maxWidth,
|
|
40
40
|
append = props.append,
|
|
41
41
|
rest = (0, _objectWithoutProperties2.default)(props, _excluded);
|
|
42
|
-
var
|
|
42
|
+
var storeCellId = (0, _use_unique_column_id.useEuiTableStoreUniqueColumnId)();
|
|
43
43
|
var store = (0, _provider.useEuiTableColumnDataStore)();
|
|
44
44
|
var isWithinStickyHeader = (0, _sticky_header.useEuiTableWithinStickyHeader)();
|
|
45
45
|
var styles = (0, _services.useEuiMemoizedStyles)(_table_cells_shared.euiTableCellCheckboxStyles);
|
|
@@ -66,21 +66,20 @@ var EuiTableHeaderCellCheckbox = exports.EuiTableHeaderCellCheckbox = function E
|
|
|
66
66
|
if (isWithinStickyHeader) {
|
|
67
67
|
return;
|
|
68
68
|
}
|
|
69
|
-
var unregisterColumn = store.registerColumn(
|
|
69
|
+
var unregisterColumn = store.registerColumn(storeCellId, {
|
|
70
70
|
renderHeaderCellRef: renderHeaderCellRef
|
|
71
71
|
});
|
|
72
72
|
return function () {
|
|
73
73
|
unregisterColumn();
|
|
74
74
|
};
|
|
75
|
-
|
|
76
|
-
}, [store, internalCellId, isWithinStickyHeader]);
|
|
75
|
+
}, [store, isWithinStickyHeader, storeCellId]);
|
|
77
76
|
(0, _react.useEffect)(function () {
|
|
78
77
|
// Notify the store on every render so the sticky header stays in sync.
|
|
79
78
|
// React's reconciliation will efficiently handle any duplicate renders.
|
|
80
79
|
if (isWithinStickyHeader) {
|
|
81
80
|
return;
|
|
82
81
|
}
|
|
83
|
-
store.updateColumn(
|
|
82
|
+
store.updateColumn(storeCellId, {
|
|
84
83
|
renderHeaderCellRef: renderHeaderCellRef
|
|
85
84
|
});
|
|
86
85
|
});
|