@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.
Files changed (162) hide show
  1. package/css/presets/antdv.css +36 -0
  2. package/css/presets/element-plus.css +38 -0
  3. package/css/style.css +436 -0
  4. package/css/tailwind3-utilities.css +337 -0
  5. package/css/tailwind3.css +99 -0
  6. package/css/tailwind4.css +99 -0
  7. package/css/transitions.css +25 -0
  8. package/dist/core/src/components/VirtualList/VirtualList.d.ts +6 -3
  9. package/dist/core/src/components/VirtualList/VirtualList.d.ts.map +1 -1
  10. package/dist/core/src/components/VirtualList/VirtualList.mjs +187 -180
  11. package/dist/core/src/components/VirtualList/VirtualScrollBar.d.ts +1 -1
  12. package/dist/core/src/components/VirtualList/hooks/useChildren.d.ts +2 -2
  13. package/dist/core/src/components/VirtualList/hooks/useChildren.d.ts.map +1 -1
  14. package/dist/core/src/components/VirtualList/hooks/useChildren.mjs +12 -12
  15. package/dist/core/src/components/VirtualList/hooks/useGetSize.d.ts +1 -1
  16. package/dist/core/src/components/VirtualList/hooks/useGetSize.d.ts.map +1 -1
  17. package/dist/core/src/components/VirtualList/hooks/useGetSize.mjs +1 -1
  18. package/dist/core/src/components/VirtualList/hooks/useHeights.d.ts +2 -2
  19. package/dist/core/src/components/VirtualList/hooks/useHeights.d.ts.map +1 -1
  20. package/dist/core/src/components/VirtualList/hooks/useHeights.mjs +36 -36
  21. package/dist/core/src/components/VirtualList/hooks/useMobileTouchMove.d.ts.map +1 -1
  22. package/dist/core/src/components/VirtualList/hooks/useMobileTouchMove.mjs +11 -11
  23. package/dist/core/src/components/VirtualList/hooks/useMobileTouchMove.test.d.ts +2 -0
  24. package/dist/core/src/components/VirtualList/hooks/useMobileTouchMove.test.d.ts.map +1 -0
  25. package/dist/core/src/components/VirtualList/hooks/useScrollTo.d.ts +1 -1
  26. package/dist/core/src/components/VirtualList/hooks/useScrollTo.d.ts.map +1 -1
  27. package/dist/core/src/components/VirtualList/hooks/useScrollTo.mjs +30 -30
  28. package/dist/core/src/index.d.ts +1 -1
  29. package/dist/core/src/index.d.ts.map +1 -1
  30. package/dist/core/src/utils/types.d.ts +18 -0
  31. package/dist/core/src/utils/types.d.ts.map +1 -1
  32. package/dist/css/presets/antdv.css +36 -0
  33. package/dist/css/presets/element-plus.css +38 -0
  34. package/dist/css/style.css +436 -0
  35. package/dist/css/tailwind3-utilities.css +337 -0
  36. package/dist/css/tailwind3.css +99 -0
  37. package/dist/css/tailwind4.css +99 -0
  38. package/dist/css/transitions.css +25 -0
  39. package/dist/index.d.ts +0 -26
  40. package/dist/index.full.mjs +5116 -3769
  41. package/dist/index.mjs +85 -75
  42. package/dist/table/src/components/ColGroup.d.ts.map +1 -1
  43. package/dist/table/src/components/ColGroup.mjs +10 -10
  44. package/dist/table/src/components/ColumnWidthRow.d.ts +4 -0
  45. package/dist/table/src/components/ColumnWidthRow.d.ts.map +1 -0
  46. package/dist/table/src/components/ColumnWidthRow.mjs +23 -0
  47. package/dist/table/src/components/PaginationSizeSelect.d.ts +57 -0
  48. package/dist/table/src/components/PaginationSizeSelect.d.ts.map +1 -0
  49. package/dist/table/src/components/PaginationSizeSelect.mjs +138 -0
  50. package/dist/table/src/components/SelectionDropdown.d.ts +9 -0
  51. package/dist/table/src/components/SelectionDropdown.d.ts.map +1 -1
  52. package/dist/table/src/components/SelectionDropdown.mjs +32 -26
  53. package/dist/table/src/components/Table.d.ts +13 -2
  54. package/dist/table/src/components/Table.d.ts.map +1 -1
  55. package/dist/table/src/components/Table.mjs +496 -403
  56. package/dist/table/src/components/TableCell.d.ts.map +1 -1
  57. package/dist/table/src/components/TableCell.mjs +80 -74
  58. package/dist/table/src/components/TableHeaderCell.d.ts.map +1 -1
  59. package/dist/table/src/components/TableHeaderCell.mjs +85 -83
  60. package/dist/table/src/components/TablePagination.d.ts +74 -0
  61. package/dist/table/src/components/TablePagination.d.ts.map +1 -0
  62. package/dist/table/src/components/TablePagination.mjs +350 -0
  63. package/dist/table/src/components/TablePagination.test.d.ts +2 -0
  64. package/dist/table/src/components/TablePagination.test.d.ts.map +1 -0
  65. package/dist/table/src/components/TablePaginationCompatClass.test.d.ts +2 -0
  66. package/dist/table/src/components/TablePaginationCompatClass.test.d.ts.map +1 -0
  67. package/dist/table/src/components/TablePaginationLayout.test.d.ts +2 -0
  68. package/dist/table/src/components/TablePaginationLayout.test.d.ts.map +1 -0
  69. package/dist/table/src/components/VTable.vue.d.ts.map +1 -1
  70. package/dist/table/src/components/VTable.vue.mjs +34 -26
  71. package/dist/table/src/components/VTableMinWidth.test.d.ts +2 -0
  72. package/dist/table/src/components/VTableMinWidth.test.d.ts.map +1 -0
  73. package/dist/table/src/components/VTableSummary.d.ts +15 -75
  74. package/dist/table/src/components/VTableSummary.d.ts.map +1 -1
  75. package/dist/table/src/components/VTableSummary.mjs +7 -7
  76. package/dist/table/src/components/VTableSummaryCell.d.ts.map +1 -1
  77. package/dist/table/src/components/VTableSummaryCell.mjs +26 -24
  78. package/dist/table/src/components/VirtualTableBody.d.ts.map +1 -1
  79. package/dist/table/src/components/VirtualTableBody.mjs +107 -95
  80. package/dist/table/src/composables/useColumnLayout.d.ts +28 -0
  81. package/dist/table/src/composables/useColumnLayout.d.ts.map +1 -0
  82. package/dist/table/src/composables/useColumnLayout.mjs +259 -0
  83. package/dist/table/src/composables/useColumnLayout.test.d.ts +2 -0
  84. package/dist/table/src/composables/useColumnLayout.test.d.ts.map +1 -0
  85. package/dist/table/src/composables/useColumnMetrics.d.ts +5 -3
  86. package/dist/table/src/composables/useColumnMetrics.d.ts.map +1 -1
  87. package/dist/table/src/composables/useColumnMetrics.mjs +64 -55
  88. package/dist/table/src/composables/useExpand.d.ts +2 -0
  89. package/dist/table/src/composables/useExpand.d.ts.map +1 -1
  90. package/dist/table/src/composables/useExpand.mjs +42 -20
  91. package/dist/table/src/composables/usePagination.d.ts +15 -0
  92. package/dist/table/src/composables/usePagination.d.ts.map +1 -0
  93. package/dist/table/src/composables/usePagination.mjs +65 -0
  94. package/dist/table/src/composables/usePagination.test.d.ts +2 -0
  95. package/dist/table/src/composables/usePagination.test.d.ts.map +1 -0
  96. package/dist/table/src/composables/useResize.d.ts +1 -0
  97. package/dist/table/src/composables/useResize.d.ts.map +1 -1
  98. package/dist/table/src/composables/useResize.mjs +67 -39
  99. package/dist/table/src/composables/useScroll.d.ts +3 -0
  100. package/dist/table/src/composables/useScroll.d.ts.map +1 -1
  101. package/dist/table/src/composables/useScroll.mjs +43 -41
  102. package/dist/table/src/composables/useSelection.d.ts +2 -1
  103. package/dist/table/src/composables/useSelection.d.ts.map +1 -1
  104. package/dist/table/src/composables/useSelection.mjs +204 -155
  105. package/dist/table/src/composables/useTreeData.d.ts +4 -0
  106. package/dist/table/src/composables/useTreeData.d.ts.map +1 -1
  107. package/dist/table/src/composables/useTreeData.mjs +48 -43
  108. package/dist/table/src/context.d.ts +6 -1
  109. package/dist/table/src/context.d.ts.map +1 -1
  110. package/dist/table/src/index.d.ts +10 -87
  111. package/dist/table/src/index.d.ts.map +1 -1
  112. package/dist/table/src/index.mjs +12 -12
  113. package/dist/table/src/types/column.d.ts +8 -2
  114. package/dist/table/src/types/column.d.ts.map +1 -1
  115. package/dist/table/src/types/index.d.ts +1 -0
  116. package/dist/table/src/types/index.d.ts.map +1 -1
  117. package/dist/table/src/types/pagination.d.ts +66 -0
  118. package/dist/table/src/types/pagination.d.ts.map +1 -0
  119. package/dist/table/src/types/pagination.typecheck.d.ts +25 -0
  120. package/dist/table/src/types/pagination.typecheck.d.ts.map +1 -0
  121. package/dist/table/src/types/table.d.ts +8 -1
  122. package/dist/table/src/types/table.d.ts.map +1 -1
  123. package/dist/table/src/utils/columnWidth.d.ts +55 -7
  124. package/dist/table/src/utils/columnWidth.d.ts.map +1 -1
  125. package/dist/table/src/utils/columnWidth.mjs +91 -21
  126. package/dist/table/src/utils/paginationLayout.d.ts +13 -0
  127. package/dist/table/src/utils/paginationLayout.d.ts.map +1 -0
  128. package/dist/table/src/utils/paginationLayout.mjs +55 -0
  129. package/dist/table/src/utils/paginationLayout.test.d.ts +2 -0
  130. package/dist/table/src/utils/paginationLayout.test.d.ts.map +1 -0
  131. package/dist/table/src/utils/popupPosition.d.ts +4 -1
  132. package/dist/table/src/utils/popupPosition.d.ts.map +1 -1
  133. package/dist/table/src/utils/popupPosition.mjs +34 -15
  134. package/dist/theme/src/augment.d.ts +2 -0
  135. package/dist/theme/src/augment.d.ts.map +1 -1
  136. package/dist/theme/src/compat/antdv-pagination.d.ts +4 -0
  137. package/dist/theme/src/compat/antdv-pagination.d.ts.map +1 -0
  138. package/dist/theme/src/compat/antdv-pagination.mjs +29 -0
  139. package/dist/theme/src/index.d.ts +5 -0
  140. package/dist/theme/src/index.d.ts.map +1 -1
  141. package/dist/theme/src/pagination.d.ts +153 -0
  142. package/dist/theme/src/pagination.d.ts.map +1 -0
  143. package/dist/theme/src/pagination.mjs +144 -0
  144. package/dist/theme/src/presets/antdv/table-locale.d.ts +2 -2
  145. package/dist/theme/src/presets/antdv/table-locale.mjs +2 -2
  146. package/dist/theme/src/presets/antdv/table.d.ts +3 -0
  147. package/dist/theme/src/presets/antdv/table.d.ts.map +1 -1
  148. package/dist/theme/src/presets/antdv/table.mjs +3 -0
  149. package/dist/theme/src/presets/element-plus/table-locale.d.ts +2 -2
  150. package/dist/theme/src/presets/element-plus/table-locale.mjs +2 -2
  151. package/dist/theme/src/presets/element-plus/table.d.ts +3 -0
  152. package/dist/theme/src/presets/element-plus/table.d.ts.map +1 -1
  153. package/dist/theme/src/presets/element-plus/table.mjs +3 -0
  154. package/dist/theme/src/presets/index.d.ts.map +1 -1
  155. package/dist/theme/src/presets/index.mjs +60 -57
  156. package/dist/theme/src/presets/types.d.ts +1 -0
  157. package/dist/theme/src/presets/types.d.ts.map +1 -1
  158. package/dist/vtable-guild/src/augment.d.ts +15 -0
  159. package/dist/vtable-guild/src/augment.d.ts.map +1 -0
  160. package/dist/vtable-guild/src/index.d.ts +1 -0
  161. package/dist/vtable-guild/src/index.d.ts.map +1 -1
  162. 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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=useColumnLayout.test.d.ts.map
