@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.
Files changed (366) hide show
  1. package/CHANGELOG.md +1215 -1
  2. package/README.md +3 -18
  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/dynamic-modules.json +127 -0
  12. package/dist/esm/components/Table/ActionsColumn.d.ts +3 -1
  13. package/dist/esm/components/Table/ActionsColumn.d.ts.map +1 -1
  14. package/dist/esm/components/Table/ActionsColumn.js +4 -5
  15. package/dist/esm/components/Table/ActionsColumn.js.map +1 -1
  16. package/dist/esm/components/Table/Caption.js +1 -1
  17. package/dist/esm/components/Table/Caption.js.map +1 -1
  18. package/dist/esm/components/Table/CollapseColumn.js +1 -1
  19. package/dist/esm/components/Table/CollapseColumn.js.map +1 -1
  20. package/dist/esm/components/Table/DraggableCell.d.ts.map +1 -1
  21. package/dist/esm/components/Table/DraggableCell.js +1 -2
  22. package/dist/esm/components/Table/DraggableCell.js.map +1 -1
  23. package/dist/esm/components/Table/DraggableRowWrapper.js +2 -2
  24. package/dist/esm/components/Table/DraggableRowWrapper.js.map +1 -1
  25. package/dist/esm/components/Table/EditColumn.d.ts.map +1 -1
  26. package/dist/esm/components/Table/EditColumn.js +4 -7
  27. package/dist/esm/components/Table/EditColumn.js.map +1 -1
  28. package/dist/esm/components/Table/EditableSelectInputCell.d.ts +3 -4
  29. package/dist/esm/components/Table/EditableSelectInputCell.d.ts.map +1 -1
  30. package/dist/esm/components/Table/EditableSelectInputCell.js +11 -7
  31. package/dist/esm/components/Table/EditableSelectInputCell.js.map +1 -1
  32. package/dist/esm/components/Table/EditableTextCell.js +3 -3
  33. package/dist/esm/components/Table/EditableTextCell.js.map +1 -1
  34. package/dist/esm/components/Table/ExpandableRowContent.js +1 -1
  35. package/dist/esm/components/Table/ExpandableRowContent.js.map +1 -1
  36. package/dist/esm/components/Table/FavoritesCell.d.ts.map +1 -1
  37. package/dist/esm/components/Table/FavoritesCell.js +1 -2
  38. package/dist/esm/components/Table/FavoritesCell.js.map +1 -1
  39. package/dist/esm/components/Table/HeaderCellInfoWrapper.d.ts.map +1 -1
  40. package/dist/esm/components/Table/HeaderCellInfoWrapper.js +3 -5
  41. package/dist/esm/components/Table/HeaderCellInfoWrapper.js.map +1 -1
  42. package/dist/esm/components/Table/InnerScrollContainer.js +1 -1
  43. package/dist/esm/components/Table/InnerScrollContainer.js.map +1 -1
  44. package/dist/esm/components/Table/OuterScrollContainer.js +1 -1
  45. package/dist/esm/components/Table/OuterScrollContainer.js.map +1 -1
  46. package/dist/esm/components/Table/RowWrapper.d.ts +1 -1
  47. package/dist/esm/components/Table/RowWrapper.js.map +1 -1
  48. package/dist/esm/components/Table/SelectColumn.d.ts +5 -0
  49. package/dist/esm/components/Table/SelectColumn.d.ts.map +1 -1
  50. package/dist/esm/components/Table/SelectColumn.js +6 -3
  51. package/dist/esm/components/Table/SelectColumn.js.map +1 -1
  52. package/dist/esm/components/Table/SortColumn.d.ts +4 -0
  53. package/dist/esm/components/Table/SortColumn.d.ts.map +1 -1
  54. package/dist/esm/components/Table/SortColumn.js +3 -3
  55. package/dist/esm/components/Table/SortColumn.js.map +1 -1
  56. package/dist/esm/components/Table/Table.d.ts +1 -1
  57. package/dist/esm/components/Table/Table.d.ts.map +1 -1
  58. package/dist/esm/components/Table/Table.js +9 -9
  59. package/dist/esm/components/Table/Table.js.map +1 -1
  60. package/dist/esm/components/Table/TableText.d.ts +3 -1
  61. package/dist/esm/components/Table/TableText.d.ts.map +1 -1
  62. package/dist/esm/components/Table/TableText.js +13 -11
  63. package/dist/esm/components/Table/TableText.js.map +1 -1
  64. package/dist/esm/components/Table/TableTypes.d.ts +29 -25
  65. package/dist/esm/components/Table/TableTypes.d.ts.map +1 -1
  66. package/dist/esm/components/Table/TableTypes.js.map +1 -1
  67. package/dist/esm/components/Table/Tbody.d.ts +1 -1
  68. package/dist/esm/components/Table/Tbody.d.ts.map +1 -1
  69. package/dist/esm/components/Table/Tbody.js +1 -1
  70. package/dist/esm/components/Table/Tbody.js.map +1 -1
  71. package/dist/esm/components/Table/Td.d.ts +2 -2
  72. package/dist/esm/components/Table/Td.d.ts.map +1 -1
  73. package/dist/esm/components/Table/Td.js +9 -5
  74. package/dist/esm/components/Table/Td.js.map +1 -1
  75. package/dist/esm/components/Table/Th.d.ts +12 -1
  76. package/dist/esm/components/Table/Th.d.ts.map +1 -1
  77. package/dist/esm/components/Table/Th.js +26 -12
  78. package/dist/esm/components/Table/Th.js.map +1 -1
  79. package/dist/esm/components/Table/Thead.d.ts +1 -1
  80. package/dist/esm/components/Table/Thead.d.ts.map +1 -1
  81. package/dist/esm/components/Table/Thead.js +1 -1
  82. package/dist/esm/components/Table/Thead.js.map +1 -1
  83. package/dist/esm/components/Table/Tr.d.ts +4 -2
  84. package/dist/esm/components/Table/Tr.d.ts.map +1 -1
  85. package/dist/esm/components/Table/Tr.js +4 -4
  86. package/dist/esm/components/Table/Tr.js.map +1 -1
  87. package/dist/esm/components/Table/TreeRowWrapper.js +2 -2
  88. package/dist/esm/components/Table/TreeRowWrapper.js.map +1 -1
  89. package/dist/esm/components/Table/base/columns-are-equal.js.map +1 -1
  90. package/dist/esm/components/Table/base/evaluate-transforms.js.map +1 -1
  91. package/dist/esm/components/Table/base/merge-props.js.map +1 -1
  92. package/dist/esm/components/Table/base/provider.d.ts +8 -8
  93. package/dist/esm/components/Table/base/provider.js.map +1 -1
  94. package/dist/esm/components/Table/base/types.d.ts +23 -24
  95. package/dist/esm/components/Table/base/types.d.ts.map +1 -1
  96. package/dist/esm/components/Table/base/types.js.map +1 -1
  97. package/dist/esm/components/Table/utils/decorators/cellActions.js +1 -1
  98. package/dist/esm/components/Table/utils/decorators/cellActions.js.map +1 -1
  99. package/dist/esm/components/Table/utils/decorators/cellWidth.js +1 -1
  100. package/dist/esm/components/Table/utils/decorators/cellWidth.js.map +1 -1
  101. package/dist/esm/components/Table/utils/decorators/classNames.js +1 -1
  102. package/dist/esm/components/Table/utils/decorators/classNames.js.map +1 -1
  103. package/dist/esm/components/Table/utils/decorators/collapsible.js +1 -1
  104. package/dist/esm/components/Table/utils/decorators/collapsible.js.map +1 -1
  105. package/dist/esm/components/Table/utils/decorators/compoundExpand.js +1 -1
  106. package/dist/esm/components/Table/utils/decorators/compoundExpand.js.map +1 -1
  107. package/dist/esm/components/Table/utils/decorators/editable.js +1 -1
  108. package/dist/esm/components/Table/utils/decorators/editable.js.map +1 -1
  109. package/dist/esm/components/Table/utils/decorators/favoritable.js +1 -1
  110. package/dist/esm/components/Table/utils/decorators/favoritable.js.map +1 -1
  111. package/dist/esm/components/Table/utils/decorators/info.js +1 -1
  112. package/dist/esm/components/Table/utils/decorators/info.js.map +1 -1
  113. package/dist/esm/components/Table/utils/decorators/selectable.d.ts.map +1 -1
  114. package/dist/esm/components/Table/utils/decorators/selectable.js +5 -5
  115. package/dist/esm/components/Table/utils/decorators/selectable.js.map +1 -1
  116. package/dist/esm/components/Table/utils/decorators/sortable.d.ts.map +1 -1
  117. package/dist/esm/components/Table/utils/decorators/sortable.js +7 -4
  118. package/dist/esm/components/Table/utils/decorators/sortable.js.map +1 -1
  119. package/dist/esm/components/Table/utils/decorators/treeRow.d.ts +3 -3
  120. package/dist/esm/components/Table/utils/decorators/treeRow.d.ts.map +1 -1
  121. package/dist/esm/components/Table/utils/decorators/treeRow.js +5 -5
  122. package/dist/esm/components/Table/utils/decorators/treeRow.js.map +1 -1
  123. package/dist/esm/components/Table/utils/decorators/wrappable.js +1 -1
  124. package/dist/esm/components/Table/utils/decorators/wrappable.js.map +1 -1
  125. package/dist/esm/components/Table/utils/headerUtils.js.map +1 -1
  126. package/dist/esm/components/Table/utils/utils.js.map +1 -1
  127. package/dist/esm/demos/DashboardHeader.d.ts +8 -0
  128. package/dist/esm/demos/DashboardHeader.d.ts.map +1 -0
  129. package/dist/esm/demos/DashboardHeader.js +78 -0
  130. package/dist/esm/demos/DashboardHeader.js.map +1 -0
  131. package/dist/esm/demos/DashboardWrapper.d.ts +85 -0
  132. package/dist/esm/demos/DashboardWrapper.d.ts.map +1 -0
  133. package/dist/esm/demos/DashboardWrapper.js +41 -0
  134. package/dist/esm/demos/DashboardWrapper.js.map +1 -0
  135. package/dist/esm/demos/index.d.ts +4 -0
  136. package/dist/esm/demos/index.d.ts.map +1 -0
  137. package/dist/esm/demos/index.js +4 -0
  138. package/dist/esm/demos/index.js.map +1 -0
  139. package/dist/esm/demos/sampleData.d.ts +13 -0
  140. package/dist/esm/demos/sampleData.d.ts.map +1 -0
  141. package/dist/esm/demos/sampleData.js +764 -0
  142. package/dist/esm/demos/sampleData.js.map +1 -0
  143. package/dist/esm/deprecated/components/Table/Body.d.ts +2 -2
  144. package/dist/esm/deprecated/components/Table/Body.d.ts.map +1 -1
  145. package/dist/esm/deprecated/components/Table/Body.js.map +1 -1
  146. package/dist/esm/deprecated/components/Table/BodyCell.js.map +1 -1
  147. package/dist/esm/deprecated/components/Table/BodyWrapper.js.map +1 -1
  148. package/dist/esm/deprecated/components/Table/Table.d.ts +1 -1
  149. package/dist/esm/deprecated/components/Table/Table.d.ts.map +1 -1
  150. package/dist/esm/deprecated/components/Table/Table.js +3 -4
  151. package/dist/esm/deprecated/components/Table/Table.js.map +1 -1
  152. package/dist/esm/deprecated/components/Table/base/body-row.js.map +1 -1
  153. package/dist/esm/deprecated/components/Table/base/body.d.ts +8 -2
  154. package/dist/esm/deprecated/components/Table/base/body.d.ts.map +1 -1
  155. package/dist/esm/deprecated/components/Table/base/body.js.map +1 -1
  156. package/dist/esm/deprecated/components/Table/base/header-row.js +1 -1
  157. package/dist/esm/deprecated/components/Table/base/header-row.js.map +1 -1
  158. package/dist/esm/deprecated/components/Table/base/header.d.ts +1 -1
  159. package/dist/esm/deprecated/components/Table/base/header.d.ts.map +1 -1
  160. package/dist/esm/deprecated/components/Table/base/resolve-row-key.js.map +1 -1
  161. package/dist/esm/test-helpers/data-helpers.js.map +1 -1
  162. package/dist/js/components/Table/ActionsColumn.d.ts +3 -1
  163. package/dist/js/components/Table/ActionsColumn.d.ts.map +1 -1
  164. package/dist/js/components/Table/ActionsColumn.js +10 -11
  165. package/dist/js/components/Table/ActionsColumn.js.map +1 -1
  166. package/dist/js/components/Table/CollapseColumn.js +2 -2
  167. package/dist/js/components/Table/CollapseColumn.js.map +1 -1
  168. package/dist/js/components/Table/DraggableCell.d.ts.map +1 -1
  169. package/dist/js/components/Table/DraggableCell.js +3 -4
  170. package/dist/js/components/Table/DraggableCell.js.map +1 -1
  171. package/dist/js/components/Table/EditColumn.d.ts.map +1 -1
  172. package/dist/js/components/Table/EditColumn.js +7 -10
  173. package/dist/js/components/Table/EditColumn.js.map +1 -1
  174. package/dist/js/components/Table/EditableSelectInputCell.d.ts +3 -4
  175. package/dist/js/components/Table/EditableSelectInputCell.d.ts.map +1 -1
  176. package/dist/js/components/Table/EditableSelectInputCell.js +9 -5
  177. package/dist/js/components/Table/EditableSelectInputCell.js.map +1 -1
  178. package/dist/js/components/Table/EditableTextCell.js +2 -2
  179. package/dist/js/components/Table/EditableTextCell.js.map +1 -1
  180. package/dist/js/components/Table/FavoritesCell.d.ts.map +1 -1
  181. package/dist/js/components/Table/FavoritesCell.js +3 -4
  182. package/dist/js/components/Table/FavoritesCell.js.map +1 -1
  183. package/dist/js/components/Table/HeaderCellInfoWrapper.d.ts.map +1 -1
  184. package/dist/js/components/Table/HeaderCellInfoWrapper.js +6 -8
  185. package/dist/js/components/Table/HeaderCellInfoWrapper.js.map +1 -1
  186. package/dist/js/components/Table/RowWrapper.d.ts +1 -1
  187. package/dist/js/components/Table/RowWrapper.js +1 -1
  188. package/dist/js/components/Table/RowWrapper.js.map +1 -1
  189. package/dist/js/components/Table/SelectColumn.d.ts +5 -0
  190. package/dist/js/components/Table/SelectColumn.d.ts.map +1 -1
  191. package/dist/js/components/Table/SelectColumn.js +7 -4
  192. package/dist/js/components/Table/SelectColumn.js.map +1 -1
  193. package/dist/js/components/Table/SortColumn.d.ts +4 -0
  194. package/dist/js/components/Table/SortColumn.d.ts.map +1 -1
  195. package/dist/js/components/Table/SortColumn.js +6 -6
  196. package/dist/js/components/Table/SortColumn.js.map +1 -1
  197. package/dist/js/components/Table/Table.d.ts +1 -1
  198. package/dist/js/components/Table/Table.d.ts.map +1 -1
  199. package/dist/js/components/Table/Table.js +5 -5
  200. package/dist/js/components/Table/Table.js.map +1 -1
  201. package/dist/js/components/Table/TableText.d.ts +3 -1
  202. package/dist/js/components/Table/TableText.d.ts.map +1 -1
  203. package/dist/js/components/Table/TableText.js +15 -13
  204. package/dist/js/components/Table/TableText.js.map +1 -1
  205. package/dist/js/components/Table/TableTypes.d.ts +29 -25
  206. package/dist/js/components/Table/TableTypes.d.ts.map +1 -1
  207. package/dist/js/components/Table/TableTypes.js +2 -2
  208. package/dist/js/components/Table/TableTypes.js.map +1 -1
  209. package/dist/js/components/Table/Tbody.d.ts +1 -1
  210. package/dist/js/components/Table/Tbody.d.ts.map +1 -1
  211. package/dist/js/components/Table/Td.d.ts +2 -2
  212. package/dist/js/components/Table/Td.d.ts.map +1 -1
  213. package/dist/js/components/Table/Td.js +8 -4
  214. package/dist/js/components/Table/Td.js.map +1 -1
  215. package/dist/js/components/Table/Th.d.ts +12 -1
  216. package/dist/js/components/Table/Th.d.ts.map +1 -1
  217. package/dist/js/components/Table/Th.js +24 -10
  218. package/dist/js/components/Table/Th.js.map +1 -1
  219. package/dist/js/components/Table/Thead.d.ts +1 -1
  220. package/dist/js/components/Table/Thead.d.ts.map +1 -1
  221. package/dist/js/components/Table/Tr.d.ts +4 -2
  222. package/dist/js/components/Table/Tr.d.ts.map +1 -1
  223. package/dist/js/components/Table/Tr.js +3 -3
  224. package/dist/js/components/Table/Tr.js.map +1 -1
  225. package/dist/js/components/Table/base/columns-are-equal.js.map +1 -1
  226. package/dist/js/components/Table/base/evaluate-transforms.js.map +1 -1
  227. package/dist/js/components/Table/base/merge-props.js.map +1 -1
  228. package/dist/js/components/Table/base/provider.d.ts +8 -8
  229. package/dist/js/components/Table/base/provider.js.map +1 -1
  230. package/dist/js/components/Table/base/types.d.ts +23 -24
  231. package/dist/js/components/Table/base/types.d.ts.map +1 -1
  232. package/dist/js/components/Table/base/types.js.map +1 -1
  233. package/dist/js/components/Table/utils/decorators/compoundExpand.js.map +1 -1
  234. package/dist/js/components/Table/utils/decorators/editable.js.map +1 -1
  235. package/dist/js/components/Table/utils/decorators/favoritable.js.map +1 -1
  236. package/dist/js/components/Table/utils/decorators/selectable.d.ts.map +1 -1
  237. package/dist/js/components/Table/utils/decorators/selectable.js +3 -3
  238. package/dist/js/components/Table/utils/decorators/selectable.js.map +1 -1
  239. package/dist/js/components/Table/utils/decorators/sortable.d.ts.map +1 -1
  240. package/dist/js/components/Table/utils/decorators/sortable.js +7 -4
  241. package/dist/js/components/Table/utils/decorators/sortable.js.map +1 -1
  242. package/dist/js/components/Table/utils/decorators/treeRow.d.ts +3 -3
  243. package/dist/js/components/Table/utils/decorators/treeRow.d.ts.map +1 -1
  244. package/dist/js/components/Table/utils/decorators/treeRow.js +7 -7
  245. package/dist/js/components/Table/utils/decorators/treeRow.js.map +1 -1
  246. package/dist/js/components/Table/utils/headerUtils.js.map +1 -1
  247. package/dist/js/components/Table/utils/utils.js.map +1 -1
  248. package/dist/js/demos/DashboardHeader.d.ts +8 -0
  249. package/dist/js/demos/DashboardHeader.d.ts.map +1 -0
  250. package/dist/js/demos/DashboardHeader.js +83 -0
  251. package/dist/js/demos/DashboardHeader.js.map +1 -0
  252. package/dist/js/demos/DashboardWrapper.d.ts +85 -0
  253. package/dist/js/demos/DashboardWrapper.d.ts.map +1 -0
  254. package/dist/js/demos/DashboardWrapper.js +45 -0
  255. package/dist/js/demos/DashboardWrapper.js.map +1 -0
  256. package/dist/js/demos/index.d.ts +4 -0
  257. package/dist/js/demos/index.d.ts.map +1 -0
  258. package/dist/js/demos/index.js +7 -0
  259. package/dist/js/demos/index.js.map +1 -0
  260. package/dist/js/demos/sampleData.d.ts +13 -0
  261. package/dist/js/demos/sampleData.d.ts.map +1 -0
  262. package/dist/js/demos/sampleData.js +767 -0
  263. package/dist/js/demos/sampleData.js.map +1 -0
  264. package/dist/js/deprecated/components/Table/Body.d.ts +2 -2
  265. package/dist/js/deprecated/components/Table/Body.d.ts.map +1 -1
  266. package/dist/js/deprecated/components/Table/Body.js.map +1 -1
  267. package/dist/js/deprecated/components/Table/BodyCell.js +3 -3
  268. package/dist/js/deprecated/components/Table/BodyCell.js.map +1 -1
  269. package/dist/js/deprecated/components/Table/BodyWrapper.js.map +1 -1
  270. package/dist/js/deprecated/components/Table/Table.d.ts +1 -1
  271. package/dist/js/deprecated/components/Table/Table.d.ts.map +1 -1
  272. package/dist/js/deprecated/components/Table/Table.js +9 -10
  273. package/dist/js/deprecated/components/Table/Table.js.map +1 -1
  274. package/dist/js/deprecated/components/Table/base/body-row.js.map +1 -1
  275. package/dist/js/deprecated/components/Table/base/body.d.ts +8 -2
  276. package/dist/js/deprecated/components/Table/base/body.d.ts.map +1 -1
  277. package/dist/js/deprecated/components/Table/base/body.js.map +1 -1
  278. package/dist/js/deprecated/components/Table/base/header-row.js +1 -1
  279. package/dist/js/deprecated/components/Table/base/header-row.js.map +1 -1
  280. package/dist/js/deprecated/components/Table/base/header.d.ts +1 -1
  281. package/dist/js/deprecated/components/Table/base/header.d.ts.map +1 -1
  282. package/dist/js/deprecated/components/Table/base/resolve-row-key.js.map +1 -1
  283. package/dist/js/test-helpers/data-helpers.js.map +1 -1
  284. package/dist/umd/assets/output-BnU-TMGU.css +26986 -0
  285. package/dist/umd/react-table.min.js +8 -9
  286. package/package.json +8 -12
  287. package/rollup.config.mjs +8 -0
  288. package/single-packages.config.json +3 -6
  289. package/src/components/Table/ActionsColumn.tsx +35 -31
  290. package/src/components/Table/DraggableCell.tsx +2 -3
  291. package/src/components/Table/EditColumn.tsx +21 -9
  292. package/src/components/Table/EditableSelectInputCell.tsx +16 -11
  293. package/src/components/Table/EditableTextCell.tsx +1 -1
  294. package/src/components/Table/FavoritesCell.tsx +2 -3
  295. package/src/components/Table/HeaderCellInfoWrapper.tsx +10 -6
  296. package/src/components/Table/SelectColumn.tsx +27 -8
  297. package/src/components/Table/SortColumn.tsx +15 -1
  298. package/src/components/Table/Table.tsx +6 -6
  299. package/src/components/Table/TableText.tsx +19 -9
  300. package/src/components/Table/TableTypes.tsx +12 -9
  301. package/src/components/Table/Td.tsx +11 -6
  302. package/src/components/Table/Th.tsx +42 -10
  303. package/src/components/Table/Tr.tsx +5 -1
  304. package/src/components/Table/__tests__/Th.test.tsx +31 -0
  305. package/src/components/Table/__tests__/__snapshots__/RowWrapper.test.tsx.snap +4 -4
  306. package/src/components/Table/base/types.tsx +6 -7
  307. package/src/components/Table/examples/Table.md +48 -3
  308. package/src/components/Table/examples/TableActions.tsx +2 -2
  309. package/src/components/Table/examples/TableActionsOverflow.tsx +3 -5
  310. package/src/components/Table/examples/TableCompoundExpandable.tsx +5 -4
  311. package/src/components/Table/examples/TableDraggable.tsx +19 -16
  312. package/src/components/Table/examples/TableEditable.tsx +313 -0
  313. package/src/components/Table/examples/TableEmptyState.tsx +1 -8
  314. package/src/components/Table/examples/TableExpandable.tsx +1 -2
  315. package/src/components/Table/examples/TableMisc.tsx +3 -1
  316. package/src/components/Table/examples/TableNestedExpandable.tsx +1 -1
  317. package/src/components/Table/examples/TableNestedHeaders.tsx +4 -6
  318. package/src/components/Table/examples/TableNestedStickyHeader.tsx +4 -9
  319. package/src/components/Table/examples/TableNestedTableExpandable.tsx +1 -1
  320. package/src/components/Table/examples/TableSelectable.tsx +1 -0
  321. package/src/components/Table/examples/TableSelectableRadio.tsx +1 -1
  322. package/src/components/Table/examples/TableSortableCustom.tsx +2 -3
  323. package/src/components/Table/examples/TableStickyColumnsAndHeader.tsx +6 -5
  324. package/src/components/Table/examples/TableStripedExpandable.tsx +1 -1
  325. package/src/components/Table/utils/__snapshots__/transformers.test.tsx.snap +4 -4
  326. package/src/components/Table/utils/decorators/selectable.tsx +3 -2
  327. package/src/components/Table/utils/decorators/sortable.tsx +8 -2
  328. package/src/components/Table/utils/decorators/treeRow.tsx +3 -3
  329. package/src/components/Table/utils/transformers.test.tsx +14 -11
  330. package/src/demos/DashboardHeader.tsx +201 -0
  331. package/src/demos/DashboardWrapper.tsx +198 -0
  332. package/src/demos/Table.md +181 -0
  333. package/src/demos/assets/avatarImg.svg +18 -0
  334. package/src/demos/assets/index.d.ts +4 -0
  335. package/src/demos/assets/pf-logo.svg +28 -0
  336. package/src/demos/examples/TableAutomaticPagination.tsx +101 -0
  337. package/src/{docs/demos/table-demos/BulkSelect.jsx → demos/examples/TableBulkSelect.tsx} +42 -21
  338. package/src/demos/examples/TableColumnManagement.tsx +484 -0
  339. package/src/demos/examples/TableColumnManagementWithDraggable.tsx +635 -0
  340. package/src/{docs/demos/table-demos/Compact.jsx → demos/examples/TableCompact.tsx} +39 -18
  341. package/src/{docs/demos/table-demos/CompoundExpansion.jsx → demos/examples/TableCompoundExpansion.tsx} +31 -16
  342. package/src/demos/examples/TableEmptyStateDefault.tsx +58 -0
  343. package/src/demos/examples/TableEmptyStateError.tsx +43 -0
  344. package/src/demos/examples/TableEmptyStateLoading.tsx +33 -0
  345. package/src/{docs/demos/table-demos/ExpandCollapseAll.jsx → demos/examples/TableExpandCollapseAll.tsx} +75 -67
  346. package/src/demos/examples/TableFilterable.tsx +387 -0
  347. package/src/{docs/demos/table-demos/SortableResponsive.jsx → demos/examples/TableSortableResponsive.tsx} +42 -43
  348. package/src/{docs/demos/table-demos/StaticBottomPagination.jsx → demos/examples/TableStaticBottomPagination.tsx} +29 -11
  349. package/src/{docs/demos/table-demos/StickyFirstColumn.jsx → demos/examples/TableStickyFirstColumn.tsx} +31 -9
  350. package/src/{docs/demos/table-demos/StickyHeader.jsx → demos/examples/TableStickyHeader.tsx} +3 -3
  351. package/src/demos/index.ts +3 -0
  352. package/src/{docs/demos/table-demos/sampleData.js → demos/sampleData.tsx} +88 -77
  353. package/src/deprecated/components/Table/Table.tsx +2 -3
  354. package/src/deprecated/components/Table/__tests__/Table.test.tsx +4 -9
  355. package/src/deprecated/components/Table/__tests__/__snapshots__/Table.test.tsx.snap +2457 -2274
  356. package/src/deprecated/components/Table/base/header-row.tsx +1 -1
  357. package/src/deprecated/components/Table/examples/LegacyTableCompoundExpandable.tsx +4 -3
  358. package/src/deprecated/components/Table/examples/LegacyTableEmptyState.tsx +6 -8
  359. package/src/deprecated/components/Table/examples/LegacyTableMisc.tsx +4 -3
  360. package/src/deprecated/components/Table/examples/LegacyTableSelectable.tsx +2 -1
  361. package/src/deprecated/components/Table/examples/LegacyTableSortableCustom.tsx +2 -3
  362. package/src/deprecated/components/Table/examples/LegacyTableStripedCustomTr.tsx +2 -6
  363. package/src/deprecated/components/Table/examples/Table.md +49 -40
  364. package/rollup.config.js +0 -7
  365. package/src/docs/demos/Table.md +0 -1622
  366. package/src/docs/demos/table-demos/ColumnManagement.jsx +0 -471
