@knime/kds-table 0.6.3 → 0.7.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.
Files changed (38) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/dist/index.css +47 -63
  3. package/dist/index.js +101 -548
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/components/TableCore.vue.d.ts.map +1 -1
  6. package/dist/src/components/TableUI.vue.d.ts +280 -498
  7. package/dist/src/components/TableUI.vue.d.ts.map +1 -1
  8. package/dist/src/components/TableUIWithAutoSizeCalculation.vue.d.ts +285 -502
  9. package/dist/src/components/TableUIWithAutoSizeCalculation.vue.d.ts.map +1 -1
  10. package/dist/src/components/composables/useHeaderMenuItems.d.ts +2 -8
  11. package/dist/src/components/composables/useHeaderMenuItems.d.ts.map +1 -1
  12. package/dist/src/components/control/TableActionBar.vue.d.ts +18 -196
  13. package/dist/src/components/control/TableActionBar.vue.d.ts.map +1 -1
  14. package/dist/src/components/control/actionbar/SortControl.vue.d.ts.map +1 -1
  15. package/dist/src/components/layout/Cell.vue.d.ts.map +1 -1
  16. package/dist/src/components/layout/Header.vue.d.ts +12 -27
  17. package/dist/src/components/layout/Header.vue.d.ts.map +1 -1
  18. package/dist/src/components/layout/HeaderCell.vue.d.ts +2 -6
  19. package/dist/src/components/layout/HeaderCell.vue.d.ts.map +1 -1
  20. package/dist/src/config/table.config.d.ts +0 -43
  21. package/dist/src/config/table.config.d.ts.map +1 -1
  22. package/dist/src/index.d.ts +10 -13
  23. package/dist/src/index.d.ts.map +1 -1
  24. package/dist/src/types/ActionConfig.d.ts +0 -2
  25. package/dist/src/types/ActionConfig.d.ts.map +1 -1
  26. package/dist/src/types/ColumnConfig.d.ts +2 -9
  27. package/dist/src/types/ColumnConfig.d.ts.map +1 -1
  28. package/dist/src/types/ColumnState.d.ts +0 -7
  29. package/dist/src/types/ColumnState.d.ts.map +1 -1
  30. package/package.json +6 -6
  31. package/dist/src/components/control/actionbar/FilterControl.vue.d.ts +0 -176
  32. package/dist/src/components/control/actionbar/FilterControl.vue.d.ts.map +0 -1
  33. package/dist/src/components/control/actionbar/FilterControlBody.vue.d.ts +0 -14
  34. package/dist/src/components/control/actionbar/FilterControlBody.vue.d.ts.map +0 -1
  35. package/dist/src/components/control/actionbar/filterConfigActive.d.ts +0 -6
  36. package/dist/src/components/control/actionbar/filterConfigActive.d.ts.map +0 -1
  37. package/dist/src/types/FilterConfig.d.ts +0 -37
  38. package/dist/src/types/FilterConfig.d.ts.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,42 @@
1
1
  # @knime/kds-table
2
2
 
3
+ ## 0.7.0
4
+
5
+ ### Minor Changes
6
+
7
+ - f1defd4: `TableUI` / `TableUIWithAutoSizeCalculation`: remove built-in filter controls and add an extensible `#action-bar-left` slot and `additionalHeaderMenuItems` prop.
8
+
9
+ BREAKING CHANGES:
10
+
11
+ - `TableUI` / `TableUIWithAutoSizeCalculation`: removed prop `colFilterValues`; removed emit `columnFilter`; removed methods `openActionBarFilterControl`, `clearColumnFilter`.
12
+ - `TableActionBar`: removed props `colFilterValues`, `columns`; removed emit `columnFilter`; removed expose `openFilterControl`.
13
+ - `ActionConfig`: removed `enableFilters` field.
14
+ - `ColumnConfig`: removed `filterConfig` field; removed `headerSubMenuItems` field (use `additionalHeaderMenuItems` on `TableUI`/`TableUIWithAutoSizeCalculation` instead).
15
+ - Removed exported types `FilterConfig`, `FilterValue`, `ColFilterValues`.
16
+
17
+ New API:
18
+
19
+ - `TableUI` / `TableUIWithAutoSizeCalculation`: new `#action-bar-left` slot — rendered in the action bar's left section after sort controls; inject any filter UI here.
20
+ - `TableUI` / `TableUIWithAutoSizeCalculation`: new `additionalHeaderMenuItems` prop (`KdsMenuItem[][]`, index-aligned with `columns`) — per-column header menu items appended after sort items, kept separate from `columns` for rendering performance.
21
+ - New exported helpers for building custom filter controls in the `#action-bar-left` slot: `PopoverContainer` component and `useButtonPopoverInteraction` composable.
22
+
23
+ ## 0.6.4
24
+
25
+ ### Patch Changes
26
+
27
+ - Updated dependencies [b698be1]
28
+ - Updated dependencies [7d7918f]
29
+ - Updated dependencies [d6af8e5]
30
+ - Updated dependencies [d6af8e5]
31
+ - Updated dependencies [d6af8e5]
32
+ - Updated dependencies [c2d135a]
33
+ - Updated dependencies [2779db1]
34
+ - Updated dependencies [e774645]
35
+ - Updated dependencies [c2d135a]
36
+ - @knime/kds-styles@2.0.0
37
+ - @knime/kds-components@2.0.0
38
+ - @knime/utils@1.12.0
39
+
3
40
  ## 0.6.3
