@knime/kds-table 8.2.2 → 9.0.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/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # @knime/kds-table
2
2
 
3
+ ## 9.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - b46e376: BREAKING CHANGES:
8
+
9
+ - `@vueuse/core` is now a peer dependency instead of a bundled dependency.
10
+ Install it alongside this package, as every other KDS package that uses
11
+ VueUse already requires. The build previously inlined its own copy, so an
12
+ app loaded VueUse twice: once as the peer `@knime/kds-components` resolves,
13
+ and once inside this bundle. Composables that hold module-level state would
14
+ not have been shared between the two.
15
+
16
+ ### Patch Changes
17
+
18
+ - 98b175a: `TableUI`: the pagination bar is now the shared `KdsPagination` component; the rendered appearance is unchanged.
19
+ - Updated dependencies [98b175a, b46e376]
20
+ - @knime/kds-components@9.0.0
21
+ - @knime/kds-styles@9.0.0
22
+
3
23
  ## 8.2.2
4
24
 
5
25
  ### Patch Changes
package/dist/index.css CHANGED
@@ -125,58 +125,6 @@ tr {
125
125
  }
126
126
  }
127
127
 
128
- .page-navigation {
129
- &[data-v-95577571] {
130
- display: flex;
131
- gap: var(--kds-spacing-container-0-5x);
132
- align-items: center;
133
- }
134
- & .navigation-buttons[data-v-95577571] {
135
- display: flex;
136
- gap: var(--kds-spacing-container-0-25x);
137
- align-items: center;
138
- }
139
- & .page-count[data-v-95577571] {
140
- font: var(--kds-font-base-title-small);
141
- color: var(--kds-color-text-and-icon-subtle);
142
- }
143
- }
144
-
145
- .subtle[data-v-6cdf0c06] {
146
- font: var(--kds-font-base-title-small);
147
- color: var(--kds-color-text-and-icon-subtle);
148
- }
149
- .muted[data-v-6cdf0c06] {
150
- font: var(--kds-font-base-title-small-strong);
151
- color: var(--kds-color-text-and-icon-muted);
152
- }
153
- .row-range-container[data-v-6cdf0c06] {
154
- display: flex;
155
- flex: 1 0 0;
156
- gap: var(--kds-spacing-container-0-25x);
157
- align-items: center;
158
- align-self: stretch;
159
- }
160
-
161
- .page-controls {
162
- &[data-v-bf51fe76] {
163
- display: flex;
164
- align-items: center;
165
- justify-content: space-between;
166
- padding: var(--kds-spacing-container-0-25x) var(--kds-spacing-container-0-75x);
167
- background: var(--kds-color-surface-default);
168
- }
169
- & .page-row-range[data-v-bf51fe76],
170
- & .page-size-menu[data-v-bf51fe76] {
171
- flex-grow: 1;
172
- flex-basis: 0;
173
- }
174
- .page-size-menu[data-v-bf51fe76] {
175
- display: flex;
176
- justify-content: flex-end;
177
- }
178
- }
179
-
180
128
  .popover {
181
129
  &[data-v-349cd3ba] {
182
130
  display: flex;
@@ -656,7 +604,7 @@ tr.row {
656
604
  }
657
605
  }
658
606
 
659
- .wrapper[data-v-8198a271] {
607
+ .wrapper[data-v-09b97a7c] {
660
608
  display: flex;
661
609
  flex-direction: column;
662
610
  width: 100%;
@@ -666,24 +614,31 @@ tr.row {
666
614
  }
667
615
  }
668
616
  table {
669
- &[data-v-8198a271] {
617
+ &[data-v-09b97a7c] {
670
618
  position: relative;
671
619
  display: flex;
672
620
  flex-grow: 1;
673
621
  flex-direction: column;
674
622
  width: 100%;
675
623
  min-height: 0;
624
+
625
+ /* The table inherits its parent's background; the pagination footer is the
626
+ one place Figma sets a surface token for (SLEEK-297). KdsPagination stays
627
+ transparent so it can sit on any surface. */
676
628
  }
677
- &[data-v-8198a271]:focus {
629
+ &[data-v-09b97a7c]:focus {
678
630
  outline: none;
679
631
  }
680
- & .new-row-footer[data-v-8198a271] {
632
+ & .new-row-footer[data-v-09b97a7c] {
681
633
  width: 100%;
682
634
  }
635
+ & .pagination[data-v-09b97a7c] {
636
+ background: var(--kds-color-surface-default);
637
+ }
683
638
  }
684
639
 
685
640
  /* The empty state is placed into the rows' area by TableCoreVirtual. */
686
- .empty-state[data-v-8198a271] {
641
+ .empty-state[data-v-09b97a7c] {
687
642
  max-width: 100%;
688
643
  }
689
644
 
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
- import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, getCurrentInstance, getCurrentScope, guardReactiveProps, inject, isRef, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onBeforeUnmount, onMounted, onScopeDispose, onUnmounted, openBlock, provide, reactive, ref, renderList, renderSlot, resolveComponent, shallowReadonly, shallowRef, toDisplayString, toRef, toValue, unref, useCssVars, useSlots, useTemplateRef, watch, watchEffect, withCtx, withDirectives, withKeys, withModifiers } from "vue";
2
- import { KdsButton, KdsCheckbox, KdsDropdown, KdsEmptyState, KdsIcon, KdsInfoToggleButton, KdsLoadingSkeleton, KdsMenuButton, KdsMissingValueIcon, KdsPopover, KdsSearchInput, KdsToggleButton, vKdsTooltip } from "@knime/kds-components";
1
+ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, getCurrentInstance, getCurrentScope, guardReactiveProps, inject, isRef, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onBeforeUnmount, onMounted, onScopeDispose, onUnmounted, openBlock, provide, reactive, ref, renderList, renderSlot, resolveComponent, toDisplayString, toRef, unref, useCssVars, useSlots, useTemplateRef, watch, watchEffect, withCtx, withDirectives, withKeys, withModifiers } from "vue";
2
+ import { KdsButton, KdsCheckbox, KdsDropdown, KdsEmptyState, KdsIcon, KdsInfoToggleButton, KdsLoadingSkeleton, KdsMenuButton, KdsMissingValueIcon, KdsPagination, KdsPopover, KdsSearchInput, KdsToggleButton, vKdsTooltip } from "@knime/kds-components";
3
+ import { useRafFn, useResizeObserver } from "@vueuse/core";
3
4
  import './index.css';//#region \0rolldown/runtime.js
4
5
  var __create = Object.create;
5
6
  var __defProp = Object.defineProperty;
@@ -1396,161 +1397,6 @@ var getMissingValueMessage = (cellData) => {
1396
1397
  };
1397
1398
  var getPropertiesFromColumns = (columnConfigs, key) => columnConfigs.map((colConfig) => colConfig[key]);
1398
1399
  //#endregion
1399
- //#region ../../node_modules/.pnpm/@vueuse+shared@14.4.0_vue@3.5.40_typescript@6.0.3_/node_modules/@vueuse/shared/dist/index.js
1400
- /**
1401
- * Call onScopeDispose() if it's inside an effect scope lifecycle, if not, do nothing
1402
- *
1403
- * @param fn
1404
- */
1405
- function tryOnScopeDispose(fn, failSilently) {
1406
- if (getCurrentScope()) {
1407
- onScopeDispose(fn, failSilently);
1408
- return true;
1409
- }
1410
- return false;
1411
- }
1412
- var isClient = typeof window !== "undefined" && typeof document !== "undefined";
1413
- typeof WorkerGlobalScope !== "undefined" && globalThis instanceof WorkerGlobalScope;
1414
- //#endregion
1415
- //#region ../../node_modules/.pnpm/@vueuse+core@14.4.0_vue@3.5.40_typescript@6.0.3_/node_modules/@vueuse/core/dist/index.js
1416
- var defaultWindow = isClient ? window : void 0;
1417
- isClient && window.document;
1418
- isClient && window.navigator;
1419
- isClient && window.location;
1420
- /**
1421
- * Get the dom element of a ref of element or Vue component instance
1422
- *
1423
- * @param elRef
1424
- */
1425
- function unrefElement(elRef) {
1426
- var _$el;
1427
- const plain = toValue(elRef);
1428
- return (_$el = plain === null || plain === void 0 ? void 0 : plain.$el) !== null && _$el !== void 0 ? _$el : plain;
1429
- }
1430
- /**
1431
- * Mounted state in ref.
1432
- *
1433
- * @see https://vueuse.org/useMounted
1434
- *
1435
- * @__NO_SIDE_EFFECTS__
1436
- */
1437
- function useMounted() {
1438
- const isMounted = shallowRef(false);
1439
- const instance = getCurrentInstance();
1440
- if (instance) onMounted(() => {
1441
- isMounted.value = true;
1442
- }, instance);
1443
- return isMounted;
1444
- }
1445
- /* @__NO_SIDE_EFFECTS__ */
1446
- function useSupported(callback) {
1447
- const isMounted = useMounted();
1448
- return computed(() => {
1449
- isMounted.value;
1450
- return Boolean(callback());
1451
- });
1452
- }
1453
- /**
1454
- * Call function on every `requestAnimationFrame`. With controls of pausing and resuming.
1455
- *
1456
- * @see https://vueuse.org/useRafFn
1457
- * @param fn
1458
- * @param options
1459
- */
1460
- function useRafFn(fn, options = {}) {
1461
- const { immediate = true, fpsLimit = null, window = defaultWindow, once = false } = options;
1462
- const isActive = shallowRef(false);
1463
- const intervalLimit = computed(() => {
1464
- const limit = toValue(fpsLimit);
1465
- return limit ? 1e3 / limit : null;
1466
- });
1467
- let previousFrameTimestamp = 0;
1468
- let rafId = null;
1469
- function loop(timestamp) {
1470
- if (!isActive.value || !window) return;
1471
- if (!previousFrameTimestamp) previousFrameTimestamp = timestamp;
1472
- const delta = timestamp - previousFrameTimestamp;
1473
- if (intervalLimit.value && delta < intervalLimit.value) {
1474
- rafId = window.requestAnimationFrame(loop);
1475
- return;
1476
- }
1477
- previousFrameTimestamp = timestamp;
1478
- fn({
1479
- delta,
1480
- timestamp
1481
- });
1482
- if (once) {
1483
- isActive.value = false;
1484
- rafId = null;
1485
- return;
1486
- }
1487
- rafId = window.requestAnimationFrame(loop);
1488
- }
1489
- function resume() {
1490
- if (!isActive.value && window) {
1491
- isActive.value = true;
1492
- previousFrameTimestamp = 0;
1493
- rafId = window.requestAnimationFrame(loop);
1494
- }
1495
- }
1496
- function pause() {
1497
- isActive.value = false;
1498
- if (rafId != null && window) {
1499
- window.cancelAnimationFrame(rafId);
1500
- rafId = null;
1501
- }
1502
- }
1503
- if (immediate) resume();
1504
- tryOnScopeDispose(pause);
1505
- return {
1506
- isActive: shallowReadonly(isActive),
1507
- pause,
1508
- resume
1509
- };
1510
- }
1511
- /**
1512
- * Reports changes to the dimensions of an Element's content or the border-box
1513
- *
1514
- * @see https://vueuse.org/useResizeObserver
1515
- * @param target
1516
- * @param callback
1517
- * @param options
1518
- */
1519
- function useResizeObserver(target, callback, options = {}) {
1520
- const { window = defaultWindow, ...observerOptions } = options;
1521
- let observer;
1522
- const isSupported = /* @__PURE__ */ useSupported(() => window && "ResizeObserver" in window);
1523
- const cleanup = () => {
1524
- if (observer) {
1525
- observer.disconnect();
1526
- observer = void 0;
1527
- }
1528
- };
1529
- const stopWatch = watch(computed(() => {
1530
- const _targets = toValue(target);
1531
- return Array.isArray(_targets) ? _targets.map((el) => unrefElement(el)) : [unrefElement(_targets)];
1532
- }), (els) => {
1533
- cleanup();
1534
- if (isSupported.value && window) {
1535
- observer = new ResizeObserver(callback);
1536
- for (const _el of els) if (_el) observer.observe(_el, observerOptions);
1537
- }
1538
- }, {
1539
- immediate: true,
1540
- flush: "post"
1541
- });
1542
- const stop = () => {
1543
- cleanup();
1544
- stopWatch();
1545
- };
1546
- tryOnScopeDispose(stop);
1547
- return {
1548
- isSupported,
1549
- stop
1550
- };
1551
- }
1552
- Number.POSITIVE_INFINITY;
1553
- //#endregion
1554
1400
  //#region ../../node_modules/.pnpm/@knime+vue-headless-virtual-scroller@0.2.0_vue@3.5.40_typescript@6.0.3_/node_modules/@knime/vue-headless-virtual-scroller/dist/vue-headless-virtual-scrolling.js
1555
1401
  var $ = Object.defineProperty;
1556
1402
  var P = (t, e, r) => e in t ? $(t, e, {
@@ -4390,7 +4236,7 @@ var injectColumnSizes = () => {
4390
4236
  };
4391
4237
  //#endregion
4392
4238
  //#region src/components/ui/EmptyRow.vue?vue&type=script&setup=true&lang.ts
4393
- var _hoisted_1$11 = {
4239
+ var _hoisted_1$8 = {
4394
4240
  key: 0,
4395
4241
  class: "deletion-cell-spacer"
4396
4242
  };
@@ -4416,7 +4262,7 @@ var EmptyRow_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
4416
4262
  height: `${__props.height}px`
4417
4263
  })
4418
4264
  }, [
4419
- __props.tableConfig.enableRowDeletion ? (openBlock(), createElementBlock("td", _hoisted_1$11)) : createCommentVNode("", true),
4265
+ __props.tableConfig.enableRowDeletion ? (openBlock(), createElementBlock("td", _hoisted_1$8)) : createCommentVNode("", true),
4420
4266
  __props.tableConfig.showSelection ? (openBlock(), createElementBlock("td", {
4421
4267
  key: 1,
4422
4268
  class: "select-cell",
@@ -5293,237 +5139,6 @@ var useVisibleAfterAvailableWidth = () => {
5293
5139
  };
5294
5140
  };
5295
5141
  //#endregion
5296
- //#region src/components/control/PageNavigation.vue?vue&type=script&setup=true&lang.ts
5297
- var _hoisted_1$10 = { class: "page-navigation" };
5298
- var _hoisted_2$7 = { class: "navigation-buttons" };
5299
- var _hoisted_3$4 = { class: "page-count" };
5300
- var _hoisted_4$3 = { class: "navigation-buttons" };
5301
- //#endregion
5302
- //#region src/components/control/PageNavigation.vue
5303
- var PageNavigation_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
5304
- __name: "PageNavigation",
5305
- props: {
5306
- currentPage: { default: 1 },
5307
- totalPages: { default: 0 },
5308
- hasNextPage: {
5309
- type: Boolean,
5310
- default: false
5311
- },
5312
- hasPreviousPage: {
5313
- type: Boolean,
5314
- default: false
5315
- }
5316
- },
5317
- emits: ["pageChange"],
5318
- setup(__props, { emit: __emit }) {
5319
- const emit = __emit;
5320
- const onPageChange = (newPageNumber) => {
5321
- consola.debug("Page change", newPageNumber);
5322
- emit("pageChange", newPageNumber);
5323
- };
5324
- return (_ctx, _cache) => {
5325
- return openBlock(), createElementBlock("div", _hoisted_1$10, [
5326
- createElementVNode("div", _hoisted_2$7, [createVNode(unref(KdsButton), {
5327
- variant: "transparent",
5328
- size: "small",
5329
- "leading-icon": "chevron-left-double",
5330
- ariaLabel: "First page",
5331
- disabled: !__props.hasPreviousPage,
5332
- onClick: _cache[0] || (_cache[0] = ($event) => onPageChange(1))
5333
- }, null, 8, ["disabled"]), createVNode(unref(KdsButton), {
5334
- variant: "transparent",
5335
- size: "small",
5336
- "leading-icon": "chevron-left",
5337
- ariaLabel: "Previous page",
5338
- disabled: !__props.hasPreviousPage,
5339
- onClick: _cache[1] || (_cache[1] = ($event) => onPageChange(__props.currentPage - 1))
5340
- }, null, 8, ["disabled"])]),
5341
- createElementVNode("span", _hoisted_3$4, toDisplayString(__props.currentPage) + " of " + toDisplayString(__props.totalPages), 1),
5342
- createElementVNode("div", _hoisted_4$3, [createVNode(unref(KdsButton), {
5343
- variant: "transparent",
5344
- size: "small",
5345
- "leading-icon": "chevron-right",
5346
- ariaLabel: "Next page",
5347
- disabled: !__props.hasNextPage,
5348
- onClick: _cache[2] || (_cache[2] = ($event) => onPageChange(__props.currentPage + 1))
5349
- }, null, 8, ["disabled"]), createVNode(unref(KdsButton), {
5350
- variant: "transparent",
5351
- size: "small",
5352
- "leading-icon": "chevron-right-double",
5353
- ariaLabel: "Last page",
5354
- disabled: !__props.hasNextPage,
5355
- onClick: _cache[3] || (_cache[3] = ($event) => onPageChange(__props.totalPages))
5356
- }, null, 8, ["disabled"])])
5357
- ]);
5358
- };
5359
- }
5360
- }), [["__scopeId", "data-v-95577571"]]);
5361
- //#endregion
5362
- //#region src/components/control/PageRowRange.vue?vue&type=script&setup=true&lang.ts
5363
- var _hoisted_1$9 = {
5364
- key: 0,
5365
- class: "subtle"
5366
- };
5367
- var _hoisted_2$6 = {
5368
- key: 1,
5369
- class: "row-range-container"
5370
- };
5371
- var _hoisted_3$3 = { class: "subtle" };
5372
- var _hoisted_4$2 = {
5373
- key: 0,
5374
- class: "muted"
5375
- };
5376
- var _hoisted_5$1 = { class: "subtle" };
5377
- //#endregion
5378
- //#region src/components/control/PageControls.vue?vue&type=script&lang.ts
5379
- /**
5380
- * Table controls for the bottom of the table, showing the current row range,
5381
- * page navigation, and a page-size menu.
5382
- *
5383
- * @emits pageChange when navigating to a different page.
5384
- * @emits pageSizeUpdate when the page size is updated.
5385
- */
5386
- var PageControls_vue_vue_type_script_lang_default = {
5387
- components: {
5388
- PageNavigation: PageNavigation_default,
5389
- PageRowRange: /* @__PURE__ */ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
5390
- __name: "PageRowRange",
5391
- props: {
5392
- currentItems: { default: 0 },
5393
- pageSize: { default: 0 },
5394
- currentPage: { default: 1 },
5395
- showTableSize: {
5396
- type: Boolean,
5397
- default: true
5398
- },
5399
- rowLabel: { default: "Rows" }
5400
- },
5401
- setup(__props) {
5402
- const totalPages = computed(() => !__props.pageSize || __props.currentItems <= 0 ? 0 : Math.ceil(__props.currentItems / __props.pageSize));
5403
- const hasMultiplePages = computed(() => totalPages.value > 1);
5404
- const pageRangeStart = computed(() => __props.currentPage * __props.pageSize - __props.pageSize + 1);
5405
- const pageRangeEnd = computed(() => Math.min(__props.currentPage * __props.pageSize, __props.currentItems));
5406
- const rowCountText = computed(() => hasMultiplePages.value && __props.currentItems ? `of ${__props.currentItems}` : __props.currentItems);
5407
- return (_ctx, _cache) => {
5408
- return __props.showTableSize && __props.currentItems === 0 ? (openBlock(), createElementBlock("span", _hoisted_1$9, "No data")) : (openBlock(), createElementBlock("div", _hoisted_2$6, [
5409
- createElementVNode("span", _hoisted_3$3, toDisplayString(__props.rowLabel) + ":", 1),
5410
- hasMultiplePages.value && __props.currentItems ? (openBlock(), createElementBlock("span", _hoisted_4$2, toDisplayString(pageRangeStart.value) + "–" + toDisplayString(pageRangeEnd.value), 1)) : createCommentVNode("", true),
5411
- createElementVNode("span", _hoisted_5$1, toDisplayString(rowCountText.value), 1)
5412
- ]));
5413
- };
5414
- }
5415
- }), [["__scopeId", "data-v-6cdf0c06"]]),
5416
- KdsMenuButton
5417
- },
5418
- props: {
5419
- tableConfig: {
5420
- type: Object,
5421
- required: true
5422
- },
5423
- pageConfig: {
5424
- type: Object,
5425
- required: true
5426
- },
5427
- tableState: {
5428
- type: Object,
5429
- required: true
5430
- },
5431
- pageState: {
5432
- type: Object,
5433
- required: true
5434
- }
5435
- },
5436
- emits: ["pageSizeUpdate", "pageChange"],
5437
- computed: {
5438
- pageSizeItems() {
5439
- return (this.pageConfig.possiblePageSizes ?? []).map((pageSize) => ({
5440
- id: pageSize.toString(),
5441
- text: this.createText(pageSize)
5442
- }));
5443
- },
5444
- currentItems() {
5445
- return this.tableState.tableSizes?.currentNumRows ?? 0;
5446
- },
5447
- totalPages() {
5448
- if (!this.pageConfig.pageSize || this.currentItems <= 0) return 0;
5449
- return Math.ceil(this.currentItems / this.pageConfig.pageSize);
5450
- },
5451
- hasNextPage() {
5452
- return this.pageState.currentPage < this.totalPages;
5453
- },
5454
- hasPreviousPage() {
5455
- return this.pageState.currentPage > 1;
5456
- },
5457
- showPageNavigation() {
5458
- return this.hasNextPage || this.hasPreviousPage;
5459
- }
5460
- },
5461
- methods: {
5462
- createText(size) {
5463
- return `${size.toString()} per page`;
5464
- },
5465
- onPageSizeSelect(newPageSize) {
5466
- consola.debug("Updated table page size: ", newPageSize);
5467
- this.$emit("pageSizeUpdate", Number.parseInt(newPageSize, 10));
5468
- }
5469
- }
5470
- };
5471
- //#endregion
5472
- //#region src/components/control/PageControls.vue
5473
- var _hoisted_1$8 = {
5474
- key: 0,
5475
- class: "page-controls"
5476
- };
5477
- var _hoisted_2$5 = { class: "page-size-menu" };
5478
- function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
5479
- const _component_PageRowRange = resolveComponent("PageRowRange");
5480
- const _component_PageNavigation = resolveComponent("PageNavigation");
5481
- const _component_KdsMenuButton = resolveComponent("KdsMenuButton");
5482
- return $options.showPageNavigation || $options.pageSizeItems.length ? (openBlock(), createElementBlock("div", _hoisted_1$8, [
5483
- createVNode(_component_PageRowRange, {
5484
- class: "page-row-range",
5485
- "current-items": $props.tableState.tableSizes?.currentNumRows,
5486
- "page-size": $props.pageConfig.pageSize,
5487
- "current-page": $props.pageState.currentPage,
5488
- "show-table-size": $props.tableConfig.showTableSize,
5489
- "row-label": $props.tableConfig.rowLabel
5490
- }, null, 8, [
5491
- "current-items",
5492
- "page-size",
5493
- "current-page",
5494
- "show-table-size",
5495
- "row-label"
5496
- ]),
5497
- $options.showPageNavigation ? (openBlock(), createBlock(_component_PageNavigation, {
5498
- key: 0,
5499
- "current-page": $props.pageState.currentPage,
5500
- "total-pages": $options.totalPages,
5501
- "has-next-page": $options.hasNextPage,
5502
- "has-previous-page": $options.hasPreviousPage,
5503
- onPageChange: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("pageChange", $event))
5504
- }, null, 8, [
5505
- "current-page",
5506
- "total-pages",
5507
- "has-next-page",
5508
- "has-previous-page"
5509
- ])) : createCommentVNode("", true),
5510
- createElementVNode("div", _hoisted_2$5, [$options.pageSizeItems.length ? (openBlock(), createBlock(_component_KdsMenuButton, {
5511
- key: 0,
5512
- items: $options.pageSizeItems,
5513
- label: $options.createText($props.pageConfig.pageSize),
5514
- size: "small",
5515
- "trailing-icon": "chevron-down",
5516
- variant: "transparent",
5517
- onItemClick: $options.onPageSizeSelect
5518
- }, null, 8, [
5519
- "items",
5520
- "label",
5521
- "onItemClick"
5522
- ])) : createCommentVNode("", true)])
5523
- ])) : createCommentVNode("", true);
5524
- }
5525
- var PageControls_default = /*#__PURE__*/ _plugin_vue_export_helper_default(PageControls_vue_vue_type_script_lang_default, [["render", _sfc_render$4], ["__scopeId", "data-v-bf51fe76"]]);
5526
- //#endregion
5527
5142
  //#region src/components/control/actionbar/PopoverContainer.vue