@@ -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 / minWidth / auto / 百分比 → renderWidth` 的解析(vxe-table 必须自己算,
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 g, watch as y, onMounted as N, onBeforeUnmount as A } from "vue";
2
- import { getColumnKey as F } from "./useColumns.mjs";
3
- const O = 0.5;
4
- function q(e, t) {
5
- if (e === null || t === null) return e === t;
6
- if (e.widths.length !== t.widths.length) return !1;
7
- for (let r = 0; r < e.widths.length; r += 1)
8
- if (Math.abs(e.widths[r] - t.widths[r]) > O) return !1;
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 C(e, t) {
12
- return F(e) ?? t;
19
+ function O(e, n) {
20
+ return C(e) ?? n;
13
21
  }
14
- function E(e, t) {
15
- const r = [];
16
- let n = 0;
17
- for (let l = 0; l < e.length; l += 1) {
18
- const s = t[String(C(e[l], l))] ?? e[l].width, f = typeof s == "number" ? s : Number.NaN;
19
- if (!Number.isFinite(f) || f <= 0) return null;
20
- r.push(f), n += f;
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 n > 0 ? { widths: r, total: n } : null;
30
+ return t > 0 ? { widths: u, total: t } : null;
23
31
  }
24
- function M(e) {
25
- const t = g(null);
26
- let r = 0, n = null, l = null, s = null;
27
- function f() {
28
- const u = e.columns(), i = u.length;
29
- if (i === 0) return null;
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 E(u, e.columnWidths);
32
- const w = e.headerEl();
33
- if (!w) return null;
34
- const v = w.querySelectorAll("th[data-vtg-leaf-col]");
35
- if (v.length !== i) return null;
36
- const d = new Array(i).fill(-1);
37
- for (const c of v) {
38
- const o = Number(c.dataset.vtgLeafCol);
39
- if (!Number.isInteger(o) || o < 0 || o >= i) return null;
40
- d[o] = c.getBoundingClientRect().width;
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 h = 0;
43
- for (const c of d) {
50
+ let m = 0;
51
+ for (const c of h) {
44
52
  if (c < 0) return null;
45
- h += c;
53
+ m += c;
46
54
  }
47
- return h > 0 ? { widths: d, total: h } : null;
55
+ return m > 0 ? { widths: h, total: m } : null;
48
56
  }
49
- function m() {
50
- if (r = 0, !e.enabled()) {
51
- t.value = null;
57
+ function f() {
58
+ if (u = 0, !e.enabled()) {
59
+ n.value = null;
52
60
  return;
53
61
  }
54
- const u = f();
55
- q(t.value, u) || (t.value = u);
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
- m();
67
+ f();
60
68
  return;
61
69
  }
62
- r || (r = requestAnimationFrame(m));
70
+ u || (u = requestAnimationFrame(f));
63
71
  }
64
- function b() {
65
- const u = e.enabled() && e.hasHeader() ? e.headerEl() : null, i = u?.querySelector("table") ?? null;
66
- u === l && i === s || (n && l && n.unobserve(l), n && s && n.unobserve(s), l = u, s = i, u && (!n && typeof ResizeObserver < "u" && (n = new ResizeObserver(a)), n?.observe(u), i && n?.observe(i)));
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
- b(), a();
85
+ w(), a();
78
86
  },
79
87
  { deep: !1, flush: "post" }
80
- ), N(() => {
81
- b(), a();
82
- }), A(() => {
83
- r && cancelAnimationFrame(r), n?.disconnect(), n = null, l = null, s = null;
84
- }), { metrics: t, remeasure: a };
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
- M as useColumnMetrics
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;CACtC,GAAG,eAAe,CA8DlB"}
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 v, watch as w, computed as i } from "vue";
2
- function K(a) {
3
- const n = v([]);
4
- let f = !1;
5
- w(
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
- f || !e || (f = !0, e.defaultExpandAllRows ? n.value = a.data().map((t, d) => a.getRowKey(t, d)) : e.defaultExpandedRowKeys && (n.value = [...e.defaultExpandedRowKeys]));
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 = i(() => a.expandable()?.expandedRowKeys !== void 0), u = i(() => {
36
+ const o = v(() => {
13
37
  const e = a.expandable();
14
38
  if (!e) return /* @__PURE__ */ new Set();
15
- const t = o.value ? e.expandedRowKeys : n.value;
16
- return new Set(t);
39
+ const n = c.value ? e.expandedRowKeys : d.value;
40
+ return new Set(n);
17
41
  });
18
42
  function x(e) {
19
- return u.value.has(e);
43
+ return o.value.has(e);
20
44
  }
21
- function p(e, t) {
22
- const d = a.expandable();
23
- if (!d) return;
24
- const l = a.getRowKey(e, t), r = !x(l);
25
- o.value || (r ? n.value = [...n.value, l] : n.value = n.value.filter((s) => s !== l)), d.onExpand?.(r, e);
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: p,
32
- expandedKeySet: u
53
+ toggleExpand: K,
54
+ expandedKeySet: o
33
55
  };
34
56
  }
35
57
  export {
36
- K as useExpand
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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=usePagination.test.d.ts.map
@@ -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,EAAkC,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAG1C,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,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,CA0ElB"}
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"}