4
41
 
5
42
  ### Patch Changes
package/dist/index.css CHANGED
@@ -148,23 +148,6 @@ tr {
148
148
  }
149
149
  }
150
150
 
151
- .rows[data-v-e5d5e963] {
152
- display: grid;
153
- grid-template-columns: 2fr 1fr 2fr auto;
154
- gap: var(--kds-spacing-container-0-5x) var(--kds-spacing-container-0-5x);
155
- }
156
- .row[data-v-e5d5e963] {
157
- display: contents;
158
- }
159
- .column[data-v-e5d5e963],
160
- .mode[data-v-e5d5e963],
161
- .value[data-v-e5d5e963] {
162
- min-width: 0;
163
- }
164
- .add[data-v-e5d5e963] {
165
- margin-top: var(--kds-spacing-container-0-5x);
166
- }
167
-
168
151
  .popover {
169
152
  &[data-v-349cd3ba] {
170
153
  display: flex;
@@ -203,7 +186,7 @@ tr {
203
186
  }
204
187
 
205
188
  .kds-table-action-bar {
206
- &[data-v-9181ec3b] {
189
+ &[data-v-a70d7b02] {
207
190
  display: flex;
208
191
  align-items: center;
209
192
  justify-content: space-between;
@@ -212,24 +195,24 @@ tr {
212
195
  padding-left: var(--kds-spacing-container-0-5x);
213
196
  border-top: var(--kds-border-base-subtle);
214
197
  }
215
- &.temporary-view[data-v-9181ec3b] {
198
+ &.temporary-view[data-v-a70d7b02] {
216
199
  background-color: var(--kds-color-background-static-info-muted);
217
200
  }
218
201
  & .left {
219
- &[data-v-9181ec3b] {
202
+ &[data-v-a70d7b02] {
220
203
  display: flex;
221
204
  flex: 1 0 0;
222
205
  gap: var(--kds-spacing-container-0-5x);
223
206
  align-items: center;
224
207
  padding: var(--kds-spacing-container-0-12x) 0;
225
208
  }
226
- & .dimension[data-v-9181ec3b] {
209
+ & .dimension[data-v-a70d7b02] {
227
210
  font: var(--kds-font-base-title-small);
228
211
  color: var(--kds-color-text-and-icon-muted);
229
212
  white-space: pre;
230
213
  }
231
214
  }
232
- & .right[data-v-9181ec3b] {
215
+ & .right[data-v-a70d7b02] {
233
216
  display: flex;
234
217
  gap: var(--kds-spacing-container-0-25x);
235
218
  align-items: center;
@@ -239,7 +222,7 @@ tr {
239
222
  }
240
223
 
241
224
  .column-header {
242
- &[data-v-04d0c31b] {
225
+ &[data-v-31a6758f] {
243
226
  /* Need to set position relative here to position the resize handle absolutely within the header cell */
244
227
  position: relative;
245
228
  display: flex;
@@ -253,63 +236,63 @@ tr {
253
236
  text-align: left;
254
237
  white-space: nowrap;
255
238
  }
256
- &.header-focused[data-v-04d0c31b] {
239
+ &.header-focused[data-v-31a6758f] {
257
240
  background-color: var(--kds-color-focus-background);
258
241
  }
259
- &.colored-header[data-v-04d0c31b] {
260
- /* stylelint-disable csstools/value-no-unknown-custom-properties -- runtime variable set via inline :style */
242
+ &.colored-header[data-v-31a6758f] {
243
+ /* stylelint-disable no-unknown-custom-properties -- runtime variable set via inline :style */
261
244
  background-image: linear-gradient(
262
245
  90deg,
263
246
  var(--data-cell-color),
264
247
  var(--data-cell-color)
265
248
  );
266
- /* stylelint-enable csstools/value-no-unknown-custom-properties */
249
+ /* stylelint-enable no-unknown-custom-properties */
267
250
  background-repeat: no-repeat;
268
251
  background-size: var(--kds-spacing-container-0-25x);
269
252
  }
270
253
  & .column-header-content {
271
- &[data-v-04d0c31b] {
254
+ &[data-v-31a6758f] {
272
255
  display: flex;
273
256
  flex-direction: column;
274
257
  justify-content: center;
275
258
  width: 100%;
276
259
  }
277
- &[data-v-04d0c31b]:focus {
260
+ &[data-v-31a6758f]:focus {
278
261
  outline: none;
279
262
  }
280
- &.with-button-in-header[data-v-04d0c31b] {
263
+ &.with-button-in-header[data-v-31a6758f] {
281
264
  width: calc(
282
265
  100% - var(--kds-dimension-component-width-1-5x)
283
266
  ); /* due to .sub-menu-select-header / .delete-column-button: width */
284
267
  }
285
268
  & .main-header {
286
- &[data-v-04d0c31b] {
269
+ &[data-v-31a6758f] {
287
270
  display: flex;
288
271
  }
289
- & .header-text-container[data-v-04d0c31b] {
272
+ & .header-text-container[data-v-31a6758f] {
290
273
  max-width: 100%;
291
274
  overflow: hidden;
292
275
  text-overflow: ellipsis;
293
276
  font: var(--kds-font-base-title-medium-strong);
294
277
  }
295
278
  }
296
- & .sub-header-text-container[data-v-04d0c31b] {
279
+ & .sub-header-text-container[data-v-31a6758f] {
297
280
  overflow: hidden;
298
281
  text-overflow: ellipsis;
299
282
  font: var(--kds-font-base-subtext-small);
300
283
  }
301
284
  }
302
- & .menu-button-hidden[data-v-04d0c31b] {
285
+ & .menu-button-hidden[data-v-31a6758f] {
303
286
  pointer-events: none;
304
287
  opacity: 0;
305
288
  }
306
- & .delete-column-button[data-v-04d0c31b] {
289
+ & .delete-column-button[data-v-31a6758f] {
307
290
  display: flex;
308
291
  align-items: center;
309
292
  width: var(--kds-dimension-component-width-2x);
310
293
  }
311
294
  & .resize-handle-area {
312
- &[data-v-04d0c31b] {
295
+ &[data-v-31a6758f] {
313
296
  position: absolute;
314
297
 
315
298
  /* resize handle should range into top border */
@@ -335,28 +318,29 @@ tr {
335
318
  cursor: col-resize;
336
319
  opacity: 0;
337
320
  }
338
- & .resize-handle[data-v-04d0c31b] {
321
+ & .resize-handle[data-v-31a6758f] {
339
322
  border-right: var(--kds-border-resize-handle-hover);
340
323
  border-radius: var(--kds-border-radius-container-0-25x);
341
324
  }
342
- &.hover[data-v-04d0c31b] {
325
+ &.hover[data-v-31a6758f] {
343
326
  opacity: 1;
344
327
  }
345
- &.drag[data-v-04d0c31b] {
328
+ &.drag[data-v-31a6758f] {
346
329
  opacity: 1;
347
330
  }
348
331
  }
349
332
  }
350
333
 
351
334
  thead {
352
- &[data-v-302dfb0e] {
353
- /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */
335
+ &[data-v-a97dc625] {
336
+ /* TODO SLEEK-376 handle background color */
337
+ /* stylelint-disable-next-line no-unknown-custom-properties */
354
338
  background-color: var(--knime-white);
355
339
  border-top: var(--kds-border-base-subtle);
356
340
  border-bottom: var(--kds-border-base-subtle);
357
341
  }
358
342
  & tr {
359
- &[data-v-302dfb0e] {
343
+ &[data-v-a97dc625] {
360
344
  display: flex;
361
345
  height: 100%;
362
346
  transition:
@@ -364,51 +348,51 @@ thead {
364
348
  box-shadow 0.15s;
365
349
  }
366
350
  & th {
367
- &[data-v-302dfb0e] {
351
+ &[data-v-a97dc625] {
368
352
  min-height: var(--kds-dimension-component-height-2-5x);
369
353
  max-height: var(--kds-dimension-component-height-5x);
370
354
  text-align: left;
371
355
  white-space: nowrap;
372
356
  }
373
- &.deletion-cell-spacer[data-v-302dfb0e] {
357
+ &.deletion-cell-spacer[data-v-a97dc625] {
374
358
  width: var(--kds-dimension-component-width-2x);
375
359
  }
376
360
  &.select-cell {
377
- &[data-v-302dfb0e] {
361
+ &[data-v-a97dc625] {
378
362
  display: flex;
379
363
  justify-content: center;
380
364
  width: var(--kds-dimension-component-width-2x);
381
365
  padding: var(--kds-spacing-container-0-75x);
382
366
  }
383
- & .select-checkbox[data-v-302dfb0e] {
367
+ & .select-checkbox[data-v-a97dc625] {
384
368
  /* With this added padding the checkbox appears centered initially */
385
369
  padding: var(--kds-spacing-container-0-10x);
386
370
  }
387
371
  }
388
- &.new-column-head[data-v-302dfb0e] {
372
+ &.new-column-head[data-v-a97dc625] {
389
373
  display: flex;
390
374
  flex-direction: column;
391
375
  justify-content: center;
392
376
  padding: var(--kds-spacing-container-0-5x);
393
377
  }
394
378
  }
395
- &[data-v-302dfb0e]:hover {
379
+ &[data-v-a97dc625]:hover {
396
380
  outline: none;
397
381
  }
398
382
  }
399
- &.sub-menu-active tr[data-v-302dfb0e] {
383
+ &.sub-menu-active tr[data-v-a97dc625] {
400
384
  padding-right: var(--kds-dimension-component-width-2x);
401
385
  }
402
386
  }
403
387
  .header-selection-overlay {
404
- &[data-v-302dfb0e] {
388
+ &[data-v-a97dc625] {
405
389
  position: absolute;
406
390
  top: 0;
407
391
  height: 100%;
408
392
  pointer-events: none;
409
393
  border: var(--kds-border-action-selected-accent);
410
394
  }
411
- &.header-focused[data-v-302dfb0e] {
395
+ &.header-focused[data-v-a97dc625] {
412
396
  border: var(--kds-border-action-focused);
413
397
  }
414
398
  }
@@ -461,7 +445,7 @@ thead {
461
445
  }
462
446
 
463
447
  .data-cell {
464
- &[data-v-2b17463f] {
448
+ &[data-v-e7fb7b49] {
465
449
  display: flex;
466
450
  font: var(--kds-font-base-interactive-small);
467
451
  color: var(--kds-color-text-and-icon-neutral);
@@ -469,28 +453,28 @@ thead {
469
453
  user-select: none;
470
454
  background-clip: border-box;
471
455
  }
472
- &.in-cell-selection[data-v-2b17463f] {
456
+ &.in-cell-selection[data-v-e7fb7b49] {
473
457
  background-color: var(--kds-color-focus-background);
474
458
  }
475
- &.colored-cell[data-v-2b17463f] {
476
- /* stylelint-disable csstools/value-no-unknown-custom-properties -- runtime variable set via inline :style */
459
+ &.colored-cell[data-v-e7fb7b49] {
460
+ /* stylelint-disable no-unknown-custom-properties -- runtime variable set via inline :style */
477
461
  background-image: linear-gradient(
478
462
  90deg,
479
463
  var(--data-cell-color),
480
464
  var(--data-cell-color)
481
465
  );
482
- /* stylelint-enable csstools/value-no-unknown-custom-properties */
466
+ /* stylelint-enable no-unknown-custom-properties */
483
467
  background-repeat: no-repeat;
484
468
  background-size: var(--kds-spacing-container-0-25x);
485
469
  }
486
- & .cell-content[data-v-2b17463f] {
470
+ & .cell-content[data-v-e7fb7b49] {
487
471
  display: flex;
488
472
  gap: var(--kds-spacing-container-0-25x);
489
473
  align-self: flex-start;
490
474
  justify-content: space-between;
491
475
  width: 100%;
492
476
  }
493
- & .cell-content .cell-text[data-v-2b17463f] {
477
+ & .cell-content .cell-text[data-v-e7fb7b49] {
494
478
  flex: 0 1 auto;
495
479
  min-width: 0;
496
480
  overflow: hidden;
@@ -579,7 +563,7 @@ tr.row {
579
563
  }
580
564
  }
581
565
 
582
- .wrapper[data-v-5dec2b59] {
566
+ .wrapper[data-v-d531fa0a] {
583
567
  display: flex;
584
568
  flex-direction: column;
585
569
  width: 100%;
@@ -589,7 +573,7 @@ tr.row {
589
573
  }
590
574
  }
591
575
  table {
592
- &[data-v-5dec2b59] {
576
+ &[data-v-d531fa0a] {
593
577
  position: relative;
594
578
  display: flex;
595
579
  flex-grow: 1;
@@ -597,15 +581,15 @@ table {
597
581
  width: 100%;
598
582
  min-height: 0;
599
583
  }
600
- &[data-v-5dec2b59]:focus {
584
+ &[data-v-d531fa0a]:focus {
601
585
  outline: none;
602
586
  }
603
- & .new-row-footer[data-v-5dec2b59] {
587
+ & .new-row-footer[data-v-d531fa0a] {
604
588
  width: 100%;
605
589
  }
606
590
  }
607
591
 
608
- .table-column-size-calculation[data-v-29efd9ce] {
592
+ .table-column-size-calculation[data-v-11d56c71] {
609
593
  position: absolute;
610
594
  top: -9999px;
611
595
  left: -9999px;