@patternfly/react-table 5.1.0 → 5.1.1-prerelease.2

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 (199) hide show
  1. package/CHANGELOG.md +14 -2
  2. package/components/package.json +1 -1
  3. package/deprecated/package.json +1 -1
  4. package/dist/dynamic/components/Table/package.json +1 -1
  5. package/dist/dynamic/components/Table/utils/decorators/package.json +1 -1
  6. package/dist/dynamic/components/Table/utils/package.json +1 -1
  7. package/dist/dynamic/deprecated/components/Table/base/package.json +1 -1
  8. package/dist/dynamic/deprecated/components/Table/package.json +1 -1
  9. package/dist/dynamic/deprecated/components/package.json +1 -1
  10. package/dist/esm/components/Table/ActionsColumn.d.ts.map +1 -1
  11. package/dist/esm/components/Table/ActionsColumn.js.map +1 -1
  12. package/dist/esm/components/Table/EditColumn.js +3 -3
  13. package/dist/esm/components/Table/EditColumn.js.map +1 -1
  14. package/dist/esm/components/Table/EditableSelectInputCell.d.ts.map +1 -1
  15. package/dist/esm/components/Table/EditableSelectInputCell.js.map +1 -1
  16. package/dist/esm/components/Table/RowWrapper.d.ts +2 -1
  17. package/dist/esm/components/Table/RowWrapper.d.ts.map +1 -1
  18. package/dist/esm/components/Table/RowWrapper.js +2 -1
  19. package/dist/esm/components/Table/RowWrapper.js.map +1 -1
  20. package/dist/esm/components/Table/Table.d.ts +3 -1
  21. package/dist/esm/components/Table/Table.d.ts.map +1 -1
  22. package/dist/esm/components/Table/Table.js +4 -4
  23. package/dist/esm/components/Table/Table.js.map +1 -1
  24. package/dist/esm/components/Table/base/evaluate-transforms.js +2 -2
  25. package/dist/esm/components/Table/base/evaluate-transforms.js.map +1 -1
  26. package/dist/esm/components/Table/base/provider.d.ts +3 -2
  27. package/dist/esm/components/Table/base/provider.d.ts.map +1 -1
  28. package/dist/esm/components/Table/base/provider.js +2 -1
  29. package/dist/esm/components/Table/base/provider.js.map +1 -1
  30. package/dist/esm/components/Table/base/types.d.ts +1 -1
  31. package/dist/esm/components/Table/base/types.d.ts.map +1 -1
  32. package/dist/esm/components/Table/base/types.js.map +1 -1
  33. package/dist/esm/components/Table/utils/decorators/cellActions.d.ts.map +1 -1
  34. package/dist/esm/components/Table/utils/decorators/cellActions.js.map +1 -1
  35. package/dist/esm/components/Table/utils/decorators/cellWidth.d.ts.map +1 -1
  36. package/dist/esm/components/Table/utils/decorators/cellWidth.js.map +1 -1
  37. package/dist/esm/components/Table/utils/decorators/classNames.d.ts.map +1 -1
  38. package/dist/esm/components/Table/utils/decorators/classNames.js +1 -1
  39. package/dist/esm/components/Table/utils/decorators/classNames.js.map +1 -1
  40. package/dist/esm/components/Table/utils/decorators/editable.js +2 -2
  41. package/dist/esm/components/Table/utils/decorators/editable.js.map +1 -1
  42. package/dist/esm/components/Table/utils/headerUtils.d.ts.map +1 -1
  43. package/dist/esm/components/Table/utils/headerUtils.js +1 -6
  44. package/dist/esm/components/Table/utils/headerUtils.js.map +1 -1
  45. package/dist/esm/components/Table/utils/utils.d.ts.map +1 -1
  46. package/dist/esm/components/Table/utils/utils.js +7 -10
  47. package/dist/esm/components/Table/utils/utils.js.map +1 -1
  48. package/dist/esm/deprecated/components/Table/BodyWrapper.js +1 -1
  49. package/dist/esm/deprecated/components/Table/BodyWrapper.js.map +1 -1
  50. package/dist/esm/deprecated/components/Table/Table.d.ts +2 -1
  51. package/dist/esm/deprecated/components/Table/Table.d.ts.map +1 -1
  52. package/dist/esm/deprecated/components/Table/Table.js +2 -1
  53. package/dist/esm/deprecated/components/Table/Table.js.map +1 -1
  54. package/dist/esm/deprecated/components/Table/base/body-row.d.ts +2 -1
  55. package/dist/esm/deprecated/components/Table/base/body-row.d.ts.map +1 -1
  56. package/dist/esm/deprecated/components/Table/base/body-row.js +2 -1
  57. package/dist/esm/deprecated/components/Table/base/body-row.js.map +1 -1
  58. package/dist/esm/deprecated/components/Table/base/body.d.ts.map +1 -1
  59. package/dist/esm/deprecated/components/Table/base/body.js.map +1 -1
  60. package/dist/esm/deprecated/components/Table/base/header.d.ts.map +1 -1
  61. package/dist/esm/deprecated/components/Table/base/header.js.map +1 -1
  62. package/dist/js/components/Table/ActionsColumn.d.ts.map +1 -1
  63. package/dist/js/components/Table/ActionsColumn.js +6 -6
  64. package/dist/js/components/Table/ActionsColumn.js.map +1 -1
  65. package/dist/js/components/Table/CollapseColumn.js +2 -2
  66. package/dist/js/components/Table/CollapseColumn.js.map +1 -1
  67. package/dist/js/components/Table/DraggableCell.js +2 -2
  68. package/dist/js/components/Table/DraggableCell.js.map +1 -1
  69. package/dist/js/components/Table/EditColumn.js +7 -7
  70. package/dist/js/components/Table/EditColumn.js.map +1 -1
  71. package/dist/js/components/Table/EditableSelectInputCell.d.ts.map +1 -1
  72. package/dist/js/components/Table/EditableSelectInputCell.js +1 -1
  73. package/dist/js/components/Table/EditableSelectInputCell.js.map +1 -1
  74. package/dist/js/components/Table/EditableTextCell.js +1 -1
  75. package/dist/js/components/Table/EditableTextCell.js.map +1 -1
  76. package/dist/js/components/Table/FavoritesCell.js +2 -2
  77. package/dist/js/components/Table/FavoritesCell.js.map +1 -1
  78. package/dist/js/components/Table/HeaderCellInfoWrapper.js +4 -4
  79. package/dist/js/components/Table/HeaderCellInfoWrapper.js.map +1 -1
  80. package/dist/js/components/Table/RowWrapper.d.ts +2 -1
  81. package/dist/js/components/Table/RowWrapper.d.ts.map +1 -1
  82. package/dist/js/components/Table/RowWrapper.js +1 -2
  83. package/dist/js/components/Table/RowWrapper.js.map +1 -1
  84. package/dist/js/components/Table/SortColumn.js +3 -3
  85. package/dist/js/components/Table/SortColumn.js.map +1 -1
  86. package/dist/js/components/Table/Table.d.ts +3 -1
  87. package/dist/js/components/Table/Table.d.ts.map +1 -1
  88. package/dist/js/components/Table/Table.js +4 -4
  89. package/dist/js/components/Table/Table.js.map +1 -1
  90. package/dist/js/components/Table/TableText.js +1 -1
  91. package/dist/js/components/Table/TableText.js.map +1 -1
  92. package/dist/js/components/Table/TableTypes.js +0 -4
  93. package/dist/js/components/Table/TableTypes.js.map +1 -1
  94. package/dist/js/components/Table/Td.js +1 -1
  95. package/dist/js/components/Table/Td.js.map +1 -1
  96. package/dist/js/components/Table/Th.js +1 -1
  97. package/dist/js/components/Table/Th.js.map +1 -1
  98. package/dist/js/components/Table/Tr.js +1 -1
  99. package/dist/js/components/Table/Tr.js.map +1 -1
  100. package/dist/js/components/Table/base/evaluate-transforms.js +2 -2
  101. package/dist/js/components/Table/base/evaluate-transforms.js.map +1 -1
  102. package/dist/js/components/Table/base/provider.d.ts +3 -2
  103. package/dist/js/components/Table/base/provider.d.ts.map +1 -1
  104. package/dist/js/components/Table/base/provider.js.map +1 -1
  105. package/dist/js/components/Table/base/types.d.ts +1 -1
  106. package/dist/js/components/Table/base/types.d.ts.map +1 -1
  107. package/dist/js/components/Table/base/types.js +0 -4
  108. package/dist/js/components/Table/base/types.js.map +1 -1
  109. package/dist/js/components/Table/utils/decorators/cellActions.d.ts.map +1 -1
  110. package/dist/js/components/Table/utils/decorators/cellActions.js.map +1 -1
  111. package/dist/js/components/Table/utils/decorators/cellWidth.d.ts.map +1 -1
  112. package/dist/js/components/Table/utils/decorators/cellWidth.js.map +1 -1
  113. package/dist/js/components/Table/utils/decorators/classNames.d.ts.map +1 -1
  114. package/dist/js/components/Table/utils/decorators/classNames.js +1 -1
  115. package/dist/js/components/Table/utils/decorators/classNames.js.map +1 -1
  116. package/dist/js/components/Table/utils/decorators/editable.js +2 -2
  117. package/dist/js/components/Table/utils/decorators/editable.js.map +1 -1
  118. package/dist/js/components/Table/utils/decorators/sortable.js +1 -1
  119. package/dist/js/components/Table/utils/decorators/sortable.js.map +1 -1
  120. package/dist/js/components/Table/utils/decorators/treeRow.js +4 -4
  121. package/dist/js/components/Table/utils/decorators/treeRow.js.map +1 -1
  122. package/dist/js/components/Table/utils/headerUtils.d.ts.map +1 -1
  123. package/dist/js/components/Table/utils/headerUtils.js +1 -6
  124. package/dist/js/components/Table/utils/headerUtils.js.map +1 -1
  125. package/dist/js/components/Table/utils/utils.d.ts.map +1 -1
  126. package/dist/js/components/Table/utils/utils.js +7 -10
  127. package/dist/js/components/Table/utils/utils.js.map +1 -1
  128. package/dist/js/deprecated/components/Table/BodyCell.js +3 -4
  129. package/dist/js/deprecated/components/Table/BodyCell.js.map +1 -1
  130. package/dist/js/deprecated/components/Table/BodyWrapper.js +1 -1
  131. package/dist/js/deprecated/components/Table/BodyWrapper.js.map +1 -1
  132. package/dist/js/deprecated/components/Table/Table.d.ts +2 -1
  133. package/dist/js/deprecated/components/Table/Table.d.ts.map +1 -1
  134. package/dist/js/deprecated/components/Table/Table.js +1 -1
  135. package/dist/js/deprecated/components/Table/Table.js.map +1 -1
  136. package/dist/js/deprecated/components/Table/base/body-row.d.ts +2 -1
  137. package/dist/js/deprecated/components/Table/base/body-row.d.ts.map +1 -1
  138. package/dist/js/deprecated/components/Table/base/body-row.js.map +1 -1
  139. package/dist/js/deprecated/components/Table/base/body.d.ts.map +1 -1
  140. package/dist/js/deprecated/components/Table/base/body.js.map +1 -1
  141. package/dist/js/deprecated/components/Table/base/header.d.ts.map +1 -1
  142. package/dist/js/deprecated/components/Table/base/header.js.map +1 -1
  143. package/dist/umd/react-table.min.js +5 -5
  144. package/package.json +7 -8
  145. package/src/components/Table/ActionsColumn.tsx +3 -1
  146. package/src/components/Table/EditColumn.tsx +3 -3
  147. package/src/components/Table/EditableSelectInputCell.tsx +1 -4
  148. package/src/components/Table/RowWrapper.tsx +5 -3
  149. package/src/components/Table/Table.tsx +5 -1
  150. package/src/components/Table/base/evaluate-transforms.ts +2 -2
  151. package/src/components/Table/base/provider.tsx +3 -1
  152. package/src/components/Table/base/types.tsx +1 -4
  153. package/src/components/Table/examples/Table.md +7 -0
  154. package/src/components/Table/examples/TableActions.tsx +1 -1
  155. package/src/components/Table/examples/TableBasic.tsx +1 -1
  156. package/src/components/Table/examples/TableCellWidth.tsx +1 -1
  157. package/src/components/Table/examples/TableClickable.tsx +1 -1
  158. package/src/components/Table/examples/TableDraggable.tsx +10 -10
  159. package/src/components/Table/examples/TableExpandable.tsx +3 -3
  160. package/src/components/Table/examples/TableFavoritable.tsx +6 -6
  161. package/src/components/Table/examples/TableMultipleStickyColumns.tsx +1 -1
  162. package/src/components/Table/examples/TableNestedExpandable.tsx +3 -12
  163. package/src/components/Table/examples/TableNestedTableExpandable.tsx +5 -15
  164. package/src/components/Table/examples/TableRightStickyColumn.tsx +1 -1
  165. package/src/components/Table/examples/TableSelectable.tsx +4 -4
  166. package/src/components/Table/examples/TableStickyColumn.tsx +1 -1
  167. package/src/components/Table/examples/TableStickyColumnsAndHeader.tsx +1 -1
  168. package/src/components/Table/examples/TableStriped.tsx +1 -1
  169. package/src/components/Table/examples/TableStripedExpandable.tsx +4 -9
  170. package/src/components/Table/examples/TableStripedMultipleTbody.tsx +2 -2
  171. package/src/components/Table/examples/TableTree.tsx +10 -10
  172. package/src/components/Table/examples/TableTreeNoInset.tsx +121 -0
  173. package/src/components/Table/utils/decorators/cellActions.tsx +51 -53
  174. package/src/components/Table/utils/decorators/cellWidth.ts +9 -9
  175. package/src/components/Table/utils/decorators/classNames.ts +6 -4
  176. package/src/components/Table/utils/decorators/editable.tsx +2 -2
  177. package/src/components/Table/utils/headerUtils.test.tsx +10 -10
  178. package/src/components/Table/utils/headerUtils.tsx +1 -7
  179. package/src/components/Table/utils/utils.tsx +7 -11
  180. package/src/deprecated/components/Table/BodyWrapper.tsx +1 -1
  181. package/src/deprecated/components/Table/Table.tsx +5 -2
  182. package/src/deprecated/components/Table/base/body-row.tsx +3 -1
  183. package/src/deprecated/components/Table/base/body.tsx +8 -1
  184. package/src/deprecated/components/Table/base/header.tsx +1 -6
  185. package/src/deprecated/components/Table/examples/LegacyTableActions.tsx +3 -8
  186. package/src/deprecated/components/Table/examples/LegacyTableBasic.tsx +1 -1
  187. package/src/deprecated/components/Table/examples/LegacyTableCellWidth.tsx +1 -1
  188. package/src/deprecated/components/Table/examples/LegacyTableClickable.tsx +1 -1
  189. package/src/deprecated/components/Table/examples/LegacyTableControllingText.tsx +1 -8
  190. package/src/deprecated/components/Table/examples/LegacyTableExpandable.tsx +4 -4
  191. package/src/deprecated/components/Table/examples/LegacyTableFavoritable.tsx +6 -6
  192. package/src/deprecated/components/Table/examples/LegacyTableSelectableRadio.tsx +1 -1
  193. package/src/deprecated/components/Table/examples/LegacyTableSortable.tsx +1 -1
  194. package/src/deprecated/components/Table/examples/LegacyTableStriped.tsx +1 -1
  195. package/src/deprecated/components/Table/examples/LegacyTableStripedCustomTr.tsx +1 -1
  196. package/src/deprecated/components/Table/examples/LegacyTableStripedExpandable.tsx +4 -4
  197. package/src/deprecated/components/Table/examples/LegacyTableTree.tsx +9 -9
  198. package/src/docs/demos/Table.md +2 -2
  199. package/src/test-helpers/MockedTableChanges.js +20 -18
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patternfly/react-table",
3
- "version": "5.1.0",
3
+ "version": "5.1.1-prerelease.2",
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",
@@ -15,8 +15,7 @@
15
15
  "patternfly:src": "src/",
