@purpurds/table 8.15.0 → 8.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/LICENSE.txt +16 -16
- package/dist/table-toolbar.d.ts +5 -2
- package/dist/table-toolbar.d.ts.map +1 -1
- package/dist/table.cjs.js +14 -14
- package/dist/table.cjs.js.map +1 -1
- package/dist/table.d.ts +1 -1
- package/dist/table.d.ts.map +1 -1
- package/dist/table.es.js +4375 -4359
- package/dist/table.es.js.map +1 -1
- package/dist/test-utils/helpers.d.ts +2 -0
- package/dist/test-utils/helpers.d.ts.map +1 -1
- package/dist/types.d.ts +22 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +23 -23
- package/src/table-toolbar.test.tsx +93 -37
- package/src/table-toolbar.tsx +11 -5
- package/src/table.stories.tsx +21 -6
- package/src/table.test.tsx +293 -4
- package/src/table.tsx +19 -1
- package/src/test-utils/helpers.ts +5 -3
- package/src/types.ts +24 -1
|
@@ -156,12 +156,14 @@ export declare const copy: {
|
|
|
156
156
|
buttons: {
|
|
157
157
|
clearFilters: string;
|
|
158
158
|
expand: string;
|
|
159
|
+
minimize: string;
|
|
159
160
|
export: string;
|
|
160
161
|
settings: string;
|
|
161
162
|
};
|
|
162
163
|
ariaLabels: {
|
|
163
164
|
clearFilters: string;
|
|
164
165
|
expand: string;
|
|
166
|
+
minimize: string;
|
|
165
167
|
export: string;
|
|
166
168
|
settings: string;
|
|
167
169
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/test-utils/helpers.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,YAAY,GAAI,OAAO,WAAW,KAAG,WAIjD,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,OAAO,WAAW,KAAG,WAIjD,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACrC,OAAO,WAAW,EAClB,cAAc,MAAM,KACnB,WAKF,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,OAAO,gBAAgB,EACvB,OAAO,MAAM,EACb,cAAc,MAAM,KACnB,oBAQF,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,OAAO,gBAAgB,EAAE,cAAS,KAAG,mBAEpE,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,OAAO,gBAAgB,EAAE,OAAO,MAAM,KAAG,mBAExE,CAAC;AAGF,eAAO,MAAM,0BAA0B,GACrC,OAAO,gBAAgB,EACvB,OAAO,MAAM,KACZ,iBAEF,CAAC;AAEF,eAAO,MAAM,6BAA6B,GACxC,OAAO,gBAAgB,EACvB,OAAO,MAAM,KACZ,iBAEF,CAAC;AAGF,eAAO,MAAM,4BAA4B,GACvC,OAAO,gBAAgB,EACvB,cAAS,KACR,iBAEF,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,OAAO,gBAAgB,EAAE,QAAQ,MAAM,gBAG9E,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,OAAO,gBAAgB,EACvB,QAAQ,MAAM,EACd,aAAa,MAAM,kBAOpB,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAI,OAAO,gBAAgB,EAAE,QAAQ,MAAM,gBAGjF,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,OAAO,gBAAgB,EACvB,QAAQ,MAAM,EACd,aAAa,MAAM,kBAIpB,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCA6CQ,MAAM;;;CAGnC,CAAC;AAEF,eAAO,MAAM,IAAI
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/test-utils/helpers.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,YAAY,GAAI,OAAO,WAAW,KAAG,WAIjD,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,OAAO,WAAW,KAAG,WAIjD,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACrC,OAAO,WAAW,EAClB,cAAc,MAAM,KACnB,WAKF,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,OAAO,gBAAgB,EACvB,OAAO,MAAM,EACb,cAAc,MAAM,KACnB,oBAQF,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,OAAO,gBAAgB,EAAE,cAAS,KAAG,mBAEpE,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,OAAO,gBAAgB,EAAE,OAAO,MAAM,KAAG,mBAExE,CAAC;AAGF,eAAO,MAAM,0BAA0B,GACrC,OAAO,gBAAgB,EACvB,OAAO,MAAM,KACZ,iBAEF,CAAC;AAEF,eAAO,MAAM,6BAA6B,GACxC,OAAO,gBAAgB,EACvB,OAAO,MAAM,KACZ,iBAEF,CAAC;AAGF,eAAO,MAAM,4BAA4B,GACvC,OAAO,gBAAgB,EACvB,cAAS,KACR,iBAEF,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,OAAO,gBAAgB,EAAE,QAAQ,MAAM,gBAG9E,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,OAAO,gBAAgB,EACvB,QAAQ,MAAM,EACd,aAAa,MAAM,kBAOpB,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAI,OAAO,gBAAgB,EAAE,QAAQ,MAAM,gBAGjF,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,OAAO,gBAAgB,EACvB,QAAQ,MAAM,EACd,aAAa,MAAM,kBAIpB,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCA6CQ,MAAM;;;CAGnC,CAAC;AAEF,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuHhB,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -252,6 +252,8 @@ export type WithoutToolbarProps = {
|
|
|
252
252
|
enableToolbar?: false | undefined;
|
|
253
253
|
exportFormats?: never;
|
|
254
254
|
onExportData?: never;
|
|
255
|
+
controlledExpanded?: never;
|
|
256
|
+
defaultExpanded?: never;
|
|
255
257
|
onToggleExpand?: never;
|
|
256
258
|
settingsDrawerCopy?: never;
|
|
257
259
|
toolbarCopy?: never;
|
|
@@ -277,19 +279,34 @@ type WithFiltersProps = {
|
|
|
277
279
|
* Props for enabling an expand button in a data table component.
|
|
278
280
|
*/
|
|
279
281
|
type WithExpandButtonProps = {
|
|
282
|
+
/**
|
|
283
|
+
* Current state of expansion.
|
|
284
|
+
* Regardless of setting, the consumer must listen to onToggleExpand to change the container size accordingly. The table itself only shows the Expand button differently.
|
|
285
|
+
* If defined (true or false), this is the state the table will be shown in. Consumer must listen to onToggleExpand, and update this to the new value. defaultExpanded will have no effect.
|
|
286
|
+
* If undefined, the table will manage its own state, starting with defaultExpanded.
|
|
287
|
+
*/
|
|
288
|
+
controlledExpanded?: boolean;
|
|
289
|
+
/**
|
|
290
|
+
* Initial state of expansion.
|
|
291
|
+
* Defaults to false (collapsed=minimized) if not provided.
|
|
292
|
+
* No effect if controlledExpanded is provided.
|
|
293
|
+
*/
|
|
294
|
+
defaultExpanded?: boolean;
|
|
280
295
|
/**
|
|
281
296
|
* Callback function triggered when toggling the expansion state of rows.
|
|
282
297
|
*/
|
|
283
|
-
onToggleExpand: () => void;
|
|
298
|
+
onToggleExpand: (value: boolean) => void;
|
|
284
299
|
/**
|
|
285
300
|
* Copy for the toolbar buttons related to expanding rows.
|
|
286
301
|
*/
|
|
287
302
|
toolbarCopy: {
|
|
288
303
|
buttons: {
|
|
289
304
|
expand: string;
|
|
305
|
+
minimize: string;
|
|
290
306
|
};
|
|
291
307
|
ariaLabels: {
|
|
292
308
|
expand: string;
|
|
309
|
+
minimize: string;
|
|
293
310
|
};
|
|
294
311
|
};
|
|
295
312
|
};
|
|
@@ -336,13 +353,17 @@ type WithoutExportProps = {
|
|
|
336
353
|
};
|
|
337
354
|
};
|
|
338
355
|
type WithoutExpandButtonProps = {
|
|
356
|
+
controlledExpanded?: never;
|
|
357
|
+
defaultExpanded?: never;
|
|
339
358
|
onToggleExpand?: never;
|
|
340
359
|
toolbarCopy?: {
|
|
341
360
|
buttons?: {
|
|
342
361
|
expand?: never;
|
|
362
|
+
minimize?: never;
|
|
343
363
|
};
|
|
344
364
|
ariaLabels?: {
|
|
345
365
|
expand?: never;
|
|
366
|
+
minimize?: never;
|
|
346
367
|
};
|
|
347
368
|
};
|
|
348
369
|
};
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@purpurds/table",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.16.0",
|
|
4
4
|
"license": "AGPL-3.0-only",
|
|
5
5
|
"main": "./dist/table.cjs.js",
|
|
6
6
|
"types": "./dist/table.d.ts",
|
|
@@ -21,22 +21,22 @@
|
|
|
21
21
|
"@dnd-kit/utilities": "~3.2.2",
|
|
22
22
|
"@tanstack/react-table": "~8.21.2",
|
|
23
23
|
"classnames": "~2.5.1",
|
|
24
|
-
"@purpurds/badge": "8.
|
|
25
|
-
"@purpurds/
|
|
26
|
-
"@purpurds/
|
|
27
|
-
"@purpurds/
|
|
28
|
-
"@purpurds/
|
|
29
|
-
"@purpurds/
|
|
30
|
-
"@purpurds/icon": "8.
|
|
31
|
-
"@purpurds/link": "8.
|
|
32
|
-
"@purpurds/paragraph": "8.
|
|
33
|
-
"@purpurds/select": "8.
|
|
34
|
-
"@purpurds/skeleton": "8.
|
|
35
|
-
"@purpurds/
|
|
36
|
-
"@purpurds/
|
|
37
|
-
"@purpurds/
|
|
38
|
-
"@purpurds/
|
|
39
|
-
"@purpurds/
|
|
24
|
+
"@purpurds/badge": "8.16.0",
|
|
25
|
+
"@purpurds/button": "8.16.0",
|
|
26
|
+
"@purpurds/cta-link": "8.16.0",
|
|
27
|
+
"@purpurds/drawer": "8.16.0",
|
|
28
|
+
"@purpurds/checkbox": "8.16.0",
|
|
29
|
+
"@purpurds/heading": "8.16.0",
|
|
30
|
+
"@purpurds/icon": "8.16.0",
|
|
31
|
+
"@purpurds/link": "8.16.0",
|
|
32
|
+
"@purpurds/paragraph": "8.16.0",
|
|
33
|
+
"@purpurds/select": "8.16.0",
|
|
34
|
+
"@purpurds/skeleton": "8.16.0",
|
|
35
|
+
"@purpurds/toggle": "8.16.0",
|
|
36
|
+
"@purpurds/text-field": "8.16.0",
|
|
37
|
+
"@purpurds/tokens": "8.16.0",
|
|
38
|
+
"@purpurds/visually-hidden": "8.16.0",
|
|
39
|
+
"@purpurds/tooltip": "8.16.0"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@rushstack/eslint-patch": "~1.10.0",
|
|
@@ -60,13 +60,13 @@
|
|
|
60
60
|
"vitest-axe": "~0.1.0",
|
|
61
61
|
"vitest-canvas-mock": "~0.3.3",
|
|
62
62
|
"vitest": "^4.0.10",
|
|
63
|
-
"@purpurds/autocomplete": "8.
|
|
63
|
+
"@purpurds/autocomplete": "8.16.0",
|
|
64
|
+
"@purpurds/grid": "8.16.0",
|
|
64
65
|
"@purpurds/component-rig": "1.0.0",
|
|
65
|
-
"@purpurds/
|
|
66
|
-
"@purpurds/
|
|
67
|
-
"@purpurds/
|
|
68
|
-
"@purpurds/label": "8.
|
|
69
|
-
"@purpurds/pagination": "8.15.0"
|
|
66
|
+
"@purpurds/illustrative-icon": "8.16.0",
|
|
67
|
+
"@purpurds/listbox": "8.16.0",
|
|
68
|
+
"@purpurds/pagination": "8.16.0",
|
|
69
|
+
"@purpurds/label": "8.16.0"
|
|
70
70
|
},
|
|
71
71
|
"scripts": {
|
|
72
72
|
"build:dev": "vite",
|
|
@@ -13,32 +13,34 @@ const toggleExpandMock = vi.fn();
|
|
|
13
13
|
const exportDataMock = vi.fn();
|
|
14
14
|
|
|
15
15
|
describe("Data table - Tool bar", () => {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
<
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
16
|
+
describe("when expanded is false", () => {
|
|
17
|
+
let container: HTMLElement;
|
|
18
|
+
|
|
19
|
+
beforeEach(() => {
|
|
20
|
+
container = render(
|
|
21
|
+
// Needs an element with id purpur-table for the ally tests to not fail with "ARIA attributes must conform to valid values (aria-valid-attr-value)" rule
|
|
22
|
+
<div id="purpur-table">
|
|
23
|
+
<TableToolbar
|
|
24
|
+
aria-controls="purpur-table"
|
|
25
|
+
settingsDrawerAriaControls="purpur-table-settings-drawer"
|
|
26
|
+
exportDrawerAriaControls="purpur-table-export-drawer"
|
|
27
|
+
onResetColumnFilters={resetColumnFiltersMock}
|
|
28
|
+
onSetDrawerIsOpen={setDrawerIsOpenMock}
|
|
29
|
+
onToggleExpand={toggleExpandMock}
|
|
30
|
+
onExportData={exportDataMock}
|
|
31
|
+
visibleRowCount={10}
|
|
32
|
+
totalRowCount={14}
|
|
33
|
+
toolbarCopy={copy.toolbar}
|
|
34
|
+
expanded={false}
|
|
35
|
+
isSettingsDrawerOpen={false}
|
|
36
|
+
isExportDrawerOpen={false}
|
|
37
|
+
hasExportsDrawer={true}
|
|
38
|
+
showFilters={true}
|
|
39
|
+
disableClearFilters={false}
|
|
40
|
+
/>
|
|
41
|
+
</div>
|
|
42
|
+
).container;
|
|
43
|
+
});
|
|
42
44
|
|
|
43
45
|
it("should display 'Showing 10 of 14 rows'", () => {
|
|
44
46
|
const tableRowsCount = screen.getByTestId(Selectors.TOOLBAR.TABLE_ROWS_COUNT);
|
|
@@ -57,7 +59,7 @@ describe("Data table - Tool bar", () => {
|
|
|
57
59
|
|
|
58
60
|
it("should have settings button", () => {
|
|
59
61
|
const settingsButton = screen.getByTestId(Selectors.TOOLBAR.SETTINGS_BUTTON);
|
|
60
|
-
expect(settingsButton).toHaveTextContent("
|
|
62
|
+
expect(settingsButton).toHaveTextContent("Table settings");
|
|
61
63
|
});
|
|
62
64
|
|
|
63
65
|
it("should have expand button", () => {
|
|
@@ -71,7 +73,7 @@ describe("Data table - Tool bar", () => {
|
|
|
71
73
|
expect(resetColumnFiltersMock).toHaveBeenCalled();
|
|
72
74
|
});
|
|
73
75
|
|
|
74
|
-
it("should send 'setDrawerIsOpen' event when clicking on '
|
|
76
|
+
it("should send 'setDrawerIsOpen' event when clicking on 'Table settings' button", async () => {
|
|
75
77
|
const settingsButton = screen.getByTestId(Selectors.TOOLBAR.SETTINGS_BUTTON);
|
|
76
78
|
await userEvent.click(settingsButton);
|
|
77
79
|
expect(setDrawerIsOpenMock).toHaveBeenCalled();
|
|
@@ -83,16 +85,70 @@ describe("Data table - Tool bar", () => {
|
|
|
83
85
|
expect(exportDataMock).toHaveBeenCalled();
|
|
84
86
|
});
|
|
85
87
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
88
|
+
it("should send an event when clicking on expand", async () => {
|
|
89
|
+
const expandButton = screen.getByTestId(Selectors.TOOLBAR.EXPAND_BUTTON);
|
|
90
|
+
await userEvent.click(expandButton);
|
|
91
|
+
expect(toggleExpandMock).toHaveBeenCalled();
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
it("should call onToggleExpand with 'true' when clicking expand button while collapsed", async () => {
|
|
95
|
+
const expandButton = screen.getByTestId(Selectors.TOOLBAR.EXPAND_BUTTON);
|
|
96
|
+
await userEvent.click(expandButton);
|
|
97
|
+
expect(toggleExpandMock).toHaveBeenCalledWith(true);
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
it("should display 'Expand' button text and maximize icon when collapsed", () => {
|
|
101
|
+
const expandButton = screen.getByTestId(Selectors.TOOLBAR.EXPAND_BUTTON);
|
|
102
|
+
expect(expandButton).toHaveTextContent("Expand");
|
|
103
|
+
expect(expandButton).toHaveAttribute("aria-expanded", "false");
|
|
104
|
+
expect(expandButton).toHaveAttribute("aria-label", copy.toolbar.ariaLabels?.expand);
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
it("should be accessible", async () => {
|
|
108
|
+
const results = await axe(container);
|
|
109
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
110
|
+
// @ts-ignore
|
|
111
|
+
expect(results).toHaveNoViolations();
|
|
112
|
+
});
|
|
90
113
|
});
|
|
91
114
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
115
|
+
describe("when expanded is true", () => {
|
|
116
|
+
beforeEach(() => {
|
|
117
|
+
render(
|
|
118
|
+
<div id="purpur-table-expanded">
|
|
119
|
+
<TableToolbar
|
|
120
|
+
aria-controls="purpur-table-expanded"
|
|
121
|
+
settingsDrawerAriaControls="purpur-table-settings-drawer"
|
|
122
|
+
exportDrawerAriaControls="purpur-table-export-drawer"
|
|
123
|
+
onResetColumnFilters={resetColumnFiltersMock}
|
|
124
|
+
onSetDrawerIsOpen={setDrawerIsOpenMock}
|
|
125
|
+
onToggleExpand={toggleExpandMock}
|
|
126
|
+
onExportData={exportDataMock}
|
|
127
|
+
visibleRowCount={10}
|
|
128
|
+
totalRowCount={14}
|
|
129
|
+
toolbarCopy={copy.toolbar}
|
|
130
|
+
expanded={true}
|
|
131
|
+
isSettingsDrawerOpen={false}
|
|
132
|
+
isExportDrawerOpen={false}
|
|
133
|
+
hasExportsDrawer={true}
|
|
134
|
+
showFilters={true}
|
|
135
|
+
disableClearFilters={false}
|
|
136
|
+
/>
|
|
137
|
+
</div>
|
|
138
|
+
);
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
it("should display 'Minimize' button text and minimize icon when expanded", () => {
|
|
142
|
+
const expandButton = screen.getByTestId(Selectors.TOOLBAR.EXPAND_BUTTON);
|
|
143
|
+
expect(expandButton).toHaveTextContent("Minimize");
|
|
144
|
+
expect(expandButton).toHaveAttribute("aria-expanded", "true");
|
|
145
|
+
expect(expandButton).toHaveAttribute("aria-label", copy.toolbar.ariaLabels?.minimize);
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
it("should call onToggleExpand with 'false' when clicking minimize button while expanded", async () => {
|
|
149
|
+
const expandButton = screen.getByTestId(Selectors.TOOLBAR.EXPAND_BUTTON);
|
|
150
|
+
await userEvent.click(expandButton);
|
|
151
|
+
expect(toggleExpandMock).toHaveBeenCalledWith(false);
|
|
152
|
+
});
|
|
97
153
|
});
|
|
98
154
|
});
|
package/src/table-toolbar.tsx
CHANGED
|
@@ -2,6 +2,7 @@ import React, { type Dispatch, type HTMLAttributes, type SetStateAction } from "
|
|
|
2
2
|
import { Button } from "@purpurds/button";
|
|
3
3
|
import { IconDownload } from "@purpurds/icon/download";
|
|
4
4
|
import { IconMaximize } from "@purpurds/icon/maximize";
|
|
5
|
+
import { IconMinimize } from "@purpurds/icon/minimize";
|
|
5
6
|
import { IconSettings } from "@purpurds/icon/settings";
|
|
6
7
|
import { Paragraph } from "@purpurds/paragraph";
|
|
7
8
|
import c from "classnames/bind";
|
|
@@ -13,12 +14,14 @@ export type TableToolbarCopyProps = {
|
|
|
13
14
|
export?: string;
|
|
14
15
|
settings?: string;
|
|
15
16
|
expand?: string;
|
|
17
|
+
minimize?: string;
|
|
16
18
|
clearFilters?: string;
|
|
17
19
|
};
|
|
18
20
|
ariaLabels?: {
|
|
19
21
|
export?: string;
|
|
20
22
|
settings?: string;
|
|
21
23
|
expand?: string;
|
|
24
|
+
minimize?: string;
|
|
22
25
|
clearFilters?: string;
|
|
23
26
|
};
|
|
24
27
|
rowCount?: {
|
|
@@ -31,11 +34,12 @@ export type TableToolbarCopyProps = {
|
|
|
31
34
|
export type TableToolbarProps = HTMLAttributes<HTMLDivElement> & {
|
|
32
35
|
onSetDrawerIsOpen: Dispatch<SetStateAction<boolean>>;
|
|
33
36
|
onResetColumnFilters: () => void;
|
|
34
|
-
onToggleExpand?: () => void;
|
|
37
|
+
onToggleExpand?: (value: boolean) => void;
|
|
35
38
|
onExportData?: () => void;
|
|
36
39
|
visibleRowCount: number;
|
|
37
40
|
totalRowCount: number;
|
|
38
41
|
toolbarCopy?: TableToolbarCopyProps;
|
|
42
|
+
expanded: boolean;
|
|
39
43
|
isSettingsDrawerOpen: boolean;
|
|
40
44
|
isExportDrawerOpen: boolean;
|
|
41
45
|
hasExportsDrawer: boolean;
|
|
@@ -59,6 +63,7 @@ export const TableToolbar = ({
|
|
|
59
63
|
onToggleExpand,
|
|
60
64
|
disableClearFilters,
|
|
61
65
|
hasExportsDrawer,
|
|
66
|
+
expanded,
|
|
62
67
|
isExportDrawerOpen,
|
|
63
68
|
isSettingsDrawerOpen,
|
|
64
69
|
showFilters,
|
|
@@ -126,13 +131,14 @@ export const TableToolbar = ({
|
|
|
126
131
|
<Button
|
|
127
132
|
data-testid={`${rootTestId}-expand-button`}
|
|
128
133
|
variant="text"
|
|
129
|
-
onClick={() => onToggleExpand()}
|
|
134
|
+
onClick={() => onToggleExpand(!expanded)}
|
|
130
135
|
type="button"
|
|
131
|
-
aria-label={copy?.ariaLabels?.expand}
|
|
136
|
+
aria-label={expanded ? copy?.ariaLabels?.minimize : copy?.ariaLabels?.expand}
|
|
132
137
|
aria-controls={ariaControls}
|
|
138
|
+
aria-expanded={expanded}
|
|
133
139
|
>
|
|
134
|
-
<IconMaximize size="xs" />
|
|
135
|
-
{copy.buttons.expand}
|
|
140
|
+
{expanded ? <IconMinimize size="xs" /> : <IconMaximize size="xs" />}
|
|
141
|
+
{expanded ? copy.buttons.minimize : copy.buttons.expand}
|
|
136
142
|
</Button>
|
|
137
143
|
)}
|
|
138
144
|
</div>
|
package/src/table.stories.tsx
CHANGED
|
@@ -218,13 +218,15 @@ const commonToolbarCopy = {
|
|
|
218
218
|
buttons: {
|
|
219
219
|
export: "Export",
|
|
220
220
|
expand: "Expand",
|
|
221
|
-
|
|
221
|
+
minimize: "Minimize",
|
|
222
|
+
settings: "Table settings",
|
|
222
223
|
clearFilters: "Clear filters",
|
|
223
224
|
},
|
|
224
225
|
ariaLabels: {
|
|
225
226
|
clearFilters: "Clear all filters",
|
|
226
227
|
expand: "Expand the table",
|
|
227
228
|
export: "Open export drawer",
|
|
229
|
+
minimize: "Minimize the table",
|
|
228
230
|
settings: "Open settings drawer",
|
|
229
231
|
},
|
|
230
232
|
rowCount: {
|
|
@@ -261,7 +263,7 @@ const commonSettingsDrawerCopyWithColumnDrag = {
|
|
|
261
263
|
...commonSettingsDrawerCopy.visibleColumns,
|
|
262
264
|
rearrangeDescription: "Choose how you want to reorder the columns.",
|
|
263
265
|
buttons: {
|
|
264
|
-
rearrange: "Reorder",
|
|
266
|
+
rearrange: "Reorder columns",
|
|
265
267
|
done: "Done",
|
|
266
268
|
},
|
|
267
269
|
ariaLabels: {
|
|
@@ -434,7 +436,7 @@ manages filtering, sorting and pagination internally.
|
|
|
434
436
|
enableFilters={args.enableFilters}
|
|
435
437
|
enableToolbar={args.enableToolbar}
|
|
436
438
|
loading={args.loading}
|
|
437
|
-
onToggleExpand={() => setTableExpanded(
|
|
439
|
+
onToggleExpand={(value) => setTableExpanded(value)}
|
|
438
440
|
paginationComponent={<Pagination {...defaultArgs} />}
|
|
439
441
|
onRowsCountChange={setRowCount}
|
|
440
442
|
onColumnVisibilityChange={setColumnVisibility}
|
|
@@ -887,7 +889,7 @@ This example demonstrates the toolbar functionality in the Table.
|
|
|
887
889
|
settingsDrawerCopy={commonSettingsDrawerCopy}
|
|
888
890
|
exportFormats={["csv", "xlsx"]}
|
|
889
891
|
exportDrawerCopy={commonExportDrawerCopy}
|
|
890
|
-
onToggleExpand={() => setTableExpanded(
|
|
892
|
+
onToggleExpand={(value) => setTableExpanded(value)}
|
|
891
893
|
onExportData={(format) => console.log(`Exporting in ${format} format`)}
|
|
892
894
|
state={{ columnFilters, columnVisibility }}
|
|
893
895
|
onColumnFiltersChange={setColumnFilters}
|
|
@@ -1244,7 +1246,7 @@ sorting, and filtering are managed by a server API instead of in the browser.
|
|
|
1244
1246
|
toolbarCopy={args.toolbarCopy}
|
|
1245
1247
|
enableFilters={args.enableFilters}
|
|
1246
1248
|
enableMultiRowSelection={args.enableMultiRowSelection || true}
|
|
1247
|
-
onToggleExpand={() => setTableExpanded(
|
|
1249
|
+
onToggleExpand={(value) => setTableExpanded(value)}
|
|
1248
1250
|
paginationComponent={<Pagination {...paginationProps} />}
|
|
1249
1251
|
onColumnVisibilityChange={setColumnVisibility}
|
|
1250
1252
|
setShowOnlySelectedRows={setShowOnlySelectedRows}
|
|
@@ -1330,6 +1332,7 @@ differ from the default values. This is useful for persisting user preferences a
|
|
|
1330
1332
|
### How to enable this feature:
|
|
1331
1333
|
\`\`\`jsx
|
|
1332
1334
|
const [tableSettings, setTableSettings] = useState({
|
|
1335
|
+
expanded: false, // User did not expand the table
|
|
1333
1336
|
showColumnFilters: false, // User turned off filters
|
|
1334
1337
|
stickyHeaders: false, // User turned off sticky headers
|
|
1335
1338
|
stickyFirstColumn: false, // User turned off sticky first column
|
|
@@ -1339,6 +1342,10 @@ const [tableSettings, setTableSettings] = useState({
|
|
|
1339
1342
|
enableFilters={true}
|
|
1340
1343
|
|
|
1341
1344
|
// Controlled state (user preferences)
|
|
1345
|
+
const handleExpandedChange = (value: boolean) => {
|
|
1346
|
+
setTableSettings((prev) => ({ ...prev, expanded: value }));
|
|
1347
|
+
};
|
|
1348
|
+
|
|
1342
1349
|
controlledShowColumnFilters={tableSettings.showColumnFilters}
|
|
1343
1350
|
onShowColumnFiltersChange={(value) =>
|
|
1344
1351
|
setTableSettings(prev => ({ ...prev, showColumnFilters: value }))
|
|
@@ -1355,6 +1362,7 @@ const [tableSettings, setTableSettings] = useState({
|
|
|
1355
1362
|
}
|
|
1356
1363
|
|
|
1357
1364
|
// Default values (for reset button)
|
|
1365
|
+
defaultExpanded={false}
|
|
1358
1366
|
defaultShowColumnFilters={true}
|
|
1359
1367
|
defaultStickyHeaders={true}
|
|
1360
1368
|
defaultStickyFirstColumn={true}
|
|
@@ -1383,6 +1391,7 @@ const [tableSettings, setTableSettings] = useState({
|
|
|
1383
1391
|
},
|
|
1384
1392
|
render: (args) => {
|
|
1385
1393
|
const [tableSettings, setTableSettings] = useState({
|
|
1394
|
+
expanded: false, // User expanded table (default is false)
|
|
1386
1395
|
showColumnFilters: false, // User turned off filters (default is true)
|
|
1387
1396
|
stickyHeaders: false, // User turned off sticky headers (default is true)
|
|
1388
1397
|
stickyFirstColumn: false, // User turned off sticky first column (default is true)
|
|
@@ -1392,6 +1401,11 @@ const [tableSettings, setTableSettings] = useState({
|
|
|
1392
1401
|
const [columnVisibility, setColumnVisibility] = useState<VisibilityState>({});
|
|
1393
1402
|
|
|
1394
1403
|
// Simulate saving to localStorage when settings change
|
|
1404
|
+
const handleExpandedChange = (value: boolean) => {
|
|
1405
|
+
setTableSettings((prev) => ({ ...prev, expanded: value }));
|
|
1406
|
+
console.log("Saving expanded to localStorage:", value);
|
|
1407
|
+
};
|
|
1408
|
+
|
|
1395
1409
|
const handleShowColumnFiltersChange = (value: boolean) => {
|
|
1396
1410
|
setTableSettings((prev) => ({ ...prev, showColumnFilters: value }));
|
|
1397
1411
|
console.log("Saving showColumnFilters to localStorage:", value);
|
|
@@ -1435,7 +1449,8 @@ const [tableSettings, setTableSettings] = useState({
|
|
|
1435
1449
|
onColumnVisibilityChange={setColumnVisibility}
|
|
1436
1450
|
onExportData={(e) => console.log("Export data", e)}
|
|
1437
1451
|
exportFormats={"csv"}
|
|
1438
|
-
|
|
1452
|
+
controlledExpanded={tableSettings.expanded}
|
|
1453
|
+
onToggleExpand={handleExpandedChange}
|
|
1439
1454
|
/>
|
|
1440
1455
|
);
|
|
1441
1456
|
},
|