@patternfly/react-table 6.0.0-alpha.7 → 6.0.0-alpha.71
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 +816 -2
- package/README.md +2 -17
- package/components/package.json +1 -1
- package/deprecated/package.json +1 -1
- package/dist/dynamic/components/Table/package.json +1 -1
- package/dist/dynamic/components/Table/utils/decorators/package.json +1 -1
- package/dist/dynamic/components/Table/utils/package.json +1 -1
- package/dist/dynamic/deprecated/components/Table/base/package.json +1 -1
- package/dist/dynamic/deprecated/components/Table/package.json +1 -1
- package/dist/dynamic/deprecated/components/package.json +1 -1
- package/dist/dynamic-modules.json +127 -0
- package/dist/esm/components/Table/ActionsColumn.d.ts +2 -0
- package/dist/esm/components/Table/ActionsColumn.d.ts.map +1 -1
- package/dist/esm/components/Table/ActionsColumn.js +4 -5
- package/dist/esm/components/Table/ActionsColumn.js.map +1 -1
- package/dist/esm/components/Table/EditableSelectInputCell.d.ts +3 -4
- package/dist/esm/components/Table/EditableSelectInputCell.d.ts.map +1 -1
- package/dist/esm/components/Table/EditableSelectInputCell.js +9 -5
- package/dist/esm/components/Table/EditableSelectInputCell.js.map +1 -1
- package/dist/esm/components/Table/EditableTextCell.js +1 -1
- package/dist/esm/components/Table/EditableTextCell.js.map +1 -1
- package/dist/esm/components/Table/RowWrapper.js.map +1 -1
- package/dist/esm/components/Table/SortColumn.js.map +1 -1
- package/dist/esm/components/Table/Table.d.ts.map +1 -1
- package/dist/esm/components/Table/Table.js +4 -4
- package/dist/esm/components/Table/Table.js.map +1 -1
- package/dist/esm/components/Table/TableText.js.map +1 -1
- package/dist/esm/components/Table/TableTypes.d.ts +26 -25
- package/dist/esm/components/Table/TableTypes.d.ts.map +1 -1
- package/dist/esm/components/Table/TableTypes.js.map +1 -1
- package/dist/esm/components/Table/Td.d.ts +1 -1
- package/dist/esm/components/Table/Td.js +3 -3
- package/dist/esm/components/Table/Td.js.map +1 -1
- package/dist/esm/components/Table/Th.d.ts +8 -0
- package/dist/esm/components/Table/Th.d.ts.map +1 -1
- package/dist/esm/components/Table/Th.js +10 -6
- package/dist/esm/components/Table/Th.js.map +1 -1
- package/dist/esm/components/Table/Tr.js.map +1 -1
- package/dist/esm/components/Table/base/columns-are-equal.js.map +1 -1
- package/dist/esm/components/Table/base/evaluate-transforms.js.map +1 -1
- package/dist/esm/components/Table/base/merge-props.js.map +1 -1
- package/dist/esm/components/Table/base/provider.js.map +1 -1
- package/dist/esm/components/Table/base/types.d.ts +16 -17
- package/dist/esm/components/Table/base/types.d.ts.map +1 -1
- package/dist/esm/components/Table/base/types.js.map +1 -1
- package/dist/esm/components/Table/utils/decorators/compoundExpand.js.map +1 -1
- package/dist/esm/components/Table/utils/decorators/editable.js.map +1 -1
- package/dist/esm/components/Table/utils/decorators/favoritable.js.map +1 -1
- package/dist/esm/components/Table/utils/decorators/selectable.js +1 -1
- package/dist/esm/components/Table/utils/decorators/selectable.js.map +1 -1
- package/dist/esm/components/Table/utils/decorators/sortable.js.map +1 -1
- package/dist/esm/components/Table/utils/decorators/treeRow.d.ts +1 -1
- package/dist/esm/components/Table/utils/headerUtils.js.map +1 -1
- package/dist/esm/components/Table/utils/utils.js.map +1 -1
- package/dist/esm/demos/DashboardHeader.d.ts +8 -0
- package/dist/esm/demos/DashboardHeader.d.ts.map +1 -0
- package/dist/esm/demos/DashboardHeader.js +77 -0
- package/dist/esm/demos/DashboardHeader.js.map +1 -0
- package/dist/esm/demos/DashboardWrapper.d.ts +85 -0
- package/dist/esm/demos/DashboardWrapper.d.ts.map +1 -0
- package/dist/esm/demos/DashboardWrapper.js +41 -0
- package/dist/esm/demos/DashboardWrapper.js.map +1 -0
- package/dist/esm/demos/index.d.ts +2 -0
- package/dist/esm/demos/index.d.ts.map +1 -1
- package/dist/esm/demos/index.js +2 -0
- package/dist/esm/demos/index.js.map +1 -1
- package/dist/esm/deprecated/components/Table/Body.d.ts +1 -1
- package/dist/esm/deprecated/components/Table/Body.d.ts.map +1 -1
- package/dist/esm/deprecated/components/Table/Body.js.map +1 -1
- package/dist/esm/deprecated/components/Table/BodyCell.js.map +1 -1
- package/dist/esm/deprecated/components/Table/BodyWrapper.js.map +1 -1
- package/dist/esm/deprecated/components/Table/Table.d.ts.map +1 -1
- package/dist/esm/deprecated/components/Table/Table.js +2 -3
- package/dist/esm/deprecated/components/Table/Table.js.map +1 -1
- package/dist/esm/deprecated/components/Table/base/body-row.js.map +1 -1
- package/dist/esm/deprecated/components/Table/base/body.js.map +1 -1
- package/dist/esm/deprecated/components/Table/base/header-row.js.map +1 -1
- package/dist/esm/deprecated/components/Table/base/resolve-row-key.js.map +1 -1
- package/dist/esm/index.d.ts +0 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +0 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/test-helpers/data-helpers.js.map +1 -1
- package/dist/js/components/Table/ActionsColumn.d.ts +2 -0
- package/dist/js/components/Table/ActionsColumn.d.ts.map +1 -1
- package/dist/js/components/Table/ActionsColumn.js +4 -5
- package/dist/js/components/Table/ActionsColumn.js.map +1 -1
- package/dist/js/components/Table/CollapseColumn.js.map +1 -1
- package/dist/js/components/Table/DraggableCell.js.map +1 -1
- package/dist/js/components/Table/EditColumn.js.map +1 -1
- package/dist/js/components/Table/EditableSelectInputCell.d.ts +3 -4
- package/dist/js/components/Table/EditableSelectInputCell.d.ts.map +1 -1
- package/dist/js/components/Table/EditableSelectInputCell.js +9 -5
- package/dist/js/components/Table/EditableSelectInputCell.js.map +1 -1
- package/dist/js/components/Table/EditableTextCell.js +1 -1
- package/dist/js/components/Table/EditableTextCell.js.map +1 -1
- package/dist/js/components/Table/FavoritesCell.js.map +1 -1
- package/dist/js/components/Table/HeaderCellInfoWrapper.js.map +1 -1
- package/dist/js/components/Table/RowWrapper.js +0 -1
- package/dist/js/components/Table/RowWrapper.js.map +1 -1
- package/dist/js/components/Table/SelectColumn.js +1 -1
- package/dist/js/components/Table/SelectColumn.js.map +1 -1
- package/dist/js/components/Table/SortColumn.js +1 -2
- package/dist/js/components/Table/SortColumn.js.map +1 -1
- package/dist/js/components/Table/Table.d.ts.map +1 -1
- package/dist/js/components/Table/Table.js +3 -3
- package/dist/js/components/Table/Table.js.map +1 -1
- package/dist/js/components/Table/TableText.js +2 -2
- package/dist/js/components/Table/TableText.js.map +1 -1
- package/dist/js/components/Table/TableTypes.d.ts +26 -25
- package/dist/js/components/Table/TableTypes.d.ts.map +1 -1
- package/dist/js/components/Table/TableTypes.js +2 -6
- package/dist/js/components/Table/TableTypes.js.map +1 -1
- package/dist/js/components/Table/Td.d.ts +1 -1
- package/dist/js/components/Table/Td.js +3 -3
- package/dist/js/components/Table/Td.js.map +1 -1
- package/dist/js/components/Table/Th.d.ts +8 -0
- package/dist/js/components/Table/Th.d.ts.map +1 -1
- package/dist/js/components/Table/Th.js +10 -6
- package/dist/js/components/Table/Th.js.map +1 -1
- package/dist/js/components/Table/Tr.js.map +1 -1
- package/dist/js/components/Table/base/columns-are-equal.js.map +1 -1
- package/dist/js/components/Table/base/evaluate-transforms.js.map +1 -1
- package/dist/js/components/Table/base/merge-props.js.map +1 -1
- package/dist/js/components/Table/base/provider.js.map +1 -1
- package/dist/js/components/Table/base/types.d.ts +16 -17
- package/dist/js/components/Table/base/types.d.ts.map +1 -1
- package/dist/js/components/Table/base/types.js +0 -4
- package/dist/js/components/Table/base/types.js.map +1 -1
- package/dist/js/components/Table/utils/decorators/compoundExpand.js.map +1 -1
- package/dist/js/components/Table/utils/decorators/editable.js.map +1 -1
- package/dist/js/components/Table/utils/decorators/favoritable.js.map +1 -1
- package/dist/js/components/Table/utils/decorators/selectable.js +1 -1
- package/dist/js/components/Table/utils/decorators/selectable.js.map +1 -1
- package/dist/js/components/Table/utils/decorators/sortable.js.map +1 -1
- package/dist/js/components/Table/utils/decorators/treeRow.d.ts +1 -1
- package/dist/js/components/Table/utils/decorators/treeRow.js.map +1 -1
- package/dist/js/components/Table/utils/headerUtils.js.map +1 -1
- package/dist/js/components/Table/utils/utils.js.map +1 -1
- package/dist/js/demos/DashboardHeader.d.ts +8 -0
- package/dist/js/demos/DashboardHeader.d.ts.map +1 -0
- package/dist/js/demos/DashboardHeader.js +82 -0
- package/dist/js/demos/DashboardHeader.js.map +1 -0
- package/dist/js/demos/DashboardWrapper.d.ts +85 -0
- package/dist/js/demos/DashboardWrapper.d.ts.map +1 -0
- package/dist/js/demos/DashboardWrapper.js +45 -0
- package/dist/js/demos/DashboardWrapper.js.map +1 -0
- package/dist/js/demos/index.d.ts +2 -0
- package/dist/js/demos/index.d.ts.map +1 -1
- package/dist/js/demos/index.js +2 -0
- package/dist/js/demos/index.js.map +1 -1
- package/dist/js/deprecated/components/Table/Body.d.ts +1 -1
- package/dist/js/deprecated/components/Table/Body.d.ts.map +1 -1
- package/dist/js/deprecated/components/Table/Body.js.map +1 -1
- package/dist/js/deprecated/components/Table/BodyCell.js +0 -1
- package/dist/js/deprecated/components/Table/BodyCell.js.map +1 -1
- package/dist/js/deprecated/components/Table/BodyWrapper.js.map +1 -1
- package/dist/js/deprecated/components/Table/Table.d.ts.map +1 -1
- package/dist/js/deprecated/components/Table/Table.js +9 -10
- package/dist/js/deprecated/components/Table/Table.js.map +1 -1
- package/dist/js/deprecated/components/Table/base/body-row.js.map +1 -1
- package/dist/js/deprecated/components/Table/base/body.js.map +1 -1
- package/dist/js/deprecated/components/Table/base/header-row.js.map +1 -1
- package/dist/js/deprecated/components/Table/base/resolve-row-key.js.map +1 -1
- package/dist/js/index.d.ts +0 -1
- package/dist/js/index.d.ts.map +1 -1
- package/dist/js/index.js +0 -1
- package/dist/js/index.js.map +1 -1
- package/dist/js/test-helpers/data-helpers.js.map +1 -1
- package/dist/umd/assets/output-DIIhJ4JW.css +28024 -0
- package/dist/umd/react-table.min.js +4 -5
- package/package.json +7 -11
- package/rollup.config.mjs +8 -0
- package/single-packages.config.json +3 -6
- package/src/components/Table/ActionsColumn.tsx +35 -31
- package/src/components/Table/EditableSelectInputCell.tsx +16 -11
- package/src/components/Table/EditableTextCell.tsx +1 -1
- package/src/components/Table/Table.tsx +4 -4
- package/src/components/Table/TableTypes.tsx +9 -8
- package/src/components/Table/Td.tsx +5 -5
- package/src/components/Table/Th.tsx +24 -6
- package/src/components/Table/__tests__/Th.test.tsx +31 -0
- package/src/components/Table/__tests__/__snapshots__/RowWrapper.test.tsx.snap +4 -4
- package/src/components/Table/base/types.tsx +6 -7
- package/src/components/Table/examples/Table.md +35 -4
- package/src/components/Table/examples/TableActions.tsx +2 -2
- package/src/components/Table/examples/TableActionsOverflow.tsx +3 -4
- package/src/components/Table/examples/TableCompoundExpandable.tsx +1 -1
- package/src/components/Table/examples/TableDraggable.tsx +19 -16
- package/src/components/Table/examples/TableEmptyState.tsx +1 -8
- package/src/components/Table/examples/TableExpandable.tsx +1 -1
- package/src/components/Table/examples/TableMisc.tsx +2 -2
- package/src/components/Table/examples/TableNestedExpandable.tsx +1 -1
- package/src/components/Table/examples/TableNestedHeaders.tsx +4 -7
- package/src/components/Table/examples/TableNestedStickyHeader.tsx +4 -10
- package/src/components/Table/examples/TableNestedTableExpandable.tsx +1 -1
- package/src/components/Table/examples/TableSelectable.tsx +1 -0
- package/src/components/Table/examples/TableSelectableRadio.tsx +1 -1
- package/src/components/Table/examples/TableSortableCustom.tsx +2 -3
- package/src/components/Table/examples/TableStickyColumnsAndHeader.tsx +1 -1
- package/src/components/Table/examples/TableStripedExpandable.tsx +1 -1
- package/src/components/Table/utils/__snapshots__/transformers.test.tsx.snap +2 -2
- package/src/components/Table/utils/decorators/selectable.tsx +1 -1
- package/src/components/Table/utils/transformers.test.tsx +4 -7
- package/src/demos/DashboardHeader.tsx +198 -0
- package/src/demos/DashboardWrapper.tsx +199 -0
- package/src/demos/Table.md +28 -5
- package/src/demos/assets/avatarImg.svg +18 -0
- package/src/demos/assets/index.d.ts +4 -0
- package/src/demos/assets/pf-logo.svg +28 -0
- package/src/demos/examples/TableBulkSelect.tsx +2 -2
- package/src/demos/examples/TableColumnManagement.tsx +1 -1
- package/src/demos/examples/TableColumnManagementWithDraggable.tsx +2 -6
- package/src/demos/examples/TableCompact.tsx +8 -3
- package/src/demos/examples/TableCompoundExpansion.tsx +4 -3
- package/src/demos/examples/TableEmptyStateDefault.tsx +7 -9
- package/src/demos/examples/TableEmptyStateError.tsx +8 -18
- package/src/demos/examples/TableEmptyStateLoading.tsx +3 -13
- package/src/demos/examples/TableExpandCollapseAll.tsx +3 -2
- package/src/demos/examples/TableFilterable.tsx +1 -8
- package/src/demos/examples/TableSortableResponsive.tsx +6 -8
- package/src/demos/examples/TableStaticBottomPagination.tsx +8 -3
- package/src/demos/examples/TableStickyFirstColumn.tsx +1 -1
- package/src/demos/examples/TableStickyHeader.tsx +1 -1
- package/src/demos/index.ts +2 -0
- package/src/deprecated/components/Table/Table.tsx +2 -3
- package/src/deprecated/components/Table/__tests__/__snapshots__/Table.test.tsx.snap +2225 -2143
- package/src/deprecated/components/Table/examples/LegacyTableEmptyState.tsx +6 -8
- package/src/deprecated/components/Table/examples/LegacyTableMisc.tsx +2 -2
- package/src/deprecated/components/Table/examples/LegacyTableSortableCustom.tsx +2 -3
- package/src/deprecated/components/Table/examples/Table.md +48 -41
- package/src/index.ts +0 -1
- package/rollup.config.js +0 -7
|
@@ -4,10 +4,8 @@ import {
|
|
|
4
4
|
Bullseye,
|
|
5
5
|
EmptyState,
|
|
6
6
|
EmptyStateVariant,
|
|
7
|
-
EmptyStateIcon,
|
|
8
7
|
EmptyStateBody,
|
|
9
8
|
Button,
|
|
10
|
-
EmptyStateHeader,
|
|
11
9
|
EmptyStateFooter,
|
|
12
10
|
EmptyStateActions
|
|
13
11
|
} from '@patternfly/react-core';
|
|
@@ -26,12 +24,12 @@ export const LegacyTableEmptyState: React.FunctionComponent = () => {
|
|
|
26
24
|
props: { colSpan: 8 },
|
|
27
25
|
title: (
|
|
28
26
|
<Bullseye>
|
|
29
|
-
<EmptyState
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
27
|
+
<EmptyState
|
|
28
|
+
headingLevel="h2"
|
|
29
|
+
titleText="No results found"
|
|
30
|
+
icon={SearchIcon}
|
|
31
|
+
variant={EmptyStateVariant.sm}
|
|
32
|
+
>
|
|
35
33
|
<EmptyStateBody>Clear all filters and try again.</EmptyStateBody>
|
|
36
34
|
<EmptyStateFooter>
|
|
37
35
|
<EmptyStateActions>
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { Table, TableHeader, TableBody, TableProps } from '@patternfly/react-table/deprecated';
|
|
3
3
|
import { css } from '@patternfly/react-styles';
|
|
4
4
|
/* eslint-disable camelcase */
|
|
5
|
-
import
|
|
5
|
+
import global_color_brand_default from '@patternfly/react-tokens/dist/esm/global_color_brand_default';
|
|
6
6
|
|
|
7
7
|
interface Repository {
|
|
8
8
|
name: string;
|
|
@@ -32,7 +32,7 @@ export const LegacyTableMisc: React.FunctionComponent = () => {
|
|
|
32
32
|
const customRowWrapper: TableProps['rowWrapper'] = ({ trRef, className, rowProps, row: _row }) => {
|
|
33
33
|
const isOddRow = rowProps ? !!((rowProps.rowIndex + 1) % 2) : true;
|
|
34
34
|
const customStyle = {
|
|
35
|
-
borderLeft: `3px solid ${
|
|
35
|
+
borderLeft: `3px solid ${global_color_brand_default.var}`
|
|
36
36
|
};
|
|
37
37
|
return (
|
|
38
38
|
<tr
|
|
@@ -137,9 +137,8 @@ export const LegacyTableSortableCustom: React.FunctionComponent = () => {
|
|
|
137
137
|
isExpanded={isSortDropdownOpen}
|
|
138
138
|
variant="plain"
|
|
139
139
|
aria-label="Sort columns"
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
</MenuToggle>
|
|
140
|
+
icon={<SortAmountDownIcon />}
|
|
141
|
+
/>
|
|
143
142
|
)}
|
|
144
143
|
>
|
|
145
144
|
<NewSelectGroup label="Sort column">
|
|
@@ -21,19 +21,17 @@ import LeafIcon from '@patternfly/react-icons/dist/esm/icons/leaf-icon';
|
|
|
21
21
|
import FolderIcon from '@patternfly/react-icons/dist/esm/icons/folder-icon';
|
|
22
22
|
import FolderOpenIcon from '@patternfly/react-icons/dist/esm/icons/folder-open-icon';
|
|
23
23
|
import SortAmountDownIcon from '@patternfly/react-icons/dist/esm/icons/sort-amount-down-icon';
|
|
24
|
-
import {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
SelectOption as NewSelectOption,
|
|
24
|
+
import {
|
|
25
|
+
Select as NewSelect,
|
|
26
|
+
SelectGroup as NewSelectGroup,
|
|
27
|
+
SelectList as NewSelectList,
|
|
28
|
+
SelectOption as NewSelectOption,
|
|
30
29
|
} from '@patternfly/react-core/dist/esm/components/Select';
|
|
31
30
|
|
|
32
|
-
|
|
33
31
|
import { css } from '@patternfly/react-styles';
|
|
34
32
|
import styles from '@patternfly/react-styles/css/components/Table/table';
|
|
35
33
|
import spacing from '@patternfly/react-styles/css/utilities/Spacing/spacing';
|
|
36
|
-
import
|
|
34
|
+
import global_color_brand_default from '@patternfly/react-tokens/dist/esm/global_color_brand_default';
|
|
37
35
|
|
|
38
36
|
## Table Columns
|
|
39
37
|
|
|
@@ -48,7 +46,7 @@ cells: (ICell | string)[];
|
|
|
48
46
|
```
|
|
49
47
|
interface ICell {
|
|
50
48
|
/* cell contents */
|
|
51
|
-
title?:
|
|
49
|
+
title?: React.ReactNode;
|
|
52
50
|
/** transformations applied to the header cell */
|
|
53
51
|
transforms?: ITransform[];
|
|
54
52
|
/** transformations applied to the cells within the column's body */
|
|
@@ -111,7 +109,7 @@ interface IRow extends RowType {
|
|
|
111
109
|
noPadding?: boolean;
|
|
112
110
|
}
|
|
113
111
|
interface IRowCell {
|
|
114
|
-
title?:
|
|
112
|
+
title?: React.ReactNode | RowCellContent;
|
|
115
113
|
props?: any;
|
|
116
114
|
formatters?: IFormatter[];
|
|
117
115
|
}
|
|
@@ -122,6 +120,7 @@ interface IRowCell {
|
|
|
122
120
|
### Basic
|
|
123
121
|
|
|
124
122
|
```ts file="LegacyTableBasic.tsx"
|
|
123
|
+
|
|
125
124
|
```
|
|
126
125
|
|
|
127
126
|
### Custom row wrapper
|
|
@@ -152,6 +151,7 @@ interface RowWrapperProps {
|
|
|
152
151
|
```
|
|
153
152
|
|
|
154
153
|
```ts file="LegacyTableMisc.tsx"
|
|
154
|
+
|
|
155
155
|
```
|
|
156
156
|
|
|
157
157
|
### Sortable & wrapping column headers
|
|
@@ -169,6 +169,7 @@ Note: If you want to add a tooltip/popover to a sortable header, in the `transfo
|
|
|
169
169
|
The built in display for sorting is not fully responsive, as the column headers will be displayed per row when the screen size is small. The example below showcases how sorting may have a custom control display that can be used for small screen sizes.
|
|
170
170
|
|
|
171
171
|
```ts file="LegacyTableSortable.tsx"
|
|
172
|
+
|
|
172
173
|
```
|
|
173
174
|
|
|
174
175
|
### Sortable - custom control
|
|
@@ -176,6 +177,7 @@ The built in display for sorting is not fully responsive, as the column headers
|
|
|
176
177
|
Sorting a table may also be controlled with a toolbar. This toolbar item may also be hidden at large screen sizes and only displayed when the screen size is small to support responsive tables.
|
|
177
178
|
|
|
178
179
|
```ts file="LegacyTableSortableCustom.tsx"
|
|
180
|
+
|
|
179
181
|
```
|
|
180
182
|
|
|
181
183
|
### Selectable with checkbox
|
|
@@ -196,6 +198,7 @@ of using `td` elements, the cells in that column use `th` elements.
|
|
|
196
198
|
checking checkboxes will check intermediate rows' checkboxes.
|
|
197
199
|
|
|
198
200
|
```ts file="LegacyTableSelectable.tsx"
|
|
201
|
+
|
|
199
202
|
```
|
|
200
203
|
|
|
201
204
|
### Selectable radio input
|
|
@@ -206,6 +209,7 @@ To enable row radio selection, set the `onSelect` callback prop on the Table, an
|
|
|
206
209
|
To disable selection for a row, set `disableSelection: true` on the row definition.
|
|
207
210
|
|
|
208
211
|
```ts file="LegacyTableSelectableRadio.tsx"
|
|
212
|
+
|
|
209
213
|
```
|
|
210
214
|
|
|
211
215
|
### Clickable rows, selectable rows, and header cell tooltips/popovers
|
|
@@ -213,6 +217,7 @@ To disable selection for a row, set `disableSelection: true` on the row definiti
|
|
|
213
217
|
This selectable rows feature is intended for use when a table is used to present a list of objects in a Primary-detail view.
|
|
214
218
|
|
|
215
219
|
```ts file="LegacyTableClickable.tsx"
|
|
220
|
+
|
|
216
221
|
```
|
|
217
222
|
|
|
218
223
|
### Actions and first cell in body rows as th
|
|
@@ -222,6 +227,7 @@ To use actions you can either specify an array of actions and pass that into the
|
|
|
222
227
|
If actions menus are getting clipped by other items on the page, such as sticky columns or rows, the `Table` can be passed a `actionsMenuAppendTo` prop to adjust where the actions menu is appended.
|
|
223
228
|
|
|
224
229
|
```ts file="LegacyTableActions.tsx"
|
|
230
|
+
|
|
225
231
|
```
|
|
226
232
|
|
|
227
233
|
### Expandable
|
|
@@ -232,6 +238,7 @@ The parent row can have an `isOpen` field for managing the expanded state of the
|
|
|
232
238
|
Also, pass an `onCollapse` event handler via the prop on the Table
|
|
233
239
|
|
|
234
240
|
```ts file="LegacyTableExpandable.tsx"
|
|
241
|
+
|
|
235
242
|
```
|
|
236
243
|
|
|
237
244
|
### Compound expandable
|
|
@@ -248,26 +255,31 @@ To build a compound expandable table:
|
|
|
248
255
|
4. An `onExpand` event handler prop should be passed to the Table.
|
|
249
256
|
|
|
250
257
|
```ts file="LegacyTableCompoundExpandable.tsx"
|
|
258
|
+
|
|
251
259
|
```
|
|
252
260
|
|
|
253
261
|
### With width and breakpoint visibility modifiers
|
|
254
262
|
|
|
255
263
|
```ts file="LegacyTableCellWidth.tsx"
|
|
264
|
+
|
|
256
265
|
```
|
|
257
266
|
|
|
258
267
|
### Controlling text
|
|
259
268
|
|
|
260
269
|
```ts file="LegacyTableControllingText.tsx"
|
|
270
|
+
|
|
261
271
|
```
|
|
262
272
|
|
|
263
273
|
### Modifiers with table text
|
|
264
274
|
|
|
265
275
|
```ts file="LegacyTableTextModifiers.tsx"
|
|
276
|
+
|
|
266
277
|
```
|
|
267
278
|
|
|
268
279
|
### Empty state
|
|
269
280
|
|
|
270
281
|
```ts file="LegacyTableEmptyState.tsx"
|
|
282
|
+
|
|
271
283
|
```
|
|
272
284
|
|
|
273
285
|
### Editable rows
|
|
@@ -303,7 +315,6 @@ Example:
|
|
|
303
315
|
|
|
304
316
|
```js
|
|
305
317
|
import React from 'react';
|
|
306
|
-
import { SelectOption as SelectOptionDeprecated } from '@patternfly/react-core/deprecated';
|
|
307
318
|
import {
|
|
308
319
|
Table,
|
|
309
320
|
TableHeader,
|
|
@@ -313,7 +324,8 @@ import {
|
|
|
313
324
|
validateCellEdits,
|
|
314
325
|
applyCellEdits,
|
|
315
326
|
EditableTextCell,
|
|
316
|
-
EditableSelectInputCell
|
|
327
|
+
EditableSelectInputCell,
|
|
328
|
+
SelectOption
|
|
317
329
|
} from '@patternfly/react-table';
|
|
318
330
|
|
|
319
331
|
class EditableRowsTable extends React.Component {
|
|
@@ -330,13 +342,13 @@ class EditableRowsTable extends React.Component {
|
|
|
330
342
|
],
|
|
331
343
|
rows: [
|
|
332
344
|
{
|
|
333
|
-
rowEditBtnAriaLabel: idx => `Edit row ${idx}`,
|
|
334
|
-
rowSaveBtnAriaLabel: idx => `Save edits for row ${idx}`,
|
|
335
|
-
rowCancelBtnAriaLabel: idx => `Cancel edits for row ${idx}`,
|
|
345
|
+
rowEditBtnAriaLabel: (idx) => `Edit row ${idx}`,
|
|
346
|
+
rowSaveBtnAriaLabel: (idx) => `Save edits for row ${idx}`,
|
|
347
|
+
rowCancelBtnAriaLabel: (idx) => `Cancel edits for row ${idx}`,
|
|
336
348
|
rowEditValidationRules: [
|
|
337
349
|
{
|
|
338
350
|
name: 'required',
|
|
339
|
-
validator: value => value.trim() !== '',
|
|
351
|
+
validator: (value) => value.trim() !== '',
|
|
340
352
|
errorText: 'This field is required'
|
|
341
353
|
}
|
|
342
354
|
],
|
|
@@ -400,12 +412,9 @@ class EditableRowsTable extends React.Component {
|
|
|
400
412
|
onSelect={this.onSelect}
|
|
401
413
|
isOpen={props.isSelectOpen}
|
|
402
414
|
options={props.options.map((option, index) => (
|
|
403
|
-
<
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
id={'uniqueIdRow1Cell4Option' + index}
|
|
407
|
-
isPlaceholder={option.isPlaceholder}
|
|
408
|
-
/>
|
|
415
|
+
<SelectOption key={index} value={option.value} id={'uniqueIdRow1Cell4Option' + index}>
|
|
416
|
+
{option.value}
|
|
417
|
+
</SelectOption>
|
|
409
418
|
))}
|
|
410
419
|
onToggle={(event, isOpen) => {
|
|
411
420
|
this.onToggle(isOpen, rowIndex, cellIndex);
|
|
@@ -419,7 +428,6 @@ class EditableRowsTable extends React.Component {
|
|
|
419
428
|
isSelectOpen: props.isSelectOpen || false,
|
|
420
429
|
selected: props.selected || ['Option 1'],
|
|
421
430
|
options: [
|
|
422
|
-
{ value: 'Placeholder...', isPlaceholder: true },
|
|
423
431
|
{ value: 'Option 1' },
|
|
424
432
|
{ value: 'Option 2' },
|
|
425
433
|
{ value: 'Option 3' },
|
|
@@ -497,12 +505,9 @@ class EditableRowsTable extends React.Component {
|
|
|
497
505
|
isOpen={props.isSelectOpen}
|
|
498
506
|
options={props.options.map((option, index) => {
|
|
499
507
|
return (
|
|
500
|
-
<
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
id={'uniqueIdRow2Cell4Option' + index}
|
|
504
|
-
isPlaceholder={option.isPlaceholder}
|
|
505
|
-
/>
|
|
508
|
+
<SelectOption key={index} value={option.value} id={'uniqueIdRow2Cell4Option' + index}>
|
|
509
|
+
{option.value}
|
|
510
|
+
</SelectOption>
|
|
506
511
|
);
|
|
507
512
|
})}
|
|
508
513
|
onToggle={(event, isOpen) => {
|
|
@@ -537,22 +542,22 @@ class EditableRowsTable extends React.Component {
|
|
|
537
542
|
rowEditValidationRules: [
|
|
538
543
|
{
|
|
539
544
|
name: 'required',
|
|
540
|
-
validator: value => value.trim() !== '',
|
|
545
|
+
validator: (value) => value.trim() !== '',
|
|
541
546
|
errorText: 'This field is required'
|
|
542
547
|
},
|
|
543
548
|
{
|
|
544
549
|
name: 'notFoo',
|
|
545
|
-
validator: value => value.trim().toLowerCase() !== 'foo',
|
|
550
|
+
validator: (value) => value.trim().toLowerCase() !== 'foo',
|
|
546
551
|
errorText: 'Value cannot be "foo"'
|
|
547
552
|
},
|
|
548
553
|
{
|
|
549
554
|
name: 'minLength',
|
|
550
|
-
validator: value => value.trim().length >= 7,
|
|
555
|
+
validator: (value) => value.trim().length >= 7,
|
|
551
556
|
errorText: 'Value must be at least 7 characters'
|
|
552
557
|
},
|
|
553
558
|
{
|
|
554
559
|
name: 'notXyz',
|
|
555
|
-
validator: value => value.trim().toLowerCase() !== 'xyz',
|
|
560
|
+
validator: (value) => value.trim().toLowerCase() !== 'xyz',
|
|
556
561
|
errorText: 'Value cannot be xyz'
|
|
557
562
|
}
|
|
558
563
|
],
|
|
@@ -617,12 +622,9 @@ class EditableRowsTable extends React.Component {
|
|
|
617
622
|
clearSelection={this.clearSelection}
|
|
618
623
|
isOpen={props.isSelectOpen}
|
|
619
624
|
options={props.options.map((option, index) => (
|
|
620
|
-
<
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
id={'uniqueIdRow3Cell4Option' + index}
|
|
624
|
-
isPlaceholder={option.isPlaceholder}
|
|
625
|
-
/>
|
|
625
|
+
<SelectOption key={index} value={option.value} id={'uniqueIdRow3Cell4Option' + index}>
|
|
626
|
+
{option.value}
|
|
627
|
+
</SelectOption>
|
|
626
628
|
))}
|
|
627
629
|
onToggle={(event, isOpen) => {
|
|
628
630
|
this.onToggle(isOpen, rowIndex, cellIndex);
|
|
@@ -703,7 +705,7 @@ class EditableRowsTable extends React.Component {
|
|
|
703
705
|
if (!newSelected.includes(newValue)) {
|
|
704
706
|
newSelected.push(newValue);
|
|
705
707
|
} else {
|
|
706
|
-
newSelected = newSelected.filter(el => el !== newValue);
|
|
708
|
+
newSelected = newSelected.filter((el) => el !== newValue);
|
|
707
709
|
}
|
|
708
710
|
newSelectOpen = true;
|
|
709
711
|
break;
|
|
@@ -734,7 +736,7 @@ class EditableRowsTable extends React.Component {
|
|
|
734
736
|
};
|
|
735
737
|
|
|
736
738
|
this.onToggle = (isOpen, rowIndex, cellIndex) => {
|
|
737
|
-
console.log(
|
|
739
|
+
console.log('isOpen', isOpen);
|
|
738
740
|
let newRows = Array.from(this.state.rows);
|
|
739
741
|
newRows[rowIndex].cells[cellIndex].props.isSelectOpen = isOpen;
|
|
740
742
|
this.setState({
|
|
@@ -774,6 +776,7 @@ When you also pass a sort callback through the `onSort` prop, favorites sorting
|
|
|
774
776
|
If you want to exclude favorites from sorting, set `canSortFavorites={false}` on the Table.
|
|
775
777
|
|
|
776
778
|
```ts file="LegacyTableFavoritable.tsx"
|
|
779
|
+
|
|
777
780
|
```
|
|
778
781
|
|
|
779
782
|
### Tree table
|
|
@@ -803,6 +806,7 @@ aria-posinset, and aria-setsize as violations. This is an intentional choice at
|
|
|
803
806
|
the voice over technologies will recognize the flat table structure as a tree.
|
|
804
807
|
|
|
805
808
|
```ts file="LegacyTableTree.tsx"
|
|
809
|
+
|
|
806
810
|
```
|
|
807
811
|
|
|
808
812
|
### Striped
|
|
@@ -810,6 +814,7 @@ the voice over technologies will recognize the flat table structure as a tree.
|
|
|
810
814
|
To apply striping to a basic table, add the `isStriped` property to `Table`.
|
|
811
815
|
|
|
812
816
|
```ts file="LegacyTableStriped.tsx"
|
|
817
|
+
|
|
813
818
|
```
|
|
814
819
|
|
|
815
820
|
### Striped expandable
|
|
@@ -817,6 +822,7 @@ To apply striping to a basic table, add the `isStriped` property to `Table`.
|
|
|
817
822
|
To apply striping to an expandable table, add the `isStriped` and `isExpandable` properties to `Table`.
|
|
818
823
|
|
|
819
824
|
```ts file="LegacyTableStripedExpandable.tsx"
|
|
825
|
+
|
|
820
826
|
```
|
|
821
827
|
|
|
822
828
|
### Striped custom tr
|
|
@@ -824,4 +830,5 @@ To apply striping to an expandable table, add the `isStriped` and `isExpandable`
|
|
|
824
830
|
To manually control striping, use a custom row wrapper that applies the `pf-m-striped` css class for each desired row.
|
|
825
831
|
|
|
826
832
|
```ts file="LegacyTableStripedCustomTr.tsx"
|
|
833
|
+
|
|
827
834
|
```
|
package/src/index.ts
CHANGED