@patternfly/react-table 6.0.0-alpha.1 → 6.0.0-alpha.11

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.
Files changed (268) hide show
  1. package/CHANGELOG.md +290 -0
  2. package/README.md +2 -2
  3. package/components/package.json +1 -1
  4. package/deprecated/package.json +1 -1
  5. package/dist/dynamic/components/Table/package.json +1 -1
  6. package/dist/dynamic/components/Table/utils/decorators/package.json +1 -1
  7. package/dist/dynamic/components/Table/utils/package.json +1 -1
  8. package/dist/dynamic/deprecated/components/Table/base/package.json +1 -1
  9. package/dist/dynamic/deprecated/components/Table/package.json +1 -1
  10. package/dist/dynamic/deprecated/components/package.json +1 -1
  11. package/dist/esm/components/Table/ActionsColumn.d.ts +1 -1
  12. package/dist/esm/components/Table/ActionsColumn.d.ts.map +1 -1
  13. package/dist/esm/components/Table/Caption.js +1 -1
  14. package/dist/esm/components/Table/Caption.js.map +1 -1
  15. package/dist/esm/components/Table/CollapseColumn.js +1 -1
  16. package/dist/esm/components/Table/CollapseColumn.js.map +1 -1
  17. package/dist/esm/components/Table/DraggableRowWrapper.js +2 -2
  18. package/dist/esm/components/Table/DraggableRowWrapper.js.map +1 -1
  19. package/dist/esm/components/Table/EditColumn.js +1 -1
  20. package/dist/esm/components/Table/EditColumn.js.map +1 -1
  21. package/dist/esm/components/Table/EditableSelectInputCell.js +3 -3
  22. package/dist/esm/components/Table/EditableSelectInputCell.js.map +1 -1
  23. package/dist/esm/components/Table/EditableTextCell.js +3 -3
  24. package/dist/esm/components/Table/EditableTextCell.js.map +1 -1
  25. package/dist/esm/components/Table/ExpandableRowContent.js +1 -1
  26. package/dist/esm/components/Table/ExpandableRowContent.js.map +1 -1
  27. package/dist/esm/components/Table/HeaderCellInfoWrapper.js +1 -1
  28. package/dist/esm/components/Table/HeaderCellInfoWrapper.js.map +1 -1
  29. package/dist/esm/components/Table/InnerScrollContainer.js +1 -1
  30. package/dist/esm/components/Table/InnerScrollContainer.js.map +1 -1
  31. package/dist/esm/components/Table/OuterScrollContainer.js +1 -1
  32. package/dist/esm/components/Table/OuterScrollContainer.js.map +1 -1
  33. package/dist/esm/components/Table/RowWrapper.d.ts +1 -1
  34. package/dist/esm/components/Table/SelectColumn.d.ts +5 -0
  35. package/dist/esm/components/Table/SelectColumn.d.ts.map +1 -1
  36. package/dist/esm/components/Table/SelectColumn.js +6 -3
  37. package/dist/esm/components/Table/SelectColumn.js.map +1 -1
  38. package/dist/esm/components/Table/SortColumn.d.ts +4 -0
  39. package/dist/esm/components/Table/SortColumn.d.ts.map +1 -1
  40. package/dist/esm/components/Table/SortColumn.js +3 -3
  41. package/dist/esm/components/Table/SortColumn.js.map +1 -1
  42. package/dist/esm/components/Table/Table.d.ts +1 -1
  43. package/dist/esm/components/Table/Table.d.ts.map +1 -1
  44. package/dist/esm/components/Table/Table.js +5 -5
  45. package/dist/esm/components/Table/Table.js.map +1 -1
  46. package/dist/esm/components/Table/TableText.d.ts +3 -1
  47. package/dist/esm/components/Table/TableText.d.ts.map +1 -1
  48. package/dist/esm/components/Table/TableText.js +13 -11
  49. package/dist/esm/components/Table/TableText.js.map +1 -1
  50. package/dist/esm/components/Table/TableTypes.d.ts +3 -0
  51. package/dist/esm/components/Table/TableTypes.d.ts.map +1 -1
  52. package/dist/esm/components/Table/Tbody.d.ts +1 -1
  53. package/dist/esm/components/Table/Tbody.d.ts.map +1 -1
  54. package/dist/esm/components/Table/Tbody.js +1 -1
  55. package/dist/esm/components/Table/Tbody.js.map +1 -1
  56. package/dist/esm/components/Table/Td.d.ts +1 -1
  57. package/dist/esm/components/Table/Td.d.ts.map +1 -1
  58. package/dist/esm/components/Table/Td.js +9 -5
  59. package/dist/esm/components/Table/Td.js.map +1 -1
  60. package/dist/esm/components/Table/Th.d.ts +4 -1
  61. package/dist/esm/components/Table/Th.d.ts.map +1 -1
  62. package/dist/esm/components/Table/Th.js +20 -10
  63. package/dist/esm/components/Table/Th.js.map +1 -1
  64. package/dist/esm/components/Table/Thead.d.ts +1 -1
  65. package/dist/esm/components/Table/Thead.d.ts.map +1 -1
  66. package/dist/esm/components/Table/Thead.js +1 -1
  67. package/dist/esm/components/Table/Thead.js.map +1 -1
  68. package/dist/esm/components/Table/Tr.d.ts +2 -2
  69. package/dist/esm/components/Table/Tr.d.ts.map +1 -1
  70. package/dist/esm/components/Table/Tr.js +2 -2
  71. package/dist/esm/components/Table/Tr.js.map +1 -1
  72. package/dist/esm/components/Table/TreeRowWrapper.js +2 -2
  73. package/dist/esm/components/Table/TreeRowWrapper.js.map +1 -1
  74. package/dist/esm/components/Table/base/provider.d.ts +8 -8
  75. package/dist/esm/components/Table/base/types.d.ts +7 -7
  76. package/dist/esm/components/Table/utils/decorators/cellActions.js +1 -1
  77. package/dist/esm/components/Table/utils/decorators/cellActions.js.map +1 -1
  78. package/dist/esm/components/Table/utils/decorators/cellWidth.js +1 -1
  79. package/dist/esm/components/Table/utils/decorators/cellWidth.js.map +1 -1
  80. package/dist/esm/components/Table/utils/decorators/classNames.js +1 -1
  81. package/dist/esm/components/Table/utils/decorators/classNames.js.map +1 -1
  82. package/dist/esm/components/Table/utils/decorators/collapsible.js +1 -1
  83. package/dist/esm/components/Table/utils/decorators/collapsible.js.map +1 -1
  84. package/dist/esm/components/Table/utils/decorators/compoundExpand.js +1 -1
  85. package/dist/esm/components/Table/utils/decorators/compoundExpand.js.map +1 -1
  86. package/dist/esm/components/Table/utils/decorators/editable.js +1 -1
  87. package/dist/esm/components/Table/utils/decorators/editable.js.map +1 -1
  88. package/dist/esm/components/Table/utils/decorators/favoritable.js +1 -1
  89. package/dist/esm/components/Table/utils/decorators/favoritable.js.map +1 -1
  90. package/dist/esm/components/Table/utils/decorators/info.js +1 -1
  91. package/dist/esm/components/Table/utils/decorators/info.js.map +1 -1
  92. package/dist/esm/components/Table/utils/decorators/selectable.d.ts.map +1 -1
  93. package/dist/esm/components/Table/utils/decorators/selectable.js +4 -4
  94. package/dist/esm/components/Table/utils/decorators/selectable.js.map +1 -1
  95. package/dist/esm/components/Table/utils/decorators/sortable.d.ts.map +1 -1
  96. package/dist/esm/components/Table/utils/decorators/sortable.js +7 -4
  97. package/dist/esm/components/Table/utils/decorators/sortable.js.map +1 -1
  98. package/dist/esm/components/Table/utils/decorators/treeRow.d.ts +3 -3
  99. package/dist/esm/components/Table/utils/decorators/treeRow.d.ts.map +1 -1
  100. package/dist/esm/components/Table/utils/decorators/treeRow.js +5 -5
  101. package/dist/esm/components/Table/utils/decorators/treeRow.js.map +1 -1
  102. package/dist/esm/components/Table/utils/decorators/wrappable.js +1 -1
  103. package/dist/esm/components/Table/utils/decorators/wrappable.js.map +1 -1
  104. package/dist/esm/demos/index.d.ts +2 -0
  105. package/dist/esm/demos/index.d.ts.map +1 -0
  106. package/dist/esm/demos/index.js +2 -0
  107. package/dist/esm/demos/index.js.map +1 -0
  108. package/dist/esm/demos/sampleData.d.ts +13 -0
  109. package/dist/esm/demos/sampleData.d.ts.map +1 -0
  110. package/dist/esm/demos/sampleData.js +764 -0
  111. package/dist/esm/demos/sampleData.js.map +1 -0
  112. package/dist/esm/deprecated/components/Table/Body.d.ts +1 -1
  113. package/dist/esm/deprecated/components/Table/Body.d.ts.map +1 -1
  114. package/dist/esm/deprecated/components/Table/Table.d.ts +1 -1
  115. package/dist/esm/deprecated/components/Table/Table.js +1 -1
  116. package/dist/esm/deprecated/components/Table/Table.js.map +1 -1
  117. package/dist/esm/deprecated/components/Table/base/body.d.ts +8 -2
  118. package/dist/esm/deprecated/components/Table/base/body.d.ts.map +1 -1
  119. package/dist/esm/deprecated/components/Table/base/header.d.ts +1 -1
  120. package/dist/esm/deprecated/components/Table/base/header.d.ts.map +1 -1
  121. package/dist/esm/index.d.ts +1 -0
  122. package/dist/esm/index.d.ts.map +1 -1
  123. package/dist/esm/index.js +1 -0
  124. package/dist/esm/index.js.map +1 -1
  125. package/dist/js/components/Table/ActionsColumn.d.ts +1 -1
  126. package/dist/js/components/Table/ActionsColumn.d.ts.map +1 -1
  127. package/dist/js/components/Table/ActionsColumn.js +6 -6
  128. package/dist/js/components/Table/ActionsColumn.js.map +1 -1
  129. package/dist/js/components/Table/CollapseColumn.js +2 -2
  130. package/dist/js/components/Table/CollapseColumn.js.map +1 -1
  131. package/dist/js/components/Table/DraggableCell.js +2 -2
  132. package/dist/js/components/Table/DraggableCell.js.map +1 -1
  133. package/dist/js/components/Table/EditColumn.js +4 -4
  134. package/dist/js/components/Table/EditColumn.js.map +1 -1
  135. package/dist/js/components/Table/EditableSelectInputCell.js +2 -2
  136. package/dist/js/components/Table/EditableSelectInputCell.js.map +1 -1
  137. package/dist/js/components/Table/EditableTextCell.js +2 -2
  138. package/dist/js/components/Table/EditableTextCell.js.map +1 -1
  139. package/dist/js/components/Table/FavoritesCell.js +2 -2
  140. package/dist/js/components/Table/FavoritesCell.js.map +1 -1
  141. package/dist/js/components/Table/HeaderCellInfoWrapper.js +4 -4
  142. package/dist/js/components/Table/HeaderCellInfoWrapper.js.map +1 -1
  143. package/dist/js/components/Table/RowWrapper.d.ts +1 -1
  144. package/dist/js/components/Table/RowWrapper.js +2 -1
  145. package/dist/js/components/Table/RowWrapper.js.map +1 -1
  146. package/dist/js/components/Table/SelectColumn.d.ts +5 -0
  147. package/dist/js/components/Table/SelectColumn.d.ts.map +1 -1
  148. package/dist/js/components/Table/SelectColumn.js +6 -3
  149. package/dist/js/components/Table/SelectColumn.js.map +1 -1
  150. package/dist/js/components/Table/SortColumn.d.ts +4 -0
  151. package/dist/js/components/Table/SortColumn.d.ts.map +1 -1
  152. package/dist/js/components/Table/SortColumn.js +6 -5
  153. package/dist/js/components/Table/SortColumn.js.map +1 -1
  154. package/dist/js/components/Table/Table.d.ts +1 -1
  155. package/dist/js/components/Table/Table.d.ts.map +1 -1
  156. package/dist/js/components/Table/Table.js +2 -2
  157. package/dist/js/components/Table/Table.js.map +1 -1
  158. package/dist/js/components/Table/TableText.d.ts +3 -1
  159. package/dist/js/components/Table/TableText.d.ts.map +1 -1
  160. package/dist/js/components/Table/TableText.js +13 -11
  161. package/dist/js/components/Table/TableText.js.map +1 -1
  162. package/dist/js/components/Table/TableTypes.d.ts +3 -0
  163. package/dist/js/components/Table/TableTypes.d.ts.map +1 -1
  164. package/dist/js/components/Table/TableTypes.js +4 -0
  165. package/dist/js/components/Table/TableTypes.js.map +1 -1
  166. package/dist/js/components/Table/Tbody.d.ts +1 -1
  167. package/dist/js/components/Table/Tbody.d.ts.map +1 -1
  168. package/dist/js/components/Table/Td.d.ts +1 -1
  169. package/dist/js/components/Table/Td.d.ts.map +1 -1
  170. package/dist/js/components/Table/Td.js +8 -4
  171. package/dist/js/components/Table/Td.js.map +1 -1
  172. package/dist/js/components/Table/Th.d.ts +4 -1
  173. package/dist/js/components/Table/Th.d.ts.map +1 -1
  174. package/dist/js/components/Table/Th.js +18 -8
  175. package/dist/js/components/Table/Th.js.map +1 -1
  176. package/dist/js/components/Table/Thead.d.ts +1 -1
  177. package/dist/js/components/Table/Thead.d.ts.map +1 -1
  178. package/dist/js/components/Table/Tr.d.ts +2 -2
  179. package/dist/js/components/Table/Tr.d.ts.map +1 -1
  180. package/dist/js/components/Table/Tr.js +1 -1
  181. package/dist/js/components/Table/Tr.js.map +1 -1
  182. package/dist/js/components/Table/base/provider.d.ts +8 -8
  183. package/dist/js/components/Table/base/types.d.ts +7 -7
  184. package/dist/js/components/Table/base/types.js +4 -0
  185. package/dist/js/components/Table/base/types.js.map +1 -1
  186. package/dist/js/components/Table/utils/decorators/selectable.d.ts.map +1 -1
  187. package/dist/js/components/Table/utils/decorators/selectable.js +2 -2
  188. package/dist/js/components/Table/utils/decorators/selectable.js.map +1 -1
  189. package/dist/js/components/Table/utils/decorators/sortable.d.ts.map +1 -1
  190. package/dist/js/components/Table/utils/decorators/sortable.js +7 -4
  191. package/dist/js/components/Table/utils/decorators/sortable.js.map +1 -1
  192. package/dist/js/components/Table/utils/decorators/treeRow.d.ts +3 -3
  193. package/dist/js/components/Table/utils/decorators/treeRow.d.ts.map +1 -1
  194. package/dist/js/components/Table/utils/decorators/treeRow.js +7 -7
  195. package/dist/js/components/Table/utils/decorators/treeRow.js.map +1 -1
  196. package/dist/js/demos/index.d.ts +2 -0
  197. package/dist/js/demos/index.d.ts.map +1 -0
  198. package/dist/js/demos/index.js +5 -0
  199. package/dist/js/demos/index.js.map +1 -0
  200. package/dist/js/demos/sampleData.d.ts +13 -0
  201. package/dist/js/demos/sampleData.d.ts.map +1 -0
  202. package/dist/js/demos/sampleData.js +767 -0
  203. package/dist/js/demos/sampleData.js.map +1 -0
  204. package/dist/js/deprecated/components/Table/Body.d.ts +1 -1
  205. package/dist/js/deprecated/components/Table/Body.d.ts.map +1 -1
  206. package/dist/js/deprecated/components/Table/BodyCell.js +4 -3
  207. package/dist/js/deprecated/components/Table/BodyCell.js.map +1 -1
  208. package/dist/js/deprecated/components/Table/Table.d.ts +1 -1
  209. package/dist/js/deprecated/components/Table/Table.js +1 -1
  210. package/dist/js/deprecated/components/Table/Table.js.map +1 -1
  211. package/dist/js/deprecated/components/Table/base/body.d.ts +8 -2
  212. package/dist/js/deprecated/components/Table/base/body.d.ts.map +1 -1
  213. package/dist/js/deprecated/components/Table/base/header.d.ts +1 -1
  214. package/dist/js/deprecated/components/Table/base/header.d.ts.map +1 -1
  215. package/dist/js/index.d.ts +1 -0
  216. package/dist/js/index.d.ts.map +1 -1
  217. package/dist/js/index.js +1 -0
  218. package/dist/js/index.js.map +1 -1
  219. package/dist/umd/react-table.min.js +9 -9
  220. package/package.json +6 -6
  221. package/src/components/Table/EditableSelectInputCell.tsx +1 -1
  222. package/src/components/Table/EditableTextCell.tsx +1 -1
  223. package/src/components/Table/SelectColumn.tsx +27 -8
  224. package/src/components/Table/SortColumn.tsx +15 -1
  225. package/src/components/Table/Table.tsx +2 -2
  226. package/src/components/Table/TableText.tsx +19 -9
  227. package/src/components/Table/TableTypes.tsx +3 -0
  228. package/src/components/Table/Td.tsx +10 -5
  229. package/src/components/Table/Th.tsx +22 -8
  230. package/src/components/Table/Tr.tsx +1 -1
  231. package/src/components/Table/examples/Table.md +3 -0
  232. package/src/components/Table/examples/TableCompoundExpandable.tsx +2 -1
  233. package/src/components/Table/examples/TableMisc.tsx +3 -1
  234. package/src/components/Table/examples/TableNestedHeaders.tsx +4 -3
  235. package/src/components/Table/examples/TableNestedStickyHeader.tsx +4 -3
  236. package/src/components/Table/examples/TableStickyColumnsAndHeader.tsx +5 -4
  237. package/src/components/Table/utils/decorators/selectable.tsx +2 -1
  238. package/src/components/Table/utils/decorators/sortable.tsx +8 -2
  239. package/src/components/Table/utils/decorators/treeRow.tsx +3 -3
  240. package/src/components/Table/utils/transformers.test.tsx +14 -8
  241. package/src/demos/Table.md +159 -0
  242. package/src/demos/examples/TableAutomaticPagination.tsx +101 -0
  243. package/src/{docs/demos/table-demos/BulkSelect.jsx → demos/examples/TableBulkSelect.tsx} +41 -20
  244. package/src/demos/examples/TableColumnManagement.tsx +486 -0
  245. package/src/demos/examples/TableColumnManagementWithDraggable.tsx +641 -0
  246. package/src/{docs/demos/table-demos/Compact.jsx → demos/examples/TableCompact.tsx} +32 -16
  247. package/src/{docs/demos/table-demos/CompoundExpansion.jsx → demos/examples/TableCompoundExpansion.tsx} +27 -13
  248. package/src/demos/examples/TableEmptyStateDefault.tsx +60 -0
  249. package/src/demos/examples/TableEmptyStateError.tsx +53 -0
  250. package/src/demos/examples/TableEmptyStateLoading.tsx +43 -0
  251. package/src/{docs/demos/table-demos/ExpandCollapseAll.jsx → demos/examples/TableExpandCollapseAll.tsx} +17 -10
  252. package/src/demos/examples/TableFilterable.tsx +394 -0
  253. package/src/{docs/demos/table-demos/SortableResponsive.jsx → demos/examples/TableSortableResponsive.tsx} +30 -28
  254. package/src/{docs/demos/table-demos/StaticBottomPagination.jsx → demos/examples/TableStaticBottomPagination.tsx} +22 -9
  255. package/src/{docs/demos/table-demos/StickyFirstColumn.jsx → demos/examples/TableStickyFirstColumn.tsx} +31 -9
  256. package/src/{docs/demos/table-demos/StickyHeader.jsx → demos/examples/TableStickyHeader.tsx} +3 -3
  257. package/src/demos/index.ts +1 -0
  258. package/src/{docs/demos/table-demos/sampleData.js → demos/sampleData.tsx} +88 -77
  259. package/src/deprecated/components/Table/__tests__/Table.test.tsx +4 -9
  260. package/src/deprecated/components/Table/__tests__/__snapshots__/Table.test.tsx.snap +8 -8
  261. package/src/deprecated/components/Table/examples/LegacyTableCompoundExpandable.tsx +4 -3
  262. package/src/deprecated/components/Table/examples/LegacyTableMisc.tsx +4 -3
  263. package/src/deprecated/components/Table/examples/LegacyTableSelectable.tsx +2 -1
  264. package/src/deprecated/components/Table/examples/LegacyTableStripedCustomTr.tsx +2 -6
  265. package/src/deprecated/components/Table/examples/Table.md +2 -0
  266. package/src/index.ts +1 -0
  267. package/src/docs/demos/Table.md +0 -1622
  268. package/src/docs/demos/table-demos/ColumnManagement.jsx +0 -471
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patternfly/react-table",
3
- "version": "6.0.0-alpha.1",
3
+ "version": "6.0.0-alpha.11",
4
4
  "description": "This library provides a set of React table components for use with the PatternFly 4",
