@trungkhai/dynamic-form 0.1.2 → 0.1.3
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/index.cjs.js +1 -1
- package/dist/index.es.js +424 -414
- package/package.json +5 -3
package/dist/index.es.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { jsx as f, jsxs as
|
|
2
|
-
import { Select as Fe, Form as
|
|
3
|
-
import { createContext as
|
|
4
|
-
import
|
|
5
|
-
import { FileImageOutlined as
|
|
6
|
-
const oe =
|
|
1
|
+
import { jsx as f, jsxs as Be, Fragment as x } from "react/jsx-runtime";
|
|
2
|
+
import { Select as Fe, Form as U, Upload as ke, Button as Ee, DatePicker as Ge, Checkbox as Ie, Radio as We, InputNumber as Ke, Input as ve, Row as $e, Col as ze, App as He, Flex as ie, Spin as ae } from "antd";
|
|
3
|
+
import { createContext as Ye, useContext as Re, memo as C, useState as P, useMemo as R, useEffect as V, useCallback as T, useRef as B, forwardRef as Ne, useImperativeHandle as Je } from "react";
|
|
4
|
+
import Z from "dayjs";
|
|
5
|
+
import { FileImageOutlined as Qe, UploadOutlined as Xe } from "@ant-design/icons";
|
|
6
|
+
const oe = Ye(
|
|
7
7
|
null
|
|
8
8
|
);
|
|
9
9
|
function M() {
|
|
@@ -14,10 +14,10 @@ function M() {
|
|
|
14
14
|
);
|
|
15
15
|
return e;
|
|
16
16
|
}
|
|
17
|
-
function
|
|
17
|
+
function en() {
|
|
18
18
|
return Re(oe);
|
|
19
19
|
}
|
|
20
|
-
function
|
|
20
|
+
function Ze(e, t = []) {
|
|
21
21
|
for (const r of t) {
|
|
22
22
|
if (typeof r == "function")
|
|
23
23
|
continue;
|
|
@@ -32,10 +32,10 @@ function Xe(e, t = []) {
|
|
|
32
32
|
for (const r of t)
|
|
33
33
|
;
|
|
34
34
|
}
|
|
35
|
-
function
|
|
36
|
-
return
|
|
35
|
+
function et(e, t = [], n = {}) {
|
|
36
|
+
return Ze(e, t) ?? n[e.code] ?? n[e.field?.type?.code ?? ""];
|
|
37
37
|
}
|
|
38
|
-
function
|
|
38
|
+
function tt(e, t) {
|
|
39
39
|
const n = t.option_config?.label_attr, r = t.option_config?.value_attr || "value";
|
|
40
40
|
let i;
|
|
41
41
|
if (n?.length) {
|
|
@@ -48,8 +48,8 @@ function et(e, t) {
|
|
|
48
48
|
value: e[r]
|
|
49
49
|
};
|
|
50
50
|
}
|
|
51
|
-
function
|
|
52
|
-
return t.option_config && t.is_option_api ? e?.map((n) =>
|
|
51
|
+
function nt(e, t) {
|
|
52
|
+
return t.option_config && t.is_option_api ? e?.map((n) => tt(n, t)) : t.metas?.map((n) => ({
|
|
53
53
|
label: n.label,
|
|
54
54
|
value: n.value
|
|
55
55
|
}));
|
|
@@ -60,12 +60,12 @@ function se(e, t) {
|
|
|
60
60
|
n && clearTimeout(n), n = setTimeout(() => e(...r), t);
|
|
61
61
|
};
|
|
62
62
|
}
|
|
63
|
-
const
|
|
63
|
+
const rt = ({
|
|
64
64
|
onSearchKeyword: e,
|
|
65
65
|
searchDebounceMs: t = 500,
|
|
66
66
|
...n
|
|
67
67
|
}) => {
|
|
68
|
-
const [r, i] =
|
|
68
|
+
const [r, i] = P(""), a = R(
|
|
69
69
|
() => se((o) => e?.(o), t),
|
|
70
70
|
[e, t]
|
|
71
71
|
);
|
|
@@ -82,13 +82,13 @@ const nt = ({
|
|
|
82
82
|
...n
|
|
83
83
|
}
|
|
84
84
|
);
|
|
85
|
-
},
|
|
85
|
+
}, it = C(rt), at = ({
|
|
86
86
|
fieldName: e,
|
|
87
87
|
formInstance: t,
|
|
88
88
|
...n
|
|
89
89
|
}) => {
|
|
90
|
-
const r =
|
|
91
|
-
return
|
|
90
|
+
const r = U.useWatch(e, t);
|
|
91
|
+
return V(() => {
|
|
92
92
|
if (r?.fileList?.length && r.fileList.some(
|
|
93
93
|
(s) => !s.type?.startsWith("image/")
|
|
94
94
|
)) {
|
|
@@ -108,45 +108,45 @@ const nt = ({
|
|
|
108
108
|
{
|
|
109
109
|
style: { border: 0, background: "none", cursor: "pointer" },
|
|
110
110
|
type: "button",
|
|
111
|
-
children: /* @__PURE__ */ f(
|
|
111
|
+
children: /* @__PURE__ */ f(Qe, {})
|
|
112
112
|
}
|
|
113
113
|
) });
|
|
114
|
-
},
|
|
114
|
+
}, ot = C(at), st = ({
|
|
115
115
|
fieldName: e,
|
|
116
116
|
formInstance: t,
|
|
117
117
|
...n
|
|
118
118
|
}) => {
|
|
119
|
-
const r =
|
|
120
|
-
return /* @__PURE__ */ f(ke, { fileList: r?.fileList, ...n, children: /* @__PURE__ */ f(Ee, { icon: /* @__PURE__ */ f(
|
|
121
|
-
},
|
|
119
|
+
const r = U.useWatch(e, t);
|
|
120
|
+
return /* @__PURE__ */ f(ke, { fileList: r?.fileList, ...n, children: /* @__PURE__ */ f(Ee, { icon: /* @__PURE__ */ f(Xe, {}) }) });
|
|
121
|
+
}, lt = C(st), ct = ({
|
|
122
122
|
formInstance: e,
|
|
123
123
|
uploadUrl: t,
|
|
124
124
|
setFieldState: n
|
|
125
125
|
}) => {
|
|
126
|
-
const { client: r, upload: i, i18n: a, renderers: s } = M(), { messages: o } = a, d =
|
|
126
|
+
const { client: r, upload: i, i18n: a, renderers: s } = M(), { messages: o } = a, d = T(() => {
|
|
127
127
|
if (i.upload) return i.upload;
|
|
128
128
|
const l = t ?? i.uploadUrl;
|
|
129
129
|
if (l)
|
|
130
|
-
return async ({ file: p, signal:
|
|
131
|
-
const
|
|
130
|
+
return async ({ file: p, signal: h, onProgress: u, fieldCode: v, fieldGroup: _, metadata: w }) => {
|
|
131
|
+
const b = i.getPayload ? i.getPayload({
|
|
132
132
|
file: p,
|
|
133
133
|
fieldCode: v,
|
|
134
|
-
fieldGroup:
|
|
134
|
+
fieldGroup: _,
|
|
135
135
|
uploadUrl: l,
|
|
136
|
-
signal:
|
|
136
|
+
signal: h,
|
|
137
137
|
onProgress: u,
|
|
138
138
|
metadata: w
|
|
139
139
|
}) : (() => {
|
|
140
140
|
const g = new FormData();
|
|
141
|
-
return g.append("file", p), w && Object.entries(w).forEach(([
|
|
142
|
-
g.append(
|
|
141
|
+
return g.append("file", p), w && Object.entries(w).forEach(([k, D]) => {
|
|
142
|
+
g.append(k, String(D));
|
|
143
143
|
}), g;
|
|
144
144
|
})(), A = (await r.request({
|
|
145
145
|
method: "POST",
|
|
146
146
|
url: l,
|
|
147
|
-
data:
|
|
148
|
-
headers:
|
|
149
|
-
signal:
|
|
147
|
+
data: b,
|
|
148
|
+
headers: b instanceof FormData ? { "Content-Type": "multipart/form-data" } : void 0,
|
|
149
|
+
signal: h,
|
|
150
150
|
onUploadProgress: (g) => {
|
|
151
151
|
u?.(
|
|
152
152
|
Math.round(g.loaded * 100 / (g.total || 1))
|
|
@@ -159,67 +159,67 @@ const nt = ({
|
|
|
159
159
|
path: String(A.path ?? "")
|
|
160
160
|
};
|
|
161
161
|
};
|
|
162
|
-
}, [r, i, t]), c =
|
|
163
|
-
(l, p) => (
|
|
164
|
-
const { file: u, onProgress: v, onError:
|
|
162
|
+
}, [r, i, t]), c = T(
|
|
163
|
+
(l, p) => (h) => {
|
|
164
|
+
const { file: u, onProgress: v, onError: _, onSuccess: w } = h, b = new AbortController(), S = d();
|
|
165
165
|
return S ? (S({
|
|
166
166
|
file: u,
|
|
167
167
|
fieldCode: l,
|
|
168
168
|
fieldGroup: p,
|
|
169
169
|
uploadUrl: t ?? i.uploadUrl,
|
|
170
|
-
signal:
|
|
170
|
+
signal: b.signal,
|
|
171
171
|
onProgress: (A) => v?.({ percent: A })
|
|
172
172
|
}).then(
|
|
173
173
|
(A) => w?.({
|
|
174
174
|
...A,
|
|
175
175
|
uid: A.uid ?? u.uid,
|
|
176
176
|
path: A.path,
|
|
177
|
-
upload_date:
|
|
177
|
+
upload_date: Z().format("YYYY-MM-DD HH:mm:ss")
|
|
178
178
|
})
|
|
179
|
-
).catch((A) =>
|
|
179
|
+
).catch((A) => _?.(A)), { abort: () => b.abort() }) : (_?.(new Error(o.uploadError ?? "Upload not configured")), { abort() {
|
|
180
180
|
} });
|
|
181
181
|
},
|
|
182
182
|
[o.uploadError, d, i.uploadUrl, t]
|
|
183
|
-
),
|
|
184
|
-
(l, p) => async (
|
|
185
|
-
const u =
|
|
183
|
+
), y = T(
|
|
184
|
+
(l, p) => async (h) => {
|
|
185
|
+
const u = h.response?.path;
|
|
186
186
|
return u ? i.remove({ path: u, fieldCode: l, fieldGroup: p }) : !0;
|
|
187
187
|
},
|
|
188
188
|
[i]
|
|
189
|
-
), m =
|
|
189
|
+
), m = T(
|
|
190
190
|
(l, {
|
|
191
191
|
state: p,
|
|
192
|
-
options:
|
|
192
|
+
options: h,
|
|
193
193
|
optionsLoading: u,
|
|
194
194
|
optionsError: v,
|
|
195
|
-
onSearchKeyword:
|
|
195
|
+
onSearchKeyword: _,
|
|
196
196
|
readOnly: w = !1
|
|
197
197
|
}) => {
|
|
198
|
-
const { additional_config:
|
|
198
|
+
const { additional_config: b, field: S } = l, A = S?.type?.code, g = w || l.is_readonly || p?.disabled, k = et(
|
|
199
199
|
l,
|
|
200
200
|
s.fields
|
|
201
201
|
);
|
|
202
|
-
if (
|
|
203
|
-
return
|
|
202
|
+
if (k)
|
|
203
|
+
return k(l, {
|
|
204
204
|
state: p,
|
|
205
|
-
options:
|
|
205
|
+
options: h,
|
|
206
206
|
optionsLoading: u,
|
|
207
207
|
optionsError: v,
|
|
208
|
-
onSearchKeyword:
|
|
208
|
+
onSearchKeyword: _,
|
|
209
209
|
readOnly: w,
|
|
210
210
|
formInstance: e,
|
|
211
211
|
disabled: !!g,
|
|
212
212
|
setFieldState: n
|
|
213
213
|
});
|
|
214
|
-
const
|
|
214
|
+
const D = nt(h, l);
|
|
215
215
|
switch (A) {
|
|
216
216
|
case "text":
|
|
217
|
-
return
|
|
217
|
+
return b?.text?.textarea ? /* @__PURE__ */ f(
|
|
218
218
|
ve.TextArea,
|
|
219
219
|
{
|
|
220
220
|
disabled: g,
|
|
221
221
|
placeholder: o.inputPlaceholder(l.label),
|
|
222
|
-
rows:
|
|
222
|
+
rows: b?.text?.rows
|
|
223
223
|
}
|
|
224
224
|
) : /* @__PURE__ */ f(
|
|
225
225
|
ve,
|
|
@@ -230,74 +230,74 @@ const nt = ({
|
|
|
230
230
|
);
|
|
231
231
|
case "number":
|
|
232
232
|
return /* @__PURE__ */ f(
|
|
233
|
-
|
|
233
|
+
Ke,
|
|
234
234
|
{
|
|
235
235
|
style: { width: "100%" },
|
|
236
236
|
disabled: g,
|
|
237
237
|
placeholder: o.inputPlaceholder(l.label),
|
|
238
|
-
min:
|
|
239
|
-
max:
|
|
238
|
+
min: b?.number?.min,
|
|
239
|
+
max: b?.number?.max
|
|
240
240
|
}
|
|
241
241
|
);
|
|
242
242
|
case "select": {
|
|
243
243
|
const j = {
|
|
244
244
|
disabled: g,
|
|
245
|
-
options:
|
|
245
|
+
options: D,
|
|
246
246
|
placeholder: o.selectPlaceholder(l.label),
|
|
247
247
|
allowClear: !0,
|
|
248
248
|
loading: u,
|
|
249
|
-
mode:
|
|
249
|
+
mode: b?.select?.multiple ? "multiple" : void 0,
|
|
250
250
|
notFoundContent: v ? o.optionError : u ? o.optionLoading : void 0
|
|
251
251
|
};
|
|
252
|
-
return
|
|
253
|
-
|
|
252
|
+
return _ ? /* @__PURE__ */ f(
|
|
253
|
+
it,
|
|
254
254
|
{
|
|
255
255
|
...j,
|
|
256
|
-
onSearchKeyword:
|
|
257
|
-
searchDebounceMs:
|
|
256
|
+
onSearchKeyword: _,
|
|
257
|
+
searchDebounceMs: b?.select?.searchDebounceMs ?? 500
|
|
258
258
|
}
|
|
259
259
|
) : /* @__PURE__ */ f(Fe, { ...j, showSearch: !0, optionFilterProp: "label" });
|
|
260
260
|
}
|
|
261
261
|
case "radio":
|
|
262
|
-
return /* @__PURE__ */ f(We.Group, { disabled: g, options:
|
|
262
|
+
return /* @__PURE__ */ f(We.Group, { disabled: g, options: D });
|
|
263
263
|
case "checkbox":
|
|
264
|
-
return /* @__PURE__ */ f(
|
|
264
|
+
return /* @__PURE__ */ f(Ie.Group, { disabled: g, options: D });
|
|
265
265
|
case "datetime":
|
|
266
266
|
return /* @__PURE__ */ f(
|
|
267
|
-
|
|
267
|
+
Ge,
|
|
268
268
|
{
|
|
269
269
|
style: { width: "100%" },
|
|
270
270
|
disabled: g,
|
|
271
|
-
showTime:
|
|
272
|
-
format:
|
|
271
|
+
showTime: b?.datetime?.showTime,
|
|
272
|
+
format: b?.datetime?.format
|
|
273
273
|
}
|
|
274
274
|
);
|
|
275
275
|
case "file":
|
|
276
276
|
return /* @__PURE__ */ f(
|
|
277
|
-
|
|
277
|
+
lt,
|
|
278
278
|
{
|
|
279
279
|
disabled: g,
|
|
280
280
|
fieldName: l.code,
|
|
281
281
|
formInstance: e,
|
|
282
|
-
multiple:
|
|
283
|
-
maxCount:
|
|
284
|
-
accept:
|
|
282
|
+
multiple: b?.file?.multiple || !1,
|
|
283
|
+
maxCount: b?.file?.max,
|
|
284
|
+
accept: b?.file?.accept,
|
|
285
285
|
customRequest: c(l.code, l),
|
|
286
|
-
onRemove:
|
|
286
|
+
onRemove: y(l.code, l)
|
|
287
287
|
}
|
|
288
288
|
);
|
|
289
289
|
case "image":
|
|
290
290
|
return /* @__PURE__ */ f(
|
|
291
|
-
|
|
291
|
+
ot,
|
|
292
292
|
{
|
|
293
293
|
disabled: g,
|
|
294
294
|
fieldName: l.code,
|
|
295
295
|
formInstance: e,
|
|
296
|
-
multiple:
|
|
297
|
-
maxCount:
|
|
298
|
-
accept:
|
|
296
|
+
multiple: b?.image?.multiple || !1,
|
|
297
|
+
maxCount: b?.image?.max,
|
|
298
|
+
accept: b?.image?.accept ?? "image/*",
|
|
299
299
|
customRequest: c(l.code, l),
|
|
300
|
-
onRemove:
|
|
300
|
+
onRemove: y(l.code, l)
|
|
301
301
|
}
|
|
302
302
|
);
|
|
303
303
|
default:
|
|
@@ -306,19 +306,19 @@ const nt = ({
|
|
|
306
306
|
},
|
|
307
307
|
[
|
|
308
308
|
c,
|
|
309
|
-
|
|
309
|
+
y,
|
|
310
310
|
e,
|
|
311
311
|
o,
|
|
312
312
|
s.fields,
|
|
313
313
|
n
|
|
314
314
|
]
|
|
315
315
|
);
|
|
316
|
-
return
|
|
316
|
+
return R(() => ({ getDynamicField: m }), [m]);
|
|
317
317
|
};
|
|
318
318
|
function le(e) {
|
|
319
319
|
return JSON.stringify(e);
|
|
320
320
|
}
|
|
321
|
-
function
|
|
321
|
+
function dt(e, t) {
|
|
322
322
|
const n = e.get(t);
|
|
323
323
|
if (n) {
|
|
324
324
|
if (Date.now() > n.expiresAt) {
|
|
@@ -328,48 +328,48 @@ function ct(e, t) {
|
|
|
328
328
|
return n.data;
|
|
329
329
|
}
|
|
330
330
|
}
|
|
331
|
-
function
|
|
331
|
+
function ut(e, t, n, r) {
|
|
332
332
|
e.set(t, { data: n, expiresAt: Date.now() + r });
|
|
333
333
|
}
|
|
334
334
|
async function re(e, t, n, r, i) {
|
|
335
335
|
const a = e[t];
|
|
336
336
|
if (e.cache.enabled) {
|
|
337
|
-
const c =
|
|
337
|
+
const c = dt(a, n);
|
|
338
338
|
if (c !== void 0) return c;
|
|
339
339
|
}
|
|
340
340
|
const s = new AbortController(), o = i ? AbortSignal.any([i, s.signal]) : s.signal, d = await r(o);
|
|
341
|
-
return e.cache.enabled &&
|
|
341
|
+
return e.cache.enabled && ut(a, n, d, e.cache.ttlMs), d;
|
|
342
342
|
}
|
|
343
|
-
function
|
|
343
|
+
function I(e, t) {
|
|
344
344
|
return t.split(".").reduce((n, r) => {
|
|
345
345
|
if (n && typeof n == "object")
|
|
346
346
|
return n[r];
|
|
347
347
|
}, e);
|
|
348
348
|
}
|
|
349
|
-
function
|
|
349
|
+
function ft(e, t) {
|
|
350
350
|
if (typeof e != "string") return e;
|
|
351
351
|
const n = e.match(/^\{\{(.+?)\}\}$/);
|
|
352
352
|
if (!n) return e;
|
|
353
|
-
const r = n[1].trim(), i =
|
|
353
|
+
const r = n[1].trim(), i = I(t, r);
|
|
354
354
|
return i !== void 0 ? i : e;
|
|
355
355
|
}
|
|
356
|
-
function
|
|
356
|
+
function mt(e, t) {
|
|
357
357
|
const n = {};
|
|
358
358
|
for (const r in e)
|
|
359
|
-
n[r] =
|
|
359
|
+
n[r] = ft(
|
|
360
360
|
e[r],
|
|
361
361
|
t
|
|
362
362
|
);
|
|
363
363
|
return n;
|
|
364
364
|
}
|
|
365
|
-
function
|
|
365
|
+
function tn(e, t) {
|
|
366
366
|
const n = { ...e };
|
|
367
367
|
return t.forEach((r) => {
|
|
368
368
|
const i = e[r.code];
|
|
369
369
|
if (i == null) return;
|
|
370
370
|
switch (r.field?.type?.code) {
|
|
371
371
|
case "datetime": {
|
|
372
|
-
const s =
|
|
372
|
+
const s = Z(i);
|
|
373
373
|
s.isValid() && (n[r.code] = s);
|
|
374
374
|
break;
|
|
375
375
|
}
|
|
@@ -395,13 +395,13 @@ function Zt(e, t) {
|
|
|
395
395
|
}
|
|
396
396
|
}), n;
|
|
397
397
|
}
|
|
398
|
-
function
|
|
398
|
+
function pt(e) {
|
|
399
399
|
const t = e.option_config?.api_options?.params || {}, n = e.option_config?.api_options?.data || {}, r = (i) => Object.values(i).filter(
|
|
400
400
|
(a) => typeof a == "string" && a.startsWith("{{") && a.endsWith("}}")
|
|
401
401
|
).map((a) => a.slice(2, -2).trim());
|
|
402
402
|
return Array.from(/* @__PURE__ */ new Set([...r(t), ...r(n)]));
|
|
403
403
|
}
|
|
404
|
-
function
|
|
404
|
+
function q(e, t) {
|
|
405
405
|
const n = {};
|
|
406
406
|
for (const r in e) {
|
|
407
407
|
const i = e[r];
|
|
@@ -413,21 +413,27 @@ function O(e, t) {
|
|
|
413
413
|
}
|
|
414
414
|
return n;
|
|
415
415
|
}
|
|
416
|
-
function
|
|
416
|
+
function Q(e, t) {
|
|
417
417
|
return e.replace(/\{\{\s*(\w+)\s*\}\}/g, (n, r) => {
|
|
418
418
|
const i = t?.[r];
|
|
419
419
|
return i != null ? String(i) : "";
|
|
420
420
|
});
|
|
421
421
|
}
|
|
422
|
-
function
|
|
423
|
-
const
|
|
424
|
-
|
|
422
|
+
function ht(e, t, n) {
|
|
423
|
+
const i = t.find((a) => a.code === e)?.additional_config?.on_field_change?.clear ?? [];
|
|
424
|
+
return i.length === 0 ? [] : i.filter(
|
|
425
|
+
(a) => n?.[a] !== void 0 && n?.[a] !== null
|
|
426
|
+
);
|
|
427
|
+
}
|
|
428
|
+
function yt(e, t) {
|
|
429
|
+
const n = R(
|
|
430
|
+
() => pt(e),
|
|
425
431
|
[e]
|
|
426
|
-
), r =
|
|
432
|
+
), r = U.useWatch(
|
|
427
433
|
n.length > 0 ? n : void 0,
|
|
428
434
|
t
|
|
429
435
|
);
|
|
430
|
-
return
|
|
436
|
+
return R(() => {
|
|
431
437
|
if (!n.length) return {};
|
|
432
438
|
const i = {};
|
|
433
439
|
return n.forEach((a, s) => {
|
|
@@ -435,67 +441,67 @@ function pt(e, t) {
|
|
|
435
441
|
}), i;
|
|
436
442
|
}, [n, r]);
|
|
437
443
|
}
|
|
438
|
-
function
|
|
444
|
+
function bt({
|
|
439
445
|
group: e,
|
|
440
446
|
formInstance: t,
|
|
441
447
|
searchKeyword: n = "",
|
|
442
448
|
searchDebounceMs: r = 500
|
|
443
449
|
}) {
|
|
444
|
-
const i = M(), a =
|
|
445
|
-
() => se((
|
|
450
|
+
const i = M(), a = yt(e, t), [s, o] = P(), [d, c] = P(!1), [y, m] = P(), l = B(null), [p, h] = P(n), u = e.additional_config?.select?.search_keyword ?? !1, v = R(
|
|
451
|
+
() => se((b) => h(b), r),
|
|
446
452
|
[r]
|
|
447
453
|
);
|
|
448
|
-
|
|
449
|
-
u ? v(n) :
|
|
454
|
+
V(() => {
|
|
455
|
+
u ? v(n) : h("");
|
|
450
456
|
}, [n, u, v]);
|
|
451
|
-
const
|
|
452
|
-
const
|
|
453
|
-
if (!(!
|
|
457
|
+
const _ = R(() => {
|
|
458
|
+
const b = e.option_config?.api_options?.params, S = e.option_config?.api_options?.data;
|
|
459
|
+
if (!(!b && !S))
|
|
454
460
|
return {
|
|
455
|
-
params:
|
|
456
|
-
data: S ?
|
|
461
|
+
params: b ? q(b, a) : void 0,
|
|
462
|
+
data: S ? q(S, a) : void 0
|
|
457
463
|
};
|
|
458
|
-
}, [a, e]), w =
|
|
464
|
+
}, [a, e]), w = T(async () => {
|
|
459
465
|
if (!e.option_config || !e.is_option_api || !e.option_config.url)
|
|
460
466
|
return;
|
|
461
467
|
l.current?.abort();
|
|
462
|
-
const
|
|
463
|
-
l.current =
|
|
468
|
+
const b = new AbortController();
|
|
469
|
+
l.current = b;
|
|
464
470
|
const S = e.option_config.method?.toUpperCase() === "GET" || !e.option_config.method, A = u ? p : "", g = le([
|
|
465
471
|
e.code,
|
|
466
472
|
e.option_config.url,
|
|
467
473
|
e.option_config.method,
|
|
468
|
-
|
|
474
|
+
_,
|
|
469
475
|
A
|
|
470
476
|
]);
|
|
471
477
|
c(!0), m(void 0);
|
|
472
478
|
try {
|
|
473
|
-
const
|
|
479
|
+
const k = await re(
|
|
474
480
|
i,
|
|
475
481
|
"optionCache",
|
|
476
482
|
g,
|
|
477
|
-
async (
|
|
483
|
+
async (D) => {
|
|
478
484
|
const j = await i.client.request({
|
|
479
485
|
method: e.option_config?.method || "GET",
|
|
480
486
|
url: e.option_config?.url,
|
|
481
|
-
params: S && u ? { ...
|
|
482
|
-
data: !S && u ? { ...
|
|
483
|
-
signal:
|
|
487
|
+
params: S && u ? { ..._?.params, keywords: A } : _?.params,
|
|
488
|
+
data: !S && u ? { ..._?.data, keywords: A } : _?.data,
|
|
489
|
+
signal: D
|
|
484
490
|
});
|
|
485
491
|
return i.parsers.optionResponse(j.data, e);
|
|
486
492
|
},
|
|
487
|
-
|
|
493
|
+
b.signal
|
|
488
494
|
);
|
|
489
|
-
|
|
490
|
-
} catch (
|
|
491
|
-
|
|
495
|
+
b.signal.aborted || o(k);
|
|
496
|
+
} catch (k) {
|
|
497
|
+
b.signal.aborted || m(k);
|
|
492
498
|
} finally {
|
|
493
|
-
|
|
499
|
+
b.signal.aborted || c(!1);
|
|
494
500
|
}
|
|
495
|
-
}, [
|
|
496
|
-
return
|
|
501
|
+
}, [_, i, p, e, u]);
|
|
502
|
+
return V(() => (e.option_config && e.is_option_api && w(), () => l.current?.abort()), [w, e]), { options: s, isLoading: d, error: y, refetch: w };
|
|
497
503
|
}
|
|
498
|
-
const
|
|
504
|
+
const _t = ({
|
|
499
505
|
group: e,
|
|
500
506
|
formInstance: t,
|
|
501
507
|
fieldState: n,
|
|
@@ -505,45 +511,37 @@ const yt = ({
|
|
|
505
511
|
size: s = "middle",
|
|
506
512
|
...o
|
|
507
513
|
}) => {
|
|
508
|
-
const { getDynamicField: d } =
|
|
514
|
+
const { getDynamicField: d } = ct({
|
|
509
515
|
formInstance: t,
|
|
510
516
|
uploadUrl: i,
|
|
511
517
|
setFieldState: r
|
|
512
|
-
}), c =
|
|
518
|
+
}), c = U.useWatch(e.code, t), [y, m] = P(""), l = e.additional_config?.select?.search_keyword ?? !1, { options: p, isLoading: h, error: u } = bt({
|
|
513
519
|
group: e,
|
|
514
520
|
formInstance: t,
|
|
515
|
-
searchKeyword:
|
|
521
|
+
searchKeyword: y,
|
|
516
522
|
searchDebounceMs: e.additional_config?.select?.searchDebounceMs ?? 500
|
|
517
|
-
}), v =
|
|
523
|
+
}), v = T((w) => {
|
|
518
524
|
m(w);
|
|
519
525
|
}, []);
|
|
520
|
-
|
|
521
|
-
if (e.additional_config?.on_field_change?.clear?.length) {
|
|
522
|
-
const w = t.getFieldsValue(
|
|
523
|
-
e.additional_config.on_field_change.clear
|
|
524
|
-
), h = e.additional_config.on_field_change.clear.filter(
|
|
525
|
-
(S) => w?.[S]
|
|
526
|
-
);
|
|
527
|
-
h.length && t.resetFields(h);
|
|
528
|
-
}
|
|
526
|
+
V(() => {
|
|
529
527
|
e.additional_config?.on_field_empty?.disable?.length && e.additional_config.on_field_empty.disable.forEach((w) => {
|
|
530
528
|
r(w, { disabled: !c });
|
|
531
529
|
});
|
|
532
530
|
}, [c, t, e, r]);
|
|
533
|
-
const
|
|
531
|
+
const _ = s === "small" ? 4 : 12;
|
|
534
532
|
return /* @__PURE__ */ f(
|
|
535
|
-
|
|
533
|
+
U.Item,
|
|
536
534
|
{
|
|
537
535
|
label: e.label,
|
|
538
536
|
name: e.code,
|
|
539
537
|
hidden: n?.hidden,
|
|
540
538
|
rules: [{ required: n?.required || !1 }],
|
|
541
|
-
style: { marginBottom:
|
|
539
|
+
style: { marginBottom: _, ...o.style },
|
|
542
540
|
...o,
|
|
543
541
|
children: d(e, {
|
|
544
542
|
state: n,
|
|
545
543
|
options: p,
|
|
546
|
-
optionsLoading:
|
|
544
|
+
optionsLoading: h,
|
|
547
545
|
optionsError: u,
|
|
548
546
|
onSearchKeyword: l ? v : void 0,
|
|
549
547
|
readOnly: a
|
|
@@ -551,24 +549,24 @@ const yt = ({
|
|
|
551
549
|
}
|
|
552
550
|
);
|
|
553
551
|
};
|
|
554
|
-
function
|
|
552
|
+
function vt(e, t) {
|
|
555
553
|
return e.group.id === t.group.id && e.readOnly === t.readOnly && e.uploadUrl === t.uploadUrl && e.size === t.size && e.fieldState?.disabled === t.fieldState?.disabled && e.fieldState?.hidden === t.fieldState?.hidden && e.fieldState?.required === t.fieldState?.required;
|
|
556
554
|
}
|
|
557
|
-
const
|
|
558
|
-
function
|
|
555
|
+
const wt = C(_t, vt);
|
|
556
|
+
function gt({
|
|
559
557
|
fieldGroups: e,
|
|
560
558
|
fieldStates: t,
|
|
561
559
|
renderField: n,
|
|
562
560
|
gutter: r,
|
|
563
561
|
defaultColSpan: i
|
|
564
562
|
}) {
|
|
565
|
-
return /* @__PURE__ */ f(
|
|
563
|
+
return /* @__PURE__ */ f($e, { gutter: r, children: e.map((a) => {
|
|
566
564
|
const s = t[a.code]?.hidden ? 0 : Number(a.additional_config?.field_col_span) || i;
|
|
567
|
-
return /* @__PURE__ */ f(
|
|
565
|
+
return /* @__PURE__ */ f(ze, { xs: s, children: n(a) }, a.id);
|
|
568
566
|
}) });
|
|
569
567
|
}
|
|
570
|
-
function
|
|
571
|
-
return
|
|
568
|
+
function At(e) {
|
|
569
|
+
return R(() => {
|
|
572
570
|
const t = e?.form?.field_groups ?? [], n = /* @__PURE__ */ new Map(), r = {};
|
|
573
571
|
t.forEach((a) => {
|
|
574
572
|
n.set(a.code, a), a.additional_config?.default !== void 0 && (r[a.code] = a.additional_config.default);
|
|
@@ -587,14 +585,14 @@ function we(e) {
|
|
|
587
585
|
};
|
|
588
586
|
}), t;
|
|
589
587
|
}
|
|
590
|
-
function
|
|
591
|
-
const [t, n] =
|
|
588
|
+
function St(e) {
|
|
589
|
+
const [t, n] = P(
|
|
592
590
|
() => we(e)
|
|
593
591
|
);
|
|
594
|
-
|
|
592
|
+
V(() => {
|
|
595
593
|
n(we(e));
|
|
596
594
|
}, [e]);
|
|
597
|
-
const r =
|
|
595
|
+
const r = T((i, a) => {
|
|
598
596
|
n((s) => ({
|
|
599
597
|
...s,
|
|
600
598
|
[i]: { ...s[i], ...a }
|
|
@@ -602,23 +600,23 @@ function gt(e) {
|
|
|
602
600
|
}, []);
|
|
603
601
|
return { fieldStates: t, setFieldStates: n, setFieldState: r };
|
|
604
602
|
}
|
|
605
|
-
function
|
|
603
|
+
function Ft({
|
|
606
604
|
formInstance: e,
|
|
607
605
|
fieldByCode: t,
|
|
608
606
|
relatedData: n,
|
|
609
607
|
transformers: r
|
|
610
608
|
}) {
|
|
611
|
-
return { buildProcessedValues:
|
|
609
|
+
return { buildProcessedValues: T(async () => {
|
|
612
610
|
await e.validateFields();
|
|
613
611
|
const a = e.getFieldsValue(), s = {};
|
|
614
612
|
for (const c of Object.keys(a)) {
|
|
615
|
-
const
|
|
616
|
-
if (!
|
|
613
|
+
const y = t.get(c);
|
|
614
|
+
if (!y) continue;
|
|
617
615
|
let m;
|
|
618
|
-
switch (
|
|
616
|
+
switch (y.field?.type?.code) {
|
|
619
617
|
case "datetime":
|
|
620
|
-
m = a[c] ?
|
|
621
|
-
|
|
618
|
+
m = a[c] ? Z(a[c]).format(
|
|
619
|
+
y.additional_config?.datetime?.format
|
|
622
620
|
) : null;
|
|
623
621
|
break;
|
|
624
622
|
case "image":
|
|
@@ -633,17 +631,17 @@ function At({
|
|
|
633
631
|
default:
|
|
634
632
|
m = a[c];
|
|
635
633
|
}
|
|
636
|
-
r.transformFieldValue && (m = r.transformFieldValue(c, m,
|
|
634
|
+
r.transformFieldValue && (m = r.transformFieldValue(c, m, y)), s[c] = m;
|
|
637
635
|
}
|
|
638
636
|
let o = s;
|
|
639
637
|
return r.transformSubmitValues && (o = r.transformSubmitValues(
|
|
640
638
|
o,
|
|
641
639
|
Array.from(t.values()),
|
|
642
640
|
n
|
|
643
|
-
)), (r.parseRelatedDataTemplates ??
|
|
641
|
+
)), (r.parseRelatedDataTemplates ?? mt)(o, n ?? {});
|
|
644
642
|
}, [t, e, n, r]) };
|
|
645
643
|
}
|
|
646
|
-
const
|
|
644
|
+
const kt = Ne(
|
|
647
645
|
({
|
|
648
646
|
formConfig: e,
|
|
649
647
|
formInstance: t,
|
|
@@ -655,75 +653,75 @@ const St = Ne(
|
|
|
655
653
|
onSubmitSuccess: o,
|
|
656
654
|
onSubmitError: d,
|
|
657
655
|
isRedirectAfterCreate: c,
|
|
658
|
-
onRedirect:
|
|
656
|
+
onRedirect: y,
|
|
659
657
|
size: m = "middle",
|
|
660
658
|
manualSubmit: l = !1,
|
|
661
659
|
onValuesChange: p,
|
|
662
|
-
readOnly:
|
|
660
|
+
readOnly: h = !1,
|
|
663
661
|
submitDebounceMs: u,
|
|
664
662
|
gutter: v = [8, 0],
|
|
665
|
-
defaultColSpan:
|
|
663
|
+
defaultColSpan: _ = 12,
|
|
666
664
|
submitButtonLabel: w
|
|
667
|
-
},
|
|
668
|
-
const { message: S } =
|
|
665
|
+
}, b) => {
|
|
666
|
+
const { message: S } = He.useApp(), A = M(), { i18n: g, client: k, parsers: D, redirectHandler: j, renderers: K, transformers: $ } = A, ce = r ?? i, de = u ?? A.submitDebounceMs, ue = w ?? g.messages.submit, { fieldGroups: L, fieldByCode: Oe, initialValues: z } = At(e), { fieldStates: H, setFieldState: fe } = St(L), { buildProcessedValues: Y } = Ft({
|
|
669
667
|
formInstance: t,
|
|
670
|
-
fieldByCode:
|
|
668
|
+
fieldByCode: Oe,
|
|
671
669
|
relatedData: n,
|
|
672
|
-
transformers:
|
|
673
|
-
}), N =
|
|
674
|
-
|
|
675
|
-
if (Object.keys(
|
|
676
|
-
const
|
|
677
|
-
t.setFieldsValue(
|
|
670
|
+
transformers: $
|
|
671
|
+
}), N = B(!1), [me, pe] = P(!1), [he, ye] = P(!1);
|
|
672
|
+
V(() => {
|
|
673
|
+
if (Object.keys(z).length > 0) {
|
|
674
|
+
const F = $.normalizeInitialValues ? $.normalizeInitialValues(z, L) : z;
|
|
675
|
+
t.setFieldsValue(F);
|
|
678
676
|
}
|
|
679
|
-
}, [
|
|
680
|
-
const
|
|
677
|
+
}, [L, t, z, $]);
|
|
678
|
+
const J = T(async () => {
|
|
681
679
|
if (!N.current) {
|
|
682
680
|
N.current = !0, pe(!0);
|
|
683
681
|
try {
|
|
684
|
-
let
|
|
682
|
+
let F = await Y();
|
|
685
683
|
try {
|
|
686
|
-
a && (ye(!0), await
|
|
684
|
+
a && (ye(!0), await k.request({
|
|
687
685
|
method: "POST",
|
|
688
686
|
url: a,
|
|
689
|
-
data:
|
|
687
|
+
data: F
|
|
690
688
|
}));
|
|
691
|
-
const
|
|
692
|
-
if (
|
|
693
|
-
|
|
694
|
-
} catch (
|
|
695
|
-
console.error(
|
|
689
|
+
const E = await s?.(F);
|
|
690
|
+
if (E === !1) return;
|
|
691
|
+
E && typeof E == "object" && (F = E);
|
|
692
|
+
} catch (E) {
|
|
693
|
+
console.error(E);
|
|
696
694
|
return;
|
|
697
695
|
} finally {
|
|
698
696
|
ye(!1);
|
|
699
697
|
}
|
|
700
|
-
const
|
|
698
|
+
const O = await k.request({
|
|
701
699
|
method: e.method,
|
|
702
700
|
url: e.action,
|
|
703
|
-
data:
|
|
701
|
+
data: F
|
|
704
702
|
});
|
|
705
703
|
t.resetFields(
|
|
706
|
-
|
|
704
|
+
L.filter((E) => !E.is_hidden).map((E) => E.code)
|
|
707
705
|
);
|
|
708
|
-
const
|
|
709
|
-
c &&
|
|
710
|
-
values:
|
|
711
|
-
response:
|
|
712
|
-
data:
|
|
706
|
+
const W = D.submitResponse(O.data);
|
|
707
|
+
c && W.redirectUrl && (y ?? j)(W.redirectUrl, "_blank"), o?.({
|
|
708
|
+
values: F,
|
|
709
|
+
response: O.data,
|
|
710
|
+
data: W.data ?? O.data
|
|
713
711
|
});
|
|
714
|
-
} catch (
|
|
715
|
-
const
|
|
712
|
+
} catch (F) {
|
|
713
|
+
const O = F;
|
|
716
714
|
S.error(
|
|
717
|
-
|
|
718
|
-
), d?.(
|
|
715
|
+
O?.response?.data?.message ?? g.messages.submitError
|
|
716
|
+
), d?.(F);
|
|
719
717
|
} finally {
|
|
720
718
|
N.current = !1, pe(!1);
|
|
721
719
|
}
|
|
722
720
|
}
|
|
723
721
|
}, [
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
722
|
+
Y,
|
|
723
|
+
k,
|
|
724
|
+
L,
|
|
727
725
|
e.action,
|
|
728
726
|
e.method,
|
|
729
727
|
t,
|
|
@@ -731,95 +729,107 @@ const St = Ne(
|
|
|
731
729
|
c,
|
|
732
730
|
S,
|
|
733
731
|
s,
|
|
734
|
-
|
|
732
|
+
y,
|
|
735
733
|
d,
|
|
736
734
|
o,
|
|
737
|
-
|
|
735
|
+
D,
|
|
738
736
|
j,
|
|
739
737
|
a
|
|
740
738
|
]);
|
|
741
|
-
|
|
742
|
-
|
|
739
|
+
Je(
|
|
740
|
+
b,
|
|
743
741
|
() => ({
|
|
744
|
-
submit:
|
|
745
|
-
getProcessedValues:
|
|
742
|
+
submit: J,
|
|
743
|
+
getProcessedValues: Y,
|
|
746
744
|
isSubmitting: () => N.current
|
|
747
745
|
}),
|
|
748
|
-
[
|
|
746
|
+
[Y, J]
|
|
749
747
|
);
|
|
750
|
-
const
|
|
748
|
+
const be = R(
|
|
751
749
|
() => se(() => {
|
|
752
|
-
|
|
750
|
+
J();
|
|
753
751
|
}, de),
|
|
754
|
-
[
|
|
755
|
-
),
|
|
756
|
-
(
|
|
757
|
-
|
|
752
|
+
[J, de]
|
|
753
|
+
), Ve = T(
|
|
754
|
+
(F, O) => {
|
|
755
|
+
Object.keys(F).forEach((W) => {
|
|
756
|
+
const E = ht(
|
|
757
|
+
W,
|
|
758
|
+
L,
|
|
759
|
+
t.getFieldsValue()
|
|
760
|
+
);
|
|
761
|
+
E.length > 0 && t.resetFields(E);
|
|
762
|
+
}), p?.(F, O);
|
|
763
|
+
},
|
|
764
|
+
[L, t, p]
|
|
765
|
+
), _e = T(
|
|
766
|
+
(F) => /* @__PURE__ */ f(
|
|
767
|
+
wt,
|
|
758
768
|
{
|
|
759
|
-
group:
|
|
769
|
+
group: F,
|
|
760
770
|
formInstance: t,
|
|
761
|
-
fieldState:
|
|
771
|
+
fieldState: H[F.code],
|
|
762
772
|
setFieldState: fe,
|
|
763
773
|
uploadUrl: ce,
|
|
764
|
-
readOnly:
|
|
774
|
+
readOnly: h,
|
|
765
775
|
size: m
|
|
766
776
|
},
|
|
767
|
-
|
|
777
|
+
F.id
|
|
768
778
|
),
|
|
769
779
|
[
|
|
770
|
-
|
|
780
|
+
H,
|
|
771
781
|
t,
|
|
772
|
-
|
|
782
|
+
h,
|
|
773
783
|
ce,
|
|
774
784
|
fe,
|
|
775
785
|
m
|
|
776
786
|
]
|
|
777
|
-
),
|
|
778
|
-
fieldGroups:
|
|
779
|
-
fieldStates:
|
|
780
|
-
renderField:
|
|
787
|
+
), qe = K.layout ? K.layout({
|
|
788
|
+
fieldGroups: L,
|
|
789
|
+
fieldStates: H,
|
|
790
|
+
renderField: _e,
|
|
781
791
|
gutter: v,
|
|
782
|
-
defaultColSpan:
|
|
792
|
+
defaultColSpan: _,
|
|
783
793
|
size: m
|
|
784
794
|
}) : /* @__PURE__ */ f(
|
|
785
|
-
|
|
795
|
+
gt,
|
|
786
796
|
{
|
|
787
|
-
fieldGroups:
|
|
788
|
-
fieldStates:
|
|
789
|
-
renderField:
|
|
797
|
+
fieldGroups: L,
|
|
798
|
+
fieldStates: H,
|
|
799
|
+
renderField: _e,
|
|
790
800
|
gutter: v,
|
|
791
|
-
defaultColSpan:
|
|
801
|
+
defaultColSpan: _,
|
|
792
802
|
size: m
|
|
793
803
|
}
|
|
794
|
-
),
|
|
795
|
-
onSubmit:
|
|
804
|
+
), Ue = !l && !h && (K.submitActions ? K.submitActions({
|
|
805
|
+
onSubmit: be,
|
|
796
806
|
loading: me || he,
|
|
797
807
|
label: ue
|
|
798
808
|
}) : /* @__PURE__ */ f(ie, { justify: "flex-end", children: /* @__PURE__ */ f(
|
|
799
809
|
Ee,
|
|
800
810
|
{
|
|
801
811
|
type: "primary",
|
|
802
|
-
onClick:
|
|
812
|
+
onClick: be,
|
|
803
813
|
loading: me || he,
|
|
804
814
|
children: ue
|
|
805
815
|
}
|
|
806
816
|
) }));
|
|
807
|
-
return /* @__PURE__ */
|
|
808
|
-
|
|
817
|
+
return /* @__PURE__ */ Be(
|
|
818
|
+
U,
|
|
809
819
|
{
|
|
810
820
|
layout: "vertical",
|
|
811
821
|
form: t,
|
|
812
822
|
size: m,
|
|
813
|
-
onValuesChange:
|
|
823
|
+
onValuesChange: Ve,
|
|
814
824
|
children: [
|
|
815
|
-
|
|
816
|
-
|
|
825
|
+
qe,
|
|
826
|
+
Ue
|
|
817
827
|
]
|
|
818
828
|
}
|
|
819
829
|
);
|
|
820
830
|
}
|
|
821
831
|
);
|
|
822
|
-
|
|
832
|
+
kt.displayName = "DynamicForm";
|
|
823
833
|
function De(e) {
|
|
824
834
|
if (!e) return;
|
|
825
835
|
const { mode: t } = e;
|
|
@@ -859,19 +869,19 @@ function ge(e) {
|
|
|
859
869
|
id: e
|
|
860
870
|
};
|
|
861
871
|
}
|
|
862
|
-
function
|
|
872
|
+
function Et(e, t) {
|
|
863
873
|
const n = t.method || "GET", r = n.toUpperCase() === "GET";
|
|
864
874
|
if (t.url_template)
|
|
865
875
|
return (Array.isArray(e) ? e.filter((d) => d != null && d !== "") : e != null && e !== "" ? [e] : []).map((d) => {
|
|
866
|
-
const c = ge(d),
|
|
876
|
+
const c = ge(d), y = Q(t.url, c), m = t.params ? q(t.params, c) : void 0, l = t.data ? q(t.data, c) : void 0;
|
|
867
877
|
return {
|
|
868
878
|
method: n,
|
|
869
|
-
url:
|
|
879
|
+
url: y,
|
|
870
880
|
params: r ? m : void 0,
|
|
871
881
|
data: r ? void 0 : l
|
|
872
882
|
};
|
|
873
883
|
});
|
|
874
|
-
const i = ge(e), a = t.params ?
|
|
884
|
+
const i = ge(e), a = t.params ? q(t.params, i) : void 0, s = t.data ? q(t.data, i) : void 0;
|
|
875
885
|
return [
|
|
876
886
|
{
|
|
877
887
|
method: n,
|
|
@@ -882,17 +892,17 @@ function Ft(e, t) {
|
|
|
882
892
|
];
|
|
883
893
|
}
|
|
884
894
|
function Pe(e, t) {
|
|
885
|
-
const n = t.data_path ?
|
|
895
|
+
const n = t.data_path ? I(e, t.data_path) : e;
|
|
886
896
|
return (t.result_type ?? (Array.isArray(n) ? "array" : "object")) === "array" ? Array.isArray(n) ? n : n != null ? [n] : [] : Array.isArray(n) ? n.length ? [n[0]] : [] : n && typeof n == "object" ? [n] : [];
|
|
887
897
|
}
|
|
888
|
-
function
|
|
889
|
-
return
|
|
898
|
+
function Te(e, t) {
|
|
899
|
+
return Mt(e, t.mapping_attr);
|
|
890
900
|
}
|
|
891
|
-
function
|
|
892
|
-
return
|
|
901
|
+
function xe(e, t) {
|
|
902
|
+
return jt(t.link, e);
|
|
893
903
|
}
|
|
894
|
-
async function
|
|
895
|
-
const i =
|
|
904
|
+
async function Rt(e, t, n, r) {
|
|
905
|
+
const i = Et(e, t);
|
|
896
906
|
if (!i.length) return [];
|
|
897
907
|
const a = await Promise.all(
|
|
898
908
|
i.map((o) => n({ ...o, signal: r }))
|
|
@@ -901,10 +911,10 @@ async function kt(e, t, n, r) {
|
|
|
901
911
|
s.push(...Pe(o.data, t));
|
|
902
912
|
return s;
|
|
903
913
|
}
|
|
904
|
-
function
|
|
914
|
+
function G(e) {
|
|
905
915
|
return !!(e == null || e === "" || Array.isArray(e) && e.length === 0);
|
|
906
916
|
}
|
|
907
|
-
function
|
|
917
|
+
function Dt(e, t) {
|
|
908
918
|
const n = e.option_config?.api_options?.params, r = e.option_config?.api_options?.data;
|
|
909
919
|
if (!n && !r) return;
|
|
910
920
|
const i = (a) => {
|
|
@@ -922,7 +932,7 @@ function Et(e, t) {
|
|
|
922
932
|
data: r ? i(r) : void 0
|
|
923
933
|
};
|
|
924
934
|
}
|
|
925
|
-
function
|
|
935
|
+
function Pt(e, t) {
|
|
926
936
|
const n = t.option_config?.label_attr, r = t.option_config?.value_attr || "";
|
|
927
937
|
if (n?.length) {
|
|
928
938
|
const i = n.join(" - ");
|
|
@@ -930,33 +940,33 @@ function Rt(e, t) {
|
|
|
930
940
|
}
|
|
931
941
|
return String(e[r] ?? "");
|
|
932
942
|
}
|
|
933
|
-
function
|
|
943
|
+
function Tt(e, t) {
|
|
934
944
|
if (!t?.length) return null;
|
|
935
945
|
const r = (Array.isArray(e) ? e : [e]).map((i) => t.find((a) => String(a.value) === String(i))?.label).filter((i) => !!i);
|
|
936
946
|
return r.length ? r.join(", ") : null;
|
|
937
947
|
}
|
|
938
|
-
function
|
|
939
|
-
if (
|
|
948
|
+
function xt(e, t, n) {
|
|
949
|
+
if (G(e)) return null;
|
|
940
950
|
const r = t.option_config?.value_attr || "value", i = Array.isArray(e) ? e : [e];
|
|
941
951
|
if (t.is_option_api && n?.length) {
|
|
942
952
|
const s = i.map((o) => {
|
|
943
953
|
const d = n.find(
|
|
944
954
|
(c) => String(c[r]) === String(o)
|
|
945
955
|
);
|
|
946
|
-
return d ?
|
|
956
|
+
return d ? Pt(d, t) : String(o);
|
|
947
957
|
}).filter(Boolean);
|
|
948
958
|
return s.length ? s.join(", ") : null;
|
|
949
959
|
}
|
|
950
|
-
const a =
|
|
960
|
+
const a = Tt(e, t.metas);
|
|
951
961
|
return a || i.map(String).join(", ");
|
|
952
962
|
}
|
|
953
|
-
function
|
|
954
|
-
if (
|
|
955
|
-
const n = t.additional_config?.datetime?.format, r =
|
|
963
|
+
function Lt(e, t) {
|
|
964
|
+
if (G(e)) return null;
|
|
965
|
+
const n = t.additional_config?.datetime?.format, r = Z(e);
|
|
956
966
|
return r.isValid() ? n ? r.format(n) : r.format("YYYY-MM-DD HH:mm:ss") : String(e);
|
|
957
967
|
}
|
|
958
|
-
function
|
|
959
|
-
if (
|
|
968
|
+
function Ct(e) {
|
|
969
|
+
if (G(e)) return null;
|
|
960
970
|
if (Array.isArray(e)) {
|
|
961
971
|
const t = e.map(
|
|
962
972
|
(n) => typeof n == "object" && n && "name" in n ? String(n.name) : String(n)
|
|
@@ -965,20 +975,20 @@ function Lt(e) {
|
|
|
965
975
|
}
|
|
966
976
|
return String(e);
|
|
967
977
|
}
|
|
968
|
-
function
|
|
978
|
+
function Mt(e, t) {
|
|
969
979
|
return t?.length ? t.map((n) => {
|
|
970
|
-
const r =
|
|
980
|
+
const r = I(e, n) ?? e[n];
|
|
971
981
|
return r != null ? String(r) : "";
|
|
972
982
|
}).filter(Boolean).join(" - ") : JSON.stringify(e);
|
|
973
983
|
}
|
|
974
|
-
function
|
|
984
|
+
function jt(e, t) {
|
|
975
985
|
return e ? e.replace(/\{\{(.+?)\}\}/g, (n, r) => {
|
|
976
|
-
const i = r.trim(), a =
|
|
986
|
+
const i = r.trim(), a = I(t, i) ?? t[i];
|
|
977
987
|
return a != null ? String(a) : "";
|
|
978
988
|
}) : null;
|
|
979
989
|
}
|
|
980
990
|
function Ae(e, t, n) {
|
|
981
|
-
if (
|
|
991
|
+
if (G(e)) return null;
|
|
982
992
|
switch (t?.mode ?? "formatted") {
|
|
983
993
|
case "raw":
|
|
984
994
|
case "formatted":
|
|
@@ -991,7 +1001,7 @@ function Ae(e, t, n) {
|
|
|
991
1001
|
return Array.isArray(e) ? e.map(String).join(", ") : String(e);
|
|
992
1002
|
const a = Pe(n, i);
|
|
993
1003
|
return a.length ? a.map((o) => {
|
|
994
|
-
const d =
|
|
1004
|
+
const d = Te(o, i), c = xe(o, i);
|
|
995
1005
|
return c ? `${d} (${c})` : d;
|
|
996
1006
|
}).filter(Boolean).join(", ") || null : String(e);
|
|
997
1007
|
}
|
|
@@ -999,7 +1009,7 @@ function Ae(e, t, n) {
|
|
|
999
1009
|
return String(e);
|
|
1000
1010
|
}
|
|
1001
1011
|
}
|
|
1002
|
-
function
|
|
1012
|
+
function Ot(e, t, n) {
|
|
1003
1013
|
const r = e.additional_config?.view_value;
|
|
1004
1014
|
if (r?.mode === "api" || r?.mode === "api_ids" || r?.mode === "api_detail")
|
|
1005
1015
|
return Ae(
|
|
@@ -1010,83 +1020,83 @@ function jt(e, t, n) {
|
|
|
1010
1020
|
switch (e.field?.type?.code) {
|
|
1011
1021
|
case "text":
|
|
1012
1022
|
case "number":
|
|
1013
|
-
return
|
|
1023
|
+
return G(t) ? null : String(t);
|
|
1014
1024
|
case "datetime":
|
|
1015
|
-
return
|
|
1025
|
+
return Lt(t, e);
|
|
1016
1026
|
case "select":
|
|
1017
1027
|
case "radio":
|
|
1018
1028
|
case "checkbox":
|
|
1019
|
-
return
|
|
1029
|
+
return xt(t, e, n.optionList);
|
|
1020
1030
|
case "image":
|
|
1021
1031
|
case "file":
|
|
1022
|
-
return
|
|
1032
|
+
return Ct(t);
|
|
1023
1033
|
default:
|
|
1024
1034
|
return r ? Ae(
|
|
1025
1035
|
t,
|
|
1026
1036
|
r,
|
|
1027
1037
|
n.viewValueFetched
|
|
1028
|
-
) :
|
|
1038
|
+
) : G(t) ? null : String(t);
|
|
1029
1039
|
}
|
|
1030
1040
|
}
|
|
1031
|
-
const
|
|
1032
|
-
function
|
|
1033
|
-
const t =
|
|
1041
|
+
const X = /* @__PURE__ */ new Map(), Vt = 3e4;
|
|
1042
|
+
function qt(e) {
|
|
1043
|
+
const t = X.get(e);
|
|
1034
1044
|
if (t) {
|
|
1035
1045
|
if (Date.now() > t.expiresAt) {
|
|
1036
|
-
|
|
1046
|
+
X.delete(e);
|
|
1037
1047
|
return;
|
|
1038
1048
|
}
|
|
1039
1049
|
return t.error;
|
|
1040
1050
|
}
|
|
1041
1051
|
}
|
|
1042
1052
|
function Se(e, t) {
|
|
1043
|
-
|
|
1053
|
+
X.set(e, {
|
|
1044
1054
|
error: t,
|
|
1045
1055
|
expiresAt: Date.now() + Vt
|
|
1046
1056
|
});
|
|
1047
1057
|
}
|
|
1048
|
-
function
|
|
1049
|
-
const r = M(), [i, a] =
|
|
1050
|
-
|
|
1058
|
+
function ee(e, t, n = !0) {
|
|
1059
|
+
const r = M(), [i, a] = P(), [s, o] = P(!1), [d, c] = P(), y = B(t), m = B(r);
|
|
1060
|
+
y.current = t, m.current = r;
|
|
1051
1061
|
const l = le(e);
|
|
1052
|
-
return
|
|
1062
|
+
return V(() => {
|
|
1053
1063
|
if (!n) {
|
|
1054
1064
|
a(void 0), c(void 0), o(!1);
|
|
1055
1065
|
return;
|
|
1056
1066
|
}
|
|
1057
|
-
const
|
|
1058
|
-
if (
|
|
1059
|
-
c(
|
|
1067
|
+
const h = qt(l);
|
|
1068
|
+
if (h !== void 0) {
|
|
1069
|
+
c(h), o(!1);
|
|
1060
1070
|
return;
|
|
1061
1071
|
}
|
|
1062
1072
|
const u = new AbortController();
|
|
1063
1073
|
return o(!0), c(void 0), (async () => {
|
|
1064
1074
|
try {
|
|
1065
|
-
const
|
|
1075
|
+
const _ = await re(
|
|
1066
1076
|
m.current,
|
|
1067
1077
|
"viewCache",
|
|
1068
1078
|
l,
|
|
1069
|
-
(w) =>
|
|
1079
|
+
(w) => y.current(w),
|
|
1070
1080
|
u.signal
|
|
1071
1081
|
);
|
|
1072
|
-
u.signal.aborted || (a(
|
|
1073
|
-
} catch (
|
|
1074
|
-
u.signal.aborted || (Se(l,
|
|
1082
|
+
u.signal.aborted || (a(_), c(void 0));
|
|
1083
|
+
} catch (_) {
|
|
1084
|
+
u.signal.aborted || (Se(l, _), c(_));
|
|
1075
1085
|
} finally {
|
|
1076
1086
|
u.signal.aborted || o(!1);
|
|
1077
1087
|
}
|
|
1078
1088
|
})(), () => u.abort();
|
|
1079
1089
|
}, [n, l]), { data: i, isLoading: s, error: d, refetch: async () => {
|
|
1080
|
-
if (
|
|
1081
|
-
const
|
|
1090
|
+
if (X.delete(l), !n) return;
|
|
1091
|
+
const h = new AbortController();
|
|
1082
1092
|
o(!0), c(void 0);
|
|
1083
1093
|
try {
|
|
1084
1094
|
const u = await re(
|
|
1085
1095
|
m.current,
|
|
1086
1096
|
"viewCache",
|
|
1087
1097
|
l,
|
|
1088
|
-
(v) =>
|
|
1089
|
-
|
|
1098
|
+
(v) => y.current(v),
|
|
1099
|
+
h.signal
|
|
1090
1100
|
);
|
|
1091
1101
|
return a(u), u;
|
|
1092
1102
|
} catch (u) {
|
|
@@ -1096,19 +1106,19 @@ function Z(e, t, n = !0) {
|
|
|
1096
1106
|
}
|
|
1097
1107
|
} };
|
|
1098
1108
|
}
|
|
1099
|
-
const
|
|
1100
|
-
const { client: r, renderers: i, i18n: a } = M(), s =
|
|
1109
|
+
const Ut = ({ value: e, code: t, modeConfig: n }) => {
|
|
1110
|
+
const { client: r, renderers: i, i18n: a } = M(), s = R(
|
|
1101
1111
|
() => (Array.isArray(e) ? e : [e]).filter(Boolean),
|
|
1102
1112
|
[e]
|
|
1103
1113
|
), {
|
|
1104
1114
|
data: o,
|
|
1105
1115
|
isLoading: d,
|
|
1106
1116
|
error: c
|
|
1107
|
-
} =
|
|
1117
|
+
} = ee(
|
|
1108
1118
|
["api_detail", t, s, n?.url, n?.method],
|
|
1109
1119
|
async (l) => (await Promise.all(
|
|
1110
|
-
s.map(async (
|
|
1111
|
-
const u =
|
|
1120
|
+
s.map(async (h) => {
|
|
1121
|
+
const u = Q(n?.url || "", { id: h });
|
|
1112
1122
|
return (await r.request({
|
|
1113
1123
|
method: n?.method,
|
|
1114
1124
|
url: u,
|
|
@@ -1117,86 +1127,86 @@ const Ot = ({ value: e, code: t, modeConfig: n }) => {
|
|
|
1117
1127
|
})
|
|
1118
1128
|
)).filter(Boolean),
|
|
1119
1129
|
!!(s.length && n?.url)
|
|
1120
|
-
),
|
|
1121
|
-
const p = n?.mapping_attr?.map((
|
|
1130
|
+
), y = (l, p, h) => i.link ? i.link({ url: l, label: p, data: h }) : /* @__PURE__ */ f("a", { href: l, target: "_blank", rel: "noreferrer", children: p }), m = (l) => {
|
|
1131
|
+
const p = n?.mapping_attr?.map((h) => l?.[h]).join(" - ");
|
|
1122
1132
|
if (n?.link) {
|
|
1123
|
-
const
|
|
1124
|
-
return
|
|
1133
|
+
const h = Q(n.link, l);
|
|
1134
|
+
return y(h, p, l);
|
|
1125
1135
|
}
|
|
1126
1136
|
return p;
|
|
1127
1137
|
};
|
|
1128
|
-
return d ? /* @__PURE__ */ f(
|
|
1129
|
-
},
|
|
1138
|
+
return d ? /* @__PURE__ */ f(x, { children: i.viewLoading?.() ?? /* @__PURE__ */ f(ae, { size: "small" }) }) : c ? /* @__PURE__ */ f(x, { children: i.viewError?.(c) ?? a.messages.viewError }) : o?.length ? /* @__PURE__ */ f(x, { children: o.map((l, p) => /* @__PURE__ */ f("div", { children: m(l) }, p)) }) : /* @__PURE__ */ f(x, { children: i.viewEmpty?.() ?? a.messages.viewEmpty });
|
|
1139
|
+
}, Le = C(Ut), Bt = ({ value: e, code: t, modeConfig: n }) => {
|
|
1130
1140
|
const { client: r, renderers: i, i18n: a } = M(), {
|
|
1131
1141
|
data: s,
|
|
1132
1142
|
isLoading: o,
|
|
1133
1143
|
error: d
|
|
1134
|
-
} =
|
|
1144
|
+
} = ee(
|
|
1135
1145
|
["api_ids", t, e, n?.url, n?.method],
|
|
1136
1146
|
async (m) => {
|
|
1137
|
-
const l = n?.method || "GET", p = l.toUpperCase() === "POST",
|
|
1147
|
+
const l = n?.method || "GET", p = l.toUpperCase() === "POST", h = Array.isArray(e) ? e : [e], v = (await r.request({
|
|
1138
1148
|
method: l,
|
|
1139
1149
|
url: n?.url || "",
|
|
1140
|
-
data: p ? { ids:
|
|
1141
|
-
params: p ? void 0 : { ids:
|
|
1150
|
+
data: p ? { ids: h } : void 0,
|
|
1151
|
+
params: p ? void 0 : { ids: h },
|
|
1142
1152
|
signal: m
|
|
1143
|
-
})).data,
|
|
1144
|
-
return Array.isArray(
|
|
1153
|
+
})).data, _ = n?.data_path ? I(v, n.data_path) : v;
|
|
1154
|
+
return Array.isArray(_) ? _ : v;
|
|
1145
1155
|
},
|
|
1146
1156
|
!!(e && n?.url)
|
|
1147
|
-
), c = (m, l, p) => i.link ? i.link({ url: m, label: l, data: p }) : /* @__PURE__ */ f("a", { href: m, target: "_blank", rel: "noreferrer", children: l }),
|
|
1157
|
+
), c = (m, l, p) => i.link ? i.link({ url: m, label: l, data: p }) : /* @__PURE__ */ f("a", { href: m, target: "_blank", rel: "noreferrer", children: l }), y = (m) => {
|
|
1148
1158
|
const l = n?.mapping_attr?.map((p) => m?.[p]).join(" - ");
|
|
1149
1159
|
if (n?.link) {
|
|
1150
|
-
const p =
|
|
1160
|
+
const p = Q(n.link, m);
|
|
1151
1161
|
return c(p, l, m);
|
|
1152
1162
|
}
|
|
1153
1163
|
return l;
|
|
1154
1164
|
};
|
|
1155
|
-
return o ? /* @__PURE__ */ f(
|
|
1165
|
+
return o ? /* @__PURE__ */ f(x, { children: i.viewLoading?.() ?? /* @__PURE__ */ f(ae, { size: "small" }) }) : d ? /* @__PURE__ */ f(x, { children: i.viewError?.(d) ?? a.messages.viewError }) : s ? Array.isArray(e) ? /* @__PURE__ */ f(ie, { vertical: !0, children: (Array.isArray(s) ? s : [s]).map((m, l) => /* @__PURE__ */ f("div", { children: y(m) }, m.id ?? l)) }) : y(
|
|
1156
1166
|
Array.isArray(s) ? s[0] : s
|
|
1157
|
-
) : /* @__PURE__ */ f(
|
|
1158
|
-
},
|
|
1167
|
+
) : /* @__PURE__ */ f(x, { children: i.viewEmpty?.() ?? a.messages.viewEmpty });
|
|
1168
|
+
}, Ce = C(Bt), Gt = ({
|
|
1159
1169
|
value: e,
|
|
1160
1170
|
code: t,
|
|
1161
1171
|
modeConfig: n,
|
|
1162
1172
|
viewConfig: r
|
|
1163
1173
|
}) => {
|
|
1164
|
-
const { client: i, renderers: a, i18n: s } = M(), o =
|
|
1174
|
+
const { client: i, renderers: a, i18n: s } = M(), o = R(
|
|
1165
1175
|
() => n ?? (r ? De(r) : void 0),
|
|
1166
1176
|
[n, r]
|
|
1167
|
-
), d =
|
|
1177
|
+
), d = R(
|
|
1168
1178
|
() => ["api_view", t, e, o?.url, o?.method, o?.data_path],
|
|
1169
1179
|
[t, e, o?.url, o?.method, o?.data_path]
|
|
1170
|
-
), c =
|
|
1171
|
-
async (u) => o ?
|
|
1180
|
+
), c = T(
|
|
1181
|
+
async (u) => o ? Rt(
|
|
1172
1182
|
e,
|
|
1173
1183
|
o,
|
|
1174
1184
|
(v) => i.request({ ...v, signal: u })
|
|
1175
1185
|
) : [],
|
|
1176
1186
|
[i, o, e]
|
|
1177
|
-
), { data:
|
|
1187
|
+
), { data: y, isLoading: m, error: l } = ee(d, c, !!(e && o?.url)), p = (u, v, _) => a.link ? a.link({ url: u, label: v, data: _ }) : /* @__PURE__ */ f("a", { href: u, target: "_blank", rel: "noreferrer", children: v }), h = (u, v) => {
|
|
1178
1188
|
if (!o) return null;
|
|
1179
|
-
const
|
|
1180
|
-
return /* @__PURE__ */ f("div", { children:
|
|
1189
|
+
const _ = Te(u, o), w = xe(u, o), b = w ? p(w, _, u) : _;
|
|
1190
|
+
return /* @__PURE__ */ f("div", { children: b }, u.id ?? v);
|
|
1181
1191
|
};
|
|
1182
|
-
return m ? /* @__PURE__ */ f(
|
|
1183
|
-
},
|
|
1192
|
+
return m ? /* @__PURE__ */ f(x, { children: a.viewLoading?.() ?? /* @__PURE__ */ f(ae, { size: "small" }) }) : l ? /* @__PURE__ */ f(x, { children: a.viewError?.(l) ?? s.messages.viewError }) : y?.length ? o?.result_type === "object" && y.length === 1 ? h(y[0], 0) : /* @__PURE__ */ f(ie, { vertical: !0, children: y.map(h) }) : /* @__PURE__ */ f(x, { children: a.viewEmpty?.() ?? s.messages.viewEmpty });
|
|
1193
|
+
}, Me = C(Gt);
|
|
1184
1194
|
function It(e) {
|
|
1185
1195
|
return !!(e.option_config && e.is_option_api);
|
|
1186
1196
|
}
|
|
1187
|
-
function
|
|
1197
|
+
function Wt(e, t) {
|
|
1188
1198
|
const n = M(), r = le([
|
|
1189
1199
|
"viewModeOptions",
|
|
1190
1200
|
e.map((a) => a.code),
|
|
1191
1201
|
t
|
|
1192
|
-
]), { data: i } =
|
|
1202
|
+
]), { data: i } = ee(
|
|
1193
1203
|
[r],
|
|
1194
1204
|
async (a) => {
|
|
1195
1205
|
const s = {};
|
|
1196
1206
|
return await Promise.all(
|
|
1197
1207
|
e.map(async (o) => {
|
|
1198
1208
|
if (!o.option_config?.url) return;
|
|
1199
|
-
const d =
|
|
1209
|
+
const d = Dt(o, t), c = o.option_config.method?.toUpperCase() === "GET" || !o.option_config.method, y = await n.client.request({
|
|
1200
1210
|
method: o.option_config.method || "GET",
|
|
1201
1211
|
url: o.option_config.url,
|
|
1202
1212
|
params: c ? d?.params : void 0,
|
|
@@ -1204,7 +1214,7 @@ function Bt(e, t) {
|
|
|
1204
1214
|
signal: a
|
|
1205
1215
|
});
|
|
1206
1216
|
s[o.code] = {
|
|
1207
|
-
optionList: n.parsers.optionResponse(
|
|
1217
|
+
optionList: n.parsers.optionResponse(y.data, o)
|
|
1208
1218
|
};
|
|
1209
1219
|
})
|
|
1210
1220
|
), s;
|
|
@@ -1213,15 +1223,15 @@ function Bt(e, t) {
|
|
|
1213
1223
|
);
|
|
1214
1224
|
return i ?? {};
|
|
1215
1225
|
}
|
|
1216
|
-
const
|
|
1226
|
+
const nn = ({
|
|
1217
1227
|
formConfig: e,
|
|
1218
1228
|
formValues: t
|
|
1219
1229
|
}) => {
|
|
1220
|
-
const n = e?.form?.field_groups ?? [], r =
|
|
1230
|
+
const n = e?.form?.field_groups ?? [], r = R(
|
|
1221
1231
|
() => n.filter(It),
|
|
1222
1232
|
[n]
|
|
1223
|
-
), i =
|
|
1224
|
-
return
|
|
1233
|
+
), i = Wt(r, t);
|
|
1234
|
+
return R(() => n.filter((s) => !s.is_hidden).map((s) => {
|
|
1225
1235
|
const o = t?.[s.code], d = s.additional_config?.view_value, c = d?.mode;
|
|
1226
1236
|
if (c === "api" && d)
|
|
1227
1237
|
return {
|
|
@@ -1229,7 +1239,7 @@ const en = ({
|
|
|
1229
1239
|
label: s.label,
|
|
1230
1240
|
rawValue: o,
|
|
1231
1241
|
viewValue: /* @__PURE__ */ f(
|
|
1232
|
-
|
|
1242
|
+
Me,
|
|
1233
1243
|
{
|
|
1234
1244
|
code: s.code,
|
|
1235
1245
|
value: o,
|
|
@@ -1244,7 +1254,7 @@ const en = ({
|
|
|
1244
1254
|
label: s.label,
|
|
1245
1255
|
rawValue: o,
|
|
1246
1256
|
viewValue: /* @__PURE__ */ f(
|
|
1247
|
-
|
|
1257
|
+
Ce,
|
|
1248
1258
|
{
|
|
1249
1259
|
code: s.code,
|
|
1250
1260
|
value: o,
|
|
@@ -1259,7 +1269,7 @@ const en = ({
|
|
|
1259
1269
|
label: s.label,
|
|
1260
1270
|
rawValue: o,
|
|
1261
1271
|
viewValue: /* @__PURE__ */ f(
|
|
1262
|
-
|
|
1272
|
+
Le,
|
|
1263
1273
|
{
|
|
1264
1274
|
code: s.code,
|
|
1265
1275
|
value: o,
|
|
@@ -1268,16 +1278,16 @@ const en = ({
|
|
|
1268
1278
|
),
|
|
1269
1279
|
field_group: s
|
|
1270
1280
|
};
|
|
1271
|
-
const
|
|
1281
|
+
const y = i[s.code] ?? {};
|
|
1272
1282
|
return {
|
|
1273
1283
|
key: s.code,
|
|
1274
1284
|
label: s.label,
|
|
1275
1285
|
rawValue: o,
|
|
1276
|
-
viewValue:
|
|
1286
|
+
viewValue: Ot(s, o, y),
|
|
1277
1287
|
field_group: s
|
|
1278
1288
|
};
|
|
1279
1289
|
}), [i, n, t]);
|
|
1280
|
-
},
|
|
1290
|
+
}, Kt = ({
|
|
1281
1291
|
code: e,
|
|
1282
1292
|
value: t,
|
|
1283
1293
|
fieldGroup: n
|
|
@@ -1287,19 +1297,19 @@ const en = ({
|
|
|
1287
1297
|
case "raw":
|
|
1288
1298
|
return t;
|
|
1289
1299
|
case "api":
|
|
1290
|
-
return /* @__PURE__ */ f(
|
|
1300
|
+
return /* @__PURE__ */ f(Me, { code: e, value: t, viewConfig: r });
|
|
1291
1301
|
case "api_ids": {
|
|
1292
1302
|
const i = r?.api_ids;
|
|
1293
|
-
return /* @__PURE__ */ f(
|
|
1303
|
+
return /* @__PURE__ */ f(Ce, { code: e, value: t, modeConfig: i });
|
|
1294
1304
|
}
|
|
1295
1305
|
case "api_detail": {
|
|
1296
1306
|
const i = r?.api_detail;
|
|
1297
|
-
return /* @__PURE__ */ f(
|
|
1307
|
+
return /* @__PURE__ */ f(Le, { code: e, value: t, modeConfig: i });
|
|
1298
1308
|
}
|
|
1299
1309
|
default:
|
|
1300
1310
|
return t;
|
|
1301
1311
|
}
|
|
1302
|
-
},
|
|
1312
|
+
}, rn = C(Kt), je = {
|
|
1303
1313
|
submit: "Save",
|
|
1304
1314
|
submitError: "Failed to submit form",
|
|
1305
1315
|
inputPlaceholder: (e) => `Enter ${e}`,
|
|
@@ -1310,9 +1320,9 @@ const en = ({
|
|
|
1310
1320
|
viewLoading: "Loading...",
|
|
1311
1321
|
viewEmpty: "-",
|
|
1312
1322
|
viewError: "Failed to load"
|
|
1313
|
-
},
|
|
1314
|
-
messages:
|
|
1315
|
-
},
|
|
1323
|
+
}, an = {
|
|
1324
|
+
messages: je
|
|
1325
|
+
}, $t = (e) => {
|
|
1316
1326
|
if (Array.isArray(e)) return e;
|
|
1317
1327
|
if (e && typeof e == "object" && "items" in e && Array.isArray(e.items))
|
|
1318
1328
|
return e.items;
|
|
@@ -1321,14 +1331,14 @@ const en = ({
|
|
|
1321
1331
|
return Array.isArray(t.items) ? t.items : [];
|
|
1322
1332
|
}
|
|
1323
1333
|
return [];
|
|
1324
|
-
},
|
|
1334
|
+
}, zt = (e) => ({
|
|
1325
1335
|
redirectUrl: e?.redirect_after_create,
|
|
1326
1336
|
data: e
|
|
1327
|
-
}),
|
|
1328
|
-
optionResponse:
|
|
1329
|
-
submitResponse:
|
|
1330
|
-
viewResponse:
|
|
1331
|
-
},
|
|
1337
|
+
}), Ht = (e, t) => t?.dataPath ? I(e, t.dataPath) : e, te = {
|
|
1338
|
+
optionResponse: $t,
|
|
1339
|
+
submitResponse: zt,
|
|
1340
|
+
viewResponse: Ht
|
|
1341
|
+
}, Yt = (e, t = "_blank") => {
|
|
1332
1342
|
window.open(e, t);
|
|
1333
1343
|
}, ne = {
|
|
1334
1344
|
upload: async () => {
|
|
@@ -1336,7 +1346,7 @@ const en = ({
|
|
|
1336
1346
|
},
|
|
1337
1347
|
remove: async () => !1
|
|
1338
1348
|
};
|
|
1339
|
-
function
|
|
1349
|
+
function on({
|
|
1340
1350
|
children: e,
|
|
1341
1351
|
client: t,
|
|
1342
1352
|
upload: n,
|
|
@@ -1348,37 +1358,37 @@ function rn({
|
|
|
1348
1358
|
submitDebounceMs: d = 200,
|
|
1349
1359
|
redirectHandler: c,
|
|
1350
1360
|
// legacy props
|
|
1351
|
-
requestClient:
|
|
1361
|
+
requestClient: y,
|
|
1352
1362
|
uploadAdapter: m,
|
|
1353
1363
|
deleteUploadAdapter: l,
|
|
1354
1364
|
messages: p,
|
|
1355
|
-
optionResponseParser:
|
|
1365
|
+
optionResponseParser: h,
|
|
1356
1366
|
customFieldRenderers: u
|
|
1357
1367
|
}) {
|
|
1358
|
-
const v =
|
|
1359
|
-
const
|
|
1360
|
-
request:
|
|
1368
|
+
const v = B(/* @__PURE__ */ new Map()), _ = B(/* @__PURE__ */ new Map()), w = R(() => {
|
|
1369
|
+
const b = t ?? {
|
|
1370
|
+
request: y ?? (() => {
|
|
1361
1371
|
throw new Error("DynamicFormProvider requires client or requestClient");
|
|
1362
1372
|
})
|
|
1363
|
-
}, S = u ? Object.entries(u).map(([
|
|
1364
|
-
match:
|
|
1365
|
-
render:
|
|
1373
|
+
}, S = u ? Object.entries(u).map(([k, D]) => ({
|
|
1374
|
+
match: k,
|
|
1375
|
+
render: D
|
|
1366
1376
|
})) : [], A = {
|
|
1367
|
-
...
|
|
1377
|
+
...je,
|
|
1368
1378
|
...r?.messages,
|
|
1369
1379
|
...p
|
|
1370
1380
|
}, g = {
|
|
1371
1381
|
...ne,
|
|
1372
1382
|
...n,
|
|
1373
1383
|
upload: n?.upload ?? m ?? ne.upload,
|
|
1374
|
-
remove: n?.remove ?? (l ? (
|
|
1384
|
+
remove: n?.remove ?? (l ? (k) => l(k.path) : ne.remove)
|
|
1375
1385
|
};
|
|
1376
1386
|
return {
|
|
1377
|
-
client:
|
|
1387
|
+
client: b,
|
|
1378
1388
|
upload: g,
|
|
1379
1389
|
i18n: { messages: A },
|
|
1380
1390
|
parsers: {
|
|
1381
|
-
optionResponse: i?.optionResponse ??
|
|
1391
|
+
optionResponse: i?.optionResponse ?? h ?? te.optionResponse,
|
|
1382
1392
|
submitResponse: i?.submitResponse ?? te.submitResponse,
|
|
1383
1393
|
viewResponse: i?.viewResponse ?? te.viewResponse
|
|
1384
1394
|
},
|
|
@@ -1392,13 +1402,13 @@ function rn({
|
|
|
1392
1402
|
ttlMs: o?.ttlMs ?? 6e4
|
|
1393
1403
|
},
|
|
1394
1404
|
submitDebounceMs: d,
|
|
1395
|
-
redirectHandler: c ??
|
|
1405
|
+
redirectHandler: c ?? Yt,
|
|
1396
1406
|
optionCache: v.current,
|
|
1397
|
-
viewCache:
|
|
1407
|
+
viewCache: _.current
|
|
1398
1408
|
};
|
|
1399
1409
|
}, [
|
|
1400
1410
|
t,
|
|
1401
|
-
|
|
1411
|
+
y,
|
|
1402
1412
|
n,
|
|
1403
1413
|
m,
|
|
1404
1414
|
l,
|
|
@@ -1407,7 +1417,7 @@ function rn({
|
|
|
1407
1417
|
i?.optionResponse,
|
|
1408
1418
|
i?.submitResponse,
|
|
1409
1419
|
i?.viewResponse,
|
|
1410
|
-
|
|
1420
|
+
h,
|
|
1411
1421
|
a,
|
|
1412
1422
|
u,
|
|
1413
1423
|
s,
|
|
@@ -1418,7 +1428,7 @@ function rn({
|
|
|
1418
1428
|
]);
|
|
1419
1429
|
return /* @__PURE__ */ f(oe.Provider, { value: w, children: e });
|
|
1420
1430
|
}
|
|
1421
|
-
function
|
|
1431
|
+
function sn(e) {
|
|
1422
1432
|
return {
|
|
1423
1433
|
request: async (t) => ({ data: (await e({
|
|
1424
1434
|
method: t.method,
|
|
@@ -1432,55 +1442,55 @@ function an(e) {
|
|
|
1432
1442
|
};
|
|
1433
1443
|
}
|
|
1434
1444
|
export {
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1445
|
+
Le as ApiDetailItem,
|
|
1446
|
+
Ce as ApiItem,
|
|
1447
|
+
Me as ApiViewItem,
|
|
1448
|
+
gt as DefaultLayout,
|
|
1449
|
+
kt as DynamicForm,
|
|
1450
|
+
on as DynamicFormProvider,
|
|
1451
|
+
wt as FormItem,
|
|
1452
|
+
rn as MetaItemValue,
|
|
1453
|
+
Et as buildApiViewRequests,
|
|
1444
1454
|
le as buildCacheKey,
|
|
1445
1455
|
re as cachedRequest,
|
|
1446
|
-
|
|
1456
|
+
sn as createAxiosDynamicFormClient,
|
|
1447
1457
|
se as debounce,
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1458
|
+
an as defaultI18n,
|
|
1459
|
+
je as defaultMessages,
|
|
1460
|
+
$t as defaultOptionResponseParser,
|
|
1451
1461
|
te as defaultParsers,
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1462
|
+
Yt as defaultRedirectHandler,
|
|
1463
|
+
zt as defaultSubmitResponseParser,
|
|
1464
|
+
Ht as defaultViewResponseParser,
|
|
1465
|
+
pt as extractDependencyFields,
|
|
1456
1466
|
Pe as extractViewData,
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1467
|
+
Rt as fetchApiViewItems,
|
|
1468
|
+
Q as fillTemplate,
|
|
1469
|
+
I as getByPath,
|
|
1470
|
+
dt as getCached,
|
|
1471
|
+
Te as getMappedLabel,
|
|
1472
|
+
xe as getMappedLink,
|
|
1473
|
+
G as isEmptyValue,
|
|
1474
|
+
tt as mapOptionToSelectItem,
|
|
1475
|
+
nt as mapOptions,
|
|
1466
1476
|
De as normalizeApiViewConfig,
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1477
|
+
tn as normalizeMetaForForm,
|
|
1478
|
+
mt as parseFormValues,
|
|
1479
|
+
q as replaceTemplateInObject,
|
|
1480
|
+
Dt as resolveApiOptionMeta,
|
|
1481
|
+
Ze as resolveFieldRenderer,
|
|
1482
|
+
et as resolveFieldRendererFromMap,
|
|
1483
|
+
Ot as resolveFieldViewValue,
|
|
1474
1484
|
Ae as resolveViewValueConfig,
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1485
|
+
ut as setCache,
|
|
1486
|
+
ee as useCachedViewRequest,
|
|
1487
|
+
yt as useDependencyValues,
|
|
1488
|
+
ct as useDynamicField,
|
|
1479
1489
|
M as useDynamicFormContext,
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1490
|
+
en as useDynamicFormContextOptional,
|
|
1491
|
+
bt as useDynamicOptions,
|
|
1492
|
+
At as useFieldGroups,
|
|
1493
|
+
St as useFieldStates,
|
|
1494
|
+
Ft as useProcessedValues,
|
|
1495
|
+
nn as useViewMode
|
|
1486
1496
|
};
|