@vanstack/solid-ark 0.0.15 → 0.0.16
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/dist/badge/index.mjs +2 -16
- package/dist/badge-D4G--N46.js +17 -0
- package/dist/data-table/index.d.ts +1 -1
- package/dist/data-table/index.mjs +169 -145
- package/dist/data-table/type.d.ts +11 -1
- package/package.json +4 -4
package/dist/badge/index.mjs
CHANGED
|
@@ -1,17 +1,3 @@
|
|
|
1
1
|
import "../solid-ark.css";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
var i = /*#__PURE__*/ r("<span>");
|
|
5
|
-
function a(r) {
|
|
6
|
-
return (() => {
|
|
7
|
-
var a = i();
|
|
8
|
-
return n(a, () => r.children), t(() => e(a, [
|
|
9
|
-
"van-badge",
|
|
10
|
-
`van-badge-${r.variant ?? "primary"}`,
|
|
11
|
-
`van-badge-${r.size ?? "default"}`,
|
|
12
|
-
r.className
|
|
13
|
-
].filter(Boolean).join(" "))), a;
|
|
14
|
-
})();
|
|
15
|
-
}
|
|
16
|
-
//#endregion
|
|
17
|
-
export { a as Badge };
|
|
2
|
+
import { t as e } from "../badge-D4G--N46.js";
|
|
3
|
+
export { e as Badge };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import "./solid-ark.css";
|
|
2
|
+
import { className as e, effect as t, insert as n, template as r } from "solid-js/web";
|
|
3
|
+
//#region src/badge/Badge.tsx
|
|
4
|
+
var i = /*#__PURE__*/ r("<span>");
|
|
5
|
+
function a(r) {
|
|
6
|
+
return (() => {
|
|
7
|
+
var a = i();
|
|
8
|
+
return n(a, () => r.children), t(() => e(a, [
|
|
9
|
+
"van-badge",
|
|
10
|
+
`van-badge-${r.variant ?? "primary"}`,
|
|
11
|
+
`van-badge-${r.size ?? "default"}`,
|
|
12
|
+
r.className
|
|
13
|
+
].filter(Boolean).join(" "))), a;
|
|
14
|
+
})();
|
|
15
|
+
}
|
|
16
|
+
//#endregion
|
|
17
|
+
export { a as t };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export type { FieldConfig } from '../form/type';
|
|
2
2
|
export { DataTable } from './DataTable';
|
|
3
|
-
export type { DataTableAction, DataTableColumnDef, DataTableProps, DataTableQuery, DataTableResult, DataTableSearchHandler, } from './type';
|
|
3
|
+
export type { DataTableAction, DataTableBadgeConfig, DataTableColumnDef, DataTableProps, DataTableQuery, DataTableResult, DataTableSearchHandler, } from './type';
|
|
4
4
|
export type { ColumnDef, SortingState } from '@tanstack/solid-table';
|
|
@@ -1,50 +1,51 @@
|
|
|
1
1
|
import "../solid-ark.css";
|
|
2
2
|
import { t as e } from "../button-Br_upy12.js";
|
|
3
|
-
import { t } from "../
|
|
4
|
-
import { t as n } from "../
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
3
|
+
import { t } from "../badge-D4G--N46.js";
|
|
4
|
+
import { t as n } from "../form-IwL17HZI.js";
|
|
5
|
+
import { t as r } from "../table-D3DgojFM.js";
|
|
6
|
+
import { className as i, createComponent as a, effect as o, insert as s, memo as c, setAttribute as l, setStyleProperty as u, template as d, use as f } from "solid-js/web";
|
|
7
|
+
import { For as p, Show as m, createEffect as ee, createMemo as h, createSignal as g, mergeProps as te, on as _, onCleanup as v, onMount as y } from "solid-js";
|
|
8
|
+
import { formatDate as ne, formatDateTime as re, formatShortDateTime as b } from "@vanstack/shared";
|
|
9
|
+
import { Pagination as x } from "@ark-ui/solid/pagination";
|
|
9
10
|
//#region src/data-table/EllipsisCell.tsx
|
|
10
|
-
var
|
|
11
|
-
function
|
|
11
|
+
var S = /*#__PURE__*/ d("<span class=van-data-table-ellipsis>");
|
|
12
|
+
function C(e) {
|
|
12
13
|
let t;
|
|
13
|
-
return
|
|
14
|
+
return y(() => {
|
|
14
15
|
t && t.scrollWidth > t.clientWidth && (t.dataset.ellipsis = "true", t.dataset.text = e.text);
|
|
15
16
|
}), (() => {
|
|
16
|
-
var n =
|
|
17
|
-
return typeof r == "function" ?
|
|
17
|
+
var n = S(), r = t;
|
|
18
|
+
return typeof r == "function" ? f(r, n) : t = n, s(n, () => e.children), n;
|
|
18
19
|
})();
|
|
19
20
|
}
|
|
20
21
|
//#endregion
|
|
21
22
|
//#region src/data-table/Pagination.tsx
|
|
22
|
-
var
|
|
23
|
-
function
|
|
23
|
+
var w = /*#__PURE__*/ d("<svg class=van-data-table-pagination-icon fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2 viewBox=\"0 0 24 24\"><path>"), T = /*#__PURE__*/ d("<svg class=van-data-table-pagination-icon fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2 viewBox=\"0 0 24 24\">"), E = /*#__PURE__*/ d("<svg><path d=\"M11 6l-6 6 6 6\"></svg>", !1, !0, !1), D = /*#__PURE__*/ d("<svg><path d=\"M18 6l-6 6 6 6\"></svg>", !1, !0, !1), O = /*#__PURE__*/ d("<svg><path d=\"M13 6l6 6-6 6\"></svg>", !1, !0, !1), k = /*#__PURE__*/ d("<svg><path d=\"M6 6l6 6-6 6\"></svg>", !1, !0, !1), A = /*#__PURE__*/ d("<div class=van-data-table-pagination-buttons>"), j = /*#__PURE__*/ d("<div class=van-data-table-pagination><span class=van-data-table-pagination-info>共 <!> 条");
|
|
24
|
+
function M(e) {
|
|
24
25
|
return (() => {
|
|
25
|
-
var t =
|
|
26
|
-
return
|
|
26
|
+
var t = w(), n = t.firstChild;
|
|
27
|
+
return o(() => l(n, "d", e.direction === "left" ? "M15 6l-6 6 6 6" : "M9 6l6 6-6 6")), t;
|
|
27
28
|
})();
|
|
28
29
|
}
|
|
29
|
-
function
|
|
30
|
+
function N(e) {
|
|
30
31
|
return (() => {
|
|
31
|
-
var t =
|
|
32
|
-
return
|
|
33
|
-
var t =
|
|
34
|
-
return () => t() ? [
|
|
32
|
+
var t = T();
|
|
33
|
+
return s(t, (() => {
|
|
34
|
+
var t = c(() => e.direction === "left");
|
|
35
|
+
return () => t() ? [E(), D()] : [O(), k()];
|
|
35
36
|
})()), t;
|
|
36
37
|
})();
|
|
37
38
|
}
|
|
38
|
-
function
|
|
39
|
+
function ie(e) {
|
|
39
40
|
let t = () => Math.max(1, Math.ceil(e.count / e.pageSize));
|
|
40
41
|
return (() => {
|
|
41
|
-
var n =
|
|
42
|
-
return
|
|
42
|
+
var n = j(), r = n.firstChild, i = r.firstChild.nextSibling;
|
|
43
|
+
return i.nextSibling, s(r, () => e.count, i), s(n, a(m, {
|
|
43
44
|
get when() {
|
|
44
45
|
return t() > 1;
|
|
45
46
|
},
|
|
46
47
|
get children() {
|
|
47
|
-
return
|
|
48
|
+
return a(x.Root, {
|
|
48
49
|
get count() {
|
|
49
50
|
return e.count;
|
|
50
51
|
},
|
|
@@ -58,22 +59,22 @@ function ne(e) {
|
|
|
58
59
|
},
|
|
59
60
|
translations: { rootLabel: "分页" },
|
|
60
61
|
get children() {
|
|
61
|
-
var e =
|
|
62
|
-
return
|
|
62
|
+
var e = A();
|
|
63
|
+
return s(e, a(x.FirstTrigger, {
|
|
63
64
|
class: "van-data-table-pagination-btn",
|
|
64
65
|
get children() {
|
|
65
|
-
return
|
|
66
|
+
return a(N, { direction: "left" });
|
|
66
67
|
}
|
|
67
|
-
}), null),
|
|
68
|
+
}), null), s(e, a(x.PrevTrigger, {
|
|
68
69
|
class: "van-data-table-pagination-btn",
|
|
69
70
|
get children() {
|
|
70
|
-
return
|
|
71
|
+
return a(M, { direction: "left" });
|
|
71
72
|
}
|
|
72
|
-
}), null),
|
|
73
|
+
}), null), s(e, a(x.Context, { children: (e) => a(p, {
|
|
73
74
|
get each() {
|
|
74
75
|
return e().pages;
|
|
75
76
|
},
|
|
76
|
-
children: (e, t) => e.type === "page" ?
|
|
77
|
+
children: (e, t) => e.type === "page" ? a(x.Item, {
|
|
77
78
|
class: "van-data-table-pagination-btn",
|
|
78
79
|
type: "page",
|
|
79
80
|
get value() {
|
|
@@ -82,22 +83,22 @@ function ne(e) {
|
|
|
82
83
|
get children() {
|
|
83
84
|
return e.value;
|
|
84
85
|
}
|
|
85
|
-
}) :
|
|
86
|
+
}) : a(x.Ellipsis, {
|
|
86
87
|
class: "van-data-table-pagination-ellipsis",
|
|
87
88
|
get index() {
|
|
88
89
|
return t();
|
|
89
90
|
},
|
|
90
91
|
children: "…"
|
|
91
92
|
})
|
|
92
|
-
}) }), null),
|
|
93
|
+
}) }), null), s(e, a(x.NextTrigger, {
|
|
93
94
|
class: "van-data-table-pagination-btn",
|
|
94
95
|
get children() {
|
|
95
|
-
return
|
|
96
|
+
return a(M, { direction: "right" });
|
|
96
97
|
}
|
|
97
|
-
}), null),
|
|
98
|
+
}), null), s(e, a(x.LastTrigger, {
|
|
98
99
|
class: "van-data-table-pagination-btn",
|
|
99
100
|
get children() {
|
|
100
|
-
return
|
|
101
|
+
return a(N, { direction: "right" });
|
|
101
102
|
}
|
|
102
103
|
}), null), e;
|
|
103
104
|
}
|
|
@@ -108,29 +109,29 @@ function ne(e) {
|
|
|
108
109
|
}
|
|
109
110
|
//#endregion
|
|
110
111
|
//#region src/data-table/DataTable.tsx
|
|
111
|
-
var
|
|
112
|
-
function
|
|
113
|
-
return
|
|
112
|
+
var P = /*#__PURE__*/ d("<svg fill=none height=16 stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2 viewBox=\"0 0 24 24\"width=16 xmlns=http://www.w3.org/2000/svg><path d=\"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\"></path><path d=\"M3 3v5h5\">"), ae = /*#__PURE__*/ d("<div class=van-data-table-actions>"), F = /*#__PURE__*/ d("<div class=van-data-table-search>"), I = /*#__PURE__*/ d("<div class=van-data-table-toolbar>"), L = /*#__PURE__*/ d("<div>"), R = /*#__PURE__*/ d("<div class=van-data-table-search-actions>"), z = /*#__PURE__*/ d("<div class=van-data-table-tooltip>");
|
|
113
|
+
function B() {
|
|
114
|
+
return P();
|
|
114
115
|
}
|
|
115
|
-
function
|
|
116
|
-
let
|
|
116
|
+
function V(c) {
|
|
117
|
+
let l = te({
|
|
117
118
|
defaultPage: 1,
|
|
118
119
|
defaultPageSize: 10,
|
|
119
120
|
emptyText: "暂无数据",
|
|
120
121
|
showSearchActions: !0
|
|
121
|
-
},
|
|
122
|
+
}, c), d = h(() => l.searchFields ?? []), x = h(() => d().map((e) => ({
|
|
122
123
|
...e,
|
|
123
124
|
label: void 0
|
|
124
|
-
}))),
|
|
125
|
-
|
|
126
|
-
e &&
|
|
125
|
+
}))), S = h(() => l.data !== void 0), w = h(() => c.selectable ?? !!c.onSelectionChange), T = (e, t) => typeof e.show == "function" ? e.show(t) : e.show !== !1, [E, D] = g(l.searchValues ?? {}), [O, k] = g(l.searchValues ?? {});
|
|
126
|
+
ee(_(() => l.searchValues, (e) => {
|
|
127
|
+
e && D(() => e);
|
|
127
128
|
}));
|
|
128
|
-
let [
|
|
129
|
-
let
|
|
130
|
-
for (let
|
|
131
|
-
let
|
|
132
|
-
if (
|
|
133
|
-
if (
|
|
129
|
+
let [A, j] = g(l.defaultPage), [M, N] = g(l.defaultPageSize), [P, V] = g([]), H = h(() => {
|
|
130
|
+
let n = 0, r = 0, i = [];
|
|
131
|
+
for (let o of l.columns) {
|
|
132
|
+
let c = o.type;
|
|
133
|
+
if (c === "index") {
|
|
134
|
+
if (n += 1, n > 1) throw Error("[solid-ark] DataTable columns 只允许一个 type=\"index\" 列");
|
|
134
135
|
let e = {
|
|
135
136
|
id: "__index__",
|
|
136
137
|
header: "#",
|
|
@@ -139,44 +140,44 @@ function B(s) {
|
|
|
139
140
|
enableSorting: !1,
|
|
140
141
|
enableColumnFilter: !1,
|
|
141
142
|
enableHiding: !1,
|
|
142
|
-
...
|
|
143
|
-
cell: ({ row: e }) => (
|
|
143
|
+
...o,
|
|
144
|
+
cell: ({ row: e }) => (A() - 1) * M() + e.index + 1
|
|
144
145
|
};
|
|
145
|
-
|
|
146
|
+
i.push(e);
|
|
146
147
|
continue;
|
|
147
148
|
}
|
|
148
|
-
if (
|
|
149
|
-
let e =
|
|
149
|
+
if (c === "date" || c === "dateTime" || c === "shortDateTime") {
|
|
150
|
+
let e = o;
|
|
150
151
|
if (!e.accessorKey) throw Error("[solid-ark] 时间戳列(type=\"date/dateTime/shortDateTime\")必须提供 accessorKey");
|
|
151
|
-
let t = e.accessorKey,
|
|
152
|
-
|
|
152
|
+
let t = e.accessorKey, n = e.type === "date" ? ne : e.type === "dateTime" ? re : b;
|
|
153
|
+
i.push({
|
|
153
154
|
id: t,
|
|
154
155
|
accessorKey: t,
|
|
155
156
|
header: e.header ?? t,
|
|
156
157
|
enableSorting: e.enableSorting ?? !1,
|
|
157
|
-
cell: (e) =>
|
|
158
|
+
cell: (e) => n(e.getValue())
|
|
158
159
|
});
|
|
159
160
|
continue;
|
|
160
161
|
}
|
|
161
|
-
if (
|
|
162
|
-
let t =
|
|
163
|
-
if (
|
|
164
|
-
let
|
|
165
|
-
if (
|
|
166
|
-
|
|
162
|
+
if (c === "action") {
|
|
163
|
+
let t = o, n = t.actions ?? [];
|
|
164
|
+
if (n.length === 0) continue;
|
|
165
|
+
let r = n.some((e) => typeof e.show == "function") ? n : n.filter((e) => e.show !== !1);
|
|
166
|
+
if (r.length === 0) continue;
|
|
167
|
+
i.push({
|
|
167
168
|
id: "__actions__",
|
|
168
169
|
header: t.header ?? "操作",
|
|
169
170
|
enableSorting: !1,
|
|
170
171
|
cell: ({ row: t }) => (() => {
|
|
171
|
-
var n =
|
|
172
|
-
return
|
|
173
|
-
each:
|
|
174
|
-
children: (n) =>
|
|
172
|
+
var n = ae();
|
|
173
|
+
return s(n, a(p, {
|
|
174
|
+
each: r,
|
|
175
|
+
children: (n) => a(m, {
|
|
175
176
|
get when() {
|
|
176
|
-
return
|
|
177
|
+
return T(n, t.original);
|
|
177
178
|
},
|
|
178
179
|
get children() {
|
|
179
|
-
return
|
|
180
|
+
return a(e, {
|
|
180
181
|
onClick: () => n.onClick(t.original),
|
|
181
182
|
get variant() {
|
|
182
183
|
return n.variant ?? "outline";
|
|
@@ -192,12 +193,35 @@ function B(s) {
|
|
|
192
193
|
});
|
|
193
194
|
continue;
|
|
194
195
|
}
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
196
|
+
if (c === "badge") {
|
|
197
|
+
let e = o, n = e.badge;
|
|
198
|
+
if (!n) continue;
|
|
199
|
+
let s = `__badge__${r}`;
|
|
200
|
+
r += 1, i.push({
|
|
201
|
+
id: s,
|
|
202
|
+
header: e.header,
|
|
203
|
+
enableSorting: !1,
|
|
204
|
+
cell: ({ row: e }) => {
|
|
205
|
+
let r = typeof n == "function" ? n(e.original) : n;
|
|
206
|
+
return a(t, {
|
|
207
|
+
size: "default",
|
|
208
|
+
get variant() {
|
|
209
|
+
return r.variant;
|
|
210
|
+
},
|
|
211
|
+
get children() {
|
|
212
|
+
return r.value;
|
|
213
|
+
}
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
});
|
|
217
|
+
continue;
|
|
218
|
+
}
|
|
219
|
+
let l = o.ellipsis === !0, u = o.size;
|
|
220
|
+
if (l && typeof u == "number") {
|
|
221
|
+
let e = o.cell;
|
|
222
|
+
i.push({
|
|
223
|
+
...o,
|
|
224
|
+
cell: (t) => a(C, {
|
|
201
225
|
get text() {
|
|
202
226
|
return String(t.getValue() ?? "");
|
|
203
227
|
},
|
|
@@ -206,103 +230,103 @@ function B(s) {
|
|
|
206
230
|
});
|
|
207
231
|
continue;
|
|
208
232
|
}
|
|
209
|
-
|
|
233
|
+
i.push(o);
|
|
210
234
|
}
|
|
211
|
-
return
|
|
212
|
-
}),
|
|
213
|
-
|
|
214
|
-
let e =
|
|
235
|
+
return i;
|
|
236
|
+
}), U, [W, G] = g(null);
|
|
237
|
+
y(() => {
|
|
238
|
+
let e = U;
|
|
215
239
|
if (!e) return;
|
|
216
240
|
let t = (e) => {
|
|
217
241
|
let t = e.target.closest(".van-data-table-ellipsis[data-ellipsis]");
|
|
218
242
|
if (!t) return;
|
|
219
243
|
let n = t.getBoundingClientRect();
|
|
220
|
-
|
|
244
|
+
G({
|
|
221
245
|
left: n.left,
|
|
222
246
|
text: t.dataset.text ?? "",
|
|
223
247
|
top: n.bottom + 6
|
|
224
248
|
});
|
|
225
249
|
}, n = (e) => {
|
|
226
|
-
e.relatedTarget?.closest?.(".van-data-table-ellipsis[data-ellipsis]") ||
|
|
250
|
+
e.relatedTarget?.closest?.(".van-data-table-ellipsis[data-ellipsis]") || G(null);
|
|
227
251
|
};
|
|
228
|
-
e.addEventListener("mouseover", t), e.addEventListener("mouseout", n),
|
|
252
|
+
e.addEventListener("mouseover", t), e.addEventListener("mouseout", n), v(() => {
|
|
229
253
|
e.removeEventListener("mouseover", t), e.removeEventListener("mouseout", n);
|
|
230
254
|
});
|
|
231
255
|
});
|
|
232
|
-
let [
|
|
256
|
+
let [K, q] = g([]), [oe, se] = g(0), [ce, J] = g(!1), Y = h(() => S() ? l.data : K()), le = h(() => S() ? l.total ?? Y().length : oe()), X = h(() => S() ? l.loading ?? !1 : ce()), Z = (e, t, n) => ({
|
|
233
257
|
page: e,
|
|
234
258
|
pageSize: t,
|
|
235
259
|
sorting: n
|
|
236
260
|
}), Q = 0, $ = async (e, t) => {
|
|
237
|
-
if (
|
|
238
|
-
|
|
261
|
+
if (S()) {
|
|
262
|
+
c.onSearch(e, t);
|
|
239
263
|
return;
|
|
240
264
|
}
|
|
241
265
|
let n = ++Q;
|
|
242
266
|
J(!0);
|
|
243
267
|
try {
|
|
244
|
-
let r = await
|
|
268
|
+
let r = await c.onSearch(e, t);
|
|
245
269
|
if (n !== Q) return;
|
|
246
|
-
|
|
270
|
+
q(r.data), se(r.total);
|
|
247
271
|
} catch (e) {
|
|
248
272
|
if (n !== Q) return;
|
|
249
|
-
|
|
273
|
+
c.onError?.(e);
|
|
250
274
|
} finally {
|
|
251
275
|
n === Q && J(!1);
|
|
252
276
|
}
|
|
253
277
|
};
|
|
254
|
-
|
|
255
|
-
|
|
278
|
+
y(() => {
|
|
279
|
+
S() || $(O(), Z(A(), M(), P()));
|
|
256
280
|
});
|
|
257
|
-
let
|
|
258
|
-
|
|
259
|
-
},
|
|
260
|
-
let e = Object.fromEntries(
|
|
261
|
-
|
|
262
|
-
}, de = (e) => {
|
|
263
|
-
e !== j() && (M(e), c.onPageChange?.(e), $(k(), Z(e, N(), F())));
|
|
281
|
+
let ue = (e) => {
|
|
282
|
+
k(() => e), j(1), $(e, Z(1, M(), P()));
|
|
283
|
+
}, de = () => {
|
|
284
|
+
let e = Object.fromEntries(d().map((e) => [e.name, void 0]));
|
|
285
|
+
D(() => e), k(() => e), j(1), $(e, Z(1, M(), P()));
|
|
264
286
|
}, fe = (e) => {
|
|
265
|
-
e !==
|
|
287
|
+
e !== A() && (j(e), l.onPageChange?.(e), $(O(), Z(e, M(), P())));
|
|
266
288
|
}, pe = (e) => {
|
|
267
|
-
|
|
289
|
+
e !== M() && (N(e), j(1), l.onPageSizeChange?.(e), $(O(), Z(1, e, P())));
|
|
290
|
+
}, me = (e) => {
|
|
291
|
+
V(e), l.onSortingChange?.(e), j(1), $(O(), Z(1, M(), e));
|
|
268
292
|
};
|
|
269
293
|
return (() => {
|
|
270
|
-
var
|
|
271
|
-
return typeof
|
|
294
|
+
var t = L(), p = U;
|
|
295
|
+
return typeof p == "function" ? f(p, t) : U = t, s(t, a(m, {
|
|
272
296
|
get when() {
|
|
273
|
-
return
|
|
297
|
+
return d().length > 0;
|
|
274
298
|
},
|
|
275
299
|
get children() {
|
|
276
|
-
var
|
|
277
|
-
return
|
|
300
|
+
var t = F();
|
|
301
|
+
return s(t, a(n, {
|
|
278
302
|
get fields() {
|
|
279
|
-
return
|
|
303
|
+
return x();
|
|
280
304
|
},
|
|
281
|
-
onSubmit: ({ value: e }) =>
|
|
305
|
+
onSubmit: ({ value: e }) => ue(e),
|
|
282
306
|
get onValuesChange() {
|
|
283
|
-
return
|
|
307
|
+
return l.onSearchValuesChange;
|
|
284
308
|
},
|
|
285
309
|
get values() {
|
|
286
|
-
return
|
|
310
|
+
return E();
|
|
287
311
|
},
|
|
288
|
-
children: () =>
|
|
312
|
+
children: () => a(m, {
|
|
289
313
|
get when() {
|
|
290
|
-
return
|
|
314
|
+
return l.showSearchActions;
|
|
291
315
|
},
|
|
292
316
|
get children() {
|
|
293
|
-
var t =
|
|
294
|
-
return
|
|
317
|
+
var t = R();
|
|
318
|
+
return s(t, a(e, {
|
|
295
319
|
"aria-label": "重置",
|
|
296
320
|
class: "van-btn-icon-only",
|
|
297
321
|
get disabled() {
|
|
298
322
|
return X();
|
|
299
323
|
},
|
|
300
|
-
onClick:
|
|
324
|
+
onClick: de,
|
|
301
325
|
variant: "outline",
|
|
302
326
|
get children() {
|
|
303
|
-
return
|
|
327
|
+
return a(B, {});
|
|
304
328
|
}
|
|
305
|
-
}), null),
|
|
329
|
+
}), null), s(t, a(e, {
|
|
306
330
|
get disabled() {
|
|
307
331
|
return X();
|
|
308
332
|
},
|
|
@@ -311,73 +335,73 @@ function B(s) {
|
|
|
311
335
|
}), null), t;
|
|
312
336
|
}
|
|
313
337
|
})
|
|
314
|
-
})),
|
|
338
|
+
})), t;
|
|
315
339
|
}
|
|
316
|
-
}), null),
|
|
340
|
+
}), null), s(t, a(m, {
|
|
317
341
|
get when() {
|
|
318
|
-
return
|
|
342
|
+
return l.children;
|
|
319
343
|
},
|
|
320
344
|
get children() {
|
|
321
|
-
var e =
|
|
322
|
-
return
|
|
345
|
+
var e = I();
|
|
346
|
+
return s(e, () => l.children), e;
|
|
323
347
|
}
|
|
324
|
-
}), null),
|
|
348
|
+
}), null), s(t, a(r, {
|
|
325
349
|
get columns() {
|
|
326
|
-
return
|
|
350
|
+
return H();
|
|
327
351
|
},
|
|
328
352
|
get data() {
|
|
329
353
|
return Y();
|
|
330
354
|
},
|
|
331
355
|
get emptyText() {
|
|
332
|
-
return
|
|
356
|
+
return l.emptyText;
|
|
333
357
|
},
|
|
334
358
|
get loading() {
|
|
335
359
|
return X();
|
|
336
360
|
},
|
|
337
361
|
get onRowClick() {
|
|
338
|
-
return
|
|
362
|
+
return l.onRowClick;
|
|
339
363
|
},
|
|
340
364
|
get onSelectionChange() {
|
|
341
|
-
return
|
|
365
|
+
return l.onSelectionChange;
|
|
342
366
|
},
|
|
343
|
-
onSortingChange:
|
|
367
|
+
onSortingChange: me,
|
|
344
368
|
get rowId() {
|
|
345
|
-
return
|
|
369
|
+
return l.rowId;
|
|
346
370
|
},
|
|
347
371
|
get selectable() {
|
|
348
|
-
return
|
|
372
|
+
return w();
|
|
349
373
|
},
|
|
350
374
|
get selectedRowIds() {
|
|
351
|
-
return
|
|
375
|
+
return l.selectedRowIds;
|
|
352
376
|
}
|
|
353
|
-
}), null),
|
|
377
|
+
}), null), s(t, a(ie, {
|
|
354
378
|
get count() {
|
|
355
|
-
return
|
|
379
|
+
return le();
|
|
356
380
|
},
|
|
357
|
-
onPageChange:
|
|
358
|
-
onPageSizeChange:
|
|
381
|
+
onPageChange: fe,
|
|
382
|
+
onPageSizeChange: pe,
|
|
359
383
|
get page() {
|
|
360
|
-
return
|
|
384
|
+
return A();
|
|
361
385
|
},
|
|
362
386
|
get pageSize() {
|
|
363
|
-
return
|
|
387
|
+
return M();
|
|
364
388
|
}
|
|
365
|
-
}), null),
|
|
389
|
+
}), null), s(t, a(m, {
|
|
366
390
|
get when() {
|
|
367
|
-
return
|
|
391
|
+
return W();
|
|
368
392
|
},
|
|
369
393
|
children: (e) => (() => {
|
|
370
|
-
var t =
|
|
371
|
-
return
|
|
394
|
+
var t = z();
|
|
395
|
+
return s(t, () => e().text), o((n) => {
|
|
372
396
|
var r = `${e().left}px`, i = `${e().top}px`;
|
|
373
|
-
return r !== n.e &&
|
|
397
|
+
return r !== n.e && u(t, "left", n.e = r), i !== n.t && u(t, "top", n.t = i), n;
|
|
374
398
|
}, {
|
|
375
399
|
e: void 0,
|
|
376
400
|
t: void 0
|
|
377
401
|
}), t;
|
|
378
402
|
})()
|
|
379
|
-
}), null),
|
|
403
|
+
}), null), o(() => i(t, `van-data-table ${c.className ?? ""}`)), t;
|
|
380
404
|
})();
|
|
381
405
|
}
|
|
382
406
|
//#endregion
|
|
383
|
-
export {
|
|
407
|
+
export { V as DataTable };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ColumnDef, SortingState } from '@tanstack/solid-table';
|
|
2
2
|
import { JSX } from 'solid-js';
|
|
3
|
+
import { BadgeVariant } from '../badge';
|
|
3
4
|
import { ButtonVariant } from '../button';
|
|
4
5
|
import { FieldConfig } from '../form/type';
|
|
5
6
|
/** onSearch 的返回值:当前页数据与总条数 */
|
|
@@ -24,15 +25,24 @@ export interface DataTableAction<TData> {
|
|
|
24
25
|
/** 是否显示该按钮,默认 true;可为函数(按行判断,读取信号时响应式更新) */
|
|
25
26
|
show?: ((row: TData) => boolean) | boolean;
|
|
26
27
|
}
|
|
28
|
+
/** type="badge" 列的徽标配置:变种 + 展示值 */
|
|
29
|
+
export interface DataTableBadgeConfig {
|
|
30
|
+
/** 徽标变种(Badge 组件 variant) */
|
|
31
|
+
variant: BadgeVariant;
|
|
32
|
+
/** 展示文本 */
|
|
33
|
+
value: string;
|
|
34
|
+
}
|
|
27
35
|
type UnionToIntersection<T> = (T extends unknown ? (arg: T) => void : never) extends (arg: infer I) => void ? I : never;
|
|
28
36
|
/** DataTable 扩展的列类型:包含 ColumnDef 全部属性,另加 type / actions 扩展 */
|
|
29
37
|
export type DataTableColumnDef<TData> = {
|
|
30
38
|
/** type="action" 时的操作按钮配置;未提供则忽略该列 */
|
|
31
39
|
actions?: DataTableAction<TData>[];
|
|
40
|
+
/** type="badge" 时的徽标配置:静态对象或按行函数 `(row) => { variant, value }`;未提供则忽略该列 */
|
|
41
|
+
badge?: ((row: TData) => DataTableBadgeConfig) | DataTableBadgeConfig;
|
|
32
42
|
/** 单元格超长省略显示,hover 展示完整内容;需同时设置 ColumnDef 的 size 列宽,否则不生效 */
|
|
33
43
|
ellipsis?: boolean;
|
|
34
44
|
/** 特殊列类型:index=序号列;date/dateTime/shortDateTime=时间戳格式化列;action=操作按钮列 */
|
|
35
|
-
type?: "action" | "date" | "dateTime" | "index" | "shortDateTime";
|
|
45
|
+
type?: "action" | "badge" | "date" | "dateTime" | "index" | "shortDateTime";
|
|
36
46
|
} & Partial<UnionToIntersection<ColumnDef<TData>>>;
|
|
37
47
|
/** 取数函数:接收表单值与查询参数,返回当前页数据与总条数 */
|
|
38
48
|
export type DataTableSearchHandler<TData, TSearch> = (values: TSearch, query: DataTableQuery) => DataTableResult<TData> | Promise<DataTableResult<TData>> | undefined;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vanstack/solid-ark",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.16",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -71,10 +71,10 @@
|
|
|
71
71
|
"vite-plugin-solid": "^2.11.0",
|
|
72
72
|
"vitest": "^4.1.10",
|
|
73
73
|
"zod": "^4.4.0",
|
|
74
|
-
"@vanstack/vite-config": "0.0.2",
|
|
75
|
-
"@vanstack/eslint-config": "0.0.1",
|
|
76
74
|
"@vanstack/tsconfig": "0.0.1",
|
|
77
|
-
"@vanstack/
|
|
75
|
+
"@vanstack/eslint-config": "0.0.1",
|
|
76
|
+
"@vanstack/prettier-config": "0.0.1",
|
|
77
|
+
"@vanstack/vite-config": "0.0.2"
|
|
78
78
|
},
|
|
79
79
|
"scripts": {
|
|
80
80
|
"build": "tsc --noEmit && vite build",
|