@patternfly/react-table 4.40.0 → 4.43.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/CHANGELOG.md +41 -0
- package/dist/esm/components/Table/base/provider.d.ts +5 -5
- package/dist/esm/components/Table/base/types.d.ts +5 -5
- package/dist/esm/components/TableComposable/InnerScrollContainer.d.ts +9 -0
- package/dist/esm/components/TableComposable/InnerScrollContainer.d.ts.map +1 -0
- package/dist/esm/components/TableComposable/InnerScrollContainer.js +10 -0
- package/dist/esm/components/TableComposable/InnerScrollContainer.js.map +1 -0
- package/dist/esm/components/TableComposable/OuterScrollContainer.d.ts +9 -0
- package/dist/esm/components/TableComposable/OuterScrollContainer.d.ts.map +1 -0
- package/dist/esm/components/TableComposable/OuterScrollContainer.js +10 -0
- package/dist/esm/components/TableComposable/OuterScrollContainer.js.map +1 -0
- package/dist/esm/components/TableComposable/TableComposable.d.ts +3 -1
- package/dist/esm/components/TableComposable/TableComposable.d.ts.map +1 -1
- package/dist/esm/components/TableComposable/TableComposable.js +12 -2
- package/dist/esm/components/TableComposable/TableComposable.js.map +1 -1
- package/dist/esm/components/TableComposable/Th.d.ts +11 -1
- package/dist/esm/components/TableComposable/Th.d.ts.map +1 -1
- package/dist/esm/components/TableComposable/Th.js +5 -2
- package/dist/esm/components/TableComposable/Th.js.map +1 -1
- package/dist/esm/components/TableComposable/Thead.d.ts +3 -1
- package/dist/esm/components/TableComposable/Thead.d.ts.map +1 -1
- package/dist/esm/components/TableComposable/Thead.js +2 -2
- package/dist/esm/components/TableComposable/Thead.js.map +1 -1
- package/dist/esm/components/TableComposable/Tr.d.ts +3 -1
- package/dist/esm/components/TableComposable/Tr.d.ts.map +1 -1
- package/dist/esm/components/TableComposable/Tr.js +2 -2
- package/dist/esm/components/TableComposable/Tr.js.map +1 -1
- package/dist/esm/components/TableComposable/index.d.ts +2 -0
- package/dist/esm/components/TableComposable/index.d.ts.map +1 -1
- package/dist/esm/components/TableComposable/index.js +2 -0
- package/dist/esm/components/TableComposable/index.js.map +1 -1
- package/dist/js/components/Table/base/provider.d.ts +5 -5
- package/dist/js/components/Table/base/types.d.ts +5 -5
- package/dist/js/components/TableComposable/InnerScrollContainer.d.ts +9 -0
- package/dist/js/components/TableComposable/InnerScrollContainer.d.ts.map +1 -0
- package/dist/js/components/TableComposable/InnerScrollContainer.js +14 -0
- package/dist/js/components/TableComposable/InnerScrollContainer.js.map +1 -0
- package/dist/js/components/TableComposable/OuterScrollContainer.d.ts +9 -0
- package/dist/js/components/TableComposable/OuterScrollContainer.d.ts.map +1 -0
- package/dist/js/components/TableComposable/OuterScrollContainer.js +14 -0
- package/dist/js/components/TableComposable/OuterScrollContainer.js.map +1 -0
- package/dist/js/components/TableComposable/TableComposable.d.ts +3 -1
- package/dist/js/components/TableComposable/TableComposable.d.ts.map +1 -1
- package/dist/js/components/TableComposable/TableComposable.js +12 -2
- package/dist/js/components/TableComposable/TableComposable.js.map +1 -1
- package/dist/js/components/TableComposable/Th.d.ts +11 -1
- package/dist/js/components/TableComposable/Th.d.ts.map +1 -1
- package/dist/js/components/TableComposable/Th.js +5 -2
- package/dist/js/components/TableComposable/Th.js.map +1 -1
- package/dist/js/components/TableComposable/Thead.d.ts +3 -1
- package/dist/js/components/TableComposable/Thead.d.ts.map +1 -1
- package/dist/js/components/TableComposable/Thead.js +2 -2
- package/dist/js/components/TableComposable/Thead.js.map +1 -1
- package/dist/js/components/TableComposable/Tr.d.ts +3 -1
- package/dist/js/components/TableComposable/Tr.d.ts.map +1 -1
- package/dist/js/components/TableComposable/Tr.js +2 -2
- package/dist/js/components/TableComposable/Tr.js.map +1 -1
- package/dist/js/components/TableComposable/index.d.ts +2 -0
- package/dist/js/components/TableComposable/index.d.ts.map +1 -1
- package/dist/js/components/TableComposable/index.js +2 -0
- package/dist/js/components/TableComposable/index.js.map +1 -1
- package/dist/umd/react-table.css +400 -87
- package/dist/umd/react-table.js +247 -208
- package/dist/umd/react-table.min.css +1277 -964
- package/dist/umd/react-table.min.js +3 -3
- package/package.json +6 -6
- package/src/components/TableComposable/InnerScrollContainer.tsx +22 -0
- package/src/components/TableComposable/OuterScrollContainer.tsx +22 -0
- package/src/components/TableComposable/TableComposable.tsx +11 -0
- package/src/components/TableComposable/Th.tsx +26 -0
- package/src/components/TableComposable/Thead.tsx +12 -1
- package/src/components/TableComposable/Tr.tsx +5 -1
- package/src/components/TableComposable/examples/ComposableTable.md +1106 -0
- package/src/components/TableComposable/index.ts +2 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@patternfly/react-table",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.43.1",
|
|
4
4
|
"description": "This library provides a set of React table components for use with the PatternFly 4",
|
|
5
5
|
"main": "dist/js/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -31,10 +31,10 @@
|
|
|
31
31
|
"clean": "rimraf dist"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@patternfly/react-core": "^4.
|
|
35
|
-
"@patternfly/react-icons": "^4.
|
|
36
|
-
"@patternfly/react-styles": "^4.
|
|
37
|
-
"@patternfly/react-tokens": "^4.
|
|
34
|
+
"@patternfly/react-core": "^4.174.1",
|
|
35
|
+
"@patternfly/react-icons": "^4.25.1",
|
|
36
|
+
"@patternfly/react-styles": "^4.24.1",
|
|
37
|
+
"@patternfly/react-tokens": "^4.26.1",
|
|
38
38
|
"lodash": "^4.17.19",
|
|
39
39
|
"tslib": "^2.0.0"
|
|
40
40
|
},
|
|
@@ -46,5 +46,5 @@
|
|
|
46
46
|
"react": "^16.8.0 || ^17.0.0",
|
|
47
47
|
"react-dom": "^16.8.0 || ^17.0.0"
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "8c1eb5d895aa2512f7b4197654e414394ff25b30"
|
|
50
50
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { css } from '@patternfly/react-styles';
|
|
3
|
+
import styles from '@patternfly/react-styles/css/components/Table/table-scrollable';
|
|
4
|
+
|
|
5
|
+
export interface InnerScrollContainerProps extends React.HTMLProps<HTMLDivElement> {
|
|
6
|
+
/** Content rendered inside the inner scroll container */
|
|
7
|
+
children?: React.ReactNode;
|
|
8
|
+
/** Additional classes added to the container */
|
|
9
|
+
className?: string;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export const InnerScrollContainer: React.FunctionComponent<InnerScrollContainerProps> = ({
|
|
13
|
+
children,
|
|
14
|
+
className,
|
|
15
|
+
...props
|
|
16
|
+
}: InnerScrollContainerProps) => (
|
|
17
|
+
<div className={css(className, styles.scrollInnerWrapper)} {...props}>
|
|
18
|
+
{children}
|
|
19
|
+
</div>
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
InnerScrollContainer.displayName = 'InnerScrollContainer';
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { css } from '@patternfly/react-styles';
|
|
3
|
+
import styles from '@patternfly/react-styles/css/components/Table/table-scrollable';
|
|
4
|
+
|
|
5
|
+
export interface OuterScrollContainerProps extends React.HTMLProps<HTMLDivElement> {
|
|
6
|
+
/** Content rendered inside the outer scroll container */
|
|
7
|
+
children?: React.ReactNode;
|
|
8
|
+
/** Additional classes added to the container */
|
|
9
|
+
className?: string;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export const OuterScrollContainer: React.FunctionComponent<OuterScrollContainerProps> = ({
|
|
13
|
+
children,
|
|
14
|
+
className,
|
|
15
|
+
...props
|
|
16
|
+
}: OuterScrollContainerProps) => (
|
|
17
|
+
<div className={css(className, styles.scrollOuterWrapper)} {...props}>
|
|
18
|
+
{children}
|
|
19
|
+
</div>
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
OuterScrollContainer.displayName = 'OuterScrollContainer';
|
|
@@ -53,6 +53,8 @@ export interface TableComposableProps extends React.HTMLProps<HTMLTableElement>,
|
|
|
53
53
|
isTreeTable?: boolean;
|
|
54
54
|
/** Flag indicating this table is nested within another table */
|
|
55
55
|
isNested?: boolean;
|
|
56
|
+
/** Collection of column spans for nested headers */
|
|
57
|
+
nestedHeaderColumnSpans?: number[];
|
|
56
58
|
}
|
|
57
59
|
|
|
58
60
|
const TableComposableBase: React.FunctionComponent<TableComposableProps> = ({
|
|
@@ -69,6 +71,7 @@ const TableComposableBase: React.FunctionComponent<TableComposableProps> = ({
|
|
|
69
71
|
ouiaSafe = true,
|
|
70
72
|
isTreeTable = false,
|
|
71
73
|
isNested = false,
|
|
74
|
+
nestedHeaderColumnSpans,
|
|
72
75
|
...props
|
|
73
76
|
}: TableComposableProps) => {
|
|
74
77
|
const tableRef = innerRef || React.useRef(null);
|
|
@@ -156,6 +159,14 @@ const TableComposableBase: React.FunctionComponent<TableComposableProps> = ({
|
|
|
156
159
|
{...ouiaProps}
|
|
157
160
|
{...props}
|
|
158
161
|
>
|
|
162
|
+
{nestedHeaderColumnSpans &&
|
|
163
|
+
nestedHeaderColumnSpans.map((span: number, index) => {
|
|
164
|
+
if (span === 1) {
|
|
165
|
+
return <col key={index} />;
|
|
166
|
+
} else {
|
|
167
|
+
return <colgroup key={index} span={span} />;
|
|
168
|
+
}
|
|
169
|
+
})}
|
|
159
170
|
{children}
|
|
160
171
|
</table>
|
|
161
172
|
);
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { css } from '@patternfly/react-styles';
|
|
3
3
|
import styles from '@patternfly/react-styles/css/components/Table/table';
|
|
4
|
+
import scrollStyles from '@patternfly/react-styles/css/components/Table/table-scrollable';
|
|
4
5
|
import { info } from '../Table/utils/decorators/info';
|
|
5
6
|
import { sortable, sortableFavorites } from '../Table/utils/decorators/sortable';
|
|
6
7
|
import { selectable } from '../Table/utils/decorators/selectable';
|
|
@@ -38,6 +39,16 @@ export interface ThProps
|
|
|
38
39
|
info?: ThInfoType;
|
|
39
40
|
/** Adds scope to the column to associate header cells with data cells*/
|
|
40
41
|
scope?: string;
|
|
42
|
+
/** Indicates the header column should be sticky */
|
|
43
|
+
isStickyColumn?: boolean;
|
|
44
|
+
/** Adds a border to the right side of the cell */
|
|
45
|
+
hasRightBorder?: boolean;
|
|
46
|
+
/** Minimum width for a sticky column */
|
|
47
|
+
stickyMinWidth?: string;
|
|
48
|
+
/** Left offset of a sticky column. This will typically be equal to the combined value set by stickyMinWidth of any sticky columns that precede the current sticky column. */
|
|
49
|
+
stickyLeftOffset?: string;
|
|
50
|
+
/** Indicates the <th> is part of a subheader of a nested header */
|
|
51
|
+
isSubheader?: boolean;
|
|
41
52
|
}
|
|
42
53
|
|
|
43
54
|
const ThBase: React.FunctionComponent<ThProps> = ({
|
|
@@ -56,6 +67,11 @@ const ThBase: React.FunctionComponent<ThProps> = ({
|
|
|
56
67
|
visibility,
|
|
57
68
|
innerRef,
|
|
58
69
|
info: infoProps,
|
|
70
|
+
isStickyColumn = false,
|
|
71
|
+
hasRightBorder = false,
|
|
72
|
+
stickyMinWidth = '120px',
|
|
73
|
+
stickyLeftOffset,
|
|
74
|
+
isSubheader = false,
|
|
59
75
|
...props
|
|
60
76
|
}: ThProps) => {
|
|
61
77
|
const [showTooltip, setShowTooltip] = React.useState(false);
|
|
@@ -132,11 +148,21 @@ const ThBase: React.FunctionComponent<ThProps> = ({
|
|
|
132
148
|
className={css(
|
|
133
149
|
className,
|
|
134
150
|
textCenter && styles.modifiers.center,
|
|
151
|
+
isSubheader && styles.tableSubhead,
|
|
152
|
+
isStickyColumn && scrollStyles.tableStickyColumn,
|
|
153
|
+
hasRightBorder && scrollStyles.modifiers.borderRight,
|
|
135
154
|
modifier && styles.modifiers[modifier as 'breakWord' | 'fitContent' | 'nowrap' | 'truncate' | 'wrap'],
|
|
136
155
|
mergedClassName
|
|
137
156
|
)}
|
|
138
157
|
{...mergedProps}
|
|
139
158
|
{...props}
|
|
159
|
+
{...(isStickyColumn && {
|
|
160
|
+
style: {
|
|
161
|
+
'--pf-c-table__sticky-column--MinWidth': stickyMinWidth ? stickyMinWidth : undefined,
|
|
162
|
+
'--pf-c-table__sticky-column--Left': stickyLeftOffset ? stickyLeftOffset : undefined,
|
|
163
|
+
...props.style
|
|
164
|
+
} as React.CSSProperties
|
|
165
|
+
})}
|
|
140
166
|
>
|
|
141
167
|
{transformedChildren}
|
|
142
168
|
</MergedComponent>
|
|
@@ -11,6 +11,8 @@ export interface TheadProps extends React.HTMLProps<HTMLTableSectionElement> {
|
|
|
11
11
|
noWrap?: boolean;
|
|
12
12
|
/** Forwarded ref */
|
|
13
13
|
innerRef?: React.Ref<any>;
|
|
14
|
+
/** Indicates the <thead> contains a nested header */
|
|
15
|
+
hasNestedHeader?: boolean;
|
|
14
16
|
}
|
|
15
17
|
|
|
16
18
|
const TheadBase: React.FunctionComponent<TheadProps> = ({
|
|
@@ -18,9 +20,18 @@ const TheadBase: React.FunctionComponent<TheadProps> = ({
|
|
|
18
20
|
className,
|
|
19
21
|
noWrap = false,
|
|
20
22
|
innerRef,
|
|
23
|
+
hasNestedHeader,
|
|
21
24
|
...props
|
|
22
25
|
}: TheadProps) => (
|
|
23
|
-
<thead
|
|
26
|
+
<thead
|
|
27
|
+
className={css(
|
|
28
|
+
className,
|
|
29
|
+
noWrap && styles.modifiers.nowrap,
|
|
30
|
+
hasNestedHeader && styles.modifiers.nestedColumnHeader
|
|
31
|
+
)}
|
|
32
|
+
ref={innerRef}
|
|
33
|
+
{...props}
|
|
34
|
+
>
|
|
24
35
|
{children}
|
|
25
36
|
</thead>
|
|
26
37
|
);
|
|
@@ -23,6 +23,8 @@ export interface TrProps extends React.HTMLProps<HTMLTableRowElement>, OUIAProps
|
|
|
23
23
|
isRowSelected?: boolean;
|
|
24
24
|
/** An event handler for the row */
|
|
25
25
|
onRowClick?: (event?: React.KeyboardEvent | React.MouseEvent) => void;
|
|
26
|
+
/** Flag indicating the spacing offset of the first cell should be reset */
|
|
27
|
+
resetOffset?: boolean;
|
|
26
28
|
}
|
|
27
29
|
|
|
28
30
|
const TrBase: React.FunctionComponent<TrProps> = ({
|
|
@@ -36,6 +38,7 @@ const TrBase: React.FunctionComponent<TrProps> = ({
|
|
|
36
38
|
innerRef,
|
|
37
39
|
ouiaId,
|
|
38
40
|
ouiaSafe = true,
|
|
41
|
+
resetOffset = false,
|
|
39
42
|
onRowClick,
|
|
40
43
|
...props
|
|
41
44
|
}: TrProps) => {
|
|
@@ -59,7 +62,8 @@ const TrBase: React.FunctionComponent<TrProps> = ({
|
|
|
59
62
|
isExpanded && styles.modifiers.expanded,
|
|
60
63
|
isEditable && inlineStyles.modifiers.inlineEditable,
|
|
61
64
|
isHoverable && styles.modifiers.hoverable,
|
|
62
|
-
isRowSelected && styles.modifiers.selected
|
|
65
|
+
isRowSelected && styles.modifiers.selected,
|
|
66
|
+
resetOffset && styles.modifiers.firstCellOffsetReset
|
|
63
67
|
)}
|
|
64
68
|
hidden={isHidden || (isExpanded !== undefined && !isExpanded)}
|
|
65
69
|
{...(isHoverable && { tabIndex: 0 })}
|