5
5
  "main": "dist/js/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -40,10 +40,10 @@
40
40
  "subpaths": "node ../../scripts/exportSubpaths.js --config subpaths.config.json"
41
41
  },
42
42
  "dependencies": {
43
- "@patternfly/react-core": "^6.0.0-alpha.1",
44
- "@patternfly/react-icons": "^6.0.0-alpha.1",
45
- "@patternfly/react-styles": "^6.0.0-alpha.1",
46
- "@patternfly/react-tokens": "^6.0.0-alpha.1",
43
+ "@patternfly/react-core": "^6.0.0-alpha.11",
44
+ "@patternfly/react-icons": "^6.0.0-alpha.7",
45
+ "@patternfly/react-styles": "^6.0.0-alpha.7",
46
+ "@patternfly/react-tokens": "^6.0.0-alpha.7",
47
47
  "lodash": "^4.17.19",
48
48
  "tslib": "^2.5.0"
49
49
  },
@@ -55,5 +55,5 @@
55
55
  "react": "^17 || ^18",
56
56
  "react-dom": "^17 || ^18"
57
57
  },
58
- "gitHead": "abccf530a0a642a4d7b4eda6ada09c5822c855b0"
58
+ "gitHead": "325ae0434cbad9fe482fd586aafaf3235ca254f7"
59
59
  }