5528
5143
  var _sfc_main = {};
5529
5144
  var _hoisted_1$7 = { class: "popover" };
@@ -6813,7 +6428,7 @@ var DEFAULT_COLUMN_SIZE = 100;
6813
6428
  */
6814
6429
  var TableUI_vue_vue_type_script_lang_default = {
6815
6430
  components: {
6816
- PageControls: PageControls_default,
6431
+ KdsPagination,
6817
6432
  Header: Header_default,
6818
6433
  Row: /* @__PURE__ */ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
6819
6434
  __name: "Row",
@@ -8118,7 +7733,7 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
8118
7733
  const _component_NewRowButton = resolveComponent("NewRowButton");
8119
7734
  const _component_KdsEmptyState = resolveComponent("KdsEmptyState");
8120
7735
  const _component_TableCore = resolveComponent("TableCore");
8121
- const _component_PageControls = resolveComponent("PageControls");
7736
+ const _component_KdsPagination = resolveComponent("KdsPagination");
8122
7737
  return openBlock(), createElementBlock("div", {
8123
7738
  class: "wrapper",
8124
7739
  style: normalizeStyle({ visibility: $setup.tableIsVisible ? void 0 : "hidden" })
@@ -8371,24 +7986,29 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
8371
7986
  "onClearSelection",
8372
7987
  "onExpandSelectedCell",
8373
7988
  "onStartEditing"
8374
- ]), $props.pageConfig && $props.pageState ? (openBlock(), createBlock(_component_PageControls, {
7989
+ ]), $props.pageConfig && $props.pageState ? (openBlock(), createBlock(_component_KdsPagination, {
8375
7990
  key: 0,
8376
- "page-config": $props.pageConfig,
8377
- "table-config": $props.tableConfig,
8378
- "page-state": $props.pageState,
8379
- "table-state": $props.tableState,
8380
- onPageChange: $options.onPageChange,
8381
- onPageSizeUpdate: $options.onPageSizeUpdate
7991
+ class: "pagination",
7992
+ "current-page": $props.pageState.currentPage,
7993
+ "page-size": $props.pageConfig.pageSize,
7994
+ "possible-page-sizes": $props.pageConfig.possiblePageSizes,
7995
+ "total-rows": $props.tableState.tableSizes?.currentNumRows ?? 0,
7996
+ "show-table-size": $props.tableConfig.showTableSize,
7997
+ "row-label": $props.tableConfig.rowLabel,
7998
+ "onUpdate:currentPage": $options.onPageChange,
7999
+ "onUpdate:pageSize": $options.onPageSizeUpdate
8382
8000
  }, null, 8, [
8383
- "page-config",
8384
- "table-config",
8385
- "page-state",
8386
- "table-state",
8387
- "onPageChange",
8388
- "onPageSizeUpdate"
8001
+ "current-page",
8002
+ "page-size",
8003
+ "possible-page-sizes",
8004
+ "total-rows",
8005
+ "show-table-size",
8006
+ "row-label",
8007
+ "onUpdate:currentPage",
8008
+ "onUpdate:pageSize"
8389
8009
  ])) : createCommentVNode("", true)], 544)], 4);
8390
8010
  }
8391
- var TableUI_default = /*#__PURE__*/ _plugin_vue_export_helper_default(TableUI_vue_vue_type_script_lang_default, [["render", _sfc_render$1], ["__scopeId", "data-v-8198a271"]]);
8011
+ var TableUI_default = /*#__PURE__*/ _plugin_vue_export_helper_default(TableUI_vue_vue_type_script_lang_default, [["render", _sfc_render$1], ["__scopeId", "data-v-09b97a7c"]]);
8392
8012
  //#endregion
8393
8013
  //#region src/components/composables/useTableReady.ts
8394
8014
  var useTableReady = ({ onReady }) => {