@@ -0,0 +1,387 @@
1
+ import React from 'react';
2
+ import {
3
+ Badge,
4
+ Button,
5
+ Bullseye,
6
+ EmptyState,
7
+ EmptyStateActions,
8
+ EmptyStateBody,
9
+ EmptyStateFooter,
10
+ Label,
11
+ MenuToggle,
12
+ MenuToggleElement,
13
+ Toolbar,
14
+ ToolbarItem,
15
+ ToolbarContent,
16
+ ToolbarFilter,
17
+ ToolbarToggleGroup,
18
+ ToolbarGroup,
19
+ Select,
20
+ SelectOption,
21
+ SearchInput,
22
+ ToolbarLabelGroup
23
+ } from '@patternfly/react-core';
24
+ import SearchIcon from '@patternfly/react-icons/dist/esm/icons/search-icon';
25
+ import FilterIcon from '@patternfly/react-icons/dist/esm/icons/filter-icon';
26
+ import { Table, TableText, Thead, Tr, Th, Tbody, Td } from '@patternfly/react-table';
27
+ import { rows, columns } from '@patternfly/react-table/dist/esm/demos/sampleData';
28
+
29
+ export const TableFilterable: React.FunctionComponent = () => {
30
+ const [filters, setFilters] = React.useState<Record<string, string[]>>({ location: [], name: [], status: [] });
31
+ const [currentCategory, setCurrentCategory] = React.useState('Status');
32
+ const [isFilterDropdownOpen, setIsFilterDropdownOpen] = React.useState(false);
33
+ const [isCategoryDropdownOpen, setIsCategoryDropdownOpen] = React.useState(false);
34
+ const [inputValue, setInputValue] = React.useState('');
35
+
36
+ const rowData = rows.slice(0, 10);
37
+
38
+ const onDelete = (type: string | ToolbarLabelGroup, id: string) => {
39
+ if (type === 'Location') {
40
+ setFilters({
41
+ ...filters,
42
+ location: filters.location.filter((fil: string) => fil !== id)
43
+ });
44
+ } else if (type === 'Name') {
45
+ setFilters({
46
+ ...filters,
47
+ name: filters.name.filter((fil: string) => fil !== id)
48
+ });
49
+ } else if (type === 'Status') {
50
+ setFilters({
51
+ ...filters,
52
+ status: filters.status.filter((fil: string) => fil !== id)
53
+ });
54
+ } else {
55
+ setFilters({ location: [], name: [], status: [] });
56
+ }
57
+ };
58
+
59
+ const onCategoryToggle = () => {
60
+ setIsCategoryDropdownOpen(!isCategoryDropdownOpen);
61
+ };
62
+
63
+ const onCategorySelect = (event: React.MouseEvent<Element, MouseEvent>, value: string) => {
64
+ setCurrentCategory(value);
65
+ setIsCategoryDropdownOpen(false);
66
+ };
67
+
68
+ const onFilterToggle = () => {
69
+ setIsFilterDropdownOpen(!isFilterDropdownOpen);
70
+ };
71
+
72
+ const onFilterSelect = () => {
73
+ setIsFilterDropdownOpen(!isFilterDropdownOpen);
74
+ };
75
+
76
+ const onInputChange = (newValue: string) => {
77
+ setInputValue(newValue);
78
+ };
79
+
80
+ const onStatusSelect = (event: React.MouseEvent<Element, MouseEvent>, selection: string) => {
81
+ const checked = (event.target as HTMLInputElement).checked;
82
+ setFilters({
83
+ ...filters,
84
+ status: checked ? [...filters.status, selection] : filters.status.filter((value) => value !== selection)
85
+ });
86
+ setIsFilterDropdownOpen(false);
87
+ };
88
+
89
+ const onNameInput = (event: React.KeyboardEvent) => {
90
+ if (event.key && event.key !== 'Enter') {
91
+ return;
92
+ }
93
+
94
+ const prevFilters = filters.name;
95
+ setFilters({ ...filters, name: prevFilters.includes(inputValue) ? prevFilters : [...prevFilters, inputValue] });
96
+ };
97
+
98
+ const onLocationSelect = (event: React.MouseEvent<Element, MouseEvent>, selection: string) => {
99
+ setFilters({ ...filters, location: [selection] });
100
+
101
+ setIsFilterDropdownOpen(false);
102
+ onFilterSelect();
103
+ };
104
+
105
+ const buildCategoryDropdown = () => {
106
+ const categoryMenuItems = [
107
+ <SelectOption key="cat1" value="Location">
108
+ Location
109
+ </SelectOption>,
110
+ <SelectOption key="cat2" value="Name">
111
+ Name
112
+ </SelectOption>,
113
+ <SelectOption key="cat3" value="Status">
114
+ Status
115
+ </SelectOption>
116
+ ];
117
+
118
+ return (
119
+ <ToolbarItem>
120
+ <Select
121
+ onSelect={onCategorySelect}
122
+ selected={currentCategory}
123
+ toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
124
+ <MenuToggle
125
+ ref={toggleRef}
126
+ onClick={onCategoryToggle}
127
+ isExpanded={isCategoryDropdownOpen}
128
+ icon={<FilterIcon />}
129
+ style={
130
+ {
131
+ width: '100%',
132
+ verticalAlign: 'text-bottom'
133
+ } as React.CSSProperties
134
+ }
135
+ >
136
+ {currentCategory}
137
+ </MenuToggle>
138
+ )}
139
+ isOpen={isCategoryDropdownOpen}
140
+ >
141
+ {categoryMenuItems}
142
+ </Select>
143
+ </ToolbarItem>
144
+ );
145
+ };
146
+
147
+ const buildFilterDropdown = () => {
148
+ const locationMenuItems = [
149
+ <SelectOption key="raleigh" value="Raleigh">
150
+ Raleigh
151
+ </SelectOption>,
152
+ <SelectOption key="san francisco" value="San Francisco">
153
+ San Francisco
154
+ </SelectOption>,
155
+ <SelectOption key="boston" value="Boston">
156
+ Boston
157
+ </SelectOption>,
158
+ <SelectOption key="atlanta" value="Atlanta">
159
+ Atlanta
160
+ </SelectOption>
161
+ ];
162
+
163
+ const statusMenuItems = [
164
+ <SelectOption hasCheckbox key="statusRunning" value="Running" isSelected={filters.status.includes('Running')}>
165
+ Running
166
+ </SelectOption>,
167
+ <SelectOption hasCheckbox key="statusStopped" value="Stopped" isSelected={filters.status.includes('Stopped')}>
168
+ Stopped
169
+ </SelectOption>,
170
+ <SelectOption hasCheckbox key="statusDown" value="Down" isSelected={filters.status.includes('Down')}>
171
+ Down
172
+ </SelectOption>,
173
+ <SelectOption hasCheckbox key="statusDegraded" value="Degraded" isSelected={filters.status.includes('Degraded')}>
174
+ Degraded
175
+ </SelectOption>,
176
+ <SelectOption
177
+ hasCheckbox
178
+ key="statusMaint"
179
+ value="Needs maintenance"
180
+ isSelected={filters.status.includes('Needs maintenance')}
181
+ >
182
+ Needs maintenance
183
+ </SelectOption>
184
+ ];
185
+
186
+ return (
187
+ <React.Fragment>
188
+ <ToolbarFilter
189
+ labels={filters.location}
190
+ deleteLabel={(category, label) => onDelete(category, label as string)}
191
+ categoryName="Location"
192
+ showToolbarItem={currentCategory === 'Location'}
193
+ >
194
+ <Select
195
+ aria-label="Location"
196
+ onSelect={onLocationSelect}
197
+ selected={filters.location[0]}
198
+ isOpen={isFilterDropdownOpen}
199
+ popperProps={{ minWidth: '100px' }}
200
+ toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
201
+ <MenuToggle
202
+ ref={toggleRef}
203
+ onClick={onFilterToggle}
204
+ isExpanded={isFilterDropdownOpen}
205
+ style={
206
+ {
207
+ width: '100%',
208
+ verticalAlign: 'text-bottom'
209
+ } as React.CSSProperties
210
+ }
211
+ >
212
+ {filters.location[0] || `Any`}
213
+ </MenuToggle>
214
+ )}
215
+ >
216
+ {locationMenuItems}
217
+ </Select>
218
+ </ToolbarFilter>
219
+ <ToolbarFilter
220
+ labels={filters.name}
221
+ deleteLabel={(category, label) => onDelete(category, label as string)}
222
+ categoryName="Name"
223
+ showToolbarItem={currentCategory === 'Name'}
224
+ >
225
+ <SearchInput
226
+ aria-label="name filter"
227
+ placeholder="Filter by name..."
228
+ onChange={(_event, value) => onInputChange(value)}
229
+ value={inputValue}
230
+ onClear={() => {
231
+ onInputChange('');
232
+ }}
233
+ onSearch={onNameInput}
234
+ />
235
+ </ToolbarFilter>
236
+ <ToolbarFilter
237
+ labels={filters.status}
238
+ deleteLabel={(category, label) => onDelete(category, label as string)}
239
+ categoryName="Status"
240
+ showToolbarItem={currentCategory === 'Status'}
241
+ >
242
+ <Select
243
+ aria-label="Status"
244
+ isOpen={isFilterDropdownOpen}
245
+ popperProps={{ minWidth: '100px' }}
246
+ onSelect={onStatusSelect}
247
+ selected={filters.status}
248
+ toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
249
+ <MenuToggle
250
+ ref={toggleRef}
251
+ onClick={onFilterToggle}
252
+ isExpanded={isFilterDropdownOpen}
253
+ style={
254
+ {
255
+ width: '100%',
256
+ verticalAlign: 'text-bottom'
257
+ } as React.CSSProperties
258
+ }
259
+ >
260
+ Filter by status
261
+ {filters.status.length > 0 && <Badge isRead>{filters.status.length}</Badge>}
262
+ </MenuToggle>
263
+ )}
264
+ >
265
+ {statusMenuItems}
266
+ </Select>
267
+ </ToolbarFilter>
268
+ </React.Fragment>
269
+ );
270
+ };
271
+
272
+ const renderToolbar = () => (
273
+ <Toolbar
274
+ id="toolbar-with-label-groups"
275
+ clearAllFilters={() => setFilters({ location: [], name: [], status: [] })}
276
+ collapseListedFiltersBreakpoint="xl"
277
+ >
278
+ <ToolbarContent>
279
+ <ToolbarToggleGroup toggleIcon={<FilterIcon />} breakpoint="xl">
280
+ <ToolbarGroup
281
+ variant="filter-group"
282
+ style={
283
+ {
284
+ lineHeight: '22px',
285
+ alignItems: 'center'
286
+ } as React.CSSProperties
287
+ }
288
+ >
289
+ {buildCategoryDropdown()}
290
+ {buildFilterDropdown()}
291
+ </ToolbarGroup>
292
+ </ToolbarToggleGroup>
293
+ </ToolbarContent>
294
+ </Toolbar>
295
+ );
296
+
297
+ const filteredRows =
298
+ filters.name.length > 0 || filters.location.length > 0 || filters.status.length > 0
299
+ ? rowData.filter(
300
+ (row) =>
301
+ (filters.name.length === 0 ||
302
+ filters.name.some((name) => row.name.toLowerCase().includes(name.toLowerCase()))) &&
303
+ (filters.location.length === 0 || filters.location.includes(row.location)) &&
304
+ (filters.status.length === 0 || filters.status.includes(row.status))
305
+ )
306
+ : rowData;
307
+
308
+ const emptyState = (
309
+ <EmptyState icon={SearchIcon} titleText="Clear all filters and try again." headingLevel="h5">
310
+ <EmptyStateBody>No results match the filter criteria. Clear all filters and try again.</EmptyStateBody>
311
+ <EmptyStateFooter>
312
+ <EmptyStateActions>
313
+ <Button
314
+ variant="link"
315
+ onClick={() => {
316
+ setFilters({ location: [], name: [], status: [] });
317
+ }}
318
+ >
319
+ Clear all filters
320
+ </Button>
321
+ </EmptyStateActions>
322
+ </EmptyStateFooter>
323
+ </EmptyState>
324
+ );
325
+
326
+ const renderLabel = (labelText: string) => {
327
+ switch (labelText) {
328
+ case 'Running':
329
+ return <Label color="green">{labelText}</Label>;
330
+ case 'Stopped':
331
+ return <Label color="orange">{labelText}</Label>;
332
+ case 'Needs maintenance':
333
+ return <Label color="blue">{labelText}</Label>;
334
+ case 'Down':
335
+ return <Label color="red">{labelText}</Label>;
336
+ }
337
+ };
338
+
339
+ return (
340
+ <React.Fragment>
341
+ {renderToolbar()}
342
+ <Table aria-label="Filterable Table Demo">
343
+ <Thead>
344
+ <Tr>
345
+ <Th key={0}>{columns[0]}</Th>
346
+ <Th key={1}>{columns[1]}</Th>
347
+ <Th key={2}>{columns[2]}</Th>
348
+ <Th key={3}>{columns[3]}</Th>
349
+ <Th key={4}>{columns[4]}</Th>
350
+ <Th key={5}>{columns[5]}</Th>
351
+ <Th key={6}>{columns[6]}</Th>
352
+ <Th key={7} width={10}>
353
+ {columns[7]}
354
+ </Th>
355
+ </Tr>
356
+ </Thead>
357
+ <Tbody>
358
+ {filteredRows.slice(0, 10).map((row, rowIndex) => (
359
+ <Tr key={rowIndex}>
360
+ <>
361
+ <Td dataLabel={columns[0]}>{row.name}</Td>
362
+ <Td dataLabel={columns[1]}>{row.threads}</Td>
363
+ <Td dataLabel={columns[2]}>{row.applications}</Td>
364
+ <Td dataLabel={columns[3]}>{row.workspaces}</Td>
365
+ <Td dataLabel={columns[4]}>{renderLabel(row.status)}</Td>
366
+ <Td dataLabel={columns[5]}>{row.location}</Td>
367
+ <Td dataLabel={columns[6]}>{row.lastModified}</Td>
368
+ <Td dataLabel={columns[7]} modifier="truncate">
369
+ <TableText>
370
+ <a href="#">{row.url}</a>
371
+ </TableText>
372
+ </Td>
373
+ </>
374
+ </Tr>
375
+ ))}
376
+ {filteredRows.length === 0 && (
377
+ <Tr>
378
+ <Td colSpan={8}>
379
+ <Bullseye>{emptyState}</Bullseye>
380
+ </Td>
381
+ </Tr>
382
+ )}
383
+ </Tbody>
384
+ </Table>
385
+ </React.Fragment>
386
+ );
387
+ };
@@ -3,32 +3,32 @@ import React from 'react';
3
3
  import {
4
4
  Button,
5
5
  Card,
6
+ Content,
6
7
  Dropdown,
7
8
  DropdownList,
8
9
  Flex,
9
10
  FlexItem,
10
- Label,
11
11
  MenuToggle,
12
12
  MenuToggleElement,
13
- OverflowMenu,
14
- OverflowMenuContent,
15
- OverflowMenuControl,
16
- OverflowMenuDropdownItem,
17
- OverflowMenuGroup,
18
- OverflowMenuItem,
19
13
  PageSection,
20
- PageSectionVariants,
21
14
  Pagination,
22
- Select,
23
15
  SelectOption,
24
16
  SelectList,
25
17
  SelectGroup,
26
- Text,
27
- TextContent,
28
18
  Toolbar,
29
19
  ToolbarContent,
30
20
  ToolbarGroup,
31
- ToolbarItem
21
+ ToolbarItem,
22
+ OverflowMenuDropdownItem,
23
+ PaginationVariant,
24
+ Label,
25
+ Select,
26
+ OverflowMenu,
27
+ OverflowMenuContent,
28
+ OverflowMenuControl,
29
+ OverflowMenuGroup,
30
+ OverflowMenuItem,
31
+ PageSectionVariants
32
32
  } from '@patternfly/react-core';
