@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
|
@@ -15,12 +15,15 @@ export const sortableFavorites = (sort: any) => () =>
|
|
|
15
15
|
sortBy: sort.sortBy,
|
|
16
16
|
onSort: sort?.onSort
|
|
17
17
|
}
|
|
18
|
-
}
|
|
18
|
+
},
|
|
19
|
+
tooltip: sort.tooltip,
|
|
20
|
+
tooltipProps: sort.tooltipProps,
|
|
21
|
+
tooltipHasDefaultBehavior: true
|
|
19
22
|
});
|
|
20
23
|
|
|
21
24
|
export const sortable: ITransform = (
|
|
22
25
|
label: IFormatterValueType,
|
|
23
|
-
{ columnIndex, column, property, className, ariaLabel }: IExtra
|
|
26
|
+
{ columnIndex, column, property, className, ariaLabel, tooltip, tooltipProps, tooltipHasDefaultBehavior }: IExtra
|
|
24
27
|
) => {
|
|
25
28
|
const {
|
|
26
29
|
extraParams: { sortBy, onSort }
|
|
@@ -56,6 +59,9 @@ export const sortable: ITransform = (
|
|
|
56
59
|
sortDirection={isSortedBy ? sortBy.direction : ''}
|
|
57
60
|
onSort={sortClicked}
|
|
58
61
|
aria-label={ariaLabel}
|
|
62
|
+
tooltip={tooltip}
|
|
63
|
+
tooltipProps={tooltipProps}
|
|
64
|
+
tooltipHasDefaultBehavior={tooltipHasDefaultBehavior}
|
|
59
65
|
>
|
|
60
66
|
{label as React.ReactNode}
|
|
61
67
|
</SortColumn>
|
|
@@ -31,7 +31,7 @@ export const treeRow =
|
|
|
31
31
|
{icon}
|
|
32
32
|
</span>
|
|
33
33
|
)}
|
|
34
|
-
<span className=
|
|
34
|
+
<span className={styles.tableText} key="table-text">
|
|
35
35
|
{content as React.ReactNode}
|
|
36
36
|
</span>
|
|
37
37
|
</div>
|
|
@@ -41,7 +41,7 @@ export const treeRow =
|
|
|
41
41
|
};
|
|
42
42
|
return {
|
|
43
43
|
component: 'th',
|
|
44
|
-
className:
|
|
44
|
+
className: stylesTreeView.tableTreeViewTitleCell,
|
|
45
45
|
children:
|
|
46
46
|
level !== undefined ? (
|
|
47
47
|
<div className={css(stylesTreeView.tableTreeViewMain)}>
|
|
@@ -83,7 +83,7 @@ export const treeRow =
|
|
|
83
83
|
onToggleRowDetails && onToggleRowDetails(event, rowIndex, content as React.ReactNode, rowData)
|
|
84
84
|
}
|
|
85
85
|
>
|
|
86
|
-
<span className=
|
|
86
|
+
<span className={`${styles.table}__details-toggle-icon`}>
|
|
87
87
|
<EllipsisHIcon aria-hidden />
|
|
88
88
|
</span>
|
|
89
89
|
</Button>
|
|
@@ -18,7 +18,6 @@ import {
|
|
|
18
18
|
textCenter,
|
|
19
19
|
cellActions
|
|
20
20
|
} from './';
|
|
21
|
-
import { DropdownPosition, DropdownDirection } from '@patternfly/react-core/dist/esm/deprecated/components/Dropdown';
|
|
22
21
|
import {
|
|
23
22
|
IAction,
|
|
24
23
|
IActions,
|
|
@@ -29,6 +28,9 @@ import {
|
|
|
29
28
|
IRowData,
|
|
30
29
|
ISeparator
|
|
31
30
|
} from '../TableTypes';
|
|
31
|
+
import { css } from '@patternfly/react-styles';
|
|
32
|
+
import tableStyles from '@patternfly/react-styles/css/components/Table/table';
|
|
33
|
+
import menuStyles from '@patternfly/react-styles/css/components/Menu/menu';
|
|
32
34
|
|
|
33
35
|
const testCellActions = async ({
|
|
34
36
|
actions,
|
|
@@ -55,8 +57,8 @@ const testCellActions = async ({
|
|
|
55
57
|
rowData,
|
|
56
58
|
column: {
|
|
57
59
|
extraParams: {
|
|
58
|
-
dropdownPosition:
|
|
59
|
-
dropdownDirection:
|
|
60
|
+
dropdownPosition: 'right',
|
|
61
|
+
dropdownDirection: 'down'
|
|
60
62
|
}
|
|
61
63
|
}
|
|
62
64
|
});
|
|
@@ -65,7 +67,7 @@ const testCellActions = async ({
|
|
|
65
67
|
actions = actionResolver(rowData, extraData);
|
|
66
68
|
}
|
|
67
69
|
|
|
68
|
-
expect(returnedData).toMatchObject({ className:
|
|
70
|
+
expect(returnedData).toMatchObject({ className: tableStyles.tableAction });
|
|
69
71
|
|
|
70
72
|
if (!actions || actions.length === 0) {
|
|
71
73
|
expect(returnedData.children).toBeUndefined();
|
|
@@ -73,7 +75,8 @@ const testCellActions = async ({
|
|
|
73
75
|
const { container } = render(returnedData.children as React.ReactElement<any>);
|
|
74
76
|
await user.click(screen.getAllByRole('button')[0]);
|
|
75
77
|
await waitFor(() =>
|
|
76
|
-
|
|
78
|
+
// eslint-disable-next-line testing-library/no-container
|
|
79
|
+
expect(container.querySelectorAll(`.${menuStyles.menu} li button`)).toHaveLength(expectDisabled ? 0 : 1)
|
|
77
80
|
);
|
|
78
81
|
}
|
|
79
82
|
};
|
|
@@ -86,7 +89,7 @@ describe('Transformer functions', () => {
|
|
|
86
89
|
extraParams: { onSelect }
|
|
87
90
|
};
|
|
88
91
|
const returnedData = selectable('', { column, rowData: {} } as IExtra);
|
|
89
|
-
expect(returnedData).toMatchObject({ className:
|
|
92
|
+
expect(returnedData).toMatchObject({ className: tableStyles.tableCheck });
|
|
90
93
|
|
|
91
94
|
const user = userEvent.setup();
|
|
92
95
|
|
|
@@ -103,7 +106,7 @@ describe('Transformer functions', () => {
|
|
|
103
106
|
extraParams: { onSelect }
|
|
104
107
|
};
|
|
105
108
|
const returnedData = selectable('', { column, rowIndex: 0, rowData: { selected: true } } as IExtra);
|
|
106
|
-
expect(returnedData).toMatchObject({ className:
|
|
109
|
+
expect(returnedData).toMatchObject({ className: tableStyles.tableCheck });
|
|
107
110
|
const user = userEvent.setup();
|
|
108
111
|
|
|
109
112
|
render(returnedData.children as React.ReactElement<any>);
|
|
@@ -128,7 +131,7 @@ describe('Transformer functions', () => {
|
|
|
128
131
|
const onSort = jest.fn();
|
|
129
132
|
const column = { extraParams: { sortBy: {}, onSort } };
|
|
130
133
|
const returnedData = sortable('', { column, columnIndex: 0 });
|
|
131
|
-
expect(returnedData).toMatchObject({ className:
|
|
134
|
+
expect(returnedData).toMatchObject({ className: tableStyles.tableSort });
|
|
132
135
|
|
|
133
136
|
const user = userEvent.setup();
|
|
134
137
|
|
|
@@ -154,7 +157,7 @@ describe('Transformer functions', () => {
|
|
|
154
157
|
const onSort = jest.fn();
|
|
155
158
|
const column = { extraParams: { sortBy: { index: 0, direction: 'desc' }, onSort } };
|
|
156
159
|
const returnedData = sortable('', { column, columnIndex: 0 } as IExtra);
|
|
157
|
-
expect(returnedData).toMatchObject({ className:
|
|
160
|
+
expect(returnedData).toMatchObject({ className: css(tableStyles.tableSort, tableStyles.modifiers.selected) });
|
|
158
161
|
|
|
159
162
|
const user = userEvent.setup();
|
|
160
163
|
|
|
@@ -226,7 +229,7 @@ describe('Transformer functions', () => {
|
|
|
226
229
|
extraParams: { onCollapse }
|
|
227
230
|
};
|
|
228
231
|
const returnedData = collapsible('', { rowIndex: 0, rowData, column });
|
|
229
|
-
expect(returnedData).toMatchObject({ className:
|
|
232
|
+
expect(returnedData).toMatchObject({ className: tableStyles.tableToggle });
|
|
230
233
|
|
|
231
234
|
const user = userEvent.setup();
|
|
232
235
|
|
|
@@ -332,7 +335,7 @@ describe('Transformer functions', () => {
|
|
|
332
335
|
extraParams: { onRowEdit }
|
|
333
336
|
};
|
|
334
337
|
const returned = editable('test', { rowIndex: 0, column });
|
|
335
|
-
expect(returned).toMatchObject({ className:
|
|
338
|
+
expect(returned).toMatchObject({ className: tableStyles.tableInlineEditAction });
|
|
336
339
|
});
|
|
337
340
|
|
|
338
341
|
describe('visibility classNames', () => {
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import {
|
|
3
|
+
Avatar,
|
|
4
|
+
Brand,
|
|
5
|
+
Button,
|
|
6
|
+
ButtonVariant,
|
|
7
|
+
Divider,
|
|
8
|
+
Dropdown,
|
|
9
|
+
DropdownGroup,
|
|
10
|
+
DropdownItem,
|
|
11
|
+
DropdownList,
|
|
12
|
+
Masthead,
|
|
13
|
+
MastheadMain,
|
|
14
|
+
MastheadToggle,
|
|
15
|
+
MastheadBrand,
|
|
16
|
+
MastheadLogo,
|
|
17
|
+
MastheadContent,
|
|
18
|
+
MenuToggle,
|
|
19
|
+
Toolbar,
|
|
20
|
+
ToolbarContent,
|
|
21
|
+
ToolbarGroup,
|
|
22
|
+
ToolbarItem,
|
|
23
|
+
PageToggleButton
|
|
24
|
+
} from '@patternfly/react-core';
|
|
25
|
+
import BarsIcon from '@patternfly/react-icons/dist/esm/icons/bars-icon';
|
|
26
|
+
import CogIcon from '@patternfly/react-icons/dist/esm/icons/cog-icon';
|
|
27
|
+
import HelpIcon from '@patternfly/react-icons/dist/esm/icons/help-icon';
|
|
28
|
+
import QuestionCircleIcon from '@patternfly/react-icons/dist/esm/icons/question-circle-icon';
|
|
29
|
+
import BellIcon from '@patternfly/react-icons/dist/esm/icons/bell-icon';
|
|
30
|
+
import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
|
|
31
|
+
import imgAvatar from '@patternfly/react-table/src/demos/assets/avatarImg.svg';
|
|
32
|
+
import pfLogo from '@patternfly/react-table/src/demos/assets/pf-logo.svg';
|
|
33
|
+
|
|
34
|
+
interface DashboardHeaderProps {
|
|
35
|
+
/** Render custom notification badge */
|
|
36
|
+
notificationBadge?: React.ReactNode;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export const DashboardHeader: React.FC<DashboardHeaderProps> = ({ notificationBadge }) => {
|
|
40
|
+
const [isDropdownOpen, setIsDropdownOpen] = useState(false);
|
|
41
|
+
const [isKebabDropdownOpen, setIsKebabDropdownOpen] = useState(false);
|
|
42
|
+
const [isFullKebabDropdownOpen, setIsFullKebabDropdownOpen] = useState(false);
|
|
43
|
+
|
|
44
|
+
const kebabDropdownItems = (
|
|
45
|
+
<>
|
|
46
|
+
<DropdownItem>
|
|
47
|
+
<CogIcon /> Settings
|
|
48
|
+
</DropdownItem>
|
|
49
|
+
<DropdownItem>
|
|
50
|
+
<HelpIcon /> Help
|
|
51
|
+
</DropdownItem>
|
|
52
|
+
</>
|
|
53
|
+
);
|
|
54
|
+
|
|
55
|
+
const userDropdownItems = (
|
|
56
|
+
<>
|
|
57
|
+
<DropdownItem key="group 2 profile">My profile</DropdownItem>
|
|
58
|
+
<DropdownItem key="group 2 user">User management</DropdownItem>
|
|
59
|
+
<DropdownItem key="group 2 logout">Logout</DropdownItem>
|
|
60
|
+
</>
|
|
61
|
+
);
|
|
62
|
+
|
|
63
|
+
const onDropdownToggle = () => {
|
|
64
|
+
setIsDropdownOpen(!isDropdownOpen);
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
const onDropdownSelect = () => {
|
|
68
|
+
setIsDropdownOpen(false);
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
const onKebabDropdownToggle = () => {
|
|
72
|
+
setIsKebabDropdownOpen(!isKebabDropdownOpen);
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
const onKebabDropdownSelect = () => {
|
|
76
|
+
setIsKebabDropdownOpen(false);
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
const onFullKebabToggle = () => {
|
|
80
|
+
setIsFullKebabDropdownOpen(!isFullKebabDropdownOpen);
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
const onFullKebabSelect = () => {
|
|
84
|
+
setIsFullKebabDropdownOpen(false);
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
return (
|
|
88
|
+
<Masthead>
|
|
89
|
+
<MastheadMain>
|
|
90
|
+
<MastheadToggle>
|
|
91
|
+
<PageToggleButton variant="plain" aria-label="Global navigation">
|
|
92
|
+
<BarsIcon />
|
|
93
|
+
</PageToggleButton>
|
|
94
|
+
</MastheadToggle>
|
|
95
|
+
<MastheadBrand>
|
|
96
|
+
<MastheadLogo>
|
|
97
|
+
<Brand src={pfLogo} alt="PatternFly" heights={{ default: '36px' }} />
|
|
98
|
+
</MastheadLogo>
|
|
99
|
+
</MastheadBrand>
|
|
100
|
+
</MastheadMain>
|
|
101
|
+
<MastheadContent>
|
|
102
|
+
<Toolbar id="toolbar" isFullHeight isStatic>
|
|
103
|
+
<ToolbarContent>
|
|
104
|
+
<ToolbarGroup
|
|
105
|
+
variant="action-group-plain"
|
|
106
|
+
align={{ default: 'alignEnd' }}
|
|
107
|
+
gap={{ default: 'gapNone', md: 'gapMd' }}
|
|
108
|
+
>
|
|
109
|
+
{notificationBadge ?? (
|
|
110
|
+
<ToolbarItem>
|
|
111
|
+
<Button
|
|
112
|
+
aria-label="Notifications"
|
|
113
|
+
variant={ButtonVariant.plain}
|
|
114
|
+
icon={<BellIcon />}
|
|
115
|
+
onClick={() => {}}
|
|
116
|
+
/>
|
|
117
|
+
</ToolbarItem>
|
|
118
|
+
)}
|
|
119
|
+
<ToolbarGroup variant="action-group-plain" visibility={{ default: 'hidden', lg: 'visible' }}>
|
|
120
|
+
<ToolbarItem>
|
|
121
|
+
<Button aria-label="Settings" variant={ButtonVariant.plain} icon={<CogIcon />} />
|
|
122
|
+
</ToolbarItem>
|
|
123
|
+
<ToolbarItem>
|
|
124
|
+
<Button aria-label="Help" variant={ButtonVariant.plain} icon={<QuestionCircleIcon />} />
|
|
125
|
+
</ToolbarItem>
|
|
126
|
+
</ToolbarGroup>
|
|
127
|
+
<ToolbarItem visibility={{ default: 'hidden', md: 'visible', lg: 'hidden' }}>
|
|
128
|
+
<Dropdown
|
|
129
|
+
isOpen={isKebabDropdownOpen}
|
|
130
|
+
onSelect={onKebabDropdownSelect}
|
|
131
|
+
onOpenChange={setIsKebabDropdownOpen}
|
|
132
|
+
popperProps={{ position: 'right' }}
|
|
133
|
+
toggle={(toggleRef: React.RefObject<any>) => (
|
|
134
|
+
<MenuToggle
|
|
135
|
+
ref={toggleRef}
|
|
136
|
+
isExpanded={isKebabDropdownOpen}
|
|
137
|
+
onClick={onKebabDropdownToggle}
|
|
138
|
+
variant="plain"
|
|
139
|
+
aria-label="Settings and help"
|
|
140
|
+
>
|
|
141
|
+
<EllipsisVIcon aria-hidden="true" />
|
|
142
|
+
</MenuToggle>
|
|
143
|
+
)}
|
|
144
|
+
>
|
|
145
|
+
<DropdownList>{kebabDropdownItems}</DropdownList>
|
|
146
|
+
</Dropdown>
|
|
147
|
+
</ToolbarItem>
|
|
148
|
+
<ToolbarItem visibility={{ md: 'hidden' }}>
|
|
149
|
+
<Dropdown
|
|
150
|
+
isOpen={isFullKebabDropdownOpen}
|
|
151
|
+
onSelect={onFullKebabSelect}
|
|
152
|
+
onOpenChange={setIsFullKebabDropdownOpen}
|
|
153
|
+
popperProps={{ position: 'right' }}
|
|
154
|
+
toggle={(toggleRef: React.RefObject<any>) => (
|
|
155
|
+
<MenuToggle
|
|
156
|
+
ref={toggleRef}
|
|
157
|
+
isExpanded={isFullKebabDropdownOpen}
|
|
158
|
+
onClick={onFullKebabToggle}
|
|
159
|
+
variant="plain"
|
|
160
|
+
aria-label="Toolbar menu"
|
|
161
|
+
>
|
|
162
|
+
<EllipsisVIcon aria-hidden="true" />
|
|
163
|
+
</MenuToggle>
|
|
164
|
+
)}
|
|
165
|
+
>
|
|
166
|
+
<DropdownGroup key="group 2" aria-label="User actions">
|
|
167
|
+
<DropdownList>{userDropdownItems}</DropdownList>
|
|
168
|
+
</DropdownGroup>
|
|
169
|
+
<Divider />
|
|
170
|
+
<DropdownList>{kebabDropdownItems}</DropdownList>
|
|
171
|
+
</Dropdown>
|
|
172
|
+
</ToolbarItem>
|
|
173
|
+
</ToolbarGroup>
|
|
174
|
+
<ToolbarItem visibility={{ default: 'hidden', md: 'visible' }}>
|
|
175
|
+
<Dropdown
|
|
176
|
+
isOpen={isDropdownOpen}
|
|
177
|
+
onSelect={onDropdownSelect}
|
|
178
|
+
onOpenChange={setIsDropdownOpen}
|
|
179
|
+
popperProps={{ position: 'right' }}
|
|
180
|
+
toggle={(toggleRef: React.RefObject<any>) => (
|
|
181
|
+
<MenuToggle
|
|
182
|
+
ref={toggleRef}
|
|
183
|
+
isExpanded={isDropdownOpen}
|
|
184
|
+
onClick={onDropdownToggle}
|
|
185
|
+
icon={<Avatar src={imgAvatar} alt="" />}
|
|
186
|
+
isFullHeight
|
|
187
|
+
>
|
|
188
|
+
Ned Username
|
|
189
|
+
</MenuToggle>
|
|
190
|
+
)}
|
|
191
|
+
>
|
|
192
|
+
<DropdownList>{userDropdownItems}</DropdownList>
|
|
193
|
+
</Dropdown>
|
|
194
|
+
</ToolbarItem>
|
|
195
|
+
</ToolbarContent>
|
|
196
|
+
</Toolbar>
|
|
197
|
+
</MastheadContent>
|
|
198
|
+
</Masthead>
|
|
199
|
+
);
|
|
200
|
+
};
|
|
201
|
+
DashboardHeader.displayName = 'DashboardHeader';
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import {
|
|
3
|
+
Breadcrumb,
|
|
4
|
+
BreadcrumbItem,
|
|
5
|
+
Content,
|
|
6
|
+
Nav,
|
|
7
|
+
NavItem,
|
|
8
|
+
NavList,
|
|
9
|
+
Page,
|
|
10
|
+
PageSection,
|
|
11
|
+
PageSidebar,
|
|
12
|
+
PageSidebarBody,
|
|
13
|
+
SkipToContent
|
|
14
|
+
} from '@patternfly/react-core';
|
|
15
|
+
import { DashboardHeader } from './DashboardHeader';
|
|
16
|
+
|
|
17
|
+
interface DashboardWrapperProps {
|
|
18
|
+
/** Programmatically manage if the sidebar nav is shown */
|
|
19
|
+
sidebarNavOpen?: boolean;
|
|
20
|
+
/** Flag to render sample breadcrumb if custom breadcrumb not passed */
|
|
21
|
+
hasDefaultBreadcrumb?: boolean;
|
|
22
|
+
/** Flag to render sample page title if custom title not passed */
|
|
23
|
+
hasPageTemplateTitle?: boolean;
|
|
24
|
+
/** Content rendered inside the main section of the page layout (e.g. <PageSection />) */
|
|
25
|
+
children?: React.ReactNode;
|
|
26
|
+
/** Additional classes added to the page layout */
|
|
27
|
+
className?: string;
|
|
28
|
+
/** Masthead component (e.g. <Masthead />) */
|
|
29
|
+
masthead?: React.ReactNode;
|
|
30
|
+
/** Sidebar component for a side nav (e.g. <PageSidebar />) */
|
|
31
|
+
sidebar?: React.ReactNode;
|
|
32
|
+
/** Notification drawer component for an optional notification drawer (e.g. <NotificationDrawer />) */
|
|
33
|
+
notificationDrawer?: React.ReactNode;
|
|
34
|
+
/** Flag indicating Notification drawer in expanded */
|
|
35
|
+
isNotificationDrawerExpanded?: boolean;
|
|
36
|
+
/** Flag indicating if breadcrumb width should be limited */
|
|
37
|
+
isBreadcrumbWidthLimited?: boolean;
|
|
38
|
+
/** Callback when notification drawer panel is finished expanding. */
|
|
39
|
+
onNotificationDrawerExpand?: (event: KeyboardEvent | React.MouseEvent | React.TransitionEvent) => void;
|
|
40
|
+
/** Skip to content component for the page */
|
|
41
|
+
skipToContent?: React.ReactElement;
|
|
42
|
+
/** Sets the value for role on the <main> element */
|
|
43
|
+
role?: string;
|
|
44
|
+
/** an id to use for the [role="main"] element */
|
|
45
|
+
mainContainerId?: string;
|
|
46
|
+
/** tabIndex to use for the [role="main"] element, null to unset it */
|
|
47
|
+
mainTabIndex?: number | null;
|
|
48
|
+
/**
|
|
49
|
+
* If true, manages the sidebar open/close state and there is no need to pass the isSidebarOpen boolean into
|
|
50
|
+
* the sidebar component or add a callback onSidebarToggle function into the Masthead component
|
|
51
|
+
*/
|
|
52
|
+
isManagedSidebar?: boolean;
|
|
53
|
+
/** Flag indicating if tertiary nav width should be limited */
|
|
54
|
+
isTertiaryNavWidthLimited?: boolean;
|
|
55
|
+
/**
|
|
56
|
+
* If true, the managed sidebar is initially open for desktop view
|
|
57
|
+
*/
|
|
58
|
+
defaultManagedSidebarIsOpen?: boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Can add callback to be notified when resize occurs, for example to set the sidebar isSidebarOpen prop to false for a width < 768px
|
|
61
|
+
* Returns object { mobileView: boolean, windowSize: number }
|
|
62
|
+
*/
|
|
63
|
+
onPageResize?: ((event: MouseEvent | TouchEvent | React.KeyboardEvent, object: any) => void) | null;
|
|
64
|
+
/**
|
|
65
|
+
* The page resize observer uses the breakpoints returned from this function when adding the pf-m-breakpoint-[default|sm|md|lg|xl|2xl] class
|
|
66
|
+
* You can override the default getBreakpoint function to return breakpoints at different sizes than the default
|
|
67
|
+
* You can view the default getBreakpoint function here:
|
|
68
|
+
* https://github.com/patternfly/patternfly-react/blob/main/packages/react-core/src/helpers/util.ts
|
|
69
|
+
*/
|
|
70
|
+
getBreakpoint?: (width: number | null) => 'default' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
|
|
71
|
+
/**
|
|
72
|
+
* The page resize observer uses the breakpoints returned from this function when adding the pf-m-breakpoint-[default|sm|md|lg|xl|2xl] class
|
|
73
|
+
* You can override the default getVerticalBreakpoint function to return breakpoints at different sizes than the default
|
|
74
|
+
* You can view the default getVerticalBreakpoint function here:
|
|
75
|
+
* https://github.com/patternfly/patternfly-react/blob/main/packages/react-core/src/helpers/util.ts
|
|
76
|
+
*/
|
|
77
|
+
getVerticalBreakpoint?: (height: number | null) => 'default' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
|
|
78
|
+
/** Breadcrumb component for the page */
|
|
79
|
+
breadcrumb?: React.ReactNode;
|
|
80
|
+
/** Tertiary nav component for the page */
|
|
81
|
+
tertiaryNav?: React.ReactNode;
|
|
82
|
+
/** Accessible label, can be used to name main section */
|
|
83
|
+
mainAriaLabel?: string;
|
|
84
|
+
/** Flag indicating if the tertiaryNav should be in a group */
|
|
85
|
+
isTertiaryNavGrouped?: boolean;
|
|
86
|
+
/** Flag indicating if the breadcrumb should be in a group */
|
|
87
|
+
isBreadcrumbGrouped?: boolean;
|
|
88
|
+
/** Additional content of the group */
|
|
89
|
+
additionalGroupedContent?: React.ReactNode;
|
|
90
|
+
/** HTML component used as main component of the page. Defaults to 'main', only pass in 'div' if another 'main' element already exists. */
|
|
91
|
+
mainComponent?: 'main' | 'div';
|
|
92
|
+
/** Additional props of the group */
|
|
93
|
+
groupProps?: any;
|
|
94
|
+
/** Additional props of the breadcrumb */
|
|
95
|
+
breadcrumbProps?: any;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export const DashboardBreadcrumb = (
|
|
99
|
+
<Breadcrumb>
|
|
100
|
+
<BreadcrumbItem>Section home</BreadcrumbItem>
|
|
101
|
+
<BreadcrumbItem to="#">Section title</BreadcrumbItem>
|
|
102
|
+
<BreadcrumbItem to="#">Section title</BreadcrumbItem>
|
|
103
|
+
<BreadcrumbItem to="#" isActive>
|
|
104
|
+
Section landing
|
|
105
|
+
</BreadcrumbItem>
|
|
106
|
+
</Breadcrumb>
|
|
107
|
+
);
|
|
108
|
+
|
|
109
|
+
const PageTemplateTitle = (
|
|
110
|
+
<PageSection>
|
|
111
|
+
<Content>
|
|
112
|
+
<h1>Main title</h1>
|
|
113
|
+
<p>This is a full page demo.</p>
|
|
114
|
+
</Content>
|
|
115
|
+
</PageSection>
|
|
116
|
+
);
|
|
117
|
+
|
|
118
|
+
export const DashboardWrapper: React.FC<DashboardWrapperProps> = ({
|
|
119
|
+
children,
|
|
120
|
+
mainContainerId,
|
|
121
|
+
breadcrumb,
|
|
122
|
+
masthead,
|
|
123
|
+
sidebar,
|
|
124
|
+
sidebarNavOpen,
|
|
125
|
+
onPageResize,
|
|
126
|
+
hasDefaultBreadcrumb,
|
|
127
|
+
notificationDrawer,
|
|
128
|
+
isNotificationDrawerExpanded,
|
|
129
|
+
hasPageTemplateTitle,
|
|
130
|
+
...pageProps
|
|
131
|
+
}: DashboardWrapperProps) => {
|
|
132
|
+
const [activeItem, setActiveItem] = useState(1);
|
|
133
|
+
|
|
134
|
+
const onNavSelect = (_event: React.FormEvent<HTMLInputElement>, result: any) => {
|
|
135
|
+
setActiveItem(result.itemId);
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
let renderedBreadcrumb;
|
|
139
|
+
if (!hasDefaultBreadcrumb) {
|
|
140
|
+
renderedBreadcrumb = breadcrumb ?? DashboardBreadcrumb;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
const PageNav = (
|
|
144
|
+
<Nav onSelect={onNavSelect} aria-label="Nav">
|
|
145
|
+
<NavList>
|
|
146
|
+
<NavItem itemId={0} isActive={activeItem === 0} to="#system-panel">
|
|
147
|
+
System panel
|
|
148
|
+
</NavItem>
|
|
149
|
+
<NavItem itemId={1} isActive={activeItem === 1} to="#policy">
|
|
150
|
+
Policy
|
|
151
|
+
</NavItem>
|
|
152
|
+
<NavItem itemId={2} isActive={activeItem === 2} to="#auth">
|
|
153
|
+
Authentication
|
|
154
|
+
</NavItem>
|
|
155
|
+
<NavItem itemId={3} isActive={activeItem === 3} to="#network">
|
|
156
|
+
Network services
|
|
157
|
+
</NavItem>
|
|
158
|
+
<NavItem itemId={4} isActive={activeItem === 4} to="#server">
|
|
159
|
+
Server
|
|
160
|
+
</NavItem>
|
|
161
|
+
</NavList>
|
|
162
|
+
</Nav>
|
|
163
|
+
);
|
|
164
|
+
|
|
165
|
+
const _sidebar = (
|
|
166
|
+
<PageSidebar isSidebarOpen={sidebarNavOpen || false}>
|
|
167
|
+
<PageSidebarBody>{PageNav}</PageSidebarBody>
|
|
168
|
+
</PageSidebar>
|
|
169
|
+
);
|
|
170
|
+
|
|
171
|
+
const PageSkipToContent = (
|
|
172
|
+
<SkipToContent href={`#${mainContainerId ?? 'main-content-page-layout-default-nav'}`}>
|
|
173
|
+
Skip to content
|
|
174
|
+
</SkipToContent>
|
|
175
|
+
);
|
|
176
|
+
|
|
177
|
+
return (
|
|
178
|
+
<Page
|
|
179
|
+
masthead={masthead ?? <DashboardHeader />}
|
|
180
|
+
sidebar={sidebar ?? _sidebar}
|
|
181
|
+
isManagedSidebar
|
|
182
|
+
skipToContent={PageSkipToContent}
|
|
183
|
+
breadcrumb={renderedBreadcrumb}
|
|
184
|
+
mainContainerId={mainContainerId ?? 'main-content-page-layout-default-nav'}
|
|
185
|
+
notificationDrawer={notificationDrawer}
|
|
186
|
+
isNotificationDrawerExpanded={isNotificationDrawerExpanded}
|
|
187
|
+
{...(typeof onPageResize === 'function' && {
|
|
188
|
+
onPageResize: (event: MouseEvent | TouchEvent | React.KeyboardEvent<Element>, resizeObject: any) =>
|
|
189
|
+
onPageResize(event, resizeObject)
|
|
190
|
+
})}
|
|
191
|
+
{...pageProps}
|
|
192
|
+
>
|
|
193
|
+
{hasPageTemplateTitle && PageTemplateTitle}
|
|
194
|
+
{children}
|
|
195
|
+
</Page>
|
|
196
|
+
);
|
|
197
|
+
};
|
|
198
|
+
DashboardWrapper.displayName = 'DashboardWrapper';
|