@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 +20 -0
- package/dist/index.css +12 -57
- package/dist/index.js +26 -406
- package/dist/index.js.map +1 -1
- package/dist/src/components/TableUI.vue.d.ts +43 -213
- package/dist/src/components/TableUI.vue.d.ts.map +1 -1
- package/dist/src/components/TableUIWithAutoSizeCalculation.vue.d.ts +46 -832
- package/dist/src/components/TableUIWithAutoSizeCalculation.vue.d.ts.map +1 -1
- package/package.json +5 -4
- package/dist/src/components/control/PageControls.vue.d.ts +0 -224
- package/dist/src/components/control/PageControls.vue.d.ts.map +0 -1
- package/dist/src/components/control/PageNavigation.vue.d.ts +0 -14
- package/dist/src/components/control/PageNavigation.vue.d.ts.map +0 -1
- package/dist/src/components/control/PageRowRange.vue.d.ts +0 -11
- package/dist/src/components/control/PageRowRange.vue.d.ts.map +0 -1
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-
|
|
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-
|
|
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-
|
|
629
|
+
&[data-v-09b97a7c]:focus {
|
|
678
630
|
outline: none;
|
|
679
631
|
}
|
|
680
|
-
& .new-row-footer[data-v-
|
|
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-
|
|
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,
|
|
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$
|
|
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$
|
|
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
|
-
|
|
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
|
|
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(
|
|
7989
|
+
]), $props.pageConfig && $props.pageState ? (openBlock(), createBlock(_component_KdsPagination, {
|
|
8375
7990
|
key: 0,
|
|
8376
|
-
"
|
|
8377
|
-
"
|
|
8378
|
-
"page-
|
|
8379
|
-
"
|
|
8380
|
-
|
|
8381
|
-
|
|
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
|
|
8384
|
-
"
|
|
8385
|
-
"page-
|
|
8386
|
-
"
|
|
8387
|
-
"
|
|
8388
|
-
"
|
|
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-
|
|
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 }) => {
|