33
33
  import { Table, Thead, Tr, Th, Tbody, Td } from '@patternfly/react-table';
34
34
  import CloneIcon from '@patternfly/react-icons/dist/esm/icons/clone-icon';
@@ -38,15 +38,17 @@ import CodeIcon from '@patternfly/react-icons/dist/esm/icons/code-icon';
38
38
  import CodeBranchIcon from '@patternfly/react-icons/dist/esm/icons/code-branch-icon';
39
39
  import SortAmountDownIcon from '@patternfly/react-icons/dist/esm/icons/sort-amount-down-icon';
40
40
  import CubeIcon from '@patternfly/react-icons/dist/esm/icons/cube-icon';
41
- import DashboardWrapper from '@patternfly/react-core/src/demos/examples/DashboardWrapper';
41
+ import { DashboardWrapper } from '@patternfly/react-table/dist/esm/demos/DashboardWrapper';
42
42
  import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
43
- import { rows, columns } from '@patternfly/react-table/src/docs/demos/table-demos/sampleData';
43
+ import { rows, columns, SampleDataRow } from '@patternfly/react-table/dist/esm/demos/sampleData';
44
+
45
+ type Direction = 'asc' | 'desc' | undefined;
44
46
 
45
- export const ComposableTableSortable = () => {
47
+ export const TableSortableResponsive: React.FunctionComponent = () => {
46
48
  const [isKebabDropdownOpen, setIsKebabDropdownOpen] = React.useState(false);
47
49
 
48
- const sortRows = (r, sortIndex, sortDirection) => {
49
- return [...r].sort((a, b) => {
50
+ const sortRows = (rows: SampleDataRow[], sortIndex: number, sortDirection: Direction) =>
51
+ [...rows].sort((a, b) => {
50
52
  let returnValue = 0;
51
53
  if (sortIndex === 0 || sortIndex === 7) {
52
54
  returnValue = 1;
@@ -62,7 +64,6 @@ export const ComposableTableSortable = () => {
62
64
  }
63
65
  return returnValue;
64
66
  });
65
- };
66
67
 
67
68
  const [sortedData, setSortedData] = React.useState([...sortRows(rows, 0, 'asc')]);
68
69
  const [sortedRows, setSortedRows] = React.useState([...sortedData]);
@@ -72,11 +73,11 @@ export const ComposableTableSortable = () => {
72
73
  // index of the currently active column
73
74
  const [activeSortIndex, setActiveSortIndex] = React.useState(0);
74
75
  // sort direction of the currently active column
75
- const [activeSortDirection, setActiveSortDirection] = React.useState('asc');
76
+ const [activeSortDirection, setActiveSortDirection] = React.useState<Direction>('asc');
76
77
  // sort dropdown expansion
77
78
  const [isSortDropdownOpen, setIsSortDropdownOpen] = React.useState(false);
78
79
 
79
- const onSort = (event, index, direction) => {
80
+ const onSort = (_event: any, index: number, direction: Direction) => {
80
81
  setActiveSortIndex(index);
81
82
  setActiveSortDirection(direction);
82
83
 
@@ -86,20 +87,20 @@ export const ComposableTableSortable = () => {
86
87
  const kebabDropdownItems = [<OverflowMenuDropdownItem key="kebab-1">Some action</OverflowMenuDropdownItem>];
87
88
 
88
89
  React.useEffect(() => {
89
- setSortedRows(sortedData.slice((page - 1) * perPage, page * perPage - 1));
90
+ setSortedRows(sortedData.slice((page - 1) * perPage, page * perPage));
90
91
  }, [sortedData, page, perPage]);
91
92
 
92
- const handleSetPage = (_evt, newPage) => {
93
+ const handleSetPage = (_evt: React.MouseEvent | React.KeyboardEvent | MouseEvent, newPage: number) => {
93
94
  setPage(newPage);
94
95
  };
95
96
 
96
- const handlePerPageSelect = (_evt, newPerPage) => {
97
+ const handlePerPageSelect = (_evt: React.MouseEvent | React.KeyboardEvent | MouseEvent, newPerPage: number) => {
97
98
  setPerPage(newPerPage);
98
99
  };
99
100
 
100
- const renderPagination = (variant) => (
101
+ const renderPagination = (variant: 'top' | 'bottom' | PaginationVariant, isCompact: boolean) => (
101
102
  <Pagination
102
- isCompact
103
+ isCompact={isCompact}
103
104
  itemCount={rows.length}
104
105
  page={page}
105
106
  perPage={perPage}
@@ -118,7 +119,7 @@ export const ComposableTableSortable = () => {
118
119
  />
119
120
  );
120
121
 
121
- const renderLabel = (labelText) => {
122
+ const renderLabel = (labelText: string) => {
122
123
  switch (labelText) {
123
124
  case 'Running':
124
125
  return <Label color="green">{labelText}</Label>;
@@ -138,12 +139,12 @@ export const ComposableTableSortable = () => {
138
139
  <Select
139
140
  isOpen={isSortDropdownOpen}
140
141
  selected={[activeSortDirection, activeSortIndex]}
141
- onOpenChange={(isOpen) => setIsSortDropdownOpen(isOpen)}
142
- onSelect={(event, value) => {
142
+ onOpenChange={(isOpen: boolean) => setIsSortDropdownOpen(isOpen)}
143
+ onSelect={(event: React.MouseEvent<Element, MouseEvent>, value: string | number) => {
143
144
  if (value === 'asc' || value === 'desc') {
144
145
  onSort(event, activeSortIndex, value);
145
146
  } else {
146
- onSort(event, value, activeSortDirection !== 'none' ? activeSortDirection : 'asc');
147
+ onSort(event, value as number, activeSortDirection ?? 'asc');
147
148
  }
148
149
  }}
149
150
  toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
@@ -152,9 +153,8 @@ export const ComposableTableSortable = () => {
152
153
  onClick={() => setIsSortDropdownOpen(!isSortDropdownOpen)}
153
154
  isExpanded={isSortDropdownOpen}
154
155
  variant="plain"
155
- >
156
- <SortAmountDownIcon />
157
- </MenuToggle>
156
+ icon={<SortAmountDownIcon />}
157
+ />
158
158
  )}
159
159
  >
160
160
  <SelectGroup label="Sort column">
@@ -193,17 +193,16 @@ export const ComposableTableSortable = () => {
193
193
  <OverflowMenuControl hasAdditionalOptions>
194
194
  <Dropdown
195
195
  onSelect={() => setIsKebabDropdownOpen(!isKebabDropdownOpen)}
196
- onOpenChange={(isKebabDropdownOpen) => setIsKebabDropdownOpen(isKebabDropdownOpen)}
197
- toggle={(toggleRef) => (
196
+ onOpenChange={(isKebabDropdownOpen: boolean) => setIsKebabDropdownOpen(isKebabDropdownOpen)}
197
+ toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
198
198
  <MenuToggle
199
199
  ref={toggleRef}
200
200
  aria-label="overflow menu"
201
201
  variant="plain"
202
202
  onClick={() => setIsKebabDropdownOpen(!isKebabDropdownOpen)}
203
203
  isExpanded={false}
204
- >
205
- <EllipsisVIcon />
206
- </MenuToggle>
204
+ icon={<EllipsisVIcon />}
205
+ />
207
206
  )}
208
207
  isOpen={isKebabDropdownOpen}
209
208
  >
@@ -212,7 +211,7 @@ export const ComposableTableSortable = () => {
212
211
  </OverflowMenuControl>
213
212
  </OverflowMenu>
214
213
  </ToolbarItem>
215
- <ToolbarGroup variant="icon-button-group">
214
+ <ToolbarGroup variant="action-group-plain">
216
215
  <ToolbarItem>
217
216
  <Button aria-label="Edit" variant="plain" icon={<EditIcon />} />
218
217
  </ToolbarItem>
@@ -232,13 +231,13 @@ export const ComposableTableSortable = () => {
232
231
  <React.Fragment>
233
232
  <DashboardWrapper>
234
233
  <PageSection isWidthLimited variant={PageSectionVariants.light}>
235
- <TextContent>
236
- <Text component="h1">Table demos</Text>
237
- <Text component="p">
234
+ <Content>
235
+ <h1>Table demos</h1>
236
+ <p>
238
237
  Below is an example of a responsive sortable table. When the screen size shrinks the table into a compact
239
238
  form, the toolbar will display a dropdown menu containing sorting options.
240
- </Text>
241
- </TextContent>
239
+ </p>
240
+ </Content>
242
241
  </PageSection>
243
242
  <PageSection
244
243
  padding={{
@@ -13,29 +13,42 @@ import {
13
13
  MenuToggleElement,
14
14
  Label,
15
15
  Select,
16
- SelectOption
16
+ SelectOption,
17
+ PaginationVariant
17
18
  } from '@patternfly/react-core';
18
19
  import { Table, TableText, Thead, Tr, Th, Tbody, Td } from '@patternfly/react-table';
19
20
  import FilterIcon from '@patternfly/react-icons/dist/esm/icons/filter-icon';
20
- import DashboardWrapper from '@patternfly/react-core/src/demos/examples/DashboardWrapper';
21
- import { rows, columns } from '@patternfly/react-table/src/docs/demos/table-demos/sampleData';
21
+ import { DashboardWrapper } from '@patternfly/react-table/dist/esm/demos/DashboardWrapper';
22
+ import { rows, columns } from '@patternfly/react-table/dist/esm/demos/sampleData';
22
23
 
23
- export const StaticBottomPagination = () => {
24
+ export const TableStaticBottomPagination: React.FunctionComponent = () => {
24
25
  const [isSelectOpen, setIsSelectOpen] = React.useState(false);
25
26
  const [page, setPage] = React.useState(1);
26
27
  const [perPage, setPerPage] = React.useState(10);
27
28
  const [paginatedRows, setPaginatedRows] = React.useState(rows.slice(0, 10));
28
- const handleSetPage = (_evt, newPage, perPage, startIdx, endIdx) => {
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
- handlePerPageSelect = (_evt, newPerPage, newPage, startIdx, endIdx) => {
39
+ const handlePerPageSelect = (
40
+ _evt: React.MouseEvent | React.KeyboardEvent | MouseEvent,
41
+ newPerPage: number,
42
+ newPage: number,
43
+ startIdx: number,
44
+ endIdx: number
45
+ ) => {
33
46
  setPaginatedRows(rows.slice(startIdx, endIdx));
34
47
  setPage(newPage);
35
48
  setPerPage(newPerPage);
36
49
  };
37
50
 
38
- const renderPagination = (variant, isCompact) => (
51
+ const renderPagination = (variant: PaginationVariant | 'bottom' | 'top', isCompact: boolean) => (
39
52
  <Pagination
40
53
  isCompact={isCompact}
41
54
  itemCount={rows.length}
@@ -51,7 +64,7 @@ export const StaticBottomPagination = () => {
51
64
  />
52
65
  );
53
66
 
54
- const renderLabel = (labelText) => {
67
+ const renderLabel = (labelText: string) => {
55
68
  switch (labelText) {
56
69
  case 'Running':
57
70
  return (
@@ -88,12 +101,17 @@ export const StaticBottomPagination = () => {
88
101
  id="select-example"
89
102
  aria-label="Select Input"
90
103
  toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
91
- <MenuToggle ref={toggleRef} onClick={() => setIsSelectOpen(!isSelectOpen)} isExpanded={isSelectOpen}>
92
- <FilterIcon /> Status
104
+ <MenuToggle
105
+ icon={<FilterIcon />}
106
+ ref={toggleRef}
107
+ onClick={() => setIsSelectOpen(!isSelectOpen)}
108
+ isExpanded={isSelectOpen}
109
+ >
110
+ Status
93
111
  </MenuToggle>
94
112
  )}
95
113
  isOpen={isSelectOpen}
96
- onOpenChange={(isOpen) => setIsSelectOpen(isOpen)}
114
+ onOpenChange={(isOpen: boolean) => setIsSelectOpen(isOpen)}
97
115
  onSelect={() => setIsSelectOpen(!isSelectOpen)}
98
116
  >
99
117
  {[