@spectrum-web-components/table 0.38.0 → 0.39.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/README.md +263 -12
- package/custom-elements.json +101 -0
- package/package.json +7 -7
- package/src/Table.d.ts +12 -0
- package/src/Table.dev.js +19 -1
- package/src/Table.dev.js.map +2 -2
- package/src/Table.js +6 -6
- package/src/Table.js.map +2 -2
- package/src/TableCheckboxCell.d.ts +5 -0
- package/src/TableCheckboxCell.dev.js +10 -3
- package/src/TableCheckboxCell.dev.js.map +2 -2
- package/src/TableCheckboxCell.js +3 -2
- package/src/TableCheckboxCell.js.map +3 -3
- package/src/TableHeadCell.dev.js +1 -1
- package/src/TableHeadCell.dev.js.map +2 -2
- package/src/TableHeadCell.js +1 -1
- package/src/TableHeadCell.js.map +2 -2
- package/src/spectrum-config.js +127 -6
- package/src/spectrum-table-body.css.dev.js +9 -9
- package/src/spectrum-table-body.css.dev.js.map +1 -1
- package/src/spectrum-table-body.css.js +11 -11
- package/src/spectrum-table-body.css.js.map +1 -1
- package/src/spectrum-table-cell.css.dev.js +59 -15
- package/src/spectrum-table-cell.css.dev.js.map +2 -2
- package/src/spectrum-table-cell.css.js +61 -17
- package/src/spectrum-table-cell.css.js.map +2 -2
- package/src/spectrum-table-checkbox-cell.css.dev.js +101 -3
- package/src/spectrum-table-checkbox-cell.css.dev.js.map +2 -2
- package/src/spectrum-table-checkbox-cell.css.js +103 -5
- package/src/spectrum-table-checkbox-cell.css.js.map +2 -2
- package/src/spectrum-table-head-cell.css.dev.js +102 -32
- package/src/spectrum-table-head-cell.css.dev.js.map +2 -2
- package/src/spectrum-table-head-cell.css.js +104 -34
- package/src/spectrum-table-head-cell.css.js.map +2 -2
- package/src/spectrum-table-head.css.dev.js +1 -1
- package/src/spectrum-table-head.css.dev.js.map +1 -1
- package/src/spectrum-table-head.css.js +1 -1
- package/src/spectrum-table-head.css.js.map +1 -1
- package/src/spectrum-table-row.css.dev.js +199 -27
- package/src/spectrum-table-row.css.dev.js.map +2 -2
- package/src/spectrum-table-row.css.js +201 -29
- package/src/spectrum-table-row.css.js.map +2 -2
- package/src/spectrum-table.css.dev.js +247 -325
- package/src/spectrum-table.css.dev.js.map +2 -2
- package/src/spectrum-table.css.js +249 -327
- package/src/spectrum-table.css.js.map +2 -2
- package/src/table-body.css.dev.js +17 -9
- package/src/table-body.css.dev.js.map +2 -2
- package/src/table-body.css.js +17 -9
- package/src/table-body.css.js.map +2 -2
- package/src/table-cell.css.dev.js +59 -15
- package/src/table-cell.css.dev.js.map +2 -2
- package/src/table-cell.css.js +61 -17
- package/src/table-cell.css.js.map +2 -2
- package/src/table-checkbox-cell.css.dev.js +101 -3
- package/src/table-checkbox-cell.css.dev.js.map +2 -2
- package/src/table-checkbox-cell.css.js +101 -3
- package/src/table-checkbox-cell.css.js.map +2 -2
- package/src/table-head-cell.css.dev.js +103 -33
- package/src/table-head-cell.css.dev.js.map +2 -2
- package/src/table-head-cell.css.js +105 -35
- package/src/table-head-cell.css.js.map +2 -2
- package/src/table-head.css.dev.js +1 -1
- package/src/table-head.css.dev.js.map +1 -1
- package/src/table-head.css.js +1 -1
- package/src/table-head.css.js.map +1 -1
- package/src/table-row.css.dev.js +199 -27
- package/src/table-row.css.dev.js.map +2 -2
- package/src/table-row.css.js +201 -29
- package/src/table-row.css.js.map +2 -2
- package/src/table.css.dev.js +247 -325
- package/src/table.css.dev.js.map +2 -2
- package/src/table.css.js +249 -327
- package/src/table.css.js.map +2 -2
- package/stories/table-elements.stories.js +40 -4
- package/stories/table-elements.stories.js.map +2 -2
- package/test/helpers.js +18 -0
- package/test/helpers.js.map +7 -0
- package/test/table-selects.test.js +2 -16
- package/test/table-selects.test.js.map +2 -2
- package/test/table.test.js +3 -24
- package/test/table.test.js.map +2 -2
- package/test/virtualized-table-selects.test.js +15 -46
- package/test/virtualized-table-selects.test.js.map +2 -2
- package/test/virtualized-table.test.js +4 -27
- package/test/virtualized-table.test.js.map +2 -2
package/README.md
CHANGED
|
@@ -45,10 +45,8 @@ import {
|
|
|
45
45
|
|
|
46
46
|
## Example
|
|
47
47
|
|
|
48
|
-
To ensure that the table scrolls, make sure to add a `style` attribute to `<sp-table>` with your desired height. Otherwise, the table will automatically show all its items.
|
|
49
|
-
|
|
50
48
|
```html
|
|
51
|
-
<sp-table
|
|
49
|
+
<sp-table>
|
|
52
50
|
<sp-table-head>
|
|
53
51
|
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
54
52
|
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
@@ -94,10 +92,8 @@ When `selects="single"`, the `<sp-table>` will manage a _single_ selection in th
|
|
|
94
92
|
|
|
95
93
|
```html
|
|
96
94
|
<sp-table
|
|
97
|
-
size="m"
|
|
98
95
|
selects="single"
|
|
99
96
|
selected='["row1"]'
|
|
100
|
-
style="height: 200px"
|
|
101
97
|
onchange="spAlert(this, `Selected: ${JSON.stringify(this.selected)}`)"
|
|
102
98
|
>
|
|
103
99
|
<sp-table-head>
|
|
@@ -137,12 +133,10 @@ When `selects="single"`, the `<sp-table>` will manage a _single_ selection in th
|
|
|
137
133
|
|
|
138
134
|
### `selects="multiple"`
|
|
139
135
|
|
|
140
|
-
When `selects="multiple"`, the `<sp-table>`
|
|
136
|
+
When `selects="multiple"`, the `<sp-table>` manages selections via a presence toggle and adds them to the `selected` array. Additionally, an `<sp-table-checkbox-cell>` will be made available in the `<sp-table-head>` in order to select/deselect all items in the `<sp-table>`.
|
|
141
137
|
|
|
142
138
|
```html
|
|
143
139
|
<sp-table
|
|
144
|
-
size="m"
|
|
145
|
-
style="height: 200px"
|
|
146
140
|
selects="multiple"
|
|
147
141
|
selected='["row1", "row2"]'
|
|
148
142
|
onchange="spAlert(this, `Selected: ${JSON.stringify(this.selected)}`)"
|
|
@@ -182,13 +176,273 @@ When `selects="multiple"`, the `<sp-table>` will manage a selection in the array
|
|
|
182
176
|
</sp-table>
|
|
183
177
|
```
|
|
184
178
|
|
|
179
|
+
## Emphasized
|
|
180
|
+
|
|
181
|
+
Use the `emphasized` attribute to add priority to the information that is delivered within your `<table>` element. In particular, this affects the appearance of selected rows, and will set the emphasized style for the checkboxes within `sp-table-checkbox-cell`.
|
|
182
|
+
Leaving off the `emphasized` attribute will display the non-emphasized colors.
|
|
183
|
+
|
|
184
|
+
```html
|
|
185
|
+
<sp-table emphasized selects="multiple" selected='["row1"]'>
|
|
186
|
+
<sp-table-head>
|
|
187
|
+
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
188
|
+
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
189
|
+
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
190
|
+
</sp-table-head>
|
|
191
|
+
<sp-table-body>
|
|
192
|
+
<sp-table-row value="row1">
|
|
193
|
+
<sp-table-cell>Row Item Alpha</sp-table-cell>
|
|
194
|
+
<sp-table-cell>Row Item Alpha</sp-table-cell>
|
|
195
|
+
<sp-table-cell>Row Item Alpha</sp-table-cell>
|
|
196
|
+
</sp-table-row>
|
|
197
|
+
<sp-table-row value="row2">
|
|
198
|
+
<sp-table-cell>Row Item Bravo</sp-table-cell>
|
|
199
|
+
<sp-table-cell>Row Item Bravo</sp-table-cell>
|
|
200
|
+
<sp-table-cell>Row Item Bravo</sp-table-cell>
|
|
201
|
+
</sp-table-row>
|
|
202
|
+
<sp-table-row value="row3">
|
|
203
|
+
<sp-table-cell>Row Item Charlie</sp-table-cell>
|
|
204
|
+
<sp-table-cell>Row Item Charlie</sp-table-cell>
|
|
205
|
+
<sp-table-cell>Row Item Charlie</sp-table-cell>
|
|
206
|
+
</sp-table-row>
|
|
207
|
+
</sp-table-body>
|
|
208
|
+
</sp-table>
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
## Density
|
|
212
|
+
|
|
213
|
+
The optional `density` property changes the spacing around table cell content from the "regular" default. It accepts the values of `compact` or `spacious`.
|
|
214
|
+
|
|
215
|
+
<sp-tabs selected="compact" auto label="Density Attribute Options">
|
|
216
|
+
<sp-tab value="compact">Compact</sp-tab>
|
|
217
|
+
<sp-tab-panel value="compact">
|
|
218
|
+
|
|
219
|
+
```html
|
|
220
|
+
<sp-table density="compact">
|
|
221
|
+
<sp-table-head>
|
|
222
|
+
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
223
|
+
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
224
|
+
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
225
|
+
</sp-table-head>
|
|
226
|
+
<sp-table-body>
|
|
227
|
+
<sp-table-row value="row1">
|
|
228
|
+
<sp-table-cell>Row Item Alpha</sp-table-cell>
|
|
229
|
+
<sp-table-cell>Row Item Alpha</sp-table-cell>
|
|
230
|
+
<sp-table-cell>Row Item Alpha</sp-table-cell>
|
|
231
|
+
</sp-table-row>
|
|
232
|
+
<sp-table-row value="row2">
|
|
233
|
+
<sp-table-cell>Row Item Bravo</sp-table-cell>
|
|
234
|
+
<sp-table-cell>Row Item Bravo</sp-table-cell>
|
|
235
|
+
<sp-table-cell>Row Item Bravo</sp-table-cell>
|
|
236
|
+
</sp-table-row>
|
|
237
|
+
<sp-table-row value="row3">
|
|
238
|
+
<sp-table-cell>Row Item Charlie</sp-table-cell>
|
|
239
|
+
<sp-table-cell>Row Item Charlie</sp-table-cell>
|
|
240
|
+
<sp-table-cell>Row Item Charlie</sp-table-cell>
|
|
241
|
+
</sp-table-row>
|
|
242
|
+
</sp-table-body>
|
|
243
|
+
</sp-table>
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
</sp-tab-panel>
|
|
247
|
+
<sp-tab value="spacious">Spacious</sp-tab>
|
|
248
|
+
<sp-tab-panel value="spacious">
|
|
249
|
+
|
|
250
|
+
```html
|
|
251
|
+
<sp-table density="spacious">
|
|
252
|
+
<sp-table-head>
|
|
253
|
+
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
254
|
+
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
255
|
+
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
256
|
+
</sp-table-head>
|
|
257
|
+
<sp-table-body>
|
|
258
|
+
<sp-table-row value="row1">
|
|
259
|
+
<sp-table-cell>Row Item Alpha</sp-table-cell>
|
|
260
|
+
<sp-table-cell>Row Item Alpha</sp-table-cell>
|
|
261
|
+
<sp-table-cell>Row Item Alpha</sp-table-cell>
|
|
262
|
+
</sp-table-row>
|
|
263
|
+
<sp-table-row value="row2">
|
|
264
|
+
<sp-table-cell>Row Item Bravo</sp-table-cell>
|
|
265
|
+
<sp-table-cell>Row Item Bravo</sp-table-cell>
|
|
266
|
+
<sp-table-cell>Row Item Bravo</sp-table-cell>
|
|
267
|
+
</sp-table-row>
|
|
268
|
+
<sp-table-row value="row3">
|
|
269
|
+
<sp-table-cell>Row Item Charlie</sp-table-cell>
|
|
270
|
+
<sp-table-cell>Row Item Charlie</sp-table-cell>
|
|
271
|
+
<sp-table-cell>Row Item Charlie</sp-table-cell>
|
|
272
|
+
</sp-table-row>
|
|
273
|
+
</sp-table-body>
|
|
274
|
+
</sp-table>
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
</sp-tab-panel>
|
|
278
|
+
</sp-tabs>
|
|
279
|
+
|
|
280
|
+
## Sizes
|
|
281
|
+
|
|
282
|
+
<sp-tabs selected="s" auto label="Size Attribute Options">
|
|
283
|
+
<sp-tab value="s">Small</sp-tab>
|
|
284
|
+
<sp-tab-panel value="s">
|
|
285
|
+
|
|
286
|
+
```html
|
|
287
|
+
<sp-table size="s">
|
|
288
|
+
<sp-table-head>
|
|
289
|
+
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
290
|
+
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
291
|
+
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
292
|
+
</sp-table-head>
|
|
293
|
+
<sp-table-body>
|
|
294
|
+
<sp-table-row value="row1">
|
|
295
|
+
<sp-table-cell>Row Item Alpha</sp-table-cell>
|
|
296
|
+
<sp-table-cell>Row Item Alpha</sp-table-cell>
|
|
297
|
+
<sp-table-cell>Row Item Alpha</sp-table-cell>
|
|
298
|
+
</sp-table-row>
|
|
299
|
+
<sp-table-row value="row2">
|
|
300
|
+
<sp-table-cell>Row Item Bravo</sp-table-cell>
|
|
301
|
+
<sp-table-cell>Row Item Bravo</sp-table-cell>
|
|
302
|
+
<sp-table-cell>Row Item Bravo</sp-table-cell>
|
|
303
|
+
</sp-table-row>
|
|
304
|
+
<sp-table-row value="row3">
|
|
305
|
+
<sp-table-cell>Row Item Charlie</sp-table-cell>
|
|
306
|
+
<sp-table-cell>Row Item Charlie</sp-table-cell>
|
|
307
|
+
<sp-table-cell>Row Item Charlie</sp-table-cell>
|
|
308
|
+
</sp-table-row>
|
|
309
|
+
</sp-table-body>
|
|
310
|
+
</sp-table>
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
</sp-tab-panel>
|
|
314
|
+
<sp-tab value="m">Medium (Default)</sp-tab>
|
|
315
|
+
<sp-tab-panel value="m">
|
|
316
|
+
|
|
317
|
+
```html
|
|
318
|
+
<sp-table>
|
|
319
|
+
<sp-table-head>
|
|
320
|
+
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
321
|
+
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
322
|
+
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
323
|
+
</sp-table-head>
|
|
324
|
+
<sp-table-body>
|
|
325
|
+
<sp-table-row value="row1">
|
|
326
|
+
<sp-table-cell>Row Item Alpha</sp-table-cell>
|
|
327
|
+
<sp-table-cell>Row Item Alpha</sp-table-cell>
|
|
328
|
+
<sp-table-cell>Row Item Alpha</sp-table-cell>
|
|
329
|
+
</sp-table-row>
|
|
330
|
+
<sp-table-row value="row2">
|
|
331
|
+
<sp-table-cell>Row Item Bravo</sp-table-cell>
|
|
332
|
+
<sp-table-cell>Row Item Bravo</sp-table-cell>
|
|
333
|
+
<sp-table-cell>Row Item Bravo</sp-table-cell>
|
|
334
|
+
</sp-table-row>
|
|
335
|
+
<sp-table-row value="row3">
|
|
336
|
+
<sp-table-cell>Row Item Charlie</sp-table-cell>
|
|
337
|
+
<sp-table-cell>Row Item Charlie</sp-table-cell>
|
|
338
|
+
<sp-table-cell>Row Item Charlie</sp-table-cell>
|
|
339
|
+
</sp-table-row>
|
|
340
|
+
</sp-table-body>
|
|
341
|
+
</sp-table>
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
</sp-tab-panel>
|
|
345
|
+
<sp-tab value="l">Large</sp-tab>
|
|
346
|
+
<sp-tab-panel value="l">
|
|
347
|
+
|
|
348
|
+
```html
|
|
349
|
+
<sp-table size="l">
|
|
350
|
+
<sp-table-head>
|
|
351
|
+
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
352
|
+
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
353
|
+
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
354
|
+
</sp-table-head>
|
|
355
|
+
<sp-table-body>
|
|
356
|
+
<sp-table-row value="row1">
|
|
357
|
+
<sp-table-cell>Row Item Alpha</sp-table-cell>
|
|
358
|
+
<sp-table-cell>Row Item Alpha</sp-table-cell>
|
|
359
|
+
<sp-table-cell>Row Item Alpha</sp-table-cell>
|
|
360
|
+
</sp-table-row>
|
|
361
|
+
<sp-table-row value="row2">
|
|
362
|
+
<sp-table-cell>Row Item Bravo</sp-table-cell>
|
|
363
|
+
<sp-table-cell>Row Item Bravo</sp-table-cell>
|
|
364
|
+
<sp-table-cell>Row Item Bravo</sp-table-cell>
|
|
365
|
+
</sp-table-row>
|
|
366
|
+
<sp-table-row value="row3">
|
|
367
|
+
<sp-table-cell>Row Item Charlie</sp-table-cell>
|
|
368
|
+
<sp-table-cell>Row Item Charlie</sp-table-cell>
|
|
369
|
+
<sp-table-cell>Row Item Charlie</sp-table-cell>
|
|
370
|
+
</sp-table-row>
|
|
371
|
+
</sp-table-body>
|
|
372
|
+
</sp-table>
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
</sp-tab-panel>
|
|
376
|
+
<sp-tab value="xl">Extra Large</sp-tab>
|
|
377
|
+
<sp-tab-panel value="xl">
|
|
378
|
+
|
|
379
|
+
```html
|
|
380
|
+
<sp-table size="xl">
|
|
381
|
+
<sp-table-head>
|
|
382
|
+
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
383
|
+
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
384
|
+
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
385
|
+
</sp-table-head>
|
|
386
|
+
<sp-table-body>
|
|
387
|
+
<sp-table-row value="row1">
|
|
388
|
+
<sp-table-cell>Row Item Alpha</sp-table-cell>
|
|
389
|
+
<sp-table-cell>Row Item Alpha</sp-table-cell>
|
|
390
|
+
<sp-table-cell>Row Item Alpha</sp-table-cell>
|
|
391
|
+
</sp-table-row>
|
|
392
|
+
<sp-table-row value="row2">
|
|
393
|
+
<sp-table-cell>Row Item Bravo</sp-table-cell>
|
|
394
|
+
<sp-table-cell>Row Item Bravo</sp-table-cell>
|
|
395
|
+
<sp-table-cell>Row Item Bravo</sp-table-cell>
|
|
396
|
+
</sp-table-row>
|
|
397
|
+
<sp-table-row value="row3">
|
|
398
|
+
<sp-table-cell>Row Item Charlie</sp-table-cell>
|
|
399
|
+
<sp-table-cell>Row Item Charlie</sp-table-cell>
|
|
400
|
+
<sp-table-cell>Row Item Charlie</sp-table-cell>
|
|
401
|
+
</sp-table-row>
|
|
402
|
+
</sp-table-body>
|
|
403
|
+
</sp-table>
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
</sp-tab-panel>
|
|
407
|
+
</sp-tabs>
|
|
408
|
+
|
|
409
|
+
## Quiet
|
|
410
|
+
|
|
411
|
+
When using the `quiet` property, the overall look of the table will change. The quiet variant of Table has a transparent background and no borders on the left and right.
|
|
412
|
+
|
|
413
|
+
```html
|
|
414
|
+
<sp-table quiet>
|
|
415
|
+
<sp-table-head>
|
|
416
|
+
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
417
|
+
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
418
|
+
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
419
|
+
</sp-table-head>
|
|
420
|
+
<sp-table-body>
|
|
421
|
+
<sp-table-row value="row1">
|
|
422
|
+
<sp-table-cell>Row Item Alpha</sp-table-cell>
|
|
423
|
+
<sp-table-cell>Row Item Alpha</sp-table-cell>
|
|
424
|
+
<sp-table-cell>Row Item Alpha</sp-table-cell>
|
|
425
|
+
</sp-table-row>
|
|
426
|
+
<sp-table-row value="row2">
|
|
427
|
+
<sp-table-cell>Row Item Bravo</sp-table-cell>
|
|
428
|
+
<sp-table-cell>Row Item Bravo</sp-table-cell>
|
|
429
|
+
<sp-table-cell>Row Item Bravo</sp-table-cell>
|
|
430
|
+
</sp-table-row>
|
|
431
|
+
<sp-table-row value="row3">
|
|
432
|
+
<sp-table-cell>Row Item Charlie</sp-table-cell>
|
|
433
|
+
<sp-table-cell>Row Item Charlie</sp-table-cell>
|
|
434
|
+
<sp-table-cell>Row Item Charlie</sp-table-cell>
|
|
435
|
+
</sp-table-row>
|
|
436
|
+
</sp-table-body>
|
|
437
|
+
</sp-table>
|
|
438
|
+
```
|
|
439
|
+
|
|
185
440
|
## Virtualized Table
|
|
186
441
|
|
|
187
442
|
For large amounts of data, the `<sp-table>` can be virtualised to easily add table rows by using properties.
|
|
188
443
|
|
|
189
444
|
```html-live
|
|
190
445
|
<sp-table
|
|
191
|
-
size="m"
|
|
192
446
|
id="table-virtualized-demo"
|
|
193
447
|
style="height: 200px"
|
|
194
448
|
scroller="true"
|
|
@@ -311,7 +565,6 @@ By default the `selected` property will surface an array of item indexes that ar
|
|
|
311
565
|
|
|
312
566
|
```html-live
|
|
313
567
|
<sp-table
|
|
314
|
-
size="m"
|
|
315
568
|
id="table-item-value-demo"
|
|
316
569
|
style="height: 200px"
|
|
317
570
|
scroller="true"
|
|
@@ -414,7 +667,6 @@ All values in the item array are assumed to be homogenous by default. This means
|
|
|
414
667
|
|
|
415
668
|
```html-live
|
|
416
669
|
<sp-table
|
|
417
|
-
size="m"
|
|
418
670
|
id="table-row-type-demo"
|
|
419
671
|
style="height: 200px"
|
|
420
672
|
scroller="true"
|
|
@@ -528,7 +780,6 @@ For each table column you want to sort, use the `sortable` attribute in its resp
|
|
|
528
780
|
|
|
529
781
|
```html-live
|
|
530
782
|
<sp-table
|
|
531
|
-
size="m"
|
|
532
783
|
id="sorted-virtualized-table"
|
|
533
784
|
style="height: 200px"
|
|
534
785
|
scroller="true"
|
package/custom-elements.json
CHANGED
|
@@ -200,6 +200,41 @@
|
|
|
200
200
|
"attribute": "scroller",
|
|
201
201
|
"reflects": true
|
|
202
202
|
},
|
|
203
|
+
{
|
|
204
|
+
"kind": "field",
|
|
205
|
+
"name": "emphasized",
|
|
206
|
+
"type": {
|
|
207
|
+
"text": "boolean"
|
|
208
|
+
},
|
|
209
|
+
"privacy": "public",
|
|
210
|
+
"default": "false",
|
|
211
|
+
"description": "Deliver the Table with additional visual emphasis to selected rows.",
|
|
212
|
+
"attribute": "emphasized",
|
|
213
|
+
"reflects": true
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
"kind": "field",
|
|
217
|
+
"name": "quiet",
|
|
218
|
+
"type": {
|
|
219
|
+
"text": "boolean"
|
|
220
|
+
},
|
|
221
|
+
"privacy": "public",
|
|
222
|
+
"default": "false",
|
|
223
|
+
"description": "Display with \"quiet\" variant styles.",
|
|
224
|
+
"attribute": "quiet",
|
|
225
|
+
"reflects": true
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
"kind": "field",
|
|
229
|
+
"name": "density",
|
|
230
|
+
"type": {
|
|
231
|
+
"text": "'compact' | 'spacious' | undefined"
|
|
232
|
+
},
|
|
233
|
+
"privacy": "public",
|
|
234
|
+
"description": "Changes the spacing around table cell content.",
|
|
235
|
+
"attribute": "density",
|
|
236
|
+
"reflects": true
|
|
237
|
+
},
|
|
203
238
|
{
|
|
204
239
|
"kind": "field",
|
|
205
240
|
"name": "tableBody",
|
|
@@ -445,6 +480,32 @@
|
|
|
445
480
|
"default": "false",
|
|
446
481
|
"description": "Whether or not the virtualized table has a scroll bar. If this is set to true, make sure to specify a height in the sp-table's inline styles.",
|
|
447
482
|
"fieldName": "scroller"
|
|
483
|
+
},
|
|
484
|
+
{
|
|
485
|
+
"name": "emphasized",
|
|
486
|
+
"type": {
|
|
487
|
+
"text": "boolean"
|
|
488
|
+
},
|
|
489
|
+
"default": "false",
|
|
490
|
+
"description": "Deliver the Table with additional visual emphasis to selected rows.",
|
|
491
|
+
"fieldName": "emphasized"
|
|
492
|
+
},
|
|
493
|
+
{
|
|
494
|
+
"name": "quiet",
|
|
495
|
+
"type": {
|
|
496
|
+
"text": "boolean"
|
|
497
|
+
},
|
|
498
|
+
"default": "false",
|
|
499
|
+
"description": "Display with \"quiet\" variant styles.",
|
|
500
|
+
"fieldName": "quiet"
|
|
501
|
+
},
|
|
502
|
+
{
|
|
503
|
+
"name": "density",
|
|
504
|
+
"type": {
|
|
505
|
+
"text": "'compact' | 'spacious' | undefined"
|
|
506
|
+
},
|
|
507
|
+
"description": "Changes the spacing around table cell content.",
|
|
508
|
+
"fieldName": "density"
|
|
448
509
|
}
|
|
449
510
|
],
|
|
450
511
|
"mixins": [
|
|
@@ -591,6 +652,18 @@
|
|
|
591
652
|
"description": "",
|
|
592
653
|
"name": "TableCheckboxCell",
|
|
593
654
|
"members": [
|
|
655
|
+
{
|
|
656
|
+
"kind": "field",
|
|
657
|
+
"name": "headCell",
|
|
658
|
+
"type": {
|
|
659
|
+
"text": "boolean"
|
|
660
|
+
},
|
|
661
|
+
"privacy": "public",
|
|
662
|
+
"default": "false",
|
|
663
|
+
"description": "Whether or not the checkbox cell is in the table head.",
|
|
664
|
+
"attribute": "head-cell",
|
|
665
|
+
"reflects": true
|
|
666
|
+
},
|
|
594
667
|
{
|
|
595
668
|
"kind": "field",
|
|
596
669
|
"name": "role",
|
|
@@ -651,6 +724,17 @@
|
|
|
651
724
|
"attribute": "selects-single",
|
|
652
725
|
"reflects": true
|
|
653
726
|
},
|
|
727
|
+
{
|
|
728
|
+
"kind": "field",
|
|
729
|
+
"name": "emphasized",
|
|
730
|
+
"type": {
|
|
731
|
+
"text": "boolean"
|
|
732
|
+
},
|
|
733
|
+
"privacy": "public",
|
|
734
|
+
"default": "false",
|
|
735
|
+
"attribute": "emphasized",
|
|
736
|
+
"reflects": true
|
|
737
|
+
},
|
|
654
738
|
{
|
|
655
739
|
"kind": "method",
|
|
656
740
|
"name": "click",
|
|
@@ -663,6 +747,15 @@
|
|
|
663
747
|
}
|
|
664
748
|
],
|
|
665
749
|
"attributes": [
|
|
750
|
+
{
|
|
751
|
+
"name": "head-cell",
|
|
752
|
+
"type": {
|
|
753
|
+
"text": "boolean"
|
|
754
|
+
},
|
|
755
|
+
"default": "false",
|
|
756
|
+
"description": "Whether or not the checkbox cell is in the table head.",
|
|
757
|
+
"fieldName": "headCell"
|
|
758
|
+
},
|
|
666
759
|
{
|
|
667
760
|
"name": "role",
|
|
668
761
|
"type": {
|
|
@@ -702,6 +795,14 @@
|
|
|
702
795
|
},
|
|
703
796
|
"default": "false",
|
|
704
797
|
"fieldName": "selectsSingle"
|
|
798
|
+
},
|
|
799
|
+
{
|
|
800
|
+
"name": "emphasized",
|
|
801
|
+
"type": {
|
|
802
|
+
"text": "boolean"
|
|
803
|
+
},
|
|
804
|
+
"default": "false",
|
|
805
|
+
"fieldName": "emphasized"
|
|
705
806
|
}
|
|
706
807
|
],
|
|
707
808
|
"superclass": {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spectrum-web-components/table",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.39.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -117,13 +117,13 @@
|
|
|
117
117
|
"dependencies": {
|
|
118
118
|
"@lit-labs/observers": "^2.0.0",
|
|
119
119
|
"@lit-labs/virtualizer": "^2.0.6",
|
|
120
|
-
"@spectrum-web-components/base": "^0.
|
|
121
|
-
"@spectrum-web-components/checkbox": "^0.
|
|
122
|
-
"@spectrum-web-components/icon": "^0.
|
|
123
|
-
"@spectrum-web-components/icons-ui": "^0.
|
|
120
|
+
"@spectrum-web-components/base": "^0.39.0",
|
|
121
|
+
"@spectrum-web-components/checkbox": "^0.39.0",
|
|
122
|
+
"@spectrum-web-components/icon": "^0.39.0",
|
|
123
|
+
"@spectrum-web-components/icons-ui": "^0.39.0"
|
|
124
124
|
},
|
|
125
125
|
"devDependencies": {
|
|
126
|
-
"@spectrum-css/table": "^
|
|
126
|
+
"@spectrum-css/table": "^5.0.1"
|
|
127
127
|
},
|
|
128
128
|
"types": "./src/index.d.ts",
|
|
129
129
|
"customElements": "custom-elements.json",
|
|
@@ -132,5 +132,5 @@
|
|
|
132
132
|
"./elements.js",
|
|
133
133
|
"./**/*.dev.js"
|
|
134
134
|
],
|
|
135
|
-
"gitHead": "
|
|
135
|
+
"gitHead": "2acc8390ef0ac6cc940958d4da705c9859155c0d"
|
|
136
136
|
}
|
package/src/Table.d.ts
CHANGED
|
@@ -46,6 +46,18 @@ export declare class Table extends Table_base {
|
|
|
46
46
|
* Whether or not the virtualized table has a scroll bar. If this is set to true, make sure to specify a height in the sp-table's inline styles.
|
|
47
47
|
*/
|
|
48
48
|
scroller: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Deliver the Table with additional visual emphasis to selected rows.
|
|
51
|
+
*/
|
|
52
|
+
emphasized: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Display with "quiet" variant styles.
|
|
55
|
+
*/
|
|
56
|
+
quiet: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Changes the spacing around table cell content.
|
|
59
|
+
*/
|
|
60
|
+
density?: 'compact' | 'spacious';
|
|
49
61
|
private tableBody?;
|
|
50
62
|
private tableHeadCheckboxCell?;
|
|
51
63
|
private get tableHead();
|
package/src/Table.dev.js
CHANGED
|
@@ -36,7 +36,7 @@ export var RowType = /* @__PURE__ */ ((RowType2) => {
|
|
|
36
36
|
return RowType2;
|
|
37
37
|
})(RowType || {});
|
|
38
38
|
export class Table extends SizedMixin(SpectrumElement, {
|
|
39
|
-
validSizes: ["s", "m"],
|
|
39
|
+
validSizes: ["s", "m", "l", "xl"],
|
|
40
40
|
noDefaultSize: true
|
|
41
41
|
}) {
|
|
42
42
|
constructor() {
|
|
@@ -51,6 +51,8 @@ export class Table extends SizedMixin(SpectrumElement, {
|
|
|
51
51
|
return `${index}`;
|
|
52
52
|
};
|
|
53
53
|
this.scroller = false;
|
|
54
|
+
this.emphasized = false;
|
|
55
|
+
this.quiet = false;
|
|
54
56
|
}
|
|
55
57
|
static get styles() {
|
|
56
58
|
return [styles];
|
|
@@ -147,6 +149,7 @@ export class Table extends SizedMixin(SpectrumElement, {
|
|
|
147
149
|
row.selected = this.selectedSet.has(row.value);
|
|
148
150
|
if (!row.querySelector(":scope > sp-table-checkbox-cell")) {
|
|
149
151
|
const clonedCheckbox = checkbox.cloneNode();
|
|
152
|
+
checkbox.emphasized = this.emphasized;
|
|
150
153
|
row.insertAdjacentElement("afterbegin", clonedCheckbox);
|
|
151
154
|
checkbox.checked = row.selected;
|
|
152
155
|
}
|
|
@@ -157,6 +160,8 @@ export class Table extends SizedMixin(SpectrumElement, {
|
|
|
157
160
|
this.tableHeadCheckboxCell = document.createElement(
|
|
158
161
|
"sp-table-checkbox-cell"
|
|
159
162
|
);
|
|
163
|
+
this.tableHeadCheckboxCell.headCell = true;
|
|
164
|
+
this.tableHeadCheckboxCell.emphasized = this.emphasized;
|
|
160
165
|
(_a = this.tableHead) == null ? void 0 : _a.insertAdjacentElement(
|
|
161
166
|
"afterbegin",
|
|
162
167
|
this.tableHeadCheckboxCell
|
|
@@ -214,6 +219,8 @@ export class Table extends SizedMixin(SpectrumElement, {
|
|
|
214
219
|
this.tableHeadCheckboxCell = document.createElement(
|
|
215
220
|
"sp-table-checkbox-cell"
|
|
216
221
|
);
|
|
222
|
+
this.tableHeadCheckboxCell.headCell = true;
|
|
223
|
+
this.tableHeadCheckboxCell.emphasized = this.emphasized;
|
|
217
224
|
const allSelected = this.selected.length === this.tableRows.length;
|
|
218
225
|
this.manageHeadCheckbox(allSelected);
|
|
219
226
|
(_a = this.tableHead) == null ? void 0 : _a.insertAdjacentElement(
|
|
@@ -224,6 +231,7 @@ export class Table extends SizedMixin(SpectrumElement, {
|
|
|
224
231
|
const checkbox = document.createElement(
|
|
225
232
|
"sp-table-checkbox-cell"
|
|
226
233
|
);
|
|
234
|
+
checkbox.emphasized = this.emphasized;
|
|
227
235
|
row.insertAdjacentElement("afterbegin", checkbox);
|
|
228
236
|
row.selected = this.selectedSet.has(row.value);
|
|
229
237
|
checkbox.checked = row.selected;
|
|
@@ -243,6 +251,7 @@ export class Table extends SizedMixin(SpectrumElement, {
|
|
|
243
251
|
if (!this.tableHeadCheckboxCell)
|
|
244
252
|
return;
|
|
245
253
|
this.tableHeadCheckboxCell.selectsSingle = this.selects === "single";
|
|
254
|
+
this.tableHeadCheckboxCell.emphasized = this.emphasized;
|
|
246
255
|
this.tableHeadCheckboxCell.checked = allSelected;
|
|
247
256
|
this.tableHeadCheckboxCell.indeterminate = this.selected.length > 0 && !allSelected;
|
|
248
257
|
}
|
|
@@ -400,4 +409,13 @@ __decorateClass([
|
|
|
400
409
|
__decorateClass([
|
|
401
410
|
property({ type: Boolean, reflect: true })
|
|
402
411
|
], Table.prototype, "scroller", 2);
|
|
412
|
+
__decorateClass([
|
|
413
|
+
property({ type: Boolean, reflect: true })
|
|
414
|
+
], Table.prototype, "emphasized", 2);
|
|
415
|
+
__decorateClass([
|
|
416
|
+
property({ type: Boolean, reflect: true })
|
|
417
|
+
], Table.prototype, "quiet", 2);
|
|
418
|
+
__decorateClass([
|
|
419
|
+
property({ type: String, reflect: true })
|
|
420
|
+
], Table.prototype, "density", 2);
|
|
403
421
|
//# sourceMappingURL=Table.dev.js.map
|