@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,484 @@
1
+ import React from 'react';
2
+
3
+ import {
4
+ Button,
5
+ Card,
6
+ Content,
7
+ DataList,
8
+ DataListCheck,
9
+ DataListItem,
10
+ DataListItemRow,
11
+ DataListCell,
12
+ DataListItemCells,
13
+ Label,
14
+ Toolbar,
15
+ ToolbarContent,
16
+ ToolbarItem,
17
+ MenuToggle,
18
+ Modal,
19
+ OverflowMenu,
20
+ OverflowMenuGroup,
21
+ OverflowMenuItem,
22
+ PageSection,
23
+ Pagination,
24
+ PaginationVariant
25
+ } from '@patternfly/react-core';
26
+ import { Table, TableText, Thead, Tr, Th, Tbody, Td } from '@patternfly/react-table';
27
+ import FilterIcon from '@patternfly/react-icons/dist/esm/icons/filter-icon';
28
+ import SortAmountDownIcon from '@patternfly/react-icons/dist/esm/icons/sort-amount-down-icon';
29
+ import { DashboardWrapper } from '@patternfly/react-table/dist/esm/demos/DashboardWrapper';
30
+ import { capitalize } from '@patternfly/react-table/src/components/Table/utils/utils';
31
+ import { rows, columns, SampleDataRow } from '@patternfly/react-table/dist/esm/demos/sampleData';
32
+
33
+ export const TableColumnManagement: React.FunctionComponent = () => {
34
+ const defaultColumns = columns;
35
+ const defaultRows = rows;
36
+
37
+ const [filters, setFilters] = React.useState<string[]>([]);
38
+ const [filteredColumns, setFilteredColumns] = React.useState<string[]>([]);
39
+ const [filteredRows, setFilteredRows] = React.useState<SampleDataRow[]>([]);
40
+ const [managedColumns, setManagedColumns] = React.useState<string[]>(defaultColumns);
41
+ const [managedRows, setManagedRows] = React.useState<SampleDataRow[]>(defaultRows);
42
+ const [isModalOpen, setIsModalOpen] = React.useState(false);
43
+ const [checkedState, setCheckedState] = React.useState<boolean[]>(Array(columns.length).fill(true));
44
+ const [page, setPage] = React.useState(1);
45
+ const [perPage, setPerPage] = React.useState(10);
46
+ const [paginatedRows, setPaginatedRows] = React.useState<any[]>(rows);
47
+
48
+ const matchCheckboxNameToColumn = (name: string): string => {
49
+ switch (name) {
50
+ case 'check1':
51
+ return 'Servers';
52
+ case 'check2':
53
+ return 'Threads';
54
+ case 'check3':
55
+ return 'Applications';
56
+ case 'check4':
57
+ return 'Workspaces';
58
+ case 'check5':
59
+ return 'Status';
60
+ case 'check6':
61
+ return 'Location';
62
+ case 'check7':
63
+ return 'Last Modified';
64
+ case 'check8':
65
+ return 'URL';
66
+ default:
67
+ return '';
68
+ }
69
+ };
70
+
71
+ const matchSelectedColumnNameToAttr = (name: string): string => {
72
+ switch (name) {
73
+ case 'Servers':
74
+ return 'name';
75
+ case 'Threads':
76
+ return 'threads';
77
+ case 'Applications':
78
+ return 'applications';
79
+ case 'Workspaces':
80
+ return 'workspaces';
81
+ case 'Status':
82
+ return 'status';
83
+ case 'Location':
84
+ return 'location';
85
+ case 'Last Modified':
86
+ return 'lastModified';
87
+ case 'URL':
88
+ return 'url';
89
+ default:
90
+ return '';
91
+ }
92
+ };
93
+
94
+ // Pagination logic
95
+ const handleSetPage = (
96
+ _evt: MouseEvent | React.MouseEvent<Element, MouseEvent> | React.KeyboardEvent<Element>,
97
+ newPage: number
98
+ ) => {
99
+ setPage(newPage);
100
+ };
101
+
102
+ const handlePerPageSelect = (
103
+ _evt: MouseEvent | React.MouseEvent<Element, MouseEvent> | React.KeyboardEvent<Element>,
104
+ newPerPage: number
105
+ ) => {
106
+ setPerPage(newPerPage);
107
+ };
108
+
109
+ const renderPagination = (variant: 'top' | 'bottom' | PaginationVariant, isCompact: boolean) => (
110
+ <Pagination
111
+ isCompact={isCompact}
112
+ itemCount={rows.length}
113
+ page={page}
114
+ perPage={perPage}
115
+ onSetPage={handleSetPage}
116
+ onPerPageSelect={handlePerPageSelect}
117
+ variant={variant}
118
+ titles={{
119
+ paginationAriaLabel: `${variant} pagination`
120
+ }}
121
+ />
122
+ );
123
+
124
+ React.useEffect(() => {
125
+ setPaginatedRows(managedRows.slice((page - 1) * perPage, page * perPage - 1));
126
+ }, [managedRows, page, perPage]);
127
+
128
+ // Removes attribute from each node object in Data.jsx
129
+ const removePropFromObject = (object: any, keys: string[]): any =>
130
+ keys.reduce((obj, prop) => {
131
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
132
+ const { [prop]: _, ...keep } = obj;
133
+ return keep;
134
+ }, object);
135
+
136
+ // Filters columns out of table that are not selected in the column management modal
137
+ const filterData = (checked: boolean, name: string) => {
138
+ const selectedColumn = matchSelectedColumnNameToAttr(name);
139
+
140
+ const filteredRows: SampleDataRow[] = [];
141
+ if (checked) {
142
+ const updatedFilters = filters.filter((item) => item !== selectedColumn);
143
+
144
+ // Only show the names of columns that were selected in the modal
145
+ const filteredColumns = defaultColumns.filter(
146
+ (column) => !updatedFilters.includes(matchSelectedColumnNameToAttr(column))
147
+ );
148
+
149
+ // Remove the attributes (i.e. "columns") that were not selected
150
+ defaultRows.forEach((item) => filteredRows.push(removePropFromObject(item, updatedFilters)));
151
+
152
+ setFilters(updatedFilters);
153
+ setFilteredColumns(filteredColumns);
154
+ setFilteredRows(filteredRows);
155
+ } else {
156
+ const updatedFilters = filters;
157
+ updatedFilters.push(selectedColumn);
158
+
159
+ // Only show the names of columns that were selected in the modal
160
+ const filteredColumns = managedColumns.filter(
161
+ (column) => !filters.includes(matchSelectedColumnNameToAttr(column))
162
+ );
163
+
164
+ // Remove the attributes (i.e. "columns") that were not selected
165
+ managedRows.forEach((item) => filteredRows.push(removePropFromObject(item, updatedFilters)));
166
+
167
+ setFilters(updatedFilters);
168
+ setFilteredColumns(filteredColumns);
169
+ setFilteredRows(filteredRows);
170
+ }
171
+ };
172
+
173
+ const unfilterAllData = () => {
174
+ setFilters([]);
175
+ setFilteredColumns(defaultColumns);
176
+ setFilteredRows(defaultRows);
177
+ };
178
+
179
+ const handleChange = (event: React.FormEvent<HTMLInputElement>, checked: boolean) => {
180
+ const target = event.currentTarget;
181
+ const value = target.type === 'checkbox' ? target.checked : target.value;
182
+
183
+ // Remove any columns from the table that aren't checked
184
+ filterData(checked, matchCheckboxNameToColumn(target.name));
185
+ const checkedIndex: number = columns.findIndex((element) => element === matchCheckboxNameToColumn(target.name));
186
+
187
+ const updatedCheckedState: boolean[] = [...checkedState];
188
+ updatedCheckedState[checkedIndex] = value as boolean;
189
+ setCheckedState(updatedCheckedState);
190
+ };
191
+
192
+ const handleModalToggle = (_event: React.MouseEvent<Element, MouseEvent> | KeyboardEvent) => {
193
+ setIsModalOpen(!isModalOpen);
194
+ };
195
+
196
+ const onSave = () => {
197
+ setManagedColumns(filteredColumns);
198
+ setManagedRows(filteredRows);
199
+ setPaginatedRows(filteredRows);
200
+ setIsModalOpen(!isModalOpen);
201
+ };
202
+
203
+ const selectAllColumns = () => {
204
+ unfilterAllData();
205
+ setCheckedState(Array(columns.length).fill(true));
206
+ };
207
+
208
+ const renderModal = () => (
209
+ <Modal
210
+ title="Manage columns"
211
+ isOpen={isModalOpen}
212
+ variant="small"
213
+ description={
214
+ <Content>
215
+ <p>Selected categories will be displayed in the table.</p>
216
+ <Button isInline onClick={selectAllColumns} variant="link">
217
+ Select all
218
+ </Button>
219
+ </Content>
220
+ }
221
+ onClose={handleModalToggle}
222
+ actions={[
223
+ <Button key="save" variant="primary" onClick={onSave}>
224
+ Save
225
+ </Button>,
226
+ <Button key="cancel" variant="link" onClick={handleModalToggle}>
227
+ Cancel
228
+ </Button>
229
+ ]}
230
+ >
231
+ <DataList aria-label="Table column management" id="table-column-management" isCompact>
232
+ <DataListItem aria-labelledby="table-column-management-item1">
233
+ <DataListItemRow>
234
+ <DataListCheck
235
+ aria-labelledby="table-column-management-item1"
236
+ checked={checkedState[0]}
237
+ name="check1"
238
+ id="check1"
239
+ onChange={handleChange}
240
+ />
241
+ <DataListItemCells
242
+ dataListCells={[
243
+ <DataListCell id="table-column-management-item1" key="table-column-management-item1">
244
+ <label htmlFor="check1">{columns[0]}</label>
245
+ </DataListCell>
246
+ ]}
247
+ />
248
+ </DataListItemRow>
249
+ </DataListItem>
250
+ <DataListItem aria-labelledby="table-column-management-item2">
251
+ <DataListItemRow>
252
+ <DataListCheck
253
+ aria-labelledby="table-column-management-item2"
254
+ checked={checkedState[1]}
255
+ name="check2"
256
+ id="check2"
257
+ onChange={handleChange}
258
+ />
259
+ <DataListItemCells
260
+ dataListCells={[
261
+ <DataListCell id="table-column-management-item2" key="table-column-management-item2">
262
+ <label htmlFor="check2">{columns[1]}</label>
263
+ </DataListCell>
264
+ ]}
265
+ />
266
+ </DataListItemRow>
267
+ </DataListItem>
268
+ <DataListItem aria-labelledby="table-column-management-item3">
269
+ <DataListItemRow>
270
+ <DataListCheck
271
+ aria-labelledby="table-column-management-item3"
272
+ checked={checkedState[2]}
273
+ name="check3"
274
+ id="check3"
275
+ onChange={handleChange}
276
+ />
277
+ <DataListItemCells
278
+ dataListCells={[
279
+ <DataListCell id="table-column-management-item3" key="table-column-management-item3">
280
+ <label htmlFor="check3">{columns[2]}</label>
281
+ </DataListCell>
282
+ ]}
283
+ />
284
+ </DataListItemRow>
285
+ </DataListItem>
286
+ <DataListItem aria-labelledby="table-column-management-item4">
287
+ <DataListItemRow>
288
+ <DataListCheck
289
+ aria-labelledby="table-column-management-item4"
290
+ checked={checkedState[3]}
291
+ name="check4"
292
+ id="check4"
293
+ onChange={handleChange}
294
+ />
295
+ <DataListItemCells
296
+ dataListCells={[
297
+ <DataListCell id="table-column-management-item4" key="table-column-management-item4">
298
+ <label htmlFor="check4">{columns[3]}</label>
299
+ </DataListCell>
300
+ ]}
301
+ />
302
+ </DataListItemRow>
303
+ </DataListItem>
304
+ <DataListItem aria-labelledby="table-column-management-item4">
305
+ <DataListItemRow>
306
+ <DataListCheck
307
+ aria-labelledby="table-column-management-item4"
308
+ checked={checkedState[4]}
309
+ name="check5"
310
+ id="check5"
311
+ onChange={handleChange}
312
+ />
313
+ <DataListItemCells
314
+ dataListCells={[
315
+ <DataListCell id="table-column-management-item4" key="table-column-management-item4">
316
+ <label htmlFor="check5">{columns[4]}</label>
317
+ </DataListCell>
318
+ ]}
319
+ />
320
+ </DataListItemRow>
321
+ </DataListItem>
322
+ <DataListItem aria-labelledby="table-column-management-item5">
323
+ <DataListItemRow>
324
+ <DataListCheck
325
+ aria-labelledby="table-column-management-item5"
326
+ checked={checkedState[5]}
327
+ name="check6"
328
+ id="check6"
329
+ onChange={handleChange}
330
+ />
331
+ <DataListItemCells
332
+ dataListCells={[
333
+ <DataListCell id="table-column-management-item5" key="table-column-management-item5">
334
+ <label htmlFor="check6">{columns[5]}</label>
335
+ </DataListCell>
336
+ ]}
337
+ />
338
+ </DataListItemRow>
339
+ </DataListItem>
340
+ <DataListItem aria-labelledby="table-column-management-item6">
341
+ <DataListItemRow>
342
+ <DataListCheck
343
+ aria-labelledby="table-column-management-item6"
344
+ checked={checkedState[6]}
345
+ name="check7"
346
+ id="check7"
347
+ onChange={handleChange}
348
+ />
349
+ <DataListItemCells
350
+ dataListCells={[
351
+ <DataListCell id="table-column-management-item6" key="table-column-management-item5">
352
+ <label htmlFor="check7">{columns[6]}</label>
353
+ </DataListCell>
354
+ ]}
355
+ />
356
+ </DataListItemRow>
357
+ </DataListItem>
358
+ <DataListItem aria-labelledby="table-column-management-item5">
359
+ <DataListItemRow>
360
+ <DataListCheck
361
+ aria-labelledby="table-column-management-item5"
362
+ checked={checkedState[7]}
363
+ name="check8"
364
+ id="check8"
365
+ onChange={handleChange}
366
+ />
367
+ <DataListItemCells
368
+ dataListCells={[
369
+ <DataListCell id="table-column-management-item7" key="table-column-management-item7">
370
+ <label htmlFor="check8">{columns[7]}</label>
371
+ </DataListCell>
372
+ ]}
373
+ />
374
+ </DataListItemRow>
375
+ </DataListItem>
376
+ </DataList>
377
+ </Modal>
378
+ );
379
+
380
+ const renderLabel = (labelText: string): JSX.Element => {
381
+ switch (labelText) {
382
+ case 'Running':
383
+ return <Label color="green">{labelText}</Label>;
384
+ case 'Stopped':
385
+ return <Label color="orange">{labelText}</Label>;
386
+ case 'Needs maintenance':
387
+ return <Label color="blue">{labelText}</Label>;
388
+ case 'Down':
389
+ return <Label color="red">{labelText}</Label>;
390
+ default:
391
+ return <></>;
392
+ }
393
+ };
394
+
395
+ const toolbarItems = (
396
+ <React.Fragment>
397
+ <Toolbar id="page-layout-table-column-management-action-toolbar-top">
398
+ <span id="page-layout-table-column-management-action-toolbar-top-select-checkbox-label" hidden>
399
+ Choose one
400
+ </span>
401
+ <ToolbarContent>
402
+ <ToolbarItem variant="overflow-menu">
403
+ <OverflowMenu breakpoint="md">
404
+ <OverflowMenuItem>
405
+ <MenuToggle>
406
+ <FilterIcon /> Name
407
+ </MenuToggle>
408
+ </OverflowMenuItem>
409
+ <OverflowMenuItem>
410
+ <MenuToggle variant="plain" aria-label="Sort columns">
411
+ <SortAmountDownIcon aria-hidden="true" />
412
+ </MenuToggle>
413
+ </OverflowMenuItem>
414
+ <OverflowMenuGroup groupType="button" isPersistent>
415
+ <OverflowMenuItem>
416
+ <Button variant="primary">Action</Button>
417
+ </OverflowMenuItem>
418
+ <OverflowMenuItem isPersistent>
419
+ <Button variant="link" onClick={handleModalToggle}>
420
+ Manage columns
421
+ </Button>
422
+ </OverflowMenuItem>
423
+ </OverflowMenuGroup>
424
+ </OverflowMenu>
425
+ </ToolbarItem>
426
+ <ToolbarItem variant="pagination">{renderPagination('top', false)}</ToolbarItem>
427
+ </ToolbarContent>
428
+ </Toolbar>
429
+ </React.Fragment>
430
+ );
431
+
432
+ return (
433
+ <React.Fragment>
434
+ <DashboardWrapper hasPageTemplateTitle>
435
+ <PageSection isFilled>
436
+ <Card>
437
+ {toolbarItems}
438
+ <Table variant="compact" aria-label="Column Management Table">
439
+ <Thead>
440
+ <Tr>
441
+ {managedColumns.map((column, columnIndex) => (
442
+ <Th key={columnIndex}>{column}</Th>
443
+ ))}
444
+ </Tr>
445
+ </Thead>
446
+ <Tbody>
447
+ {paginatedRows.map((row, rowIndex) => (
448
+ <Tr key={rowIndex}>
449
+ <>
450
+ {Object.entries(row).map(([key, value]) =>
451
+ // eslint-disable-next-line no-nested-ternary
452
+ key === 'status' ? (
453
+ // eslint-disable-next-line react/jsx-key
454
+ <Td width={15} dataLabel="Status">
455
+ {renderLabel(value as string)}
456
+ </Td>
457
+ ) : key === 'url' ? (
458
+ <Td width={10} dataLabel="URL" modifier="truncate">
459
+ <TableText>
460
+ <a href="#">{row.url}</a>
461
+ </TableText>
462
+ </Td>
463
+ ) : (
464
+ <Td
465
+ width={key === 'name' ? 15 : 10}
466
+ dataLabel={key === 'lastModified' ? 'Last modified' : capitalize(key)}
467
+ >
468
+ {value as string}
469
+ </Td>
470
+ )
471
+ )}
472
+ </>
473
+ </Tr>
474
+ ))}
475
+ </Tbody>
476
+ </Table>
477
+ {renderPagination('bottom', false)}
478
+ {renderModal()}
479
+ </Card>
480
+ </PageSection>
481
+ </DashboardWrapper>
482
+ </React.Fragment>
483
+ );
484
+ };