@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
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
|
|
3
2
|
import {
|
|
4
3
|
Button,
|
|
5
4
|
Card,
|
|
6
|
-
Label,
|
|
7
5
|
MenuToggle,
|
|
8
6
|
MenuToggleElement,
|
|
9
7
|
Pagination,
|
|
@@ -13,29 +11,45 @@ import {
|
|
|
13
11
|
Toolbar,
|
|
14
12
|
ToolbarContent,
|
|
15
13
|
ToolbarGroup,
|
|
16
|
-
ToolbarItem
|
|
14
|
+
ToolbarItem,
|
|
15
|
+
Label,
|
|
16
|
+
PaginationVariant
|
|
17
17
|
} from '@patternfly/react-core';
|
|
18
18
|
import { Table, TableText, Thead, Tr, Th, Tbody, Td } from '@patternfly/react-table';
|
|
19
19
|
import FilterIcon from '@patternfly/react-icons/dist/esm/icons/filter-icon';
|
|
20
|
-
import
|
|
21
|
-
import {
|
|
20
|
+
import { rows, columns } from '@patternfly/react-table/dist/esm/demos/sampleData';
|
|
21
|
+
import { DashboardWrapper } from '@patternfly/react-table/dist/esm/demos/DashboardWrapper';
|
|
22
22
|
|
|
23
|
-
export const
|
|
24
|
-
const [isSelectOpen, setIsSelectOpen] = React.useState(false);
|
|
25
|
-
const [page, setPage] = React.useState(1);
|
|
26
|
-
const [perPage, setPerPage] = React.useState(10);
|
|
23
|
+
export const TableCompact: React.FunctionComponent = () => {
|
|
24
|
+
const [isSelectOpen, setIsSelectOpen] = React.useState<boolean>(false);
|
|
25
|
+
const [page, setPage] = React.useState<number>(1);
|
|
26
|
+
const [perPage, setPerPage] = React.useState<number>(10);
|
|
27
27
|
const [paginatedRows, setPaginatedRows] = React.useState(rows.slice(0, 10));
|
|
28
|
-
|
|
28
|
+
|
|
29
|
+
const handleSetPage = (
|
|
30
|
+
_evt: React.MouseEvent | React.KeyboardEvent | MouseEvent,
|
|
31
|
+
newPage: number,
|
|
32
|
+
_perPage: number,
|
|
33
|
+
startIdx: number,
|
|
34
|
+
endIdx: number
|
|
35
|
+
) => {
|
|
29
36
|
setPaginatedRows(rows.slice(startIdx, endIdx));
|
|
30
37
|
setPage(newPage);
|
|
31
38
|
};
|
|
32
|
-
|
|
39
|
+
|
|
40
|
+
const handlePerPageSelect = (
|
|
41
|
+
_evt: React.MouseEvent | React.KeyboardEvent | MouseEvent,
|
|
42
|
+
newPerPage: number,
|
|
43
|
+
newPage: number,
|
|
44
|
+
startIdx: number,
|
|
45
|
+
endIdx: number
|
|
46
|
+
) => {
|
|
33
47
|
setPaginatedRows(rows.slice(startIdx, endIdx));
|
|
34
48
|
setPage(newPage);
|
|
35
49
|
setPerPage(newPerPage);
|
|
36
50
|
};
|
|
37
51
|
|
|
38
|
-
const renderPagination = (variant, isCompact) => (
|
|
52
|
+
const renderPagination = (variant: string, isCompact: boolean) => (
|
|
39
53
|
<Pagination
|
|
40
54
|
isCompact={isCompact}
|
|
41
55
|
itemCount={rows.length}
|
|
@@ -43,7 +57,7 @@ export const CompactTable = () => {
|
|
|
43
57
|
perPage={perPage}
|
|
44
58
|
onSetPage={handleSetPage}
|
|
45
59
|
onPerPageSelect={handlePerPageSelect}
|
|
46
|
-
variant={variant}
|
|
60
|
+
variant={variant as PaginationVariant}
|
|
47
61
|
titles={{
|
|
48
62
|
paginationAriaLabel: `${variant} pagination`
|
|
49
63
|
}}
|
|
@@ -58,12 +72,17 @@ export const CompactTable = () => {
|
|
|
58
72
|
id="select-example"
|
|
59
73
|
aria-label="Select Input"
|
|
60
74
|
toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
|
|
61
|
-
<MenuToggle
|
|
62
|
-
<FilterIcon />
|
|
75
|
+
<MenuToggle
|
|
76
|
+
icon={<FilterIcon />}
|
|
77
|
+
ref={toggleRef}
|
|
78
|
+
onClick={() => setIsSelectOpen(!isSelectOpen)}
|
|
79
|
+
isExpanded={isSelectOpen}
|
|
80
|
+
>
|
|
81
|
+
Status
|
|
63
82
|
</MenuToggle>
|
|
64
83
|
)}
|
|
65
84
|
isOpen={isSelectOpen}
|
|
66
|
-
onOpenChange={(isOpen) => setIsSelectOpen(isOpen)}
|
|
85
|
+
onOpenChange={(isOpen: boolean) => setIsSelectOpen(isOpen)}
|
|
67
86
|
onSelect={() => setIsSelectOpen(!isSelectOpen)}
|
|
68
87
|
>
|
|
69
88
|
{[
|
|
@@ -92,7 +111,7 @@ export const CompactTable = () => {
|
|
|
92
111
|
</Toolbar>
|
|
93
112
|
);
|
|
94
113
|
|
|
95
|
-
const renderLabel = (labelText) => {
|
|
114
|
+
const renderLabel = (labelText: string) => {
|
|
96
115
|
switch (labelText) {
|
|
97
116
|
case 'Running':
|
|
98
117
|
return <Label color="green">{labelText}</Label>;
|
|
@@ -102,8 +121,11 @@ export const CompactTable = () => {
|
|
|
102
121
|
return <Label color="blue">{labelText}</Label>;
|
|
103
122
|
case 'Down':
|
|
104
123
|
return <Label color="red">{labelText}</Label>;
|
|
124
|
+
default:
|
|
125
|
+
return <></>;
|
|
105
126
|
}
|
|
106
127
|
};
|
|
128
|
+
|
|
107
129
|
return (
|
|
108
130
|
<React.Fragment>
|
|
109
131
|
<DashboardWrapper hasPageTemplateTitle>
|
|
@@ -146,7 +168,6 @@ export const CompactTable = () => {
|
|
|
146
168
|
))}
|
|
147
169
|
</Tbody>
|
|
148
170
|
</Table>
|
|
149
|
-
{renderPagination('bottom', false)}
|
|
150
171
|
</Card>
|
|
151
172
|
</PageSection>
|
|
152
173
|
</DashboardWrapper>
|
|
@@ -14,15 +14,17 @@ import {
|
|
|
14
14
|
Pagination,
|
|
15
15
|
PageSection,
|
|
16
16
|
Select,
|
|
17
|
-
SelectOption
|
|
17
|
+
SelectOption,
|
|
18
|
+
PaginationVariant
|
|
18
19
|
} from '@patternfly/react-core';
|
|
19
20
|
import CodeBranchIcon from '@patternfly/react-icons/dist/esm/icons/code-branch-icon';
|
|
20
21
|
import CodeIcon from '@patternfly/react-icons/dist/esm/icons/code-icon';
|
|
21
22
|
import CubeIcon from '@patternfly/react-icons/dist/esm/icons/cube-icon';
|
|
22
|
-
import DashboardWrapper from '@patternfly/react-
|
|
23
|
+
import { DashboardWrapper } from '@patternfly/react-table/dist/esm/demos/DashboardWrapper';
|
|
23
24
|
import FilterIcon from '@patternfly/react-icons/dist/esm/icons/filter-icon';
|
|
25
|
+
import spacing from '@patternfly/react-styles/css/utilities/Spacing/spacing';
|
|
24
26
|
|
|
25
|
-
export const
|
|
27
|
+
export const TableCompoundExpansion: React.FunctionComponent = () => {
|
|
26
28
|
// In real usage, this data would come from some external source like an API via props.
|
|
27
29
|
const [isSelectOpen, setIsSelectOpen] = React.useState(false);
|
|
28
30
|
|
|
@@ -49,12 +51,12 @@ export const CompoundExpandable = () => {
|
|
|
49
51
|
<Th>{columnNames.description}</Th>
|
|
50
52
|
<Th>{columnNames.date}</Th>
|
|
51
53
|
<Th>{columnNames.status}</Th>
|
|
52
|
-
<Th />
|
|
54
|
+
<Th screenReaderText="Actions" />
|
|
53
55
|
</Tr>
|
|
54
56
|
</Thead>
|
|
55
57
|
<Tbody>
|
|
56
58
|
{items.map((item) => (
|
|
57
|
-
<Tr key={item.
|
|
59
|
+
<Tr key={item.description}>
|
|
58
60
|
<Td dataLabel={columnNames.description}>{item.description}</Td>
|
|
59
61
|
<Td dataLabel={columnNames.date}>{item.date}</Td>
|
|
60
62
|
<Td dataLabel={columnNames.status}>{item.status}</Td>
|
|
@@ -68,7 +70,7 @@ export const CompoundExpandable = () => {
|
|
|
68
70
|
);
|
|
69
71
|
};
|
|
70
72
|
|
|
71
|
-
const renderPagination = (variant, isCompact) => (
|
|
73
|
+
const renderPagination = (variant: 'top' | 'bottom' | PaginationVariant, isCompact: boolean) => (
|
|
72
74
|
<Pagination
|
|
73
75
|
isCompact={isCompact}
|
|
74
76
|
itemCount={36}
|
|
@@ -82,7 +84,7 @@ export const CompoundExpandable = () => {
|
|
|
82
84
|
);
|
|
83
85
|
|
|
84
86
|
const tableToolbar = (
|
|
85
|
-
<Toolbar id="compact-toolbar"
|
|
87
|
+
<Toolbar id="compact-toolbar">
|
|
86
88
|
<ToolbarContent>
|
|
87
89
|
<ToolbarItem>
|
|
88
90
|
<Select
|
|
@@ -94,7 +96,7 @@ export const CompoundExpandable = () => {
|
|
|
94
96
|
</MenuToggle>
|
|
95
97
|
)}
|
|
96
98
|
isOpen={isSelectOpen}
|
|
97
|
-
onOpenChange={(isOpen) => setIsSelectOpen(isOpen)}
|
|
99
|
+
onOpenChange={(isOpen: boolean) => setIsSelectOpen(isOpen)}
|
|
98
100
|
onSelect={() => setIsSelectOpen(!isSelectOpen)}
|
|
99
101
|
>
|
|
100
102
|
{[
|
|
@@ -136,7 +138,19 @@ export const CompoundExpandable = () => {
|
|
|
136
138
|
}
|
|
137
139
|
];
|
|
138
140
|
|
|
139
|
-
|
|
141
|
+
interface Repo {
|
|
142
|
+
name: string;
|
|
143
|
+
branches: number;
|
|
144
|
+
prs: number;
|
|
145
|
+
workspaces: number;
|
|
146
|
+
lastCommit: string;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
interface IDictionary<T> {
|
|
150
|
+
[Key: string]: T;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
const repositories: Repo[] = [
|
|
140
154
|
{
|
|
141
155
|
name: 'siemur/test-space',
|
|
142
156
|
branches: 10,
|
|
@@ -147,7 +161,7 @@ export const CompoundExpandable = () => {
|
|
|
147
161
|
{ name: 'siemur/test-space-2', branches: 3, prs: 4, workspaces: 4, lastCommit: '20 minutes' }
|
|
148
162
|
];
|
|
149
163
|
|
|
150
|
-
const columnNames = {
|
|
164
|
+
const columnNames: IDictionary<string> = {
|
|
151
165
|
name: 'Repositories',
|
|
152
166
|
branches: 'Branches',
|
|
153
167
|
prs: 'Pull requests',
|
|
@@ -158,11 +172,11 @@ export const CompoundExpandable = () => {
|
|
|
158
172
|
// In this example, expanded cells are tracked by the repo and property names from each row. This could be any pair of unique identifiers.
|
|
159
173
|
// This is to prevent state from being based on row and column order index in case we later add sorting and rearranging columns.
|
|
160
174
|
// Note that this behavior is very similar to selection state.
|
|
161
|
-
const [expandedCells, setExpandedCells] = React.useState({
|
|
175
|
+
const [expandedCells, setExpandedCells] = React.useState<IDictionary<string>>({
|
|
162
176
|
'siemur/test-space': 'branches' // Default to the first cell of the first row being expanded
|
|
163
177
|
});
|
|
164
|
-
const setCellExpanded = (repo, columnKey, isExpanding = true) => {
|
|
165
|
-
const newExpandedCells = { ...expandedCells };
|
|
178
|
+
const setCellExpanded = (repo: Repo, columnKey: string, isExpanding = true) => {
|
|
179
|
+
const newExpandedCells: IDictionary<string> = { ...expandedCells };
|
|
166
180
|
if (isExpanding) {
|
|
167
181
|
newExpandedCells[repo.name] = columnKey;
|
|
168
182
|
} else {
|
|
@@ -170,7 +184,7 @@ export const CompoundExpandable = () => {
|
|
|
170
184
|
}
|
|
171
185
|
setExpandedCells(newExpandedCells);
|
|
172
186
|
};
|
|
173
|
-
const compoundExpandParams = (repo, columnKey, rowIndex, columnIndex) => ({
|
|
187
|
+
const compoundExpandParams = (repo: Repo, columnKey: string, rowIndex: number, columnIndex: number) => ({
|
|
174
188
|
isExpanded: expandedCells[repo.name] === columnKey,
|
|
175
189
|
onToggle: () => setCellExpanded(repo, columnKey, expandedCells[repo.name] !== columnKey),
|
|
176
190
|
expandId: 'compound-expandable-demo',
|
|
@@ -191,7 +205,8 @@ export const CompoundExpandable = () => {
|
|
|
191
205
|
<Th>{columnNames.prs}</Th>
|
|
192
206
|
<Th>{columnNames.workspaces}</Th>
|
|
193
207
|
<Th>{columnNames.lastCommit}</Th>
|
|
194
|
-
<Th />
|
|
208
|
+
<Th screenReaderText="URL" />
|
|
209
|
+
<Th screenReaderText="Actions" />
|
|
195
210
|
</Tr>
|
|
196
211
|
</Thead>
|
|
197
212
|
{repositories.map((repo, rowIndex) => {
|
|
@@ -248,7 +263,7 @@ export const CompoundExpandable = () => {
|
|
|
248
263
|
<NestedItemsTable />
|
|
249
264
|
) : (
|
|
250
265
|
<ExpandableRowContent>
|
|
251
|
-
<div className=
|
|
266
|
+
<div className={spacing.mMd}>
|
|
252
267
|
Expanded content for {repo.name}: {expandedCellKey} goes here!
|
|
253
268
|
</div>
|
|
254
269
|
</ExpandableRowContent>
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Table, Thead, Tr, Th, Tbody, Td } from '@patternfly/react-table';
|
|
3
|
+
import {
|
|
4
|
+
Bullseye,
|
|
5
|
+
Button,
|
|
6
|
+
Card,
|
|
7
|
+
EmptyState,
|
|
8
|
+
EmptyStateVariant,
|
|
9
|
+
EmptyStateBody,
|
|
10
|
+
EmptyStateFooter,
|
|
11
|
+
EmptyStateActions,
|
|
12
|
+
PageSection
|
|
13
|
+
} from '@patternfly/react-core';
|
|
14
|
+
import SearchIcon from '@patternfly/react-icons/dist/esm/icons/search-icon';
|
|
15
|
+
import { DashboardWrapper } from '@patternfly/react-table/dist/esm/demos/DashboardWrapper';
|
|
16
|
+
|
|
17
|
+
export const TableEmptyStateDefault: React.FunctionComponent = () => (
|
|
18
|
+
<DashboardWrapper hasPageTemplateTitle>
|
|
19
|
+
<PageSection padding={{ default: 'noPadding', xl: 'padding' }}>
|
|
20
|
+
<Card component="div">
|
|
21
|
+
<Table aria-label="Empty state table">
|
|
22
|
+
<Thead>
|
|
23
|
+
<Tr>
|
|
24
|
+
<Th>Repositories</Th>
|
|
25
|
+
<Th>Branches</Th>
|
|
26
|
+
<Th>Pull requests</Th>
|
|
27
|
+
<Th>Workspaces</Th>
|
|
28
|
+
<Th>Last commit</Th>
|
|
29
|
+
</Tr>
|
|
30
|
+
</Thead>
|
|
31
|
+
<Tbody>
|
|
32
|
+
<Tr>
|
|
33
|
+
<Td colSpan={8}>
|
|
34
|
+
<Bullseye>
|
|
35
|
+
<EmptyState
|
|
36
|
+
titleText="No results found"
|
|
37
|
+
icon={SearchIcon}
|
|
38
|
+
headingLevel="h2"
|
|
39
|
+
variant={EmptyStateVariant.sm}
|
|
40
|
+
>
|
|
41
|
+
<EmptyStateBody>
|
|
42
|
+
No results match this filter criteria. Clear all filters and try again.
|
|
43
|
+
</EmptyStateBody>
|
|
44
|
+
<EmptyStateFooter>
|
|
45
|
+
<EmptyStateActions>
|
|
46
|
+
<Button variant="link">Clear all filters</Button>
|
|
47
|
+
</EmptyStateActions>
|
|
48
|
+
</EmptyStateFooter>
|
|
49
|
+
</EmptyState>
|
|
50
|
+
</Bullseye>
|
|
51
|
+
</Td>
|
|
52
|
+
</Tr>
|
|
53
|
+
</Tbody>
|
|
54
|
+
</Table>
|
|
55
|
+
</Card>
|
|
56
|
+
</PageSection>
|
|
57
|
+
</DashboardWrapper>
|
|
58
|
+
);
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Table, Thead, Tr, Th, Tbody, Td } from '@patternfly/react-table';
|
|
3
|
+
import { Bullseye, Card, EmptyState, EmptyStateVariant, EmptyStateBody, PageSection } from '@patternfly/react-core';
|
|
4
|
+
import ExclamationCircleIcon from '@patternfly/react-icons/dist/esm/icons/exclamation-circle-icon';
|
|
5
|
+
import { DashboardWrapper } from '@patternfly/react-table/dist/esm/demos/DashboardWrapper';
|
|
6
|
+
|
|
7
|
+
export const TableEmptyStateError: React.FunctionComponent = () => (
|
|
8
|
+
<DashboardWrapper hasPageTemplateTitle>
|
|
9
|
+
<PageSection padding={{ default: 'noPadding', xl: 'padding' }}>
|
|
10
|
+
<Card component="div">
|
|
11
|
+
<Table aria-label="Loading table demo">
|
|
12
|
+
<Thead>
|
|
13
|
+
<Tr>
|
|
14
|
+
<Th>Repositories</Th>
|
|
15
|
+
<Th>Branches</Th>
|
|
16
|
+
<Th>Pull requests</Th>
|
|
17
|
+
<Th>Workspaces</Th>
|
|
18
|
+
<Th>Last commit</Th>
|
|
19
|
+
</Tr>
|
|
20
|
+
</Thead>
|
|
21
|
+
<Tbody>
|
|
22
|
+
<Tr>
|
|
23
|
+
<Td colSpan={8}>
|
|
24
|
+
<Bullseye>
|
|
25
|
+
<EmptyState
|
|
26
|
+
icon={ExclamationCircleIcon}
|
|
27
|
+
titleText="Unable to connect"
|
|
28
|
+
headingLevel="h2"
|
|
29
|
+
variant={EmptyStateVariant.sm}
|
|
30
|
+
>
|
|
31
|
+
<EmptyStateBody>
|
|
32
|
+
There was an error retrieving data. Check your connection and reload the page.
|
|
33
|
+
</EmptyStateBody>
|
|
34
|
+
</EmptyState>
|
|
35
|
+
</Bullseye>
|
|
36
|
+
</Td>
|
|
37
|
+
</Tr>
|
|
38
|
+
</Tbody>
|
|
39
|
+
</Table>
|
|
40
|
+
</Card>
|
|
41
|
+
</PageSection>
|
|
42
|
+
</DashboardWrapper>
|
|
43
|
+
);
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Table, Thead, Tr, Th, Tbody, Td } from '@patternfly/react-table';
|
|
3
|
+
import { Bullseye, Card, EmptyState, PageSection, Spinner } from '@patternfly/react-core';
|
|
4
|
+
import { DashboardWrapper } from '@patternfly/react-table/dist/esm/demos/DashboardWrapper';
|
|
5
|
+
|
|
6
|
+
export const TableEmptyStateLoading: React.FunctionComponent = () => (
|
|
7
|
+
<DashboardWrapper hasPageTemplateTitle>
|
|
8
|
+
<PageSection padding={{ default: 'noPadding', xl: 'padding' }}>
|
|
9
|
+
<Card component="div">
|
|
10
|
+
<Table aria-label="Loading table demo">
|
|
11
|
+
<Thead>
|
|
12
|
+
<Tr>
|
|
13
|
+
<Th>Repositories</Th>
|
|
14
|
+
<Th>Branches</Th>
|
|
15
|
+
<Th>Pull requests</Th>
|
|
16
|
+
<Th>Workspaces</Th>
|
|
17
|
+
<Th>Last commit</Th>
|
|
18
|
+
</Tr>
|
|
19
|
+
</Thead>
|
|
20
|
+
<Tbody>
|
|
21
|
+
<Tr>
|
|
22
|
+
<Td colSpan={8}>
|
|
23
|
+
<Bullseye>
|
|
24
|
+
<EmptyState titleText="Loading" icon={Spinner} headingLevel="h2" />
|
|
25
|
+
</Bullseye>
|
|
26
|
+
</Td>
|
|
27
|
+
</Tr>
|
|
28
|
+
</Tbody>
|
|
29
|
+
</Table>
|
|
30
|
+
</Card>
|
|
31
|
+
</PageSection>
|
|
32
|
+
</DashboardWrapper>
|
|
33
|
+
);
|
|
@@ -1,11 +1,20 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Card, Label, PageSection
|
|
1
|
+
import React, { ReactNode } from 'react';
|
|
2
|
+
import { Card, Content, Label, PageSection } from '@patternfly/react-core';
|
|
3
3
|
import { Table, Thead, Tbody, Tr, Th, Td, ExpandableRowContent } from '@patternfly/react-table';
|
|
4
|
-
import DashboardWrapper from '@patternfly/react-
|
|
4
|
+
import { DashboardWrapper } from '@patternfly/react-table/dist/esm/demos/DashboardWrapper';
|
|
5
5
|
|
|
6
6
|
const expandableColumns = ['Servers', 'Threads', 'Applications', 'Workspaces', 'Status'];
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
interface Server {
|
|
9
|
+
name: string;
|
|
10
|
+
threads: number;
|
|
11
|
+
applications: number;
|
|
12
|
+
workspaces: number;
|
|
13
|
+
status: { title: ReactNode };
|
|
14
|
+
details: ReactNode;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const serverData: Server[] = [
|
|
9
18
|
{
|
|
10
19
|
name: 'US-Node 1',
|
|
11
20
|
threads: 18,
|
|
@@ -13,17 +22,17 @@ const serverData = [
|
|
|
13
22
|
workspaces: 7,
|
|
14
23
|
status: { title: <Label color="green">Running</Label> },
|
|
15
24
|
details: (
|
|
16
|
-
<
|
|
17
|
-
<
|
|
18
|
-
Location<
|
|
19
|
-
</
|
|
20
|
-
<
|
|
21
|
-
Last Modified<
|
|
22
|
-
</
|
|
23
|
-
<
|
|
24
|
-
URL<
|
|
25
|
-
</
|
|
26
|
-
</
|
|
25
|
+
<Content>
|
|
26
|
+
<p>
|
|
27
|
+
Location<small>Boston</small>
|
|
28
|
+
</p>
|
|
29
|
+
<p>
|
|
30
|
+
Last Modified<small>2 hours ago</small>
|
|
31
|
+
</p>
|
|
32
|
+
<p>
|
|
33
|
+
URL<small>http://www.redhat.com/en/office-locations/US-node1</small>
|
|
34
|
+
</p>
|
|
35
|
+
</Content>
|
|
27
36
|
)
|
|
28
37
|
},
|
|
29
38
|
{
|
|
@@ -33,17 +42,17 @@ const serverData = [
|
|
|
33
42
|
workspaces: 17,
|
|
34
43
|
status: { title: <Label color="red">Down</Label> },
|
|
35
44
|
details: (
|
|
36
|
-
<
|
|
37
|
-
<
|
|
38
|
-
Location<
|
|
39
|
-
</
|
|
40
|
-
<
|
|
41
|
-
Last Modified<
|
|
42
|
-
</
|
|
43
|
-
<
|
|
44
|
-
URL<
|
|
45
|
-
</
|
|
46
|
-
</
|
|
45
|
+
<Content>
|
|
46
|
+
<p>
|
|
47
|
+
Location<small>Atlanta</small>
|
|
48
|
+
</p>
|
|
49
|
+
<p>
|
|
50
|
+
Last Modified<small>5 hours ago</small>
|
|
51
|
+
</p>
|
|
52
|
+
<p>
|
|
53
|
+
URL<small>http://www.redhat.com/en/office-locations/US-node2</small>
|
|
54
|
+
</p>
|
|
55
|
+
</Content>
|
|
47
56
|
)
|
|
48
57
|
},
|
|
49
58
|
{
|
|
@@ -53,17 +62,17 @@ const serverData = [
|
|
|
53
62
|
workspaces: 3,
|
|
54
63
|
status: { title: <Label color="green">Running</Label> },
|
|
55
64
|
details: (
|
|
56
|
-
<
|
|
57
|
-
<
|
|
58
|
-
Location<
|
|
59
|
-
</
|
|
60
|
-
<
|
|
61
|
-
Last Modified<
|
|
62
|
-
</
|
|
63
|
-
<
|
|
64
|
-
URL<
|
|
65
|
-
</
|
|
66
|
-
</
|
|
65
|
+
<Content>
|
|
66
|
+
<p>
|
|
67
|
+
Location<small>San Francisco</small>
|
|
68
|
+
</p>
|
|
69
|
+
<p>
|
|
70
|
+
Last Modified<small>20 minutes ago</small>
|
|
71
|
+
</p>
|
|
72
|
+
<p>
|
|
73
|
+
URL<small>http://www.redhat.com/en/office-locations/US-node3</small>
|
|
74
|
+
</p>
|
|
75
|
+
</Content>
|
|
67
76
|
)
|
|
68
77
|
},
|
|
69
78
|
{
|
|
@@ -73,17 +82,17 @@ const serverData = [
|
|
|
73
82
|
workspaces: 15,
|
|
74
83
|
status: { title: <Label color="blue">Needs Maintenance</Label> },
|
|
75
84
|
details: (
|
|
76
|
-
<
|
|
77
|
-
<
|
|
78
|
-
Location<
|
|
79
|
-
</
|
|
80
|
-
<
|
|
81
|
-
Last Modified<
|
|
82
|
-
</
|
|
83
|
-
<
|
|
84
|
-
URL<
|
|
85
|
-
</
|
|
86
|
-
</
|
|
85
|
+
<Content>
|
|
86
|
+
<p>
|
|
87
|
+
Location<small>Raleigh</small>
|
|
88
|
+
</p>
|
|
89
|
+
<p>
|
|
90
|
+
Last Modified<small>10 minutes ago</small>
|
|
91
|
+
</p>
|
|
92
|
+
<p>
|
|
93
|
+
URL<small>http://www.redhat.com/en/office-locations/US-node4</small>
|
|
94
|
+
</p>
|
|
95
|
+
</Content>
|
|
87
96
|
)
|
|
88
97
|
},
|
|
89
98
|
{
|
|
@@ -93,24 +102,24 @@ const serverData = [
|
|
|
93
102
|
workspaces: 17,
|
|
94
103
|
status: { title: <Label color="orange">Stopped</Label> },
|
|
95
104
|
details: (
|
|
96
|
-
<
|
|
97
|
-
<
|
|
98
|
-
Location<
|
|
99
|
-
</
|
|
100
|
-
<
|
|
101
|
-
Last Modified<
|
|
102
|
-
</
|
|
103
|
-
<
|
|
104
|
-
URL<
|
|
105
|
-
</
|
|
106
|
-
</
|
|
105
|
+
<Content>
|
|
106
|
+
<p>
|
|
107
|
+
Location<small>Atlanta</small>
|
|
108
|
+
</p>
|
|
109
|
+
<p>
|
|
110
|
+
Last Modified<small>15 minutes ago</small>
|
|
111
|
+
</p>
|
|
112
|
+
<p>
|
|
113
|
+
URL<small>http://www.redhat.com/en/office-locations/US-node5</small>
|
|
114
|
+
</p>
|
|
115
|
+
</Content>
|
|
107
116
|
)
|
|
108
117
|
}
|
|
109
118
|
];
|
|
110
119
|
|
|
111
120
|
const initialExpandedServerNames = ['US-Node 2']; // Default to expanded
|
|
112
121
|
|
|
113
|
-
const
|
|
122
|
+
export const TableExpandCollapseAll: React.FunctionComponent = () => {
|
|
114
123
|
const [areAllExpanded, setAreAllExpanded] = React.useState(false);
|
|
115
124
|
const [collapseAllAriaLabel, setCollapseAllAriaLabel] = React.useState('Expand all');
|
|
116
125
|
const [expandedServerNames, setExpandedServerNames] = React.useState(initialExpandedServerNames);
|
|
@@ -121,20 +130,18 @@ const ExpandCollapseAllTableDemo = () => {
|
|
|
121
130
|
setCollapseAllAriaLabel(allExpanded ? 'Collapse all' : 'Expand all');
|
|
122
131
|
}, [expandedServerNames]);
|
|
123
132
|
|
|
124
|
-
const setServerExpanded = (server, isExpanding) => {
|
|
133
|
+
const setServerExpanded = (server: Server, isExpanding: boolean) => {
|
|
125
134
|
const otherExpandedServerNames = expandedServerNames.filter((r) => r !== server.name);
|
|
126
135
|
setExpandedServerNames(isExpanding ? [...otherExpandedServerNames, server.name] : otherExpandedServerNames);
|
|
127
136
|
};
|
|
128
137
|
|
|
129
|
-
const isServerExpanded = (server) =>
|
|
130
|
-
return expandedServerNames.includes(server.name);
|
|
131
|
-
};
|
|
138
|
+
const isServerExpanded = (server: Server) => expandedServerNames.includes(server.name);
|
|
132
139
|
|
|
133
140
|
// We want to be able to reference the original data object based on row index. But because an expanded
|
|
134
141
|
// row takes up two row indexes, servers[rowIndex] will not be accurate like it would in a normal table.
|
|
135
142
|
// One solution to this is to create an array of data objects indexed by the displayed row index.
|
|
136
143
|
|
|
137
|
-
const onCollapseAll = (_event, _rowIndex, isOpen) => {
|
|
144
|
+
const onCollapseAll = (_event: any, _rowIndex: number, isOpen: boolean) => {
|
|
138
145
|
setExpandedServerNames(isOpen ? [...serverData.map((server) => server.name)] : []);
|
|
139
146
|
};
|
|
140
147
|
|
|
@@ -154,10 +161,11 @@ const ExpandCollapseAllTableDemo = () => {
|
|
|
154
161
|
<Th
|
|
155
162
|
expand={{
|
|
156
163
|
areAllExpanded: !areAllExpanded,
|
|
157
|
-
collapseAllAriaLabel
|
|
164
|
+
collapseAllAriaLabel,
|
|
158
165
|
onToggle: onCollapseAll
|
|
159
166
|
}}
|
|
160
|
-
|
|
167
|
+
aria-label="Row expansion"
|
|
168
|
+
/>
|
|
161
169
|
{expandableColumns.map((column) => (
|
|
162
170
|
<Th key={column}>{column}</Th>
|
|
163
171
|
))}
|