intable 0.0.70 → 0.0.72

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,82 @@ 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
+ color: ""
69
+ }, y));
68
70
  }, FKTags = (e) => {
69
- let b;
70
- [e, b] = splitProps(e, [
71
+ let y;
72
+ [e, y] = splitProps(e, [
71
73
  "col",
72
74
  "data",
73
75
  "value",
74
76
  "onChange",
75
77
  "multiple"
76
78
  ]);
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: [] });
79
+ 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
80
  return createComputed(() => {
79
- w(), untrack(() => set(e.data, e.col.foreignField, e.multiple ? w() : w()[0]));
81
+ E(), untrack(() => set(e.data, e.col.foreignField, e.multiple ? E() : E()[0]));
80
82
  }), createComponent(Tags, mergeProps({
81
83
  get value() {
82
- return w().map((e) => ({
83
- label: e[S()],
84
- value: e[C()]
84
+ return E().map((e) => ({
85
+ label: e[w()],
86
+ value: e[T()]
85
87
  }));
86
88
  },
87
- onChange: (_) => e.onChange?.(e.multiple ? _ : _[0])
88
- }, b));
89
+ onChange: (y) => e.onChange?.(e.multiple ? y : y[0]),
90
+ color: ""
91
+ }, y));
89
92
  }, 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 : _);
93
+ 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
94
  return memo(() => memo(() => !!y.dialog)() ? createComponent(Dialog, {
92
95
  get title() {
93
96
  return `选择 ${y.name}`;
@@ -100,12 +103,12 @@ var createEditor = (e) => (_) => createRoot((v) => {
100
103
  },
101
104
  class: "min-w-[40vw]",
102
105
  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, {
106
+ var b = _tmpl$(), x = b.firstChild, C = x.firstChild, T = C.firstChild, M = T.firstChild, N = M.nextSibling;
107
+ N.nextSibling;
108
+ var P = T.nextSibling, F = x.nextSibling;
109
+ return insert(T, () => k().length, N), P.$$click = () => e.onChange?.(w() ? [] : null), insert(x, (() => {
110
+ var b = memo(() => !!E());
111
+ return () => b() ? createComponent(FKTags, mergeProps(e, {
109
112
  class: "ml-2",
110
113
  col: y,
111
114
  get data() {
@@ -114,9 +117,9 @@ var createEditor = (e) => (_) => createRoot((v) => {
114
117
  get value() {
115
118
  return k();
116
119
  },
117
- onChange: A,
120
+ onChange: j,
118
121
  get multiple() {
119
- return C();
122
+ return w();
120
123
  }
121
124
  })) : createComponent(ObjTags, mergeProps(e, {
122
125
  class: "ml-2",
@@ -127,29 +130,29 @@ var createEditor = (e) => (_) => createRoot((v) => {
127
130
  get value() {
128
131
  return k();
129
132
  },
130
- onChange: A,
133
+ onChange: j,
131
134
  get multiple() {
132
- return C();
135
+ return w();
133
136
  }
134
137
  }));
135
- })(), null), insert(P, createComponent(Intable, mergeProps({ get renderer() {
138
+ })(), null), insert(F, createComponent(Intable, mergeProps({ get renderer() {
136
139
  return useContext(Ctx).props.renderer;
137
- } }, b, {
140
+ } }, S, {
138
141
  class: "max-h-[65vh]",
139
142
  get rowSelection() {
140
143
  return {
141
- ...b()?.rowSelection,
144
+ ...S()?.rowSelection,
142
145
  enable: !0,
143
- multiple: C(),
146
+ multiple: w(),
144
147
  value: k(),
145
- onChange: A
148
+ onChange: j
146
149
  };
147
150
  }
148
- }))), _;
151
+ }))), b;
149
152
  }
150
153
  }) : createComponent(TableSelect, mergeProps(e, {
151
154
  get table() {
152
- return b();
155
+ return S();
153
156
  },
154
157
  get valueObject() {
155
158
  return !E();
@@ -157,69 +160,69 @@ var createEditor = (e) => (_) => createRoot((v) => {
157
160
  class: "min-h-full outline-1.5 outline-offset--1.5 outline-[--c-primary] bg-[--table-bg] py-1",
158
161
  border: !1,
159
162
  get multiple() {
160
- return C();
163
+ return w();
161
164
  }
162
165
  })));
163
166
  });
164
167
  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: [] });
168
+ 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
169
  return createComponent(Select, mergeProps(e, {
167
170
  searchable: !0,
168
171
  get options() {
169
- return S().map((_) => ({
170
- label: _[e.table?.columns?.[0].id],
171
- value: b() ? _[v()] : _
172
+ return w().map((b) => ({
173
+ label: b[e.table?.columns?.[0].id],
174
+ value: S() ? b[y()] : b
172
175
  }));
173
176
  },
174
- request: async ({ keyword: _ }) => {
175
- let y = [];
176
- return _ && y.push({
177
+ request: async ({ keyword: b }) => {
178
+ let x = [];
179
+ return b && x.push({
177
180
  field: e.table?.columns?.[0].id,
178
181
  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()] : _
182
+ value: b
183
+ }), 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) => ({
184
+ label: b[e.table?.columns?.[0].id],
185
+ value: S() ? b[y()] : b
183
186
  }))) ?? [];
184
187
  },
185
188
  get valueKey() {
186
- return memo(() => !!b())() ? void 0 : v();
189
+ return memo(() => !!S())() ? void 0 : y();
187
190
  },
188
191
  get value() {
189
192
  return e.value;
190
193
  },
191
- onChange: (_) => e.onChange?.(_),
194
+ onChange: (y) => e.onChange?.(y),
192
195
  get multiple() {
193
- return y();
196
+ return x();
194
197
  }
195
198
  }));
196
199
  };
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, {
200
+ 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
201
  disabled: !0,
199
202
  multiple: !0
200
- })), renders.obj = (e) => createComponent(ObjTags, mergeProps(e, { disabled: !0 })), renders.objs = (e) => createComponent(ObjTags, mergeProps(e, {
203
+ }))), renders.obj = solidComponent((e) => createComponent(ObjTags, mergeProps(e, { disabled: !0 }))), renders.objs = solidComponent((e) => createComponent(ObjTags, mergeProps(e, {
201
204
  disabled: !0,
202
205
  multiple: !0
203
- }));
206
+ })));
204
207
  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] ??= [{}, {}];
208
+ let e = /* @__PURE__ */ new WeakMap(), b = (y) => {
209
+ let b = e.get(y.request) || e.set(y.request, {}).get(y.request);
210
+ return b[y.rowKey] ??= [{}, {}];
208
211
  };
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,
212
+ return async (e, x) => {
213
+ if (!x.request || (e = e.filter((e) => !isEmpty(e)), !e.length)) return [];
214
+ let [S, C] = b(x), w = e.filter((e) => !S[e]), T = w.filter((e) => !C[e]);
215
+ if (T.length) {
216
+ let e = x.request({ filters: [{
217
+ field: x.rowKey,
215
218
  op: "in",
216
- value: e
219
+ value: T
217
220
  }] });
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]));
221
+ T.forEach((y, b) => {
222
+ C[y] = e.then((e) => S[y] = e.data[b]).finally(() => delete C[y]);
223
+ }), await Promise.all(w.map((e) => C[e]));
221
224
  }
222
- return _.map((e) => b[e]);
225
+ return e.map((e) => S[e]);
223
226
  };
224
227
  })();
225
228
  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.72",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "files": [