@@ -31,21 +31,32 @@ import * as ComponentStories from './Table.stories';
31
31
32
32
## Growing Table
33
33
34
- ` Table ` with ` growing={ TableGrowingMode.Scroll} ` .
34
+ ` Table ` with growing feature ( ` <TableGrowing onLoadMore={onLoadMore} type={ TableGrowingMode.Scroll} /> ` ):
35
35
36
36
<Canvas of = { ComponentStories .GrowingTable } />
37
37
38
- ### Code
38
+ <details >
39
+
40
+ <summary >Show code</summary >
39
41
40
42
``` jsx
41
43
const createRows = (indexOffset ) => {
42
44
return new Array (25 ).fill (' ' ).map ((_ , index ) => (
43
- < TableRow key= {` ${ index + indexOffset} - row` }>
45
+ < TableRow key= {` ${ index + indexOffset} -row` }>
46
+ < TableCell>
47
+ < span> {index + indexOffset}< / span>
48
+ < / TableCell>
49
+ < TableCell>
50
+ < span> Placeholder< / span>
51
+ < / TableCell>
44
52
< TableCell>
45
- < Label > {index + indexOffset} < / Label >
53
+ < span > Placeholder 2 < / span >
46
54
< / TableCell>
47
55
< TableCell>
48
- < Label> Placeholder< / Label>
56
+ < span> Placeholder 3 < / span>
57
+ < / TableCell>
58
+ < TableCell>
59
+ < span> Placeholder 4 < / span>
49
60
< / TableCell>
50
61
< / TableRow>
51
62
));
@@ -59,18 +70,27 @@ const GrowingTable = () => {
59
70
return (
60
71
< div style= {{ height: ' 250px' , overflow: ' auto' }}>
61
72
< Table
62
- onLoadMore= {onLoadMore}
63
- growing= {TableGrowingMode .Scroll }
73
+ {... otherProps}
64
74
headerRow= {
65
- < TableHeaderRow>
66
- < TableHeaderCell>
67
- < Label> Column 1 < / Label>
75
+ < TableHeaderRow sticky>
76
+ < TableHeaderCell width= {' 200px' } minWidth= {' 200px' }>
77
+ < span> Product< / span>
78
+ < / TableHeaderCell>
79
+ < TableHeaderCell minWidth= {' 200px' }>
80
+ < span> Supplier< / span>
81
+ < / TableHeaderCell>
82
+ < TableHeaderCell minWidth= {' 200px' }>
83
+ < span> Dimensions< / span>
68
84
< / TableHeaderCell>
69
- < TableHeaderCell>
70
- < Label > Column 2 < / Label >
85
+ < TableHeaderCell minWidth = { ' 100px ' } maxWidth = " 200px " >
86
+ < span > Weight < / span >
71
87
< / TableHeaderCell>
72
- < / >
88
+ < TableHeaderCell minWidth= " 200px" >
89
+ < span> Price< / span>
90
+ < / TableHeaderCell>
91
+ < / TableHeaderRow>
73
92
}
93
+ features= {< TableGrowing onLoadMore= {onLoadMore} type= {TableGrowingMode .Scroll } / > }
74
94
>
75
95
{rows}
76
96
< / Table>
@@ -79,6 +99,99 @@ const GrowingTable = () => {
79
99
};
80
100
```
81
101
102
+ </details >
103
+
104
+ ## Table with row selection
105
+
106
+ ` Table ` with selection feature (` <TableSelection mode="Multiple" /> ` ):
107
+
108
+ <Canvas of = { ComponentStories .WithSelection } />
109
+
110
+ <details >
111
+
112
+ <summary >Show code</summary >
113
+
114
+ ``` jsx
115
+ function TableWithRowSelection () {
116
+ const [mode , setMode ] = useState (TableSelectionMode .Multiple );
117
+ return (
118
+ <>
119
+ < SegmentedButton
120
+ onSelectionChange= {(e ) => {
121
+ setMode (e .detail .selectedItems [0 ].textContent );
122
+ }}
123
+ >
124
+ {Object .values (TableSelectionMode).map ((selectionMode ) => (
125
+ < SegmentedButtonItem key= {selectionMode} selected= {selectionMode === mode}>
126
+ {selectionMode}
127
+ < / SegmentedButtonItem>
128
+ ))}
129
+ < / SegmentedButton>
130
+ < Table
131
+ {... otherProps}
132
+ headerRow= {
133
+ < TableHeaderRow sticky>
134
+ < TableHeaderCell width= {' 200px' } minWidth= {' 200px' }>
135
+ < span> Product< / span>
136
+ < / TableHeaderCell>
137
+ < TableHeaderCell minWidth= {' 200px' }>
138
+ < span> Supplier< / span>
139
+ < / TableHeaderCell>
140
+ < TableHeaderCell minWidth= {' 200px' }>
141
+ < span> Dimensions< / span>
142
+ < / TableHeaderCell>
143
+ < TableHeaderCell minWidth= {' 100px' } maxWidth= " 200px" >
144
+ < span> Weight< / span>
145
+ < / TableHeaderCell>
146
+ < TableHeaderCell minWidth= " 200px" >
147
+ < span> Price< / span>
148
+ < / TableHeaderCell>
149
+ < / TableHeaderRow>
150
+ }
151
+ features= {< TableSelection mode= {mode} / > }
152
+ >
153
+ < TableRow>
154
+ < TableCell>
155
+ < span> Notebook Basic< / span>
156
+ < / TableCell>
157
+ < TableCell>
158
+ < span> Very Best Screens< / span>
159
+ < / TableCell>
160
+ < TableCell>
161
+ < span> 30 x 18 x 3cm < / span>
162
+ < / TableCell>
163
+ < TableCell>
164
+ < span> 4 .2KG < / span>
165
+ < / TableCell>
166
+ < TableCell>
167
+ < span> 956EUR < / span>
168
+ < / TableCell>
169
+ < / TableRow>
170
+ < TableRow>
171
+ < TableCell>
172
+ < span> Notebook Basic 17HT - 1001 < / span>
173
+ < / TableCell>
174
+ < TableCell>
175
+ < span> Very Best Screens< / span>
176
+ < / TableCell>
177
+ < TableCell>
178
+ < span> 29 x 17 x 3 .1cm < / span>
179
+ < / TableCell>
180
+ < TableCell>
181
+ < span> 4 .5KG < / span>
182
+ < / TableCell>
183
+ < TableCell>
184
+ < span> 1249EUR < / span>
185
+ < / TableCell>
186
+ < / TableRow>
187
+ < / Table>
188
+ < / >
189
+ );
190
+ }
191
+ ```
192
+
193
+ </details >
194
+
82
195
<Markdown >{ SubcomponentsSection } </Markdown >
83
196
84
197
## TableHeaderRow
0 commit comments