@knime/kds-table 6.12.0 → 6.12.2

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/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @knime/kds-table
2
2
 
3
+ ## 6.12.2
4
+
5
+ ### Patch Changes
6
+
7
+ - 6e9b531: Hide the action bar in case it's empty due to hiding the sort button
8
+ - @knime/kds-components@6.12.2
9
+ - @knime/kds-styles@6.12.2
10
+
11
+ ## 6.12.1
12
+
13
+ ### Patch Changes
14
+
15
+ - 720c835: `TableUI`: no longer flickers on initial load. It stays hidden until one tick
16
+ after it has reported its available width for the first time, so column sizes
17
+ derived from that width are already applied when it first becomes visible.
18
+ - @knime/kds-components@6.12.1
19
+ - @knime/kds-styles@6.12.1
20
+
3
21
  ## 6.12.0
4
22
 
5
23
  ### Patch Changes
package/dist/index.css CHANGED
@@ -215,7 +215,7 @@ tr {
215
215
  }
216
216
 
217
217
  .kds-table-action-bar {
218
- &[data-v-206732ac] {
218
+ &[data-v-b0b2c849] {
219
219
  display: grid;
220
220
  grid-template-columns: 1fr 1fr 1fr;
221
221
  min-height: var(--kds-dimension-component-height-2-5x);
@@ -223,42 +223,42 @@ tr {
223
223
  padding-left: var(--kds-spacing-container-0-5x);
224
224
  border-bottom: var(--kds-border-base-subtle);
225
225
  }
226
- &.temporary-view[data-v-206732ac] {
226
+ &.temporary-view[data-v-b0b2c849] {
227
227
  background-color: var(--kds-color-background-static-info-muted);
228
228
  }
229
- & .dimension[data-v-206732ac] {
229
+ & .dimension[data-v-b0b2c849] {
230
230
  font: var(--kds-font-base-title-small);
231
231
  color: var(--kds-color-text-and-icon-muted);
232
232
  white-space: pre;
233
233
  }
234
234
  & .preview {
235
- &[data-v-206732ac] {
235
+ &[data-v-b0b2c849] {
236
236
  display: flex;
237
237
  gap: var(--kds-spacing-container-0-12x);
238
238
  align-items: center;
239
239
  }
240
- & .preview-label[data-v-206732ac] {
240
+ & .preview-label[data-v-b0b2c849] {
241
241
  font: var(--kds-font-base-title-small-strong);
242
242
  color: var(--kds-color-text-and-icon-neutral);
243
243
  }
244
244
  }
245
- & .left[data-v-206732ac],
246
- & .center[data-v-206732ac],
247
- & .right[data-v-206732ac] {
245
+ & .left[data-v-b0b2c849],
246
+ & .center[data-v-b0b2c849],
247
+ & .right[data-v-b0b2c849] {
248
248
  display: flex;
249
249
  flex: 1;
250
250
  align-items: center;
251
251
  min-width: 0;
252
252
  padding: var(--kds-spacing-container-0-12x) 0;
253
253
  }
254
- & .left[data-v-206732ac],
255
- & .center[data-v-206732ac] {
254
+ & .left[data-v-b0b2c849],
255
+ & .center[data-v-b0b2c849] {
256
256
  gap: var(--kds-spacing-container-0-5x);
257
257
  }
258
- & .center[data-v-206732ac] {
258
+ & .center[data-v-b0b2c849] {
259
259
  justify-content: center;
260
260
  }
261
- & .right[data-v-206732ac] {
261
+ & .right[data-v-b0b2c849] {
262
262
  gap: var(--kds-spacing-container-0-25x);
263
263
  justify-content: flex-end;
264
264
  }
@@ -636,7 +636,7 @@ tr.row {
636
636
  }
637
637
  }
638
638
 
639
- .wrapper[data-v-83bc03a3] {
639
+ .wrapper[data-v-bc9c37d0] {
640
640
  display: flex;
641
641
  flex-direction: column;
642
642
  width: 100%;
@@ -646,7 +646,7 @@ tr.row {
646
646
  }
647
647
  }
648
648
  table {
649
- &[data-v-83bc03a3] {
649
+ &[data-v-bc9c37d0] {
650
650
  position: relative;
651
651
  display: flex;
652
652
  flex-grow: 1;
@@ -654,20 +654,20 @@ table {
654
654
  width: 100%;
655
655
  min-height: 0;
656
656
  }
657
- &[data-v-83bc03a3]:focus {
657
+ &[data-v-bc9c37d0]:focus {
658
658
  outline: none;
659
659
  }
660
- & .new-row-footer[data-v-83bc03a3] {
660
+ & .new-row-footer[data-v-bc9c37d0] {
661
661
  width: 100%;
662
662
  }
663
663
  }
664
664
 
665
665
  /* The empty state is placed into the rows' area by TableCoreVirtual. */
666
- .empty-state[data-v-83bc03a3] {
666
+ .empty-state[data-v-bc9c37d0] {
667
667
  max-width: 100%;
668
668
  }
669
669
 
670
- .table-column-size-calculation[data-v-f3ef2f4b] {
670
+ .table-column-size-calculation[data-v-f0e4039f] {
671
671
  position: absolute;
672
672
  top: -9999px;
673
673
  left: -9999px;
package/dist/index.js CHANGED
@@ -4368,7 +4368,7 @@ var injectColumnSizes = () => {
4368
4368
  };
4369
4369
  //#endregion
4370
4370
  //#region src/components/ui/EmptyRow.vue?vue&type=script&setup=true&lang.ts
4371
- var _hoisted_1$12 = {
4371
+ var _hoisted_1$11 = {
4372
4372
  key: 0,
4373
4373
  class: "deletion-cell-spacer"
4374
4374
  };
@@ -4394,7 +4394,7 @@ var EmptyRow_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
4394
4394
  height: `${__props.height}px`
4395
4395
  })
4396
4396
  }, [
4397
- __props.tableConfig.enableRowDeletion ? (openBlock(), createElementBlock("td", _hoisted_1$12)) : createCommentVNode("", true),
4397
+ __props.tableConfig.enableRowDeletion ? (openBlock(), createElementBlock("td", _hoisted_1$11)) : createCommentVNode("", true),
4398
4398
  __props.tableConfig.showSelection ? (openBlock(), createElementBlock("td", {
4399
4399
  key: 1,
4400
4400
  class: "select-cell",
@@ -5246,8 +5246,33 @@ var createEditingCellKeydownHandler = ({ moveSelection }) => {
5246
5246
  };
5247
5247
  };
5248
5248
  //#endregion
5249
+ //#region src/components/composables/useVisibleAfterAvailableWidth.ts
5250
+ /**
5251
+ * Keeps the table hidden until one tick after the available width has been
5252
+ * reported for the first time.
5253
+ *
5254
+ * Column sizes that are derived from the available width (see the
5255
+ * `update:available-width` emit) can only be applied once that width is known,
5256
+ * i.e. anything rendered before that is rendered at sizes which are about to
5257
+ * change — a visible jump on every initial load. Waiting one tick after the
5258
+ * report lets the reaction to it (and with it the column-size CSS variables)
5259
+ * reach the DOM first, so the first frame the user sees is the final one.
5260
+ */
5261
+ var useVisibleAfterAvailableWidth = () => {
5262
+ const isVisible = ref(false);
5263
+ const onAvailableWidthReported = async () => {
5264
+ if (isVisible.value) return;
5265
+ await nextTick();
5266
+ isVisible.value = true;
5267
+ };
5268
+ return {
5269
+ isVisible,
5270
+ onAvailableWidthReported
5271
+ };
5272
+ };
5273
+ //#endregion
5249
5274
  //#region src/components/control/PageNavigation.vue?vue&type=script&setup=true&lang.ts
5250
- var _hoisted_1$11 = { class: "page-navigation" };
5275
+ var _hoisted_1$10 = { class: "page-navigation" };
5251
5276
  var _hoisted_2$7 = { class: "navigation-buttons" };
5252
5277
  var _hoisted_3$4 = { class: "page-count" };
5253
5278
  var _hoisted_4$3 = { class: "navigation-buttons" };
@@ -5275,7 +5300,7 @@ var PageNavigation_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/*
5275
5300
  emit("pageChange", newPageNumber);
5276
5301
  };
5277
5302
  return (_ctx, _cache) => {
5278
- return openBlock(), createElementBlock("div", _hoisted_1$11, [
5303
+ return openBlock(), createElementBlock("div", _hoisted_1$10, [
5279
5304
  createElementVNode("div", _hoisted_2$7, [createVNode(unref(KdsButton), {
5280
5305
  variant: "transparent",
5281
5306
  size: "small",
@@ -5313,7 +5338,7 @@ var PageNavigation_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/*
5313
5338
  }), [["__scopeId", "data-v-95577571"]]);
5314
5339
  //#endregion
5315
5340
  //#region src/components/control/PageRowRange.vue?vue&type=script&setup=true&lang.ts
5316
- var _hoisted_1$10 = {
5341
+ var _hoisted_1$9 = {
5317
5342
  key: 0,
5318
5343
  class: "subtle"
5319
5344
  };
@@ -5358,7 +5383,7 @@ var PageControls_vue_vue_type_script_lang_default = {
5358
5383
  const pageRangeEnd = computed(() => Math.min(__props.currentPage * __props.pageSize, __props.currentItems));
5359
5384
  const rowCountText = computed(() => hasMultiplePages.value && __props.currentItems ? `of ${__props.currentItems}` : __props.currentItems);
5360
5385
  return (_ctx, _cache) => {
5361
- return __props.showTableSize && __props.currentItems === 0 ? (openBlock(), createElementBlock("span", _hoisted_1$10, "No data")) : (openBlock(), createElementBlock("div", _hoisted_2$6, [
5386
+ return __props.showTableSize && __props.currentItems === 0 ? (openBlock(), createElementBlock("span", _hoisted_1$9, "No data")) : (openBlock(), createElementBlock("div", _hoisted_2$6, [
5362
5387
  createElementVNode("span", _hoisted_3$3, toDisplayString(__props.rowLabel) + ":", 1),
5363
5388
  hasMultiplePages.value && __props.currentItems ? (openBlock(), createElementBlock("span", _hoisted_4$2, toDisplayString(pageRangeStart.value) + "–" + toDisplayString(pageRangeEnd.value), 1)) : createCommentVNode("", true),
5364
5389
  createElementVNode("span", _hoisted_5$1, toDisplayString(rowCountText.value), 1)
@@ -5423,7 +5448,7 @@ var PageControls_vue_vue_type_script_lang_default = {
5423
5448
  };
5424
5449
  //#endregion
5425
5450
  //#region src/components/control/PageControls.vue
5426
- var _hoisted_1$9 = {
5451
+ var _hoisted_1$8 = {
5427
5452
  key: 0,
5428
5453
  class: "page-controls"
5429
5454
  };
@@ -5432,7 +5457,7 @@ function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
5432
5457
  const _component_PageRowRange = resolveComponent("PageRowRange");
5433
5458
  const _component_PageNavigation = resolveComponent("PageNavigation");
5434
5459
  const _component_KdsMenuButton = resolveComponent("KdsMenuButton");
5435
- return $options.showPageNavigation || $options.pageSizeItems.length ? (openBlock(), createElementBlock("div", _hoisted_1$9, [
5460
+ return $options.showPageNavigation || $options.pageSizeItems.length ? (openBlock(), createElementBlock("div", _hoisted_1$8, [
5436
5461
  createVNode(_component_PageRowRange, {
5437
5462
  class: "page-row-range",
5438
5463
  "current-items": $props.tableState.tableSizes?.currentNumRows,
@@ -5479,11 +5504,11 @@ var PageControls_default = /*#__PURE__*/ _plugin_vue_export_helper_default(PageC
5479
5504
  //#endregion
5480
5505
  //#region src/components/control/actionbar/PopoverContainer.vue
5481
5506
  var _sfc_main = {};
5482
- var _hoisted_1$8 = { class: "popover" };
5507
+ var _hoisted_1$7 = { class: "popover" };
5483
5508
  var _hoisted_2$4 = { class: "header" };
5484
5509
  var _hoisted_3$2 = { class: "body" };
5485
5510
  function _sfc_render$3(_ctx, _cache) {
5486
- return openBlock(), createElementBlock("div", _hoisted_1$8, [createElementVNode("span", _hoisted_2$4, [renderSlot(_ctx.$slots, "header", {}, void 0, true)]), createElementVNode("div", _hoisted_3$2, [renderSlot(_ctx.$slots, "body", {}, void 0, true)])]);
5511
+ return openBlock(), createElementBlock("div", _hoisted_1$7, [createElementVNode("span", _hoisted_2$4, [renderSlot(_ctx.$slots, "header", {}, void 0, true)]), createElementVNode("div", _hoisted_3$2, [renderSlot(_ctx.$slots, "body", {}, void 0, true)])]);
5487
5512
  }
5488
5513
  var PopoverContainer_default = /*#__PURE__*/ _plugin_vue_export_helper_default(_sfc_main, [["render", _sfc_render$3], ["__scopeId", "data-v-349cd3ba"]]);
5489
5514
  //#endregion
@@ -5516,7 +5541,7 @@ var useButtonPopoverInteraction = ({ keepButtonActive }) => {
5516
5541
  };
5517
5542
  //#endregion
5518
5543
  //#region src/components/control/actionbar/SortControl.vue?vue&type=script&setup=true&lang.ts
5519
- var _hoisted_1$7 = { class: "body" };
5544
+ var _hoisted_1$6 = { class: "body" };
5520
5545
  var NONE_COLUMN_VALUE = "None";
5521
5546
  //#endregion
5522
5547
  //#region src/components/control/actionbar/SortControl.vue
@@ -5591,7 +5616,7 @@ var SortControl_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
5591
5616
  name: "sort-ascending",
5592
5617
  size: "small"
5593
5618
  }), _cache[0] || (_cache[0] = createTextVNode(" Sorting ", -1))]),
5594
- body: withCtx(() => [createElementVNode("div", _hoisted_1$7, [createVNode(unref(KdsDropdown), {
5619
+ body: withCtx(() => [createElementVNode("div", _hoisted_1$6, [createVNode(unref(KdsDropdown), {
5595
5620
  "model-value": selectedColumn.value,
5596
5621
  "possible-values": possibleColumns.value,
5597
5622
  ariaLabel: "Column to sort by",
@@ -5621,7 +5646,7 @@ var SortControl_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
5621
5646
  }), [["__scopeId", "data-v-97a272c8"]]);
5622
5647
  //#endregion
5623
5648
  //#region src/components/control/TableActionBar.vue?vue&type=script&setup=true&lang.ts
5624
- var _hoisted_1$6 = { class: "left" };
5649
+ var _hoisted_1$5 = { class: "left" };
5625
5650
  var _hoisted_2$3 = { class: "center" };
5626
5651
  var _hoisted_3$1 = {
5627
5652
  key: 0,
@@ -5659,7 +5684,7 @@ var TableActionBar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/*
5659
5684
  const isTemporaryView = computed(() => viewType.value === "TEMP_VIEW" || viewType.value === "PREVIEW");
5660
5685
  const isPreview = computed(() => viewType.value === "PREVIEW");
5661
5686
  const showResetButton = computed(() => viewType.value === "TEMP_VIEW");
5662
- const hasContent = computed(() => isTemporaryView.value || __props.showTableSize || __props.actionConfig.enableSearch || __props.actionConfig.enableSorting || __props.actionConfig.forceShow || Boolean(slots["action-bar-left"]));
5687
+ const hasContent = computed(() => isTemporaryView.value || __props.showTableSize || __props.actionConfig.enableSorting && !__props.actionConfig.hideSortingButton || __props.actionConfig.enableSearch || __props.actionConfig.forceShow || Boolean(slots["action-bar-left"]));
5663
5688
  /**
5664
5689
  * Renders "total" by default, and "current of total" only when `current` is
5665
5690
  * given and strictly below `total`. The `current >= total` guard prevents an
@@ -5682,7 +5707,7 @@ var TableActionBar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/*
5682
5707
  key: 0,
5683
5708
  class: normalizeClass(["kds-table-action-bar", { "temporary-view": isTemporaryView.value }])
5684
5709
  }, [
5685
- createElementVNode("div", _hoisted_1$6, [__props.actionConfig.enableSorting && !__props.actionConfig.hideSortingButton ? (openBlock(), createBlock(SortControl_default, {
5710
+ createElementVNode("div", _hoisted_1$5, [__props.actionConfig.enableSorting && !__props.actionConfig.hideSortingButton ? (openBlock(), createBlock(SortControl_default, {
5686
5711
  key: 0,
5687
5712
  "col-sort-values": __props.colSortValues,
5688
5713
  "sort-control-options": __props.sortControlOptions,
@@ -5720,7 +5745,7 @@ var TableActionBar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/*
5720
5745
  ], 2)) : createCommentVNode("", true);
5721
5746
  };
5722
5747
  }
5723
- }), [["__scopeId", "data-v-206732ac"]]);
5748
+ }), [["__scopeId", "data-v-b0b2c849"]]);
5724
5749
  //#endregion
5725
5750
  //#region src/utils/columnHeaderActionButtons.ts
5726
5751
  /**
@@ -5789,7 +5814,7 @@ var useAutoScrollOnRightEdge = ({ scrollContainer, autoScrollOffset, onAutoScrol
5789
5814
  };
5790
5815
  //#endregion
5791
5816
  //#region src/components/layout/HeaderCell.vue?vue&type=script&setup=true&lang.ts
5792
- var _hoisted_1$5 = ["tabindex"];
5817
+ var _hoisted_1$4 = ["tabindex"];
5793
5818
  var _hoisted_2$2 = { class: "header-text-container" };
5794
5819
  var _hoisted_3 = {
5795
5820
  key: 0,
@@ -6027,7 +6052,7 @@ var Header_vue_vue_type_script_lang_default = {
6027
6052
  unref(vKdsTooltip),
6028
6053
  __props.column.header,
6029
6054
  "truncated"
6030
- ]])], 512), __props.column.subHeader ? (openBlock(), createElementBlock("div", _hoisted_3, [renderSlot(_ctx.$slots, "subHeader", { subHeader: __props.column.subHeader }, () => [createTextVNode(toDisplayString(__props.column.subHeader), 1)], true)])) : createCommentVNode("", true)], 42, _hoisted_1$5),
6055
+ ]])], 512), __props.column.subHeader ? (openBlock(), createElementBlock("div", _hoisted_3, [renderSlot(_ctx.$slots, "subHeader", { subHeader: __props.column.subHeader }, () => [createTextVNode(toDisplayString(__props.column.subHeader), 1)], true)])) : createCommentVNode("", true)], 42, _hoisted_1$4),
6031
6056
  __props.additionalMenuItems?.length ? (openBlock(), createElementBlock("div", {
6032
6057
  key: 0,
6033
6058
  class: normalizeClass([
@@ -6300,7 +6325,7 @@ var Header_vue_vue_type_script_lang_default = {
6300
6325
  };
6301
6326
  //#endregion
6302
6327
  //#region src/components/layout/Header.vue
6303
- var _hoisted_1$4 = {
6328
+ var _hoisted_1$3 = {
6304
6329
  key: 0,
6305
6330
  scope: "col",
6306
6331
  class: "deletion-cell-spacer",
@@ -6311,7 +6336,7 @@ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
6311
6336
  const _component_HeaderCell = resolveComponent("HeaderCell");
6312
6337
  const _component_KdsButton = resolveComponent("KdsButton");
6313
6338
  return openBlock(), createElementBlock("thead", null, [createElementVNode("tr", { style: normalizeStyle({ ...$setup.headerStyles }) }, [
6314
- $props.tableConfig.enableRowDeletion ? (openBlock(), createElementBlock("th", _hoisted_1$4)) : createCommentVNode("", true),
6339
+ $props.tableConfig.enableRowDeletion ? (openBlock(), createElementBlock("th", _hoisted_1$3)) : createCommentVNode("", true),
6315
6340
  $props.tableConfig.showSelection ? (openBlock(), createElementBlock("th", {
6316
6341
  key: 1,
6317
6342
  scope: "col",
@@ -6412,7 +6437,7 @@ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
6412
6437
  var Header_default = /*#__PURE__*/ _plugin_vue_export_helper_default(Header_vue_vue_type_script_lang_default, [["render", _sfc_render$2], ["__scopeId", "data-v-885a5768"]]);
6413
6438
  //#endregion
6414
6439
  //#region src/components/layout/NewRowButton.vue?vue&type=script&setup=true&lang.ts
6415
- var _hoisted_1$3 = { class: "sticky-container" };
6440
+ var _hoisted_1$2 = { class: "sticky-container" };
6416
6441
  var buttonRef = "button";
6417
6442
  //#endregion
6418
6443
  //#region src/components/layout/NewRowButton.vue
@@ -6426,7 +6451,7 @@ var NewRowButton_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
6426
6451
  button.value?.$el.focus();
6427
6452
  } });
6428
6453
  return (_ctx, _cache) => {
6429
- return openBlock(), createElementBlock("div", _hoisted_1$3, [createVNode(unref(KdsButton), {
6454
+ return openBlock(), createElementBlock("div", _hoisted_1$2, [createVNode(unref(KdsButton), {
6430
6455
  ref: buttonRef,
6431
6456
  label: "Add",
6432
6457
  "leading-icon": "plus",
@@ -6461,7 +6486,7 @@ var CellExpandButton_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/
6461
6486
  }), [["__scopeId", "data-v-f204ddf3"]]);
6462
6487
  //#endregion
6463
6488
  //#region src/components/layout/CellRenderer.vue?vue&type=script&setup=true&lang.ts
6464
- var _hoisted_1$2 = {
6489
+ var _hoisted_1$1 = {
6465
6490
  ref: "cell-content",
6466
6491
  class: "cell-content"
6467
6492
  };
@@ -6608,7 +6633,7 @@ var CellRenderer_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
6608
6633
  value: val,
6609
6634
  cell: _ctx.$el
6610
6635
  }))
6611
- }, [createElementVNode("div", _hoisted_1$2, [__props.isEditing ? renderSlot(_ctx.$slots, "editable-cell", { cellElement: _ctx.$el }, void 0, true, 0) : __props.isMissing ? (openBlock(), createBlock(unref(KdsMissingValueIcon), {
6636
+ }, [createElementVNode("div", _hoisted_1$1, [__props.isEditing ? renderSlot(_ctx.$slots, "editable-cell", { cellElement: _ctx.$el }, void 0, true, 0) : __props.isMissing ? (openBlock(), createBlock(unref(KdsMissingValueIcon), {
6612
6637
  key: 1,
6613
6638
  size: "small"
6614
6639
  })) : __props.isSlotted ? renderSlot(_ctx.$slots, "default", { width: __props.size - props.defaultLeftRightPadding * 2 - (showCellExpandButton.value && !__props.overlayExpandButton ? unref(EXPAND_BUTTON_WIDTH) : 0) }, void 0, true, 2) : (openBlock(), createElementBlock("span", _hoisted_2$1, toDisplayString(__props.text), 1)), showCellExpandButton.value ? (openBlock(), createBlock(CellExpandButton_default, {
@@ -6718,7 +6743,7 @@ var Cell_default = /* @__PURE__ */ defineComponent({
6718
6743
  });
6719
6744
  //#endregion
6720
6745
  //#region src/components/layout/Row.vue?vue&type=script&setup=true&lang.ts
6721
- var _hoisted_1$1 = {
6746
+ var _hoisted_1 = {
6722
6747
  key: 0,
6723
6748
  class: "deletion-cell"
6724
6749
  };
@@ -6945,7 +6970,7 @@ var TableUI_vue_vue_type_script_lang_default = {
6945
6970
  ...rowHeightStyle.value
6946
6971
  })
6947
6972
  }, [
6948
- __props.tableConfig.enableRowDeletion ? (openBlock(), createElementBlock("td", _hoisted_1$1, [createVNode(unref(KdsButton), {
6973
+ __props.tableConfig.enableRowDeletion ? (openBlock(), createElementBlock("td", _hoisted_1, [createVNode(unref(KdsButton), {
6949
6974
  ref_key: "deleteButton",
6950
6975
  ref: deleteButton,
6951
6976
  variant: "transparent",
@@ -7350,6 +7375,11 @@ var TableUI_vue_vue_type_script_lang_default = {
7350
7375
  const header = ref(null);
7351
7376
  const selectionOverlay = ref([]);
7352
7377
  const totalWidth = useTotalWidth(wrapper);
7378
+ const { isVisible: tableIsVisible, onAvailableWidthReported } = useVisibleAfterAvailableWidth();
7379
+ const onUpdateAvailableWidth = (newAvailableWidth) => {
7380
+ emit("update:available-width", newAvailableWidth);
7381
+ onAvailableWidthReported();
7382
+ };
7353
7383
  const { selectCell, expandCellSelection, clearCellSelection, currentRectId, rectMinMax, selectedCell, isSingleSelectedCell } = useCellSelection(computed(() => Boolean(props.tableConfig.enableCellSelection)));
7354
7384
  watch(selectedCell, (newCell) => emit("cellSelectionChange", newCell ?? null));
7355
7385
  const selectCellsOnMove = useBoolean(false);
@@ -7442,6 +7472,8 @@ var TableUI_vue_vue_type_script_lang_default = {
7442
7472
  return {
7443
7473
  wrapper,
7444
7474
  totalWidth,
7475
+ tableIsVisible,
7476
+ onUpdateAvailableWidth,
7445
7477
  tableCore,
7446
7478
  header,
7447
7479
  selectionOverlay,
@@ -8022,7 +8054,6 @@ var TableUI_vue_vue_type_script_lang_default = {
8022
8054
  };
8023
8055
  //#endregion
8024
8056
  //#region src/components/TableUI.vue
8025
- var _hoisted_1 = { class: "wrapper" };
8026
8057
  function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
8027
8058
  const _component_TableActionBar = resolveComponent("TableActionBar");
8028
8059
  const _component_Row = resolveComponent("Row");
@@ -8032,7 +8063,10 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
8032
8063
  const _component_KdsEmptyState = resolveComponent("KdsEmptyState");
8033
8064
  const _component_TableCore = resolveComponent("TableCore");
8034
8065
  const _component_PageControls = resolveComponent("PageControls");
8035
- return openBlock(), createElementBlock("div", _hoisted_1, [$options.showActionBar ? (openBlock(), createBlock(_component_TableActionBar, {
8066
+ return openBlock(), createElementBlock("div", {
8067
+ class: "wrapper",
8068
+ style: normalizeStyle({ visibility: $setup.tableIsVisible ? void 0 : "hidden" })
8069
+ }, [$options.showActionBar ? (openBlock(), createBlock(_component_TableActionBar, {
8036
8070
  key: 0,
8037
8071
  "table-sizes": $props.tableState.tableSizes,
8038
8072
  "action-state": $props.actionState,
@@ -8060,22 +8094,22 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
8060
8094
  ])) : createCommentVNode("", true), createElementVNode("table", {
8061
8095
  ref: "wrapper",
8062
8096
  tabindex: -1,
8063
- onPointerleave: _cache[11] || (_cache[11] = (...args) => $setup.selectCellsOnMove.setFalse && $setup.selectCellsOnMove.setFalse(...args)),
8064
- onPointerdownPassive: _cache[12] || (_cache[12] = withModifiers(($event) => $event.button === 0 && $setup.selectCellsOnMove.setTrue(), ["stop"])),
8065
- onPointerupPassive: _cache[13] || (_cache[13] = ($event) => $event.button === 0 && $setup.selectCellsOnMove.setFalse()),
8097
+ onPointerleave: _cache[10] || (_cache[10] = (...args) => $setup.selectCellsOnMove.setFalse && $setup.selectCellsOnMove.setFalse(...args)),
8098
+ onPointerdownPassive: _cache[11] || (_cache[11] = withModifiers(($event) => $event.button === 0 && $setup.selectCellsOnMove.setTrue(), ["stop"])),
8099
+ onPointerupPassive: _cache[12] || (_cache[12] = ($event) => $event.button === 0 && $setup.selectCellsOnMove.setFalse()),
8066
8100
  onKeydown: [
8067
- _cache[14] || (_cache[14] = withKeys(withModifiers((...args) => $setup.handleCopyOnKeydown && $setup.handleCopyOnKeydown(...args), [
8101
+ _cache[13] || (_cache[13] = withKeys(withModifiers((...args) => $setup.handleCopyOnKeydown && $setup.handleCopyOnKeydown(...args), [
8068
8102
  "ctrl",
8069
8103
  "shift",
8070
8104
  "exact"
8071
8105
  ]), ["c"])),
8072
- _cache[15] || (_cache[15] = withKeys(withModifiers((...args) => $setup.handleCopyOnKeydown && $setup.handleCopyOnKeydown(...args), [
8106
+ _cache[14] || (_cache[14] = withKeys(withModifiers((...args) => $setup.handleCopyOnKeydown && $setup.handleCopyOnKeydown(...args), [
8073
8107
  "meta",
8074
8108
  "shift",
8075
8109
  "exact"
8076
8110
  ]), ["c"])),
8077
- _cache[16] || (_cache[16] = withKeys(withModifiers((...args) => $setup.handleDeleteSelection && $setup.handleDeleteSelection(...args), ["exact"]), ["delete"])),
8078
- _cache[17] || (_cache[17] = withKeys(withModifiers((...args) => $setup.clearCellSelectionAndStopPropagation && $setup.clearCellSelectionAndStopPropagation(...args), ["exact"]), ["escape"]))
8111
+ _cache[15] || (_cache[15] = withKeys(withModifiers((...args) => $setup.handleDeleteSelection && $setup.handleDeleteSelection(...args), ["exact"]), ["delete"])),
8112
+ _cache[16] || (_cache[16] = withKeys(withModifiers((...args) => $setup.clearCellSelectionAndStopPropagation && $setup.clearCellSelectionAndStopPropagation(...args), ["exact"]), ["escape"]))
8079
8113
  ]
8080
8114
  }, [createVNode(_component_TableCore, {
8081
8115
  ref: "tableCore",
@@ -8093,13 +8127,13 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
8093
8127
  "current-row-height": $options.currentRowHeight,
8094
8128
  "new-column-button-width": $setup.newColumnButtonWidth,
8095
8129
  onScrollerUpdate: $options.onScroll,
8096
- "onUpdate:availableWidth": _cache[8] || (_cache[8] = ($event) => _ctx.$emit("update:available-width", $event)),
8130
+ "onUpdate:availableWidth": $setup.onUpdateAvailableWidth,
8097
8131
  onMoveSelection: $options.onKeyboardMoveSelection,
8098
8132
  onClearSelection: $setup.clearCellSelection,
8099
8133
  onExpandSelectedCell: $options.expandSelectedCell,
8100
8134
  onStartEditing: $options.onStartEditingCell,
8101
- onBodyFocusin: _cache[9] || (_cache[9] = ($event) => $setup.changeFocus(true)),
8102
- onBodyFocusout: _cache[10] || (_cache[10] = ($event) => $options.onTableBodyFocusOut())
8135
+ onBodyFocusin: _cache[8] || (_cache[8] = ($event) => $setup.changeFocus(true)),
8136
+ onBodyFocusout: _cache[9] || (_cache[9] = ($event) => $options.onTableBodyFocusOut())
8103
8137
  }, createSlots({
8104
8138
  row: withCtx(({ row, groupInd, rowInd }) => [createVNode(_component_Row, {
8105
8139
  ref: $options.getRowRefName(groupInd, rowInd),
@@ -8274,6 +8308,7 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
8274
8308
  "current-row-height",
8275
8309
  "new-column-button-width",
8276
8310
  "onScrollerUpdate",
8311
+ "onUpdate:availableWidth",
8277
8312
  "onMoveSelection",
8278
8313
  "onClearSelection",
8279
8314
  "onExpandSelectedCell",
@@ -8293,9 +8328,9 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
8293
8328
  "table-state",
8294
8329
  "onPageChange",
8295
8330
  "onPageSizeUpdate"
8296
- ])) : createCommentVNode("", true)], 544)]);
8331
+ ])) : createCommentVNode("", true)], 544)], 4);
8297
8332
  }
8298
- var TableUI_default = /*#__PURE__*/ _plugin_vue_export_helper_default(TableUI_vue_vue_type_script_lang_default, [["render", _sfc_render$1], ["__scopeId", "data-v-83bc03a3"]]);
8333
+ var TableUI_default = /*#__PURE__*/ _plugin_vue_export_helper_default(TableUI_vue_vue_type_script_lang_default, [["render", _sfc_render$1], ["__scopeId", "data-v-bc9c37d0"]]);
8299
8334
  //#endregion
8300
8335
  //#region src/components/composables/useTableReady.ts
8301
8336
  var useTableReady = ({ onReady }) => {
@@ -8693,7 +8728,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
8693
8728
  const _component_TableUI = resolveComponent("TableUI");
8694
8729
  return openBlock(), createElementBlock(Fragment, null, [createVNode(_component_TableUI, mergeProps({
8695
8730
  ref: "tableUI",
8696
- style: { visibility: $setup.tableIsVisible ? "visible" : "hidden" }
8731
+ style: { visibility: $setup.tableIsVisible ? void 0 : "hidden" }
8697
8732
  }, _ctx.$attrs, {
8698
8733
  data: $props.data,
8699
8734
  "current-selection": $props.currentSelection,
@@ -8764,7 +8799,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
8764
8799
  "onVnodeMounted"
8765
8800
  ])) : createCommentVNode("", true)], 64);
8766
8801
  }
8767
- var TableUIWithAutoSizeCalculation_default = /*#__PURE__*/ _plugin_vue_export_helper_default(TableUIWithAutoSizeCalculation_vue_vue_type_script_lang_default, [["render", _sfc_render], ["__scopeId", "data-v-f3ef2f4b"]]);
8802
+ var TableUIWithAutoSizeCalculation_default = /*#__PURE__*/ _plugin_vue_export_helper_default(TableUIWithAutoSizeCalculation_vue_vue_type_script_lang_default, [["render", _sfc_render], ["__scopeId", "data-v-f0e4039f"]]);
8768
8803
  //#endregion
8769
8804
  export { PopoverContainer_default as PopoverContainer, TableActionBar_default as TableActionBar, TableUI_default as TableUI, TableUIWithAutoSizeCalculation_default as TableUIWithAutoSizeCalculation, columnSortText, columnTypes, constants_default as constants, defaultPageSize, getMissingValueMessage, isMissingValue, unpackObjectRepresentation, useButtonPopoverInteraction, useColumnSizes };
8770
8805