@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,251 @@
|
|
|
1
|
+
import { t as e } from "../button-C9xYlZbo.js";
|
|
2
|
+
import { t } from "../form-TmnHhNkx.js";
|
|
3
|
+
import { t as n } from "../table-B88tYpbb.js";
|
|
4
|
+
import { className as r, createComponent as i, effect as a, insert as o, memo as s, setAttribute as c, template as l } from "solid-js/web";
|
|
5
|
+
import { For as u, Show as d, createEffect as f, createMemo as p, createSignal as m, mergeProps as h, on as g, onMount as _ } from "solid-js";
|
|
6
|
+
import { Pagination as v } from "@ark-ui/solid/pagination";
|
|
7
|
+
//#region src/data-table/Pagination.tsx
|
|
8
|
+
var y = /*#__PURE__*/ l("<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>"), b = /*#__PURE__*/ l("<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\">"), x = /*#__PURE__*/ l("<svg><path d=\"M11 6l-6 6 6 6\"></svg>", !1, !0, !1), S = /*#__PURE__*/ l("<svg><path d=\"M18 6l-6 6 6 6\"></svg>", !1, !0, !1), C = /*#__PURE__*/ l("<svg><path d=\"M13 6l6 6-6 6\"></svg>", !1, !0, !1), w = /*#__PURE__*/ l("<svg><path d=\"M6 6l6 6-6 6\"></svg>", !1, !0, !1), T = /*#__PURE__*/ l("<div class=van-data-table-pagination-buttons>"), E = /*#__PURE__*/ l("<div class=van-data-table-pagination><span class=van-data-table-pagination-info>共 <!> 条");
|
|
9
|
+
function D(e) {
|
|
10
|
+
return (() => {
|
|
11
|
+
var t = y(), n = t.firstChild;
|
|
12
|
+
return a(() => c(n, "d", e.direction === "left" ? "M15 6l-6 6 6 6" : "M9 6l6 6-6 6")), t;
|
|
13
|
+
})();
|
|
14
|
+
}
|
|
15
|
+
function O(e) {
|
|
16
|
+
return (() => {
|
|
17
|
+
var t = b();
|
|
18
|
+
return o(t, (() => {
|
|
19
|
+
var t = s(() => e.direction === "left");
|
|
20
|
+
return () => t() ? [x(), S()] : [C(), w()];
|
|
21
|
+
})()), t;
|
|
22
|
+
})();
|
|
23
|
+
}
|
|
24
|
+
function k(e) {
|
|
25
|
+
let t = () => Math.max(1, Math.ceil(e.count / e.pageSize));
|
|
26
|
+
return (() => {
|
|
27
|
+
var n = E(), r = n.firstChild, a = r.firstChild.nextSibling;
|
|
28
|
+
return a.nextSibling, o(r, () => e.count, a), o(n, i(d, {
|
|
29
|
+
get when() {
|
|
30
|
+
return t() > 1;
|
|
31
|
+
},
|
|
32
|
+
get children() {
|
|
33
|
+
return i(v.Root, {
|
|
34
|
+
get count() {
|
|
35
|
+
return e.count;
|
|
36
|
+
},
|
|
37
|
+
onPageChange: (t) => e.onPageChange(t.page),
|
|
38
|
+
onPageSizeChange: (t) => e.onPageSizeChange(t.pageSize),
|
|
39
|
+
get page() {
|
|
40
|
+
return e.page;
|
|
41
|
+
},
|
|
42
|
+
get pageSize() {
|
|
43
|
+
return e.pageSize;
|
|
44
|
+
},
|
|
45
|
+
translations: { rootLabel: "分页" },
|
|
46
|
+
get children() {
|
|
47
|
+
var e = T();
|
|
48
|
+
return o(e, i(v.FirstTrigger, {
|
|
49
|
+
class: "van-data-table-pagination-btn",
|
|
50
|
+
get children() {
|
|
51
|
+
return i(O, { direction: "left" });
|
|
52
|
+
}
|
|
53
|
+
}), null), o(e, i(v.PrevTrigger, {
|
|
54
|
+
class: "van-data-table-pagination-btn",
|
|
55
|
+
get children() {
|
|
56
|
+
return i(D, { direction: "left" });
|
|
57
|
+
}
|
|
58
|
+
}), null), o(e, i(v.Context, { children: (e) => i(u, {
|
|
59
|
+
get each() {
|
|
60
|
+
return e().pages;
|
|
61
|
+
},
|
|
62
|
+
children: (e, t) => e.type === "page" ? i(v.Item, {
|
|
63
|
+
class: "van-data-table-pagination-btn",
|
|
64
|
+
type: "page",
|
|
65
|
+
get value() {
|
|
66
|
+
return e.value;
|
|
67
|
+
},
|
|
68
|
+
get children() {
|
|
69
|
+
return e.value;
|
|
70
|
+
}
|
|
71
|
+
}) : i(v.Ellipsis, {
|
|
72
|
+
class: "van-data-table-pagination-ellipsis",
|
|
73
|
+
get index() {
|
|
74
|
+
return t();
|
|
75
|
+
},
|
|
76
|
+
children: "…"
|
|
77
|
+
})
|
|
78
|
+
}) }), null), o(e, i(v.NextTrigger, {
|
|
79
|
+
class: "van-data-table-pagination-btn",
|
|
80
|
+
get children() {
|
|
81
|
+
return i(D, { direction: "right" });
|
|
82
|
+
}
|
|
83
|
+
}), null), o(e, i(v.LastTrigger, {
|
|
84
|
+
class: "van-data-table-pagination-btn",
|
|
85
|
+
get children() {
|
|
86
|
+
return i(O, { direction: "right" });
|
|
87
|
+
}
|
|
88
|
+
}), null), e;
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
}), null), n;
|
|
93
|
+
})();
|
|
94
|
+
}
|
|
95
|
+
//#endregion
|
|
96
|
+
//#region src/data-table/DataTable.tsx
|
|
97
|
+
var A = /*#__PURE__*/ l("<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\">"), j = /*#__PURE__*/ l("<div class=van-data-table-search>"), M = /*#__PURE__*/ l("<div class=van-data-table-toolbar>"), N = /*#__PURE__*/ l("<div>"), P = /*#__PURE__*/ l("<div class=van-data-table-search-actions>");
|
|
98
|
+
function F() {
|
|
99
|
+
return A();
|
|
100
|
+
}
|
|
101
|
+
function I(s) {
|
|
102
|
+
let c = h({
|
|
103
|
+
defaultPage: 1,
|
|
104
|
+
defaultPageSize: 10,
|
|
105
|
+
emptyText: "暂无数据",
|
|
106
|
+
showSearchActions: !0
|
|
107
|
+
}, s), l = p(() => c.searchFields ?? []), u = p(() => l().map((e) => ({
|
|
108
|
+
...e,
|
|
109
|
+
label: void 0
|
|
110
|
+
}))), v = p(() => c.data !== void 0), y = p(() => s.selectable ?? !!s.onSelectionChange), [b, x] = m(c.searchValues ?? {}), [S, C] = m(c.searchValues ?? {});
|
|
111
|
+
f(g(() => c.searchValues, (e) => {
|
|
112
|
+
e && x(() => e);
|
|
113
|
+
}));
|
|
114
|
+
let [w, T] = m(c.defaultPage), [E, D] = m(c.defaultPageSize), [O, A] = m([]), [I, L] = m([]), [R, z] = m(0), [B, V] = m(!1), H = p(() => v() ? c.data : I()), U = p(() => v() ? c.total ?? H().length : R()), W = p(() => v() ? c.loading ?? !1 : B()), G = (e, t, n) => ({
|
|
115
|
+
page: e,
|
|
116
|
+
pageSize: t,
|
|
117
|
+
sorting: n
|
|
118
|
+
}), K = 0, q = async (e, t) => {
|
|
119
|
+
if (v()) {
|
|
120
|
+
s.onSearch(e, t);
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
let n = ++K;
|
|
124
|
+
V(!0);
|
|
125
|
+
try {
|
|
126
|
+
let r = await s.onSearch(e, t);
|
|
127
|
+
if (n !== K) return;
|
|
128
|
+
L(r.data), z(r.total);
|
|
129
|
+
} catch (e) {
|
|
130
|
+
if (n !== K) return;
|
|
131
|
+
s.onError?.(e);
|
|
132
|
+
} finally {
|
|
133
|
+
n === K && V(!1);
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
_(() => {
|
|
137
|
+
v() || q(S(), G(w(), E(), O()));
|
|
138
|
+
});
|
|
139
|
+
let J = (e) => {
|
|
140
|
+
C(() => e), T(1), q(e, G(1, E(), O()));
|
|
141
|
+
}, Y = () => {
|
|
142
|
+
let e = Object.fromEntries(l().map((e) => [e.name, void 0]));
|
|
143
|
+
x(() => e), C(() => e), T(1), q(e, G(1, E(), O()));
|
|
144
|
+
}, X = (e) => {
|
|
145
|
+
e !== w() && (T(e), c.onPageChange?.(e), q(S(), G(e, E(), O())));
|
|
146
|
+
}, Z = (e) => {
|
|
147
|
+
e !== E() && (D(e), T(1), c.onPageSizeChange?.(e), q(S(), G(1, e, O())));
|
|
148
|
+
}, Q = (e) => {
|
|
149
|
+
A(e), c.onSortingChange?.(e), T(1), q(S(), G(1, E(), e));
|
|
150
|
+
};
|
|
151
|
+
return (() => {
|
|
152
|
+
var f = N();
|
|
153
|
+
return o(f, i(d, {
|
|
154
|
+
get when() {
|
|
155
|
+
return l().length > 0;
|
|
156
|
+
},
|
|
157
|
+
get children() {
|
|
158
|
+
var n = j();
|
|
159
|
+
return o(n, i(t, {
|
|
160
|
+
get fields() {
|
|
161
|
+
return u();
|
|
162
|
+
},
|
|
163
|
+
onSubmit: ({ value: e }) => J(e),
|
|
164
|
+
get onValuesChange() {
|
|
165
|
+
return c.onSearchValuesChange;
|
|
166
|
+
},
|
|
167
|
+
get values() {
|
|
168
|
+
return b();
|
|
169
|
+
},
|
|
170
|
+
children: () => i(d, {
|
|
171
|
+
get when() {
|
|
172
|
+
return c.showSearchActions;
|
|
173
|
+
},
|
|
174
|
+
get children() {
|
|
175
|
+
var t = P();
|
|
176
|
+
return o(t, i(e, {
|
|
177
|
+
"aria-label": "重置",
|
|
178
|
+
class: "van-btn-icon-only",
|
|
179
|
+
get disabled() {
|
|
180
|
+
return W();
|
|
181
|
+
},
|
|
182
|
+
onClick: Y,
|
|
183
|
+
variant: "outline",
|
|
184
|
+
get children() {
|
|
185
|
+
return i(F, {});
|
|
186
|
+
}
|
|
187
|
+
}), null), o(t, i(e, {
|
|
188
|
+
get disabled() {
|
|
189
|
+
return W();
|
|
190
|
+
},
|
|
191
|
+
type: "submit",
|
|
192
|
+
children: "查询"
|
|
193
|
+
}), null), t;
|
|
194
|
+
}
|
|
195
|
+
})
|
|
196
|
+
})), n;
|
|
197
|
+
}
|
|
198
|
+
}), null), o(f, i(d, {
|
|
199
|
+
get when() {
|
|
200
|
+
return c.children;
|
|
201
|
+
},
|
|
202
|
+
get children() {
|
|
203
|
+
var e = M();
|
|
204
|
+
return o(e, () => c.children), e;
|
|
205
|
+
}
|
|
206
|
+
}), null), o(f, i(n, {
|
|
207
|
+
get columns() {
|
|
208
|
+
return c.columns;
|
|
209
|
+
},
|
|
210
|
+
get data() {
|
|
211
|
+
return H();
|
|
212
|
+
},
|
|
213
|
+
get emptyText() {
|
|
214
|
+
return c.emptyText;
|
|
215
|
+
},
|
|
216
|
+
get loading() {
|
|
217
|
+
return W();
|
|
218
|
+
},
|
|
219
|
+
get onRowClick() {
|
|
220
|
+
return c.onRowClick;
|
|
221
|
+
},
|
|
222
|
+
get onSelectionChange() {
|
|
223
|
+
return c.onSelectionChange;
|
|
224
|
+
},
|
|
225
|
+
onSortingChange: Q,
|
|
226
|
+
get rowId() {
|
|
227
|
+
return c.rowId;
|
|
228
|
+
},
|
|
229
|
+
get selectable() {
|
|
230
|
+
return y();
|
|
231
|
+
},
|
|
232
|
+
get selectedRowIds() {
|
|
233
|
+
return c.selectedRowIds;
|
|
234
|
+
}
|
|
235
|
+
}), null), o(f, i(k, {
|
|
236
|
+
get count() {
|
|
237
|
+
return U();
|
|
238
|
+
},
|
|
239
|
+
onPageChange: X,
|
|
240
|
+
onPageSizeChange: Z,
|
|
241
|
+
get page() {
|
|
242
|
+
return w();
|
|
243
|
+
},
|
|
244
|
+
get pageSize() {
|
|
245
|
+
return E();
|
|
246
|
+
}
|
|
247
|
+
}), null), a(() => r(f, `van-data-table ${s.className ?? ""}`)), f;
|
|
248
|
+
})();
|
|
249
|
+
}
|
|
250
|
+
//#endregion
|
|
251
|
+
export { I as DataTable };
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { ColumnDef, SortingState } from '@tanstack/solid-table';
|
|
2
|
+
import { JSX } from 'solid-js';
|
|
3
|
+
import { FieldConfig } from '../form/type';
|
|
4
|
+
/** onSearch 的返回值:当前页数据与总条数 */
|
|
5
|
+
export interface DataTableResult<TData> {
|
|
6
|
+
data: TData[];
|
|
7
|
+
total: number;
|
|
8
|
+
}
|
|
9
|
+
/** 传给 onSearch 的查询参数(page 从 1 起) */
|
|
10
|
+
export interface DataTableQuery {
|
|
11
|
+
page: number;
|
|
12
|
+
pageSize: number;
|
|
13
|
+
sorting: SortingState;
|
|
14
|
+
}
|
|
15
|
+
/** 取数函数:接收表单值与查询参数,返回当前页数据与总条数 */
|
|
16
|
+
export type DataTableSearchHandler<TData, TSearch> = (values: TSearch, query: DataTableQuery) => DataTableResult<TData> | Promise<DataTableResult<TData>>;
|
|
17
|
+
export interface DataTableProps<TData, TSearch extends Record<string, unknown> = Record<string, unknown>> {
|
|
18
|
+
/** 搜索表单字段;不传或为空数组时不渲染搜索区 */
|
|
19
|
+
searchFields?: FieldConfig[];
|
|
20
|
+
/** 搜索表单初始值;引用变化时同步进表单(不自动触发查询) */
|
|
21
|
+
searchValues?: Partial<TSearch>;
|
|
22
|
+
/** 搜索表单值变化通知,透传到 Form 的 onValuesChange(用户输入、外部 values 同步都会触发) */
|
|
23
|
+
onSearchValuesChange?: (values: TSearch) => void;
|
|
24
|
+
/** 是否显示搜索区底部的"重置/查询"按钮,默认 true */
|
|
25
|
+
showSearchActions?: boolean;
|
|
26
|
+
/** 取数函数:内部模式挂载/查询/重置/翻页/排序时调用,受控模式仅作为变化通知 */
|
|
27
|
+
onSearch: DataTableSearchHandler<TData, TSearch>;
|
|
28
|
+
/** 表格数据:传入则受控渲染 props.data;不传则由 onSearch 结果内部维护 */
|
|
29
|
+
data?: TData[];
|
|
30
|
+
/** 总条数:受控模式配合 data 使用,不传回退为 data.length */
|
|
31
|
+
total?: number;
|
|
32
|
+
columns: ColumnDef<TData>[];
|
|
33
|
+
/** 行 ID 提取函数,默认取 row.id */
|
|
34
|
+
rowId?: (row: TData) => string;
|
|
35
|
+
/** 是否显示选择列,默认取 !!onSelectionChange */
|
|
36
|
+
selectable?: boolean;
|
|
37
|
+
/** 初始选中行 ID */
|
|
38
|
+
selectedRowIds?: string[];
|
|
39
|
+
onSelectionChange?: (ids: string[]) => void;
|
|
40
|
+
/** 受控模式的加载态;内部模式由组件自行管理 */
|
|
41
|
+
loading?: boolean;
|
|
42
|
+
/** 空状态文案 */
|
|
43
|
+
emptyText?: string;
|
|
44
|
+
onRowClick?: (row: TData, index: number) => void;
|
|
45
|
+
onSortingChange?: (sorting: SortingState) => void;
|
|
46
|
+
/** 初始页码,默认 1(1 起) */
|
|
47
|
+
defaultPage?: number;
|
|
48
|
+
/** 每页条数,默认 10 */
|
|
49
|
+
defaultPageSize?: number;
|
|
50
|
+
/** 用户翻页通知(1 起;查询/重置/排序导致的页码重置不触发) */
|
|
51
|
+
onPageChange?: (page: number) => void;
|
|
52
|
+
/** 每页条数变化通知 */
|
|
53
|
+
onPageSizeChange?: (pageSize: number) => void;
|
|
54
|
+
/** 内部模式取数失败回调 */
|
|
55
|
+
onError?: (error: unknown) => void;
|
|
56
|
+
/** 工具栏插槽:渲染在搜索表单与表格之间(右对齐),常用于操作按钮 */
|
|
57
|
+
children?: JSX.Element;
|
|
58
|
+
className?: string;
|
|
59
|
+
}
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
import { t as e } from "../button-C9xYlZbo.js";
|
|
2
|
+
import { Portal as t, createComponent as n, insert as r, mergeProps as i, template as a } from "solid-js/web";
|
|
3
|
+
import { For as o, Show as s, createSignal as c, onMount as l } from "solid-js";
|
|
4
|
+
import { DrawerBackdrop as u, DrawerCloseTrigger as d, DrawerContent as f, DrawerDescription as p, DrawerGrabber as m, DrawerGrabberIndicator as h, DrawerPositioner as g, DrawerRootProvider as _, DrawerTitle as v, useDrawer as y } from "@ark-ui/solid/drawer";
|
|
5
|
+
//#region src/drawer/manager.tsx
|
|
6
|
+
var b = /*#__PURE__*/ a("<div class=van-drawer-header>"), x = /*#__PURE__*/ a("<footer class=van-drawer-footer>"), S = /*#__PURE__*/ a("<div class=van-drawer-content-inner><div class=van-drawer-body>"), [C, w] = c([]), T = (e) => {
|
|
7
|
+
let t = Math.random().toString(36).slice(2, 10);
|
|
8
|
+
w((n) => [...n, {
|
|
9
|
+
...e,
|
|
10
|
+
id: t
|
|
11
|
+
}]);
|
|
12
|
+
}, E = (e) => w((t) => t.filter((t) => t.id !== e));
|
|
13
|
+
function D(...e) {
|
|
14
|
+
let t;
|
|
15
|
+
if (typeof e[0] == "function") {
|
|
16
|
+
let [r] = e;
|
|
17
|
+
if (e.length === 3) {
|
|
18
|
+
let a = r;
|
|
19
|
+
t = {
|
|
20
|
+
...e[2],
|
|
21
|
+
content: (t) => n(a, i(t, () => e[1]))
|
|
22
|
+
};
|
|
23
|
+
} else t = e.length === 2 ? {
|
|
24
|
+
...e[1],
|
|
25
|
+
content: r
|
|
26
|
+
} : { content: r };
|
|
27
|
+
} else t = e[0];
|
|
28
|
+
T({
|
|
29
|
+
showCancel: !0,
|
|
30
|
+
showConfirm: !0,
|
|
31
|
+
confirmVariant: "primary",
|
|
32
|
+
...t
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
var O = { open: D };
|
|
36
|
+
function k() {
|
|
37
|
+
return n(o, {
|
|
38
|
+
get each() {
|
|
39
|
+
return C();
|
|
40
|
+
},
|
|
41
|
+
children: (e, t) => n(A, {
|
|
42
|
+
get index() {
|
|
43
|
+
return t();
|
|
44
|
+
},
|
|
45
|
+
item: e,
|
|
46
|
+
onPop: () => E(e.id)
|
|
47
|
+
})
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
function A(i) {
|
|
51
|
+
let [a, o] = c(!1), [C, w] = c(!1), T = null, E = null, D = y({ swipeDirection: {
|
|
52
|
+
bottom: "down",
|
|
53
|
+
left: "start",
|
|
54
|
+
right: "end",
|
|
55
|
+
top: "up"
|
|
56
|
+
}[i.item.placement ?? "right"] ?? "end" }), O = async () => {
|
|
57
|
+
if (T) {
|
|
58
|
+
o(!0);
|
|
59
|
+
try {
|
|
60
|
+
await T(async (e) => {
|
|
61
|
+
(!i.item.beforeClose || await i.item.beforeClose("confirm", e)) && D().setOpen(!1);
|
|
62
|
+
}, () => o(!1));
|
|
63
|
+
} catch {
|
|
64
|
+
o(!1);
|
|
65
|
+
}
|
|
66
|
+
} else i.item.beforeClose && o(!0), (!i.item.beforeClose || await i.item.beforeClose("confirm")) && D().setOpen(!1), i.item.beforeClose && o(!1);
|
|
67
|
+
}, k = async () => {
|
|
68
|
+
if (E) {
|
|
69
|
+
w(!0);
|
|
70
|
+
try {
|
|
71
|
+
await E(async (e) => {
|
|
72
|
+
(!i.item.beforeClose || await i.item.beforeClose("cancel", e)) && D().setOpen(!1);
|
|
73
|
+
}, () => w(!1));
|
|
74
|
+
} catch {
|
|
75
|
+
w(!1);
|
|
76
|
+
}
|
|
77
|
+
} else i.item.beforeClose && w(!0), (!i.item.beforeClose || await i.item.beforeClose("cancel")) && D().setOpen(!1), i.item.beforeClose && w(!1);
|
|
78
|
+
}, A;
|
|
79
|
+
return l(() => {
|
|
80
|
+
D().setOpen(!0), A && A.style.setProperty("--layer-index", String(i.index));
|
|
81
|
+
}), n(_, {
|
|
82
|
+
onExitComplete: () => {
|
|
83
|
+
i.onPop();
|
|
84
|
+
},
|
|
85
|
+
unmountOnExit: !0,
|
|
86
|
+
value: D,
|
|
87
|
+
get children() {
|
|
88
|
+
return n(t, { get children() {
|
|
89
|
+
return [n(u, {
|
|
90
|
+
class: "van-drawer-backdrop",
|
|
91
|
+
get style() {
|
|
92
|
+
return { "--z": 1e3 + i.index * 10 };
|
|
93
|
+
}
|
|
94
|
+
}), n(g, {
|
|
95
|
+
class: "van-drawer-positioner",
|
|
96
|
+
ref(e) {
|
|
97
|
+
var t = A;
|
|
98
|
+
typeof t == "function" ? t(e) : A = e;
|
|
99
|
+
},
|
|
100
|
+
get children() {
|
|
101
|
+
return n(f, {
|
|
102
|
+
class: "van-drawer-content",
|
|
103
|
+
get "data-has-nested"() {
|
|
104
|
+
return i.index > 0 ? "" : void 0;
|
|
105
|
+
},
|
|
106
|
+
get "data-placement"() {
|
|
107
|
+
return i.item.placement ?? "right";
|
|
108
|
+
},
|
|
109
|
+
draggable: !1,
|
|
110
|
+
get style() {
|
|
111
|
+
return {
|
|
112
|
+
...i.item.size ? { "--van-drawer-size": i.item.size } : {},
|
|
113
|
+
...i.item.offset ? { padding: i.item.offset } : {}
|
|
114
|
+
};
|
|
115
|
+
},
|
|
116
|
+
get children() {
|
|
117
|
+
var t = S(), o = t.firstChild;
|
|
118
|
+
return r(t, n(s, {
|
|
119
|
+
get when() {
|
|
120
|
+
return i.item.grabber;
|
|
121
|
+
},
|
|
122
|
+
get children() {
|
|
123
|
+
return n(m, {
|
|
124
|
+
class: "van-drawer-grabber",
|
|
125
|
+
get children() {
|
|
126
|
+
return n(h, { class: "van-drawer-grabber-indicator" });
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
}), o), r(t, n(s, {
|
|
131
|
+
get when() {
|
|
132
|
+
return i.item.title;
|
|
133
|
+
},
|
|
134
|
+
get children() {
|
|
135
|
+
var e = b();
|
|
136
|
+
return r(e, n(v, {
|
|
137
|
+
class: "van-drawer-title",
|
|
138
|
+
get children() {
|
|
139
|
+
return i.item.title;
|
|
140
|
+
}
|
|
141
|
+
}), null), r(e, n(s, {
|
|
142
|
+
get when() {
|
|
143
|
+
return i.item.showClose;
|
|
144
|
+
},
|
|
145
|
+
get children() {
|
|
146
|
+
return n(d, {
|
|
147
|
+
class: "van-drawer-close",
|
|
148
|
+
children: "✕"
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
}), null), e;
|
|
152
|
+
}
|
|
153
|
+
}), o), r(t, n(s, {
|
|
154
|
+
get when() {
|
|
155
|
+
return i.item.description;
|
|
156
|
+
},
|
|
157
|
+
get children() {
|
|
158
|
+
return n(p, {
|
|
159
|
+
class: "van-drawer-desc",
|
|
160
|
+
get children() {
|
|
161
|
+
return i.item.description;
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
}), o), r(o, n(s, {
|
|
166
|
+
get when() {
|
|
167
|
+
return i.item.content;
|
|
168
|
+
},
|
|
169
|
+
get children() {
|
|
170
|
+
return i.item.content({
|
|
171
|
+
positive: (e) => {
|
|
172
|
+
T = e;
|
|
173
|
+
},
|
|
174
|
+
negative: (e) => {
|
|
175
|
+
E = e;
|
|
176
|
+
}
|
|
177
|
+
}, D);
|
|
178
|
+
}
|
|
179
|
+
})), r(t, n(s, {
|
|
180
|
+
get when() {
|
|
181
|
+
return i.item.showCancel || i.item.showConfirm;
|
|
182
|
+
},
|
|
183
|
+
get children() {
|
|
184
|
+
var t = x();
|
|
185
|
+
return r(t, n(s, {
|
|
186
|
+
get when() {
|
|
187
|
+
return i.item.showCancel;
|
|
188
|
+
},
|
|
189
|
+
get children() {
|
|
190
|
+
return n(e, {
|
|
191
|
+
get loading() {
|
|
192
|
+
return C();
|
|
193
|
+
},
|
|
194
|
+
onClick: k,
|
|
195
|
+
get variant() {
|
|
196
|
+
return j(i.item.cancelVariant);
|
|
197
|
+
},
|
|
198
|
+
get children() {
|
|
199
|
+
return i.item.cancelText ?? "取消";
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
}), null), r(t, n(s, {
|
|
204
|
+
get when() {
|
|
205
|
+
return i.item.showConfirm;
|
|
206
|
+
},
|
|
207
|
+
get children() {
|
|
208
|
+
return n(e, {
|
|
209
|
+
get loading() {
|
|
210
|
+
return a();
|
|
211
|
+
},
|
|
212
|
+
onClick: O,
|
|
213
|
+
get variant() {
|
|
214
|
+
return j(i.item.confirmVariant);
|
|
215
|
+
},
|
|
216
|
+
get children() {
|
|
217
|
+
return i.item.confirmText ?? "确定";
|
|
218
|
+
}
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
}), null), t;
|
|
222
|
+
}
|
|
223
|
+
}), null), t;
|
|
224
|
+
}
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
})];
|
|
228
|
+
} });
|
|
229
|
+
}
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
function j(e) {
|
|
233
|
+
return e === "danger" ? "danger" : e === "outline" ? "outline" : e === "primary" ? "primary" : "ghost";
|
|
234
|
+
}
|
|
235
|
+
//#endregion
|
|
236
|
+
export { k as Drawer, O as drawer };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { OpenOptions } from './type';
|
|
2
|
+
declare function drawerOpen(opts: OpenOptions): void;
|
|
3
|
+
declare function drawerOpen(component: any, contentProps: Record<string, any>, options: OpenOptions): void;
|
|
4
|
+
declare function drawerOpen(fn: any, options: OpenOptions): void;
|
|
5
|
+
export declare const drawer: {
|
|
6
|
+
open: typeof drawerOpen;
|
|
7
|
+
};
|
|
8
|
+
export declare function Drawer(): import("solid-js").JSX.Element;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { UseDrawerReturn as ArkDrawerApi } from '@ark-ui/solid/drawer';
|
|
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 DrawerContentProps {
|
|
6
|
+
positive: (handler: Handler) => void;
|
|
7
|
+
negative: (handler: Handler) => void;
|
|
8
|
+
}
|
|
9
|
+
export type DrawerPlacement = "bottom" | "left" | "right" | "top";
|
|
10
|
+
export type OpenOptions = {
|
|
11
|
+
beforeClose?: (action: "cancel" | "confirm", payload?: any) => boolean | Promise<boolean>;
|
|
12
|
+
cancelText?: string;
|
|
13
|
+
cancelVariant?: "danger" | "outline" | "primary";
|
|
14
|
+
confirmText?: string;
|
|
15
|
+
confirmVariant?: "danger" | "outline" | "primary";
|
|
16
|
+
/** 闭包传参:content 只能是函数 */
|
|
17
|
+
content?: (props: DrawerContentProps, drawer?: ArkDrawerApi) => JSX.Element;
|
|
18
|
+
description?: string;
|
|
19
|
+
/** 是否显示拖拽手柄 */
|
|
20
|
+
grabber?: boolean;
|
|
21
|
+
/** 抽屉内容区 padding,如 "20px",默认 0 */
|
|
22
|
+
offset?: string;
|
|
23
|
+
/** 抽屉方向,默认 "right" */
|
|
24
|
+
placement?: DrawerPlacement;
|
|
25
|
+
showCancel?: boolean;
|
|
26
|
+
showClose?: boolean;
|
|
27
|
+
showConfirm?: boolean;
|
|
28
|
+
/** 抽屉尺寸:left/right 时是宽度,top/bottom 时是高度,默认 "400px" */
|
|
29
|
+
size?: string;
|
|
30
|
+
title?: string;
|
|
31
|
+
};
|
|
32
|
+
export interface DrawerStackItem extends OpenOptions {
|
|
33
|
+
id: string;
|
|
34
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function FieldSkeleton(): import("solid-js").JSX.Element;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { DatePickerFieldConfig, DatePickerStoredValue } from '../type';
|
|
2
|
+
export declare function FormDatePicker(p: {
|
|
3
|
+
controlId: string;
|
|
4
|
+
field: DatePickerFieldConfig;
|
|
5
|
+
onBlur: () => void;
|
|
6
|
+
onChange: (v: DatePickerStoredValue) => void;
|
|
7
|
+
value: unknown;
|
|
8
|
+
}): import("solid-js").JSX.Element;
|