@@ -76,7 +76,7 @@ export const EditableSelectInputCell: React.FunctionComponent<IEditableSelectInp
76
76
  <div className={inlineStyles.inlineEditValue}>{Array.isArray(value) ? value.join(', ') : value}</div>
77
77
  <div className={inlineStyles.inlineEditInput}>
78
78
  {select}
79
- <div className={css(formStyles.formHelperText, formStyles.modifiers.error)} aria-live="polite">
79
+ <div className={css(formStyles.formHelperText)} aria-live="polite">
80
80
  {props.errorText}
81
81
  </div>
82
82
  </div>
@@ -49,7 +49,7 @@ export const EditableTextCell: React.FunctionComponent<IEditableTextCell> = ({
49
49
  }}
50
50
  aria-label={inputAriaLabel}
51
51
  />
52
- <div className={css(formStyles.formHelperText, formStyles.modifiers.error)} aria-live="polite">
52
+ <div className={css(formStyles.formHelperText)} aria-live="polite">
53
53
  {props.errorText}
54
54
  </div>
55
55
  </div>
@@ -1,4 +1,5 @@
1
1
  import * as React from 'react';
2
+ import { Tooltip, TooltipProps } from '@patternfly/react-core/dist/esm/components/Tooltip';
2
3
 
3
4
  export enum RowSelectVariant {
4
5
  radio = 'radio',
@@ -11,6 +12,10 @@ export interface SelectColumnProps {
11
12
  className?: string;
12
13
  onSelect?: (event: React.FormEvent<HTMLInputElement>) => void;
13
14
  selectVariant?: RowSelectVariant;
15
+ /** text to display on the tooltip */
16
+ tooltip?: React.ReactNode;
17
+ /** other props to pass to the tooltip */
18
+ tooltipProps?: Omit<TooltipProps, 'content'>;
14
19
  }
15
20
 
16
21
  export const SelectColumn: React.FunctionComponent<SelectColumnProps> = ({
@@ -19,13 +24,27 @@ export const SelectColumn: React.FunctionComponent<SelectColumnProps> = ({
19
24
  className,
20
25
  onSelect = null as (event: React.FormEvent<HTMLInputElement>) => void,
21
26
  selectVariant,
27
+ tooltip,
28
+ tooltipProps,
22
29
  ...props
23
- }: SelectColumnProps) => (
24
- <React.Fragment>
25
- <label>
26
- <input {...props} type={selectVariant} onChange={onSelect} />
27
- </label>
28
- {children}
29
- </React.Fragment>
30
- );
30
+ }: SelectColumnProps) => {
31
+ const inputRef = React.createRef<HTMLInputElement>();
32
+
33
+ const content = (
34
+ <React.Fragment>
35
+ <label>
36
+ <input {...props} ref={inputRef} type={selectVariant} onChange={onSelect} />
37
+ </label>
38
+ {children}
39
+ </React.Fragment>
40
+ );
41
+
42
+ return tooltip ? (
43
+ <Tooltip triggerRef={inputRef} content={tooltip} {...tooltipProps}>
44
+ {content}
45
+ </Tooltip>
46
+ ) : (
47
+ content
48
+ );
49
+ };
31
50
  SelectColumn.displayName = 'SelectColumn';
@@ -5,6 +5,7 @@ import ArrowsAltVIcon from '@patternfly/react-icons/dist/esm/icons/arrows-alt-v-
5
5
  import { css } from '@patternfly/react-styles';
6
6
  import styles from '@patternfly/react-styles/css/components/Table/table';
7
7
  import { TableText } from './TableText';
8
+ import { TooltipProps } from '@patternfly/react-core/dist/esm/components/Tooltip';
8
9
 
9
10
  export enum SortByDirection {
10
11
  asc = 'asc',
@@ -17,6 +18,9 @@ export interface SortColumnProps extends React.ButtonHTMLAttributes<HTMLButtonEl
17
18
  isSortedBy?: boolean;
18
19
  onSort?: Function;
19
20
  sortDirection?: string;
21
+ tooltip?: React.ReactNode;
22
+ tooltipProps?: Omit<TooltipProps, 'content'>;
23
+ tooltipHasDefaultBehavior?: boolean;
20
24
  }
21
25
 
22
26
  export const SortColumn: React.FunctionComponent<SortColumnProps> = ({
@@ -26,6 +30,9 @@ export const SortColumn: React.FunctionComponent<SortColumnProps> = ({
26
30
  onSort = null,
27
31
  sortDirection = '',
28
32
  type = 'button',
33
+ tooltip,
34
+ tooltipProps,
35
+ tooltipHasDefaultBehavior,
29
36
  ...props
30
37
  }: SortColumnProps) => {
31
38
  let SortedByIcon;
@@ -45,7 +52,14 @@ export const SortColumn: React.FunctionComponent<SortColumnProps> = ({
45
52
  onBlur={() => setFocused(false)}
46
53
  >
47
54
  <div className={css(className, styles.tableButtonContent)}>
48
- <TableText focused={focused}>{children}</TableText>
55
+ <TableText
56
+ tooltip={tooltip}
57
+ tooltipProps={tooltipProps}
58
+ tooltipHasDefaultBehavior={tooltipHasDefaultBehavior}
59
+ focused={focused}
60
+ >
61
+ {children}
62
+ </TableText>
49
63
  <span className={css(styles.tableSortIndicator)}>
50
64
  <SortedByIcon />
51
65
  </span>
@@ -159,8 +159,8 @@ const TableBase: React.FunctionComponent<TableProps> = ({
159
159
  const handleKeys = (event: KeyboardEvent) => {
160
160
  if (
161
161
  isNested ||
162
- !(tableRef && tableRef.current && tableRef.current.classList.contains('pf-m-tree-view')) || // implements roving tab-index to tree tables only
163
- (tableRef && tableRef.current !== (event.target as HTMLElement).closest('.pf-v5-c-table:not(.pf-m-nested)'))
162
+ !(tableRef && tableRef.current && tableRef.current.classList.contains(stylesTreeView.modifiers.treeView)) || // implements roving tab-index to tree tables only
163
+ (tableRef && tableRef.current !== (event.target as HTMLElement).closest(`.${styles.table}:not(.pf-m-nested)`))
164
164
  ) {
165
165
  return;
166
166
  }
@@ -26,13 +26,15 @@ export interface TableTextProps extends React.HTMLProps<HTMLDivElement> {
26
26
  /** Determines which wrapping modifier to apply to the table text */
27
27
  wrapModifier?: WrapModifier | 'wrap' | 'nowrap' | 'truncate' | 'breakWord' | 'fitContent';
28
28
  /** text to display on the tooltip */
29
- tooltip?: string;
29
+ tooltip?: React.ReactNode;
30
30
  /** other props to pass to the tooltip */
31
31
  tooltipProps?: Omit<TooltipProps, 'content'>;
32
32
  /** callback used to create the tooltip if text is truncated */
33
33
  onMouseEnter?: (event: any) => void;
34
34
  /** Determines if the TableText is focused by parent component */
35
35
  focused?: boolean;
36
+ /** Determines if tooltip should have normal visbility behavior. If false, the tooltip will only be shown when children is not entirely visible */
37
+ tooltipHasDefaultBehavior?: boolean;
36
38
  }
37
39
 
38
40
  export const TableText: React.FunctionComponent<TableTextProps> = ({
@@ -44,12 +46,13 @@ export const TableText: React.FunctionComponent<TableTextProps> = ({
44
46
  tooltipProps = {},
45
47
  onMouseEnter: onMouseEnterProp = () => {},
46
48
  focused = false,
49
+ tooltipHasDefaultBehavior = false,
47
50
  ...props
48
51
  }: TableTextProps) => {
49
52
  const Component: TableTextVariant | 'span' | 'div' = variant;
50
53
  const textRef = React.createRef<HTMLElement>();
51
54
 
52
- const [tooltip, setTooltip] = React.useState('');
55
+ const [tooltip, setTooltip] = React.useState(tooltipProp);
53
56
  const onMouseEnter = (event: any) => {
54
57
  if (event.target.offsetWidth < event.target.scrollWidth) {
55
58
  setTooltip(tooltipProp || event.target.innerText);
@@ -70,7 +73,7 @@ export const TableText: React.FunctionComponent<TableTextProps> = ({
70
73
  const text = (
71
74
  <Component
72
75
  ref={textRef as React.Ref<HTMLDivElement>}
73
- onMouseEnter={onMouseEnter}
76
+ onMouseEnter={!tooltipHasDefaultBehavior ? onMouseEnter : undefined}
74
77
  className={css(className, wrapModifier && styles.modifiers[wrapModifier], styles.tableText)}
75
78
  {...props}
76
79
  >
@@ -79,15 +82,22 @@ export const TableText: React.FunctionComponent<TableTextProps> = ({
79
82
  );
80
83
 
81
84
  React.useEffect(() => {
82
- if (focused) {
83
- onFocus(textRef.current);
84
- } else {
85
- setTooltip('');
85
+ if (!tooltipHasDefaultBehavior) {
86
+ if (focused) {
87
+ onFocus(textRef.current);
88
+ } else {
89
+ setTooltip('');
90
+ }
86
91
  }
87
- }, [focused]);
92
+ }, [focused, tooltipHasDefaultBehavior]);
88
93
 
89
94
  return tooltip !== '' ? (
90
- <Tooltip triggerRef={textRef} content={tooltip} isVisible {...tooltipProps}>
95
+ <Tooltip
96
+ triggerRef={textRef}
97
+ content={tooltip}
98
+ {...(!tooltipHasDefaultBehavior && { isVisible: true })}
99
+ {...tooltipProps}
100
+ >
91
101
  {text}
92
102
  </Tooltip>
93
103
  ) : (
@@ -132,6 +132,9 @@ export interface IExtra extends IExtraData {
132
132
  rowData?: IRowData;
133
133
  className?: string;
134
134
  ariaLabel?: string;
135
+ tooltip?: React.ReactNode;
136
+ tooltipProps?: Omit<TooltipProps, 'content'>;
137
+ tooltipHasDefaultBehavior?: boolean;
135
138
  }
136
139
 
137
140
  export type IFormatterValueType = formatterValueType & {
@@ -2,6 +2,7 @@ import * as React from 'react';
2
2
  import { css } from '@patternfly/react-styles';
3
3
  import styles from '@patternfly/react-styles/css/components/Table/table';
4
4
  import scrollStyles from '@patternfly/react-styles/css/components/Table/table-scrollable';
5
+ import treeViewStyles from '@patternfly/react-styles/css/components/Table/table-tree-view';
5
6
  import { BaseCellProps } from './Table';
6
7
  import {
7
8
  cellActions,
@@ -28,6 +29,10 @@ import {
28
29
  TdSelectType,
29
30
  TdTreeRowType
30
31
  } from './base/types';
32
+ import cssStickyCellMinWidth from '@patternfly/react-tokens/dist/esm/c_table__sticky_cell_MinWidth';
33
+ import cssStickyCellLeft from '@patternfly/react-tokens/dist/esm/c_table__sticky_cell_Left';
34
+ import cssStickyCellRight from '@patternfly/react-tokens/dist/esm/c_table__sticky_cell_Right';
35
+
31
36
  export interface TdProps extends BaseCellProps, Omit<React.HTMLProps<HTMLTableDataCellElement>, 'onSelect' | 'width'> {
32
37
  /**
33
38
  * The column header the cell corresponds to.
@@ -253,8 +258,8 @@ const TdBase: React.FunctionComponent<TdProps> = ({
253
258
  } = merged;
254
259
 
255
260
  const treeTableTitleCell =
256
- (className && className.includes('pf-v5-c-table__tree-view-title-cell')) ||
257
- (mergedClassName && mergedClassName.includes('pf-v5-c-table__tree-view-title-cell'));
261
+ (className && className.includes(treeViewStyles.tableTreeViewTitleCell)) ||
262
+ (mergedClassName && mergedClassName.includes(treeViewStyles.tableTreeViewTitleCell));
258
263
 
259
264
  React.useEffect(() => {
260
265
  setTruncated(
@@ -288,9 +293,9 @@ const TdBase: React.FunctionComponent<TdProps> = ({
288
293
  {...props}
289
294
  {...(isStickyColumn && {
290
295
  style: {
291
- '--pf-v5-c-table__sticky-cell--MinWidth': stickyMinWidth ? stickyMinWidth : undefined,
292
- '--pf-v5-c-table__sticky-cell--Left': stickyLeftOffset ? stickyLeftOffset : 0,
293
- '--pf-v5-c-table__sticky-cell--Right': stickyRightOffset ? stickyRightOffset : 0,
296
+ [cssStickyCellMinWidth.name]: stickyMinWidth ? stickyMinWidth : undefined,
297
+ [cssStickyCellLeft.name]: stickyLeftOffset ? stickyLeftOffset : 0,
298
+ [cssStickyCellRight.name]: stickyRightOffset ? stickyRightOffset : 0,
294
299
  ...props.style
295
300
  } as React.CSSProperties
296
301
  })}
@@ -6,9 +6,12 @@ import { info, sortable, sortableFavorites, selectable, collapsible, cellWidth,
6
6
  import { ThInfoType, ThSelectType, ThExpandType, ThSortType, formatterValueType } from './base/types';
7
7
  import { mergeProps } from './base/merge-props';
8
8
  import { IVisibility } from './utils/decorators/classNames';
9
- import { Tooltip } from '@patternfly/react-core/dist/esm/components/Tooltip/Tooltip';
9
+ import { Tooltip, TooltipProps } from '@patternfly/react-core/dist/esm/components/Tooltip';
10
10
  import { BaseCellProps } from './Table';
11
11
  import { IFormatterValueType, IColumn } from './TableTypes';
12
+ import cssStickyCellMinWidth from '@patternfly/react-tokens/dist/esm/c_table__sticky_cell_MinWidth';
13
+ import cssStickyCellLeft from '@patternfly/react-tokens/dist/esm/c_table__sticky_cell_Left';
14
+ import cssStickyCellRight from '@patternfly/react-tokens/dist/esm/c_table__sticky_cell_Right';
12
15
 
13
16
  export interface ThProps
14
17
  extends BaseCellProps,
@@ -31,6 +34,8 @@ export interface ThProps
31
34
  * To disable it completely you can set it to null.
32
35
  */
33
36
  tooltip?: React.ReactNode;
37
+ /** other props to pass to the tooltip */
38
+ tooltipProps?: Omit<TooltipProps, 'content'>;
34
39
  /** Callback on mouse enter */
35
40
  onMouseEnter?: (event: any) => void;
36
41
  /** Adds tooltip/popover info button */
@@ -65,6 +70,7 @@ const ThBase: React.FunctionComponent<ThProps> = ({
65
70
  select = null,
66
71
  expand: collapse = null,
67
72
  tooltip = '',
73
+ tooltipProps,
68
74
  onMouseEnter: onMouseEnterProp = () => {},
69
75
  width,
70
76
  visibility,
@@ -96,7 +102,9 @@ const ThBase: React.FunctionComponent<ThProps> = ({
96
102
  sortParams = sortableFavorites({
97
103
  onSort: sort?.onSort,
98
104
  columnIndex: sort.columnIndex,
99
- sortBy: sort.sortBy
105
+ sortBy: sort.sortBy,
106
+ tooltip: tooltip as string,
107
+ tooltipProps
100
108
  })();
101
109
  } else {
102
110
  sortParams = sortable(children as IFormatterValueType, {
@@ -106,7 +114,9 @@ const ThBase: React.FunctionComponent<ThProps> = ({
106
114
  sortBy: sort.sortBy,
107
115
  onSort: sort?.onSort
108
116
  }
109
- } as IColumn
117
+ } as IColumn,
118
+ tooltip: tooltip as string,
119
+ tooltipProps
110
120
  });
111
121
  }
112
122
  }
@@ -124,7 +134,9 @@ const ThBase: React.FunctionComponent<ThProps> = ({
124
134
  allRowsSelected: select.isSelected,
125
135
  isHeaderSelectDisabled: !!select.isHeaderSelectDisabled
126
136
  }
127
- }
137
+ },
138
+ tooltip: tooltip as string,
139
+ tooltipProps
128
140
  })
129
141
  : null;
130
142
  const collapseParams = collapse
@@ -193,9 +205,9 @@ const ThBase: React.FunctionComponent<ThProps> = ({
193
205
  {...props}
194
206
  {...(isStickyColumn && {
195
207
  style: {
196
- '--pf-v5-c-table__sticky-cell--MinWidth': stickyMinWidth ? stickyMinWidth : undefined,
197
- '--pf-v5-c-table__sticky-cell--Left': stickyLeftOffset ? stickyLeftOffset : 0,
198
- '--pf-v5-c-table__sticky-cell--Right': stickyRightOffset ? stickyRightOffset : 0,
208
+ [cssStickyCellMinWidth.name]: stickyMinWidth ? stickyMinWidth : undefined,
209
+ [cssStickyCellLeft.name]: stickyLeftOffset ? stickyLeftOffset : 0,
210
+ [cssStickyCellRight.name]: stickyRightOffset ? stickyRightOffset : 0,
199
211
  ...props.style
200
212
  } as React.CSSProperties
201
213
  })}
@@ -205,13 +217,15 @@ const ThBase: React.FunctionComponent<ThProps> = ({
205
217
  );
206
218
 
207
219
  const canMakeDefaultTooltip = tooltip === '' ? typeof transformedChildren === 'string' : true;
208
- return tooltip !== null && canMakeDefaultTooltip && showTooltip ? (
220
+ const childControlsTooltip = sortParams || selectParams;
221
+ return tooltip !== null && canMakeDefaultTooltip && !childControlsTooltip && showTooltip ? (
209
222
  <>
210
223
  {cell}
211
224
  <Tooltip
212
225
  triggerRef={cellRef as React.RefObject<any>}
213
226
  content={tooltip || (tooltip === '' && children)}
214
227
  isVisible
228
+ {...tooltipProps}
215
229
  />
216
230
  </>
217
231
  ) : (
@@ -5,7 +5,7 @@ import inlineStyles from '@patternfly/react-styles/css/components/InlineEdit/inl
5
5
  import { css } from '@patternfly/react-styles';
6
6
  import { TableContext } from './Table';
7
7
 
8
- export interface TrProps extends React.HTMLProps<HTMLTableRowElement>, OUIAProps {
8
+ export interface TrProps extends Omit<React.HTMLProps<HTMLTableRowElement>, 'onResize'>, OUIAProps {
9
9
  /** Content rendered inside the <tr> row */
10
10
  children?: React.ReactNode;
11
11
  /** Additional classes added to the <tr> row */
@@ -54,6 +54,9 @@ import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-ico
54
54
 
55
55
  import { css } from '@patternfly/react-styles';
56
56
  import styles from '@patternfly/react-styles/css/components/Table/table';
57
+ import spacing from '@patternfly/react-styles/css/utilities/Spacing/spacing';
58
+ import textStyles from '@patternfly/react-styles/css/utilities/Text/text';
59
+ import global_BackgroundColor_150 from '@patternfly/react-tokens/dist/esm/global_BackgroundColor_150';
57
60
 
58
61
  ## Table examples
59
62
 
@@ -4,6 +4,7 @@ import { Table, Thead, Tr, Th, Tbody, Td, TdProps, ExpandableRowContent } from '
4
4
  import CodeBranchIcon from '@patternfly/react-icons/dist/esm/icons/code-branch-icon';
5
5
  import CodeIcon from '@patternfly/react-icons/dist/esm/icons/code-icon';
6
6
  import CubeIcon from '@patternfly/react-icons/dist/esm/icons/cube-icon';
7
+ import spacing from '@patternfly/react-styles/css/utilities/Spacing/spacing';
7
8
 
8
9
  interface Repository {
9
10
  name: string;
@@ -110,7 +111,7 @@ export const TableCompoundExpandable: React.FunctionComponent = () => {
110
111
  <Tr isExpanded={isRowExpanded}>
111
112
  <Td dataLabel={columnNames[expandedCellKey]} noPadding colSpan={6}>
112
113
  <ExpandableRowContent>
113
- <div className="pf-v5-u-m-md">
114
+ <div className={spacing.mMd}>
114
115
  Lorem ipsum sit dolor. Lorem ipsum sit dolor. Lorem ipsum sit dolor. Lorem ipsum sit dolor. Lorem
115
116
  ipsum sit dolor. Lorem ipsum sit dolor. Lorem ipsum sit dolor. Lorem ipsum sit dolor. Lorem ipsum
116
117
  sit dolor. Lorem ipsum sit dolor. Lorem ipsum sit dolor. Lorem ipsum sit dolor. Lorem ipsum sit
@@ -1,5 +1,7 @@
1
1
  import React from 'react';
2
2
  import { Table, Thead, Tr, Th, Tbody, Td } from '@patternfly/react-table';
3
+ /* eslint-disable camelcase */
4
+ import global_BackgroundColor_150 from '@patternfly/react-tokens/dist/esm/global_BackgroundColor_150';
3
5
 
4
6
  interface Repository {
5
7
  name: string;
@@ -65,7 +67,7 @@ export const TableMisc: React.FunctionComponent = () => {
65
67
  {repositories.map((repo, rowIndex) => {
66
68
  const isOddRow = (rowIndex + 1) % 2;
67
69
  const customStyle = {
68
- backgroundColor: 'var(--pf-v5-global--BackgroundColor--150)'
70
+ backgroundColor: global_BackgroundColor_150.var
69
71
  };
70
72
  // Some arbitrary logic to demonstrate that cell styles can be based on anything
71
73
  const nameColSpan = repo.branches === null && repo.prs === null ? 3 : 1;
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import { Table, Thead, Tr, Th, Tbody, Td, InnerScrollContainer, ThProps } from '@patternfly/react-table';
3
3
  import { Stack, StackItem } from '@patternfly/react-core';
4
+ import textStyles from '@patternfly/react-styles/css/utilities/Text/text';
4
5
 
5
6
  interface PodConnection {
6
7
  source: {
@@ -162,7 +163,7 @@ export const TableNestedHeaders: React.FunctionComponent = () => {
162
163
  <Td dataLabel={columnNames.datetime}>
163
164
  <div>
164
165
  <span>{new Date(connection.timestamp).toDateString()}</span>{' '}
165
- <span className="pf-v5-u-color-200">{new Date(connection.timestamp).toLocaleTimeString()}</span>
166
+ <span className={textStyles.color_200}>{new Date(connection.timestamp).toLocaleTimeString()}</span>
166
167
  </div>
167
168
  </Td>
168
169
  <Td dataLabel={columnNames.source}>
@@ -171,7 +172,7 @@ export const TableNestedHeaders: React.FunctionComponent = () => {
171
172
  <span>{connection.source.port.num}</span>
172
173
  </StackItem>
173
174
  <StackItem>
174
- <span className="pf-v5-u-color-200">({connection.source.port.protocol})</span>
175
+ <span className={textStyles.color_200}>({connection.source.port.protocol})</span>
175
176
  </StackItem>
176
177
  </Stack>
177
178
  </Td>
@@ -181,7 +182,7 @@ export const TableNestedHeaders: React.FunctionComponent = () => {
181
182
  <span>{connection.destination.port.num}</span>
182
183
  </StackItem>
183
184
  <StackItem>
184
- <span className="pf-v5-u-color-200">({connection.destination.port.protocol})</span>
185
+ <span className={textStyles.color_200}>({connection.destination.port.protocol})</span>
185
186
  </StackItem>
186
187
  </Stack>
187
188
  </Td>
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import { Table, Thead, Tr, Th, Tbody, Td, InnerScrollContainer, ThProps } from '@patternfly/react-table';
3
3
  import { Stack, StackItem } from '@patternfly/react-core';
4
+ import textStyles from '@patternfly/react-styles/css/utilities/Text/text';
4
5
 
5
6
  interface PodConnection {
6
7
  source: {
@@ -165,7 +166,7 @@ export const TableNestedHeaders: React.FunctionComponent = () => {
165
166
  <Td dataLabel={columnNames.datetime}>
166
167
  <div>
167
168
  <span>{new Date(connection.timestamp).toDateString()}</span>{' '}
168
- <span className="pf-v5-u-color-200">{new Date(connection.timestamp).toLocaleTimeString()}</span>
169
+ <span className={textStyles.color_200}>{new Date(connection.timestamp).toLocaleTimeString()}</span>
169
170
  </div>
170
171
  </Td>
171
172
  <Td dataLabel={columnNames.source}>
@@ -174,7 +175,7 @@ export const TableNestedHeaders: React.FunctionComponent = () => {
174
175
  <span>{connection.source.port.num}</span>
175
176
  </StackItem>
176
177
  <StackItem>
177
- <span className="pf-v5-u-color-200">({connection.source.port.protocol})</span>
178
+ <span className={textStyles.color_200}>({connection.source.port.protocol})</span>
178
179
  </StackItem>
179
180
  </Stack>
180
181
  </Td>
@@ -184,7 +185,7 @@ export const TableNestedHeaders: React.FunctionComponent = () => {
184
185
  <span>{connection.destination.port.num}</span>
185
186
  </StackItem>
186
187
  <StackItem>
187
- <span className="pf-v5-u-color-200">({connection.destination.port.protocol})</span>
188
+ <span className={textStyles.color_200}>({connection.destination.port.protocol})</span>
188
189
  </StackItem>
189
190
  </Stack>
190
191
  </Td>
@@ -8,7 +8,8 @@ import {
8
8
  Td,
9
9
  InnerScrollContainer,
10
10
  OuterScrollContainer,
11
- ThProps
11
+ ThProps,
12
+ ISortBy
12
13
  } from '@patternfly/react-table';
13
14
  import BlueprintIcon from '@patternfly/react-icons/dist/esm/icons/blueprint-icon';
14
15
 
@@ -53,10 +54,10 @@ export const TableStickyColumnsAndHeader: React.FunctionComponent = () => {
53
54
  // Index of the currently sorted column
54
55
  // Note: if you intend to make columns reorderable, you may instead want to use a non-numeric key
55
56
  // as the identifier of the sorted column. See the "Compound expandable" example.
56
- const [activeSortIndex, setActiveSortIndex] = React.useState<number | null>(null);
57
+ const [activeSortIndex, setActiveSortIndex] = React.useState(-1);
57
58
 
58
59
  // Sort direction of the currently sorted column
59
- const [activeSortDirection, setActiveSortDirection] = React.useState<'asc' | 'desc' | null>(null);
60
+ const [activeSortDirection, setActiveSortDirection] = React.useState<ISortBy['direction']>();
60
61
 
61
62
  // Since OnSort specifies sorted columns by index, we need sortable values for our object by column index.
62
63
  // This example is trivial since our data objects just contain strings, but if the data was more complex
@@ -69,7 +70,7 @@ export const TableStickyColumnsAndHeader: React.FunctionComponent = () => {
69
70
  // Note that we perform the sort as part of the component's render logic and not in onSort.
70
71
  // We shouldn't store the list of data in state because we don't want to have to sync that with props.
71
72
  let sortedFacts = facts;
72
- if (activeSortIndex !== null) {
73
+ if (activeSortIndex > -1) {
73
74
  sortedFacts = facts.sort((a, b) => {
74
75
  const aValue = getSortableRowValues(a)[activeSortIndex];
75
76
  const bValue = getSortableRowValues(b)[activeSortIndex];
@@ -7,7 +7,7 @@ import checkStyles from '@patternfly/react-styles/css/components/Check/check';
7
7
 
8
8
  export const selectable: ITransform = (
9
9
  label: IFormatterValueType,
10
- { rowIndex, columnIndex, rowData, column, property }: IExtra
10
+ { rowIndex, columnIndex, rowData, column, property, tooltip }: IExtra
11
11
  ) => {
12
12
  const {
13
13
  extraParams: { onSelect, selectVariant, allRowsSelected, isHeaderSelectDisabled }
@@ -69,6 +69,7 @@ export const selectable: ITransform = (
69
69
  selectVariant={selectVariant as RowSelectVariant}
70
70
  onSelect={selectClick}
71
71
  name={selectName}
72
+ tooltip={tooltip}
72
73
  >
73
74
  {label as React.ReactNode}
74
75
  </SelectColumn>
@@ -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="pf-v5-c-table__text" key="table-text">
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: 'pf-v5-c-table__tree-view-title-cell',
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="pf-v5-c-table__details-toggle-icon">
86
+ <span className={`${styles.table}__details-toggle-icon`}>
87
87
  <EllipsisHIcon aria-hidden />
88
88
  </span>
89
89
  </Button>