@vtable-guild/vtable-guild 2.7.1 → 2.8.1
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/css/presets/antdv.css +36 -0
- package/css/presets/element-plus.css +38 -0
- package/css/style.css +436 -0
- package/css/tailwind3-utilities.css +337 -0
- package/css/tailwind3.css +99 -0
- package/css/tailwind4.css +99 -0
- package/css/transitions.css +25 -0
- package/dist/core/src/components/VirtualList/VirtualList.d.ts +6 -3
- package/dist/core/src/components/VirtualList/VirtualList.d.ts.map +1 -1
- package/dist/core/src/components/VirtualList/VirtualList.mjs +187 -180
- package/dist/core/src/components/VirtualList/VirtualScrollBar.d.ts +1 -1
- package/dist/core/src/components/VirtualList/hooks/useChildren.d.ts +2 -2
- package/dist/core/src/components/VirtualList/hooks/useChildren.d.ts.map +1 -1
- package/dist/core/src/components/VirtualList/hooks/useChildren.mjs +12 -12
- package/dist/core/src/components/VirtualList/hooks/useGetSize.d.ts +1 -1
- package/dist/core/src/components/VirtualList/hooks/useGetSize.d.ts.map +1 -1
- package/dist/core/src/components/VirtualList/hooks/useGetSize.mjs +1 -1
- package/dist/core/src/components/VirtualList/hooks/useHeights.d.ts +2 -2
- package/dist/core/src/components/VirtualList/hooks/useHeights.d.ts.map +1 -1
- package/dist/core/src/components/VirtualList/hooks/useHeights.mjs +36 -36
- package/dist/core/src/components/VirtualList/hooks/useMobileTouchMove.d.ts.map +1 -1
- package/dist/core/src/components/VirtualList/hooks/useMobileTouchMove.mjs +11 -11
- package/dist/core/src/components/VirtualList/hooks/useMobileTouchMove.test.d.ts +2 -0
- package/dist/core/src/components/VirtualList/hooks/useMobileTouchMove.test.d.ts.map +1 -0
- package/dist/core/src/components/VirtualList/hooks/useScrollTo.d.ts +1 -1
- package/dist/core/src/components/VirtualList/hooks/useScrollTo.d.ts.map +1 -1
- package/dist/core/src/components/VirtualList/hooks/useScrollTo.mjs +30 -30
- package/dist/core/src/index.d.ts +1 -1
- package/dist/core/src/index.d.ts.map +1 -1
- package/dist/core/src/utils/types.d.ts +18 -0
- package/dist/core/src/utils/types.d.ts.map +1 -1
- package/dist/css/presets/antdv.css +36 -0
- package/dist/css/presets/element-plus.css +38 -0
- package/dist/css/style.css +436 -0
- package/dist/css/tailwind3-utilities.css +337 -0
- package/dist/css/tailwind3.css +99 -0
- package/dist/css/tailwind4.css +99 -0
- package/dist/css/transitions.css +25 -0
- package/dist/index.d.ts +0 -26
- package/dist/index.full.mjs +5116 -3769
- package/dist/index.mjs +85 -75
- package/dist/table/src/components/ColGroup.d.ts.map +1 -1
- package/dist/table/src/components/ColGroup.mjs +10 -10
- package/dist/table/src/components/ColumnWidthRow.d.ts +4 -0
- package/dist/table/src/components/ColumnWidthRow.d.ts.map +1 -0
- package/dist/table/src/components/ColumnWidthRow.mjs +23 -0
- package/dist/table/src/components/PaginationSizeSelect.d.ts +57 -0
- package/dist/table/src/components/PaginationSizeSelect.d.ts.map +1 -0
- package/dist/table/src/components/PaginationSizeSelect.mjs +138 -0
- package/dist/table/src/components/SelectionDropdown.d.ts +9 -0
- package/dist/table/src/components/SelectionDropdown.d.ts.map +1 -1
- package/dist/table/src/components/SelectionDropdown.mjs +32 -26
- package/dist/table/src/components/Table.d.ts +13 -2
- package/dist/table/src/components/Table.d.ts.map +1 -1
- package/dist/table/src/components/Table.mjs +496 -403
- package/dist/table/src/components/TableCell.d.ts.map +1 -1
- package/dist/table/src/components/TableCell.mjs +80 -74
- package/dist/table/src/components/TableHeaderCell.d.ts.map +1 -1
- package/dist/table/src/components/TableHeaderCell.mjs +85 -83
- package/dist/table/src/components/TablePagination.d.ts +74 -0
- package/dist/table/src/components/TablePagination.d.ts.map +1 -0
- package/dist/table/src/components/TablePagination.mjs +350 -0
- package/dist/table/src/components/TablePagination.test.d.ts +2 -0
- package/dist/table/src/components/TablePagination.test.d.ts.map +1 -0
- package/dist/table/src/components/TablePaginationCompatClass.test.d.ts +2 -0
- package/dist/table/src/components/TablePaginationCompatClass.test.d.ts.map +1 -0
- package/dist/table/src/components/TablePaginationLayout.test.d.ts +2 -0
- package/dist/table/src/components/TablePaginationLayout.test.d.ts.map +1 -0
- package/dist/table/src/components/VTable.vue.d.ts.map +1 -1
- package/dist/table/src/components/VTable.vue.mjs +34 -26
- package/dist/table/src/components/VTableMinWidth.test.d.ts +2 -0
- package/dist/table/src/components/VTableMinWidth.test.d.ts.map +1 -0
- package/dist/table/src/components/VTableSummary.d.ts +15 -75
- package/dist/table/src/components/VTableSummary.d.ts.map +1 -1
- package/dist/table/src/components/VTableSummary.mjs +7 -7
- package/dist/table/src/components/VTableSummaryCell.d.ts.map +1 -1
- package/dist/table/src/components/VTableSummaryCell.mjs +26 -24
- package/dist/table/src/components/VirtualTableBody.d.ts.map +1 -1
- package/dist/table/src/components/VirtualTableBody.mjs +107 -95
- package/dist/table/src/composables/useColumnLayout.d.ts +28 -0
- package/dist/table/src/composables/useColumnLayout.d.ts.map +1 -0
- package/dist/table/src/composables/useColumnLayout.mjs +259 -0
- package/dist/table/src/composables/useColumnLayout.test.d.ts +2 -0
- package/dist/table/src/composables/useColumnLayout.test.d.ts.map +1 -0
- package/dist/table/src/composables/useColumnMetrics.d.ts +5 -3
- package/dist/table/src/composables/useColumnMetrics.d.ts.map +1 -1
- package/dist/table/src/composables/useColumnMetrics.mjs +64 -55
- package/dist/table/src/composables/useExpand.d.ts +2 -0
- package/dist/table/src/composables/useExpand.d.ts.map +1 -1
- package/dist/table/src/composables/useExpand.mjs +42 -20
- package/dist/table/src/composables/usePagination.d.ts +15 -0
- package/dist/table/src/composables/usePagination.d.ts.map +1 -0
- package/dist/table/src/composables/usePagination.mjs +65 -0
- package/dist/table/src/composables/usePagination.test.d.ts +2 -0
- package/dist/table/src/composables/usePagination.test.d.ts.map +1 -0
- package/dist/table/src/composables/useResize.d.ts +1 -0
- package/dist/table/src/composables/useResize.d.ts.map +1 -1
- package/dist/table/src/composables/useResize.mjs +67 -39
- package/dist/table/src/composables/useScroll.d.ts +3 -0
- package/dist/table/src/composables/useScroll.d.ts.map +1 -1
- package/dist/table/src/composables/useScroll.mjs +43 -41
- package/dist/table/src/composables/useSelection.d.ts +2 -1
- package/dist/table/src/composables/useSelection.d.ts.map +1 -1
- package/dist/table/src/composables/useSelection.mjs +204 -155
- package/dist/table/src/composables/useTreeData.d.ts +4 -0
- package/dist/table/src/composables/useTreeData.d.ts.map +1 -1
- package/dist/table/src/composables/useTreeData.mjs +48 -43
- package/dist/table/src/context.d.ts +6 -1
- package/dist/table/src/context.d.ts.map +1 -1
- package/dist/table/src/index.d.ts +10 -87
- package/dist/table/src/index.d.ts.map +1 -1
- package/dist/table/src/index.mjs +12 -12
- package/dist/table/src/types/column.d.ts +8 -2
- package/dist/table/src/types/column.d.ts.map +1 -1
- package/dist/table/src/types/index.d.ts +1 -0
- package/dist/table/src/types/index.d.ts.map +1 -1
- package/dist/table/src/types/pagination.d.ts +66 -0
- package/dist/table/src/types/pagination.d.ts.map +1 -0
- package/dist/table/src/types/pagination.typecheck.d.ts +25 -0
- package/dist/table/src/types/pagination.typecheck.d.ts.map +1 -0
- package/dist/table/src/types/table.d.ts +8 -1
- package/dist/table/src/types/table.d.ts.map +1 -1
- package/dist/table/src/utils/columnWidth.d.ts +55 -7
- package/dist/table/src/utils/columnWidth.d.ts.map +1 -1
- package/dist/table/src/utils/columnWidth.mjs +91 -21
- package/dist/table/src/utils/paginationLayout.d.ts +13 -0
- package/dist/table/src/utils/paginationLayout.d.ts.map +1 -0
- package/dist/table/src/utils/paginationLayout.mjs +55 -0
- package/dist/table/src/utils/paginationLayout.test.d.ts +2 -0
- package/dist/table/src/utils/paginationLayout.test.d.ts.map +1 -0
- package/dist/table/src/utils/popupPosition.d.ts +4 -1
- package/dist/table/src/utils/popupPosition.d.ts.map +1 -1
- package/dist/table/src/utils/popupPosition.mjs +34 -15
- package/dist/theme/src/augment.d.ts +2 -0
- package/dist/theme/src/augment.d.ts.map +1 -1
- package/dist/theme/src/compat/antdv-pagination.d.ts +4 -0
- package/dist/theme/src/compat/antdv-pagination.d.ts.map +1 -0
- package/dist/theme/src/compat/antdv-pagination.mjs +29 -0
- package/dist/theme/src/index.d.ts +5 -0
- package/dist/theme/src/index.d.ts.map +1 -1
- package/dist/theme/src/pagination.d.ts +153 -0
- package/dist/theme/src/pagination.d.ts.map +1 -0
- package/dist/theme/src/pagination.mjs +144 -0
- package/dist/theme/src/presets/antdv/table-locale.d.ts +2 -2
- package/dist/theme/src/presets/antdv/table-locale.mjs +2 -2
- package/dist/theme/src/presets/antdv/table.d.ts +3 -0
- package/dist/theme/src/presets/antdv/table.d.ts.map +1 -1
- package/dist/theme/src/presets/antdv/table.mjs +3 -0
- package/dist/theme/src/presets/element-plus/table-locale.d.ts +2 -2
- package/dist/theme/src/presets/element-plus/table-locale.mjs +2 -2
- package/dist/theme/src/presets/element-plus/table.d.ts +3 -0
- package/dist/theme/src/presets/element-plus/table.d.ts.map +1 -1
- package/dist/theme/src/presets/element-plus/table.mjs +3 -0
- package/dist/theme/src/presets/index.d.ts.map +1 -1
- package/dist/theme/src/presets/index.mjs +60 -57
- package/dist/theme/src/presets/types.d.ts +1 -0
- package/dist/theme/src/presets/types.d.ts.map +1 -1
- package/dist/vtable-guild/src/augment.d.ts +15 -0
- package/dist/vtable-guild/src/augment.d.ts.map +1 -0
- package/dist/vtable-guild/src/index.d.ts +1 -0
- package/dist/vtable-guild/src/index.d.ts.map +1 -1
- package/package.json +4 -3
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
import { computed as p, shallowRef as z, watch as et, onMounted as ct, onUpdated as dt, onBeforeUnmount as ht, nextTick as mt } from "vue";
|
|
2
|
+
import { measureColumnTracks as nt } from "./useColumnMetrics.mjs";
|
|
3
|
+
import { normalizeMinWidth as it, parseColumnWidth as x, resolveColumnWidth as ft, allocateFixedColumnWidths as vt } from "../utils/columnWidth.mjs";
|
|
4
|
+
const rt = 0.1, O = (e) => typeof e == "string" && /^(?:min-content|max-content|fit-content(?:\(.*\))?)$/i.test(e.trim());
|
|
5
|
+
function pt(e) {
|
|
6
|
+
const w = p(
|
|
7
|
+
() => e.columns().some((t) => it(t.minWidth) !== void 0)
|
|
8
|
+
), T = z(0), q = z({}), A = z([]), k = (t, n) => q.value[`${n}:${t}`], L = z(null), F = z(!1), I = p(
|
|
9
|
+
() => Math.max(
|
|
10
|
+
T.value,
|
|
11
|
+
x(e.scrollX(), T.value, k) ?? 0
|
|
12
|
+
)
|
|
13
|
+
), j = p(
|
|
14
|
+
() => e.columns().map(
|
|
15
|
+
(t, n) => O(t.width) && A.value[n] !== void 0 ? { ...t, width: A.value[n] } : t
|
|
16
|
+
)
|
|
17
|
+
), $ = p(
|
|
18
|
+
() => j.value.map(
|
|
19
|
+
(t, n) => ft(t, n, {
|
|
20
|
+
columnWidths: e.columnWidths,
|
|
21
|
+
referenceWidth: I.value,
|
|
22
|
+
resolveCssLength: k
|
|
23
|
+
})
|
|
24
|
+
)
|
|
25
|
+
), S = p(
|
|
26
|
+
() => $.value.map((t) => Math.max(t.effectiveMinWidth ?? 0, t.resizedWidth ?? 0))
|
|
27
|
+
), B = p(() => S.value.reduce((t, n) => t + n, 0)), V = p(
|
|
28
|
+
() => vt(j.value, {
|
|
29
|
+
containerWidth: T.value,
|
|
30
|
+
targetWidth: I.value,
|
|
31
|
+
columnWidths: e.columnWidths,
|
|
32
|
+
resolveCssLength: k
|
|
33
|
+
})
|
|
34
|
+
), C = p(() => w.value ? e.layout() === "fixed" ? { widths: V.value.widths, total: V.value.totalWidth } : L.value : null), H = p(
|
|
35
|
+
() => w.value && (e.layout() === "fixed" || e.split())
|
|
36
|
+
);
|
|
37
|
+
function lt(t, n = 1) {
|
|
38
|
+
if (!w.value) return {};
|
|
39
|
+
const r = $.value[t];
|
|
40
|
+
if (!r) return {};
|
|
41
|
+
const a = S.value.slice(t, t + n).reduce((b, h) => b + h, 0), u = H.value ? C.value?.widths.slice(t, t + n) : void 0, g = u ? u.reduce((b, h) => b + h, 0) : n === 1 ? r.targetWidth : void 0;
|
|
42
|
+
return {
|
|
43
|
+
minWidth: `${a}px`,
|
|
44
|
+
...g !== void 0 ? { width: `${g}px` } : {}
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
const ot = p(() => w.value ? H.value && C.value ? {
|
|
48
|
+
tableLayout: "fixed",
|
|
49
|
+
width: `${C.value.total}px`,
|
|
50
|
+
minWidth: `${C.value.total}px`
|
|
51
|
+
} : { minWidth: `max(100%, ${B.value}px)` } : {});
|
|
52
|
+
let R = 0, N, P, J = null, Y = null, X = !1;
|
|
53
|
+
const _ = ["load", "error", "loadedmetadata"], G = ["src", "srcset", "sizes", "width", "height", "href"];
|
|
54
|
+
function D(t) {
|
|
55
|
+
return !!(t instanceof Element ? t : t.parentElement)?.closest("[inert]");
|
|
56
|
+
}
|
|
57
|
+
function K(t) {
|
|
58
|
+
return t instanceof Element && t.matches("img, video, iframe, object, embed, source, image");
|
|
59
|
+
}
|
|
60
|
+
function Q(t) {
|
|
61
|
+
K(t.target) && !D(t.target) && W();
|
|
62
|
+
}
|
|
63
|
+
function Z() {
|
|
64
|
+
for (const t of _)
|
|
65
|
+
J?.removeEventListener(t, Q, !0);
|
|
66
|
+
}
|
|
67
|
+
function st(t, n) {
|
|
68
|
+
return t?.widths.length === n.widths.length && t.widths.every((r, a) => Math.abs(r - n.widths[a]) < rt);
|
|
69
|
+
}
|
|
70
|
+
function at(t, n, r) {
|
|
71
|
+
const a = [...t.querySelectorAll("table[data-vtg-table]")].filter(
|
|
72
|
+
(l) => !l.parentElement?.closest("table[data-vtg-table]")
|
|
73
|
+
);
|
|
74
|
+
if (!a.length) return null;
|
|
75
|
+
const u = a[0].cloneNode(!1);
|
|
76
|
+
u.removeAttribute("id"), u.style.tableLayout = "auto", u.style.width = `${r}px`, u.style.minWidth = `${B.value}px`;
|
|
77
|
+
const g = document.createElement("colgroup");
|
|
78
|
+
for (let l = 0; l < $.value.length; l++) {
|
|
79
|
+
const o = document.createElement("col"), s = e.columns()[l], v = $.value[l], i = v.resizedWidth ?? x(s.width, r);
|
|
80
|
+
i !== void 0 ? o.style.width = `${Math.max(i, v.effectiveMinWidth ?? 0)}px` : typeof s.width == "string" && !/content/.test(s.width) && (o.style.width = s.width), o.style.minWidth = `${S.value[l]}px`, g.append(o);
|
|
81
|
+
}
|
|
82
|
+
u.append(g);
|
|
83
|
+
const b = document.createElement("tbody");
|
|
84
|
+
b.dataset.vtgWidthRow = "";
|
|
85
|
+
const h = b.insertRow();
|
|
86
|
+
S.value.forEach((l, o) => {
|
|
87
|
+
const s = h.insertCell();
|
|
88
|
+
s.dataset.vtgTrack = String(o), s.style.cssText = "padding:0;border:0;height:0;line-height:0;font-size:0";
|
|
89
|
+
const v = document.createElement("div");
|
|
90
|
+
v.style.cssText = `height:0;min-width:${l}px`, s.append(v);
|
|
91
|
+
}), u.append(b);
|
|
92
|
+
for (const l of a)
|
|
93
|
+
for (const o of [...l.children]) {
|
|
94
|
+
if (!["THEAD", "TBODY", "TFOOT"].includes(o.tagName) || o.hasAttribute("data-vtg-width-row"))
|
|
95
|
+
continue;
|
|
96
|
+
const s = o.cloneNode(!0), v = o.querySelectorAll("img");
|
|
97
|
+
s.querySelectorAll("img").forEach((i, y) => {
|
|
98
|
+
const m = v[y];
|
|
99
|
+
if (!m.naturalWidth || !m.naturalHeight || i.naturalWidth) return;
|
|
100
|
+
const c = getComputedStyle(m);
|
|
101
|
+
/\b(?:size|inline-size|strict)\b/.test(c.contain) || (i.style.contain = c.contain === "content" ? "strict" : `${c.contain && c.contain !== "none" ? `${c.contain} ` : ""}size`, i.style.containIntrinsicSize = `${m.naturalWidth}px ${m.naturalHeight}px`, (!c.aspectRatio || /\bauto\b/.test(c.aspectRatio)) && (i.style.aspectRatio = `auto ${m.naturalWidth} / ${m.naturalHeight}`));
|
|
102
|
+
});
|
|
103
|
+
for (const i of s.querySelectorAll("th,td")) {
|
|
104
|
+
const y = Number(i.dataset.vtgLeafCol ?? i.dataset.vtgCol);
|
|
105
|
+
if (i.style.removeProperty("width"), i.style.removeProperty("min-width"), i.style.removeProperty("max-width"), i.style.removeProperty("position"), i.style.removeProperty("left"), i.style.removeProperty("right"), Number.isInteger(y) && $.value[y]) {
|
|
106
|
+
const m = $.value[y], c = e.columns()[y], d = m.resizedWidth ?? x(c.width, r);
|
|
107
|
+
d !== void 0 ? i.style.width = `${Math.max(d, m.effectiveMinWidth ?? 0)}px` : typeof c.width == "string" && !/content/.test(c.width) && (i.style.width = c.width), i.style.minWidth = `${S.value[y]}px`;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
for (const i of s.querySelectorAll("tr[data-vtg-virtual-row]")) {
|
|
111
|
+
const y = [...i.querySelectorAll("td[data-vtg-col]")];
|
|
112
|
+
i.replaceChildren(
|
|
113
|
+
...e.columns().map(
|
|
114
|
+
(m, c) => y.find((d) => Number(d.dataset.vtgCol) === c) ?? document.createElement("td")
|
|
115
|
+
)
|
|
116
|
+
);
|
|
117
|
+
}
|
|
118
|
+
for (const i of s.querySelectorAll("[id]")) i.removeAttribute("id");
|
|
119
|
+
u.append(s);
|
|
120
|
+
}
|
|
121
|
+
return n.append(u), u;
|
|
122
|
+
}
|
|
123
|
+
function ut() {
|
|
124
|
+
if (R = 0, X || !w.value) return;
|
|
125
|
+
const t = e.root(), n = e.viewport() ?? t;
|
|
126
|
+
if (!t || !n) return;
|
|
127
|
+
const r = n.clientWidth;
|
|
128
|
+
if (r <= 0) return;
|
|
129
|
+
let a = Math.abs(T.value - r) > rt;
|
|
130
|
+
a && (T.value = r);
|
|
131
|
+
let u = !1;
|
|
132
|
+
const g = /* @__PURE__ */ new Set();
|
|
133
|
+
for (const o of [e.scrollX(), ...e.columns().map((s) => s.width)])
|
|
134
|
+
typeof o == "string" && o !== "auto" && x(o, r) === void 0 && g.add(o);
|
|
135
|
+
const b = e.layout() === "auto" && e.split() || [...g].some((o) => /content/.test(o)), h = document.createElement("div");
|
|
136
|
+
h.inert = !0, h.setAttribute("aria-hidden", "true"), h.style.cssText = `position:absolute;visibility:hidden;pointer-events:none;overflow:hidden;height:0;width:${r}px;contain:layout style;`, t.append(h);
|
|
137
|
+
let l = null;
|
|
138
|
+
try {
|
|
139
|
+
let o = function(d, f) {
|
|
140
|
+
if (!CSS.supports("width", d)) return;
|
|
141
|
+
h.style.width = `${f}px`;
|
|
142
|
+
let E;
|
|
143
|
+
if (O(d)) {
|
|
144
|
+
if (!l) return;
|
|
145
|
+
l.style.width = d, E = l.getBoundingClientRect().width;
|
|
146
|
+
} else {
|
|
147
|
+
const M = document.createElement("div");
|
|
148
|
+
M.style.width = d, h.append(M), E = M.getBoundingClientRect().width, M.remove();
|
|
149
|
+
}
|
|
150
|
+
return s[`${f}:${d}`] = E, E;
|
|
151
|
+
};
|
|
152
|
+
const s = {}, v = e.scrollX(), i = Math.max(
|
|
153
|
+
r,
|
|
154
|
+
O(v) ? 0 : x(v, r, o) ?? 0
|
|
155
|
+
);
|
|
156
|
+
b && (l = at(t, h, i));
|
|
157
|
+
const y = x(v, r, o), m = Math.max(r, y ?? 0), c = e.columns().map((d) => {
|
|
158
|
+
if (!O(d.width)) {
|
|
159
|
+
x(d.width, m, o);
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
if (l) {
|
|
164
|
+
const d = new Set(
|
|
165
|
+
e.columns().flatMap((f) => O(f.width) ? [f.width] : [])
|
|
166
|
+
);
|
|
167
|
+
for (const f of d) {
|
|
168
|
+
l.style.width = f;
|
|
169
|
+
const E = nt(l, e.columns().length);
|
|
170
|
+
e.columns().forEach((M, tt) => {
|
|
171
|
+
M.width === f && (c[tt] = E?.widths[tt]);
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
if (JSON.stringify(c) !== JSON.stringify(A.value) && (A.value = c, a = !0), JSON.stringify(s) !== JSON.stringify(q.value) && (q.value = s, a = !0), e.layout() === "auto")
|
|
176
|
+
if (!e.split() && a)
|
|
177
|
+
u = !0;
|
|
178
|
+
else {
|
|
179
|
+
l && (l.style.width = `${I.value}px`);
|
|
180
|
+
const d = e.split() ? l : t.querySelector("table[data-vtg-table]"), f = d ? nt(d, e.columns().length) : null;
|
|
181
|
+
f && !st(L.value, f) && (L.value = f);
|
|
182
|
+
}
|
|
183
|
+
u || (F.value = Math.max(C.value?.total ?? 0, n.scrollWidth) > r + 1);
|
|
184
|
+
} finally {
|
|
185
|
+
h.remove();
|
|
186
|
+
}
|
|
187
|
+
if (u) {
|
|
188
|
+
mt(W);
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
e.onMeasure?.();
|
|
192
|
+
}
|
|
193
|
+
function W() {
|
|
194
|
+
X || R || !w.value || (R = requestAnimationFrame(ut));
|
|
195
|
+
}
|
|
196
|
+
function U() {
|
|
197
|
+
const t = w.value ? e.root() : null, n = w.value ? e.viewport() ?? t : null;
|
|
198
|
+
if (!(t === J && n === Y) && (N?.disconnect(), P?.disconnect(), Z(), J = t, Y = n, !!t)) {
|
|
199
|
+
N ??= typeof ResizeObserver > "u" ? void 0 : new ResizeObserver(W), N?.observe(t), n && n !== t && N?.observe(n);
|
|
200
|
+
for (const r of _) t.addEventListener(r, Q, !0);
|
|
201
|
+
P ??= new MutationObserver((r) => {
|
|
202
|
+
r.some((a) => {
|
|
203
|
+
if (D(a.target)) return !1;
|
|
204
|
+
if (a.type === "attributes")
|
|
205
|
+
return K(a.target) && G.includes(a.attributeName ?? "");
|
|
206
|
+
const u = [...a.addedNodes, ...a.removedNodes];
|
|
207
|
+
return !u.length || u.some((g) => !D(g));
|
|
208
|
+
}) && W();
|
|
209
|
+
}), P.observe(t, {
|
|
210
|
+
childList: !0,
|
|
211
|
+
subtree: !0,
|
|
212
|
+
characterData: !0,
|
|
213
|
+
attributes: !0,
|
|
214
|
+
attributeFilter: G
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
return et(
|
|
219
|
+
() => [
|
|
220
|
+
e.columns().map((t) => [t.key, t.width, t.minWidth, t.maxWidth]),
|
|
221
|
+
{ ...e.columnWidths },
|
|
222
|
+
e.layout(),
|
|
223
|
+
e.split(),
|
|
224
|
+
e.scrollX()
|
|
225
|
+
],
|
|
226
|
+
() => {
|
|
227
|
+
L.value = null, w.value || (F.value = !1, q.value = {}, A.value = []), U(), W();
|
|
228
|
+
},
|
|
229
|
+
{ deep: !0, flush: "post" }
|
|
230
|
+
), et(
|
|
231
|
+
() => e.columns().map((t) => [t.key, t.minWidth, t.maxWidth]),
|
|
232
|
+
() => {
|
|
233
|
+
for (const t of e.columns()) {
|
|
234
|
+
const n = it(t.minWidth);
|
|
235
|
+
t.minWidth, n !== void 0 && t.maxWidth !== void 0 && t.maxWidth < n;
|
|
236
|
+
}
|
|
237
|
+
},
|
|
238
|
+
{ immediate: !0, deep: !0 }
|
|
239
|
+
), ct(() => {
|
|
240
|
+
U(), W();
|
|
241
|
+
}), dt(() => {
|
|
242
|
+
U(), W();
|
|
243
|
+
}), ht(() => {
|
|
244
|
+
X = !0, R && cancelAnimationFrame(R), N?.disconnect(), P?.disconnect(), Z();
|
|
245
|
+
}), {
|
|
246
|
+
enabled: w,
|
|
247
|
+
minimums: S,
|
|
248
|
+
minimumTotal: B,
|
|
249
|
+
metrics: C,
|
|
250
|
+
synchronized: H,
|
|
251
|
+
tableStyle: ot,
|
|
252
|
+
columnStyle: lt,
|
|
253
|
+
overflow: F,
|
|
254
|
+
remeasure: W
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
export {
|
|
258
|
+
pt as useColumnLayout
|
|
259
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useColumnLayout.test.d.ts","sourceRoot":"","sources":["../../../../../table/src/composables/useColumnLayout.test.ts"],"names":[],"mappings":""}
|
|
@@ -6,6 +6,8 @@ export interface ColumnMetrics {
|
|
|
6
6
|
/** 列总宽。 */
|
|
7
7
|
total: number;
|
|
8
8
|
}
|
|
9
|
+
/** Read one complete leaf-track row, retaining fractional CSS pixels on every engine. */
|
|
10
|
+
export declare function measureColumnTracks(table: HTMLTableElement, count: number): ColumnMetrics | null;
|
|
9
11
|
export interface UseColumnMetricsOptions {
|
|
10
12
|
/** 关闭时不测量、不注册 observer,`metrics` 恒为 null。 */
|
|
11
13
|
enabled: () => boolean;
|
|
@@ -28,12 +30,12 @@ export interface UseColumnMetricsReturn {
|
|
|
28
30
|
*
|
|
29
31
|
* **为什么量表头而不是要求用户声明数字列宽**:表头始终渲染全部 N 列,
|
|
30
32
|
* 它本身就是浏览器算好的精确列宽结果,直接读即可,不必复刻一套
|
|
31
|
-
* `width /
|
|
33
|
+
* `width / auto / 百分比 → renderWidth` 的解析(vxe-table 必须自己算,
|
|
32
34
|
* 是因为它表头表体都窗口化,没有一份完整布局可参照)。因此我们天然支持
|
|
33
35
|
* `auto`、百分比,以及 `table-layout: fixed` 下浏览器对余量的分配。
|
|
34
36
|
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
+
* 该路径仅用于没有显式下限的既有表格。约束布局由 useColumnLayout 分配 fixed
|
|
38
|
+
* 像素,或调用 measureColumnTracks 读取包含当前表体内容的独立 auto 参照。
|
|
37
39
|
*/
|
|
38
40
|
export declare function useColumnMetrics(options: UseColumnMetricsOptions): UseColumnMetricsReturn;
|
|
39
41
|
//# sourceMappingURL=useColumnMetrics.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useColumnMetrics.d.ts","sourceRoot":"","sources":["../../../../../table/src/composables/useColumnMetrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiD,KAAK,UAAU,EAAE,MAAM,KAAK,CAAA;AACpF,OAAO,KAAK,EAAE,UAAU,EAAO,MAAM,UAAU,CAAA;AAG/C,MAAM,WAAW,aAAa;IAC5B,2CAA2C;IAC3C,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,WAAW;IACX,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,uBAAuB;IACtC,6CAA6C;IAC7C,OAAO,EAAE,MAAM,OAAO,CAAA;IACtB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,WAAW,GAAG,IAAI,CAAA;IAClC,OAAO,EAAE,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAA;IACpD,qBAAqB;IACrB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACpC,uCAAuC;IACvC,SAAS,EAAE,MAAM,OAAO,CAAA;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,iCAAiC;IACjC,OAAO,EAAE,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA;IACzC,uBAAuB;IACvB,SAAS,EAAE,MAAM,IAAI,CAAA;CACtB;AA0CD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,sBAAsB,CAuHzF"}
|
|
1
|
+
{"version":3,"file":"useColumnMetrics.d.ts","sourceRoot":"","sources":["../../../../../table/src/composables/useColumnMetrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiD,KAAK,UAAU,EAAE,MAAM,KAAK,CAAA;AACpF,OAAO,KAAK,EAAE,UAAU,EAAO,MAAM,UAAU,CAAA;AAG/C,MAAM,WAAW,aAAa;IAC5B,2CAA2C;IAC3C,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,WAAW;IACX,KAAK,EAAE,MAAM,CAAA;CACd;AAED,yFAAyF;AACzF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAQhG;AAED,MAAM,WAAW,uBAAuB;IACtC,6CAA6C;IAC7C,OAAO,EAAE,MAAM,OAAO,CAAA;IACtB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,WAAW,GAAG,IAAI,CAAA;IAClC,OAAO,EAAE,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAA;IACpD,qBAAqB;IACrB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACpC,uCAAuC;IACvC,SAAS,EAAE,MAAM,OAAO,CAAA;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,iCAAiC;IACjC,OAAO,EAAE,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA;IACzC,uBAAuB;IACvB,SAAS,EAAE,MAAM,IAAI,CAAA;CACtB;AA0CD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,sBAAsB,CAuHzF"}
|
|
@@ -1,69 +1,77 @@
|
|
|
1
|
-
import { shallowRef as
|
|
2
|
-
import { getColumnKey as
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
if (
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import { shallowRef as v, watch as y, onMounted as A, onBeforeUnmount as N } from "vue";
|
|
2
|
+
import { getColumnKey as C } from "./useColumns.mjs";
|
|
3
|
+
function H(e, n) {
|
|
4
|
+
const t = [...e.children].find((l) => l.hasAttribute("data-vtg-width-row"))?.querySelectorAll("[data-vtg-track]");
|
|
5
|
+
if (t?.length !== n) return null;
|
|
6
|
+
const r = Array.from(t, (l) => l.getBoundingClientRect().width);
|
|
7
|
+
if (r.some((l) => !Number.isFinite(l) || l < 0)) return null;
|
|
8
|
+
const i = r.reduce((l, f) => l + f, 0);
|
|
9
|
+
return i > 0 ? { widths: r, total: i } : null;
|
|
10
|
+
}
|
|
11
|
+
const F = 0.5;
|
|
12
|
+
function q(e, n) {
|
|
13
|
+
if (e === null || n === null) return e === n;
|
|
14
|
+
if (e.widths.length !== n.widths.length) return !1;
|
|
15
|
+
for (let u = 0; u < e.widths.length; u += 1)
|
|
16
|
+
if (Math.abs(e.widths[u] - n.widths[u]) > F) return !1;
|
|
9
17
|
return !0;
|
|
10
18
|
}
|
|
11
|
-
function
|
|
12
|
-
return
|
|
19
|
+
function O(e, n) {
|
|
20
|
+
return C(e) ?? n;
|
|
13
21
|
}
|
|
14
|
-
function
|
|
15
|
-
const
|
|
16
|
-
let
|
|
17
|
-
for (let
|
|
18
|
-
const
|
|
19
|
-
if (!Number.isFinite(
|
|
20
|
-
|
|
22
|
+
function R(e, n) {
|
|
23
|
+
const u = [];
|
|
24
|
+
let t = 0;
|
|
25
|
+
for (let r = 0; r < e.length; r += 1) {
|
|
26
|
+
const i = n[String(O(e[r], r))] ?? e[r].width, l = typeof i == "number" ? i : Number.NaN;
|
|
27
|
+
if (!Number.isFinite(l) || l <= 0) return null;
|
|
28
|
+
u.push(l), t += l;
|
|
21
29
|
}
|
|
22
|
-
return
|
|
30
|
+
return t > 0 ? { widths: u, total: t } : null;
|
|
23
31
|
}
|
|
24
|
-
function
|
|
25
|
-
const
|
|
26
|
-
let
|
|
27
|
-
function
|
|
28
|
-
const
|
|
29
|
-
if (
|
|
32
|
+
function I(e) {
|
|
33
|
+
const n = v(null);
|
|
34
|
+
let u = 0, t = null, r = null, i = null;
|
|
35
|
+
function l() {
|
|
36
|
+
const s = e.columns(), o = s.length;
|
|
37
|
+
if (o === 0) return null;
|
|
30
38
|
if (!e.hasHeader())
|
|
31
|
-
return
|
|
32
|
-
const
|
|
33
|
-
if (!
|
|
34
|
-
const
|
|
35
|
-
if (
|
|
36
|
-
const
|
|
37
|
-
for (const c of
|
|
38
|
-
const
|
|
39
|
-
if (!Number.isInteger(
|
|
40
|
-
d
|
|
39
|
+
return R(s, e.columnWidths);
|
|
40
|
+
const b = e.headerEl();
|
|
41
|
+
if (!b) return null;
|
|
42
|
+
const g = b.querySelectorAll("th[data-vtg-leaf-col]");
|
|
43
|
+
if (g.length !== o) return null;
|
|
44
|
+
const h = new Array(o).fill(-1);
|
|
45
|
+
for (const c of g) {
|
|
46
|
+
const d = Number(c.dataset.vtgLeafCol);
|
|
47
|
+
if (!Number.isInteger(d) || d < 0 || d >= o) return null;
|
|
48
|
+
h[d] = c.getBoundingClientRect().width;
|
|
41
49
|
}
|
|
42
|
-
let
|
|
43
|
-
for (const c of
|
|
50
|
+
let m = 0;
|
|
51
|
+
for (const c of h) {
|
|
44
52
|
if (c < 0) return null;
|
|
45
|
-
|
|
53
|
+
m += c;
|
|
46
54
|
}
|
|
47
|
-
return
|
|
55
|
+
return m > 0 ? { widths: h, total: m } : null;
|
|
48
56
|
}
|
|
49
|
-
function
|
|
50
|
-
if (
|
|
51
|
-
|
|
57
|
+
function f() {
|
|
58
|
+
if (u = 0, !e.enabled()) {
|
|
59
|
+
n.value = null;
|
|
52
60
|
return;
|
|
53
61
|
}
|
|
54
|
-
const
|
|
55
|
-
q(
|
|
62
|
+
const s = l();
|
|
63
|
+
q(n.value, s) || (n.value = s);
|
|
56
64
|
}
|
|
57
65
|
function a() {
|
|
58
66
|
if (typeof requestAnimationFrame > "u") {
|
|
59
|
-
|
|
67
|
+
f();
|
|
60
68
|
return;
|
|
61
69
|
}
|
|
62
|
-
|
|
70
|
+
u || (u = requestAnimationFrame(f));
|
|
63
71
|
}
|
|
64
|
-
function
|
|
65
|
-
const
|
|
66
|
-
|
|
72
|
+
function w() {
|
|
73
|
+
const s = e.enabled() && e.hasHeader() ? e.headerEl() : null, o = s?.querySelector("table") ?? null;
|
|
74
|
+
s === r && o === i || (t && r && t.unobserve(r), t && i && t.unobserve(i), r = s, i = o, s && (!t && typeof ResizeObserver < "u" && (t = new ResizeObserver(a)), t?.observe(s), o && t?.observe(o)));
|
|
67
75
|
}
|
|
68
76
|
return y(
|
|
69
77
|
[
|
|
@@ -74,15 +82,16 @@ function M(e) {
|
|
|
74
82
|
() => ({ ...e.columnWidths })
|
|
75
83
|
],
|
|
76
84
|
() => {
|
|
77
|
-
|
|
85
|
+
w(), a();
|
|
78
86
|
},
|
|
79
87
|
{ deep: !1, flush: "post" }
|
|
80
|
-
),
|
|
81
|
-
|
|
82
|
-
}),
|
|
83
|
-
|
|
84
|
-
}), { metrics:
|
|
88
|
+
), A(() => {
|
|
89
|
+
w(), a();
|
|
90
|
+
}), N(() => {
|
|
91
|
+
u && cancelAnimationFrame(u), t?.disconnect(), t = null, r = null, i = null;
|
|
92
|
+
}), { metrics: n, remeasure: a };
|
|
85
93
|
}
|
|
86
94
|
export {
|
|
87
|
-
|
|
95
|
+
H as measureColumnTracks,
|
|
96
|
+
I as useColumnMetrics
|
|
88
97
|
};
|
|
@@ -10,5 +10,7 @@ export declare function useExpand(options: {
|
|
|
10
10
|
expandable: () => Expandable | undefined;
|
|
11
11
|
getRowKey: (record: Record<string, unknown>, index: number) => Key;
|
|
12
12
|
data: () => Record<string, unknown>[];
|
|
13
|
+
childrenColumnName?: () => string | undefined;
|
|
14
|
+
initializeNewRows?: () => boolean;
|
|
13
15
|
}): UseExpandReturn;
|
|
14
16
|
//# sourceMappingURL=useExpand.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useExpand.d.ts","sourceRoot":"","sources":["../../../../../table/src/composables/useExpand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,WAAW,EAAE,MAAM,KAAK,CAAA;AAC5D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAEhD,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAA;IACjC,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACtE,cAAc,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;CACtC;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE;IACjC,UAAU,EAAE,MAAM,UAAU,GAAG,SAAS,CAAA;IACxC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,GAAG,CAAA;IAClE,IAAI,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"useExpand.d.ts","sourceRoot":"","sources":["../../../../../table/src/composables/useExpand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,WAAW,EAAE,MAAM,KAAK,CAAA;AAC5D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAEhD,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAA;IACjC,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACtE,cAAc,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;CACtC;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE;IACjC,UAAU,EAAE,MAAM,UAAU,GAAG,SAAS,CAAA;IACxC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,GAAG,CAAA;IAClE,IAAI,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IACrC,kBAAkB,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAA;IAC7C,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAA;CAClC,GAAG,eAAe,CA8FlB"}
|
|
@@ -1,37 +1,59 @@
|
|
|
1
|
-
import { ref as
|
|
2
|
-
function
|
|
3
|
-
const
|
|
4
|
-
let
|
|
5
|
-
|
|
1
|
+
import { ref as p, watch as y, computed as v } from "vue";
|
|
2
|
+
function m(a) {
|
|
3
|
+
const d = p([]);
|
|
4
|
+
let s = !1;
|
|
5
|
+
const i = /* @__PURE__ */ new Set();
|
|
6
|
+
function f(e) {
|
|
7
|
+
const n = [];
|
|
8
|
+
function t(l) {
|
|
9
|
+
for (const r of l) {
|
|
10
|
+
n.push(a.getRowKey(r, n.length));
|
|
11
|
+
const u = r[a.childrenColumnName?.() ?? "children"];
|
|
12
|
+
Array.isArray(u) && t(u);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
return t(e), n;
|
|
16
|
+
}
|
|
17
|
+
y(
|
|
6
18
|
() => a.expandable(),
|
|
7
19
|
(e) => {
|
|
8
|
-
|
|
20
|
+
s || !e || (s = !0, e.defaultExpandAllRows ? (d.value = a.initializeNewRows?.() ? f(a.data()) : a.data().map((n, t) => a.getRowKey(n, t)), d.value.forEach((n) => i.add(n))) : e.defaultExpandedRowKeys && (d.value = [...e.defaultExpandedRowKeys]));
|
|
21
|
+
},
|
|
22
|
+
{ immediate: !0 }
|
|
23
|
+
);
|
|
24
|
+
const c = v(() => a.expandable()?.expandedRowKeys !== void 0);
|
|
25
|
+
y(
|
|
26
|
+
() => a.initializeNewRows?.() && a.expandable()?.defaultExpandAllRows ? a.data() : null,
|
|
27
|
+
(e) => {
|
|
28
|
+
if (!e || c.value) return;
|
|
29
|
+
const n = new Set(d.value);
|
|
30
|
+
for (const t of f(e))
|
|
31
|
+
i.has(t) || n.add(t), i.add(t);
|
|
32
|
+
d.value = [...n];
|
|
9
33
|
},
|
|
10
34
|
{ immediate: !0 }
|
|
11
35
|
);
|
|
12
|
-
const o =
|
|
36
|
+
const o = v(() => {
|
|
13
37
|
const e = a.expandable();
|
|
14
38
|
if (!e) return /* @__PURE__ */ new Set();
|
|
15
|
-
const
|
|
16
|
-
return new Set(
|
|
39
|
+
const n = c.value ? e.expandedRowKeys : d.value;
|
|
40
|
+
return new Set(n);
|
|
17
41
|
});
|
|
18
42
|
function x(e) {
|
|
19
|
-
return
|
|
43
|
+
return o.value.has(e);
|
|
20
44
|
}
|
|
21
|
-
function
|
|
22
|
-
const
|
|
23
|
-
if (!
|
|
24
|
-
const l = a.getRowKey(e,
|
|
25
|
-
|
|
26
|
-
const c = r ? [...u.value, l] : [...u.value].filter((s) => s !== l);
|
|
27
|
-
d.onExpandedRowsChange?.(c);
|
|
45
|
+
function K(e, n) {
|
|
46
|
+
const t = a.expandable();
|
|
47
|
+
if (!t) return;
|
|
48
|
+
const l = a.getRowKey(e, n), r = !x(l), u = c.value ? t.expandedRowKeys ?? [] : d.value, w = r ? [...u, l] : u.filter((R) => R !== l);
|
|
49
|
+
c.value || (d.value = w), t.onExpand?.(r, e), t.onExpandedRowsChange?.(w);
|
|
28
50
|
}
|
|
29
51
|
return {
|
|
30
52
|
isExpanded: x,
|
|
31
|
-
toggleExpand:
|
|
32
|
-
expandedKeySet:
|
|
53
|
+
toggleExpand: K,
|
|
54
|
+
expandedKeySet: o
|
|
33
55
|
};
|
|
34
56
|
}
|
|
35
57
|
export {
|
|
36
|
-
|
|
58
|
+
m as useExpand
|
|
37
59
|
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { TablePaginationConfig, TablePaginationState } from '../types/pagination';
|
|
2
|
+
export declare function positiveInteger(value: unknown, fallback: number): number;
|
|
3
|
+
export declare function usePagination<T>(options: {
|
|
4
|
+
pagination: () => false | TablePaginationConfig | undefined;
|
|
5
|
+
data: () => T[];
|
|
6
|
+
onChange: (state: TablePaginationState) => void;
|
|
7
|
+
}): {
|
|
8
|
+
enabled: import('vue').ComputedRef<boolean>;
|
|
9
|
+
config: import('vue').ComputedRef<TablePaginationConfig>;
|
|
10
|
+
state: import('vue').ComputedRef<TablePaginationState>;
|
|
11
|
+
pageData: import('vue').ComputedRef<T[]>;
|
|
12
|
+
change: (current: number, pageSize?: number) => void;
|
|
13
|
+
resetForFilter: () => TablePaginationState | undefined;
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=usePagination.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePagination.d.ts","sourceRoot":"","sources":["../../../../../table/src/composables/usePagination.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAEtF,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAExE;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE;IACxC,UAAU,EAAE,MAAM,KAAK,GAAG,qBAAqB,GAAG,SAAS,CAAA;IAC3D,IAAI,EAAE,MAAM,CAAC,EAAE,CAAA;IACf,QAAQ,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAA;CAChD;;;;;sBAsE0B,MAAM;0BAeJ,oBAAoB,GAAG,SAAS;EAQ5D"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { computed as g, ref as p, watch as f } from "vue";
|
|
2
|
+
function o(r, u) {
|
|
3
|
+
return typeof r == "number" && Number.isSafeInteger(r) && r > 0 ? r : u;
|
|
4
|
+
}
|
|
5
|
+
function C(r) {
|
|
6
|
+
const u = g(() => !!r.pagination()), l = g(() => r.pagination() || {}), c = p(1), v = p(10);
|
|
7
|
+
let d = !1;
|
|
8
|
+
f(
|
|
9
|
+
u,
|
|
10
|
+
(e) => {
|
|
11
|
+
!e || d || (d = !0, v.value = o(l.value.defaultPageSize, 10), c.value = o(l.value.defaultCurrent, 1));
|
|
12
|
+
},
|
|
13
|
+
{ immediate: !0, flush: "sync" }
|
|
14
|
+
);
|
|
15
|
+
const i = g(() => {
|
|
16
|
+
const e = l.value, n = o(e.pageSize, v.value), t = o(e.total, r.data().length);
|
|
17
|
+
return { current: Math.min(
|
|
18
|
+
o(e.current, c.value),
|
|
19
|
+
Math.max(1, Math.ceil(t / n))
|
|
20
|
+
), pageSize: n, total: t };
|
|
21
|
+
});
|
|
22
|
+
f(
|
|
23
|
+
() => i.value.current,
|
|
24
|
+
(e) => {
|
|
25
|
+
u.value && l.value.current === void 0 && (c.value = e);
|
|
26
|
+
},
|
|
27
|
+
{ flush: "sync" }
|
|
28
|
+
);
|
|
29
|
+
const m = g(() => {
|
|
30
|
+
const e = r.data();
|
|
31
|
+
if (!u.value) return e;
|
|
32
|
+
const { current: n, pageSize: t, total: a } = i.value;
|
|
33
|
+
return e.length < a && e.length <= t ? e : e.slice((n - 1) * t, n * t);
|
|
34
|
+
});
|
|
35
|
+
f(
|
|
36
|
+
() => [u.value, r.data().length, i.value.total, i.value.pageSize],
|
|
37
|
+
([e, n, t, a]) => {
|
|
38
|
+
},
|
|
39
|
+
{ immediate: !0 }
|
|
40
|
+
);
|
|
41
|
+
function h(e, n, t) {
|
|
42
|
+
const a = l.value;
|
|
43
|
+
a.current === void 0 && (c.value = e), a.pageSize === void 0 && (v.value = n), a["onUpdate:current"]?.(e), t && (a["onUpdate:pageSize"]?.(n), a.onShowSizeChange?.(e, n)), a.onChange?.(e, n);
|
|
44
|
+
}
|
|
45
|
+
function z(e, n = i.value.pageSize) {
|
|
46
|
+
if (!u.value || l.value.disabled) return;
|
|
47
|
+
const t = i.value, a = o(n, t.pageSize), s = Math.min(
|
|
48
|
+
o(e, t.current),
|
|
49
|
+
Math.max(1, Math.ceil(t.total / a))
|
|
50
|
+
);
|
|
51
|
+
if (s === t.current && a === t.pageSize) return;
|
|
52
|
+
const M = { current: s, pageSize: a, total: t.total };
|
|
53
|
+
h(s, a, a !== t.pageSize), r.onChange(M);
|
|
54
|
+
}
|
|
55
|
+
function S() {
|
|
56
|
+
if (!u.value) return;
|
|
57
|
+
const e = { ...i.value, current: 1 };
|
|
58
|
+
return h(1, e.pageSize, !1), e;
|
|
59
|
+
}
|
|
60
|
+
return { enabled: u, config: l, state: i, pageData: m, change: z, resetForFilter: S };
|
|
61
|
+
}
|
|
62
|
+
export {
|
|
63
|
+
o as positiveInteger,
|
|
64
|
+
C as usePagination
|
|
65
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePagination.test.d.ts","sourceRoot":"","sources":["../../../../../table/src/composables/usePagination.test.ts"],"names":[],"mappings":""}
|
|
@@ -6,6 +6,7 @@ export interface UseResizeReturn {
|
|
|
6
6
|
isResizing: Ref<boolean>;
|
|
7
7
|
}
|
|
8
8
|
export declare function useResize(options: {
|
|
9
|
+
columns?: () => readonly ColumnType<Record<string, unknown>>[];
|
|
9
10
|
onResizeColumn?: (column: ColumnType<Record<string, unknown>>, width: number) => void;
|
|
10
11
|
}): UseResizeReturn;
|
|
11
12
|
//# sourceMappingURL=useResize.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useResize.d.ts","sourceRoot":"","sources":["../../../../../table/src/composables/useResize.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"useResize.d.ts","sourceRoot":"","sources":["../../../../../table/src/composables/useResize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyC,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAI1C,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACpC,WAAW,EAAE,CACX,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAC3C,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,YAAY,KAChB,IAAI,CAAA;IACT,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;CACzB;AAUD,wBAAgB,SAAS,CAAC,OAAO,EAAE;IACjC,OAAO,CAAC,EAAE,MAAM,SAAS,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAA;IAC9D,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACtF,GAAG,eAAe,CA6IlB"}
|