@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.
@@ -1,17 +1,3 @@
1
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 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 "../form-IwL17HZI.js";
4
- import { t as n } from "../table-D3DgojFM.js";
5
- import { className as r, createComponent as i, effect as a, insert as o, memo as s, setAttribute as c, setStyleProperty as l, template as u, use as d } from "solid-js/web";
6
- import { For as f, Show as p, createEffect as m, createMemo as h, createSignal as g, mergeProps as _, on as v, onCleanup as y, onMount as b } from "solid-js";
7
- import { formatDate as ee, formatDateTime as x, formatShortDateTime as te } from "@vanstack/shared";
8
- import { Pagination as S } from "@ark-ui/solid/pagination";
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 C = /*#__PURE__*/ u("<span class=van-data-table-ellipsis>");
11
- function w(e) {
11
+ var S = /*#__PURE__*/ d("<span class=van-data-table-ellipsis>");
12
+ function C(e) {
12
13
  let t;
13
- return b(() => {
14
+ return y(() => {
14
15
  t && t.scrollWidth > t.clientWidth && (t.dataset.ellipsis = "true", t.dataset.text = e.text);
15
16
  }), (() => {
16
- var n = C(), r = t;
17
- return typeof r == "function" ? d(r, n) : t = n, o(n, () => e.children), n;
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 T = /*#__PURE__*/ u("<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>"), E = /*#__PURE__*/ u("<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\">"), D = /*#__PURE__*/ u("<svg><path d=\"M11 6l-6 6 6 6\"></svg>", !1, !0, !1), O = /*#__PURE__*/ u("<svg><path d=\"M18 6l-6 6 6 6\"></svg>", !1, !0, !1), k = /*#__PURE__*/ u("<svg><path d=\"M13 6l6 6-6 6\"></svg>", !1, !0, !1), A = /*#__PURE__*/ u("<svg><path d=\"M6 6l6 6-6 6\"></svg>", !1, !0, !1), j = /*#__PURE__*/ u("<div class=van-data-table-pagination-buttons>"), M = /*#__PURE__*/ u("<div class=van-data-table-pagination><span class=van-data-table-pagination-info>共 <!> 条");
23
- function N(e) {
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 = T(), n = t.firstChild;
26
- return a(() => c(n, "d", e.direction === "left" ? "M15 6l-6 6 6 6" : "M9 6l6 6-6 6")), t;
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 P(e) {
30
+ function N(e) {
30
31
  return (() => {
31
- var t = E();
32
- return o(t, (() => {
33
- var t = s(() => e.direction === "left");
34
- return () => t() ? [D(), O()] : [k(), A()];
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 ne(e) {
39
+ function ie(e) {
39
40
  let t = () => Math.max(1, Math.ceil(e.count / e.pageSize));
40
41
  return (() => {
41
- var n = M(), r = n.firstChild, a = r.firstChild.nextSibling;
42
- return a.nextSibling, o(r, () => e.count, a), o(n, i(p, {
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 i(S.Root, {
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 = j();
62
- return o(e, i(S.FirstTrigger, {
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 i(P, { direction: "left" });
66
+ return a(N, { direction: "left" });
66
67
  }
67
- }), null), o(e, i(S.PrevTrigger, {
68
+ }), null), s(e, a(x.PrevTrigger, {
68
69
  class: "van-data-table-pagination-btn",
69
70
  get children() {
70
- return i(N, { direction: "left" });
71
+ return a(M, { direction: "left" });
71
72
  }
72
- }), null), o(e, i(S.Context, { children: (e) => i(f, {
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" ? i(S.Item, {
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
- }) : i(S.Ellipsis, {
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), o(e, i(S.NextTrigger, {
93
+ }) }), null), s(e, a(x.NextTrigger, {
93
94
  class: "van-data-table-pagination-btn",
94
95
  get children() {
95
- return i(N, { direction: "right" });
96
+ return a(M, { direction: "right" });
96
97
  }
97
- }), null), o(e, i(S.LastTrigger, {
98
+ }), null), s(e, a(x.LastTrigger, {
98
99
  class: "van-data-table-pagination-btn",
99
100
  get children() {
100
- return i(P, { direction: "right" });
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 F = /*#__PURE__*/ u("<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\">"), re = /*#__PURE__*/ u("<div class=van-data-table-actions>"), ie = /*#__PURE__*/ u("<div class=van-data-table-search>"), ae = /*#__PURE__*/ u("<div class=van-data-table-toolbar>"), I = /*#__PURE__*/ u("<div>"), L = /*#__PURE__*/ u("<div class=van-data-table-search-actions>"), R = /*#__PURE__*/ u("<div class=van-data-table-tooltip>");
112
- function z() {
113
- return F();
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 B(s) {
116
- let c = _({
116
+ function V(c) {
117
+ let l = te({
117
118
  defaultPage: 1,
118
119
  defaultPageSize: 10,
119
120
  emptyText: "暂无数据",
120
121
  showSearchActions: !0
121
- }, s), u = h(() => c.searchFields ?? []), S = h(() => u().map((e) => ({
122
+ }, c), d = h(() => l.searchFields ?? []), x = h(() => d().map((e) => ({
122
123
  ...e,
123
124
  label: void 0
124
- }))), C = h(() => c.data !== void 0), T = h(() => s.selectable ?? !!s.onSelectionChange), E = (e, t) => typeof e.show == "function" ? e.show(t) : e.show !== !1, [D, O] = g(c.searchValues ?? {}), [k, A] = g(c.searchValues ?? {});
125
- m(v(() => c.searchValues, (e) => {
126
- e && O(() => 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 [j, M] = g(c.defaultPage), [N, P] = g(c.defaultPageSize), [F, B] = g([]), V = h(() => {
129
- let t = 0, n = [];
130
- for (let r of c.columns) {
131
- let a = r.type;
132
- if (a === "index") {
133
- if (t += 1, t > 1) throw Error("[solid-ark] DataTable columns 只允许一个 type=\"index\" 列");
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
- ...r,
143
- cell: ({ row: e }) => (j() - 1) * N() + e.index + 1
143
+ ...o,
144
+ cell: ({ row: e }) => (A() - 1) * M() + e.index + 1
144
145
  };
145
- n.push(e);
146
+ i.push(e);
146
147
  continue;
147
148
  }
148
- if (a === "date" || a === "dateTime" || a === "shortDateTime") {
149
- let e = r;
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, i = e.type === "date" ? ee : e.type === "dateTime" ? x : te;
152
- n.push({
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) => i(e.getValue())
158
+ cell: (e) => n(e.getValue())
158
159
  });
159
160
  continue;
160
161
  }
161
- if (a === "action") {
162
- let t = r, a = t.actions ?? [];
163
- if (a.length === 0) continue;
164
- let s = a.some((e) => typeof e.show == "function") ? a : a.filter((e) => e.show !== !1);
165
- if (s.length === 0) continue;
166
- n.push({
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 = re();
172
- return o(n, i(f, {
173
- each: s,
174
- children: (n) => i(p, {
172
+ var n = ae();
173
+ return s(n, a(p, {
174
+ each: r,
175
+ children: (n) => a(m, {
175
176
  get when() {
176
- return E(n, t.original);
177
+ return T(n, t.original);
177
178
  },
178
179
  get children() {
179
- return i(e, {
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
- let s = r.ellipsis === !0, c = r.size;
196
- if (s && typeof c == "number") {
197
- let e = r.cell;
198
- n.push({
199
- ...r,
200
- cell: (t) => i(w, {
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
- n.push(r);
233
+ i.push(o);
210
234
  }
211
- return n;
212
- }), H, [U, W] = g(null);
213
- b(() => {
214
- let e = H;
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
- W({
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]") || W(null);
250
+ e.relatedTarget?.closest?.(".van-data-table-ellipsis[data-ellipsis]") || G(null);
227
251
  };
228
- e.addEventListener("mouseover", t), e.addEventListener("mouseout", n), y(() => {
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 [G, K] = g([]), [q, oe] = g(0), [se, J] = g(!1), Y = h(() => C() ? c.data : G()), ce = h(() => C() ? c.total ?? Y().length : q()), X = h(() => C() ? c.loading ?? !1 : se()), Z = (e, t, n) => ({
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 (C()) {
238
- s.onSearch(e, t);
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 s.onSearch(e, t);
268
+ let r = await c.onSearch(e, t);
245
269
  if (n !== Q) return;
246
- K(r.data), oe(r.total);
270
+ q(r.data), se(r.total);
247
271
  } catch (e) {
248
272
  if (n !== Q) return;
249
- s.onError?.(e);
273
+ c.onError?.(e);
250
274
  } finally {
251
275
  n === Q && J(!1);
252
276
  }
253
277
  };
254
- b(() => {
255
- C() || $(k(), Z(j(), N(), F()));
278
+ y(() => {
279
+ S() || $(O(), Z(A(), M(), P()));
256
280
  });
257
- let le = (e) => {
258
- A(() => e), M(1), $(e, Z(1, N(), F()));
259
- }, ue = () => {
260
- let e = Object.fromEntries(u().map((e) => [e.name, void 0]));
261
- O(() => e), A(() => e), M(1), $(e, Z(1, N(), F()));
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 !== N() && (P(e), M(1), c.onPageSizeChange?.(e), $(k(), Z(1, e, F())));
287
+ e !== A() && (j(e), l.onPageChange?.(e), $(O(), Z(e, M(), P())));
266
288
  }, pe = (e) => {
267
- B(e), c.onSortingChange?.(e), M(1), $(k(), Z(1, N(), 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));
268
292
  };
269
293
  return (() => {
270
- var f = I(), m = H;
271
- return typeof m == "function" ? d(m, f) : H = f, o(f, i(p, {
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 u().length > 0;
297
+ return d().length > 0;
274
298
  },
275
299
  get children() {
276
- var n = ie();
277
- return o(n, i(t, {
300
+ var t = F();
301
+ return s(t, a(n, {
278
302
  get fields() {
279
- return S();
303
+ return x();
280
304
  },
281
- onSubmit: ({ value: e }) => le(e),
305
+ onSubmit: ({ value: e }) => ue(e),
282
306
  get onValuesChange() {
283
- return c.onSearchValuesChange;
307
+ return l.onSearchValuesChange;
284
308
  },
285
309
  get values() {
286
- return D();
310
+ return E();
287
311
  },
288
- children: () => i(p, {
312
+ children: () => a(m, {
289
313
  get when() {
290
- return c.showSearchActions;
314
+ return l.showSearchActions;
291
315
  },
292
316
  get children() {
293
- var t = L();
294
- return o(t, i(e, {
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: ue,
324
+ onClick: de,
301
325
  variant: "outline",
302
326
  get children() {
303
- return i(z, {});
327
+ return a(B, {});
304
328
  }
305
- }), null), o(t, i(e, {
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
- })), n;
338
+ })), t;
315
339
  }
316
- }), null), o(f, i(p, {
340
+ }), null), s(t, a(m, {
317
341
  get when() {
318
- return c.children;
342
+ return l.children;
319
343
  },
320
344
  get children() {
321
- var e = ae();
322
- return o(e, () => c.children), e;
345
+ var e = I();
346
+ return s(e, () => l.children), e;
323
347
  }
324
- }), null), o(f, i(n, {
348
+ }), null), s(t, a(r, {
325
349
  get columns() {
326
- return V();
350
+ return H();
327
351
  },
328
352
  get data() {
329
353
  return Y();
330
354
  },
331
355
  get emptyText() {
332
- return c.emptyText;
356
+ return l.emptyText;
333
357
  },
334
358
  get loading() {
335
359
  return X();
336
360
  },
337
361
  get onRowClick() {
338
- return c.onRowClick;
362
+ return l.onRowClick;
339
363
  },
340
364
  get onSelectionChange() {
341
- return c.onSelectionChange;
365
+ return l.onSelectionChange;
342
366
  },
343
- onSortingChange: pe,
367
+ onSortingChange: me,
344
368
  get rowId() {
345
- return c.rowId;
369
+ return l.rowId;
346
370
  },
347
371
  get selectable() {
348
- return T();
372
+ return w();
349
373
  },
350
374
  get selectedRowIds() {
351
- return c.selectedRowIds;
375
+ return l.selectedRowIds;
352
376
  }
353
- }), null), o(f, i(ne, {
377
+ }), null), s(t, a(ie, {
354
378
  get count() {
355
- return ce();
379
+ return le();
356
380
  },
357
- onPageChange: de,
358
- onPageSizeChange: fe,
381
+ onPageChange: fe,
382
+ onPageSizeChange: pe,
359
383
  get page() {
360
- return j();
384
+ return A();
361
385
  },
362
386
  get pageSize() {
363
- return N();
387
+ return M();
364
388
  }
365
- }), null), o(f, i(p, {
389
+ }), null), s(t, a(m, {
366
390
  get when() {
367
- return U();
391
+ return W();
368
392
  },
369
393
  children: (e) => (() => {
370
- var t = R();
371
- return o(t, () => e().text), a((n) => {
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 && l(t, "left", n.e = r), i !== n.t && l(t, "top", n.t = i), n;
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), a(() => r(f, `van-data-table ${s.className ?? ""}`)), f;
403
+ }), null), o(() => i(t, `van-data-table ${c.className ?? ""}`)), t;
380
404
  })();
381
405
  }
382
406
  //#endregion
383
- export { B as DataTable };
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.15",
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/prettier-config": "0.0.1"
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",