intable 0.0.70 → 0.0.71

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,4 @@
1
+ import { solidComponent } from "../components/utils.js";
1
2
  import { isEmpty, toArr, unFn } from "../utils.js";
2
3
  import { Tags } from "./RenderPlugin/components.js";
3
4
  import { editors } from "./EditablePlugin.js";
@@ -14,80 +15,80 @@ const OrmPlugin = {
14
15
  name: "orm",
15
16
  priority: -Infinity,
16
17
  store: (e) => ({}),
17
- rewriteProps: { Table: ({ Table: e }, { store: _ }) => (v) => {
18
- let y = createMutable({});
18
+ rewriteProps: { Table: ({ Table: e }, { store: y }) => (b) => {
19
+ let x = createMutable({});
19
20
  return createComputed(() => {
20
- let e = _.props.columns?.filter((e) => (e.type == "fk" || e.type == "fks") && e.foreignField);
21
- if (e.length) for (let v of e) for (let e of _.props.data) {
22
- if (v.foreignField in e) continue;
23
- Object.defineProperty(e, v.foreignField, {
24
- get: () => get(y, [v.id, e[_.props.rowKey]]),
25
- set: (b) => untrack(() => set(y, [v.id, e[_.props.rowKey]], b)),
21
+ let e = y.props.columns?.filter((e) => (e.type == "fk" || e.type == "fks") && e.foreignField);
22
+ if (e.length) for (let b of e) for (let e of y.props.data) {
23
+ if (b.foreignField in e) continue;
24
+ Object.defineProperty(e, b.foreignField, {
25
+ get: () => get(x, [b.id, e[y.props.rowKey]]),
26
+ set: (S) => untrack(() => set(x, [b.id, e[y.props.rowKey]], S)),
26
27
  enumerable: !0,
27
28
  configurable: !0
28
29
  });
29
30
  }
30
- }), createComponent(e, v);
31
+ }), createComponent(e, b);
31
32
  } }
32
33
  };
33
- var createEditor = (e) => (_) => createRoot((v) => {
34
- let { eventKey: y, value: b, col: x, ok: S, cancel: C, props: w, onChange: T } = _, [E, D] = createSignal(b), O;
34
+ var createEditor = (e) => (y) => createRoot((b) => {
35
+ let { eventKey: x, value: S, col: C, ok: w, cancel: T, props: E, onChange: D } = y, [O, k] = createSignal(S), A;
35
36
  return setTimeout(() => {
36
- O?.showPicker?.();
37
+ A?.showPicker?.();
37
38
  }, 0), {
38
39
  el: createComponent(e, mergeProps({
39
- ref: (e) => O = e,
40
+ ref: (e) => A = e,
40
41
  get value() {
41
- return E();
42
+ return O();
42
43
  },
43
- onChange: (e) => (D(e), T?.(E()), !Array.isArray(E()) && S())
44
- }, w, { aaa: _ })),
45
- getValue: E,
46
- destroy: v,
47
- dialog: x.dialog
44
+ onChange: (e) => (k(e), D?.(O()), !Array.isArray(O()) && w())
45
+ }, E, { aaa: y })),
46
+ getValue: O,
47
+ destroy: b,
48
+ dialog: C.dialog
48
49
  };
49
50
  }), ObjTags = (e) => {
50
- let b;
51
- [e, b] = splitProps(e, [
51
+ let y;
52
+ [e, y] = splitProps(e, [
52
53
  "col",
53
54
  "data",
54
55
  "value",
55
56
  "onChange",
56
57
  "multiple"
57
58
  ]);
58
- let x = () => unFn(e.col.table, { data: e.data }), S = () => x()?.columns?.[0].id, C = () => x()?.rowKey ?? "id";
59
+ let C = () => unFn(e.col.table, { data: e.data }), w = () => C()?.columns?.[0].id, T = () => C()?.rowKey ?? "id";
59
60
  return createComponent(Tags, mergeProps({
60
61
  get value() {
61
62
  return toArr(e.value).map((e) => ({
62
- label: e[S()],
63
- value: e[C()]
63
+ label: e[w()],
64
+ value: e[T()]
64
65
  }));
65
66
  },
66
- onChange: (_) => e.onChange?.(e.multiple ? _ : _[0])
67
- }, b));
67
+ onChange: (y) => e.onChange?.(e.multiple ? y : y[0])
68
+ }, y));
68
69
  }, FKTags = (e) => {
69
- let b;
70
- [e, b] = splitProps(e, [
70
+ let y;
71
+ [e, y] = splitProps(e, [
71
72
  "col",
72
73
  "data",
73
74
  "value",
74
75
  "onChange",
75
76
  "multiple"
76
77
  ]);
77
- let x = () => unFn(e.col.table, { data: e.data }), S = () => x()?.columns?.[0].id, C = () => x()?.rowKey ?? "id", [w] = createResource(() => e.value, () => fetchDataByKeys(toArr(e.value).map((e) => e && typeof e != "object" ? e : e[C()]), x()), { initialValue: [] });
78
+ let C = () => unFn(e.col.table, { data: e.data }), w = () => C()?.columns?.[0].id, T = () => C()?.rowKey ?? "id", [E] = createResource(() => e.value, () => fetchDataByKeys(toArr(e.value).map((e) => e && typeof e != "object" ? e : e[T()]), C()), { initialValue: [] });
78
79
  return createComputed(() => {
79
- w(), untrack(() => set(e.data, e.col.foreignField, e.multiple ? w() : w()[0]));
80
+ E(), untrack(() => set(e.data, e.col.foreignField, e.multiple ? E() : E()[0]));
80
81
  }), createComponent(Tags, mergeProps({
81
82
  get value() {
82
- return w().map((e) => ({
83
- label: e[S()],
84
- value: e[C()]
83
+ return E().map((e) => ({
84
+ label: e[w()],
85
+ value: e[T()]
85
86
  }));
86
87
  },
87
- onChange: (_) => e.onChange?.(e.multiple ? _ : _[0])
88
- }, b));
88
+ onChange: (y) => e.onChange?.(e.multiple ? y : y[0])
89
+ }, y));
89
90
  }, ObjEditor = createEditor((e) => {
90
- let y = mergeProps$1(() => e.aaa.col), b = () => unFn(y.table, { data: e.aaa.data }), x = () => b()?.rowKey ?? "id", C = () => y.type == "objs" || y.type == "fks", E = () => y.type == "fk" || y.type == "fks", k = () => E() ? toArr(e.value).map((e) => ({ [x()]: e })) : toArr(e.value), A = (_) => e.onChange(E() ? C() ? _.map((e) => e[x()]) : _?.[x()] ?? null : _);
91
+ let y = mergeProps$1(() => e.aaa.col), S = () => unFn(y.table, { data: e.aaa.data }), C = () => S()?.rowKey ?? "id", w = () => y.type == "objs" || y.type == "fks", E = () => y.type == "fk" || y.type == "fks", k = () => E() ? toArr(e.value).map((e) => ({ [C()]: e })) : toArr(e.value), j = (y) => e.onChange(E() ? w() ? y.map((e) => e[C()]) : y?.[C()] ?? null : y);
91
92
  return memo(() => memo(() => !!y.dialog)() ? createComponent(Dialog, {
92
93
  get title() {
93
94
  return `选择 ${y.name}`;
@@ -100,12 +101,12 @@ var createEditor = (e) => (_) => createRoot((v) => {
100
101
  },
101
102
  class: "min-w-[40vw]",
102
103
  get children() {
103
- var _ = _tmpl$(), v = _.firstChild, x = v.firstChild, S = x.firstChild, j = S.firstChild, M = j.nextSibling;
104
- M.nextSibling;
105
- var N = S.nextSibling, P = v.nextSibling;
106
- return insert(S, () => k().length, M), N.$$click = () => e.onChange?.(C() ? [] : null), insert(v, (() => {
107
- var _ = memo(() => !!E());
108
- return () => _() ? createComponent(FKTags, mergeProps(e, {
104
+ var b = _tmpl$(), x = b.firstChild, C = x.firstChild, T = C.firstChild, M = T.firstChild, N = M.nextSibling;
105
+ N.nextSibling;
106
+ var P = T.nextSibling, F = x.nextSibling;
107
+ return insert(T, () => k().length, N), P.$$click = () => e.onChange?.(w() ? [] : null), insert(x, (() => {
108
+ var b = memo(() => !!E());
109
+ return () => b() ? createComponent(FKTags, mergeProps(e, {
109
110
  class: "ml-2",
110
111
  col: y,
111
112
  get data() {
@@ -114,9 +115,9 @@ var createEditor = (e) => (_) => createRoot((v) => {
114
115
  get value() {
115
116
  return k();
116
117
  },
117
- onChange: A,
118
+ onChange: j,
118
119
  get multiple() {
119
- return C();
120
+ return w();
120
121
  }
121
122
  })) : createComponent(ObjTags, mergeProps(e, {
122
123
  class: "ml-2",
@@ -127,29 +128,29 @@ var createEditor = (e) => (_) => createRoot((v) => {
127
128
  get value() {
128
129
  return k();
129
130
  },
130
- onChange: A,
131
+ onChange: j,
131
132
  get multiple() {
132
- return C();
133
+ return w();
133
134
  }
134
135
  }));
135
- })(), null), insert(P, createComponent(Intable, mergeProps({ get renderer() {
136
+ })(), null), insert(F, createComponent(Intable, mergeProps({ get renderer() {
136
137
  return useContext(Ctx).props.renderer;
137
- } }, b, {
138
+ } }, S, {
138
139
  class: "max-h-[65vh]",
139
140
  get rowSelection() {
140
141
  return {
141
- ...b()?.rowSelection,
142
+ ...S()?.rowSelection,
142
143
  enable: !0,
143
- multiple: C(),
144
+ multiple: w(),
144
145
  value: k(),
145
- onChange: A
146
+ onChange: j
146
147
  };
147
148
  }
148
- }))), _;
149
+ }))), b;
149
150
  }
150
151
  }) : createComponent(TableSelect, mergeProps(e, {
151
152
  get table() {
152
- return b();
153
+ return S();
153
154
  },
154
155
  get valueObject() {
155
156
  return !E();
@@ -157,69 +158,69 @@ var createEditor = (e) => (_) => createRoot((v) => {
157
158
  class: "min-h-full outline-1.5 outline-offset--1.5 outline-[--c-primary] bg-[--table-bg] py-1",
158
159
  border: !1,
159
160
  get multiple() {
160
- return C();
161
+ return w();
161
162
  }
162
163
  })));
163
164
  });
164
165
  const TableSelect = (e) => {
165
- let v = () => e.table?.rowKey ?? "id", y = () => e.multiple, b = () => !e.valueObject, x = () => b() ? toArr(e.value) : toArr(e.value).map((e) => e[v()]), [S] = createResource(x, () => fetchDataByKeys(x(), e.table), { initialValue: [] });
166
+ let y = () => e.table?.rowKey ?? "id", x = () => e.multiple, S = () => !e.valueObject, C = () => S() ? toArr(e.value) : toArr(e.value).map((e) => e[y()]), [w] = createResource(C, () => fetchDataByKeys(C(), e.table), { initialValue: [] });
166
167
  return createComponent(Select, mergeProps(e, {
167
168
  searchable: !0,
168
169
  get options() {
169
- return S().map((_) => ({
170
- label: _[e.table?.columns?.[0].id],
171
- value: b() ? _[v()] : _
170
+ return w().map((b) => ({
171
+ label: b[e.table?.columns?.[0].id],
172
+ value: S() ? b[y()] : b
172
173
  }));
173
174
  },
174
- request: async ({ keyword: _ }) => {
175
- let y = [];
176
- return _ && y.push({
175
+ request: async ({ keyword: b }) => {
176
+ let x = [];
177
+ return b && x.push({
177
178
  field: e.table?.columns?.[0].id,
178
179
  op: "like",
179
- value: _
180
- }), e.table?.filter && y.push(...e.table.filter.value ?? e.table.filter.initialValue ?? e.table.filter.defaultValue ?? []), e.table?.request?.({ filters: y }).then((_) => _.data.map((_) => ({
181
- label: _[e.table?.columns?.[0].id],
182
- value: b() ? _[v()] : _
180
+ value: b
181
+ }), e.table?.filter && x.push(...e.table.filter.value ?? e.table.filter.initialValue ?? e.table.filter.defaultValue ?? []), e.table?.request?.({ filters: x }).then((b) => b.data.map((b) => ({
182
+ label: b[e.table?.columns?.[0].id],
183
+ value: S() ? b[y()] : b
183
184
  }))) ?? [];
184
185
  },
185
186
  get valueKey() {
186
- return memo(() => !!b())() ? void 0 : v();
187
+ return memo(() => !!S())() ? void 0 : y();
187
188
  },
188
189
  get value() {
189
190
  return e.value;
190
191
  },
191
- onChange: (_) => e.onChange?.(_),
192
+ onChange: (y) => e.onChange?.(y),
192
193
  get multiple() {
193
- return y();
194
+ return x();
194
195
  }
195
196
  }));
196
197
  };
197
- editors.obj = ObjEditor, editors.objs = ObjEditor, editors.fk = ObjEditor, editors.fks = ObjEditor, renders.fk = (e) => createComponent(FKTags, mergeProps(e, { disabled: !0 })), renders.fks = (e) => createComponent(FKTags, mergeProps(e, {
198
+ editors.obj = ObjEditor, editors.objs = ObjEditor, editors.fk = ObjEditor, editors.fks = ObjEditor, renders.fk = solidComponent((e) => createComponent(FKTags, mergeProps(e, { disabled: !0 }))), renders.fks = solidComponent((e) => createComponent(FKTags, mergeProps(e, {
198
199
  disabled: !0,
199
200
  multiple: !0
200
- })), renders.obj = (e) => createComponent(ObjTags, mergeProps(e, { disabled: !0 })), renders.objs = (e) => createComponent(ObjTags, mergeProps(e, {
201
+ }))), renders.obj = solidComponent((e) => createComponent(ObjTags, mergeProps(e, { disabled: !0 }))), renders.objs = solidComponent((e) => createComponent(ObjTags, mergeProps(e, {
201
202
  disabled: !0,
202
203
  multiple: !0
203
- }));
204
+ })));
204
205
  const fetchDataByKeys = (() => {
205
- let _ = /* @__PURE__ */ new WeakMap(), v = (e) => {
206
- let v = _.get(e.request) || _.set(e.request, {}).get(e.request);
207
- return v[e.rowKey] ??= [{}, {}];
206
+ let e = /* @__PURE__ */ new WeakMap(), b = (y) => {
207
+ let b = e.get(y.request) || e.set(y.request, {}).get(y.request);
208
+ return b[y.rowKey] ??= [{}, {}];
208
209
  };
209
- return async (_, y) => {
210
- if (!y.request || (_ = _.filter((_) => !isEmpty(_)), !_.length)) return [];
211
- let [b, x] = v(y), S = _.filter((e) => !b[e]);
212
- if (S.length) {
213
- let e = S.filter((e) => !x[e]), _ = y.request({ filters: [{
214
- field: y.rowKey,
210
+ return async (e, x) => {
211
+ if (!x.request || (e = e.filter((e) => !isEmpty(e)), !e.length)) return [];
212
+ let [S, C] = b(x), w = e.filter((e) => !S[e]);
213
+ if (w.length) {
214
+ let e = w.filter((e) => !C[e]), y = x.request({ filters: [{
215
+ field: x.rowKey,
215
216
  op: "in",
216
217
  value: e
217
218
  }] });
218
- e.forEach((e, v) => {
219
- x[e] = _.then((_) => b[e] = _.data[v]).finally(() => delete x[e]);
220
- }), await Promise.all(S.map((e) => x[e]));
219
+ e.forEach((e, b) => {
220
+ C[e] = y.then((y) => S[e] = y.data[b]).finally(() => delete C[e]);
221
+ }), await Promise.all(w.map((e) => C[e]));
221
222
  }
222
- return _.map((e) => b[e]);
223
+ return e.map((e) => S[e]);
223
224
  };
224
225
  })();
225
226
  delegateEvents(["click"]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "intable",
3
- "version": "0.0.70",
3
+ "version": "0.0.71",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "files": [