@vanstack/solid-ark 0.0.14 → 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 +163 -130
- package/dist/data-table/type.d.ts +13 -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 {
|
|
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";
|
|
8
9
|
import { Pagination as x } from "@ark-ui/solid/pagination";
|
|
9
10
|
//#region src/data-table/EllipsisCell.tsx
|
|
10
|
-
var S = /*#__PURE__*/
|
|
11
|
+
var S = /*#__PURE__*/ d("<span class=van-data-table-ellipsis>");
|
|
11
12
|
function C(e) {
|
|
12
13
|
let t;
|
|
13
14
|
return y(() => {
|
|
14
15
|
t && t.scrollWidth > t.clientWidth && (t.dataset.ellipsis = "true", t.dataset.text = e.text);
|
|
15
16
|
}), (() => {
|
|
16
17
|
var n = S(), r = t;
|
|
17
|
-
return typeof r == "function" ?
|
|
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 w = /*#__PURE__*/
|
|
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>共 <!> 条");
|
|
23
24
|
function M(e) {
|
|
24
25
|
return (() => {
|
|
25
26
|
var t = w(), n = t.firstChild;
|
|
26
|
-
return
|
|
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
30
|
function N(e) {
|
|
30
31
|
return (() => {
|
|
31
32
|
var t = T();
|
|
32
|
-
return
|
|
33
|
-
var t =
|
|
33
|
+
return s(t, (() => {
|
|
34
|
+
var t = c(() => e.direction === "left");
|
|
34
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 = j(), r = n.firstChild,
|
|
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
|
},
|
|
@@ -59,21 +60,21 @@ function re(e) {
|
|
|
59
60
|
translations: { rootLabel: "分页" },
|
|
60
61
|
get children() {
|
|
61
62
|
var e = A();
|
|
62
|
-
return
|
|
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 re(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 re(e) {
|
|
|
108
109
|
}
|
|
109
110
|
//#endregion
|
|
110
111
|
//#region src/data-table/DataTable.tsx
|
|
111
|
-
var P = /*#__PURE__*/
|
|
112
|
-
function
|
|
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() {
|
|
113
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
|
-
}))), S = h(() =>
|
|
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,43 +140,52 @@ 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
|
-
n.
|
|
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({
|
|
165
168
|
id: "__actions__",
|
|
166
169
|
header: t.header ?? "操作",
|
|
167
170
|
enableSorting: !1,
|
|
168
171
|
cell: ({ row: t }) => (() => {
|
|
169
|
-
var n =
|
|
170
|
-
return
|
|
171
|
-
each:
|
|
172
|
-
children: (n) =>
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
return n.variant ?? "outline";
|
|
172
|
+
var n = ae();
|
|
173
|
+
return s(n, a(p, {
|
|
174
|
+
each: r,
|
|
175
|
+
children: (n) => a(m, {
|
|
176
|
+
get when() {
|
|
177
|
+
return T(n, t.original);
|
|
176
178
|
},
|
|
177
179
|
get children() {
|
|
178
|
-
return
|
|
180
|
+
return a(e, {
|
|
181
|
+
onClick: () => n.onClick(t.original),
|
|
182
|
+
get variant() {
|
|
183
|
+
return n.variant ?? "outline";
|
|
184
|
+
},
|
|
185
|
+
get children() {
|
|
186
|
+
return n.label;
|
|
187
|
+
}
|
|
188
|
+
});
|
|
179
189
|
}
|
|
180
190
|
})
|
|
181
191
|
})), n;
|
|
@@ -183,12 +193,35 @@ function B(s) {
|
|
|
183
193
|
});
|
|
184
194
|
continue;
|
|
185
195
|
}
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
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, {
|
|
192
225
|
get text() {
|
|
193
226
|
return String(t.getValue() ?? "");
|
|
194
227
|
},
|
|
@@ -197,103 +230,103 @@ function B(s) {
|
|
|
197
230
|
});
|
|
198
231
|
continue;
|
|
199
232
|
}
|
|
200
|
-
|
|
233
|
+
i.push(o);
|
|
201
234
|
}
|
|
202
|
-
return
|
|
203
|
-
}),
|
|
235
|
+
return i;
|
|
236
|
+
}), U, [W, G] = g(null);
|
|
204
237
|
y(() => {
|
|
205
|
-
let e =
|
|
238
|
+
let e = U;
|
|
206
239
|
if (!e) return;
|
|
207
240
|
let t = (e) => {
|
|
208
241
|
let t = e.target.closest(".van-data-table-ellipsis[data-ellipsis]");
|
|
209
242
|
if (!t) return;
|
|
210
243
|
let n = t.getBoundingClientRect();
|
|
211
|
-
|
|
244
|
+
G({
|
|
212
245
|
left: n.left,
|
|
213
246
|
text: t.dataset.text ?? "",
|
|
214
247
|
top: n.bottom + 6
|
|
215
248
|
});
|
|
216
249
|
}, n = (e) => {
|
|
217
|
-
e.relatedTarget?.closest?.(".van-data-table-ellipsis[data-ellipsis]") ||
|
|
250
|
+
e.relatedTarget?.closest?.(".van-data-table-ellipsis[data-ellipsis]") || G(null);
|
|
218
251
|
};
|
|
219
|
-
e.addEventListener("mouseover", t), e.addEventListener("mouseout", n),
|
|
252
|
+
e.addEventListener("mouseover", t), e.addEventListener("mouseout", n), v(() => {
|
|
220
253
|
e.removeEventListener("mouseover", t), e.removeEventListener("mouseout", n);
|
|
221
254
|
});
|
|
222
255
|
});
|
|
223
|
-
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) => ({
|
|
224
257
|
page: e,
|
|
225
258
|
pageSize: t,
|
|
226
259
|
sorting: n
|
|
227
260
|
}), Q = 0, $ = async (e, t) => {
|
|
228
261
|
if (S()) {
|
|
229
|
-
|
|
262
|
+
c.onSearch(e, t);
|
|
230
263
|
return;
|
|
231
264
|
}
|
|
232
265
|
let n = ++Q;
|
|
233
266
|
J(!0);
|
|
234
267
|
try {
|
|
235
|
-
let r = await
|
|
268
|
+
let r = await c.onSearch(e, t);
|
|
236
269
|
if (n !== Q) return;
|
|
237
|
-
|
|
270
|
+
q(r.data), se(r.total);
|
|
238
271
|
} catch (e) {
|
|
239
272
|
if (n !== Q) return;
|
|
240
|
-
|
|
273
|
+
c.onError?.(e);
|
|
241
274
|
} finally {
|
|
242
275
|
n === Q && J(!1);
|
|
243
276
|
}
|
|
244
277
|
};
|
|
245
278
|
y(() => {
|
|
246
|
-
S() || $(
|
|
279
|
+
S() || $(O(), Z(A(), M(), P()));
|
|
247
280
|
});
|
|
248
|
-
let
|
|
249
|
-
|
|
250
|
-
},
|
|
251
|
-
let e = Object.fromEntries(
|
|
252
|
-
|
|
253
|
-
}, ue = (e) => {
|
|
254
|
-
e !== k() && (A(e), c.onPageChange?.(e), $(D(), Z(e, j(), N())));
|
|
255
|
-
}, de = (e) => {
|
|
256
|
-
e !== j() && (M(e), A(1), c.onPageSizeChange?.(e), $(D(), Z(1, e, N())));
|
|
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()));
|
|
257
286
|
}, fe = (e) => {
|
|
258
|
-
|
|
287
|
+
e !== A() && (j(e), l.onPageChange?.(e), $(O(), Z(e, M(), P())));
|
|
288
|
+
}, pe = (e) => {
|
|
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));
|
|
259
292
|
};
|
|
260
293
|
return (() => {
|
|
261
|
-
var
|
|
262
|
-
return typeof
|
|
294
|
+
var t = L(), p = U;
|
|
295
|
+
return typeof p == "function" ? f(p, t) : U = t, s(t, a(m, {
|
|
263
296
|
get when() {
|
|
264
|
-
return
|
|
297
|
+
return d().length > 0;
|
|
265
298
|
},
|
|
266
299
|
get children() {
|
|
267
|
-
var
|
|
268
|
-
return
|
|
300
|
+
var t = F();
|
|
301
|
+
return s(t, a(n, {
|
|
269
302
|
get fields() {
|
|
270
303
|
return x();
|
|
271
304
|
},
|
|
272
|
-
onSubmit: ({ value: e }) =>
|
|
305
|
+
onSubmit: ({ value: e }) => ue(e),
|
|
273
306
|
get onValuesChange() {
|
|
274
|
-
return
|
|
307
|
+
return l.onSearchValuesChange;
|
|
275
308
|
},
|
|
276
309
|
get values() {
|
|
277
|
-
return
|
|
310
|
+
return E();
|
|
278
311
|
},
|
|
279
|
-
children: () =>
|
|
312
|
+
children: () => a(m, {
|
|
280
313
|
get when() {
|
|
281
|
-
return
|
|
314
|
+
return l.showSearchActions;
|
|
282
315
|
},
|
|
283
316
|
get children() {
|
|
284
|
-
var t =
|
|
285
|
-
return
|
|
317
|
+
var t = R();
|
|
318
|
+
return s(t, a(e, {
|
|
286
319
|
"aria-label": "重置",
|
|
287
320
|
class: "van-btn-icon-only",
|
|
288
321
|
get disabled() {
|
|
289
322
|
return X();
|
|
290
323
|
},
|
|
291
|
-
onClick:
|
|
324
|
+
onClick: de,
|
|
292
325
|
variant: "outline",
|
|
293
326
|
get children() {
|
|
294
|
-
return
|
|
327
|
+
return a(B, {});
|
|
295
328
|
}
|
|
296
|
-
}), null),
|
|
329
|
+
}), null), s(t, a(e, {
|
|
297
330
|
get disabled() {
|
|
298
331
|
return X();
|
|
299
332
|
},
|
|
@@ -302,73 +335,73 @@ function B(s) {
|
|
|
302
335
|
}), null), t;
|
|
303
336
|
}
|
|
304
337
|
})
|
|
305
|
-
})),
|
|
338
|
+
})), t;
|
|
306
339
|
}
|
|
307
|
-
}), null),
|
|
340
|
+
}), null), s(t, a(m, {
|
|
308
341
|
get when() {
|
|
309
|
-
return
|
|
342
|
+
return l.children;
|
|
310
343
|
},
|
|
311
344
|
get children() {
|
|
312
|
-
var e =
|
|
313
|
-
return
|
|
345
|
+
var e = I();
|
|
346
|
+
return s(e, () => l.children), e;
|
|
314
347
|
}
|
|
315
|
-
}), null),
|
|
348
|
+
}), null), s(t, a(r, {
|
|
316
349
|
get columns() {
|
|
317
|
-
return
|
|
350
|
+
return H();
|
|
318
351
|
},
|
|
319
352
|
get data() {
|
|
320
353
|
return Y();
|
|
321
354
|
},
|
|
322
355
|
get emptyText() {
|
|
323
|
-
return
|
|
356
|
+
return l.emptyText;
|
|
324
357
|
},
|
|
325
358
|
get loading() {
|
|
326
359
|
return X();
|
|
327
360
|
},
|
|
328
361
|
get onRowClick() {
|
|
329
|
-
return
|
|
362
|
+
return l.onRowClick;
|
|
330
363
|
},
|
|
331
364
|
get onSelectionChange() {
|
|
332
|
-
return
|
|
365
|
+
return l.onSelectionChange;
|
|
333
366
|
},
|
|
334
|
-
onSortingChange:
|
|
367
|
+
onSortingChange: me,
|
|
335
368
|
get rowId() {
|
|
336
|
-
return
|
|
369
|
+
return l.rowId;
|
|
337
370
|
},
|
|
338
371
|
get selectable() {
|
|
339
372
|
return w();
|
|
340
373
|
},
|
|
341
374
|
get selectedRowIds() {
|
|
342
|
-
return
|
|
375
|
+
return l.selectedRowIds;
|
|
343
376
|
}
|
|
344
|
-
}), null),
|
|
377
|
+
}), null), s(t, a(ie, {
|
|
345
378
|
get count() {
|
|
346
|
-
return
|
|
379
|
+
return le();
|
|
347
380
|
},
|
|
348
|
-
onPageChange:
|
|
349
|
-
onPageSizeChange:
|
|
381
|
+
onPageChange: fe,
|
|
382
|
+
onPageSizeChange: pe,
|
|
350
383
|
get page() {
|
|
351
|
-
return
|
|
384
|
+
return A();
|
|
352
385
|
},
|
|
353
386
|
get pageSize() {
|
|
354
|
-
return
|
|
387
|
+
return M();
|
|
355
388
|
}
|
|
356
|
-
}), null),
|
|
389
|
+
}), null), s(t, a(m, {
|
|
357
390
|
get when() {
|
|
358
|
-
return
|
|
391
|
+
return W();
|
|
359
392
|
},
|
|
360
393
|
children: (e) => (() => {
|
|
361
|
-
var t =
|
|
362
|
-
return
|
|
394
|
+
var t = z();
|
|
395
|
+
return s(t, () => e().text), o((n) => {
|
|
363
396
|
var r = `${e().left}px`, i = `${e().top}px`;
|
|
364
|
-
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;
|
|
365
398
|
}, {
|
|
366
399
|
e: void 0,
|
|
367
400
|
t: void 0
|
|
368
401
|
}), t;
|
|
369
402
|
})()
|
|
370
|
-
}), null),
|
|
403
|
+
}), null), o(() => i(t, `van-data-table ${c.className ?? ""}`)), t;
|
|
371
404
|
})();
|
|
372
405
|
}
|
|
373
406
|
//#endregion
|
|
374
|
-
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 的返回值:当前页数据与总条数 */
|
|
@@ -21,16 +22,27 @@ export interface DataTableAction<TData> {
|
|
|
21
22
|
onClick: (row: TData) => void;
|
|
22
23
|
/** 按钮变体,默认 "outline" */
|
|
23
24
|
variant?: ButtonVariant;
|
|
25
|
+
/** 是否显示该按钮,默认 true;可为函数(按行判断,读取信号时响应式更新) */
|
|
26
|
+
show?: ((row: TData) => boolean) | boolean;
|
|
27
|
+
}
|
|
28
|
+
/** type="badge" 列的徽标配置:变种 + 展示值 */
|
|
29
|
+
export interface DataTableBadgeConfig {
|
|
30
|
+
/** 徽标变种(Badge 组件 variant) */
|
|
31
|
+
variant: BadgeVariant;
|
|
32
|
+
/** 展示文本 */
|
|
33
|
+
value: string;
|
|
24
34
|
}
|
|
25
35
|
type UnionToIntersection<T> = (T extends unknown ? (arg: T) => void : never) extends (arg: infer I) => void ? I : never;
|
|
26
36
|
/** DataTable 扩展的列类型:包含 ColumnDef 全部属性,另加 type / actions 扩展 */
|
|
27
37
|
export type DataTableColumnDef<TData> = {
|
|
28
38
|
/** type="action" 时的操作按钮配置;未提供则忽略该列 */
|
|
29
39
|
actions?: DataTableAction<TData>[];
|
|
40
|
+
/** type="badge" 时的徽标配置:静态对象或按行函数 `(row) => { variant, value }`;未提供则忽略该列 */
|
|
41
|
+
badge?: ((row: TData) => DataTableBadgeConfig) | DataTableBadgeConfig;
|
|
30
42
|
/** 单元格超长省略显示,hover 展示完整内容;需同时设置 ColumnDef 的 size 列宽,否则不生效 */
|
|
31
43
|
ellipsis?: boolean;
|
|
32
44
|
/** 特殊列类型:index=序号列;date/dateTime/shortDateTime=时间戳格式化列;action=操作按钮列 */
|
|
33
|
-
type?: "action" | "date" | "dateTime" | "index" | "shortDateTime";
|
|
45
|
+
type?: "action" | "badge" | "date" | "dateTime" | "index" | "shortDateTime";
|
|
34
46
|
} & Partial<UnionToIntersection<ColumnDef<TData>>>;
|
|
35
47
|
/** 取数函数:接收表单值与查询参数,返回当前页数据与总条数 */
|
|
36
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/
|
|
74
|
+
"@vanstack/tsconfig": "0.0.1",
|
|
75
75
|
"@vanstack/eslint-config": "0.0.1",
|
|
76
|
-
"@vanstack/
|
|
77
|
-
"@vanstack/
|
|
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",
|