@vanstack/solid-ark 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/FormDatePicker-BWrGST8J.js +433 -0
- package/dist/FormSelect-Dex9R5TZ.js +92 -0
- package/dist/button/Button.d.ts +10 -0
- package/dist/button/index.d.ts +2 -0
- package/dist/button/index.mjs +2 -0
- package/dist/button-C9xYlZbo.js +44 -0
- package/dist/data-table/DataTable.d.ts +2 -0
- package/dist/data-table/Pagination.d.ts +9 -0
- package/dist/data-table/index.d.ts +4 -0
- package/dist/data-table/index.mjs +251 -0
- package/dist/data-table/type.d.ts +59 -0
- package/dist/drawer/index.d.ts +2 -0
- package/dist/drawer/index.mjs +236 -0
- package/dist/drawer/manager.d.ts +9 -0
- package/dist/drawer/type.d.ts +34 -0
- package/dist/form/Form.d.ts +7 -0
- package/dist/form/components/FieldRenderer.d.ts +8 -0
- package/dist/form/components/FieldSkeleton.d.ts +1 -0
- package/dist/form/components/FormCheckbox.d.ts +6 -0
- package/dist/form/components/FormCheckboxGroup.d.ts +7 -0
- package/dist/form/components/FormDatePicker.d.ts +8 -0
- package/dist/form/components/FormInput.d.ts +7 -0
- package/dist/form/components/FormRadio.d.ts +7 -0
- package/dist/form/components/FormSelect.d.ts +8 -0
- package/dist/form/components/FormSwitch.d.ts +6 -0
- package/dist/form/components/FormTextarea.d.ts +7 -0
- package/dist/form/components/useDebouncedValue.d.ts +16 -0
- package/dist/form/components/utils.d.ts +6 -0
- package/dist/form/index.d.ts +2 -0
- package/dist/form/index.mjs +2 -0
- package/dist/form/type.d.ts +127 -0
- package/dist/form-TmnHhNkx.js +559 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.mjs +0 -0
- package/dist/modal/index.d.ts +2 -0
- package/dist/modal/index.mjs +239 -0
- package/dist/modal/manager.d.ts +10 -0
- package/dist/modal/type.d.ts +32 -0
- package/dist/solid-ark.css +2 -0
- package/dist/table/Table.d.ts +2 -0
- package/dist/table/index.d.ts +2 -0
- package/dist/table/index.mjs +2 -0
- package/dist/table/type.d.ts +23 -0
- package/dist/table-B88tYpbb.js +230 -0
- package/dist/toast/index.d.ts +9 -0
- package/dist/toast/index.mjs +81 -0
- package/package.json +91 -0
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
import { t as e } from "../button-C9xYlZbo.js";
|
|
2
|
+
import { Portal as t, createComponent as n, insert as r, memo as i, mergeProps as a, template as o } from "solid-js/web";
|
|
3
|
+
import { DialogBackdrop as s, DialogCloseTrigger as c, DialogContent as l, DialogDescription as u, DialogPositioner as d, DialogRootProvider as f, DialogTitle as p, useDialog as m } from "@ark-ui/solid/dialog";
|
|
4
|
+
import { For as h, Show as g, createSignal as _, onMount as v } from "solid-js";
|
|
5
|
+
//#region src/modal/manager.tsx
|
|
6
|
+
var y = /*#__PURE__*/ o("<div class=van-modal-header>"), b = /*#__PURE__*/ o("<div class=van-modal-body>"), x = /*#__PURE__*/ o("<footer class=van-modal-footer>"), [S, C] = _([]), w = (e) => new Promise((t) => {
|
|
7
|
+
let n = Math.random().toString(36).slice(2, 10);
|
|
8
|
+
C((r) => [...r, {
|
|
9
|
+
...e,
|
|
10
|
+
id: n,
|
|
11
|
+
resolve: t
|
|
12
|
+
}]);
|
|
13
|
+
}), T = (e) => C((t) => t.filter((t) => t.id !== e));
|
|
14
|
+
function E(...e) {
|
|
15
|
+
let t;
|
|
16
|
+
if (typeof e[0] == "function") {
|
|
17
|
+
let [r] = e;
|
|
18
|
+
if (e.length === 3) {
|
|
19
|
+
let i = r;
|
|
20
|
+
t = {
|
|
21
|
+
...e[2],
|
|
22
|
+
content: (t) => n(i, a(t, () => e[1]))
|
|
23
|
+
};
|
|
24
|
+
} else t = e.length === 2 ? {
|
|
25
|
+
...e[1],
|
|
26
|
+
content: r
|
|
27
|
+
} : { content: r };
|
|
28
|
+
} else t = e[0];
|
|
29
|
+
return w({
|
|
30
|
+
showCancel: !0,
|
|
31
|
+
showConfirm: !0,
|
|
32
|
+
confirmVariant: "primary",
|
|
33
|
+
...t
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
var D = {
|
|
37
|
+
open: E,
|
|
38
|
+
confirm: (e) => w({
|
|
39
|
+
...e,
|
|
40
|
+
confirmVariant: "danger",
|
|
41
|
+
showConfirm: !0,
|
|
42
|
+
showCancel: !1,
|
|
43
|
+
showClose: !1
|
|
44
|
+
})
|
|
45
|
+
};
|
|
46
|
+
function O() {
|
|
47
|
+
return n(h, {
|
|
48
|
+
get each() {
|
|
49
|
+
return S();
|
|
50
|
+
},
|
|
51
|
+
children: (e, t) => n(k, {
|
|
52
|
+
get index() {
|
|
53
|
+
return t();
|
|
54
|
+
},
|
|
55
|
+
item: e,
|
|
56
|
+
onPop: () => T(e.id)
|
|
57
|
+
})
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
function k(a) {
|
|
61
|
+
let [o, h] = _(!1), [S, C] = _(!1), w = null, T = null, E = !1, D = a.item.confirmVariant === "danger", O = m({
|
|
62
|
+
closeOnEscape: !D,
|
|
63
|
+
closeOnInteractOutside: !D,
|
|
64
|
+
role: D ? "alertdialog" : "dialog"
|
|
65
|
+
}), k = async (e, t) => {
|
|
66
|
+
try {
|
|
67
|
+
(!a.item.beforeClose || await a.item.beforeClose(e, t)) && (E = !0, a.item.resolve(e === "cancel" ? !1 : t ?? !0), O().setOpen(!1));
|
|
68
|
+
} catch (e) {
|
|
69
|
+
console.error("[solid-ark] handleBeforeClose error:", e);
|
|
70
|
+
}
|
|
71
|
+
}, j = async () => {
|
|
72
|
+
if (w) {
|
|
73
|
+
h(!0);
|
|
74
|
+
try {
|
|
75
|
+
await w(async (e) => k("confirm", e), () => h(!1));
|
|
76
|
+
} catch {
|
|
77
|
+
h(!1);
|
|
78
|
+
}
|
|
79
|
+
} else a.item.beforeClose && h(!0), await k("confirm"), a.item.beforeClose && h(!1);
|
|
80
|
+
}, M = async () => {
|
|
81
|
+
if (T) {
|
|
82
|
+
C(!0);
|
|
83
|
+
try {
|
|
84
|
+
await T(async (e) => k("cancel", e), () => C(!1));
|
|
85
|
+
} catch {
|
|
86
|
+
C(!1);
|
|
87
|
+
}
|
|
88
|
+
} else a.item.beforeClose && C(!0), await k("cancel"), a.item.beforeClose && C(!1);
|
|
89
|
+
}, N;
|
|
90
|
+
return v(() => {
|
|
91
|
+
O().setOpen(!0), N && (N.style.setProperty("--layer-index", String(a.index)), N.style.setProperty("--nested-layer-count", String(a.index)));
|
|
92
|
+
}), n(f, {
|
|
93
|
+
onExitComplete: () => {
|
|
94
|
+
E || a.item.resolve(!1), a.onPop();
|
|
95
|
+
},
|
|
96
|
+
unmountOnExit: !0,
|
|
97
|
+
value: O,
|
|
98
|
+
get children() {
|
|
99
|
+
return n(t, { get children() {
|
|
100
|
+
return [n(s, {
|
|
101
|
+
class: "van-modal-backdrop",
|
|
102
|
+
get style() {
|
|
103
|
+
return { "--z": 1e3 + a.index * 10 };
|
|
104
|
+
}
|
|
105
|
+
}), n(d, {
|
|
106
|
+
class: "van-modal-positioner",
|
|
107
|
+
get "data-center"() {
|
|
108
|
+
return a.item.center ? "" : void 0;
|
|
109
|
+
},
|
|
110
|
+
ref(e) {
|
|
111
|
+
var t = N;
|
|
112
|
+
typeof t == "function" ? t(e) : N = e;
|
|
113
|
+
},
|
|
114
|
+
get children() {
|
|
115
|
+
return n(l, {
|
|
116
|
+
class: "van-modal-content",
|
|
117
|
+
get "data-center"() {
|
|
118
|
+
return a.item.center ? "" : void 0;
|
|
119
|
+
},
|
|
120
|
+
get "data-has-nested"() {
|
|
121
|
+
return a.index > 0 ? "" : void 0;
|
|
122
|
+
},
|
|
123
|
+
get style() {
|
|
124
|
+
return i(() => !!a.item.width)() ? { width: a.item.width } : void 0;
|
|
125
|
+
},
|
|
126
|
+
get children() {
|
|
127
|
+
return [
|
|
128
|
+
n(g, {
|
|
129
|
+
get when() {
|
|
130
|
+
return a.item.title;
|
|
131
|
+
},
|
|
132
|
+
get children() {
|
|
133
|
+
var e = y();
|
|
134
|
+
return r(e, n(p, {
|
|
135
|
+
class: "van-modal-title",
|
|
136
|
+
get children() {
|
|
137
|
+
return a.item.title;
|
|
138
|
+
}
|
|
139
|
+
}), null), r(e, n(g, {
|
|
140
|
+
get when() {
|
|
141
|
+
return a.item.showClose;
|
|
142
|
+
},
|
|
143
|
+
get children() {
|
|
144
|
+
return n(c, {
|
|
145
|
+
class: "van-modal-close",
|
|
146
|
+
children: "✕"
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
}), null), e;
|
|
150
|
+
}
|
|
151
|
+
}),
|
|
152
|
+
n(g, {
|
|
153
|
+
get when() {
|
|
154
|
+
return a.item.description;
|
|
155
|
+
},
|
|
156
|
+
get children() {
|
|
157
|
+
return n(u, {
|
|
158
|
+
class: "van-modal-desc",
|
|
159
|
+
get children() {
|
|
160
|
+
return a.item.description;
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
}),
|
|
165
|
+
n(g, {
|
|
166
|
+
get when() {
|
|
167
|
+
return a.item.content;
|
|
168
|
+
},
|
|
169
|
+
get children() {
|
|
170
|
+
var e = b();
|
|
171
|
+
return r(e, () => a.item.content({
|
|
172
|
+
positive: (e) => {
|
|
173
|
+
w = e;
|
|
174
|
+
},
|
|
175
|
+
negative: (e) => {
|
|
176
|
+
T = e;
|
|
177
|
+
}
|
|
178
|
+
}, O)), e;
|
|
179
|
+
}
|
|
180
|
+
}),
|
|
181
|
+
n(g, {
|
|
182
|
+
get when() {
|
|
183
|
+
return a.item.showCancel || a.item.showConfirm;
|
|
184
|
+
},
|
|
185
|
+
get children() {
|
|
186
|
+
var t = x();
|
|
187
|
+
return r(t, n(g, {
|
|
188
|
+
get when() {
|
|
189
|
+
return a.item.showCancel;
|
|
190
|
+
},
|
|
191
|
+
get children() {
|
|
192
|
+
return n(e, {
|
|
193
|
+
get loading() {
|
|
194
|
+
return S();
|
|
195
|
+
},
|
|
196
|
+
onClick: M,
|
|
197
|
+
get variant() {
|
|
198
|
+
return A(a.item.cancelVariant);
|
|
199
|
+
},
|
|
200
|
+
get children() {
|
|
201
|
+
return a.item.cancelText ?? "取消";
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
}), null), r(t, n(g, {
|
|
206
|
+
get when() {
|
|
207
|
+
return a.item.showConfirm;
|
|
208
|
+
},
|
|
209
|
+
get children() {
|
|
210
|
+
return n(e, {
|
|
211
|
+
get loading() {
|
|
212
|
+
return o();
|
|
213
|
+
},
|
|
214
|
+
onClick: j,
|
|
215
|
+
get variant() {
|
|
216
|
+
return A(a.item.confirmVariant);
|
|
217
|
+
},
|
|
218
|
+
get children() {
|
|
219
|
+
return a.item.confirmText ?? "确定";
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
}), null), t;
|
|
224
|
+
}
|
|
225
|
+
})
|
|
226
|
+
];
|
|
227
|
+
}
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
})];
|
|
231
|
+
} });
|
|
232
|
+
}
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
function A(e) {
|
|
236
|
+
return e === "danger" ? "danger" : e === "outline" ? "outline" : e === "primary" ? "primary" : "ghost";
|
|
237
|
+
}
|
|
238
|
+
//#endregion
|
|
239
|
+
export { O as Modal, D as modal };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ConfirmOptions, OpenOptions } from './type';
|
|
2
|
+
declare function modalOpen(opts: OpenOptions): Promise<unknown>;
|
|
3
|
+
declare function modalOpen(component: any, contentProps: Record<string, any>, options: OpenOptions): Promise<unknown>;
|
|
4
|
+
declare function modalOpen(fn: any, options: OpenOptions): Promise<unknown>;
|
|
5
|
+
export declare const modal: {
|
|
6
|
+
open: typeof modalOpen;
|
|
7
|
+
confirm: (opts: ConfirmOptions) => Promise<unknown>;
|
|
8
|
+
};
|
|
9
|
+
export declare function Modal(): import("solid-js").JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { UseDialogReturn } from '@ark-ui/solid/dialog';
|
|
2
|
+
import { JSX } from 'solid-js';
|
|
3
|
+
export type Handler = (resolve: (payload?: any) => void, reject: () => void) => Promise<void> | void;
|
|
4
|
+
/** content 组件接收的 props */
|
|
5
|
+
export interface ModalContentProps {
|
|
6
|
+
positive: (handler: Handler) => void;
|
|
7
|
+
negative: (handler: Handler) => void;
|
|
8
|
+
}
|
|
9
|
+
export type ModalAction = "cancel" | "confirm";
|
|
10
|
+
export type OpenOptions = {
|
|
11
|
+
beforeClose?: (action: ModalAction, payload?: any) => boolean | Promise<boolean>;
|
|
12
|
+
cancelText?: string;
|
|
13
|
+
cancelVariant?: "danger" | "outline" | "primary";
|
|
14
|
+
/** 内容过高时设置弹窗居中,默认偏上 */
|
|
15
|
+
center?: boolean;
|
|
16
|
+
confirmText?: string;
|
|
17
|
+
confirmVariant?: "danger" | "outline" | "primary";
|
|
18
|
+
/** 闭包传参:content 只能是函数 */
|
|
19
|
+
content?: (props: ModalContentProps, dialog?: UseDialogReturn) => JSX.Element;
|
|
20
|
+
description?: string;
|
|
21
|
+
showCancel?: boolean;
|
|
22
|
+
showClose?: boolean;
|
|
23
|
+
showConfirm?: boolean;
|
|
24
|
+
title?: string;
|
|
25
|
+
/** 弹窗宽度,覆盖默认 480px,如 "640px" / "min(600px, 94vw)" */
|
|
26
|
+
width?: string;
|
|
27
|
+
};
|
|
28
|
+
export interface ModalStackItem extends OpenOptions {
|
|
29
|
+
id: string;
|
|
30
|
+
resolve: (value: unknown) => void;
|
|
31
|
+
}
|
|
32
|
+
export type ConfirmOptions = Omit<OpenOptions, "beforeClose" | "cancelVariant" | "confirmVariant" | "showCancel" | "showClose" | "showConfirm">;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
.van-btn{border-radius:var(--radius-lg,2px);white-space:nowrap;cursor:pointer;outline:none;justify-content:center;align-items:center;gap:6px;height:36px;padding:0 16px;font-size:14px;font-weight:500;transition:background .15s,border-color .15s,opacity .15s,box-shadow .15s;display:inline-flex}.van-btn:focus-visible{box-shadow:0 0 0 2px var(--ring,#3b82f666)}.van-btn:disabled{opacity:.5;cursor:not-allowed}.van-btn-sm{height:32px;padding:0 12px;font-size:13px}.van-btn-lg{height:40px;padding:0 20px}.van-btn-icon-only{width:36px;min-width:0;padding:0}.van-btn-icon-only.van-btn-sm{width:32px}.van-btn-icon-only.van-btn-lg{width:40px}.van-btn-primary{background:var(--primary,#3b82f6);color:var(--primary-foreground,#fff);border:none}.van-btn-primary:hover:not(:disabled){background:color-mix(in srgb, var(--primary,#3b82f6) 85%, black)}.van-btn-outline{color:var(--card-foreground,#171717);border:1px solid var(--border,#e5e5e5);background:0 0}.van-btn-outline:hover:not(:disabled){background:var(--muted,#f5f5f5)}.van-btn-ghost{color:var(--muted-foreground,#737373);background:0 0;border:none}.van-btn-ghost:hover:not(:disabled){color:var(--card-foreground,#171717)}.van-btn-danger{background:var(--destructive,#ef4444);color:var(--destructive-foreground,#fff);border:none}.van-btn-danger:hover:not(:disabled){background:color-mix(in srgb, var(--destructive,#ef4444) 85%, black)}.van-btn-success{background:var(--success,#16a34a);color:var(--success-foreground,#fff);border:none}.van-btn-success:hover:not(:disabled){background:color-mix(in srgb, var(--success,#16a34a) 85%, black)}.van-btn-warning{background:var(--warning,#d97706);color:var(--warning-foreground,#fff);border:none}.van-btn-warning:hover:not(:disabled){background:color-mix(in srgb, var(--warning,#d97706) 85%, black)}@keyframes van-btn-spin{to{transform:rotate(360deg)}}.van-btn-spinner-wrapper{flex-shrink:0;justify-content:flex-end;align-items:center;width:16px;height:16px;display:inline-flex}.van-btn-spinner{border:1.5px solid;border-right-color:#0000;border-radius:50%;width:12px;height:12px;animation:.6s linear infinite van-btn-spin;display:inline-block}.van-form-form{flex-direction:column;gap:16px;width:100%;display:flex}.van-form-field{flex-direction:column;gap:6px;display:flex}.van-form-label{color:var(--card-foreground,#171717);font-size:14px;font-weight:500}.van-form-input,.van-form-textarea{width:100%;color:var(--card-foreground,#171717);background:var(--card,#fff);border:1px solid var(--border,#e5e5e5);border-radius:var(--radius-lg,2px);outline:none;padding:8px 12px;font-size:14px;transition:border-color .15s}.van-form-input:focus,.van-form-textarea:focus{border-color:var(--primary,#3b82f6)}.van-form-input[data-invalid],.van-form-textarea[data-invalid]{border-color:var(--destructive,#ef4444)}.van-form-textarea{resize:vertical;min-height:80px}.van-form-input-group{background:var(--card,#fff);border:1px solid var(--border,#e5e5e5);border-radius:var(--radius-lg,2px);align-items:center;width:100%;transition:border-color .15s;display:flex;overflow:hidden}.van-form-input-group:focus-within{border-color:var(--primary,#3b82f6)}.van-form-input-group:has(.van-form-input[data-invalid]){border-color:var(--destructive,#ef4444)}.van-form-input-group .van-form-input{background:0 0;border:none;flex:1;min-width:0}.van-form-input-addon{color:var(--muted-foreground,#9ca3af);flex-shrink:0;align-self:stretch;align-items:center;padding:0 10px;font-size:14px;display:flex}.van-form-input-clear{color:var(--muted-foreground,#9ca3af);cursor:pointer;opacity:0;visibility:hidden;background:0 0;border:none;border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;padding:2px 10px 2px 2px;transition:opacity .15s,color .15s;display:flex}.van-form-input-clear-before-suffix{padding-right:2px}.van-form-input-group:hover .van-form-input-clear,.van-form-input-group:focus-within .van-form-input-clear{opacity:1;visibility:visible}.van-form-input-clear:hover{color:var(--primary,#3b82f6)}.van-form-select-control{align-items:center;display:flex;position:relative}.van-form-select-trigger{color:var(--card-foreground,#171717);background:var(--card,#fff);border:1px solid var(--border,#e5e5e5);border-radius:var(--radius-lg,2px);cursor:pointer;flex:1;align-items:center;padding:8px 12px;font-size:14px;transition:border-color .15s;display:flex}.van-form-select-trigger:focus{border-color:var(--primary,#3b82f6)}.van-form-select-value{text-align:left;flex:1}.van-form-select-indicator{color:var(--muted-foreground,#9ca3af);pointer-events:none;align-items:center;display:flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.van-form-select-clear{color:var(--muted-foreground,#9ca3af);cursor:pointer;opacity:0;visibility:hidden;background:0 0;border:none;border-radius:2px;justify-content:center;align-items:center;padding:2px;transition:opacity .15s,color .15s;display:flex;position:absolute;top:50%;right:36px;transform:translateY(-50%)}.van-form-select-control:hover .van-form-select-clear,.van-form-select-control:focus-within .van-form-select-clear{opacity:1;visibility:visible}.van-form-select-clear:hover{color:var(--primary,#3b82f6)}.van-form-select-clear[hidden]{display:none}.van-form-select-control:has(.van-form-select-clear) .van-form-select-trigger{padding-right:56px}.van-form-select-positioner{--z-index:50!important}.van-form-select-content{background:var(--card,#fff);border:1px solid var(--border,#e5e5e5);border-radius:var(--radius-lg,2px);min-width:var(--reference-width);padding:4px;box-shadow:0 4px 12px #0000001a}.van-form-select-item{color:var(--card-foreground,#171717);cursor:pointer;border-radius:2px;padding:8px 12px;font-size:14px;transition:background .1s}.van-form-select-item:hover,.van-form-select-item[data-highlighted]{background:var(--muted,#f5f5f5)}.van-form-select-item[data-selected]{color:var(--primary,#3b82f6);font-weight:500}.van-form-date-control{align-items:center;display:flex;position:relative}.van-form-date-trigger{color:var(--card-foreground,#171717);background:var(--card,#fff);border:1px solid var(--border,#e5e5e5);border-radius:var(--radius-lg,2px);cursor:pointer;flex:1;align-items:center;gap:8px;padding:8px 36px 8px 12px;font-size:14px;transition:border-color .15s;display:flex;position:relative}.van-form-date-trigger:focus{border-color:var(--primary,#3b82f6)}.van-form-date-value{text-align:left;flex:1}.van-form-date-icon{color:var(--muted-foreground,#9ca3af);pointer-events:none;align-items:center;display:flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.van-form-date-clear{color:var(--muted-foreground,#9ca3af);cursor:pointer;opacity:0;visibility:hidden;background:0 0;border:none;border-radius:2px;justify-content:center;align-items:center;padding:2px;transition:opacity .15s,color .15s;display:flex;position:absolute;top:50%;right:36px;transform:translateY(-50%)}.van-form-date-control:hover .van-form-date-clear,.van-form-date-control:focus-within .van-form-date-clear{opacity:1;visibility:visible}.van-form-date-clear:hover{color:var(--primary,#3b82f6)}.van-form-date-clear[hidden]{display:none}.van-form-date-control:has(.van-form-date-clear) .van-form-date-trigger{padding-right:56px}.van-form-date-positioner{--z-index:50!important}.van-form-date-content{background:var(--card,#fff);border:1px solid var(--border,#e5e5e5);border-radius:var(--radius-lg,2px);padding:10px;box-shadow:0 4px 12px #0000001a}.van-form-date-view{width:252px}.van-form-date-view-dual{width:auto}.van-form-date-days{gap:10px;display:flex}.van-form-date-days .van-form-date-table{width:224px}.van-form-date-view-control{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.van-form-date-nav-trigger{width:28px;height:28px;color:var(--muted-foreground,#9ca3af);cursor:pointer;background:0 0;border:none;border-radius:2px;justify-content:center;align-items:center;transition:background .1s,color .1s;display:flex}.van-form-date-nav-trigger:hover{background:var(--muted,#f5f5f5);color:var(--card-foreground,#171717)}.van-form-date-view-trigger{color:var(--card-foreground,#171717);cursor:pointer;background:0 0;border:none;border-radius:2px;padding:4px 8px;font-size:14px;font-weight:500;transition:background .1s}.van-form-date-view-trigger:hover{background:var(--muted,#f5f5f5)}.van-form-date-table{border-collapse:collapse;table-layout:fixed;width:100%}.van-form-date-table-header{color:var(--muted-foreground,#737373);text-align:center;padding:6px 0;font-size:12px;font-weight:400}.van-form-date-week-header,.van-form-date-week-cell{width:24px;color:var(--muted-foreground,#9ca3af);text-align:center;padding:1px 2px;font-size:11px;font-weight:400}.van-form-date-cell{text-align:center;padding:1px}.van-form-date-cell-trigger{width:100%;height:32px;color:var(--card-foreground,#171717);cursor:pointer;background:0 0;border:none;border-radius:2px;justify-content:center;align-items:center;font-size:13px;transition:background .1s,color .1s;display:flex}.van-form-date-cell-trigger:hover{background:var(--muted,#f5f5f5)}.van-form-date-cell-trigger[data-selected]{background:var(--primary,#3b82f6);color:var(--primary-foreground,#fff);font-weight:500}.van-form-date-cell-trigger[data-in-range],.van-form-date-cell-trigger[data-range-start],.van-form-date-cell-trigger[data-range-end]{background:color-mix(in srgb, var(--primary,#3b82f6) 12%, transparent)}.van-form-date-cell-trigger[data-range-start],.van-form-date-cell-trigger[data-range-end]{background:var(--primary,#3b82f6);color:var(--primary-foreground,#fff);font-weight:500}.van-form-date-cell-trigger[data-outside-range]{color:var(--muted-foreground,#9ca3af)}.van-form-date-cell-trigger[data-today]:not([data-selected]){box-shadow:inset 0 0 0 1px var(--primary,#3b82f6)}.van-form-date-cell-trigger[data-unavailable]{opacity:.4}.van-form-date-cell-trigger[data-disabled]{opacity:.4;cursor:not-allowed}.van-form-date-week-mode .van-form-date-table-body .van-form-date-table-row:hover .van-form-date-cell-trigger:not([data-selected]):not([data-in-range]):not([data-range-start]):not([data-range-end]):not([data-disabled]){background:var(--muted,#f5f5f5)}.van-form-date-week-mode .van-form-date-table-body .van-form-date-table-row:hover .van-form-date-week-cell{color:var(--primary,#3b82f6)}.van-form-date-time{width:100%;color:var(--card-foreground,#171717);background:var(--card,#fff);border:1px solid var(--border,#e5e5e5);border-radius:var(--radius-lg,2px);outline:none;margin-top:8px;padding:8px 12px;font-family:inherit;font-size:14px;transition:border-color .15s}.van-form-date-time:focus{border-color:var(--primary,#3b82f6)}.van-form-helper{color:var(--muted-foreground,#737373);font-size:12px}.van-form-error{color:var(--destructive,#ef4444);font-size:12px}.van-form-field-skeleton{border-radius:var(--radius-lg,2px);background-color:var(--muted,#f5f5f5);background-image:linear-gradient(90deg,#0000 0%,#ffffff80 50%,#0000 100%);background-repeat:no-repeat;background-size:200% 100%;width:100%;height:38px;animation:1.4s ease-in-out infinite van-form-skeleton-shimmer}@keyframes van-form-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.van-form-checkbox-control{border:1px solid var(--border,#d1d5db);background:var(--card,#fff);cursor:pointer;border-radius:1px;justify-content:center;align-items:center;width:18px;height:18px;transition:all .15s;display:flex}.van-form-checkbox-control:hover{border-color:var(--primary,#6366f1)}.van-form-checkbox-control[data-state=checked]{background:var(--primary,#6366f1);border-color:var(--primary,#6366f1)}.van-form-checkbox-indicator{color:var(--primary-foreground,#fff);justify-content:center;align-items:center;display:flex}.van-form-checkbox-root{cursor:pointer;align-items:center;gap:8px;display:inline-flex}.van-form-checkbox-label{color:var(--card-foreground,#171717);font-size:14px}.van-form-checkbox-group{flex-direction:column;gap:8px;display:flex}.van-form-check-icon{width:14px;height:14px}.van-form-switch-control{background:var(--border,#d1d5db);cursor:pointer;border-radius:11px;align-items:center;width:40px;height:22px;padding:2px;transition:background .15s;display:flex}.van-form-switch-control[data-state=checked]{background:var(--primary,#6366f1)}.van-form-switch-thumb{background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .15s}.van-form-switch-control[data-state=checked] .van-form-switch-thumb{transform:translate(18px)}.van-form-switch-root{cursor:pointer;align-items:center;gap:8px;display:inline-flex}.van-form-switch-label{color:var(--card-foreground,#171717);font-size:14px}.van-form-radio-group{flex-direction:column;gap:8px;display:flex}.van-form-radio-item{color:var(--card-foreground,#171717);cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.van-form-radio-control{border:2px solid var(--border,#d1d5db);background:var(--card,#fff);border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;transition:all .15s;display:flex}.van-form-radio-control[data-state=checked]{border-color:var(--primary,#6366f1)}.van-form-radio-control[data-state=checked]:after{content:"";background:var(--primary,#6366f1);border-radius:50%;width:8px;height:8px}.van-form-radio-control:hover{border-color:var(--primary,#6366f1)}.van-form-radio-text{flex:1}@media (prefers-color-scheme:dark){.van-form-input,.van-form-textarea,.van-form-select-trigger,.van-form-date-trigger,.van-form-date-time{background:var(--card,#1e1e2e);color:var(--card-foreground,#cdd6f4);border-color:var(--border,#313244)}.van-form-input-group{background:var(--card,#1e1e2e);border-color:var(--border,#313244)}.van-form-input-addon{color:var(--muted-foreground,#a0a0b0)}.van-form-select-content{background:var(--card,#1e1e2e);border-color:var(--border,#313244)}.van-form-select-item:hover,.van-form-select-item[data-highlighted]{background:var(--muted,#27273e)}.van-form-date-content{background:var(--card,#1e1e2e);border-color:var(--border,#313244)}.van-form-date-nav-trigger:hover,.van-form-date-view-trigger:hover,.van-form-date-cell-trigger:hover,.van-form-date-week-mode .van-form-date-table-body .van-form-date-table-row:hover .van-form-date-cell-trigger:not([data-selected]):not([data-in-range]):not([data-range-start]):not([data-range-end]):not([data-disabled]){background:var(--muted,#27273e)}.van-form-field-skeleton{background-color:var(--muted,#27273e);background-image:linear-gradient(90deg,#0000 0%,#ffffff1f 50%,#0000 100%)}}.van-table-wrapper{width:100%;color:var(--card-foreground,#1f2937);flex-direction:column;gap:12px;font-size:14px;display:flex}.van-table-container{border:1px solid var(--border,#e5e7eb);border-radius:var(--radius-xl,2px);background:var(--card,#fff);position:relative;overflow:auto}.van-table-loading-mask{z-index:10;background:color-mix(in srgb, var(--card,#fff) 72%, transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.van-table-spinner{border:3px solid var(--border,#e5e7eb);border-top-color:var(--primary,#6366f1);border-radius:50%;width:28px;height:28px;animation:.6s linear infinite van-table-spin}@keyframes van-table-spin{to{transform:rotate(360deg)}}.van-table{border-collapse:collapse;width:100%}.van-table-th{z-index:1;text-align:left;color:var(--muted-foreground,#9ca3af);border-bottom:1px solid var(--border,#e5e7eb);white-space:nowrap;-webkit-user-select:none;user-select:none;padding:10px 14px;font-size:14px;font-weight:400;position:sticky;top:0}.van-table-th-sortable{cursor:pointer}.van-table-th-sortable:hover{background:var(--secondary,#f3f4f6)}.van-table-th-content{align-items:center;gap:4px;display:inline-flex}.van-table-sort-icon{flex-shrink:0;width:8px;height:14px}.van-table-sort-arrow{color:var(--muted-foreground,#9ca3af);opacity:.35}.van-table-sort-arrow.van-table-sort-active{opacity:1;color:var(--primary,#6366f1)}.van-table-tr{border-bottom:1px solid var(--border,#f3f4f6);transition:background .12s}.van-table-tr:last-child{border-bottom:none}.van-table-tr:hover{background:var(--muted,#f9fafb)}.van-table-tr-selected{background:color-mix(in srgb, var(--primary,#6366f1) 3%, transparent)!important}.van-table-td{vertical-align:middle;padding:10px 14px}.van-table-empty{text-align:center;color:var(--muted-foreground,#9ca3af);padding:56px 16px;font-size:14px}.van-table-checkbox-control{border:1px solid var(--input,#d1d5db);background:var(--card,#fff);cursor:pointer;border-radius:1px;justify-content:center;align-items:center;width:18px;height:18px;transition:all .15s;display:flex}.van-table-checkbox-control:hover{border-color:var(--primary,#6366f1)}.van-table-checkbox-control[data-state=checked],.van-table-checkbox-control[data-state=indeterminate]{background:var(--primary,#6366f1);border-color:var(--primary,#6366f1)}.van-table-checkbox-indicator{color:var(--primary-foreground,#fff);justify-content:center;align-items:center;display:flex}.van-table-check-icon{width:14px;height:14px}@media (prefers-color-scheme:dark){.van-table-wrapper{--card:#1e1e2e;--card-foreground:#cdd6f4;--foreground:#cdd6f4;--muted:#181825;--muted-foreground:#9399b2;--border:#313244;--input:#45475a;--secondary:#27273e;--primary:#89b4fa;--primary-foreground:#1e1e2e}}.van-table-wrapper[data-density=compact] .van-table-th,.van-table-wrapper[data-density=compact] .van-table-td{padding:6px 12px}.van-table-th-select,.van-table-td-select{width:36px;padding-left:14px;padding-right:8px}.van-data-table{width:100%;color:var(--card-foreground,#1f2937);border:1px solid var(--border,#e5e7eb);background-color:#fff;border-radius:4px;flex-direction:column;font-size:14px;display:flex}.van-data-table-search{width:100%;padding:14px}.van-data-table-search .van-form-form{flex-flow:wrap;align-items:flex-end;gap:8px}.van-data-table-search .van-form-field{width:192px}.van-data-table-search .van-form-input,.van-data-table-search .van-form-select-trigger,.van-data-table-search .van-form-date-trigger{box-sizing:border-box;height:36px}.van-data-table-search-actions{gap:6px;display:flex}.van-data-table-toolbar{justify-content:flex-start;align-items:center;gap:8px;padding:8px 14px;display:flex}.van-data-table-search+.van-data-table-toolbar{border-top:1px solid var(--border,#e5e7eb)}.van-data-table .van-table-container{border-left:none;border-right:none}.van-data-table-pagination{color:var(--muted-foreground,#9ca3af);justify-content:space-between;align-items:center;gap:12px;padding:14px;display:flex}.van-data-table-pagination-buttons{align-items:center;gap:6px;display:flex}.van-data-table-pagination-btn{min-width:32px;height:32px;color:var(--card-foreground,#1f2937);background:var(--card,#fff);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0 6px;font-size:14px;transition:all .15s;display:inline-flex}.van-data-table-pagination-btn:hover:not(:disabled):not([data-selected]){background:var(--muted,#6366f1)}.van-data-table-pagination-btn[data-selected]{background:var(--primary,#6366f1);border-color:var(--primary,#6366f1);color:var(--primary-foreground,#fff)}.van-data-table-pagination-btn:disabled{opacity:.45;cursor:not-allowed}.van-data-table-pagination-ellipsis{min-width:24px;height:32px;color:var(--muted-foreground,#9ca3af);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;display:inline-flex}.van-data-table-pagination-icon{width:14px;height:14px}@media (prefers-color-scheme:dark){.van-data-table{--card:#1e1e2e;--card-foreground:#cdd6f4;--foreground:#cdd6f4;--muted:#181825;--muted-foreground:#9399b2;--border:#313244;--input:#45475a;--secondary:#27273e;--primary:#89b4fa;--primary-foreground:#1e1e2e}}@keyframes van-drawer-fade-in{0%{opacity:0}to{opacity:1}}@keyframes van-drawer-fade-out{0%{opacity:1}to{opacity:0}}@keyframes van-drawer-slide-in-right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes van-drawer-slide-out-right{to{transform:translate(100%)}}@keyframes van-drawer-slide-in-left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes van-drawer-slide-out-left{to{transform:translate(-100%)}}@keyframes van-drawer-slide-in-top{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes van-drawer-slide-out-top{to{transform:translateY(-100%)}}@keyframes van-drawer-slide-in-bottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes van-drawer-slide-out-bottom{to{transform:translateY(100%)}}.van-drawer-backdrop{z-index:var(--z,1000);background:#0006;position:fixed;inset:0}.van-drawer-backdrop[data-state=open]{animation:.25s cubic-bezier(.16,1,.3,1) van-drawer-fade-in}.van-drawer-backdrop[data-state=closed]{animation:.15s cubic-bezier(.4,0,1,1) van-drawer-fade-out}.van-drawer-positioner{z-index:calc(var(--z-index-base,1000) + var(--layer-index,0));position:fixed;inset:0}.van-drawer-content{position:fixed}.van-drawer-content[data-placement=right],.van-drawer-content:not([data-placement]){width:var(--van-drawer-size,400px);max-width:100vw;top:0;bottom:0;right:0}.van-drawer-content[data-placement=right][data-state=open],.van-drawer-content:not([data-placement])[data-state=open]{animation:.25s cubic-bezier(.16,1,.3,1) van-drawer-slide-in-right}.van-drawer-content[data-placement=right][data-state=closed],.van-drawer-content:not([data-placement])[data-state=closed]{animation:.15s cubic-bezier(.4,0,1,1) forwards van-drawer-slide-out-right}.van-drawer-content[data-placement=left]{width:var(--van-drawer-size,400px);max-width:100vw;top:0;bottom:0;left:0}.van-drawer-content[data-placement=left][data-state=open]{animation:.25s cubic-bezier(.16,1,.3,1) van-drawer-slide-in-left}.van-drawer-content[data-placement=left][data-state=closed]{animation:.15s cubic-bezier(.4,0,1,1) forwards van-drawer-slide-out-left}.van-drawer-content[data-placement=top]{height:var(--van-drawer-size,400px);max-height:100vh;top:0;left:0;right:0}.van-drawer-content[data-placement=top][data-state=open]{animation:.25s cubic-bezier(.16,1,.3,1) van-drawer-slide-in-top}.van-drawer-content[data-placement=top][data-state=closed]{animation:.15s cubic-bezier(.4,0,1,1) forwards van-drawer-slide-out-top}.van-drawer-content[data-placement=bottom]{height:var(--van-drawer-size,400px);max-height:100vh;bottom:0;left:0;right:0}.van-drawer-content[data-placement=bottom][data-state=open]{animation:.25s cubic-bezier(.16,1,.3,1) van-drawer-slide-in-bottom}.van-drawer-content[data-placement=bottom][data-state=closed]{animation:.15s cubic-bezier(.4,0,1,1) forwards van-drawer-slide-out-bottom}.van-drawer-content-inner{background:var(--card,#fff);border-radius:2px;flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden;box-shadow:0 0 0 1px #0000000f,0 4px 16px #0000001a}.van-drawer-header{flex-shrink:0;justify-content:space-between;align-items:flex-start;padding:20px 20px 12px;display:flex}.van-drawer-title{color:var(--card-foreground,#171717);margin:0;font-size:16px;font-weight:600;line-height:1.4}.van-drawer-close{border-radius:var(--radius-lg,2px);cursor:pointer;width:24px;height:24px;color:var(--muted-foreground,#737373);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;margin:-2px -2px 0 8px;font-size:14px;transition:background .15s,color .15s;display:inline-flex}.van-drawer-close:hover{background:var(--muted,#f5f5f5);color:var(--card-foreground,#171717)}.van-drawer-desc{color:var(--muted-foreground,#737373);padding:0 20px 14px;font-size:14px;line-height:1.5}.van-drawer-body{flex:1;min-height:0;padding:2px 20px 16px;overflow-y:auto}.van-drawer-footer{border-top:1px solid var(--border,#e5e5e5);flex-shrink:0;justify-content:flex-end;gap:10px;padding:12px 20px;display:flex}.van-drawer-footer .van-btn{min-width:84px}.van-drawer-grabber{cursor:grab;flex-shrink:0;justify-content:center;padding:8px 0 0;display:flex}.van-drawer-grabber:active{cursor:grabbing}.van-drawer-grabber-indicator{background:#d4d4d4;border-radius:2px;width:36px;height:4px}@keyframes van-modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes van-modal-fade-out{0%{opacity:1}to{opacity:0}}@keyframes van-modal-scale-in{0%{opacity:0;transform:scale(.95)translateY(8px)}to{opacity:1;transform:none}}@keyframes van-modal-scale-out{0%{opacity:1;transform:none}to{opacity:0;transform:scale(.95)translateY(-4px)}}.van-modal-backdrop{z-index:var(--z,1000);background:#0006;position:fixed;inset:0}.van-modal-backdrop[data-state=open]{animation:.25s cubic-bezier(.16,1,.3,1) van-modal-fade-in}.van-modal-backdrop[data-state=closed]{animation:.15s cubic-bezier(.4,0,1,1) van-modal-fade-out}.van-modal-positioner{z-index:calc(var(--z-index-base,1000) + var(--layer-index,0));justify-content:center;align-items:start;padding:15vh 1rem 1rem;display:flex;position:fixed;inset:0}.van-modal-positioner[data-center]{align-items:center;padding-top:1rem}.van-modal-content{background:var(--card,#fff);border-radius:var(--radius-lg,2px);width:var(--van-modal-width,min(480px, 92vw));min-width:min(420px,92vw);max-height:var(--van-modal-max-height,90vh);flex-direction:column;display:flex;overflow:hidden;box-shadow:0 0 0 1px #0000000f,0 4px 16px #0000001a}.van-modal-content[data-state=open]{animation:.25s cubic-bezier(.16,1,.3,1) van-modal-scale-in}.van-modal-content[data-state=closed]{animation:.15s cubic-bezier(.4,0,1,1) van-modal-scale-out}.van-modal-header{justify-content:space-between;align-items:flex-start;padding:20px 20px 12px;display:flex}.van-modal-title{color:var(--card-foreground,#171717);margin:0;font-size:16px;font-weight:600;line-height:1.4}.van-modal-close{border-radius:var(--radius-lg,2px);cursor:pointer;width:24px;height:24px;color:var(--muted-foreground,#737373);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;margin:-2px -2px 0 8px;font-size:14px;transition:background .15s,color .15s;display:inline-flex}.van-modal-close:hover{background:var(--muted,#f5f5f5);color:var(--card-foreground,#171717)}.van-modal-desc{color:var(--muted-foreground,#737373);padding:0 20px 14px;font-size:14px;line-height:1.5}.van-modal-body{flex:1;padding:2px 20px 16px;overflow-y:auto}.van-modal-footer{justify-content:flex-end;gap:10px;padding:12px 20px;display:flex}.van-modal-footer .van-btn{min-width:84px}.van-modal-content[data-center] .van-modal-footer{border-top:1px solid var(--border,#e5e5e5)}[data-scope=dialog][data-part=content][data-has-nested]{transform:scale(calc(1 - var(--nested-layer-count,0) * .03))}[data-scope=toast][data-part=root]{transform:translate3d(var(--x,0), var(--y,100%), 0);z-index:var(--z-index,0);opacity:var(--opacity,1);background:var(--card,#fff);border-radius:var(--radius-lg,2px);min-width:320px;max-width:420px;transition:transform .25s,opacity .2s;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 12px #0000001f}.van-toast-bar{flex-shrink:0;width:4px}[data-type=success] .van-toast-bar{background:var(--success,#22c55e)}[data-type=error] .van-toast-bar{background:var(--destructive,#ef4444)}[data-type=info] .van-toast-bar{background:var(--primary,#3b82f6)}[data-type=warning] .van-toast-bar{background:var(--warning,#f59e0b)}[data-type=loading] .van-toast-bar{background:var(--muted-foreground,#f5f5f5)}.van-toast-body{flex:1;min-width:0;padding:12px 40px 12px 16px}.van-toast-title{color:var(--card-foreground,#171717);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;line-height:1.4;overflow:hidden}.van-toast-desc{color:var(--muted-foreground,#737373);margin-top:2px;font-size:14px;line-height:1.5}.van-toast-close{cursor:pointer;width:20px;height:20px;color:var(--muted-foreground,#9ca3af);background:0 0;border:none;border-radius:2px;justify-content:center;align-items:center;padding:0;transition:color .15s,background .15s;display:inline-flex;position:absolute;top:12px;right:12px}.van-toast-close:hover{color:var(--card-foreground,#4b5563);background:var(--muted,#f3f4f6)}.van-toast-close-x{width:12px;height:12px;display:block;position:relative}.van-toast-close-x:before,.van-toast-close-x:after{content:"";background:currentColor;border-radius:1px;width:12px;height:1.5px;position:absolute;top:50%;left:50%}.van-toast-close-x:before{transform:translate(-50%,-50%)rotate(45deg)}.van-toast-close-x:after{transform:translate(-50%,-50%)rotate(-45deg)}
|
|
2
|
+
/*$vite$:1*/
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ColumnDef, SortingState } from '@tanstack/solid-table';
|
|
2
|
+
export type { ColumnDef, SortingState };
|
|
3
|
+
export interface TableProps<TData> {
|
|
4
|
+
data: TData[];
|
|
5
|
+
columns: ColumnDef<TData>[];
|
|
6
|
+
/** 排序变化回调(非受控,仅在变化时通知) */
|
|
7
|
+
onSortingChange?: (sorting: SortingState) => void;
|
|
8
|
+
/** 是否启用行选择 */
|
|
9
|
+
selectable?: boolean;
|
|
10
|
+
/** 初始选中行 ID */
|
|
11
|
+
selectedRowIds?: string[];
|
|
12
|
+
/** 行 ID 提取函数,默认取 row.id */
|
|
13
|
+
rowId?: (row: TData) => string;
|
|
14
|
+
/** 选择变化通知 */
|
|
15
|
+
onSelectionChange?: (selectedIds: string[]) => void;
|
|
16
|
+
/** 加载态 */
|
|
17
|
+
loading?: boolean;
|
|
18
|
+
/** 空状态文案 */
|
|
19
|
+
emptyText?: string;
|
|
20
|
+
/** 行点击 */
|
|
21
|
+
onRowClick?: (row: TData, index: number) => void;
|
|
22
|
+
className?: string;
|
|
23
|
+
}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import { addEventListener as e, className as t, createComponent as n, delegateEvents as r, effect as i, insert as a, memo as o, setAttribute as s, style as c, template as l } from "solid-js/web";
|
|
2
|
+
import { For as u, Show as d, createSignal as f, mergeProps as p } from "solid-js";
|
|
3
|
+
import { Checkbox as m } from "@ark-ui/solid/checkbox";
|
|
4
|
+
import { createSolidTable as h, flexRender as g, getCoreRowModel as _, getSortedRowModel as v } from "@tanstack/solid-table";
|
|
5
|
+
//#region src/table/Table.tsx
|
|
6
|
+
var y = /*#__PURE__*/ l("<svg class=van-table-sort-icon viewBox=\"0 0 8 14\"xmlns=http://www.w3.org/2000/svg><polyline fill=none points=\"1,5 4,2 7,5\"stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=1.5></polyline><polyline fill=none points=\"1,9 4,12 7,9\"stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=1.5>"), b = /*#__PURE__*/ l("<svg class=van-table-check-icon fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=3 viewBox=\"0 0 24 24\"><path d=\"M5 12l5 5l10 -10\">"), x = /*#__PURE__*/ l("<svg class=van-table-check-icon fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=3 viewBox=\"0 0 24 24\"><path d=\"M5 12h14\">"), S = /*#__PURE__*/ l("<tr>"), C = /*#__PURE__*/ l("<th>"), w = /*#__PURE__*/ l("<span class=van-table-th-content>"), T = /*#__PURE__*/ l("<td>"), E = /*#__PURE__*/ l("<div class=van-table-loading-mask><div class=van-table-spinner>"), D = /*#__PURE__*/ l("<div><div class=van-table-container><table class=van-table><thead></thead><tbody>"), O = /*#__PURE__*/ l("<tr><td class=van-table-empty>");
|
|
7
|
+
function k(e, t) {
|
|
8
|
+
return typeof e == "function" ? e(t) : e;
|
|
9
|
+
}
|
|
10
|
+
function A(e) {
|
|
11
|
+
return (() => {
|
|
12
|
+
var t = y(), n = t.firstChild, r = n.nextSibling;
|
|
13
|
+
return i((t) => {
|
|
14
|
+
var i = `van-table-sort-arrow${e.state === "asc" ? " van-table-sort-active" : ""}`, a = `van-table-sort-arrow${e.state === "desc" ? " van-table-sort-active" : ""}`;
|
|
15
|
+
return i !== t.e && s(n, "class", t.e = i), a !== t.t && s(r, "class", t.t = a), t;
|
|
16
|
+
}, {
|
|
17
|
+
e: void 0,
|
|
18
|
+
t: void 0
|
|
19
|
+
}), t;
|
|
20
|
+
})();
|
|
21
|
+
}
|
|
22
|
+
function j() {
|
|
23
|
+
return b();
|
|
24
|
+
}
|
|
25
|
+
function M() {
|
|
26
|
+
return x();
|
|
27
|
+
}
|
|
28
|
+
function N(r) {
|
|
29
|
+
let l = p({
|
|
30
|
+
emptyText: "暂无数据",
|
|
31
|
+
selectable: !1,
|
|
32
|
+
loading: !1,
|
|
33
|
+
rowId: (e) => e.id
|
|
34
|
+
}, r), [y, b] = f([]), [x, N] = f(l.selectedRowIds?.length ? Object.fromEntries(l.selectedRowIds.map((e) => [e, !0])) : {}), P = {
|
|
35
|
+
id: "__select__",
|
|
36
|
+
header: () => n(m.Root, {
|
|
37
|
+
get checked() {
|
|
38
|
+
return o(() => !!F.getIsAllPageRowsSelected())() ? !0 : F.getIsSomePageRowsSelected() ? "indeterminate" : !1;
|
|
39
|
+
},
|
|
40
|
+
onCheckedChange: (e) => {
|
|
41
|
+
let t = e.checked !== "indeterminate" && e.checked;
|
|
42
|
+
F.toggleAllPageRowsSelected(t);
|
|
43
|
+
},
|
|
44
|
+
onClick: (e) => e.stopPropagation(),
|
|
45
|
+
get children() {
|
|
46
|
+
return [n(m.Control, {
|
|
47
|
+
class: "van-table-checkbox-control",
|
|
48
|
+
get children() {
|
|
49
|
+
return [n(m.Indicator, {
|
|
50
|
+
class: "van-table-checkbox-indicator",
|
|
51
|
+
get children() {
|
|
52
|
+
return n(j, {});
|
|
53
|
+
}
|
|
54
|
+
}), n(m.Indicator, {
|
|
55
|
+
class: "van-table-checkbox-indicator",
|
|
56
|
+
indeterminate: !0,
|
|
57
|
+
get children() {
|
|
58
|
+
return n(M, {});
|
|
59
|
+
}
|
|
60
|
+
})];
|
|
61
|
+
}
|
|
62
|
+
}), n(m.HiddenInput, {})];
|
|
63
|
+
}
|
|
64
|
+
}),
|
|
65
|
+
cell: ({ row: e }) => n(m.Root, {
|
|
66
|
+
get checked() {
|
|
67
|
+
return e.getIsSelected();
|
|
68
|
+
},
|
|
69
|
+
onCheckedChange: () => e.toggleSelected(),
|
|
70
|
+
onClick: (e) => e.stopPropagation(),
|
|
71
|
+
get children() {
|
|
72
|
+
return [n(m.Control, {
|
|
73
|
+
class: "van-table-checkbox-control",
|
|
74
|
+
get children() {
|
|
75
|
+
return n(m.Indicator, {
|
|
76
|
+
class: "van-table-checkbox-indicator",
|
|
77
|
+
get children() {
|
|
78
|
+
return n(j, {});
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}), n(m.HiddenInput, {})];
|
|
83
|
+
}
|
|
84
|
+
}),
|
|
85
|
+
size: 36,
|
|
86
|
+
minSize: 36,
|
|
87
|
+
maxSize: 36,
|
|
88
|
+
enableSorting: !1,
|
|
89
|
+
enableColumnFilter: !1,
|
|
90
|
+
enableHiding: !1
|
|
91
|
+
}, F = h({
|
|
92
|
+
get data() {
|
|
93
|
+
return l.data;
|
|
94
|
+
},
|
|
95
|
+
get columns() {
|
|
96
|
+
return l.selectable ? [P, ...l.columns] : l.columns;
|
|
97
|
+
},
|
|
98
|
+
state: {
|
|
99
|
+
get sorting() {
|
|
100
|
+
return y();
|
|
101
|
+
},
|
|
102
|
+
get rowSelection() {
|
|
103
|
+
return x();
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
onSortingChange: (e) => {
|
|
107
|
+
b(e), l.onSortingChange?.(k(e, y()));
|
|
108
|
+
},
|
|
109
|
+
onRowSelectionChange: (e) => {
|
|
110
|
+
let t = k(e, x());
|
|
111
|
+
N(t), l.onSelectionChange?.(Object.keys(t).filter((e) => t[e]));
|
|
112
|
+
},
|
|
113
|
+
getCoreRowModel: _(),
|
|
114
|
+
getSortedRowModel: v(),
|
|
115
|
+
enableRowSelection: l.selectable,
|
|
116
|
+
getRowId: (e) => l.rowId(e)
|
|
117
|
+
}), I = (e) => e === "__select__";
|
|
118
|
+
function L(r) {
|
|
119
|
+
return (() => {
|
|
120
|
+
var o = S();
|
|
121
|
+
return a(o, n(u, {
|
|
122
|
+
get each() {
|
|
123
|
+
return r.headerGroup.headers;
|
|
124
|
+
},
|
|
125
|
+
children: (r) => (() => {
|
|
126
|
+
var o = C();
|
|
127
|
+
return e(o, "click", r.column.getToggleSortingHandler(), !0), a(o, n(d, {
|
|
128
|
+
get when() {
|
|
129
|
+
return !r.isPlaceholder;
|
|
130
|
+
},
|
|
131
|
+
get children() {
|
|
132
|
+
return n(d, {
|
|
133
|
+
get fallback() {
|
|
134
|
+
return (() => {
|
|
135
|
+
var e = w();
|
|
136
|
+
return a(e, () => g(r.column.columnDef.header, r.getContext()), null), a(e, n(d, {
|
|
137
|
+
get when() {
|
|
138
|
+
return r.column.getCanSort();
|
|
139
|
+
},
|
|
140
|
+
get children() {
|
|
141
|
+
return n(A, { get state() {
|
|
142
|
+
return r.column.getIsSorted();
|
|
143
|
+
} });
|
|
144
|
+
}
|
|
145
|
+
}), null), e;
|
|
146
|
+
})();
|
|
147
|
+
},
|
|
148
|
+
get when() {
|
|
149
|
+
return I(r.column.id);
|
|
150
|
+
},
|
|
151
|
+
get children() {
|
|
152
|
+
return g(r.column.columnDef.header, r.getContext());
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
})), i((e) => {
|
|
157
|
+
var n = `van-table-th${r.column.getCanSort() ? " van-table-th-sortable" : ""}${I(r.column.id) ? " van-table-th-select" : ""}`, i = r.colSpan;
|
|
158
|
+
return n !== e.e && t(o, e.e = n), i !== e.t && s(o, "colspan", e.t = i), e;
|
|
159
|
+
}, {
|
|
160
|
+
e: void 0,
|
|
161
|
+
t: void 0
|
|
162
|
+
}), o;
|
|
163
|
+
})()
|
|
164
|
+
})), o;
|
|
165
|
+
})();
|
|
166
|
+
}
|
|
167
|
+
function R(r) {
|
|
168
|
+
return (() => {
|
|
169
|
+
var o = S();
|
|
170
|
+
return e(o, "click", l.onRowClick ? () => l.onRowClick(r.row.original, r.index) : void 0, !0), a(o, n(u, {
|
|
171
|
+
get each() {
|
|
172
|
+
return r.row.getVisibleCells();
|
|
173
|
+
},
|
|
174
|
+
children: (e) => (() => {
|
|
175
|
+
var n = T();
|
|
176
|
+
return a(n, () => g(e.column.columnDef.cell, e.getContext())), i(() => t(n, `van-table-td${I(e.column.id) ? " van-table-td-select" : ""}`)), n;
|
|
177
|
+
})()
|
|
178
|
+
})), i((e) => {
|
|
179
|
+
var n = `van-table-tr${r.row.getIsSelected() ? " van-table-tr-selected" : ""}`, i = l.onRowClick ? { cursor: "pointer" } : void 0;
|
|
180
|
+
return n !== e.e && t(o, e.e = n), e.t = c(o, i, e.t), e;
|
|
181
|
+
}, {
|
|
182
|
+
e: void 0,
|
|
183
|
+
t: void 0
|
|
184
|
+
}), o;
|
|
185
|
+
})();
|
|
186
|
+
}
|
|
187
|
+
let z = () => l.columns.length + +!!l.selectable;
|
|
188
|
+
return (() => {
|
|
189
|
+
var e = D(), o = e.firstChild, c = o.firstChild, f = c.firstChild, p = f.nextSibling;
|
|
190
|
+
return a(o, n(d, {
|
|
191
|
+
get when() {
|
|
192
|
+
return l.loading;
|
|
193
|
+
},
|
|
194
|
+
get children() {
|
|
195
|
+
return E();
|
|
196
|
+
}
|
|
197
|
+
}), c), a(f, n(u, {
|
|
198
|
+
get each() {
|
|
199
|
+
return F.getHeaderGroups();
|
|
200
|
+
},
|
|
201
|
+
children: (e) => n(L, { headerGroup: e })
|
|
202
|
+
})), a(p, n(d, {
|
|
203
|
+
get fallback() {
|
|
204
|
+
return (() => {
|
|
205
|
+
var e = O(), t = e.firstChild;
|
|
206
|
+
return a(t, () => l.emptyText), i(() => s(t, "colspan", z())), e;
|
|
207
|
+
})();
|
|
208
|
+
},
|
|
209
|
+
get when() {
|
|
210
|
+
return F.getRowModel().rows.length > 0;
|
|
211
|
+
},
|
|
212
|
+
get children() {
|
|
213
|
+
return n(u, {
|
|
214
|
+
get each() {
|
|
215
|
+
return F.getRowModel().rows;
|
|
216
|
+
},
|
|
217
|
+
children: (e, t) => n(R, {
|
|
218
|
+
get index() {
|
|
219
|
+
return t();
|
|
220
|
+
},
|
|
221
|
+
row: e
|
|
222
|
+
})
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
})), i(() => t(e, `van-table-wrapper ${r.className ?? ""}`)), e;
|
|
226
|
+
})();
|
|
227
|
+
}
|
|
228
|
+
r(["click"]);
|
|
229
|
+
//#endregion
|
|
230
|
+
export { N as t };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { CreateToasterProps, CreateToasterReturn, createToaster as _createToaster, ToastCloseTrigger, ToastDescription, ToastRoot, ToastTitle } from '@ark-ui/solid/toast';
|
|
2
|
+
export { _createToaster as createToaster, ToastCloseTrigger, ToastDescription, ToastRoot, ToastTitle, };
|
|
3
|
+
/** 全局 toaster,始终指向当前 Toaster 渲染的实例。
|
|
4
|
+
* success/error/info/warning 不传 duration 时自动按字数估算。 */
|
|
5
|
+
export declare const toaster: CreateToasterReturn;
|
|
6
|
+
/** 内置样式的 Toaster,接收 createToaster 选项 + closable */
|
|
7
|
+
export declare function Toaster(p: Partial<CreateToasterProps> & {
|
|
8
|
+
closable?: boolean;
|
|
9
|
+
}): import("solid-js").JSX.Element;
|