16
16
  "sideEffects": false,
17
17
  "publishConfig": {
18
- "access": "public",
19
- "tag": "alpha"
18
+ "access": "public"
20
19
  },
21
20
  "repository": {
22
21
  "type": "git",
@@ -40,10 +39,10 @@
40
39
  "subpaths": "node ../../scripts/exportSubpaths.js --config subpaths.config.json"
41
40
  },
42
41
  "dependencies": {
43
- "@patternfly/react-core": "^5.1.0",
44
- "@patternfly/react-icons": "^5.1.0",
45
- "@patternfly/react-styles": "^5.1.0",
46
- "@patternfly/react-tokens": "^5.1.0",
42
+ "@patternfly/react-core": "^5.1.1-prerelease.2",
43
+ "@patternfly/react-icons": "^5.1.1-prerelease.2",
44
+ "@patternfly/react-styles": "^5.1.1-prerelease.2",
45
+ "@patternfly/react-tokens": "^5.1.1-prerelease.2",
47
46
  "lodash": "^4.17.19",
48
47
  "tslib": "^2.5.0"
49
48
  },
@@ -55,5 +54,5 @@
55
54
  "react": "^17 || ^18",
56
55
  "react-dom": "^17 || ^18"
57
56
  },
58
- "gitHead": "788b50e975fd7a913f3c892ae68f426fd95b6ea2"
57
+ "gitHead": "52cbf11e7e407d70d674a160da7f432d197c5f57"
59
58
  }
