@knime/kds-table 0.6.4 → 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 (35) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/index.css +36 -53
  3. package/dist/index.js +98 -545
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/components/TableUI.vue.d.ts +280 -498
  6. package/dist/src/components/TableUI.vue.d.ts.map +1 -1
  7. package/dist/src/components/TableUIWithAutoSizeCalculation.vue.d.ts +285 -502
  8. package/dist/src/components/TableUIWithAutoSizeCalculation.vue.d.ts.map +1 -1
  9. package/dist/src/components/composables/useHeaderMenuItems.d.ts +2 -8
  10. package/dist/src/components/composables/useHeaderMenuItems.d.ts.map +1 -1
  11. package/dist/src/components/control/TableActionBar.vue.d.ts +18 -196
  12. package/dist/src/components/control/TableActionBar.vue.d.ts.map +1 -1
  13. package/dist/src/components/layout/Header.vue.d.ts +12 -27
  14. package/dist/src/components/layout/Header.vue.d.ts.map +1 -1
  15. package/dist/src/components/layout/HeaderCell.vue.d.ts +2 -6
  16. package/dist/src/components/layout/HeaderCell.vue.d.ts.map +1 -1
  17. package/dist/src/config/table.config.d.ts +0 -43
  18. package/dist/src/config/table.config.d.ts.map +1 -1
  19. package/dist/src/index.d.ts +10 -13
  20. package/dist/src/index.d.ts.map +1 -1
  21. package/dist/src/types/ActionConfig.d.ts +0 -2
  22. package/dist/src/types/ActionConfig.d.ts.map +1 -1
  23. package/dist/src/types/ColumnConfig.d.ts +2 -9
  24. package/dist/src/types/ColumnConfig.d.ts.map +1 -1
  25. package/dist/src/types/ColumnState.d.ts +0 -7
  26. package/dist/src/types/ColumnState.d.ts.map +1 -1
  27. package/package.json +4 -4
  28. package/dist/src/components/control/actionbar/FilterControl.vue.d.ts +0 -176
  29. package/dist/src/components/control/actionbar/FilterControl.vue.d.ts.map +0 -1
  30. package/dist/src/components/control/actionbar/FilterControlBody.vue.d.ts +0 -14
  31. package/dist/src/components/control/actionbar/FilterControlBody.vue.d.ts.map +0 -1
  32. package/dist/src/components/control/actionbar/filterConfigActive.d.ts +0 -6
  33. package/dist/src/components/control/actionbar/filterConfigActive.d.ts.map +0 -1
  34. package/dist/src/types/FilterConfig.d.ts +0 -37
  35. package/dist/src/types/FilterConfig.d.ts.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
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
+
3
23
  ## 0.6.4
4
24
 
5
25
  ### 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-2a49a01e] {
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,10 +236,10 @@ tr {
253
236
  text-align: left;
254
237
  white-space: nowrap;
255
238
  }
