intable 0.0.57 → 0.0.59
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/__uno.css +1 -1
- package/dist/components/AndOrFields.js +164 -123
- package/dist/hooks/useSelector.d.ts +2 -1
- package/dist/hooks/useSelector.js +48 -51
- package/dist/index.d.ts +3 -1
- package/dist/index.js +30 -15
- package/dist/plugins/DiffPlugin.js +5 -2
- package/dist/plugins/EditablePlugin.js +75 -76
- package/dist/plugins/ExpandPlugin.js +4 -1
- package/dist/plugins/HeaderGroup.js +38 -39
- package/dist/plugins/LoadMorePlugin.d.ts +1 -1
- package/dist/plugins/LoadMorePlugin.js +30 -31
- package/dist/plugins/PaginationPlugin.d.ts +22 -0
- package/dist/plugins/PaginationPlugin.js +105 -0
- package/dist/plugins/RowGroupPlugin.js +57 -58
- package/dist/plugins/RowSelectionPlugin.js +5 -2
- package/dist/plugins/TreePlugin.d.ts +4 -1
- package/dist/plugins/TreePlugin.js +54 -48
- package/dist/plugins/VirtualScrollPlugin.js +76 -77
- package/dist/style.css +2 -2
- package/package.json +1 -1
|
@@ -1,72 +1,69 @@
|
|
|
1
1
|
import { toArr } from "../utils.js";
|
|
2
2
|
import { createMemo, createSelector, createSignal } from "solid-js";
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
var KeyedSet = class extends Set {
|
|
4
|
+
#key;
|
|
5
|
+
#map = /* @__PURE__ */ new Map();
|
|
6
|
+
constructor(e = [], i) {
|
|
7
|
+
super(), this.#key = i;
|
|
8
|
+
for (let i of e) this.add(i);
|
|
6
9
|
}
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
this[_Symbol$toStringTag] = "SingleSet", this.#value = Array.from(e || [])[0];
|
|
10
|
+
has(e) {
|
|
11
|
+
return this.#key ? this.#map.has(e[this.#key]) : super.has(e);
|
|
10
12
|
}
|
|
11
13
|
add(e) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
if (this.#key) {
|
|
15
|
+
let i = e[this.#key], a = this.#map.get(i);
|
|
16
|
+
a && super.delete(a), this.#map.set(i, e);
|
|
17
|
+
}
|
|
18
|
+
return super.add(e);
|
|
16
19
|
}
|
|
17
20
|
delete(e) {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
has(e) {
|
|
24
|
-
return this.#value === e;
|
|
25
|
-
}
|
|
26
|
-
get size() {
|
|
27
|
-
return this.#value === void 0 ? 0 : 1;
|
|
28
|
-
}
|
|
29
|
-
entries() {
|
|
30
|
-
return this.values();
|
|
21
|
+
if (this.#key) {
|
|
22
|
+
let i = e[this.#key];
|
|
23
|
+
e = this.#map.get(i) ?? e, this.#map.delete(i);
|
|
24
|
+
}
|
|
25
|
+
return super.delete(e);
|
|
31
26
|
}
|
|
32
|
-
|
|
33
|
-
return this.
|
|
27
|
+
clear() {
|
|
28
|
+
return this.#map.clear(), super.clear();
|
|
34
29
|
}
|
|
35
|
-
|
|
36
|
-
|
|
30
|
+
}, SingleSet = class extends KeyedSet {
|
|
31
|
+
constructor(i, a) {
|
|
32
|
+
super([], a);
|
|
33
|
+
for (let a of toArr(i)) this.add(a);
|
|
37
34
|
}
|
|
38
|
-
|
|
39
|
-
return this.
|
|
35
|
+
add(e) {
|
|
36
|
+
return this.clear(), super.add(e);
|
|
40
37
|
}
|
|
41
38
|
};
|
|
42
|
-
function useSelector(
|
|
43
|
-
let { value:
|
|
44
|
-
|
|
45
|
-
},
|
|
46
|
-
|
|
47
|
-
}, _ = (e) => {
|
|
48
|
-
if (!m(e)) return;
|
|
49
|
-
let i = new u(d());
|
|
50
|
-
i.add(e), f(i), s?.(b());
|
|
39
|
+
function useSelector(o) {
|
|
40
|
+
let { value: s, onChange: c, multiple: l = !1, selectable: u } = o, d = (e) => l ? new KeyedSet(e, o.key) : new SingleSet(e, o.key), [f, p] = createSignal(d(toArr(s))), m = createSelector(f, (e, i) => i.has(e)), h = (e) => u ? u(e) : !0, g = () => {
|
|
41
|
+
p(d()), c?.(x());
|
|
42
|
+
}, _ = (i) => {
|
|
43
|
+
h(i) && (p(d(toArr(i))), c?.(x()));
|
|
51
44
|
}, v = (e) => {
|
|
52
|
-
|
|
53
|
-
|
|
45
|
+
if (!h(e)) return;
|
|
46
|
+
let i = d(f());
|
|
47
|
+
i.add(e), p(i), c?.(x());
|
|
54
48
|
}, y = (e) => {
|
|
55
|
-
|
|
56
|
-
|
|
49
|
+
let i = d(f());
|
|
50
|
+
i.delete(e), p(i), c?.(x());
|
|
51
|
+
}, b = (e) => {
|
|
52
|
+
m(e) ? y(e) : v(e);
|
|
53
|
+
}, x = createMemo(() => l ? Array.from(f()) : [...f()][0]);
|
|
57
54
|
return {
|
|
58
|
-
clear:
|
|
59
|
-
set:
|
|
60
|
-
has:
|
|
61
|
-
add:
|
|
62
|
-
del:
|
|
63
|
-
toggle:
|
|
64
|
-
isAll: (e) => !!e.length && e.every((e) =>
|
|
55
|
+
clear: g,
|
|
56
|
+
set: _,
|
|
57
|
+
has: m,
|
|
58
|
+
add: v,
|
|
59
|
+
del: y,
|
|
60
|
+
toggle: b,
|
|
61
|
+
isAll: (e) => !!e.length && e.every((e) => m(e)),
|
|
65
62
|
selectAll: (e) => {
|
|
66
|
-
|
|
63
|
+
p(d(e)), c?.(x());
|
|
67
64
|
},
|
|
68
65
|
get value() {
|
|
69
|
-
return
|
|
66
|
+
return x();
|
|
70
67
|
}
|
|
71
68
|
};
|
|
72
69
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -22,6 +22,7 @@ import './plugins/AutoFillPlugin';
|
|
|
22
22
|
import './plugins/FilterPlugin';
|
|
23
23
|
import './plugins/TooltipPlugin';
|
|
24
24
|
import './plugins/KeyEachPlugin';
|
|
25
|
+
import './plugins/PaginationPlugin';
|
|
25
26
|
export declare const Ctx: import("solid-js").Context<{
|
|
26
27
|
props: TableProps2;
|
|
27
28
|
store: TableStore;
|
|
@@ -30,7 +31,7 @@ type Requireds<T, K extends keyof T> = Pri<Omit<T, K> & Required<Pick<T, K>>>;
|
|
|
30
31
|
type Pri<T> = {
|
|
31
32
|
[K in keyof T]: T[K];
|
|
32
33
|
};
|
|
33
|
-
type TableProps2 = Requireds<TableProps, ('Scroll' | 'Table' | 'Thead' | 'Tbody' | 'Tr' | 'Th' | 'Td' | 'EachRows' | 'EachCells' | 'rowKey' | 'data' | 'columns' | 'newRow')>;
|
|
34
|
+
type TableProps2 = Requireds<TableProps, ('Scroll' | 'ScrollFooter' | 'LoadMore' | 'Table' | 'Thead' | 'Tbody' | 'Tr' | 'Th' | 'Td' | 'EachRows' | 'EachCells' | 'rowKey' | 'data' | 'columns' | 'newRow')>;
|
|
34
35
|
type Each<T = any> = (props: {
|
|
35
36
|
each: T[];
|
|
36
37
|
children: (e: () => T, i: () => number) => JSX.Element;
|
|
@@ -88,6 +89,7 @@ export interface TableProps {
|
|
|
88
89
|
EachRows?: Each;
|
|
89
90
|
EachCells?: Each<TableColumn>;
|
|
90
91
|
Footer?: Component<any>;
|
|
92
|
+
ScrollFooter?: Component<any>;
|
|
91
93
|
cellClass?: ((props: Omit<TDProps, 'y' | 'data'> & {
|
|
92
94
|
y?: number;
|
|
93
95
|
data?: any;
|
package/dist/index.js
CHANGED
|
@@ -24,8 +24,9 @@ import { FilterPlugin } from "./plugins/FilterPlugin.js";
|
|
|
24
24
|
import { ImportExportPlugin } from "./plugins/ImportExportPlugin.js";
|
|
25
25
|
import { TooltipPlugin } from "./plugins/TooltipPlugin.js";
|
|
26
26
|
import { KeyEachPlugin } from "./plugins/KeyEachPlugin.js";
|
|
27
|
+
import { PaginationPlugin } from "./plugins/PaginationPlugin.js";
|
|
27
28
|
import loading_bold_default from "./loading-bold.js";
|
|
28
|
-
import { createComponent, insert, memo, mergeProps, spread, template, use } from "solid-js/web";
|
|
29
|
+
import { className, createComponent, effect, insert, memo, mergeProps, spread, template, use } from "solid-js/web";
|
|
29
30
|
import { $PROXY, For, batch, createComputed, createContext, createEffect, createMemo, createRenderEffect, createSignal, getOwner, mapArray, mergeProps as mergeProps$1, onCleanup, onMount, runWithOwner, useContext } from "solid-js";
|
|
30
31
|
import { createMutable } from "solid-js/store";
|
|
31
32
|
import { combineProps } from "@solid-primitives/props";
|
|
@@ -33,7 +34,7 @@ import { createLazyMemo } from "@solid-primitives/memo";
|
|
|
33
34
|
import { createElementSize, makeResizeObserver } from "@solid-primitives/resize-observer";
|
|
34
35
|
import { createScrollPosition } from "@solid-primitives/scroll";
|
|
35
36
|
import { difference, isEqual, memoize, sumBy, uniq } from "es-toolkit";
|
|
36
|
-
var _tmpl$ = /* @__PURE__ */ template("<div>"), _tmpl$2 = /* @__PURE__ */ template("<table>"), _tmpl$3 = /* @__PURE__ */ template("<thead>"), _tmpl$4 = /* @__PURE__ */ template("<tbody>"), _tmpl$5 = /* @__PURE__ */ template("<tr>"), _tmpl$6 = /* @__PURE__ */ template("<th>"), _tmpl$7 = /* @__PURE__ */ template("<td>"), _tmpl$8 = /* @__PURE__ */ template("<div class=data-table__layers>"), _tmpl$9 = /* @__PURE__ */ template("<div class
|
|
37
|
+
var _tmpl$ = /* @__PURE__ */ template("<div>"), _tmpl$2 = /* @__PURE__ */ template("<table>"), _tmpl$3 = /* @__PURE__ */ template("<thead>"), _tmpl$4 = /* @__PURE__ */ template("<tbody>"), _tmpl$5 = /* @__PURE__ */ template("<tr>"), _tmpl$6 = /* @__PURE__ */ template("<th>"), _tmpl$7 = /* @__PURE__ */ template("<td>"), _tmpl$8 = /* @__PURE__ */ template("<div class=data-table__layers>"), _tmpl$9 = /* @__PURE__ */ template("<div class=data-table__empty>No data"), _tmpl$0 = /* @__PURE__ */ template("<div class=data-table__loading>");
|
|
37
38
|
const Ctx = createContext({
|
|
38
39
|
props: {},
|
|
39
40
|
store: {}
|
|
@@ -233,7 +234,7 @@ function BasePlugin() {
|
|
|
233
234
|
return K && X ? "" : !K && !X ? "is-scroll-mid" : K ? "is-scroll-left" : X ? "is-scroll-right" : "";
|
|
234
235
|
});
|
|
235
236
|
K = combineProps(K, { get class() {
|
|
236
|
-
return `data-table
|
|
237
|
+
return `data-table data-table--${q.props.size} flex flex-col`;
|
|
237
238
|
} }, {
|
|
238
239
|
get class() {
|
|
239
240
|
return q.props.class;
|
|
@@ -246,22 +247,35 @@ function BasePlugin() {
|
|
|
246
247
|
} });
|
|
247
248
|
let Z = mapArray(() => q.plugins.flatMap((_) => _.layers ?? []), (_) => createComponent(_, q));
|
|
248
249
|
return createComponent(_, mergeProps({ tabindex: -1 }, K, { get children() {
|
|
249
|
-
return [
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
250
|
+
return [
|
|
251
|
+
createComponent(q.props.Header, {}),
|
|
252
|
+
(() => {
|
|
253
|
+
var _ = _tmpl$8();
|
|
254
|
+
return insert(_, Z), _;
|
|
255
|
+
})(),
|
|
256
|
+
(() => {
|
|
257
|
+
var _ = _tmpl$();
|
|
258
|
+
return use((_) => q.scroll_el = _, _), insert(_, () => K.children, null), insert(_, createComponent(q.props.ScrollFooter, {}), null), insert(_, (() => {
|
|
259
|
+
var _ = memo(() => !q.props.data.length);
|
|
260
|
+
return () => _() && _tmpl$9();
|
|
261
|
+
})(), null), effect(() => className(_, `data-table--scroll-view relative h-full max-h-inherit flex-1 ${q.props.border && "data-table--border"}`)), _;
|
|
262
|
+
})(),
|
|
263
|
+
createComponent(q.props.Footer, {})
|
|
264
|
+
];
|
|
259
265
|
} }));
|
|
260
266
|
},
|
|
267
|
+
Header: ({ Header: _ }) => (_ ??= (_) => (() => {
|
|
268
|
+
var K = _tmpl$();
|
|
269
|
+
return spread(K, mergeProps(() => combineProps({ class: "data-table__header" }, _)), !1, !1), K;
|
|
270
|
+
})(), (K) => createComponent(_, K)),
|
|
261
271
|
Footer: ({ Footer: _ }) => (_ ??= (_) => (() => {
|
|
262
272
|
var K = _tmpl$();
|
|
263
273
|
return spread(K, mergeProps(() => combineProps({ class: "data-table__footer" }, _)), !1, !1), K;
|
|
264
274
|
})(), (K) => createComponent(_, K)),
|
|
275
|
+
ScrollFooter: ({ ScrollFooter: _ }) => (_ ??= (_) => (() => {
|
|
276
|
+
var K = _tmpl$();
|
|
277
|
+
return spread(K, mergeProps(() => combineProps({ class: "data-table__scroll__footer" }, _)), !1, !1), K;
|
|
278
|
+
})(), (K) => createComponent(_, K)),
|
|
265
279
|
Table: ({ Table: _ = J }, { store: K }) => (q) => (q = combineProps({
|
|
266
280
|
ref: (_) => K.table = _,
|
|
267
281
|
class: "data-table--table"
|
|
@@ -337,7 +351,7 @@ function BasePlugin() {
|
|
|
337
351
|
},
|
|
338
352
|
layers: [function(_) {
|
|
339
353
|
return memo(() => memo(() => !!_.props.loading)() ? (() => {
|
|
340
|
-
var _ = _tmpl$
|
|
354
|
+
var _ = _tmpl$0();
|
|
341
355
|
return insert(_, createComponent(loading_bold_default, { class: "text-2xl animate-spin" })), _;
|
|
342
356
|
})() : null);
|
|
343
357
|
}]
|
|
@@ -417,6 +431,7 @@ const defaultsPlugins = [
|
|
|
417
431
|
AutoFillPlugin,
|
|
418
432
|
ImportExportPlugin,
|
|
419
433
|
TooltipPlugin,
|
|
420
|
-
KeyEachPlugin
|
|
434
|
+
KeyEachPlugin,
|
|
435
|
+
PaginationPlugin
|
|
421
436
|
];
|
|
422
437
|
export { Ctx, Intable, src_default as default, defaultsPlugins };
|
|
@@ -43,7 +43,10 @@ const DiffPlugin = {
|
|
|
43
43
|
}
|
|
44
44
|
if (o) return e;
|
|
45
45
|
}
|
|
46
|
-
return diffArrays(l, e, { comparator: (e, o) => e == o || e[s] == o[s] }).flatMap((e) => e.added ?
|
|
46
|
+
return diffArrays(l, e, { comparator: (e, o) => e == o || e[s] == o[s] }).flatMap((e) => e.added ? c.added ? e.value.map((e) => ({
|
|
47
|
+
...e,
|
|
48
|
+
[NEW]: 1
|
|
49
|
+
})) : e.value : e.removed ? c.removed ? e.value.map((e) => ({
|
|
47
50
|
...e,
|
|
48
51
|
[DEL]: 1,
|
|
49
52
|
[o.internal]: 1
|
|
@@ -52,7 +55,7 @@ const DiffPlugin = {
|
|
|
52
55
|
Td: ({ Td: u }, { store: f }) => f.props.diff?.data ? (p) => {
|
|
53
56
|
let m = createMemo(() => {
|
|
54
57
|
let { diff: e } = f.props, o = p.data[f.props.rowKey];
|
|
55
|
-
return [p.data[NEW] ? "bg-green!" : p.data[DEL] ? "bg-red!" : p.data[f.internal] ? "" : e.changed && p.data[p.col.id]
|
|
58
|
+
return [p.data[NEW] ? "bg-green!" : p.data[DEL] ? "bg-red!" : p.data[f.internal] ? "" : e.changed && !isEqual(p.data[p.col.id], f.diffDataKeyed()[o]?.[p.col.id]) ? "bg-green!" : ""].join(" ");
|
|
56
59
|
});
|
|
57
60
|
return createComponent(u, mergeProps$2(p, {
|
|
58
61
|
get class() {
|
|
@@ -2,9 +2,8 @@ import { chooseFile, resolveOptions, unFn } from "../utils.js";
|
|
|
2
2
|
import { mergeProps as mergeProps$2 } from "../mergeProps2.js";
|
|
3
3
|
import { Checkbox, Files } from "./RenderPlugin/components.js";
|
|
4
4
|
import Textarea_default from "../components/Textarea.js";
|
|
5
|
-
import { Ctx } from "../index.js";
|
|
6
5
|
import { addEventListener, createComponent, delegateEvents, effect, insert, memo, spread, template, use } from "solid-js/web";
|
|
7
|
-
import { createEffect, createMemo, createRoot, createSignal, on, onCleanup
|
|
6
|
+
import { createEffect, createMemo, createRoot, createSignal, on, onCleanup } from "solid-js";
|
|
8
7
|
import { createMutable } from "solid-js/store";
|
|
9
8
|
import { createAsyncMemo } from "@solid-primitives/memo";
|
|
10
9
|
import { delay } from "es-toolkit";
|
|
@@ -13,109 +12,109 @@ const EditablePlugin = {
|
|
|
13
12
|
name: "editable",
|
|
14
13
|
store: () => ({ editors: { ...editors } }),
|
|
15
14
|
rewriteProps: {
|
|
16
|
-
editable: ({ editable: e }, { store:
|
|
17
|
-
let
|
|
18
|
-
return !!
|
|
15
|
+
editable: ({ editable: e }, { store: h }) => (_) => {
|
|
16
|
+
let v = [_.col.editable, e].filter((e) => e != null);
|
|
17
|
+
return !!v.length && v.every((e) => unFn(e, _)) && !_.data[h.internal] && !_.col[h.internal];
|
|
19
18
|
},
|
|
20
|
-
Td: ({ Td: e }, { store:
|
|
21
|
-
let
|
|
22
|
-
return createMemo(() =>
|
|
23
|
-
let
|
|
19
|
+
Td: ({ Td: e }, { store: h }) => (v) => {
|
|
20
|
+
let y, b = () => unFn(h.props.editable, v);
|
|
21
|
+
return createMemo(() => b() ? unFn(() => {
|
|
22
|
+
let g = "", [C, w] = createSignal(!1), E = () => (([e, h]) => v.x == e && v.y == h)(h.selected.start || []), D = () => b() && !C() && E(), [A, j] = createSignal(!1), M = createAsyncMemo(() => {
|
|
24
23
|
if (C()) {
|
|
25
|
-
let e = createMemo(() => JSON.stringify(
|
|
26
|
-
createEffect(on(e, () =>
|
|
27
|
-
let
|
|
28
|
-
props:
|
|
29
|
-
col:
|
|
30
|
-
eventKey:
|
|
31
|
-
data:
|
|
32
|
-
value:
|
|
24
|
+
let e = createMemo(() => JSON.stringify(h.selected ?? "{}"));
|
|
25
|
+
createEffect(on(e, () => w(!1), { defer: !0 })), F.w = y.getBoundingClientRect().width, F.h = y.getBoundingClientRect().height;
|
|
26
|
+
let _ = !1, b = v.data[v.col.id], x = ((e) => typeof e == "string" ? h.editors[e] : e)(v.col.editor ?? v.col.type ?? (v.col.enum ? "select" : "text")), S = {
|
|
27
|
+
props: v.col.editorProps,
|
|
28
|
+
col: v.col,
|
|
29
|
+
eventKey: g,
|
|
30
|
+
data: v.data,
|
|
31
|
+
value: b,
|
|
33
32
|
ok: async () => {
|
|
34
|
-
await
|
|
33
|
+
await N(T.getValue()), w(!1);
|
|
35
34
|
},
|
|
36
|
-
cancel: () => (
|
|
37
|
-
onChange: (e) => C() &&
|
|
38
|
-
},
|
|
39
|
-
return queueMicrotask(() =>
|
|
40
|
-
!
|
|
41
|
-
...
|
|
42
|
-
[
|
|
43
|
-
}),
|
|
44
|
-
}), [
|
|
35
|
+
cancel: () => (_ = !0, w(!1)),
|
|
36
|
+
onChange: (e) => C() && N(e).catch(() => {})
|
|
37
|
+
}, T = x(S);
|
|
38
|
+
return queueMicrotask(() => T.focus?.()), onCleanup(() => {
|
|
39
|
+
!_ && T.getValue() !== b && h.commands.rowChange({
|
|
40
|
+
...props.data[v.y],
|
|
41
|
+
[v.col.id]: T.getValue()
|
|
42
|
+
}), _ || N(T.getValue()).catch(() => {}), g = "", T.destroy();
|
|
43
|
+
}), [S, T];
|
|
45
44
|
}
|
|
46
45
|
});
|
|
47
|
-
async function
|
|
46
|
+
async function N(e) {
|
|
48
47
|
try {
|
|
49
|
-
|
|
48
|
+
j(!0), await h.validateCell(e, v.data, v.col);
|
|
50
49
|
} finally {
|
|
51
|
-
|
|
50
|
+
j(!1);
|
|
52
51
|
}
|
|
53
52
|
}
|
|
54
|
-
let
|
|
53
|
+
let P, F = createMutable({
|
|
55
54
|
w: 0,
|
|
56
55
|
h: 0
|
|
57
|
-
}),
|
|
58
|
-
ref: (e) => (
|
|
56
|
+
}), I = mergeProps$2(v, {
|
|
57
|
+
ref: (e) => (y = e, v.ref?.(e)),
|
|
59
58
|
get class() {
|
|
60
|
-
return [C() ? "is-editing" : "",
|
|
59
|
+
return [C() ? "is-editing" : "", v.class].filter(Boolean).join(" ");
|
|
61
60
|
},
|
|
62
61
|
get style() {
|
|
63
|
-
return [C() ? `width: ${
|
|
62
|
+
return [C() ? `width: ${F.w}px; height: ${F.h}px; padding: 0; ` : "", v.style].filter(Boolean).join(" ");
|
|
64
63
|
},
|
|
65
|
-
onClick: (e) => (
|
|
66
|
-
onDblClick: (e) => (
|
|
67
|
-
onKeyDown: (e) => (e.key == "Escape" &&
|
|
64
|
+
onClick: (e) => (P?.focus?.(), v.onClick?.(e)),
|
|
65
|
+
onDblClick: (e) => (w(b()), v.onDblClick?.(e)),
|
|
66
|
+
onKeyDown: (e) => (e.key == "Escape" && M()?.[0].cancel(), v.onKeyDown?.(e))
|
|
68
67
|
});
|
|
69
|
-
return createComponent(e, mergeProps$2(
|
|
70
|
-
return [() =>
|
|
68
|
+
return createComponent(e, mergeProps$2(I, { get children() {
|
|
69
|
+
return [() => M()?.[1]?.el ? (() => {
|
|
71
70
|
var e = _tmpl$();
|
|
72
71
|
return addEventListener(e, "keydown", (e) => {
|
|
73
|
-
e.stopPropagation(), e.key == "Enter" && !e.shiftKey && (
|
|
74
|
-
}), addEventListener(e, "pointerdown", (e) => e.stopPropagation()), insert(e, () =>
|
|
75
|
-
var e = memo(() => !!
|
|
72
|
+
e.stopPropagation(), e.key == "Enter" && !e.shiftKey && (M()?.[0].ok(), e.preventDefault()), e.key == "Escape" && M()?.[0].cancel();
|
|
73
|
+
}), addEventListener(e, "pointerdown", (e) => e.stopPropagation()), insert(e, () => M()?.[1]?.el, null), insert(e, (() => {
|
|
74
|
+
var e = memo(() => !!A());
|
|
76
75
|
return () => e() && _tmpl$2();
|
|
77
76
|
})(), null), e;
|
|
78
|
-
})() :
|
|
77
|
+
})() : v.children, () => D() && (() => {
|
|
79
78
|
var e = _tmpl$3();
|
|
80
79
|
return e.addEventListener("compositionend", () => {
|
|
81
|
-
|
|
80
|
+
w(!0);
|
|
82
81
|
}), e.$$input = (e) => {
|
|
83
|
-
|
|
82
|
+
g = e.target.value, w(!e.isComposing);
|
|
84
83
|
}, e.$$keydown = (e) => {
|
|
85
84
|
e.key == " " && e.preventDefault();
|
|
86
85
|
}, use((e) => {
|
|
87
|
-
|
|
86
|
+
P = e, delay(0).then(() => e.focus({ preventScroll: !0 }));
|
|
88
87
|
}, e), e;
|
|
89
88
|
})()];
|
|
90
89
|
} }));
|
|
91
|
-
}) : createComponent(e,
|
|
90
|
+
}) : createComponent(e, v));
|
|
92
91
|
}
|
|
93
92
|
}
|
|
94
93
|
};
|
|
95
|
-
var createEditor = (e,
|
|
96
|
-
let [
|
|
94
|
+
var createEditor = (e, g, v) => ({ eventKey: y, value: b, col: x, ok: C, cancel: w, props: T, onChange: E }) => createRoot((w) => {
|
|
95
|
+
let [D, O] = createSignal(y || b), k;
|
|
97
96
|
return createComponent(e, mergeProps$2({
|
|
98
|
-
ref: (e) =>
|
|
97
|
+
ref: (e) => k = e,
|
|
99
98
|
class: "relative block px-2 size-full z-9 box-border resize-none outline-0",
|
|
100
99
|
get value() {
|
|
101
|
-
return
|
|
100
|
+
return D();
|
|
102
101
|
},
|
|
103
|
-
onInput: (e) => (
|
|
104
|
-
onChange: (e) => (
|
|
102
|
+
onInput: (e) => (O(e instanceof Event ? e.target.value : e), E?.(D())),
|
|
103
|
+
onChange: (e) => (O(e instanceof Event ? e.target.value : e), E?.(D()), v && C()),
|
|
105
104
|
get options() {
|
|
106
|
-
return memo(() => !!
|
|
105
|
+
return memo(() => !!x.enum)() ? resolveOptions(x.enum ?? []) : void 0;
|
|
107
106
|
}
|
|
108
|
-
},
|
|
109
|
-
|
|
107
|
+
}, g, T)), setTimeout(() => {
|
|
108
|
+
v && k?.showPicker?.();
|
|
110
109
|
}, 0), {
|
|
111
|
-
el:
|
|
112
|
-
getValue:
|
|
113
|
-
focus: () =>
|
|
114
|
-
destroy:
|
|
110
|
+
el: k,
|
|
111
|
+
getValue: D,
|
|
112
|
+
focus: () => k.focus(),
|
|
113
|
+
destroy: w
|
|
115
114
|
};
|
|
116
115
|
}), Input = (e) => (() => {
|
|
117
|
-
var
|
|
118
|
-
return spread(
|
|
116
|
+
var h = _tmpl$4();
|
|
117
|
+
return spread(h, e, !1, !1), h;
|
|
119
118
|
})();
|
|
120
119
|
const editors = {
|
|
121
120
|
text: createEditor(Input),
|
|
@@ -133,30 +132,30 @@ const editors = {
|
|
|
133
132
|
color: createEditor(Input, { type: "color" }),
|
|
134
133
|
tel: createEditor(Input, { type: "tel" }),
|
|
135
134
|
password: createEditor(Input, { type: "password" }),
|
|
136
|
-
file: createEditor((
|
|
135
|
+
file: createEditor((h) => createComponent(Files, mergeProps$2(h, {
|
|
137
136
|
class: "relative z-9 outline-2 outline-blue min-h-a! h-a! p-1 bg-#fff",
|
|
138
|
-
onAdd: () => chooseFile({ multiple: !0 }).then((e) =>
|
|
137
|
+
onAdd: () => chooseFile({ multiple: !0 }).then((e) => h.onChange([...h.value || [], ...e.map((e) => ({
|
|
139
138
|
name: e.name,
|
|
140
139
|
size: e.size
|
|
141
140
|
}))]))
|
|
142
141
|
}))),
|
|
143
142
|
checkbox: createEditor((e) => (() => {
|
|
144
|
-
var
|
|
145
|
-
return typeof
|
|
143
|
+
var h = _tmpl$5(), g = e.ref;
|
|
144
|
+
return typeof g == "function" ? use(g, h) : e.ref = h, insert(h, createComponent(Checkbox, mergeProps$2(e, {
|
|
146
145
|
ref: () => {},
|
|
147
146
|
onInput: () => {},
|
|
148
147
|
class: "mx-3!"
|
|
149
|
-
}))),
|
|
148
|
+
}))), h;
|
|
150
149
|
})()),
|
|
151
150
|
select: createEditor((e) => (() => {
|
|
152
|
-
var
|
|
153
|
-
return spread(
|
|
154
|
-
var
|
|
155
|
-
return () =>
|
|
156
|
-
})(), null), insert(
|
|
157
|
-
var
|
|
158
|
-
return insert(
|
|
159
|
-
})()), null), effect(() =>
|
|
151
|
+
var h = _tmpl$6();
|
|
152
|
+
return spread(h, e, !1, !0), insert(h, (() => {
|
|
153
|
+
var h = memo(() => !e.multiple);
|
|
154
|
+
return () => h() && _tmpl$7();
|
|
155
|
+
})(), null), insert(h, () => e.options?.map((e) => (() => {
|
|
156
|
+
var h = _tmpl$8();
|
|
157
|
+
return insert(h, () => e.label), effect(() => h.value = e.value), h;
|
|
158
|
+
})()), null), effect(() => h.value = e.value), h;
|
|
160
159
|
})(), {}, !0)
|
|
161
160
|
};
|
|
162
161
|
delegateEvents(["keydown", "input"]);
|
|
@@ -19,7 +19,10 @@ const ExpandPlugin = {
|
|
|
19
19
|
})),
|
|
20
20
|
[e.internal]: 1
|
|
21
21
|
} }),
|
|
22
|
-
commands: (e) => ({ expand: useSelector({
|
|
22
|
+
commands: (e) => ({ expand: useSelector({
|
|
23
|
+
multiple: !0,
|
|
24
|
+
key: e.props.rowKey
|
|
25
|
+
}) }),
|
|
23
26
|
rewriteProps: {
|
|
24
27
|
expand: ({ expand: e }) => mergeProps$1({ enable: !1 }, e),
|
|
25
28
|
columns: ({ columns: e }, { store: m }) => m.props.expand?.enable ? [m.expandCol, ...e] : e,
|