@@ -74,7 +74,9 @@ const ActionsColumnBase: React.FunctionComponent<ActionsColumnProps> = ({
74
74
  .map(({ title, itemKey, onClick, isOutsideDropdown, ...props }, key) =>
75
75
  typeof title === 'string' ? (
76
76
  <Button
77
- onClick={(event: MouseEvent | React.MouseEvent<any, MouseEvent> | React.KeyboardEvent<Element>) => onActionClick(event, onClick)}
77
+ onClick={(event: MouseEvent | React.MouseEvent<any, MouseEvent> | React.KeyboardEvent<Element>) =>
78
+ onActionClick(event, onClick)
79
+ }
78
80
  {...(props as any)}
79
81
  isDisabled={isDisabled}
80
82
  key={itemKey || `outside_dropdown_${key}`}
@@ -33,18 +33,18 @@ export const EditColumn: React.FunctionComponent<EditColumnProps> = ({
33
33
  <React.Fragment>
34
34
  <div className={css(inlineStyles.inlineEditGroup, inlineStyles.modifiers.iconGroup, 'pf-m-action-group')}>
35
35
  <div className={css(inlineStyles.inlineEditAction)}>
36
- <Button aria-label={saveAriaLabel} {...props} onClick={e => onClick(e, 'save')} variant="plain">
36
+ <Button aria-label={saveAriaLabel} {...props} onClick={(e) => onClick(e, 'save')} variant="plain">
37
37
  <CheckIcon />
38
38
  </Button>
39
39
  </div>
40
40
  <div className={css(inlineStyles.inlineEditAction)}>
41
- <Button aria-label={cancelAriaLabel} {...props} onClick={e => onClick(e, 'cancel')} variant="plain">
41
+ <Button aria-label={cancelAriaLabel} {...props} onClick={(e) => onClick(e, 'cancel')} variant="plain">
42
42
  <TimesIcon />
43
43
  </Button>
44
44
  </div>
45
45
  </div>
46
46
  <div className={css(inlineStyles.inlineEditAction, inlineStyles.modifiers.enableEditable)}>
47
- <Button aria-label={editAriaLabel} {...props} onClick={e => onClick(e, 'edit')} variant="plain">
47
+ <Button aria-label={editAriaLabel} {...props} onClick={(e) => onClick(e, 'edit')} variant="plain">
48
48
  <PencilAltIcon />
49
49
  </Button>
50
50
  </div>
@@ -1,9 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { css } from '@patternfly/react-styles';
3
- import {
4
- Select,
5
- SelectOptionObject
6
- } from '@patternfly/react-core/dist/esm/deprecated/components/Select';
3
+ import { Select, SelectOptionObject } from '@patternfly/react-core/dist/esm/deprecated/components/Select';
7
4
  import inlineStyles from '@patternfly/react-styles/css/components/InlineEdit/inline-edit';
8
5
  import formStyles from '@patternfly/react-styles/css/components/Form/form';
9
6
  import { EditableSelectInputProps } from './base/types';
@@ -26,7 +26,7 @@ export interface RowWrapperProps extends OUIAProps {
26
26
  ouiaId?: number | string;
27
27
  }
28
28
 
29
- export class RowWrapper extends React.Component<RowWrapperProps> {
29
+ class RowWrapper extends React.Component<RowWrapperProps> {
30
30
  static displayName = 'RowWrapper';
31
31
  static defaultProps = {
32
32
  className: '' as string,
@@ -79,13 +79,13 @@ export class RowWrapper extends React.Component<RowWrapperProps> {
79
79
 
80
80
  handleScroll = (event: Event): void => {
81
81
  if (!this._unmounted) {
82
- this.props.onScroll((event as unknown) as React.UIEvent<Element>);
82
+ this.props.onScroll(event as unknown as React.UIEvent<Element>);
83
83
  }
84
84
  };
85
85
 
86
86
  handleResize = (event: Event) => {
87
87
  if (!this._unmounted) {
88
- this.props.onResize((event as unknown) as React.UIEvent<Element>);
88
+ this.props.onResize(event as unknown as React.UIEvent<Element>);
89
89
  }
90
90
  };
91
91
 
@@ -117,3 +117,5 @@ export class RowWrapper extends React.Component<RowWrapperProps> {
117
117
  );
118
118
  }
119
119
  }
120
+
121
+ export { RowWrapper };
@@ -57,6 +57,8 @@ export interface TableProps extends React.HTMLProps<HTMLTableElement>, OUIAProps
57
57
  isStriped?: boolean;
58
58
  /** Flag indicating this table contains expandable rows to maintain proper striping */
59
59
  isExpandable?: boolean;
60
+ /** Flag indicating this table's rows will not have the inset typically reserved for expanding/collapsing rows in a tree table. Intended for use on tree tables with no visible rows with children. */
61
+ hasNoInset?: boolean;
60
62
  /** Collection of column spans for nested headers. Deprecated: see https://github.com/patternfly/patternfly/issues/4584 */
61
63
  nestedHeaderColumnSpans?: number[];
62
64
  /** Visible text to add alongside the hidden a11y caption for tables with selectable rows. */
@@ -91,6 +93,7 @@ const TableBase: React.FunctionComponent<TableProps> = ({
91
93
  isNested = false,
92
94
  isStriped = false,
93
95
  isExpandable = false,
96
+ hasNoInset = false,
94
97
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
95
98
  nestedHeaderColumnSpans,
96
99
  selectableRowCaptionText,
@@ -164,7 +167,7 @@ const TableBase: React.FunctionComponent<TableProps> = ({
164
167
  const activeElement = document.activeElement;
165
168
  const key = event.key;
166
169
  const rows = (Array.from(tableRef.current.querySelectorAll('tbody tr')) as Element[]).filter(
167
- el => !el.classList.contains('pf-m-disabled') && !(el as HTMLElement).hidden
170
+ (el) => !el.classList.contains('pf-m-disabled') && !(el as HTMLElement).hidden
168
171
  );
169
172
  if (key === 'Space' || key === 'Enter') {
170
173
  (activeElement as HTMLElement).click();
@@ -206,6 +209,7 @@ const TableBase: React.FunctionComponent<TableProps> = ({
206
209
  isTreeTable && stylesTreeView.modifiers.treeView,
207
210
  isStriped && styles.modifiers.striped,
208
211
  isExpandable && styles.modifiers.expandable,
212
+ hasNoInset && stylesTreeView.modifiers.noInset,
209
213
  isNested && 'pf-m-nested'
210
214
  )}
211
215
  ref={tableRef}
@@ -18,7 +18,7 @@ export function evaluateTransforms(
18
18
  extraParameters: ExtraParamsType = {}
19
19
  ) {
20
20
  if (process.env.NODE_ENV !== 'production') {
21
- if (!transforms.every(f => typeof f === 'function')) {
21
+ if (!transforms.every((f) => typeof f === 'function')) {
22
22
  throw new Error("All transforms weren't functions!");
23
23
  }
24
24
  }
@@ -27,5 +27,5 @@ export function evaluateTransforms(
27
27
  return {};
28
28
  }
29
29
 
30
- return mergeProps(...transforms.map(transform => transform(value, extraParameters)));
30
+ return mergeProps(...transforms.map((transform) => transform(value, extraParameters)));
31
31
  }
@@ -20,7 +20,7 @@ export const ProviderContext = React.createContext({
20
20
  renderers: null as RenderersTypes['renderers']
21
21
  });
22
22
 
23
- export class Provider extends React.Component<ProviderProps, {}> {
23
+ class Provider extends React.Component<ProviderProps, {}> {
24
24
  static displayName = 'Provider';
25
25
  static defaultProps = {
26
26
  renderers: TableDefaults.renderers
@@ -55,3 +55,5 @@ export class Provider extends React.Component<ProviderProps, {}> {
55
55
  );
56
56
  }
57
57
  }
58
+
59
+ export { Provider };
@@ -9,10 +9,7 @@ import * as React from 'react';
9
9
  import { TooltipProps } from '@patternfly/react-core/dist/esm/components/Tooltip';
10
10
  import { PopoverProps } from '@patternfly/react-core/dist/esm/components/Popover';
11
11
  import { DropdownPosition, DropdownDirection } from '@patternfly/react-core/dist/esm/deprecated/components/Dropdown';
12
- import {
13
- SelectOptionObject,
14
- SelectProps
15
- } from '@patternfly/react-core/dist/esm/deprecated/components/Select';
12
+ import { SelectOptionObject, SelectProps } from '@patternfly/react-core/dist/esm/deprecated/components/Select';
16
13
  import { Table } from '../Table';
17
14
  import { Thead } from '../Thead';
18
15
  import { Tbody } from '../Tbody';
@@ -297,6 +297,13 @@ the voice over technologies will recognize the flat table structure as a tree.
297
297
  ```ts file="TableTree.tsx"
298
298
  ```
299
299
 
300
+ ### Flat tree table with no inset
301
+
302
+ To remove the inset used to leave space for the expand/collapse toggle in a flat tree table, use the `hasNoInset` prop on the `Table` component.
303
+
304
+ ```ts file="TableTreeNoInset.tsx"
305
+ ```
306
+
300
307
  ### Draggable row table
301
308
 
302
309
  To make a row draggable:
@@ -121,7 +121,7 @@ export const TableActions: React.FunctionComponent = () => {
121
121
  </Tr>
122
122
  </Thead>
123
123
  <Tbody>
124
- {repositories.map(repo => {
124
+ {repositories.map((repo) => {
125
125
  // Arbitrary logic to determine which rows get which actions in this example
126
126
  let rowActions: IAction[] | null = defaultActions(repo);
127
127
  if (repo.name === 'a') {
@@ -73,7 +73,7 @@ export const TableBasic: React.FunctionComponent = () => {
73
73
  </Tr>
74
74
  </Thead>
75
75
  <Tbody>
76
- {repositories.map(repo => (
76
+ {repositories.map((repo) => (
77
77
  <Tr key={repo.name}>
78
78
  <Td dataLabel={columnNames.name}>{repo.name}</Td>
79
79
  <Td dataLabel={columnNames.branches}>{repo.branches}</Td>
@@ -39,7 +39,7 @@ export const TableCellWidth: React.FunctionComponent = () => {
39
39
  </Tr>
40
40
  </Thead>
41
41
  <Tbody>
42
- {repositories.map(repo => (
42
+ {repositories.map((repo) => (
43
43
  <Tr key={repo.name}>
44
44
  <Td dataLabel={columnNames.name}>{repo.name}</Td>
45
45
  <Td dataLabel={columnNames.branches}>{repo.branches}</Td>
@@ -41,7 +41,7 @@ export const TableClickable: React.FunctionComponent = () => {
41
41
  </Tr>
42
42
  </Thead>
43
43
  <Tbody>
44
- {repositories.map(repo => (
44
+ {repositories.map((repo) => (
45
45
  <Tr
46
46
  key={repo.name}
47
47
  onRowClick={() => setSelectedRepoName(repo.name)}
@@ -11,7 +11,7 @@ export const TableDraggable: React.FunctionComponent = () => {
11
11
 
12
12
  const bodyRef = React.useRef<HTMLTableSectionElement>();
13
13
 
14
- const onDragStart: TrProps['onDragStart'] = evt => {
14
+ const onDragStart: TrProps['onDragStart'] = (evt) => {
15
15
  evt.dataTransfer.effectAllowed = 'move';
16
16
  evt.dataTransfer.setData('text/plain', evt.currentTarget.id);
17
17
  const draggedItemId = evt.currentTarget.id;
@@ -37,20 +37,20 @@ export const TableDraggable: React.FunctionComponent = () => {
37
37
  const move = (itemOrder: string[]) => {
38
38
  const ulNode = bodyRef.current;
39
39
  const nodes = Array.from(ulNode.children);
40
- if (nodes.map(node => node.id).every((id, i) => id === itemOrder[i])) {
40
+ if (nodes.map((node) => node.id).every((id, i) => id === itemOrder[i])) {
41
41
  return;
42
42
  }
43
43
  while (ulNode.firstChild) {
44
44
  ulNode.removeChild(ulNode.lastChild);
45
45
  }
46
46
 
47
- itemOrder.forEach(id => {
48
- ulNode.appendChild(nodes.find(n => n.id === id));
47
+ itemOrder.forEach((id) => {
48
+ ulNode.appendChild(nodes.find((n) => n.id === id));
49
49
  });
50
50
  };
51
51
 
52
52
  const onDragCancel = () => {
53
- Array.from(bodyRef.current.children).forEach(el => {
53
+ Array.from(bodyRef.current.children).forEach((el) => {
54
54
  el.classList.remove(styles.modifiers.ghostRow);
55
55
  el.setAttribute('aria-pressed', 'false');
56
56
  });
@@ -59,7 +59,7 @@ export const TableDraggable: React.FunctionComponent = () => {
59
59
  setIsDragging(false);
60
60
  };
61
61
 
62
- const onDragLeave: TbodyProps['onDragLeave'] = evt => {
62
+ const onDragLeave: TbodyProps['onDragLeave'] = (evt) => {
63
63
  if (!isValidDrop(evt)) {
64
64
  move(itemOrder);
65
65
  setDraggingToItemIndex(null);
@@ -76,7 +76,7 @@ export const TableDraggable: React.FunctionComponent = () => {
76
76
  );
77
77
  };
78
78
 
79
- const onDrop: TrProps['onDrop'] = evt => {
79
+ const onDrop: TrProps['onDrop'] = (evt) => {
80
80
  if (isValidDrop(evt)) {
81
81
  setItemOrder(tempItemOrder);
82
82
  } else {
@@ -84,7 +84,7 @@ export const TableDraggable: React.FunctionComponent = () => {
84
84
  }
85
85
  };
86
86
 
87
- const onDragOver: TbodyProps['onDragOver'] = evt => {
87
+ const onDragOver: TbodyProps['onDragOver'] = (evt) => {
88
88
  evt.preventDefault();
89
89
 
90
90
  const curListItem = (evt.target as HTMLTableSectionElement).closest('tr');
@@ -92,7 +92,7 @@ export const TableDraggable: React.FunctionComponent = () => {
92
92
  return null;
93
93
  } else {
94
94
  const dragId = curListItem.id;
95
- const newDraggingToItemIndex = Array.from(bodyRef.current.children).findIndex(item => item.id === dragId);
95
+ const newDraggingToItemIndex = Array.from(bodyRef.current.children).findIndex((item) => item.id === dragId);
96
96
  if (newDraggingToItemIndex !== draggingToItemIndex) {
97
97
  const tempItemOrder = moveItem([...itemOrder], draggedItemId, newDraggingToItemIndex);
98
98
  move(tempItemOrder);
@@ -102,7 +102,7 @@ export const TableDraggable: React.FunctionComponent = () => {
102
102
  }
103
103
  };
104
104
 
105
- const onDragEnd: TrProps['onDragEnd'] = evt => {
105
+ const onDragEnd: TrProps['onDragEnd'] = (evt) => {
106
106
  const target = evt.target as HTMLTableRowElement;
107
107
  target.classList.remove(styles.modifiers.ghostRow);
108
108
  target.setAttribute('aria-pressed', 'false');
@@ -96,11 +96,11 @@ export const TableExpandable: React.FunctionComponent = () => {
96
96
  // In this example, expanded rows are tracked by the repo names from each row. This could be any unique identifier.
97
97
  // This is to prevent state from being based on row order index in case we later add sorting.
98
98
  // Note that this behavior is very similar to selection state.
99
- const initialExpandedRepoNames = repositories.filter(repo => !!repo.details).map(repo => repo.name); // Default to all expanded
99
+ const initialExpandedRepoNames = repositories.filter((repo) => !!repo.details).map((repo) => repo.name); // Default to all expanded
100
100
  const [expandedRepoNames, setExpandedRepoNames] = React.useState<string[]>(initialExpandedRepoNames);
101
101
  const setRepoExpanded = (repo: Repository, isExpanding = true) =>
102
- setExpandedRepoNames(prevExpanded => {
103
- const otherExpandedRepoNames = prevExpanded.filter(r => r !== repo.name);
102
+ setExpandedRepoNames((prevExpanded) => {
103
+ const otherExpandedRepoNames = prevExpanded.filter((r) => r !== repo.name);
104
104
  return isExpanding ? [...otherExpandedRepoNames, repo.name] : otherExpandedRepoNames;
105
105
  });
106
106
  const isRepoExpanded = (repo: Repository) => expandedRepoNames.includes(repo.name);
@@ -36,8 +36,8 @@ export const TableFavoritable: React.FunctionComponent = () => {
36
36
  // Favorite state is similar to selection state, see Selectable with checkbox.
37
37
  const [favoriteRepoNames, setFavoriteRepoNames] = React.useState<string[]>([]);
38
38
  const setRepoFavorited = (repo: Repository, isFavoriting = true) =>
39
- setFavoriteRepoNames(prevFavorites => {
40
- const otherFavorites = prevFavorites.filter(r => r !== repo.name);
39
+ setFavoriteRepoNames((prevFavorites) => {
40
+ const otherFavorites = prevFavorites.filter((r) => r !== repo.name);
41
41
  return isFavoriting ? [...otherFavorites, repo.name] : otherFavorites;
42
42
  });
43
43
  const isRepoFavorited = (repo: Repository) => favoriteRepoNames.includes(repo.name);
@@ -47,10 +47,10 @@ export const TableFavoritable: React.FunctionComponent = () => {
47
47
  // For more complex sorting, see Sortable.
48
48
  // Note: We also memoize the sortable values with useCallback to prevent rows jumping around when you change
49
49
  // the favorites while sorting on that column. Only updating the sort state will reorder the rows.
50
- const getSortableRowValues = React.useCallback((repo: Repository): boolean[] => [isRepoFavorited(repo)], [
51
- activeSortIndex,
52
- activeSortDirection
53
- ]);
50
+ const getSortableRowValues = React.useCallback(
51
+ (repo: Repository): boolean[] => [isRepoFavorited(repo)],
52
+ [activeSortIndex, activeSortDirection]
53
+ );
54
54
 
55
55
  // Note that we perform the sort as part of the component's render logic and not in onSort.
56
56
  // We shouldn't store the list of data in state because we don't want to have to sync that with props.
@@ -114,7 +114,7 @@ export const TableMultipleStickyColumns: React.FunctionComponent = () => {
114
114
  </Tr>
115
115
  </Thead>
116
116
  <Tbody>
117
- {sortedFacts.map(fact => (
117
+ {sortedFacts.map((fact) => (
118
118
  <Tr key={fact.name}>
119
119
  <Th isStickyColumn modifier="truncate">
120
120
  {fact.name}
@@ -1,14 +1,5 @@
1
1
  import React from 'react';
2
- import {
3
- Table,
4
- Thead,
5
- Tr,
6
- Th,
7
- Tbody,
8
- Td,
9
- InnerScrollContainer,
10
- ExpandableRowContent
11
- } from '@patternfly/react-table';
2
+ import { Table, Thead, Tr, Th, Tbody, Td, InnerScrollContainer, ExpandableRowContent } from '@patternfly/react-table';
12
3
  import { Button } from '@patternfly/react-core';
13
4
 
14
5
  interface Team {
@@ -62,8 +53,8 @@ export const TableNestedExpandable: React.FunctionComponent = () => {
62
53
  // Note that this behavior is very similar to selection state.
63
54
  const [expandedTeamNames, setExpandedTeamNames] = React.useState<string[]>([]);
64
55
  const setTeamExpanded = (team: Team, isExpanding = true) =>
65
- setExpandedTeamNames(prevExpanded => {
66
- const otherExpandedTeamNames = prevExpanded.filter(t => t !== team.name);
56
+ setExpandedTeamNames((prevExpanded) => {
57
+ const otherExpandedTeamNames = prevExpanded.filter((t) => t !== team.name);
67
58
  return isExpanding ? [...otherExpandedTeamNames, team.name] : otherExpandedTeamNames;
68
59
  });
69
60
  const isTeamExpanded = (team: Team) => expandedTeamNames.includes(team.name);
@@ -1,16 +1,6 @@
1
1
  /* eslint-disable no-console */
2
2
  import React from 'react';
3
- import {
4
- Table,
5
- Thead,
6
- Tr,
7
- Th,
8
- Tbody,
9
- Td,
10
- ExpandableRowContent,
11
- ActionsColumn,
12
- IAction
13
- } from '@patternfly/react-table';
3
+ import { Table, Thead, Tr, Th, Tbody, Td, ExpandableRowContent, ActionsColumn, IAction } from '@patternfly/react-table';
14
4
 
15
5
  interface Repository {
16
6
  name: string;
@@ -57,7 +47,7 @@ const NestedReposTable: React.FunctionComponent = () => {
57
47
  </Tr>
58
48
  </Thead>
59
49
  <Tbody>
60
- {prs.map(repo => (
50
+ {prs.map((repo) => (
61
51
  <Tr key={repo.name}>
62
52
  <Td dataLabel={columnNames.name}>{repo.name}</Td>
63
53
  <Td dataLabel={columnNames.branches}>{repo.branches}</Td>
@@ -111,11 +101,11 @@ export const TableExpandable: React.FunctionComponent = () => {
111
101
  // In this example, expanded rows are tracked by the repo names from each row. This could be any unique identifier.
112
102
  // This is to prevent state from being based on row order index in case we later add sorting.
113
103
  // Note that this behavior is very similar to selection state.
114
- const initialExpandedRepoNames = repositories.filter(repo => !!repo.nestedComponent).map(repo => repo.name); // Default to all expanded
104
+ const initialExpandedRepoNames = repositories.filter((repo) => !!repo.nestedComponent).map((repo) => repo.name); // Default to all expanded
115
105
  const [expandedRepoNames, setExpandedRepoNames] = React.useState<string[]>(initialExpandedRepoNames);
116
106
  const setRepoExpanded = (repo: Repository, isExpanding = true) =>
117
- setExpandedRepoNames(prevExpanded => {
118
- const otherExpandedRepoNames = prevExpanded.filter(r => r !== repo.name);
107
+ setExpandedRepoNames((prevExpanded) => {
108
+ const otherExpandedRepoNames = prevExpanded.filter((r) => r !== repo.name);
119
109
  return isExpanding ? [...otherExpandedRepoNames, repo.name] : otherExpandedRepoNames;
120
110
  });
121
111
  const isRepoExpanded = (repo: Repository) => expandedRepoNames.includes(repo.name);
@@ -110,7 +110,7 @@ export const ComposableTableRightStickyColumn: React.FunctionComponent = () => {
110
110
  </Tr>
111
111
  </Thead>
112
112
  <Tbody>
113
- {sortedFacts.map(fact => (
113
+ {sortedFacts.map((fact) => (
114
114
  <Tr key={fact.name}>
115
115
  <Th modifier="nowrap">{fact.name}</Th>
116
116
  <Td modifier="nowrap" dataLabel={columnNames.state}>
@@ -35,12 +35,12 @@ export const TableSelectable: React.FunctionComponent = () => {
35
35
  // This is to prevent state from being based on row order index in case we later add sorting.
36
36
  const [selectedRepoNames, setSelectedRepoNames] = React.useState<string[]>([]);
37
37
  const setRepoSelected = (repo: Repository, isSelecting = true) =>
38
- setSelectedRepoNames(prevSelected => {
39
- const otherSelectedRepoNames = prevSelected.filter(r => r !== repo.name);
38
+ setSelectedRepoNames((prevSelected) => {
39
+ const otherSelectedRepoNames = prevSelected.filter((r) => r !== repo.name);
40
40
  return isSelecting && isRepoSelectable(repo) ? [...otherSelectedRepoNames, repo.name] : otherSelectedRepoNames;
41
41
  });
42
42
  const selectAllRepos = (isSelecting = true) =>
43
- setSelectedRepoNames(isSelecting ? selectableRepos.map(r => r.name) : []);
43
+ setSelectedRepoNames(isSelecting ? selectableRepos.map((r) => r.name) : []);
44
44
  const areAllReposSelected = selectedRepoNames.length === selectableRepos.length;
45
45
  const isRepoSelected = (repo: Repository) => selectedRepoNames.includes(repo.name);
46
46
 
@@ -56,7 +56,7 @@ export const TableSelectable: React.FunctionComponent = () => {
56
56
  numberSelected > 0
57
57
  ? Array.from(new Array(numberSelected + 1), (_x, i) => i + recentSelectedRowIndex)
58
58
  : Array.from(new Array(Math.abs(numberSelected) + 1), (_x, i) => i + rowIndex);
59
- intermediateIndexes.forEach(index => setRepoSelected(repositories[index], isSelecting));
59
+ intermediateIndexes.forEach((index) => setRepoSelected(repositories[index], isSelecting));
60
60
  } else {
61
61
  setRepoSelected(repo, isSelecting);
62
62
  }
@@ -106,7 +106,7 @@ export const TableStickyColumn: React.FunctionComponent = () => {
106
106
  </Tr>
107
107
  </Thead>
108
108
  <Tbody>
109
- {sortedFacts.map(fact => (
109
+ {sortedFacts.map((fact) => (
110
110
  <Tr key={fact.name}>
111
111
  <Th isStickyColumn hasRightBorder modifier="truncate">
112
112
  {fact.name}
@@ -126,7 +126,7 @@ export const TableStickyColumnsAndHeader: React.FunctionComponent = () => {
126
126
  </Tr>
127
127
  </Thead>
128
128
  <Tbody>
129
- {sortedFacts.map(fact => (
129
+ {sortedFacts.map((fact) => (
130
130
  <Tr key={fact.name}>
131
131
  <Th isStickyColumn modifier="truncate">
132
132
  {fact.name}
@@ -39,7 +39,7 @@ export const TableStriped: React.FunctionComponent = () => {
39
39
  </Tr>
40
40
  </Thead>
41
41
  <Tbody>
42
- {repositories.map(repo => (
42
+ {repositories.map((repo) => (
43
43
  <Tr key={repo.name}>
44
44
  <Td dataLabel={columnNames.name}>{repo.name}</Td>
45
45
  <Td dataLabel={columnNames.branches}>{repo.branches}</Td>
@@ -91,11 +91,11 @@ export const TableStripedExpandable: React.FunctionComponent = () => {
91
91
  // In this example, expanded rows are tracked by the repo names from each row. This could be any unique identifier.
92
92
  // This is to prevent state from being based on row order index in case we later add sorting.
93
93
  // Note that this behavior is very similar to selection state.
94
- const initialExpandedRepoNames = repositories.filter(repo => !!repo.details).map(repo => repo.name); // Default to all expanded
94
+ const initialExpandedRepoNames = repositories.filter((repo) => !!repo.details).map((repo) => repo.name); // Default to all expanded
95
95
  const [expandedRepoNames, setExpandedRepoNames] = React.useState<string[]>(initialExpandedRepoNames);
96
96
  const setRepoExpanded = (repo: Repository, isExpanding = true) =>
97
- setExpandedRepoNames(prevExpanded => {
98
- const otherExpandedRepoNames = prevExpanded.filter(r => r !== repo.name);
97
+ setExpandedRepoNames((prevExpanded) => {
98
+ const otherExpandedRepoNames = prevExpanded.filter((r) => r !== repo.name);
99
99
  return isExpanding ? [...otherExpandedRepoNames, repo.name] : otherExpandedRepoNames;
100
100
  });
101
101
  const isRepoExpanded = (repo: Repository) => expandedRepoNames.includes(repo.name);
@@ -112,12 +112,7 @@ export const TableStripedExpandable: React.FunctionComponent = () => {
112
112
  id="toggle-compact-striped"
113
113
  name="toggle-compact-striped"
114
114
  />
115
- <Table
116
- aria-label="Expandable table"
117
- variant={isExampleCompact ? 'compact' : undefined}
118
- isStriped
119
- isExpandable
120
- >
115
+ <Table aria-label="Expandable table" variant={isExampleCompact ? 'compact' : undefined} isStriped isExpandable>
121
116
  <Thead>
122
117
  <Tr>
123
118
  <Th />
@@ -74,7 +74,7 @@ export const TableStripedMultipleTbody: React.FunctionComponent = () => {
74
74
  </Tr>
75
75
  </Thead>
76
76
  <Tbody isOddStriped>
77
- {repositories1.map(repo => (
77
+ {repositories1.map((repo) => (
78
78
  <Tr key={repo.name}>
79
79
  <Td dataLabel={columnNames.name}>
80
80
  {repo.description ? (
@@ -95,7 +95,7 @@ export const TableStripedMultipleTbody: React.FunctionComponent = () => {
95
95
  ))}
96
96
  </Tbody>
97
97
  <Tbody isEvenStriped>
98
- {repositories2.map(repo => (
98
+ {repositories2.map((repo) => (
99
99
  <Tr key={repo.name}>
100
100
  <Td dataLabel={columnNames.name}>
101
101
  {repo.description ? (
@@ -93,7 +93,7 @@ export const TableTree: React.FunctionComponent = () => {
93
93
  return [node];
94
94
  } else {
95
95
  let children: RepositoriesTreeNode[] = [];
96
- node.children.forEach(child => {
96
+ node.children.forEach((child) => {
97
97
  children = [...children, ...getDescendants(child)];
98
98
  });
99
99
  return children;
@@ -101,9 +101,9 @@ export const TableTree: React.FunctionComponent = () => {
101
101
  };
102
102
 
103
103
  const areAllDescendantsSelected = (node: RepositoriesTreeNode) =>
104
- getDescendants(node).every(n => selectedNodeNames.includes(n.name));
104
+ getDescendants(node).every((n) => selectedNodeNames.includes(n.name));
105
105
  const areSomeDescendantsSelected = (node: RepositoriesTreeNode) =>
106
- getDescendants(node).some(n => selectedNodeNames.includes(n.name));
106
+ getDescendants(node).some((n) => selectedNodeNames.includes(n.name));
107
107
 
108
108
  const isNodeChecked = (node: RepositoriesTreeNode) => {
109
109
  if (areAllDescendantsSelected(node)) {
@@ -144,19 +144,19 @@ export const TableTree: React.FunctionComponent = () => {
144
144
 
145
145
  const treeRow: TdProps['treeRow'] = {
146
146
  onCollapse: () =>
147
- setExpandedNodeNames(prevExpanded => {
148
- const otherExpandedNodeNames = prevExpanded.filter(name => name !== node.name);
147
+ setExpandedNodeNames((prevExpanded) => {
148
+ const otherExpandedNodeNames = prevExpanded.filter((name) => name !== node.name);
149
149
  return isExpanded ? otherExpandedNodeNames : [...otherExpandedNodeNames, node.name];
150
150
  }),
151
151
  onToggleRowDetails: () =>
152
- setExpandedDetailsNodeNames(prevDetailsExpanded => {
153
- const otherDetailsExpandedNodeNames = prevDetailsExpanded.filter(name => name !== node.name);
152
+ setExpandedDetailsNodeNames((prevDetailsExpanded) => {
153
+ const otherDetailsExpandedNodeNames = prevDetailsExpanded.filter((name) => name !== node.name);
154
154
  return isDetailsExpanded ? otherDetailsExpandedNodeNames : [...otherDetailsExpandedNodeNames, node.name];
155
155
  }),
156
156
  onCheckChange: (_event, isChecking) => {
157
- const nodeNamesToCheck = getDescendants(node).map(n => n.name);
158
- setSelectedNodeNames(prevSelected => {
159
- const otherSelectedNodeNames = prevSelected.filter(name => !nodeNamesToCheck.includes(name));
157
+ const nodeNamesToCheck = getDescendants(node).map((n) => n.name);
158
+ setSelectedNodeNames((prevSelected) => {
159
+ const otherSelectedNodeNames = prevSelected.filter((name) => !nodeNamesToCheck.includes(name));
160
160
  return !isChecking ? otherSelectedNodeNames : [...otherSelectedNodeNames, ...nodeNamesToCheck];
161
161
  });
162
162
  },