256
- &.header-focused[data-v-2a49a01e] {
239
+ &.header-focused[data-v-31a6758f] {
257
240
  background-color: var(--kds-color-focus-background);
258
241
  }
259
- &.colored-header[data-v-2a49a01e] {
242
+ &.colored-header[data-v-31a6758f] {
260
243
  /* stylelint-disable no-unknown-custom-properties -- runtime variable set via inline :style */
261
244
  background-image: linear-gradient(
262
245
  90deg,
@@ -268,48 +251,48 @@ tr {
268
251
  background-size: var(--kds-spacing-container-0-25x);
269
252
  }
270
253
  & .column-header-content {
271
- &[data-v-2a49a01e] {
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-2a49a01e]:focus {
260
+ &[data-v-31a6758f]:focus {
278
261
  outline: none;
279
262
  }
280
- &.with-button-in-header[data-v-2a49a01e] {
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-2a49a01e] {
269
+ &[data-v-31a6758f] {
287
270
  display: flex;
288
271
  }
289
- & .header-text-container[data-v-2a49a01e] {
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-2a49a01e] {
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-2a49a01e] {
285
+ & .menu-button-hidden[data-v-31a6758f] {
303
286
  pointer-events: none;
304
287
  opacity: 0;
305
288
  }
306
- & .delete-column-button[data-v-2a49a01e] {
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-2a49a01e] {
295
+ &[data-v-31a6758f] {
313
296
  position: absolute;
314
297
 
315
298
  /* resize handle should range into top border */
@@ -335,21 +318,21 @@ tr {
335
318
  cursor: col-resize;
336
319
  opacity: 0;
337
320
  }
338
- & .resize-handle[data-v-2a49a01e] {
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-2a49a01e] {
325
+ &.hover[data-v-31a6758f] {
343
326
  opacity: 1;
344
327
  }
345
- &.drag[data-v-2a49a01e] {
328
+ &.drag[data-v-31a6758f] {
346
329
  opacity: 1;
347
330
  }
348
331
  }
349
332
  }
350
333
 
351
334
  thead {
352
- &[data-v-a024da6c] {
335
+ &[data-v-a97dc625] {
353
336
  /* TODO SLEEK-376 handle background color */
354
337
  /* stylelint-disable-next-line no-unknown-custom-properties */
355
338
  background-color: var(--knime-white);
@@ -357,7 +340,7 @@ thead {
357
340
  border-bottom: var(--kds-border-base-subtle);
358
341
  }
359
342
  & tr {
360
- &[data-v-a024da6c] {
343
+ &[data-v-a97dc625] {
361
344
  display: flex;
362
345
  height: 100%;
363
346
  transition:
@@ -365,51 +348,51 @@ thead {
365
348
  box-shadow 0.15s;
366
349
  }
367
350
  & th {
368
- &[data-v-a024da6c] {
351
+ &[data-v-a97dc625] {
369
352
  min-height: var(--kds-dimension-component-height-2-5x);
370
353
  max-height: var(--kds-dimension-component-height-5x);
371
354
  text-align: left;
372
355
  white-space: nowrap;
373
356
  }
374
- &.deletion-cell-spacer[data-v-a024da6c] {
357
+ &.deletion-cell-spacer[data-v-a97dc625] {
375
358
  width: var(--kds-dimension-component-width-2x);
376
359
  }
377
360
  &.select-cell {
378
- &[data-v-a024da6c] {
361
+ &[data-v-a97dc625] {
379
362
  display: flex;
380
363
  justify-content: center;
381
364
  width: var(--kds-dimension-component-width-2x);
382
365
  padding: var(--kds-spacing-container-0-75x);
383
366
  }
384
- & .select-checkbox[data-v-a024da6c] {
367
+ & .select-checkbox[data-v-a97dc625] {
385
368
  /* With this added padding the checkbox appears centered initially */
386
369
  padding: var(--kds-spacing-container-0-10x);
387
370
  }
388
371
  }
389
- &.new-column-head[data-v-a024da6c] {
372
+ &.new-column-head[data-v-a97dc625] {
390
373
  display: flex;
391
374
  flex-direction: column;
392
375
  justify-content: center;
393
376
  padding: var(--kds-spacing-container-0-5x);
394
377
  }
395
378
  }
396
- &[data-v-a024da6c]:hover {
379
+ &[data-v-a97dc625]:hover {
397
380
  outline: none;
398
381
  }
399
382
  }
400
- &.sub-menu-active tr[data-v-a024da6c] {
383
+ &.sub-menu-active tr[data-v-a97dc625] {
401
384
  padding-right: var(--kds-dimension-component-width-2x);
402
385
  }
403
386
  }
404
387
  .header-selection-overlay {
405
- &[data-v-a024da6c] {
388
+ &[data-v-a97dc625] {
406
389
  position: absolute;
407
390
  top: 0;
408
391
  height: 100%;
409
392
  pointer-events: none;
410
393
  border: var(--kds-border-action-selected-accent);
411
394
  }
412
- &.header-focused[data-v-a024da6c] {
395
+ &.header-focused[data-v-a97dc625] {
413
396
  border: var(--kds-border-action-focused);
414
397
  }
415
398
  }
@@ -580,7 +563,7 @@ tr.row {
580
563
  }
581
564
  }
582
565
 
583
- .wrapper[data-v-5dec2b59] {
566
+ .wrapper[data-v-d531fa0a] {
584
567
  display: flex;
585
568
  flex-direction: column;
586
569
  width: 100%;
@@ -590,7 +573,7 @@ tr.row {
590
573
  }
591
574
  }
592
575
  table {
593
- &[data-v-5dec2b59] {
576
+ &[data-v-d531fa0a] {
594
577
  position: relative;
595
578
  display: flex;
596
579
  flex-grow: 1;
@@ -598,15 +581,15 @@ table {
598
581
  width: 100%;
599
582
  min-height: 0;
600
583
  }
601
- &[data-v-5dec2b59]:focus {
584
+ &[data-v-d531fa0a]:focus {
602
585
  outline: none;
603
586
  }
604
- & .new-row-footer[data-v-5dec2b59] {
587
+ & .new-row-footer[data-v-d531fa0a] {
605
588
  width: 100%;
606
589
  }
607
590
  }
608
591
 
609
- .table-column-size-calculation[data-v-29efd9ce] {
592
+ .table-column-size-calculation[data-v-11d56c71] {
610
593
  position: absolute;
611
594
  top: -9999px;
612
595
  left: -9999px;