@patternfly/react-table 6.0.0-alpha.1 → 6.0.0-alpha.100
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 +1215 -1
- package/README.md +3 -18
- 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 +3 -1
- 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/Caption.js +1 -1
- package/dist/esm/components/Table/Caption.js.map +1 -1
- package/dist/esm/components/Table/CollapseColumn.js +1 -1
- package/dist/esm/components/Table/CollapseColumn.js.map +1 -1
- package/dist/esm/components/Table/DraggableCell.d.ts.map +1 -1
- package/dist/esm/components/Table/DraggableCell.js +1 -2
- package/dist/esm/components/Table/DraggableCell.js.map +1 -1
- package/dist/esm/components/Table/DraggableRowWrapper.js +2 -2
- package/dist/esm/components/Table/DraggableRowWrapper.js.map +1 -1
- package/dist/esm/components/Table/EditColumn.d.ts.map +1 -1
- package/dist/esm/components/Table/EditColumn.js +4 -7
- package/dist/esm/components/Table/EditColumn.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 +11 -7
- package/dist/esm/components/Table/EditableSelectInputCell.js.map +1 -1
- package/dist/esm/components/Table/EditableTextCell.js +3 -3
- package/dist/esm/components/Table/EditableTextCell.js.map +1 -1
- package/dist/esm/components/Table/ExpandableRowContent.js +1 -1
- package/dist/esm/components/Table/ExpandableRowContent.js.map +1 -1
- package/dist/esm/components/Table/FavoritesCell.d.ts.map +1 -1
- package/dist/esm/components/Table/FavoritesCell.js +1 -2
- package/dist/esm/components/Table/FavoritesCell.js.map +1 -1
- package/dist/esm/components/Table/HeaderCellInfoWrapper.d.ts.map +1 -1
- package/dist/esm/components/Table/HeaderCellInfoWrapper.js +3 -5
- package/dist/esm/components/Table/HeaderCellInfoWrapper.js.map +1 -1
- package/dist/esm/components/Table/InnerScrollContainer.js +1 -1
- package/dist/esm/components/Table/InnerScrollContainer.js.map +1 -1
- package/dist/esm/components/Table/OuterScrollContainer.js +1 -1
- package/dist/esm/components/Table/OuterScrollContainer.js.map +1 -1
- package/dist/esm/components/Table/RowWrapper.d.ts +1 -1
- package/dist/esm/components/Table/RowWrapper.js.map +1 -1
- package/dist/esm/components/Table/SelectColumn.d.ts +5 -0
- package/dist/esm/components/Table/SelectColumn.d.ts.map +1 -1
- package/dist/esm/components/Table/SelectColumn.js +6 -3
- package/dist/esm/components/Table/SelectColumn.js.map +1 -1
- package/dist/esm/components/Table/SortColumn.d.ts +4 -0
- package/dist/esm/components/Table/SortColumn.d.ts.map +1 -1
- package/dist/esm/components/Table/SortColumn.js +3 -3
- package/dist/esm/components/Table/SortColumn.js.map +1 -1
- package/dist/esm/components/Table/Table.d.ts +1 -1
- package/dist/esm/components/Table/Table.d.ts.map +1 -1
- package/dist/esm/components/Table/Table.js +9 -9
- package/dist/esm/components/Table/Table.js.map +1 -1
- package/dist/esm/components/Table/TableText.d.ts +3 -1
- package/dist/esm/components/Table/TableText.d.ts.map +1 -1
- package/dist/esm/components/Table/TableText.js +13 -11
- package/dist/esm/components/Table/TableText.js.map +1 -1
- package/dist/esm/components/Table/TableTypes.d.ts +29 -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/Tbody.d.ts +1 -1
- package/dist/esm/components/Table/Tbody.d.ts.map +1 -1
- package/dist/esm/components/Table/Tbody.js +1 -1
- package/dist/esm/components/Table/Tbody.js.map +1 -1
- package/dist/esm/components/Table/Td.d.ts +2 -2
- package/dist/esm/components/Table/Td.d.ts.map +1 -1
- package/dist/esm/components/Table/Td.js +9 -5
- package/dist/esm/components/Table/Td.js.map +1 -1
- package/dist/esm/components/Table/Th.d.ts +12 -1
- package/dist/esm/components/Table/Th.d.ts.map +1 -1
- package/dist/esm/components/Table/Th.js +26 -12
- package/dist/esm/components/Table/Th.js.map +1 -1
- package/dist/esm/components/Table/Thead.d.ts +1 -1
- package/dist/esm/components/Table/Thead.d.ts.map +1 -1
- package/dist/esm/components/Table/Thead.js +1 -1
- package/dist/esm/components/Table/Thead.js.map +1 -1
- package/dist/esm/components/Table/Tr.d.ts +4 -2
- package/dist/esm/components/Table/Tr.d.ts.map +1 -1
- package/dist/esm/components/Table/Tr.js +4 -4
- package/dist/esm/components/Table/Tr.js.map +1 -1
- package/dist/esm/components/Table/TreeRowWrapper.js +2 -2
- package/dist/esm/components/Table/TreeRowWrapper.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.d.ts +8 -8
- package/dist/esm/components/Table/base/provider.js.map +1 -1
- package/dist/esm/components/Table/base/types.d.ts +23 -24
- 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/cellActions.js +1 -1
- package/dist/esm/components/Table/utils/decorators/cellActions.js.map +1 -1
- package/dist/esm/components/Table/utils/decorators/cellWidth.js +1 -1
- package/dist/esm/components/Table/utils/decorators/cellWidth.js.map +1 -1
- package/dist/esm/components/Table/utils/decorators/classNames.js +1 -1
- package/dist/esm/components/Table/utils/decorators/classNames.js.map +1 -1
- package/dist/esm/components/Table/utils/decorators/collapsible.js +1 -1
- package/dist/esm/components/Table/utils/decorators/collapsible.js.map +1 -1
- package/dist/esm/components/Table/utils/decorators/compoundExpand.js +1 -1
- package/dist/esm/components/Table/utils/decorators/compoundExpand.js.map +1 -1
- package/dist/esm/components/Table/utils/decorators/editable.js +1 -1
- package/dist/esm/components/Table/utils/decorators/editable.js.map +1 -1
- package/dist/esm/components/Table/utils/decorators/favoritable.js +1 -1
- package/dist/esm/components/Table/utils/decorators/favoritable.js.map +1 -1
- package/dist/esm/components/Table/utils/decorators/info.js +1 -1
- package/dist/esm/components/Table/utils/decorators/info.js.map +1 -1
- package/dist/esm/components/Table/utils/decorators/selectable.d.ts.map +1 -1
- package/dist/esm/components/Table/utils/decorators/selectable.js +5 -5
- package/dist/esm/components/Table/utils/decorators/selectable.js.map +1 -1
- package/dist/esm/components/Table/utils/decorators/sortable.d.ts.map +1 -1
- package/dist/esm/components/Table/utils/decorators/sortable.js +7 -4
- package/dist/esm/components/Table/utils/decorators/sortable.js.map +1 -1
- package/dist/esm/components/Table/utils/decorators/treeRow.d.ts +3 -3
- package/dist/esm/components/Table/utils/decorators/treeRow.d.ts.map +1 -1
- package/dist/esm/components/Table/utils/decorators/treeRow.js +5 -5
- package/dist/esm/components/Table/utils/decorators/treeRow.js.map +1 -1
- package/dist/esm/components/Table/utils/decorators/wrappable.js +1 -1
- package/dist/esm/components/Table/utils/decorators/wrappable.js.map +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 +78 -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 +4 -0
- package/dist/esm/demos/index.d.ts.map +1 -0
- package/dist/esm/demos/index.js +4 -0
- package/dist/esm/demos/index.js.map +1 -0
- package/dist/esm/demos/sampleData.d.ts +13 -0
- package/dist/esm/demos/sampleData.d.ts.map +1 -0
- package/dist/esm/demos/sampleData.js +764 -0
- package/dist/esm/demos/sampleData.js.map +1 -0
- package/dist/esm/deprecated/components/Table/Body.d.ts +2 -2
- 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 +1 -1
- package/dist/esm/deprecated/components/Table/Table.d.ts.map +1 -1
- package/dist/esm/deprecated/components/Table/Table.js +3 -4
- 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.d.ts +8 -2
- package/dist/esm/deprecated/components/Table/base/body.d.ts.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 +1 -1
- package/dist/esm/deprecated/components/Table/base/header-row.js.map +1 -1
- package/dist/esm/deprecated/components/Table/base/header.d.ts +1 -1
- package/dist/esm/deprecated/components/Table/base/header.d.ts.map +1 -1
- package/dist/esm/deprecated/components/Table/base/resolve-row-key.js.map +1 -1
- package/dist/esm/test-helpers/data-helpers.js.map +1 -1
- package/dist/js/components/Table/ActionsColumn.d.ts +3 -1
- package/dist/js/components/Table/ActionsColumn.d.ts.map +1 -1
- package/dist/js/components/Table/ActionsColumn.js +10 -11
- package/dist/js/components/Table/ActionsColumn.js.map +1 -1
- package/dist/js/components/Table/CollapseColumn.js +2 -2
- package/dist/js/components/Table/CollapseColumn.js.map +1 -1
- package/dist/js/components/Table/DraggableCell.d.ts.map +1 -1
- package/dist/js/components/Table/DraggableCell.js +3 -4
- package/dist/js/components/Table/DraggableCell.js.map +1 -1
- package/dist/js/components/Table/EditColumn.d.ts.map +1 -1
- package/dist/js/components/Table/EditColumn.js +7 -10
- 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 +2 -2
- package/dist/js/components/Table/EditableTextCell.js.map +1 -1
- package/dist/js/components/Table/FavoritesCell.d.ts.map +1 -1
- package/dist/js/components/Table/FavoritesCell.js +3 -4
- package/dist/js/components/Table/FavoritesCell.js.map +1 -1
- package/dist/js/components/Table/HeaderCellInfoWrapper.d.ts.map +1 -1
- package/dist/js/components/Table/HeaderCellInfoWrapper.js +6 -8
- package/dist/js/components/Table/HeaderCellInfoWrapper.js.map +1 -1
- package/dist/js/components/Table/RowWrapper.d.ts +1 -1
- package/dist/js/components/Table/RowWrapper.js +1 -1
- package/dist/js/components/Table/RowWrapper.js.map +1 -1
- package/dist/js/components/Table/SelectColumn.d.ts +5 -0
- package/dist/js/components/Table/SelectColumn.d.ts.map +1 -1
- package/dist/js/components/Table/SelectColumn.js +7 -4
- package/dist/js/components/Table/SelectColumn.js.map +1 -1
- package/dist/js/components/Table/SortColumn.d.ts +4 -0
- package/dist/js/components/Table/SortColumn.d.ts.map +1 -1
- package/dist/js/components/Table/SortColumn.js +6 -6
- package/dist/js/components/Table/SortColumn.js.map +1 -1
- package/dist/js/components/Table/Table.d.ts +1 -1
- package/dist/js/components/Table/Table.d.ts.map +1 -1
- package/dist/js/components/Table/Table.js +5 -5
- package/dist/js/components/Table/Table.js.map +1 -1
- package/dist/js/components/Table/TableText.d.ts +3 -1
- package/dist/js/components/Table/TableText.d.ts.map +1 -1
- package/dist/js/components/Table/TableText.js +15 -13
- package/dist/js/components/Table/TableText.js.map +1 -1
- package/dist/js/components/Table/TableTypes.d.ts +29 -25
- package/dist/js/components/Table/TableTypes.d.ts.map +1 -1
- package/dist/js/components/Table/TableTypes.js +2 -2
- package/dist/js/components/Table/TableTypes.js.map +1 -1
- package/dist/js/components/Table/Tbody.d.ts +1 -1
- package/dist/js/components/Table/Tbody.d.ts.map +1 -1
- package/dist/js/components/Table/Td.d.ts +2 -2
- package/dist/js/components/Table/Td.d.ts.map +1 -1
- package/dist/js/components/Table/Td.js +8 -4
- package/dist/js/components/Table/Td.js.map +1 -1
- package/dist/js/components/Table/Th.d.ts +12 -1
- package/dist/js/components/Table/Th.d.ts.map +1 -1
- package/dist/js/components/Table/Th.js +24 -10
- package/dist/js/components/Table/Th.js.map +1 -1
- package/dist/js/components/Table/Thead.d.ts +1 -1
- package/dist/js/components/Table/Thead.d.ts.map +1 -1
- package/dist/js/components/Table/Tr.d.ts +4 -2
- package/dist/js/components/Table/Tr.d.ts.map +1 -1
- package/dist/js/components/Table/Tr.js +3 -3
- 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.d.ts +8 -8
- package/dist/js/components/Table/base/provider.js.map +1 -1
- package/dist/js/components/Table/base/types.d.ts +23 -24
- package/dist/js/components/Table/base/types.d.ts.map +1 -1
- 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.d.ts.map +1 -1
- package/dist/js/components/Table/utils/decorators/selectable.js +3 -3
- package/dist/js/components/Table/utils/decorators/selectable.js.map +1 -1
- package/dist/js/components/Table/utils/decorators/sortable.d.ts.map +1 -1
- package/dist/js/components/Table/utils/decorators/sortable.js +7 -4
- package/dist/js/components/Table/utils/decorators/sortable.js.map +1 -1
- package/dist/js/components/Table/utils/decorators/treeRow.d.ts +3 -3
- package/dist/js/components/Table/utils/decorators/treeRow.d.ts.map +1 -1
- package/dist/js/components/Table/utils/decorators/treeRow.js +7 -7
- 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 +83 -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 +4 -0
- package/dist/js/demos/index.d.ts.map +1 -0
- package/dist/js/demos/index.js +7 -0
- package/dist/js/demos/index.js.map +1 -0
- package/dist/js/demos/sampleData.d.ts +13 -0
- package/dist/js/demos/sampleData.d.ts.map +1 -0
- package/dist/js/demos/sampleData.js +767 -0
- package/dist/js/demos/sampleData.js.map +1 -0
- package/dist/js/deprecated/components/Table/Body.d.ts +2 -2
- 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 +3 -3
- 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 +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.d.ts +8 -2
- package/dist/js/deprecated/components/Table/base/body.d.ts.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 +1 -1
- package/dist/js/deprecated/components/Table/base/header-row.js.map +1 -1
- package/dist/js/deprecated/components/Table/base/header.d.ts +1 -1
- package/dist/js/deprecated/components/Table/base/header.d.ts.map +1 -1
- package/dist/js/deprecated/components/Table/base/resolve-row-key.js.map +1 -1
- package/dist/js/test-helpers/data-helpers.js.map +1 -1
- package/dist/umd/assets/output-BnU-TMGU.css +26986 -0
- package/dist/umd/react-table.min.js +8 -9
- package/package.json +8 -12
- 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/DraggableCell.tsx +2 -3
- package/src/components/Table/EditColumn.tsx +21 -9
- package/src/components/Table/EditableSelectInputCell.tsx +16 -11
- package/src/components/Table/EditableTextCell.tsx +1 -1
- package/src/components/Table/FavoritesCell.tsx +2 -3
- package/src/components/Table/HeaderCellInfoWrapper.tsx +10 -6
- package/src/components/Table/SelectColumn.tsx +27 -8
- package/src/components/Table/SortColumn.tsx +15 -1
- package/src/components/Table/Table.tsx +6 -6
- package/src/components/Table/TableText.tsx +19 -9
- package/src/components/Table/TableTypes.tsx +12 -9
- package/src/components/Table/Td.tsx +11 -6
- package/src/components/Table/Th.tsx +42 -10
- package/src/components/Table/Tr.tsx +5 -1
- 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 +48 -3
- package/src/components/Table/examples/TableActions.tsx +2 -2
- package/src/components/Table/examples/TableActionsOverflow.tsx +3 -5
- package/src/components/Table/examples/TableCompoundExpandable.tsx +5 -4
- package/src/components/Table/examples/TableDraggable.tsx +19 -16
- package/src/components/Table/examples/TableEditable.tsx +313 -0
- package/src/components/Table/examples/TableEmptyState.tsx +1 -8
- package/src/components/Table/examples/TableExpandable.tsx +1 -2
- package/src/components/Table/examples/TableMisc.tsx +3 -1
- package/src/components/Table/examples/TableNestedExpandable.tsx +1 -1
- package/src/components/Table/examples/TableNestedHeaders.tsx +4 -6
- package/src/components/Table/examples/TableNestedStickyHeader.tsx +4 -9
- 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 +6 -5
- package/src/components/Table/examples/TableStripedExpandable.tsx +1 -1
- package/src/components/Table/utils/__snapshots__/transformers.test.tsx.snap +4 -4
- package/src/components/Table/utils/decorators/selectable.tsx +3 -2
- package/src/components/Table/utils/decorators/sortable.tsx +8 -2
- package/src/components/Table/utils/decorators/treeRow.tsx +3 -3
- package/src/components/Table/utils/transformers.test.tsx +14 -11
- package/src/demos/DashboardHeader.tsx +201 -0
- package/src/demos/DashboardWrapper.tsx +198 -0
- package/src/demos/Table.md +181 -0
- 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/TableAutomaticPagination.tsx +101 -0
- package/src/{docs/demos/table-demos/BulkSelect.jsx → demos/examples/TableBulkSelect.tsx} +42 -21
- package/src/demos/examples/TableColumnManagement.tsx +484 -0
- package/src/demos/examples/TableColumnManagementWithDraggable.tsx +635 -0
- package/src/{docs/demos/table-demos/Compact.jsx → demos/examples/TableCompact.tsx} +39 -18
- package/src/{docs/demos/table-demos/CompoundExpansion.jsx → demos/examples/TableCompoundExpansion.tsx} +31 -16
- package/src/demos/examples/TableEmptyStateDefault.tsx +58 -0
- package/src/demos/examples/TableEmptyStateError.tsx +43 -0
- package/src/demos/examples/TableEmptyStateLoading.tsx +33 -0
- package/src/{docs/demos/table-demos/ExpandCollapseAll.jsx → demos/examples/TableExpandCollapseAll.tsx} +75 -67
- package/src/demos/examples/TableFilterable.tsx +387 -0
- package/src/{docs/demos/table-demos/SortableResponsive.jsx → demos/examples/TableSortableResponsive.tsx} +42 -43
- package/src/{docs/demos/table-demos/StaticBottomPagination.jsx → demos/examples/TableStaticBottomPagination.tsx} +29 -11
- package/src/{docs/demos/table-demos/StickyFirstColumn.jsx → demos/examples/TableStickyFirstColumn.tsx} +31 -9
- package/src/{docs/demos/table-demos/StickyHeader.jsx → demos/examples/TableStickyHeader.tsx} +3 -3
- package/src/demos/index.ts +3 -0
- package/src/{docs/demos/table-demos/sampleData.js → demos/sampleData.tsx} +88 -77
- package/src/deprecated/components/Table/Table.tsx +2 -3
- package/src/deprecated/components/Table/__tests__/Table.test.tsx +4 -9
- package/src/deprecated/components/Table/__tests__/__snapshots__/Table.test.tsx.snap +2457 -2274
- package/src/deprecated/components/Table/base/header-row.tsx +1 -1
- package/src/deprecated/components/Table/examples/LegacyTableCompoundExpandable.tsx +4 -3
- package/src/deprecated/components/Table/examples/LegacyTableEmptyState.tsx +6 -8
- package/src/deprecated/components/Table/examples/LegacyTableMisc.tsx +4 -3
- package/src/deprecated/components/Table/examples/LegacyTableSelectable.tsx +2 -1
- package/src/deprecated/components/Table/examples/LegacyTableSortableCustom.tsx +2 -3
- package/src/deprecated/components/Table/examples/LegacyTableStripedCustomTr.tsx +2 -6
- package/src/deprecated/components/Table/examples/Table.md +49 -40
- package/rollup.config.js +0 -7
- package/src/docs/demos/Table.md +0 -1622
- package/src/docs/demos/table-demos/ColumnManagement.jsx +0 -471
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: Table
|
|
3
|
+
section: components
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
import {
|
|
7
|
+
Checkbox,
|
|
8
|
+
Content,
|
|
9
|
+
Label,
|
|
10
|
+
PageSection,
|
|
11
|
+
ToolbarExpandIconWrapper,
|
|
12
|
+
ToolbarContent,
|
|
13
|
+
Toolbar,
|
|
14
|
+
ToolbarItem,
|
|
15
|
+
SearchInput,
|
|
16
|
+
Masthead,
|
|
17
|
+
MastheadToggle,
|
|
18
|
+
MastheadBrand,
|
|
19
|
+
MastheadContent,
|
|
20
|
+
SkipToContent,
|
|
21
|
+
Breadcrumb,
|
|
22
|
+
BreadcrumbItem,
|
|
23
|
+
Page,
|
|
24
|
+
PageSectionVariants,
|
|
25
|
+
Divider,
|
|
26
|
+
Avatar,
|
|
27
|
+
Brand,
|
|
28
|
+
Button,
|
|
29
|
+
ButtonVariant,
|
|
30
|
+
Dropdown,
|
|
31
|
+
DropdownGroup,
|
|
32
|
+
DropdownItem,
|
|
33
|
+
DropdownList,
|
|
34
|
+
MastheadLogo,
|
|
35
|
+
MenuToggle,
|
|
36
|
+
ToolbarGroup,
|
|
37
|
+
PageToggleButton,
|
|
38
|
+
Nav,
|
|
39
|
+
NavItem,
|
|
40
|
+
NavList,
|
|
41
|
+
PageSidebar,
|
|
42
|
+
PageSidebarBody,
|
|
43
|
+
} from '@patternfly/react-core';
|
|
44
|
+
import { Table as TableDeprecated, TableHeader, TableBody } from '@patternfly/react-table/deprecated';
|
|
45
|
+
import CheckIcon from '@patternfly/react-icons/dist/esm/icons/check-icon';
|
|
46
|
+
import CloneIcon from '@patternfly/react-icons/dist/esm/icons/clone-icon';
|
|
47
|
+
import CodeIcon from '@patternfly/react-icons/dist/esm/icons/code-icon';
|
|
48
|
+
import CodeBranchIcon from '@patternfly/react-icons/dist/esm/icons/code-branch-icon';
|
|
49
|
+
import CubeIcon from '@patternfly/react-icons/dist/esm/icons/cube-icon';
|
|
50
|
+
import EditIcon from '@patternfly/react-icons/dist/esm/icons/edit-icon';
|
|
51
|
+
import FilterIcon from '@patternfly/react-icons/dist/esm/icons/filter-icon';
|
|
52
|
+
import SortAmountDownIcon from '@patternfly/react-icons/dist/esm/icons/sort-amount-down-icon';
|
|
53
|
+
import SearchIcon from '@patternfly/react-icons/dist/esm/icons/search-icon';
|
|
54
|
+
import SyncIcon from '@patternfly/react-icons/dist/esm/icons/sync-icon';
|
|
55
|
+
import ExclamationCircleIcon from '@patternfly/react-icons/dist/esm/icons/exclamation-circle-icon';
|
|
56
|
+
import CogIcon from '@patternfly/react-icons/dist/esm/icons/cog-icon';
|
|
57
|
+
import HelpIcon from '@patternfly/react-icons/dist/esm/icons/help-icon';
|
|
58
|
+
import QuestionCircleIcon from '@patternfly/react-icons/dist/esm/icons/question-circle-icon';
|
|
59
|
+
import AngleDownIcon from '@patternfly/react-icons/dist/esm/icons/angle-down-icon';
|
|
60
|
+
import AngleRightIcon from '@patternfly/react-icons/dist/esm/icons/angle-right-icon';
|
|
61
|
+
import BarsIcon from '@patternfly/react-icons/dist/esm/icons/bars-icon';
|
|
62
|
+
import AttentionBellIcon from '@patternfly/react-icons/dist/esm/icons/attention-bell-icon';
|
|
63
|
+
import BlueprintIcon from '@patternfly/react-icons/dist/esm/icons/blueprint-icon';
|
|
64
|
+
import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
|
|
65
|
+
import { DashboardWrapper } from '@patternfly/react-table/dist/esm/demos/DashboardWrapper';
|
|
66
|
+
import { rows, columns } from '@patternfly/react-table/dist/esm/demos/sampleData';
|
|
67
|
+
import spacing from '@patternfly/react-styles/css/utilities/Spacing/spacing';
|
|
68
|
+
import BellIcon from '@patternfly/react-icons/dist/esm/icons/bell-icon';
|
|
69
|
+
|
|
70
|
+
## Demos
|
|
71
|
+
|
|
72
|
+
### Bulk select
|
|
73
|
+
|
|
74
|
+
```js isFullscreen file="./examples/TableBulkSelect.tsx"
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Expand/collapse all
|
|
79
|
+
|
|
80
|
+
```js isFullscreen file="./examples/TableExpandCollapseAll.tsx"
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Compact
|
|
85
|
+
|
|
86
|
+
```js isFullscreen file="./examples/TableCompact.tsx"
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Compound expansion
|
|
91
|
+
|
|
92
|
+
```js isFullscreen file="./examples/TableCompoundExpansion.tsx"
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Column management
|
|
97
|
+
|
|
98
|
+
```js isFullscreen file="./examples/TableColumnManagement.tsx"
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Column management with draggable
|
|
103
|
+
|
|
104
|
+
```js isFullscreen file="./examples/TableColumnManagementWithDraggable.tsx"
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Filterable
|
|
109
|
+
|
|
110
|
+
```js isFullscreen file="./examples/TableFilterable.tsx"
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### Sortable - responsive
|
|
115
|
+
|
|
116
|
+
```js isFullscreen file="./examples/TableSortableResponsive.tsx"
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Automatic pagination
|
|
121
|
+
|
|
122
|
+
The below example illustrates the `isLastFullPageShown` prop, which makes the following changes when the user sets the number of items to display per page to an amount that exceeds the remaining amount of data:
|
|
123
|
+
|
|
124
|
+
- The component automatically changes the page back to the last full page of results, rather than defaulting to the final page of results.
|
|
125
|
+
|
|
126
|
+
To demonstrate this, navigate to the last page of data below using the `>>` navigation arrows, then use the dropdown selector to change the view to 5 per page.
|
|
127
|
+
|
|
128
|
+
- The default behavior would show the last page of results, which would only contain the last two rows (rows 11 - 12).
|
|
129
|
+
- The `isLastFullPageShown` prop navigates you back to the previous page which does contain a full page of 5 rows (rows 6 - 10).
|
|
130
|
+
|
|
131
|
+
```js isFullscreen file="./examples/TableAutomaticPagination.tsx"
|
|
132
|
+
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Static bottom pagination on mobile
|
|
136
|
+
|
|
137
|
+
```ts isFullscreen file="./examples/TableStaticBottomPagination.tsx"
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Sticky header
|
|
142
|
+
|
|
143
|
+
```js isFullscreen file="./examples/TableStickyHeader.tsx"
|
|
144
|
+
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Sticky first column
|
|
148
|
+
|
|
149
|
+
```js isFullscreen file="./examples/TableStickyFirstColumn.tsx"
|
|
150
|
+
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### Sticky columns and header with toolbar
|
|
154
|
+
|
|
155
|
+
A toolbar may be added above a sticky table either inside or outside the `OuterScrollContainer`.
|
|
156
|
+
|
|
157
|
+
```js isFullscreen file="../components/Table/examples/TableStickyColumnsAndHeader.tsx"
|
|
158
|
+
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
## Empty states
|
|
162
|
+
|
|
163
|
+
These examples demonstrate the use of an [Empty State component](/components/empty-state) inside of a [Table](/components/table). Empty states are useful in a table when a filter returns no results, while data is loading, or when any type of error or exception condition occurs.
|
|
164
|
+
|
|
165
|
+
### Empty
|
|
166
|
+
|
|
167
|
+
```js isFullscreen file="./examples/TableEmptyStateDefault.tsx"
|
|
168
|
+
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### Loading
|
|
172
|
+
|
|
173
|
+
```js isFullscreen file="./examples/TableEmptyStateLoading.tsx"
|
|
174
|
+
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Error
|
|
178
|
+
|
|
179
|
+
```js isFullscreen file="./examples/TableEmptyStateError.tsx"
|
|
180
|
+
|
|
181
|
+
```
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<!-- Generator: Adobe Illustrator 24.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
3
|
+
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
4
|
+
viewBox="0 0 36 36" style="enable-background:new 0 0 36 36;" xml:space="preserve">
|
|
5
|
+
<style type="text/css">
|
|
6
|
+
.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#F0F0F0;}
|
|
7
|
+
.st1{fill-rule:evenodd;clip-rule:evenodd;fill:#D2D2D2;}
|
|
8
|
+
.st2{fill:#B8BBBE;}
|
|
9
|
+
.st3{fill:#D2D2D2;}
|
|
10
|
+
</style>
|
|
11
|
+
<rect class="st0" width="36" height="36"/>
|
|
12
|
+
<path class="st1" d="M17.7,20.1c-3.5,0-6.4-2.9-6.4-6.4s2.9-6.4,6.4-6.4s6.4,2.9,6.4,6.4S21.3,20.1,17.7,20.1z"/>
|
|
13
|
+
<path class="st2" d="M13.3,36l0-6.7c-2,0.4-2.9,1.4-3.1,3.5L10.1,36H13.3z"/>
|
|
14
|
+
<path class="st3" d="M10.1,36l0.1-3.2c0.2-2.1,1.1-3.1,3.1-3.5l0,6.7h9.4l0-6.7c2,0.4,2.9,1.4,3.1,3.5l0.1,3.2h4.7
|
|
15
|
+
c-0.4-3.9-1.3-9-2.9-11c-1.1-1.4-2.3-2.2-3.5-2.6s-1.8-0.6-6.3-0.6s-6.1,0.7-6.1,0.7c-1.2,0.4-2.4,1.2-3.4,2.6
|
|
16
|
+
C6.7,27,5.8,32.2,5.4,36H10.1z"/>
|
|
17
|
+
<path class="st2" d="M25.9,36l-0.1-3.2c-0.2-2.1-1.1-3.1-3.1-3.5l0,6.7H25.9z"/>
|
|
18
|
+
</svg>
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg width="679px" height="158px" viewBox="0 0 679 158" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
3
|
+
<title>PF-HorizontalLogo-Reverse </title>
|
|
4
|
+
<defs>
|
|
5
|
+
<linearGradient x1="100%" y1="1.31838984e-13%" x2="40.4021492%" y2="59.4473677%" id="linearGradient-1">
|
|
6
|
+
<stop stop-color="#FFFFFF" offset="0%"></stop>
|
|
7
|
+
<stop stop-color="#FFFFFF" stop-opacity="0.498497596" offset="100%"></stop>
|
|
8
|
+
</linearGradient>
|
|
9
|
+
</defs>
|
|
10
|
+
<g id="PF-HorizontalLogo-Reverse" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
|
11
|
+
<g id="Group" transform="translate(-0.000000, 0.000000)">
|
|
12
|
+
<path d="M61.7658863,0 L157.846154,0 L157.846154,96.0802676 C104.782487,96.0802676 61.7658863,53.0636665 61.7658863,0 L61.7658863,0 L61.7658863,0 Z" id="Rectangle-Copy-15" fill="#FFFFFF" opacity="0.401297433"></path>
|
|
13
|
+
<path d="M158,1.84777167 L158,138 C158,149.045695 149.045695,158 138,158 L66.3656919,158 L158,1.84777167 Z M156.152228,3.55271368e-13 L-9.37916411e-13,91.6343081 L-9.37916411e-13,20 C-9.09494702e-13,8.954305 8.954305,3.55271368e-13 20,3.41060513e-13 L156.152228,3.55271368e-13 Z" id="Combined-Shape-Copy-4" fill="url(#linearGradient-1)"></path>
|
|
14
|
+
</g>
|
|
15
|
+
<g id="PatternFly-Copy-11" transform="translate(206.000000, 45.750000)" fill="#FFFFFF" fill-rule="nonzero">
|
|
16
|
+
<path d="M0,65.25 L0,2.25 L33.21,2.25 C37.35,2.25 41.025,3.135 44.235,4.905 C47.445,6.675 49.98,9.09 51.84,12.15 C53.7,15.21 54.63,18.72 54.63,22.68 C54.63,26.46 53.7,29.865 51.84,32.895 C49.98,35.925 47.43,38.31 44.19,40.05 C40.95,41.79 37.29,42.66 33.21,42.66 L15.48,42.66 L15.48,65.25 L0,65.25 Z M15.48,29.88 L31.41,29.88 C33.69,29.88 35.52,29.22 36.9,27.9 C38.28,26.58 38.97,24.87 38.97,22.77 C38.97,20.61 38.28,18.855 36.9,17.505 C35.52,16.155 33.69,15.48 31.41,15.48 L15.48,15.48 L15.48,29.88 Z" id="Shape"></path>
|
|
17
|
+
<path d="M77.04,66.06 C73.68,66.06 70.695,65.43 68.085,64.17 C65.475,62.91 63.435,61.17 61.965,58.95 C60.495,56.73 59.76,54.18 59.76,51.3 C59.76,46.74 61.485,43.215 64.935,40.725 C68.385,38.235 73.2,36.99 79.38,36.99 C83.1,36.99 86.7,37.44 90.18,38.34 L90.18,36 C90.18,31.26 87.15,28.89 81.09,28.89 C77.49,28.89 72.69,30.15 66.69,32.67 L61.47,21.96 C69.15,18.48 76.56,16.74 83.7,16.74 C90.3,16.74 95.43,18.315 99.09,21.465 C102.75,24.615 104.58,29.04 104.58,34.74 L104.58,65.25 L90.18,65.25 L90.18,62.37 C88.26,63.69 86.235,64.635 84.105,65.205 C81.975,65.775 79.62,66.06 77.04,66.06 Z M73.62,51.03 C73.62,52.53 74.28,53.7 75.6,54.54 C76.92,55.38 78.75,55.8 81.09,55.8 C84.69,55.8 87.72,55.05 90.18,53.55 L90.18,47.43 C87.42,46.71 84.54,46.35 81.54,46.35 C79.02,46.35 77.07,46.755 75.69,47.565 C74.31,48.375 73.62,49.53 73.62,51.03 Z" id="Shape"></path>
|
|
18
|
+
<path d="M137.25,65.88 C125.73,65.88 119.97,60.84 119.97,50.76 L119.97,29.79 L110.34,29.79 L110.34,17.64 L119.97,17.64 L119.97,5.4 L134.55,2.25 L134.55,17.64 L147.87,17.64 L147.87,29.79 L134.55,29.79 L134.55,47.88 C134.55,49.98 135.015,51.465 135.945,52.335 C136.875,53.205 138.51,53.64 140.85,53.64 C143.01,53.64 145.2,53.31 147.42,52.65 L147.42,64.44 C146.1,64.86 144.42,65.205 142.38,65.475 C140.34,65.745 138.63,65.88 137.25,65.88 Z" id="Path"></path>
|
|
19
|
+
<path d="M177.57,65.88 C166.05,65.88 160.29,60.84 160.29,50.76 L160.29,29.79 L150.66,29.79 L150.66,17.64 L160.29,17.64 L160.29,5.4 L174.87,2.25 L174.87,17.64 L188.19,17.64 L188.19,29.79 L174.87,29.79 L174.87,47.88 C174.87,49.98 175.335,51.465 176.265,52.335 C177.195,53.205 178.83,53.64 181.17,53.64 C183.33,53.64 185.52,53.31 187.74,52.65 L187.74,64.44 C186.42,64.86 184.74,65.205 182.7,65.475 C180.66,65.745 178.95,65.88 177.57,65.88 Z" id="Path"></path>
|
|
20
|
+
<path d="M217.62,66.15 C212.76,66.15 208.365,65.055 204.435,62.865 C200.505,60.675 197.4,57.72 195.12,54 C192.84,50.28 191.7,46.11 191.7,41.49 C191.7,36.87 192.795,32.7 194.985,28.98 C197.175,25.26 200.16,22.305 203.94,20.115 C207.72,17.925 211.92,16.83 216.54,16.83 C221.22,16.83 225.36,17.955 228.96,20.205 C232.56,22.455 235.395,25.53 237.465,29.43 C239.535,33.33 240.57,37.8 240.57,42.84 L240.57,46.44 L206.64,46.44 C207.6,48.66 209.1,50.475 211.14,51.885 C213.18,53.295 215.58,54 218.34,54 C222.42,54 225.6,52.8 227.88,50.4 L237.51,58.95 C234.51,61.47 231.435,63.3 228.285,64.44 C225.135,65.58 221.58,66.15 217.62,66.15 Z M206.37,36.27 L226.26,36.27 C225.48,33.99 224.205,32.16 222.435,30.78 C220.665,29.4 218.61,28.71 216.27,28.71 C213.87,28.71 211.8,29.37 210.06,30.69 C208.32,32.01 207.09,33.87 206.37,36.27 Z" id="Shape"></path>
|
|
21
|
+
<path d="M247.41,65.25 L247.41,17.64 L261.99,17.64 L261.99,22.41 C265.23,18.51 269.4,16.56 274.5,16.56 C277.08,16.62 278.91,17.01 279.99,17.73 L279.99,30.42 C277.95,29.46 275.64,28.98 273.06,28.98 C270.78,28.98 268.665,29.505 266.715,30.555 C264.765,31.605 263.19,33.09 261.99,35.01 L261.99,65.25 L247.41,65.25 Z" id="Path"></path>
|
|
22
|
+
<path d="M286.29,65.25 L286.29,17.64 L300.87,17.64 L300.87,20.88 C304.47,18.12 308.73,16.74 313.65,16.74 C317.37,16.74 320.655,17.55 323.505,19.17 C326.355,20.79 328.59,23.04 330.21,25.92 C331.83,28.8 332.64,32.13 332.64,35.91 L332.64,65.25 L318.06,65.25 L318.06,37.89 C318.06,35.25 317.28,33.15 315.72,31.59 C314.16,30.03 312.06,29.25 309.42,29.25 C305.76,29.25 302.91,30.51 300.87,33.03 L300.87,65.25 L286.29,65.25 Z" id="Path"></path>
|
|
23
|
+
<polygon id="Path" points="342 65.25 342 2.25 392.04 2.25 392.04 15.66 357.48 15.66 357.48 27.45 380.52 27.45 380.52 40.41 357.48 40.41 357.48 65.25"></polygon>
|
|
24
|
+
<polygon id="Path" points="399.96 65.25 399.96 2.25 414.54 0 414.54 65.25"></polygon>
|
|
25
|
+
<path d="M429.21,84.69 C428.07,84.69 426.96,84.645 425.88,84.555 C424.8,84.465 423.9,84.33 423.18,84.15 L423.18,71.73 C424.38,71.97 425.88,72.09 427.68,72.09 C432.36,72.09 435.51,70.05 437.13,65.97 L437.13,65.88 L418.86,17.64 L434.97,17.64 L445.5,47.61 L457.74,17.64 L473.49,17.64 L452.16,67.68 C450.42,71.82 448.5,75.135 446.4,77.625 C444.3,80.115 441.87,81.915 439.11,83.025 C436.35,84.135 433.05,84.69 429.21,84.69 Z" id="Path"></path>
|
|
26
|
+
</g>
|
|
27
|
+
</g>
|
|
28
|
+
</svg>
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Pagination } from '@patternfly/react-core';
|
|
3
|
+
import { Table, Thead, Tr, Th, Tbody, Td } from '@patternfly/react-table';
|
|
4
|
+
|
|
5
|
+
export const TableAutomaticPagination: React.FunctionComponent = () => {
|
|
6
|
+
const columns = {
|
|
7
|
+
firstColumn: 'First column',
|
|
8
|
+
secondColumn: 'Second column',
|
|
9
|
+
thirdColumn: 'Third column'
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
const defaultRows = [
|
|
13
|
+
{ firstColumn: 'Row 1 column 1', secondColumn: 'Row 1 column 2', thirdColumn: 'Row 1 column 3' },
|
|
14
|
+
{ firstColumn: 'Row 2 column 1', secondColumn: 'Row 2 column 2', thirdColumn: 'Row 2 column 3' },
|
|
15
|
+
{ firstColumn: 'Row 3 column 1', secondColumn: 'Row 3 column 2', thirdColumn: 'Row 3 column 3' },
|
|
16
|
+
{ firstColumn: 'Row 4 column 1', secondColumn: 'Row 4 column 2', thirdColumn: 'Row 4 column 3' },
|
|
17
|
+
{ firstColumn: 'Row 5 column 1', secondColumn: 'Row 5 column 2', thirdColumn: 'Row 5 column 3' },
|
|
18
|
+
{ firstColumn: 'Row 6 column 1', secondColumn: 'Row 6 column 2', thirdColumn: 'Row 6 column 3' },
|
|
19
|
+
{ firstColumn: 'Row 7 column 1', secondColumn: 'Row 7 column 2', thirdColumn: 'Row 7 column 3' },
|
|
20
|
+
{ firstColumn: 'Row 8 column 1', secondColumn: 'Row 8 column 2', thirdColumn: 'Row 8 column 3' },
|
|
21
|
+
{ firstColumn: 'Row 9 column 1', secondColumn: 'Row 9 column 2', thirdColumn: 'Row 9 column 3' },
|
|
22
|
+
{ firstColumn: 'Row 10 column 1', secondColumn: 'Row 10 column 2', thirdColumn: 'Row 10 column 3' },
|
|
23
|
+
{ firstColumn: 'Row 11 column 1', secondColumn: 'Row 11 column 2', thirdColumn: 'Row 11 column 3' },
|
|
24
|
+
{ firstColumn: 'Row 12 column 1', secondColumn: 'Row 12 column 2', thirdColumn: 'Row 12 column 3' }
|
|
25
|
+
];
|
|
26
|
+
const defaultPerPage = 10;
|
|
27
|
+
|
|
28
|
+
const [perPage, setPerPage] = React.useState(defaultPerPage);
|
|
29
|
+
const [page, setPage] = React.useState(1);
|
|
30
|
+
const [rows, setRows] = React.useState(defaultRows.slice(0, defaultPerPage));
|
|
31
|
+
|
|
32
|
+
const handleSetPage = (
|
|
33
|
+
_evt: React.MouseEvent | React.KeyboardEvent | MouseEvent,
|
|
34
|
+
newPage: number,
|
|
35
|
+
_perPage: number,
|
|
36
|
+
startIdx: number,
|
|
37
|
+
endIdx: number
|
|
38
|
+
) => {
|
|
39
|
+
setPage(newPage);
|
|
40
|
+
setRows(defaultRows.slice(startIdx, endIdx));
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
const handlePerPageSelect = (
|
|
44
|
+
_evt: React.MouseEvent | React.KeyboardEvent | MouseEvent,
|
|
45
|
+
newPerPage: number,
|
|
46
|
+
newPage: number,
|
|
47
|
+
startIdx: number,
|
|
48
|
+
endIdx: number
|
|
49
|
+
) => {
|
|
50
|
+
setPerPage(newPerPage);
|
|
51
|
+
setPage(newPage);
|
|
52
|
+
setRows(defaultRows.slice(startIdx, endIdx));
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
const renderPagination = (variant = 'top') => (
|
|
56
|
+
<Pagination
|
|
57
|
+
isCompact
|
|
58
|
+
itemCount={defaultRows.length}
|
|
59
|
+
page={page}
|
|
60
|
+
perPage={perPage}
|
|
61
|
+
isLastFullPageShown
|
|
62
|
+
onSetPage={handleSetPage}
|
|
63
|
+
onPerPageSelect={handlePerPageSelect}
|
|
64
|
+
perPageOptions={[
|
|
65
|
+
{ title: '3', value: 3 },
|
|
66
|
+
{ title: '5', value: 5 },
|
|
67
|
+
{ title: '12', value: 12 },
|
|
68
|
+
{ title: '20', value: 20 }
|
|
69
|
+
]}
|
|
70
|
+
titles={{
|
|
71
|
+
paginationAriaLabel: `${variant} pagination`
|
|
72
|
+
}}
|
|
73
|
+
/>
|
|
74
|
+
);
|
|
75
|
+
|
|
76
|
+
return (
|
|
77
|
+
<React.Fragment>
|
|
78
|
+
{renderPagination()}
|
|
79
|
+
<Table aria-label="Automated Pagination Table Demo">
|
|
80
|
+
<Thead>
|
|
81
|
+
<Tr>
|
|
82
|
+
<Th>{columns.firstColumn}</Th>
|
|
83
|
+
<Th>{columns.secondColumn}</Th>
|
|
84
|
+
<Th>{columns.thirdColumn}</Th>
|
|
85
|
+
</Tr>
|
|
86
|
+
</Thead>
|
|
87
|
+
<Tbody>
|
|
88
|
+
{rows.map((row, rowIndex) => (
|
|
89
|
+
<Tr key={rowIndex}>
|
|
90
|
+
<>
|
|
91
|
+
<Td dataLabel={columns.firstColumn}>{row.firstColumn}</Td>
|
|
92
|
+
<Td dataLabel={columns.secondColumn}>{row.secondColumn}</Td>
|
|
93
|
+
<Td dataLabel={columns.thirdColumn}>{row.thirdColumn}</Td>
|
|
94
|
+
</>
|
|
95
|
+
</Tr>
|
|
96
|
+
))}
|
|
97
|
+
</Tbody>
|
|
98
|
+
</Table>
|
|
99
|
+
</React.Fragment>
|
|
100
|
+
);
|
|
101
|
+
};
|
|
@@ -6,44 +6,63 @@ import {
|
|
|
6
6
|
DropdownItem,
|
|
7
7
|
MenuToggle,
|
|
8
8
|
MenuToggleCheckbox,
|
|
9
|
+
MenuToggleElement,
|
|
9
10
|
PageSection,
|
|
10
11
|
Pagination,
|
|
11
12
|
Toolbar,
|
|
12
13
|
ToolbarContent,
|
|
13
14
|
ToolbarGroup,
|
|
14
|
-
ToolbarItem
|
|
15
|
+
ToolbarItem,
|
|
16
|
+
PaginationVariant
|
|
15
17
|
} from '@patternfly/react-core';
|
|
16
18
|
import { Table, Thead, Tr, Th, Tbody, Td } from '@patternfly/react-table';
|
|
17
|
-
import
|
|
18
|
-
import {
|
|
19
|
+
import { rows, columns, SampleDataRow } from '@patternfly/react-table/dist/esm/demos/sampleData';
|
|
20
|
+
import { DashboardWrapper } from '@patternfly/react-table/dist/esm/demos/DashboardWrapper';
|
|
19
21
|
|
|
20
|
-
export const
|
|
22
|
+
export const TableBulkSelect: React.FunctionComponent = () => {
|
|
21
23
|
const [isBulkSelectDropdownOpen, setIsBulkSelectDropdownOpen] = React.useState(false);
|
|
22
24
|
const [bulkSelection, setBulkSelection] = React.useState('');
|
|
23
25
|
const [page, setPage] = React.useState(1);
|
|
24
26
|
const [perPage, setPerPage] = React.useState(10);
|
|
25
27
|
const [paginatedRows, setPaginatedRows] = React.useState(rows.slice(0, 10));
|
|
26
|
-
const [selectedRows, setSelectedRows] = React.useState([]);
|
|
27
|
-
|
|
28
|
-
|
|
28
|
+
const [selectedRows, setSelectedRows] = React.useState<string[]>([]);
|
|
29
|
+
|
|
30
|
+
const handleSetPage = (
|
|
31
|
+
_evt: React.MouseEvent | React.KeyboardEvent | MouseEvent,
|
|
32
|
+
newPage: number,
|
|
33
|
+
_perPage: number,
|
|
34
|
+
startIdx: number,
|
|
35
|
+
endIdx: number
|
|
36
|
+
) => {
|
|
37
|
+
setPaginatedRows(rows?.slice(startIdx, endIdx));
|
|
29
38
|
setPage(newPage);
|
|
30
39
|
};
|
|
31
|
-
|
|
40
|
+
|
|
41
|
+
const handlePerPageSelect = (
|
|
42
|
+
_evt: React.MouseEvent | React.KeyboardEvent | MouseEvent,
|
|
43
|
+
newPerPage: number,
|
|
44
|
+
newPage: number,
|
|
45
|
+
startIdx: number,
|
|
46
|
+
endIdx: number
|
|
47
|
+
) => {
|
|
32
48
|
setPaginatedRows(rows.slice(startIdx, endIdx));
|
|
33
49
|
setPage(newPage);
|
|
34
50
|
setPerPage(newPerPage);
|
|
35
51
|
};
|
|
36
52
|
|
|
37
|
-
const setRowSelected = (row, isSelecting
|
|
53
|
+
const setRowSelected = (row: SampleDataRow, isSelecting: boolean) =>
|
|
38
54
|
setSelectedRows((prevSelected) => {
|
|
39
55
|
const otherSelectedRows = prevSelected.filter((r) => r !== row.name);
|
|
40
56
|
return isSelecting ? [...otherSelectedRows, row.name] : otherSelectedRows;
|
|
41
57
|
});
|
|
42
|
-
const selectAllRows = (isSelecting = true) => setSelectedRows(isSelecting ? rows.map((r) => r.name) : []);
|
|
43
|
-
const selectPageRows = (isSelecting = true) => setSelectedRows(isSelecting ? paginatedRows.map((r) => r.name) : []);
|
|
44
|
-
const isRowSelected = (row) => selectedRows.includes(row.name);
|
|
45
58
|
|
|
46
|
-
const
|
|
59
|
+
const selectAllRows = (isSelecting: boolean) => setSelectedRows(isSelecting ? rows.map((r) => r.name) : []);
|
|
60
|
+
|
|
61
|
+
const selectPageRows = (isSelecting: boolean) => setSelectedRows(isSelecting ? paginatedRows.map((r) => r.name) : []);
|
|
62
|
+
|
|
63
|
+
const isRowSelected = (row: any) => selectedRows.includes(row.name);
|
|
64
|
+
|
|
65
|
+
const buildPagination = (variant: 'bottom' | 'top' | PaginationVariant, isCompact: boolean) => (
|
|
47
66
|
<Pagination
|
|
48
67
|
isCompact={isCompact}
|
|
49
68
|
itemCount={rows.length}
|
|
@@ -72,10 +91,11 @@ export const BulkSelectTableDemo = () => {
|
|
|
72
91
|
<DropdownItem value="all">Select all ({rows.length} items)</DropdownItem>
|
|
73
92
|
</>
|
|
74
93
|
);
|
|
94
|
+
|
|
75
95
|
return (
|
|
76
96
|
<Dropdown
|
|
77
97
|
role="menu"
|
|
78
|
-
onSelect={(
|
|
98
|
+
onSelect={(_event: React.MouseEvent<Element, MouseEvent>, value: string) => {
|
|
79
99
|
if (value === 'all') {
|
|
80
100
|
selectAllRows(bulkSelection !== 'all');
|
|
81
101
|
} else if (value === 'page') {
|
|
@@ -83,11 +103,11 @@ export const BulkSelectTableDemo = () => {
|
|
|
83
103
|
} else {
|
|
84
104
|
setSelectedRows([]);
|
|
85
105
|
}
|
|
86
|
-
setBulkSelection(value);
|
|
106
|
+
setBulkSelection(value as string);
|
|
87
107
|
}}
|
|
88
108
|
isOpen={isBulkSelectDropdownOpen}
|
|
89
|
-
onOpenChange={(isOpen) => setIsBulkSelectDropdownOpen(isOpen)}
|
|
90
|
-
toggle={(toggleRef) => (
|
|
109
|
+
onOpenChange={(isOpen: boolean) => setIsBulkSelectDropdownOpen(isOpen)}
|
|
110
|
+
toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
|
|
91
111
|
<MenuToggle
|
|
92
112
|
ref={toggleRef}
|
|
93
113
|
isExpanded={isBulkSelectDropdownOpen}
|
|
@@ -122,7 +142,7 @@ export const BulkSelectTableDemo = () => {
|
|
|
122
142
|
<ToolbarGroup>
|
|
123
143
|
<ToolbarItem variant="bulk-select">{buildBulkSelectDropdown()}</ToolbarItem>
|
|
124
144
|
</ToolbarGroup>
|
|
125
|
-
<ToolbarItem variant="pagination">{buildPagination('top')}</ToolbarItem>
|
|
145
|
+
<ToolbarItem variant="pagination">{buildPagination('top', false)}</ToolbarItem>
|
|
126
146
|
</ToolbarContent>
|
|
127
147
|
</Toolbar>
|
|
128
148
|
);
|
|
@@ -134,7 +154,7 @@ export const BulkSelectTableDemo = () => {
|
|
|
134
154
|
<Table aria-label="Selectable table">
|
|
135
155
|
<Thead>
|
|
136
156
|
<Tr>
|
|
137
|
-
<Th />
|
|
157
|
+
<Th screenReaderText="Row select" />
|
|
138
158
|
<Th key={0}>{columns[0]}</Th>
|
|
139
159
|
<Th key={1}>{columns[1]}</Th>
|
|
140
160
|
<Th key={2}>{columns[2]}</Th>
|
|
@@ -147,7 +167,8 @@ export const BulkSelectTableDemo = () => {
|
|
|
147
167
|
<Td
|
|
148
168
|
select={{
|
|
149
169
|
rowIndex,
|
|
150
|
-
onSelect: (_event
|
|
170
|
+
onSelect: (_event: React.FormEvent<HTMLInputElement>, isSelecting: boolean) =>
|
|
171
|
+
setRowSelected(row, isSelecting),
|
|
151
172
|
isSelected: isRowSelected(row)
|
|
152
173
|
}}
|
|
153
174
|
/>
|
|
@@ -159,7 +180,7 @@ export const BulkSelectTableDemo = () => {
|
|
|
159
180
|
))}
|
|
160
181
|
</Tbody>
|
|
161
182
|
</Table>
|
|
162
|
-
{buildPagination('bottom')}
|
|
183
|
+
{buildPagination('bottom', true)}
|
|
163
184
|
</PageSection>
|
|
164
185
|
</DashboardWrapper>
|
|
165
186
|
);
|