@skopon-cool/form-sdk 0.2.5 → 0.3.0

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.
Files changed (37) hide show
  1. package/dist/catalog/a2uiCustomCatalog.d.ts.map +1 -1
  2. package/dist/catalog/skoponCaseSelect.d.ts.map +1 -1
  3. package/dist/catalog/skoponResumeSelect.d.ts.map +1 -1
  4. package/dist/catalog/useSkoponBoundField.d.ts +16 -1
  5. package/dist/catalog/useSkoponBoundField.d.ts.map +1 -1
  6. package/dist/client/authStorage.d.ts +8 -0
  7. package/dist/client/authStorage.d.ts.map +1 -1
  8. package/dist/components/AskUserFormCard.d.ts +6 -1
  9. package/dist/components/AskUserFormCard.d.ts.map +1 -1
  10. package/dist/components/SkoponFormRenderer.d.ts +1 -0
  11. package/dist/components/SkoponFormRenderer.d.ts.map +1 -1
  12. package/dist/index.d.ts +1 -1
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +1514 -1081
  15. package/dist/runtime/formAutoControl.d.ts +15 -0
  16. package/dist/runtime/formAutoControl.d.ts.map +1 -0
  17. package/dist/runtime/formRuntimeContext.d.ts +17 -0
  18. package/dist/runtime/formRuntimeContext.d.ts.map +1 -0
  19. package/dist/runtime/formRuntimeWs.d.ts +27 -0
  20. package/dist/runtime/formRuntimeWs.d.ts.map +1 -0
  21. package/dist/runtime/types.d.ts +20 -0
  22. package/dist/runtime/types.d.ts.map +1 -0
  23. package/package.json +1 -1
  24. package/src/catalog/a2uiCustomCatalog.tsx +41 -16
  25. package/src/catalog/skoponCaseSelect.tsx +10 -4
  26. package/src/catalog/skoponResumeSelect.tsx +10 -4
  27. package/src/catalog/useSkoponBoundField.ts +100 -4
  28. package/src/client/authStorage.test.ts +34 -0
  29. package/src/client/authStorage.ts +27 -0
  30. package/src/components/AskUserFormCard.tsx +164 -31
  31. package/src/components/SkoponFormRenderer.tsx +12 -0
  32. package/src/index.ts +2 -0
  33. package/src/runtime/formAutoControl.test.ts +71 -0
  34. package/src/runtime/formAutoControl.ts +109 -0
  35. package/src/runtime/formRuntimeContext.tsx +107 -0
  36. package/src/runtime/formRuntimeWs.ts +158 -0
  37. package/src/runtime/types.ts +26 -0
package/dist/index.js CHANGED
@@ -1,31 +1,34 @@
1
1
  import './form-sdk.css';
2
- import { jsx as c, jsxs as C } from "react/jsx-runtime";
3
- import { createContext as He, useContext as Ke, useCallback as ne, useSyncExternalStore as en, useMemo as w, useState as P, useRef as O, useEffect as B, forwardRef as tn, useImperativeHandle as nn } from "react";
4
- import { Spin as Ge, Button as ke, Typography as D, Avatar as rn, Tag as oe, Select as qe, Checkbox as on, Radio as an, Switch as sn, TimePicker as ln, DatePicker as cn, Upload as Ne, Input as Me, InputNumber as un, ConfigProvider as mn, Tooltip as re } from "antd";
5
- import { ReloadOutlined as yt, FileTextOutlined as vt, UserOutlined as dn, FileImageOutlined as pn, FileExcelOutlined as fn, FileOutlined as bt, PictureOutlined as hn, SoundOutlined as gn, VideoCameraOutlined as yn } from "@ant-design/icons";
6
- import { createBinderlessComponentImplementation as j, basicCatalog as ge, A2uiSurface as St } from "@a2ui/react/v0_9";
2
+ var fn = Object.defineProperty;
3
+ var hn = (e, t, n) => t in e ? fn(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n;
4
+ var Q = (e, t, n) => hn(e, typeof t != "symbol" ? t + "" : t, n);
5
+ import { jsx as c, jsxs as N } from "react/jsx-runtime";
6
+ import { createContext as Ie, useContext as Ne, useRef as P, useCallback as L, useMemo as R, useEffect as w, useSyncExternalStore as gn, useState as E, forwardRef as yn, useImperativeHandle as vn } from "react";
7
+ import { Spin as tt, Button as Me, Typography as X, Avatar as Sn, Tag as le, Select as Je, Checkbox as bn, Radio as kn, Switch as An, TimePicker as Cn, DatePicker as _n, Upload as qe, Input as Oe, InputNumber as xn, ConfigProvider as Tn, Tooltip as se } from "antd";
8
+ import { ReloadOutlined as Mt, FileTextOutlined as Ft, UserOutlined as In, FileImageOutlined as Nn, FileExcelOutlined as Mn, FileOutlined as Ut, PictureOutlined as Fn, SoundOutlined as Un, VideoCameraOutlined as En } from "@ant-design/icons";
9
+ import { createBinderlessComponentImplementation as J, basicCatalog as Ae, A2uiSurface as Et } from "@a2ui/react/v0_9";
7
10
  import { z as f } from "zod";
8
- import { Catalog as vn, MessageProcessor as kt } from "@a2ui/web_core/v0_9";
9
- import { injectBasicCatalogStyles as At } from "@a2ui/web_core/v0_9/basic_catalog";
10
- import { injectStyles as Ct } from "@a2ui/react/styles";
11
- import ut from "dayjs";
12
- const Zo = "v0.9", bn = [
11
+ import { Catalog as Pn, MessageProcessor as Pt } from "@a2ui/web_core/v0_9";
12
+ import { injectBasicCatalogStyles as wt } from "@a2ui/web_core/v0_9/basic_catalog";
13
+ import { injectStyles as Rt } from "@a2ui/react/styles";
14
+ import At from "dayjs";
15
+ const Mi = "v0.9", wn = [
13
16
  "huge",
14
17
  "large",
15
18
  "medium",
16
19
  "small",
17
20
  "icon"
18
21
  ];
19
- function ye(e) {
22
+ function Ce(e) {
20
23
  return e === "image" || e === "video" || e === "audio";
21
24
  }
22
- function Ae(e) {
25
+ function Fe(e) {
23
26
  return e === "heading" || e === "paragraph";
24
27
  }
25
- function W(e) {
26
- return !Ae(e) && !ye(e);
28
+ function ne(e) {
29
+ return !Fe(e) && !Ce(e);
27
30
  }
28
- function Sn() {
31
+ function Rn() {
29
32
  if (typeof crypto < "u" && typeof crypto.randomUUID == "function")
30
33
  return crypto.randomUUID();
31
34
  if (typeof crypto < "u" && typeof crypto.getRandomValues == "function") {
@@ -39,11 +42,11 @@ function Sn() {
39
42
  return (e === "x" ? t : t & 3 | 8).toString(16);
40
43
  });
41
44
  }
42
- function ae(e) {
43
- const t = Sn().replace(/-/g, "").slice(0, 8);
45
+ function me(e) {
46
+ const t = Rn().replace(/-/g, "").slice(0, 8);
44
47
  return `${e}${t}`;
45
48
  }
46
- const xt = [
49
+ const zt = [
47
50
  { value: "image/*", label: "图片" },
48
51
  { value: "video/*", label: "视频" },
49
52
  { value: "audio/*", label: "音频" },
@@ -54,7 +57,7 @@ const xt = [
54
57
  { value: "text/plain", label: "纯文本" },
55
58
  { value: "application/zip", label: "ZIP 压缩包" },
56
59
  { value: "application/x-rar-compressed", label: "RAR 压缩包" }
57
- ], kn = {
60
+ ], zn = {
58
61
  "image/*": ["image/*"],
59
62
  "video/*": ["video/*"],
60
63
  "audio/*": ["audio/*"],
@@ -74,7 +77,7 @@ const xt = [
74
77
  "text/plain": ["text/plain"],
75
78
  "application/zip": ["application/zip"],
76
79
  "application/x-rar-compressed": ["application/x-rar-compressed"]
77
- }, An = {
80
+ }, Bn = {
78
81
  "image/*": [".jpg", ".jpeg", ".png", ".gif", ".webp", ".svg"],
79
82
  "video/*": [".mp4", ".mov", ".avi", ".webm"],
80
83
  "audio/*": [".mp3", ".wav", ".ogg", ".m4a"],
@@ -85,14 +88,14 @@ const xt = [
85
88
  "text/plain": [".txt"],
86
89
  "application/zip": [".zip", ".7z"],
87
90
  "application/x-rar-compressed": [".rar"]
88
- }, Cn = {
91
+ }, qn = {
89
92
  "application/msword": "office/word",
90
93
  "application/vnd.openxmlformats-officedocument.wordprocessingml.document": "office/word",
91
94
  "application/vnd.ms-excel": "office/excel",
92
95
  "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": "office/excel",
93
96
  "application/vnd.ms-powerpoint": "office/ppt",
94
97
  "application/vnd.openxmlformats-officedocument.presentationml.presentation": "office/ppt"
95
- }, Je = [
98
+ }, nt = [
96
99
  { value: ".jpg", label: ".jpg" },
97
100
  { value: ".jpeg", label: ".jpeg" },
98
101
  { value: ".png", label: ".png" },
@@ -118,124 +121,124 @@ const xt = [
118
121
  { value: ".zip", label: ".zip" },
119
122
  { value: ".rar", label: ".rar" },
120
123
  { value: ".7z", label: ".7z" }
121
- ], xn = Object.fromEntries(
122
- xt.map((e) => [e.value, e.label])
123
- ), _n = Object.fromEntries(
124
- Je.map((e) => [e.value, e.label])
125
- ), Tn = new Set(xt.map((e) => e.value)), In = new Set(
126
- Je.map((e) => e.value)
124
+ ], On = Object.fromEntries(
125
+ zt.map((e) => [e.value, e.label])
126
+ ), Vn = Object.fromEntries(
127
+ nt.map((e) => [e.value, e.label])
128
+ ), Ln = new Set(zt.map((e) => e.value)), jn = new Set(
129
+ nt.map((e) => e.value)
127
130
  );
128
- function Nn(e) {
131
+ function $n(e) {
129
132
  const t = e.trim();
130
- return t ? Tn.has(t) ? t : Cn[t] ?? null : null;
133
+ return t ? Ln.has(t) ? t : qn[t] ?? null : null;
131
134
  }
132
- function Mn(e) {
135
+ function Dn(e) {
133
136
  return Array.isArray(e) ? e.map((t) => {
134
137
  const n = t.trim().toLowerCase();
135
138
  return n ? n.startsWith(".") ? n : `.${n}` : "";
136
139
  }).filter(Boolean) : [];
137
140
  }
138
- function se(e) {
141
+ function de(e) {
139
142
  if (!Array.isArray(e)) return [];
140
143
  const t = [], n = /* @__PURE__ */ new Set();
141
144
  for (const r of e) {
142
- const o = Nn(r);
145
+ const o = $n(r);
143
146
  o && !n.has(o) && (n.add(o), t.push(o));
144
147
  }
145
148
  return t;
146
149
  }
147
- function Fn(e) {
148
- const t = se(e), n = [];
150
+ function Hn(e) {
151
+ const t = de(e), n = [];
149
152
  for (const r of t)
150
- n.push(...kn[r] ?? [r]);
153
+ n.push(...zn[r] ?? [r]);
151
154
  return n;
152
155
  }
153
- function Un(e) {
154
- const t = se(e);
156
+ function Kn(e) {
157
+ const t = de(e);
155
158
  if (t.length === 0) return [];
156
159
  const n = /* @__PURE__ */ new Set();
157
160
  for (const r of t)
158
- for (const o of An[r] ?? [])
161
+ for (const o of Bn[r] ?? [])
159
162
  n.add(o);
160
- return Je.filter((r) => n.has(r.value));
163
+ return nt.filter((r) => n.has(r.value));
161
164
  }
162
- function Ye(e, t) {
163
- const n = Mn(t), r = se(e);
165
+ function rt(e, t) {
166
+ const n = Dn(t), r = de(e);
164
167
  if (r.length === 0)
165
- return n.filter((i) => In.has(i));
168
+ return n.filter((i) => jn.has(i));
166
169
  const o = new Set(
167
- Un(r).map((i) => i.value)
170
+ Kn(r).map((i) => i.value)
168
171
  );
169
172
  return n.filter((i) => o.has(i));
170
173
  }
171
- function Pn(e, t) {
172
- const n = Fn(e), r = Ye(e, t), o = [...n, ...r];
174
+ function Gn(e, t) {
175
+ const n = Hn(e), r = rt(e, t), o = [...n, ...r];
173
176
  return o.length > 0 ? o.join(",") : void 0;
174
177
  }
175
- function En(e, t) {
176
- const n = se(e), r = Ye(
178
+ function Jn(e, t) {
179
+ const n = de(e), r = rt(
177
180
  n,
178
181
  t
179
182
  ), o = [
180
- ...n.map((i) => xn[i] ?? i),
181
- ...r.map((i) => _n[i] ?? i)
183
+ ...n.map((i) => On[i] ?? i),
184
+ ...r.map((i) => Vn[i] ?? i)
182
185
  ];
183
186
  return o.length === 0 ? null : o.join("、");
184
187
  }
185
- const zn = [
188
+ const Wn = [
186
189
  "video",
187
190
  "audio",
188
191
  "image",
189
192
  "file",
190
193
  "spreadsheet",
191
194
  "document"
192
- ], Rn = new Set(zn);
193
- function wn(e) {
194
- return e && Rn.has(e) ? e : "file";
195
+ ], Yn = new Set(Wn);
196
+ function Qn(e) {
197
+ return e && Yn.has(e) ? e : "file";
195
198
  }
196
- function le(e) {
197
- return typeof e == "string" && bn.includes(e) ? e : "medium";
199
+ function pe(e) {
200
+ return typeof e == "string" && wn.includes(e) ? e : "medium";
198
201
  }
199
- function Bn(e, t) {
202
+ function Xn(e, t) {
200
203
  var o;
201
204
  const n = Math.max(1, t);
202
205
  let r = [];
203
206
  return Array.isArray(e.mediaUrls) ? r = e.mediaUrls.map((i) => String(i).trim()) : (o = e.mediaUrl) != null && o.trim() && (r = [e.mediaUrl.trim()]), r.length === 0 ? [""] : r.slice(0, n);
204
207
  }
205
- function qn(e) {
208
+ function Zn(e) {
206
209
  var t;
207
210
  return Array.isArray(e.mediaUrls) ? e.mediaUrls.map((n) => n.trim()).filter(Boolean) : (t = e.mediaUrl) != null && t.trim() ? [e.mediaUrl.trim()] : [];
208
211
  }
209
- function On(e) {
210
- return `form-media-size-${le(e)}`;
212
+ function er(e) {
213
+ return `form-media-size-${pe(e)}`;
211
214
  }
212
- function Ln(e) {
213
- return `form-media-preview form-media-list ${On(e)}`;
215
+ function tr(e) {
216
+ return `form-media-preview form-media-list ${er(e)}`;
214
217
  }
215
- const jn = 10;
216
- function We(e) {
218
+ const nr = 10;
219
+ function ot(e) {
217
220
  return e && typeof e == "object" && !Array.isArray(e) ? e : {};
218
221
  }
219
- function ce(e) {
222
+ function fe(e) {
220
223
  return e === !0 || e === "true" || e === 1 || e === "1";
221
224
  }
222
- function mt(e, t = 1) {
225
+ function Ct(e, t = 1) {
223
226
  const n = typeof e == "number" ? e : Number(e);
224
227
  return Number.isFinite(n) ? Math.max(0, Math.floor(n)) : t;
225
228
  }
226
- function pe(e, t = 1) {
229
+ function Se(e, t = 1) {
227
230
  const n = typeof e == "number" ? e : Number(e);
228
231
  return Number.isFinite(n) ? Math.max(1, Math.floor(n)) : t;
229
232
  }
230
- function Vn(e, t) {
233
+ function rr(e, t) {
231
234
  if (t !== void 0)
232
- return e === "toggle" ? ce(t) : e === "multiselect" || e === "checkbox" || e === "resume_multiselect" || e === "case_multiselect" ? Array.isArray(t) ? t.map(String) : typeof t == "string" && t ? [t] : [] : typeof t == "boolean" ? t ? "true" : "false" : Array.isArray(t) ? t.map(String) : String(t);
235
+ return e === "toggle" ? fe(t) : e === "multiselect" || e === "checkbox" || e === "resume_multiselect" || e === "case_multiselect" ? Array.isArray(t) ? t.map(String) : typeof t == "string" && t ? [t] : [] : typeof t == "boolean" ? t ? "true" : "false" : Array.isArray(t) ? t.map(String) : String(t);
233
236
  }
234
- function $n(e) {
237
+ function or(e) {
235
238
  const t = typeof (e == null ? void 0 : e.pageSize) == "number" ? e.pageSize : Number(e == null ? void 0 : e.pageSize), n = Number.isFinite(t) && t >= 1 && t <= 100 ? Math.floor(t) : 20, r = typeof (e == null ? void 0 : e.agentKind) == "string" && e.agentKind.trim() ? e.agentKind.trim() : void 0, o = typeof (e == null ? void 0 : e.agentUniqueId) == "string" && e.agentUniqueId.trim() ? e.agentUniqueId.trim() : void 0, i = typeof (e == null ? void 0 : e.flowType) == "string" && e.flowType.trim() ? e.flowType.trim() : void 0, a = typeof (e == null ? void 0 : e.category) == "string" && e.category.trim() ? e.category.trim() : void 0, s = Array.isArray(e == null ? void 0 : e.flowUniqueIds) ? e.flowUniqueIds.map(String).filter(Boolean) : [];
236
239
  return { agentKind: r, agentUniqueId: o, flowType: i, category: a, flowUniqueIds: s, pageSize: n };
237
240
  }
238
- function Dn(e) {
241
+ function ir(e) {
239
242
  const t = typeof (e == null ? void 0 : e.pageSize) == "number" ? e.pageSize : Number(e == null ? void 0 : e.pageSize), n = Number.isFinite(t) && t >= 1 && t <= 100 ? Math.floor(t) : 20;
240
243
  return {
241
244
  names: Array.isArray(e == null ? void 0 : e.names) ? e.names.map(String).filter(Boolean) : [],
@@ -244,33 +247,33 @@ function Dn(e) {
244
247
  pageSize: n
245
248
  };
246
249
  }
247
- function Hn(e) {
250
+ function ar(e) {
248
251
  if (e.type !== "case_singleselect") return e;
249
252
  const t = typeof e.defaultValue == "string" && e.defaultValue.trim() ? [e.defaultValue.trim()] : Array.isArray(e.defaultValue) ? e.defaultValue.map(String).filter(Boolean) : [];
250
253
  return { ...e, type: "case_multiselect", defaultValue: t };
251
254
  }
252
- function Kn(e) {
255
+ function sr(e) {
253
256
  var o, i;
254
- const t = Hn(e), n = se(t.fileAcceptTypes), r = t.type;
257
+ const t = ar(e), n = de(t.fileAcceptTypes), r = t.type;
255
258
  return {
256
- id: ((o = t.id) == null ? void 0 : o.trim()) || ae("block-"),
259
+ id: ((o = t.id) == null ? void 0 : o.trim()) || me("block-"),
257
260
  type: r,
258
261
  name: ((i = t.name) == null ? void 0 : i.trim()) || void 0,
259
262
  label: t.label ?? "",
260
263
  placeholder: t.placeholder ?? "",
261
264
  help: t.help ?? "",
262
265
  required: t.required === !0,
263
- mediaUrls: ye(r) ? Bn(t, jn) : void 0,
264
- mediaSize: ye(r) ? le(t.mediaSize) : void 0,
266
+ mediaUrls: Ce(r) ? Xn(t, nr) : void 0,
267
+ mediaSize: Ce(r) ? pe(t.mediaSize) : void 0,
265
268
  fileAcceptTypes: n,
266
- fileAcceptExtensions: Ye(
269
+ fileAcceptExtensions: rt(
267
270
  n,
268
271
  t.fileAcceptExtensions
269
272
  ),
270
- filePlaceholderIcon: wn(t.filePlaceholderIcon),
271
- fileMinCount: r === "file" ? mt(t.fileMinCount, 1) : void 0,
272
- fileMaxCount: r === "file" ? mt(t.fileMaxCount, 1) : void 0,
273
- defaultValue: Vn(r, t.defaultValue),
273
+ filePlaceholderIcon: Qn(t.filePlaceholderIcon),
274
+ fileMinCount: r === "file" ? Ct(t.fileMinCount, 1) : void 0,
275
+ fileMaxCount: r === "file" ? Ct(t.fileMaxCount, 1) : void 0,
276
+ defaultValue: rr(r, t.defaultValue),
274
277
  options: Array.isArray(t.options) ? t.options.map((a, s) => {
275
278
  var l, u;
276
279
  return {
@@ -279,16 +282,16 @@ function Kn(e) {
279
282
  };
280
283
  }) : void 0,
281
284
  resumeEnableRefresh: r === "resume_multiselect" ? t.resumeEnableRefresh !== !1 : void 0,
282
- resumeMinCount: r === "resume_multiselect" && t.resumeMinCount != null ? pe(t.resumeMinCount, 1) : void 0,
283
- resumeMaxCount: r === "resume_multiselect" && t.resumeMaxCount != null ? pe(t.resumeMaxCount, 1) : void 0,
284
- resumeFilter: r === "resume_multiselect" ? Dn(t.resumeFilter) : void 0,
285
+ resumeMinCount: r === "resume_multiselect" && t.resumeMinCount != null ? Se(t.resumeMinCount, 1) : void 0,
286
+ resumeMaxCount: r === "resume_multiselect" && t.resumeMaxCount != null ? Se(t.resumeMaxCount, 1) : void 0,
287
+ resumeFilter: r === "resume_multiselect" ? ir(t.resumeFilter) : void 0,
285
288
  caseEnableRefresh: r === "case_multiselect" ? t.caseEnableRefresh !== !1 : void 0,
286
- caseMinCount: r === "case_multiselect" && t.caseMinCount != null ? pe(t.caseMinCount, 1) : void 0,
287
- caseMaxCount: r === "case_multiselect" && t.caseMaxCount != null ? pe(t.caseMaxCount, 1) : void 0,
288
- caseFilter: r === "case_multiselect" ? $n(t.caseFilter) : void 0
289
+ caseMinCount: r === "case_multiselect" && t.caseMinCount != null ? Se(t.caseMinCount, 1) : void 0,
290
+ caseMaxCount: r === "case_multiselect" && t.caseMaxCount != null ? Se(t.caseMaxCount, 1) : void 0,
291
+ caseFilter: r === "case_multiselect" ? or(t.caseFilter) : void 0
289
292
  };
290
293
  }
291
- function ve(e) {
294
+ function _e(e) {
292
295
  return {
293
296
  title: e.title ?? "",
294
297
  description: e.description ?? "",
@@ -296,18 +299,18 @@ function ve(e) {
296
299
  jsonSchema: e.jsonSchema ?? {}
297
300
  };
298
301
  }
299
- function Q(e) {
302
+ function re(e) {
300
303
  if (!e || !Array.isArray(e.blocks))
301
- return ve({ title: "", description: "", blocks: [], jsonSchema: {} });
302
- const t = e.blocks.map(Kn);
303
- return ve({
304
+ return _e({ title: "", description: "", blocks: [], jsonSchema: {} });
305
+ const t = e.blocks.map(sr);
306
+ return _e({
304
307
  title: typeof e.title == "string" ? e.title : "",
305
308
  description: typeof e.description == "string" ? e.description : "",
306
309
  blocks: t,
307
- jsonSchema: We(e.jsonSchema)
310
+ jsonSchema: ot(e.jsonSchema)
308
311
  });
309
312
  }
310
- function Gn(e) {
313
+ function lr(e) {
311
314
  const t = typeof e.pageSize == "number" ? e.pageSize : Number(e.pageSize), n = typeof e.agentKind == "string" && e.agentKind.trim() ? e.agentKind.trim() : void 0, r = typeof e.agentUniqueId == "string" && e.agentUniqueId.trim() ? e.agentUniqueId.trim() : void 0, o = typeof e.flowType == "string" && e.flowType.trim() ? e.flowType.trim() : void 0, i = typeof e.category == "string" && e.category.trim() ? e.category.trim() : void 0, a = Array.isArray(e.flowUniqueIds) ? e.flowUniqueIds.map(String).filter(Boolean) : [];
312
315
  return {
313
316
  agentKind: n,
@@ -318,13 +321,13 @@ function Gn(e) {
318
321
  pageSize: Number.isFinite(t) && t >= 1 && t <= 100 ? Math.floor(t) : 20
319
322
  };
320
323
  }
321
- function dt(e) {
324
+ function _t(e) {
322
325
  if (e == null) return;
323
326
  const t = typeof e == "number" ? e : Number(e);
324
327
  if (!(!Number.isFinite(t) || t < 1))
325
328
  return Math.floor(t);
326
329
  }
327
- function Jn(e, t) {
330
+ function cr(e, t) {
328
331
  var a, s, l, u, m, d;
329
332
  const { id: n, label: r, path: o, withData: i } = t;
330
333
  return i({
@@ -347,7 +350,7 @@ function Jn(e, t) {
347
350
  value: { path: o }
348
351
  });
349
352
  }
350
- function Yn(e, t, n) {
353
+ function ur(e, t, n) {
351
354
  const r = n.nameFromValue(e.value), o = {
352
355
  ...t("case_multiselect"),
353
356
  name: r,
@@ -355,109 +358,220 @@ function Yn(e, t, n) {
355
358
  }, i = n.asLiteral(e.placeholder);
356
359
  i && (o.placeholder = i);
357
360
  const a = n.asLiteral(e.help);
358
- a && (o.help = a), e.caseFilter && typeof e.caseFilter == "object" && (o.caseFilter = Gn(e.caseFilter));
359
- const s = dt(e.minCount);
361
+ a && (o.help = a), e.caseFilter && typeof e.caseFilter == "object" && (o.caseFilter = lr(e.caseFilter));
362
+ const s = _t(e.minCount);
360
363
  s !== void 0 && (o.caseMinCount = s);
361
- const l = dt(e.maxCount);
364
+ const l = _t(e.maxCount);
362
365
  return l !== void 0 && (o.caseMaxCount = l), o;
363
366
  }
364
- const _t = He({ interactive: !0 });
365
- function Oe({
367
+ const Bt = Ie({ interactive: !0 });
368
+ function We({
366
369
  interactive: e,
367
370
  children: t
368
371
  }) {
369
- return /* @__PURE__ */ c(_t.Provider, { value: { interactive: e }, children: t });
372
+ return /* @__PURE__ */ c(Bt.Provider, { value: { interactive: e }, children: t });
370
373
  }
371
- function K() {
372
- return Ke(_t);
374
+ function ee() {
375
+ return Ne(Bt);
373
376
  }
374
- function Tt(e) {
377
+ const qt = Ie(null), mr = {
378
+ reportEvent: () => {
379
+ },
380
+ reportData: () => {
381
+ },
382
+ runAutoControl: (e) => e(),
383
+ isAutoControl: () => !1
384
+ };
385
+ function dr(e) {
386
+ const t = {};
387
+ for (const [n, r] of Object.entries(e))
388
+ r !== void 0 && (t[n] = r);
389
+ return t;
390
+ }
391
+ function pr({
392
+ client: e,
393
+ children: t
394
+ }) {
395
+ const n = P(0), r = P(e);
396
+ r.current = e;
397
+ const o = L((u) => {
398
+ const m = r.current;
399
+ if (!m) return;
400
+ const d = {
401
+ action: u.action,
402
+ component: u.component
403
+ };
404
+ u.field !== void 0 && (d.field = u.field), u.value !== void 0 && (d.value = u.value);
405
+ const y = n.current > 0 ? "form_auto_control_bac_event" : "form_runtime_event";
406
+ m.send(y, d);
407
+ }, []), i = L((u) => {
408
+ const m = r.current;
409
+ m && m.send("form_runtime_data", dr(u));
410
+ }, []), a = L((u) => {
411
+ n.current += 1;
412
+ try {
413
+ return u();
414
+ } finally {
415
+ n.current = Math.max(0, n.current - 1);
416
+ }
417
+ }, []), s = L(
418
+ () => n.current > 0,
419
+ []
420
+ ), l = R(
421
+ () => ({
422
+ reportEvent: o,
423
+ reportData: i,
424
+ runAutoControl: a,
425
+ isAutoControl: s
426
+ }),
427
+ [o, i, a, s]
428
+ );
429
+ return /* @__PURE__ */ c(qt.Provider, { value: l, children: t });
430
+ }
431
+ function Ot() {
432
+ return Ne(qt) ?? mr;
433
+ }
434
+ const fr = 300;
435
+ function Vt(e) {
375
436
  return e && typeof e == "object" && "path" in e && String(e.path ?? "").trim() || null;
376
437
  }
377
- function pt(e, t = "value") {
438
+ function hr(e) {
439
+ if (!e) return;
440
+ const t = e.trim();
441
+ if (t)
442
+ return t.startsWith("/") ? t.slice(1) : t;
443
+ }
444
+ function xt(e, t = "value") {
378
445
  const r = e.componentModel.properties[t];
379
- if (!(!Tt(r) || r === void 0))
446
+ if (!(!Vt(r) || r === void 0))
380
447
  return e.dataContext.resolveDynamicValue(r);
381
448
  }
382
- function G(e, t = "value") {
383
- const r = e.componentModel.properties[t], o = Tt(r), i = ne(
384
- (u) => {
385
- if (!o || r === void 0) return () => {
449
+ function te(e, t = "value", n = {}) {
450
+ const o = e.componentModel.properties[t], i = Vt(o), a = hr(i), s = Ot(), {
451
+ component: l = "Unknown",
452
+ changeAction: u = "change",
453
+ debounceChange: m = !1
454
+ } = n, d = P(null), y = P(s);
455
+ y.current = s, w(() => () => {
456
+ d.current != null && (clearTimeout(d.current), d.current = null);
457
+ }, []);
458
+ const g = L(
459
+ (A) => {
460
+ if (!i || o === void 0) return () => {
386
461
  };
387
- const m = e.dataContext.subscribeDynamicValue(r, () => u());
388
- return () => m.unsubscribe();
462
+ const x = e.dataContext.subscribeDynamicValue(o, () => A());
463
+ return () => x.unsubscribe();
389
464
  },
390
- [e, r, o]
391
- ), a = ne(() => {
392
- if (!(!o || r === void 0))
393
- return e.dataContext.resolveDynamicValue(r);
394
- }, [e, r, o]), s = en(i, a, a), l = ne(
395
- (u) => {
396
- !o || !r || typeof r != "object" || !("path" in r) || e.dataContext.set(String(r.path), u);
465
+ [e, o, i]
466
+ ), k = L(() => {
467
+ if (!(!i || o === void 0))
468
+ return e.dataContext.resolveDynamicValue(o);
469
+ }, [e, o, i]), v = gn(g, k, k), C = L(
470
+ (A) => {
471
+ if (!a) return;
472
+ const x = () => {
473
+ y.current.reportEvent({
474
+ action: u,
475
+ component: l,
476
+ field: a,
477
+ value: A
478
+ });
479
+ };
480
+ if (!m) {
481
+ x();
482
+ return;
483
+ }
484
+ d.current != null && clearTimeout(d.current), d.current = setTimeout(() => {
485
+ d.current = null, x();
486
+ }, fr);
397
487
  },
398
- [e, r, o]
399
- );
400
- return { value: s, setValue: l, hasBinding: !!o };
488
+ [a, u, l, m]
489
+ ), h = L(
490
+ (A) => {
491
+ !i || !o || typeof o != "object" || !("path" in o) || e.dataContext.set(String(o.path), A);
492
+ },
493
+ [e, o, i]
494
+ ), p = L(
495
+ (A) => {
496
+ h(A), C(A);
497
+ },
498
+ [h, C]
499
+ ), S = L(() => {
500
+ a && y.current.reportEvent({
501
+ action: "focus",
502
+ component: l,
503
+ field: a
504
+ });
505
+ }, [a, l]);
506
+ return {
507
+ value: v,
508
+ setValue: p,
509
+ /** 写入 dataModel 但不上报(用于模式切换规范化等内部同步) */
510
+ setValueSilent: h,
511
+ hasBinding: !!i,
512
+ fieldName: a,
513
+ reportFocus: S
514
+ };
401
515
  }
402
- function ie(e) {
516
+ function ce(e) {
403
517
  if (typeof e == "string") return e || void 0;
404
518
  if (typeof e == "number") return String(e);
405
519
  }
406
- function L(e) {
520
+ function G(e) {
407
521
  return Array.isArray(e) ? e.map(String) : typeof e == "string" && e ? [e] : [];
408
522
  }
409
- function It(e, t) {
410
- return t ? Array.isArray(e) ? null : L(e) : Array.isArray(e) ? e.length > 0 ? String(e[0]) : "" : e == null || typeof e == "string" || typeof e == "number" ? null : "";
523
+ function Lt(e, t) {
524
+ return t ? Array.isArray(e) ? null : G(e) : Array.isArray(e) ? e.length > 0 ? String(e[0]) : "" : e == null || typeof e == "string" || typeof e == "number" ? null : "";
411
525
  }
412
- function be(e) {
526
+ function xe(e) {
413
527
  if (e == null) return;
414
528
  const t = typeof e == "number" ? e : Number(e);
415
529
  if (!(!Number.isFinite(t) || t < 1))
416
530
  return Math.floor(t);
417
531
  }
418
- function Nt(e, t, n, r) {
532
+ function jt(e, t, n, r) {
419
533
  if (e.includes(t)) {
420
534
  const i = e.filter((a) => a !== t);
421
535
  return n !== void 0 && i.length < n ? null : i;
422
536
  }
423
537
  return r !== void 0 && e.length >= r ? null : [...e, t];
424
538
  }
425
- function Mt(e, t, n, r, o) {
539
+ function $t(e, t, n, r, o) {
426
540
  if (!n) return !0;
427
541
  const i = e.includes(t);
428
542
  return !!(!i && o !== void 0 && e.length >= o || i && r !== void 0 && e.length <= r);
429
543
  }
430
- function Ft(e, t) {
544
+ function Dt(e, t) {
431
545
  return t === void 0 || e.length <= t ? null : e.slice(0, t);
432
546
  }
433
- const Ut = He(null);
434
- function Le({
547
+ const Ht = Ie(null);
548
+ function Ye({
435
549
  caseSearch: e,
436
550
  children: t
437
551
  }) {
438
- return /* @__PURE__ */ c(Ut.Provider, { value: e ?? null, children: t });
552
+ return /* @__PURE__ */ c(Ht.Provider, { value: e ?? null, children: t });
439
553
  }
440
- function Wn() {
441
- return Ke(Ut);
554
+ function gr() {
555
+ return Ne(Ht);
442
556
  }
443
- function Fe(e) {
557
+ function Ve(e) {
444
558
  return typeof e == "string" ? e : "";
445
559
  }
446
- function Ue(e) {
560
+ function Le(e) {
447
561
  if (!e || typeof e != "object")
448
562
  return { flowUniqueIds: [], pageSize: 20 };
449
563
  const t = e, n = typeof t.pageSize == "number" ? t.pageSize : Number(t.pageSize), r = Number.isFinite(n) && n >= 1 && n <= 100 ? Math.floor(n) : 20, o = typeof t.agentKind == "string" && t.agentKind.trim() ? t.agentKind.trim() : void 0, i = typeof t.agentUniqueId == "string" && t.agentUniqueId.trim() ? t.agentUniqueId.trim() : void 0, a = typeof t.flowType == "string" && t.flowType.trim() ? t.flowType.trim() : void 0, s = typeof t.category == "string" && t.category.trim() ? t.category.trim() : void 0, l = Array.isArray(t.flowUniqueIds) ? t.flowUniqueIds.map(String).filter(Boolean) : [];
450
564
  return { agentKind: o, agentUniqueId: i, flowType: a, category: s, flowUniqueIds: l, pageSize: r };
451
565
  }
452
- function Pe(e) {
566
+ function je(e) {
453
567
  var r;
454
568
  const t = !!((r = e.flowUniqueIds) != null && r.length), n = !!(e.agentUniqueId && e.flowType && e.category);
455
569
  return t || n;
456
570
  }
457
- function Xn(e) {
571
+ function yr(e) {
458
572
  return JSON.stringify(e);
459
573
  }
460
- const Qn = {
574
+ const vr = {
461
575
  name: "SkoponCaseSelect",
462
576
  schema: f.object({
463
577
  label: f.any().optional(),
@@ -470,13 +584,13 @@ const Qn = {
470
584
  value: f.any().optional()
471
585
  }).passthrough()
472
586
  };
473
- function Zn({
587
+ function Sr({
474
588
  item: e,
475
589
  selected: t,
476
590
  disabled: n,
477
591
  onToggle: r
478
592
  }) {
479
- return /* @__PURE__ */ C(
593
+ return /* @__PURE__ */ N(
480
594
  "button",
481
595
  {
482
596
  type: "button",
@@ -484,11 +598,11 @@ function Zn({
484
598
  disabled: n,
485
599
  onClick: r,
486
600
  children: [
487
- /* @__PURE__ */ c("div", { className: "skopon-resume-select-card-avatar", children: /* @__PURE__ */ c(vt, { style: { fontSize: 24, color: "var(--color-primary, #208368)" } }) }),
488
- /* @__PURE__ */ C("div", { className: "skopon-resume-select-card-body", children: [
601
+ /* @__PURE__ */ c("div", { className: "skopon-resume-select-card-avatar", children: /* @__PURE__ */ c(Ft, { style: { fontSize: 24, color: "var(--color-primary, #208368)" } }) }),
602
+ /* @__PURE__ */ N("div", { className: "skopon-resume-select-card-body", children: [
489
603
  /* @__PURE__ */ c("div", { className: "skopon-resume-select-card-name", children: e.name }),
490
604
  e.description ? /* @__PURE__ */ c("div", { className: "skopon-resume-select-card-desc", children: e.description }) : null,
491
- /* @__PURE__ */ C("div", { className: "skopon-resume-select-card-meta", children: [
605
+ /* @__PURE__ */ N("div", { className: "skopon-resume-select-card-meta", children: [
492
606
  e.caseUniqueId,
493
607
  e.platform ? ` · ${e.platform}` : "",
494
608
  e.link ? ` · ${e.link}` : ""
@@ -498,104 +612,114 @@ function Zn({
498
612
  }
499
613
  );
500
614
  }
501
- function er({ context: e }) {
502
- const { interactive: t } = K(), n = Wn(), { value: r, setValue: o } = G(e), i = e.componentModel.properties, a = Fe(i.label), s = Fe(i.placeholder), l = Fe(i.help), u = i.enableRefresh !== !1, m = be(i.minCount), d = be(i.maxCount), b = w(() => Ue(i.caseFilter), [i.caseFilter]), h = Xn(b), [x, _] = P(1), [y, p] = P(!1), [v, A] = P(""), [g, I] = P([]), [U, V] = P(0), [M, F] = P(b.pageSize ?? 20), $ = O(0), E = L(r);
503
- B(() => {
504
- const k = Ft(E, d);
505
- k !== null && o(k);
506
- }, [d, E, o]);
507
- const q = w(() => n ? Pe(b) ? v || s || "暂无匹配的案例" : "未配置案例列表筛选条件" : "未配置案例搜索服务", [n, b, v, s]), J = ne(
508
- async (k) => {
509
- const R = Ue(JSON.parse(h)), T = ++$.current;
510
- if (!n || !Pe(R)) {
511
- I([]), V(0), A(""), p(!1);
615
+ function br({ context: e }) {
616
+ const { interactive: t } = ee(), n = gr(), { value: r, setValue: o, setValueSilent: i, fieldName: a } = te(e, "value", {
617
+ component: "SkoponCaseSelect",
618
+ changeAction: "click"
619
+ }), s = e.componentModel.properties, l = Ve(s.label), u = Ve(s.placeholder), m = Ve(s.help), d = s.enableRefresh !== !1, y = xe(s.minCount), g = xe(s.maxCount), k = R(() => Le(s.caseFilter), [s.caseFilter]), v = yr(k), [C, h] = E(1), [p, S] = E(!1), [A, x] = E(""), [_, z] = E([]), [T, D] = E(0), [H, oe] = E(k.pageSize ?? 20), K = P(0), j = G(r);
620
+ w(() => {
621
+ const b = Dt(j, g);
622
+ b !== null && i(b);
623
+ }, [g, j, i]);
624
+ const I = R(() => n ? je(k) ? A || u || "暂无匹配的案例" : "未配置案例列表筛选条件" : "未配置案例搜索服务", [n, k, A, u]), F = L(
625
+ async (b) => {
626
+ const B = Le(JSON.parse(v)), $ = ++K.current;
627
+ if (!n || !je(B)) {
628
+ z([]), D(0), x(""), S(!1);
512
629
  return;
513
630
  }
514
- p(!0), A("");
631
+ S(!0), x("");
515
632
  try {
516
- const S = await n({ filter: R, page: k });
517
- if (T !== $.current) return;
518
- I(S.list), V(S.total), _(S.page), F(S.pageSize);
519
- } catch (S) {
520
- if (T !== $.current) return;
521
- I([]), V(0), A(S instanceof Error ? S.message : "加载案例列表失败");
633
+ const U = await n({ filter: B, page: b });
634
+ if ($ !== K.current) return;
635
+ z(U.list), D(U.total), h(U.page), oe(U.pageSize);
636
+ } catch (U) {
637
+ if ($ !== K.current) return;
638
+ z([]), D(0), x(U instanceof Error ? U.message : "加载案例列表失败");
522
639
  } finally {
523
- T === $.current && p(!1);
640
+ $ === K.current && S(!1);
524
641
  }
525
642
  },
526
- [n, h]
643
+ [n, v]
527
644
  );
528
- B(() => {
529
- _(1), J(1);
530
- }, [h, J]);
531
- const X = (k) => {
645
+ w(() => {
646
+ h(1), F(1);
647
+ }, [v, F]);
648
+ const ie = (b) => {
532
649
  if (!t) return;
533
- const R = Nt(
534
- E,
535
- k,
536
- m,
537
- d
650
+ const B = jt(
651
+ j,
652
+ b,
653
+ y,
654
+ g
538
655
  );
539
- R !== null && o(R);
540
- }, Z = () => {
541
- const k = Ue(JSON.parse(h)), R = M || k.pageSize || 20, T = Math.max(1, Math.ceil(U / R)), S = x >= T ? 1 : x + 1;
542
- J(S);
656
+ B !== null && o(B);
657
+ }, Y = () => {
658
+ const b = Le(JSON.parse(v)), B = H || b.pageSize || 20, $ = Math.max(1, Math.ceil(T / B)), U = C >= $ ? 1 : C + 1;
659
+ F(U);
543
660
  };
544
- return /* @__PURE__ */ C("div", { className: "form-block-preview skopon-resume-select", children: [
545
- a ? /* @__PURE__ */ c("div", { className: "form-block-preview-label", children: a }) : null,
546
- y && g.length === 0 ? /* @__PURE__ */ C("div", { className: "skopon-resume-select-status", children: [
547
- /* @__PURE__ */ c(Ge, { size: "small" }),
548
- " 加载案例…"
549
- ] }) : null,
550
- !y && g.length === 0 ? /* @__PURE__ */ c("div", { className: "skopon-resume-select-empty", children: q }) : null,
551
- g.length > 0 ? /* @__PURE__ */ c("div", { className: "skopon-resume-select-list", children: g.map((k) => /* @__PURE__ */ c(
552
- Zn,
553
- {
554
- item: k,
555
- selected: E.includes(k.caseUniqueId),
556
- disabled: Mt(
557
- E,
558
- k.caseUniqueId,
559
- t,
560
- m,
561
- d
562
- ),
563
- onToggle: () => X(k.caseUniqueId)
564
- },
565
- k.caseUniqueId
566
- )) }) : null,
567
- u && n && Pe(b) ? /* @__PURE__ */ c("div", { className: "skopon-resume-select-actions", children: /* @__PURE__ */ c(
568
- ke,
569
- {
570
- type: "default",
571
- size: "small",
572
- icon: /* @__PURE__ */ c(yt, {}),
573
- loading: y,
574
- disabled: !t,
575
- onClick: Z,
576
- children: "换一批"
577
- }
578
- ) }) : null,
579
- l ? /* @__PURE__ */ c(D.Text, { type: "secondary", className: "form-block-preview-help", children: l }) : null
580
- ] });
661
+ return /* @__PURE__ */ N(
662
+ "div",
663
+ {
664
+ className: "form-block-preview skopon-resume-select",
665
+ "data-skopon-field": a || void 0,
666
+ children: [
667
+ l ? /* @__PURE__ */ c("div", { className: "form-block-preview-label", children: l }) : null,
668
+ p && _.length === 0 ? /* @__PURE__ */ N("div", { className: "skopon-resume-select-status", children: [
669
+ /* @__PURE__ */ c(tt, { size: "small" }),
670
+ " 加载案例…"
671
+ ] }) : null,
672
+ !p && _.length === 0 ? /* @__PURE__ */ c("div", { className: "skopon-resume-select-empty", children: I }) : null,
673
+ _.length > 0 ? /* @__PURE__ */ c("div", { className: "skopon-resume-select-list", children: _.map((b) => /* @__PURE__ */ c(
674
+ Sr,
675
+ {
676
+ item: b,
677
+ selected: j.includes(b.caseUniqueId),
678
+ disabled: $t(
679
+ j,
680
+ b.caseUniqueId,
681
+ t,
682
+ y,
683
+ g
684
+ ),
685
+ onToggle: () => ie(b.caseUniqueId)
686
+ },
687
+ b.caseUniqueId
688
+ )) }) : null,
689
+ d && n && je(k) ? /* @__PURE__ */ c("div", { className: "skopon-resume-select-actions", children: /* @__PURE__ */ c(
690
+ Me,
691
+ {
692
+ type: "default",
693
+ size: "small",
694
+ icon: /* @__PURE__ */ c(Mt, {}),
695
+ loading: p,
696
+ disabled: !t,
697
+ onClick: Y,
698
+ children: "换一批"
699
+ }
700
+ ) }) : null,
701
+ m ? /* @__PURE__ */ c(X.Text, { type: "secondary", className: "form-block-preview-help", children: m }) : null
702
+ ]
703
+ }
704
+ );
581
705
  }
582
- const tr = j(
583
- Qn,
584
- er
585
- ), nr = {
706
+ const kr = J(
707
+ vr,
708
+ br
709
+ ), Ar = {
586
710
  type: "case_multiselect",
587
711
  componentName: "SkoponCaseSelect",
588
- toComponent: Jn,
589
- fromComponent: Yn,
590
- catalogComponents: [tr]
712
+ toComponent: cr,
713
+ fromComponent: ur,
714
+ catalogComponents: [kr]
591
715
  };
592
- function ft(e) {
716
+ function Tt(e) {
593
717
  if (e == null) return;
594
718
  const t = typeof e == "number" ? e : Number(e);
595
719
  if (!(!Number.isFinite(t) || t < 1))
596
720
  return Math.floor(t);
597
721
  }
598
- function rr(e, t) {
722
+ function Cr(e, t) {
599
723
  var a, s, l, u;
600
724
  const { id: n, label: r, path: o, withData: i } = t;
601
725
  return i({
@@ -616,7 +740,7 @@ function rr(e, t) {
616
740
  value: { path: o }
617
741
  });
618
742
  }
619
- function or(e, t, n) {
743
+ function _r(e, t, n) {
620
744
  const r = n.nameFromValue(e.value), o = {
621
745
  ...t("resume_multiselect"),
622
746
  name: r,
@@ -633,34 +757,34 @@ function or(e, t, n) {
633
757
  pageSize: typeof u.pageSize == "number" ? u.pageSize : 20
634
758
  };
635
759
  }
636
- const s = ft(e.minCount);
760
+ const s = Tt(e.minCount);
637
761
  s !== void 0 && (o.resumeMinCount = s);
638
- const l = ft(e.maxCount);
762
+ const l = Tt(e.maxCount);
639
763
  return l !== void 0 && (o.resumeMaxCount = l), o;
640
764
  }
641
- const Pt = He(null);
642
- function je({
765
+ const Kt = Ie(null);
766
+ function Qe({
643
767
  resumeSearch: e,
644
768
  children: t
645
769
  }) {
646
- return /* @__PURE__ */ c(Pt.Provider, { value: e ?? null, children: t });
770
+ return /* @__PURE__ */ c(Kt.Provider, { value: e ?? null, children: t });
647
771
  }
648
- function ir() {
649
- return Ke(Pt);
772
+ function xr() {
773
+ return Ne(Kt);
650
774
  }
651
- function Ee(e) {
775
+ function $e(e) {
652
776
  return typeof e == "string" ? e : "";
653
777
  }
654
- function ze(e) {
778
+ function De(e) {
655
779
  if (!e || typeof e != "object")
656
780
  return { names: [], agentUniqueIds: [], resumeUniqueIds: [], pageSize: 20 };
657
781
  const t = e, n = Array.isArray(t.names) ? t.names.map(String).filter(Boolean) : [], r = Array.isArray(t.agentUniqueIds) ? t.agentUniqueIds.map(String).filter(Boolean) : [], o = Array.isArray(t.resumeUniqueIds) ? t.resumeUniqueIds.map(String).filter(Boolean) : [], i = typeof t.pageSize == "number" ? t.pageSize : Number(t.pageSize), a = Number.isFinite(i) && i >= 1 && i <= 100 ? Math.floor(i) : 20;
658
782
  return { names: n, agentUniqueIds: r, resumeUniqueIds: o, pageSize: a };
659
783
  }
660
- function ar(e) {
784
+ function Tr(e) {
661
785
  return JSON.stringify(e);
662
786
  }
663
- const sr = {
787
+ const Ir = {
664
788
  name: "SkoponResumeSelect",
665
789
  schema: f.object({
666
790
  label: f.any().optional(),
@@ -672,40 +796,40 @@ const sr = {
672
796
  maxCount: f.any().optional(),
673
797
  value: f.any().optional()
674
798
  }).passthrough()
675
- }, lr = 3, cr = 2;
676
- function Re(e, t) {
677
- const n = (t ?? []).filter(Boolean), r = n.slice(0, lr), o = n.length - r.length;
678
- return /* @__PURE__ */ C("div", { className: "skopon-resume-select-card-tags", children: [
799
+ }, Nr = 3, Mr = 2;
800
+ function He(e, t) {
801
+ const n = (t ?? []).filter(Boolean), r = n.slice(0, Nr), o = n.length - r.length;
802
+ return /* @__PURE__ */ N("div", { className: "skopon-resume-select-card-tags", children: [
679
803
  /* @__PURE__ */ c("span", { className: "skopon-resume-select-card-tags-label", children: e }),
680
- n.length > 0 ? /* @__PURE__ */ C("div", { className: "skopon-resume-select-card-tags-list", children: [
681
- r.map((i) => /* @__PURE__ */ c(oe, { className: "skopon-resume-select-card-tag", children: i }, i)),
682
- o > 0 ? /* @__PURE__ */ C(oe, { className: "skopon-resume-select-card-tag", children: [
804
+ n.length > 0 ? /* @__PURE__ */ N("div", { className: "skopon-resume-select-card-tags-list", children: [
805
+ r.map((i) => /* @__PURE__ */ c(le, { className: "skopon-resume-select-card-tag", children: i }, i)),
806
+ o > 0 ? /* @__PURE__ */ N(le, { className: "skopon-resume-select-card-tag", children: [
683
807
  "+",
684
808
  o
685
809
  ] }) : null
686
810
  ] }) : /* @__PURE__ */ c("span", { className: "skopon-resume-select-card-tags-empty", children: "暂无" })
687
811
  ] });
688
812
  }
689
- function ur(e) {
690
- return /* @__PURE__ */ C("div", { className: "skopon-resume-select-card-field", children: [
813
+ function Fr(e) {
814
+ return /* @__PURE__ */ N("div", { className: "skopon-resume-select-card-field", children: [
691
815
  /* @__PURE__ */ c("span", { className: "skopon-resume-select-card-tags-label", children: "满意度" }),
692
816
  /* @__PURE__ */ c("span", { className: "skopon-resume-select-card-field-value", children: typeof e == "number" ? `${e}%` : "暂无" })
693
817
  ] });
694
818
  }
695
- function mr({ work: e }) {
696
- return /* @__PURE__ */ C("div", { className: "skopon-resume-select-card-work", children: [
697
- /* @__PURE__ */ c("div", { className: "skopon-resume-select-card-work-cover", children: e.coverUrl ? /* @__PURE__ */ c("img", { src: e.coverUrl, alt: "", className: "skopon-resume-select-card-work-img" }) : /* @__PURE__ */ c(pn, { className: "skopon-resume-select-card-work-placeholder" }) }),
819
+ function Ur({ work: e }) {
820
+ return /* @__PURE__ */ N("div", { className: "skopon-resume-select-card-work", children: [
821
+ /* @__PURE__ */ c("div", { className: "skopon-resume-select-card-work-cover", children: e.coverUrl ? /* @__PURE__ */ c("img", { src: e.coverUrl, alt: "", className: "skopon-resume-select-card-work-img" }) : /* @__PURE__ */ c(Nn, { className: "skopon-resume-select-card-work-placeholder" }) }),
698
822
  /* @__PURE__ */ c("div", { className: "skopon-resume-select-card-work-title", children: e.title || "未命名作品" })
699
823
  ] });
700
824
  }
701
- function dr({
825
+ function Er({
702
826
  item: e,
703
827
  selected: t,
704
828
  disabled: n,
705
829
  onToggle: r
706
830
  }) {
707
- const o = (e.works ?? []).slice(0, cr);
708
- return /* @__PURE__ */ C(
831
+ const o = (e.works ?? []).slice(0, Mr);
832
+ return /* @__PURE__ */ N(
709
833
  "button",
710
834
  {
711
835
  type: "button",
@@ -714,168 +838,178 @@ function dr({
714
838
  onClick: r,
715
839
  children: [
716
840
  /* @__PURE__ */ c(
717
- rn,
841
+ Sn,
718
842
  {
719
843
  size: 48,
720
844
  src: e.avatarUrl || void 0,
721
- icon: e.avatarUrl ? void 0 : /* @__PURE__ */ c(dn, {}),
845
+ icon: e.avatarUrl ? void 0 : /* @__PURE__ */ c(In, {}),
722
846
  className: "skopon-resume-select-card-avatar"
723
847
  }
724
848
  ),
725
849
  /* @__PURE__ */ c("div", { className: "skopon-resume-select-card-name", children: e.name || "未命名简历" }),
726
- /* @__PURE__ */ C("div", { className: "skopon-resume-select-card-body", children: [
727
- ur(e.satisfaction),
728
- Re("性格", e.personality),
729
- Re("专长", e.specialties),
730
- Re("擅长领域", e.traits),
731
- /* @__PURE__ */ C("div", { className: "skopon-resume-select-card-works", children: [
850
+ /* @__PURE__ */ N("div", { className: "skopon-resume-select-card-body", children: [
851
+ Fr(e.satisfaction),
852
+ He("性格", e.personality),
853
+ He("专长", e.specialties),
854
+ He("擅长领域", e.traits),
855
+ /* @__PURE__ */ N("div", { className: "skopon-resume-select-card-works", children: [
732
856
  /* @__PURE__ */ c("span", { className: "skopon-resume-select-card-works-label", children: "过往作品" }),
733
- o.length > 0 ? /* @__PURE__ */ c("div", { className: "skopon-resume-select-card-works-list", children: o.map((i, a) => /* @__PURE__ */ c(mr, { work: i }, `${i.title}-${a}`)) }) : /* @__PURE__ */ c("div", { className: "skopon-resume-select-card-works-empty", children: "暂无作品" })
857
+ o.length > 0 ? /* @__PURE__ */ c("div", { className: "skopon-resume-select-card-works-list", children: o.map((i, a) => /* @__PURE__ */ c(Ur, { work: i }, `${i.title}-${a}`)) }) : /* @__PURE__ */ c("div", { className: "skopon-resume-select-card-works-empty", children: "暂无作品" })
734
858
  ] })
735
859
  ] })
736
860
  ]
737
861
  }
738
862
  );
739
863
  }
740
- function pr({ context: e }) {
741
- const { interactive: t } = K(), n = ir(), { value: r, setValue: o } = G(e), i = e.componentModel.properties, a = Ee(i.label), s = Ee(i.placeholder), l = Ee(i.help), u = i.enableRefresh !== !1, m = be(i.minCount), d = be(i.maxCount), b = w(() => ze(i.resumeFilter), [i.resumeFilter]), h = ar(b), [x, _] = P(1), [y, p] = P(!1), [v, A] = P(""), [g, I] = P([]), [U, V] = P(0), [M, F] = P(b.pageSize ?? 20), $ = O(0), E = L(r);
742
- B(() => {
743
- const k = Ft(E, d);
744
- k !== null && o(k);
745
- }, [d, E, o]);
746
- const q = ne(
747
- async (k) => {
748
- const R = ze(JSON.parse(h)), T = ++$.current;
864
+ function Pr({ context: e }) {
865
+ const { interactive: t } = ee(), n = xr(), { value: r, setValue: o, setValueSilent: i, fieldName: a } = te(e, "value", {
866
+ component: "SkoponResumeSelect",
867
+ changeAction: "click"
868
+ }), s = e.componentModel.properties, l = $e(s.label), u = $e(s.placeholder), m = $e(s.help), d = s.enableRefresh !== !1, y = xe(s.minCount), g = xe(s.maxCount), k = R(() => De(s.resumeFilter), [s.resumeFilter]), v = Tr(k), [C, h] = E(1), [p, S] = E(!1), [A, x] = E(""), [_, z] = E([]), [T, D] = E(0), [H, oe] = E(k.pageSize ?? 20), K = P(0), j = G(r);
869
+ w(() => {
870
+ const b = Dt(j, g);
871
+ b !== null && i(b);
872
+ }, [g, j, i]);
873
+ const I = L(
874
+ async (b) => {
875
+ const B = De(JSON.parse(v)), $ = ++K.current;
749
876
  if (!n) {
750
- I([]), V(0), A("未配置简历搜索服务"), p(!1);
877
+ z([]), D(0), x("未配置简历搜索服务"), S(!1);
751
878
  return;
752
879
  }
753
- p(!0), A("");
880
+ S(!0), x("");
754
881
  try {
755
- const S = await n({ filter: R, page: k });
756
- if (T !== $.current) return;
757
- I(S.list), V(S.total), _(S.page), F(S.pageSize);
758
- } catch (S) {
759
- if (T !== $.current) return;
760
- I([]), V(0), A(S instanceof Error ? S.message : "加载简历列表失败");
882
+ const U = await n({ filter: B, page: b });
883
+ if ($ !== K.current) return;
884
+ z(U.list), D(U.total), h(U.page), oe(U.pageSize);
885
+ } catch (U) {
886
+ if ($ !== K.current) return;
887
+ z([]), D(0), x(U instanceof Error ? U.message : "加载简历列表失败");
761
888
  } finally {
762
- T === $.current && p(!1);
889
+ $ === K.current && S(!1);
763
890
  }
764
891
  },
765
- [n, h]
892
+ [n, v]
766
893
  );
767
- B(() => {
768
- _(1), q(1);
769
- }, [h, q]);
770
- const J = (k) => {
894
+ w(() => {
895
+ h(1), I(1);
896
+ }, [v, I]);
897
+ const F = (b) => {
771
898
  if (!t) return;
772
- const R = Nt(
773
- E,
774
- k,
775
- m,
776
- d
899
+ const B = jt(
900
+ j,
901
+ b,
902
+ y,
903
+ g
777
904
  );
778
- R !== null && o(R);
779
- }, X = () => {
780
- const k = ze(JSON.parse(h)), R = M || k.pageSize || 20, T = Math.max(1, Math.ceil(U / R)), S = x >= T ? 1 : x + 1;
781
- q(S);
782
- }, Z = s || "暂无匹配的简历";
783
- return /* @__PURE__ */ C("div", { className: "form-block-preview skopon-resume-select", children: [
784
- a ? /* @__PURE__ */ c("div", { className: "form-block-preview-label", children: a }) : null,
785
- y && g.length === 0 ? /* @__PURE__ */ C("div", { className: "skopon-resume-select-status", children: [
786
- /* @__PURE__ */ c(Ge, { size: "small" }),
787
- " 加载简历…"
788
- ] }) : null,
789
- !y && v ? /* @__PURE__ */ c(D.Text, { type: "danger", className: "skopon-resume-select-status", children: v }) : null,
790
- !y && !v && g.length === 0 ? /* @__PURE__ */ c("div", { className: "skopon-resume-select-empty", children: Z }) : null,
791
- g.length > 0 ? /* @__PURE__ */ c("div", { className: "skopon-resume-select-list", children: g.map((k) => /* @__PURE__ */ c(
792
- dr,
793
- {
794
- item: k,
795
- selected: E.includes(k.resumeUniqueId),
796
- disabled: Mt(
797
- E,
798
- k.resumeUniqueId,
799
- t,
800
- m,
801
- d
802
- ),
803
- onToggle: () => J(k.resumeUniqueId)
804
- },
805
- k.resumeUniqueId
806
- )) }) : null,
807
- u && n ? /* @__PURE__ */ c("div", { className: "skopon-resume-select-actions", children: /* @__PURE__ */ c(
808
- ke,
809
- {
810
- type: "default",
811
- size: "small",
812
- icon: /* @__PURE__ */ c(yt, {}),
813
- loading: y,
814
- disabled: !t,
815
- onClick: X,
816
- children: "换一批"
817
- }
818
- ) }) : null,
819
- l ? /* @__PURE__ */ c(D.Text, { type: "secondary", className: "form-block-preview-help", children: l }) : null
820
- ] });
905
+ B !== null && o(B);
906
+ }, ie = () => {
907
+ const b = De(JSON.parse(v)), B = H || b.pageSize || 20, $ = Math.max(1, Math.ceil(T / B)), U = C >= $ ? 1 : C + 1;
908
+ I(U);
909
+ }, Y = u || "暂无匹配的简历";
910
+ return /* @__PURE__ */ N(
911
+ "div",
912
+ {
913
+ className: "form-block-preview skopon-resume-select",
914
+ "data-skopon-field": a || void 0,
915
+ children: [
916
+ l ? /* @__PURE__ */ c("div", { className: "form-block-preview-label", children: l }) : null,
917
+ p && _.length === 0 ? /* @__PURE__ */ N("div", { className: "skopon-resume-select-status", children: [
918
+ /* @__PURE__ */ c(tt, { size: "small" }),
919
+ " 加载简历…"
920
+ ] }) : null,
921
+ !p && A ? /* @__PURE__ */ c(X.Text, { type: "danger", className: "skopon-resume-select-status", children: A }) : null,
922
+ !p && !A && _.length === 0 ? /* @__PURE__ */ c("div", { className: "skopon-resume-select-empty", children: Y }) : null,
923
+ _.length > 0 ? /* @__PURE__ */ c("div", { className: "skopon-resume-select-list", children: _.map((b) => /* @__PURE__ */ c(
924
+ Er,
925
+ {
926
+ item: b,
927
+ selected: j.includes(b.resumeUniqueId),
928
+ disabled: $t(
929
+ j,
930
+ b.resumeUniqueId,
931
+ t,
932
+ y,
933
+ g
934
+ ),
935
+ onToggle: () => F(b.resumeUniqueId)
936
+ },
937
+ b.resumeUniqueId
938
+ )) }) : null,
939
+ d && n ? /* @__PURE__ */ c("div", { className: "skopon-resume-select-actions", children: /* @__PURE__ */ c(
940
+ Me,
941
+ {
942
+ type: "default",
943
+ size: "small",
944
+ icon: /* @__PURE__ */ c(Mt, {}),
945
+ loading: p,
946
+ disabled: !t,
947
+ onClick: ie,
948
+ children: "换一批"
949
+ }
950
+ ) }) : null,
951
+ m ? /* @__PURE__ */ c(X.Text, { type: "secondary", className: "form-block-preview-help", children: m }) : null
952
+ ]
953
+ }
954
+ );
821
955
  }
822
- const fr = j(
823
- sr,
824
- pr
825
- ), hr = {
956
+ const wr = J(
957
+ Ir,
958
+ Pr
959
+ ), Rr = {
826
960
  type: "resume_multiselect",
827
961
  componentName: "SkoponResumeSelect",
828
- toComponent: rr,
829
- fromComponent: or,
830
- catalogComponents: [fr]
831
- }, Ce = [hr, nr], gr = new Map(
832
- Ce.map((e) => [e.type, e])
833
- ), yr = new Map(
834
- Ce.map((e) => [e.componentName, e])
962
+ toComponent: Cr,
963
+ fromComponent: _r,
964
+ catalogComponents: [wr]
965
+ }, Ue = [Rr, Ar], zr = new Map(
966
+ Ue.map((e) => [e.type, e])
967
+ ), Br = new Map(
968
+ Ue.map((e) => [e.componentName, e])
835
969
  );
836
- function vr(e) {
837
- return gr.get(e);
970
+ function qr(e) {
971
+ return zr.get(e);
838
972
  }
839
- function br(e) {
840
- return yr.get(e);
973
+ function Or(e) {
974
+ return Br.get(e);
841
975
  }
842
- function Sr() {
843
- return Ce.flatMap((e) => e.catalogComponents);
976
+ function Vr() {
977
+ return Ue.flatMap((e) => e.catalogComponents);
844
978
  }
845
- function kr() {
846
- return Ce.map((e) => e.componentName);
979
+ function Lr() {
980
+ return Ue.map((e) => e.componentName);
847
981
  }
848
- const Se = "root", Ve = "__title__", $e = "__desc__", Xe = "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$";
849
- function Ar(e) {
982
+ const Te = "root", Xe = "__title__", Ze = "__desc__", it = "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$";
983
+ function jr(e) {
850
984
  return `/${e}`;
851
985
  }
852
- function ht(e) {
986
+ function It(e) {
853
987
  return e && typeof e == "object" && "path" in e ? String(e.path ?? "").replace(/^\//, "") : "";
854
988
  }
855
- function z(e) {
989
+ function O(e) {
856
990
  if (typeof e == "string") return e;
857
991
  }
858
- function Cr(e) {
859
- const t = e.id || ae("a2-"), n = e.type === "video" ? "video" : e.type === "audio" ? "audio" : "image";
992
+ function $r(e) {
993
+ const t = e.id || me("a2-"), n = e.type === "video" ? "video" : e.type === "audio" ? "audio" : "image";
860
994
  return {
861
995
  id: t,
862
996
  component: "SkoponMedia",
863
997
  mediaType: n,
864
- urls: qn(e),
865
- mediaSize: le(e.mediaSize),
998
+ urls: Zn(e),
999
+ mediaSize: pe(e.mediaSize),
866
1000
  label: e.label ?? "",
867
1001
  help: e.help ?? "",
868
1002
  placeholder: e.placeholder ?? ""
869
1003
  };
870
1004
  }
871
- function xr(e) {
1005
+ function Dr(e) {
872
1006
  if (Array.isArray(e.urls))
873
1007
  return e.urls.map((n) => String(n).trim()).filter(Boolean);
874
- const t = z(e.url);
1008
+ const t = O(e.url);
875
1009
  return t != null && t.trim() ? [t.trim()] : [];
876
1010
  }
877
- function fe(e, t, n) {
878
- const r = typeof e.id == "string" ? e.id : ae("block-"), o = xr(e), i = z(e.label) ?? z(e.description) ?? n, a = z(e.help), s = z(e.placeholder), l = le(e.mediaSize);
1011
+ function be(e, t, n) {
1012
+ const r = typeof e.id == "string" ? e.id : me("block-"), o = Dr(e), i = O(e.label) ?? O(e.description) ?? n, a = O(e.help), s = O(e.placeholder), l = pe(e.mediaSize);
879
1013
  return {
880
1014
  id: r,
881
1015
  type: t,
@@ -886,10 +1020,10 @@ function fe(e, t, n) {
886
1020
  mediaUrls: o.length > 0 ? o : [""]
887
1021
  };
888
1022
  }
889
- function _r(e) {
1023
+ function Hr(e) {
890
1024
  switch (e.type) {
891
1025
  case "toggle":
892
- return ce(e.defaultValue);
1026
+ return fe(e.defaultValue);
893
1027
  case "multiselect":
894
1028
  case "checkbox":
895
1029
  case "resume_multiselect":
@@ -903,9 +1037,9 @@ function _r(e) {
903
1037
  return typeof e.defaultValue == "string" ? e.defaultValue : "";
904
1038
  }
905
1039
  }
906
- function Tr(e) {
1040
+ function Kr(e) {
907
1041
  var u;
908
- const t = e.id || ae("a2-"), n = e.label ?? "", r = ((u = e.name) == null ? void 0 : u.trim()) || "", o = r ? Ar(r) : void 0, i = (e.options ?? []).map((m) => ({ label: m.label, value: m.value })), a = (m) => r ? { node: m, dataKey: r, dataValue: _r(e) } : { node: m }, s = { id: t, label: n, name: r, path: o, withData: a }, l = vr(e.type);
1042
+ const t = e.id || me("a2-"), n = e.label ?? "", r = ((u = e.name) == null ? void 0 : u.trim()) || "", o = r ? jr(r) : void 0, i = (e.options ?? []).map((m) => ({ label: m.label, value: m.value })), a = (m) => r ? { node: m, dataKey: r, dataValue: Hr(e) } : { node: m }, s = { id: t, label: n, name: r, path: o, withData: a }, l = qr(e.type);
909
1043
  if (l)
910
1044
  return l.toComponent(e, s);
911
1045
  switch (e.type) {
@@ -930,7 +1064,7 @@ function Tr(e) {
930
1064
  component: "TextField",
931
1065
  label: n,
932
1066
  variant: "shortText",
933
- validationRegexp: Xe,
1067
+ validationRegexp: it,
934
1068
  ...e.placeholder ? { placeholder: e.placeholder } : {},
935
1069
  value: { path: o }
936
1070
  });
@@ -1016,7 +1150,7 @@ function Tr(e) {
1016
1150
  case "image":
1017
1151
  case "video":
1018
1152
  case "audio":
1019
- return { node: Cr(e) };
1153
+ return { node: $r(e) };
1020
1154
  case "file":
1021
1155
  return a({
1022
1156
  id: t,
@@ -1033,31 +1167,31 @@ function Tr(e) {
1033
1167
  return { node: null };
1034
1168
  }
1035
1169
  }
1036
- function De(e) {
1170
+ function et(e) {
1037
1171
  if (!e || !Array.isArray(e.components) || e.components.length === 0) return !0;
1038
- const t = e.components.find((r) => r.id === Se);
1172
+ const t = e.components.find((r) => r.id === Te);
1039
1173
  if (!t) return e.components.length === 0;
1040
1174
  const n = t.children;
1041
1175
  return !Array.isArray(n) || n.length === 0;
1042
1176
  }
1043
- function Et(e, t) {
1177
+ function Gt(e, t) {
1044
1178
  const n = [], r = [], o = {}, i = (t == null ? void 0 : t.includeHeader) !== !1, a = (e.title ?? "").trim(), s = (e.description ?? "").trim();
1045
- i && a && (n.push({ id: Ve, component: "Text", text: a, variant: "h2" }), r.push(Ve)), i && s && (n.push({ id: $e, component: "Text", text: s, variant: "body" }), r.push($e));
1179
+ i && a && (n.push({ id: Xe, component: "Text", text: a, variant: "h2" }), r.push(Xe)), i && s && (n.push({ id: Ze, component: "Text", text: s, variant: "body" }), r.push(Ze));
1046
1180
  for (const m of e.blocks ?? []) {
1047
- const { node: d, dataKey: b, dataValue: h } = Tr(m);
1048
- d && (n.push(d), r.push(d.id), b && (o[b] = h));
1181
+ const { node: d, dataKey: y, dataValue: g } = Kr(m);
1182
+ d && (n.push(d), r.push(d.id), y && (o[y] = g));
1049
1183
  }
1050
- n.unshift({ id: Se, component: "Column", children: r });
1051
- const l = { root: Se, components: n, dataModel: o }, u = t == null ? void 0 : t.styleId;
1184
+ n.unshift({ id: Te, component: "Column", children: r });
1185
+ const l = { root: Te, components: n, dataModel: o }, u = t == null ? void 0 : t.styleId;
1052
1186
  return u !== void 0 && (l.surfaceProperties = { styleId: u ?? null }), l;
1053
1187
  }
1054
- function Ir(e) {
1188
+ function Gr(e) {
1055
1189
  const t = /* @__PURE__ */ new Map();
1056
1190
  for (const n of e.components ?? [])
1057
1191
  n && typeof n.id == "string" && t.set(n.id, n);
1058
1192
  return t;
1059
1193
  }
1060
- function we(e) {
1194
+ function Ke(e) {
1061
1195
  const t = e.options;
1062
1196
  return Array.isArray(t) ? t.map((n) => {
1063
1197
  if (!n || typeof n != "object") return null;
@@ -1068,10 +1202,10 @@ function we(e) {
1068
1202
  };
1069
1203
  }).filter((n) => !!n) : [];
1070
1204
  }
1071
- function Nr(e) {
1072
- const t = typeof e.id == "string" ? e.id : ae("block-"), n = String(e.component ?? ""), r = z(e.label) ?? z(e.text) ?? "", o = ht(e.value), i = (s) => ({ id: t, type: s, label: r }), a = br(n);
1205
+ function Jr(e) {
1206
+ const t = typeof e.id == "string" ? e.id : me("block-"), n = String(e.component ?? ""), r = O(e.label) ?? O(e.text) ?? "", o = It(e.value), i = (s) => ({ id: t, type: s, label: r }), a = Or(n);
1073
1207
  if (a)
1074
- return a.fromComponent(e, i, { asLiteral: z, nameFromValue: ht });
1208
+ return a.fromComponent(e, i, { asLiteral: O, nameFromValue: It });
1075
1209
  switch (n) {
1076
1210
  case "Text": {
1077
1211
  const s = String(e.variant ?? "body"), l = /^h[1-6]$/i.test(s) || s === "title" || s === "subtitle";
@@ -1080,8 +1214,8 @@ function Nr(e) {
1080
1214
  case "TextField": {
1081
1215
  const s = String(e.variant ?? "shortText");
1082
1216
  let l = "text";
1083
- s === "longText" ? l = "textarea" : s === "number" ? l = "number" : z(e.validationRegexp) === Xe && (l = "email");
1084
- const u = { ...i(l), name: o }, m = z(e.placeholder);
1217
+ s === "longText" ? l = "textarea" : s === "number" ? l = "number" : O(e.validationRegexp) === it && (l = "email");
1218
+ const u = { ...i(l), name: o }, m = O(e.placeholder);
1085
1219
  return m && (u.placeholder = m), u;
1086
1220
  }
1087
1221
  case "CheckBox":
@@ -1090,46 +1224,46 @@ function Nr(e) {
1090
1224
  const l = String(e.mode ?? "single") === "multiple" ? "multiselect" : "select", u = {
1091
1225
  ...i(l),
1092
1226
  name: o,
1093
- options: we(e)
1094
- }, m = z(e.placeholder);
1227
+ options: Ke(e)
1228
+ }, m = O(e.placeholder);
1095
1229
  return m && (u.placeholder = m), u;
1096
1230
  }
1097
1231
  case "ChoicePicker": {
1098
- const s = z(e.skoponPickerType);
1232
+ const s = O(e.skoponPickerType);
1099
1233
  if (s === "select" || s === "multiselect" || s === "radio" || s === "checkbox") {
1100
1234
  const m = {
1101
1235
  ...i(s),
1102
1236
  name: o,
1103
- options: we(e)
1104
- }, d = z(e.placeholder);
1237
+ options: Ke(e)
1238
+ }, d = O(e.placeholder);
1105
1239
  return d && (m.placeholder = d), m;
1106
1240
  }
1107
1241
  const u = String(e.variant ?? "mutuallyExclusive") === "multipleSelection" ? "checkbox" : "radio";
1108
- return { ...i(u), name: o, options: we(e) };
1242
+ return { ...i(u), name: o, options: Ke(e) };
1109
1243
  }
1110
1244
  case "DateTimeInput": {
1111
- const s = e.enableDate === !0, l = e.enableTime === !0, m = { ...i(!s && l ? "time" : "datetime"), name: o }, d = z(e.placeholder);
1245
+ const s = e.enableDate === !0, l = e.enableTime === !0, m = { ...i(!s && l ? "time" : "datetime"), name: o }, d = O(e.placeholder);
1112
1246
  return d && (m.placeholder = d), m;
1113
1247
  }
1114
1248
  case "SkoponMedia": {
1115
1249
  const s = String(e.mediaType ?? "image");
1116
- return fe(e, s === "video" ? "video" : s === "audio" ? "audio" : "image", r);
1250
+ return be(e, s === "video" ? "video" : s === "audio" ? "audio" : "image", r);
1117
1251
  }
1118
1252
  case "Image":
1119
- return fe(e, "image", r);
1253
+ return be(e, "image", r);
1120
1254
  case "Video":
1121
- return fe(e, "video", r);
1255
+ return be(e, "video", r);
1122
1256
  case "AudioPlayer":
1123
- return fe(e, "audio", r);
1257
+ return be(e, "audio", r);
1124
1258
  case "FileUpload": {
1125
- const s = z(e.accept) ?? "", l = { ...i("file"), name: o };
1259
+ const s = O(e.accept) ?? "", l = { ...i("file"), name: o };
1126
1260
  return s && (l.fileAcceptExtensions = s.split(",").map((u) => u.trim()).filter(Boolean)), Array.isArray(e.fileAcceptTypes) && (l.fileAcceptTypes = e.fileAcceptTypes.map(String)), typeof e.filePlaceholderIcon == "string" && (l.filePlaceholderIcon = e.filePlaceholderIcon), typeof e.minCount == "number" && (l.fileMinCount = e.minCount), typeof e.maxCount == "number" && (l.fileMaxCount = e.maxCount), l;
1127
1261
  }
1128
1262
  default:
1129
1263
  return null;
1130
1264
  }
1131
1265
  }
1132
- function zt(e, t, n, r) {
1266
+ function Jt(e, t, n, r) {
1133
1267
  if (n.has(e)) return;
1134
1268
  n.add(e);
1135
1269
  const o = t.get(e);
@@ -1137,47 +1271,47 @@ function zt(e, t, n, r) {
1137
1271
  const i = String(o.component ?? "");
1138
1272
  if ((i === "Column" || i === "Row") && Array.isArray(o.children)) {
1139
1273
  for (const a of o.children)
1140
- typeof a == "string" && zt(a, t, n, r);
1274
+ typeof a == "string" && Jt(a, t, n, r);
1141
1275
  return;
1142
1276
  }
1143
1277
  r.push(o);
1144
1278
  }
1145
- function Mr(e, t) {
1279
+ function Wr(e, t) {
1146
1280
  return t ? e.map((n) => {
1147
1281
  var i;
1148
1282
  const r = (i = n.name) == null ? void 0 : i.trim();
1149
1283
  if (!r || !(r in t)) return n;
1150
1284
  const o = t[r];
1151
- return o === void 0 ? n : n.type === "toggle" ? { ...n, defaultValue: ce(o) } : { ...n, defaultValue: o };
1285
+ return o === void 0 ? n : n.type === "toggle" ? { ...n, defaultValue: fe(o) } : { ...n, defaultValue: o };
1152
1286
  }) : e;
1153
1287
  }
1154
- function Fr(e) {
1288
+ function Yr(e) {
1155
1289
  if (!e || !Array.isArray(e.components))
1156
- return ve({ title: "", description: "", blocks: [], jsonSchema: {} });
1157
- const t = Ir(e), n = [];
1158
- zt(e.root ?? Se, t, /* @__PURE__ */ new Set(), n);
1290
+ return _e({ title: "", description: "", blocks: [], jsonSchema: {} });
1291
+ const t = Gr(e), n = [];
1292
+ Jt(e.root ?? Te, t, /* @__PURE__ */ new Set(), n);
1159
1293
  let r = "", o = "";
1160
1294
  const i = [];
1161
1295
  for (const a of n) {
1162
- if (a.id === Ve) {
1163
- r = z(a.text) ?? r;
1296
+ if (a.id === Xe) {
1297
+ r = O(a.text) ?? r;
1164
1298
  continue;
1165
1299
  }
1166
- if (a.id === $e) {
1167
- o = z(a.text) ?? o;
1300
+ if (a.id === Ze) {
1301
+ o = O(a.text) ?? o;
1168
1302
  continue;
1169
1303
  }
1170
- const s = Nr(a);
1304
+ const s = Jr(a);
1171
1305
  s && i.push(s);
1172
1306
  }
1173
- return ve({
1307
+ return _e({
1174
1308
  title: r,
1175
1309
  description: o,
1176
- blocks: Mr(i, e.dataModel),
1310
+ blocks: Wr(i, e.dataModel),
1177
1311
  jsonSchema: {}
1178
1312
  });
1179
1313
  }
1180
- function Ur(e, t) {
1314
+ function Qr(e, t) {
1181
1315
  const { surfaceId: n, catalogId: r } = t, o = [
1182
1316
  { version: "v0.9", createSurface: { surfaceId: n, catalogId: r } },
1183
1317
  {
@@ -1190,25 +1324,25 @@ function Ur(e, t) {
1190
1324
  updateDataModel: { surfaceId: n, path: "/", value: e.dataModel }
1191
1325
  }), o;
1192
1326
  }
1193
- function Rt(e) {
1327
+ function Wt(e) {
1194
1328
  return !!e && typeof e == "object" && !Array.isArray(e) && Array.isArray(e.components);
1195
1329
  }
1196
- function Pr(e, t) {
1330
+ function Xr(e, t) {
1197
1331
  if (!e || typeof e != "object") return null;
1198
- const n = e, r = Rt(n.a2ui) ? n.a2ui : void 0;
1199
- if (r && !De(r)) return r;
1332
+ const n = e, r = Wt(n.a2ui) ? n.a2ui : void 0;
1333
+ if (r && !et(r)) return r;
1200
1334
  const o = Array.isArray(n.blocks) ? n.blocks : [];
1201
1335
  if (o.length === 0) return null;
1202
- const i = Q({
1336
+ const i = re({
1203
1337
  title: typeof n.title == "string" ? n.title : "",
1204
1338
  description: typeof n.description == "string" ? n.description : "",
1205
1339
  blocks: o,
1206
- jsonSchema: We(n.jsonSchema ?? n.json_schema)
1207
- }), a = Et(i, t);
1208
- return De(a) ? null : a;
1340
+ jsonSchema: ot(n.jsonSchema ?? n.json_schema)
1341
+ }), a = Gt(i, t);
1342
+ return et(a) ? null : a;
1209
1343
  }
1210
- function Er(e, t, n) {
1211
- return Et(
1344
+ function Zr(e, t, n) {
1345
+ return Gt(
1212
1346
  {
1213
1347
  title: e.title,
1214
1348
  description: e.description,
@@ -1217,18 +1351,18 @@ function Er(e, t, n) {
1217
1351
  n
1218
1352
  );
1219
1353
  }
1220
- function zr(e) {
1354
+ function eo(e) {
1221
1355
  if (!e || typeof e != "object" || Array.isArray(e))
1222
1356
  return;
1223
1357
  const t = e;
1224
- return !(Array.isArray(t.blocks) && t.blocks.length > 0) && Rt(t.a2ui) ? Fr(t.a2ui) : Q({
1358
+ return !(Array.isArray(t.blocks) && t.blocks.length > 0) && Wt(t.a2ui) ? Yr(t.a2ui) : re({
1225
1359
  title: typeof t.title == "string" ? t.title : "",
1226
1360
  description: typeof t.description == "string" ? t.description : "",
1227
1361
  blocks: Array.isArray(t.blocks) ? t.blocks : [],
1228
- jsonSchema: We(t.jsonSchema ?? t.json_schema)
1362
+ jsonSchema: ot(t.jsonSchema ?? t.json_schema)
1229
1363
  });
1230
1364
  }
1231
- function Rr(e, t, n) {
1365
+ function to(e, t, n) {
1232
1366
  const r = e.model.surfacesMap.get(t);
1233
1367
  if (!r) return {};
1234
1368
  const o = {};
@@ -1238,15 +1372,15 @@ function Rr(e, t, n) {
1238
1372
  }
1239
1373
  return o;
1240
1374
  }
1241
- function wr(e) {
1242
- return Q({
1375
+ function no(e) {
1376
+ return re({
1243
1377
  title: "",
1244
1378
  description: "",
1245
1379
  blocks: [e],
1246
1380
  jsonSchema: {}
1247
1381
  }).blocks[0];
1248
1382
  }
1249
- function Br(e, t) {
1383
+ function ro(e, t) {
1250
1384
  var o, i;
1251
1385
  const n = /* @__PURE__ */ new Map();
1252
1386
  for (const a of t) {
@@ -1255,11 +1389,11 @@ function Br(e, t) {
1255
1389
  }
1256
1390
  const r = [];
1257
1391
  for (const a of e.blocks) {
1258
- if (Ae(a.type)) {
1259
- r.push(wr(a));
1392
+ if (Fe(a.type)) {
1393
+ r.push(no(a));
1260
1394
  continue;
1261
1395
  }
1262
- if (!W(a.type)) continue;
1396
+ if (!ne(a.type)) continue;
1263
1397
  const s = (i = a.name) == null ? void 0 : i.trim();
1264
1398
  if (!s) continue;
1265
1399
  const l = n.get(s);
@@ -1267,42 +1401,42 @@ function Br(e, t) {
1267
1401
  }
1268
1402
  return r;
1269
1403
  }
1270
- function qr(e, t) {
1404
+ function oo(e, t) {
1271
1405
  var r;
1272
1406
  const n = {
1273
1407
  ...e,
1274
1408
  name: ((r = e.name) == null ? void 0 : r.trim()) || t.name
1275
1409
  };
1276
- return t.defaultValue !== void 0 && (n.defaultValue = t.defaultValue), Q({
1410
+ return t.defaultValue !== void 0 && (n.defaultValue = t.defaultValue), re({
1277
1411
  title: "",
1278
1412
  description: "",
1279
1413
  blocks: [n],
1280
1414
  jsonSchema: {}
1281
1415
  }).blocks[0];
1282
1416
  }
1283
- function xe(e) {
1417
+ function Ee(e) {
1284
1418
  if (!e || typeof e != "object" || Array.isArray(e)) return null;
1285
1419
  const t = e;
1286
- return Array.isArray(t.blocks) ? Q({
1420
+ return Array.isArray(t.blocks) ? re({
1287
1421
  title: typeof t.title == "string" ? t.title : "",
1288
1422
  description: typeof t.description == "string" ? t.description : "",
1289
1423
  blocks: t.blocks,
1290
1424
  jsonSchema: {}
1291
1425
  }) : null;
1292
1426
  }
1293
- function Or(e, t) {
1427
+ function io(e, t) {
1294
1428
  var i, a, s, l, u, m;
1295
1429
  const n = /* @__PURE__ */ new Map();
1296
1430
  for (const d of (t == null ? void 0 : t.blocks) ?? [])
1297
- W(d.type) && ((i = d.name) != null && i.trim()) && n.set(d.name.trim(), d);
1431
+ ne(d.type) && ((i = d.name) != null && i.trim()) && n.set(d.name.trim(), d);
1298
1432
  const r = [], o = [];
1299
1433
  for (const d of e.blocks) {
1300
- if (!W(d.type)) continue;
1301
- const b = (a = d.name) == null ? void 0 : a.trim();
1302
- if (!b) continue;
1303
- const h = n.get(b);
1304
- h ? r.push(qr(h, d)) : o.push(
1305
- Q({
1434
+ if (!ne(d.type)) continue;
1435
+ const y = (a = d.name) == null ? void 0 : a.trim();
1436
+ if (!y) continue;
1437
+ const g = n.get(y);
1438
+ g ? r.push(oo(g, d)) : o.push(
1439
+ re({
1306
1440
  title: "",
1307
1441
  description: "",
1308
1442
  blocks: [d],
@@ -1313,88 +1447,88 @@ function Or(e, t) {
1313
1447
  return {
1314
1448
  matchedBlocks: r,
1315
1449
  extraBlocks: o,
1316
- renderBlocks: Br(e, r),
1450
+ renderBlocks: ro(e, r),
1317
1451
  title: ((s = e.title) == null ? void 0 : s.trim()) || ((l = t == null ? void 0 : t.title) == null ? void 0 : l.trim()) || "",
1318
1452
  description: ((u = e.description) == null ? void 0 : u.trim()) || ((m = t == null ? void 0 : t.description) == null ? void 0 : m.trim()) || ""
1319
1453
  };
1320
1454
  }
1321
- function Lr(e) {
1455
+ function ao(e) {
1322
1456
  const { type: t, defaultValue: n } = e;
1323
1457
  return n !== void 0 ? t === "toggle" ? n === !0 || n === "true" : t === "multiselect" || t === "checkbox" || t === "resume_multiselect" || t === "case_multiselect" ? Array.isArray(n) ? n.map(String) : typeof n == "string" && n ? [n] : [] : n : t === "toggle" ? !1 : t === "multiselect" || t === "checkbox" || t === "resume_multiselect" || t === "case_multiselect" ? [] : t === "number" ? null : "";
1324
1458
  }
1325
- function Qe(e) {
1459
+ function at(e) {
1326
1460
  var n;
1327
1461
  const t = {};
1328
1462
  for (const r of e) {
1329
- if (!W(r.type)) continue;
1463
+ if (!ne(r.type)) continue;
1330
1464
  const o = (n = r.name) == null ? void 0 : n.trim();
1331
- o && (t[o] = Lr(r));
1465
+ o && (t[o] = ao(r));
1332
1466
  }
1333
1467
  return t;
1334
1468
  }
1335
- function jr(e) {
1469
+ function so(e) {
1336
1470
  return e.blocks.some(
1337
1471
  (t) => {
1338
1472
  var n;
1339
- return W(t.type) && !!((n = t.name) != null && n.trim());
1473
+ return ne(t.type) && !!((n = t.name) != null && n.trim());
1340
1474
  }
1341
1475
  );
1342
1476
  }
1343
- function Vr(e) {
1477
+ function lo(e) {
1344
1478
  return e.blocks.filter((t) => {
1345
1479
  var n;
1346
- return Ae(t.type) ? !0 : W(t.type) && !!((n = t.name) != null && n.trim());
1480
+ return Fe(t.type) ? !0 : ne(t.type) && !!((n = t.name) != null && n.trim());
1347
1481
  });
1348
1482
  }
1349
- function $r(e) {
1483
+ function co(e) {
1350
1484
  return e.blocks.filter((t) => {
1351
1485
  var n;
1352
- return W(t.type) && ((n = t.name) == null ? void 0 : n.trim());
1486
+ return ne(t.type) && ((n = t.name) == null ? void 0 : n.trim());
1353
1487
  }).map((t) => t.name.trim());
1354
1488
  }
1355
- function Ze(e) {
1489
+ function st(e) {
1356
1490
  return e.replace(/'/g, "'\\''");
1357
1491
  }
1358
- function wt(e) {
1492
+ function Yt(e) {
1359
1493
  var n;
1360
1494
  const t = (n = e == null ? void 0 : e.Authorization) == null ? void 0 : n.trim();
1361
- return t ? ` -H 'Authorization: ${Ze(t)}' \\` : " -H 'Authorization: Bearer <token>' \\";
1495
+ return t ? ` -H 'Authorization: ${st(t)}' \\` : " -H 'Authorization: Bearer <token>' \\";
1362
1496
  }
1363
- function Bt(e, t, n) {
1497
+ function Qt(e, t, n) {
1364
1498
  const r = (t ?? "").trim() || "<callback_url>", o = JSON.stringify(e ?? {}, null, 2);
1365
1499
  return [
1366
1500
  `curl -X POST '${r}' \\`,
1367
1501
  " -H 'Content-Type: application/json' \\",
1368
- wt(n),
1369
- ` -d '${Ze(o)}'`
1502
+ Yt(n),
1503
+ ` -d '${st(o)}'`
1370
1504
  ].join(`
1371
1505
  `);
1372
1506
  }
1373
- function Dr(e, t) {
1507
+ function uo(e, t) {
1374
1508
  return JSON.stringify({ ...e, ...t }, null, 2);
1375
1509
  }
1376
- function Hr({
1510
+ function mo({
1377
1511
  cardValues: e,
1378
1512
  extraValues: t = {},
1379
1513
  callbackUrl: n,
1380
1514
  headers: r
1381
1515
  }) {
1382
- const o = (n ?? "").trim() || "<callback_url>", i = Dr(e, t);
1516
+ const o = (n ?? "").trim() || "<callback_url>", i = uo(e, t);
1383
1517
  return [
1384
1518
  `curl -X POST '${o}' \\`,
1385
1519
  " -H 'Content-Type: application/json' \\",
1386
- wt(r),
1387
- ` -d '${Ze(i)}'`
1520
+ Yt(r),
1521
+ ` -d '${st(i)}'`
1388
1522
  ].join(`
1389
1523
  `);
1390
1524
  }
1391
- function ei(e, t, n) {
1392
- const r = xe(e);
1393
- if (!r) return Bt(e, t, n);
1394
- const o = Qe(r.blocks);
1395
- return Hr({ cardValues: o, callbackUrl: t, headers: n });
1525
+ function Fi(e, t, n) {
1526
+ const r = Ee(e);
1527
+ if (!r) return Qt(e, t, n);
1528
+ const o = at(r.blocks);
1529
+ return mo({ cardValues: o, callbackUrl: t, headers: n });
1396
1530
  }
1397
- async function qt(e, t, n) {
1531
+ async function Xt(e, t, n) {
1398
1532
  const r = e.trim();
1399
1533
  if (!r)
1400
1534
  throw new Error("callback_url 为空");
@@ -1421,7 +1555,7 @@ async function qt(e, t, n) {
1421
1555
  }
1422
1556
  return { ok: i.ok, status: i.status, body: a };
1423
1557
  }
1424
- async function ti(e) {
1558
+ async function Ui(e) {
1425
1559
  var n;
1426
1560
  if (typeof navigator < "u" && ((n = navigator.clipboard) != null && n.writeText)) {
1427
1561
  await navigator.clipboard.writeText(e);
@@ -1437,7 +1571,7 @@ async function ti(e) {
1437
1571
  document.body.removeChild(t);
1438
1572
  }
1439
1573
  }
1440
- async function et(e) {
1574
+ async function lt(e) {
1441
1575
  let t;
1442
1576
  try {
1443
1577
  t = await e.json();
@@ -1450,8 +1584,8 @@ async function et(e) {
1450
1584
  throw new Error(t.message || `响应缺少 data (${e.status})`);
1451
1585
  return t.data;
1452
1586
  }
1453
- const Ot = "auth_user", Kr = "token", Gr = "answer_agent_callback_url", Jr = "/api/v1/mock/ask_user_answer_mock";
1454
- function Lt(e) {
1587
+ const ct = "auth_user", po = "token", fo = "answer_agent_callback_url", ho = "realtime_ws_url", go = "/api/v1/mock/ask_user_answer_mock";
1588
+ function ut(e) {
1455
1589
  if (typeof window > "u") return null;
1456
1590
  try {
1457
1591
  return e === "localStorage" ? window.localStorage : window.sessionStorage;
@@ -1459,7 +1593,7 @@ function Lt(e) {
1459
1593
  return null;
1460
1594
  }
1461
1595
  }
1462
- function jt(e) {
1596
+ function mt(e) {
1463
1597
  try {
1464
1598
  const t = JSON.parse(e);
1465
1599
  return !t || typeof t != "object" || Array.isArray(t) ? null : t;
@@ -1467,40 +1601,50 @@ function jt(e) {
1467
1601
  return null;
1468
1602
  }
1469
1603
  }
1470
- function Yr(e, t) {
1471
- const n = jt(e);
1604
+ function yo(e, t) {
1605
+ const n = mt(e);
1472
1606
  if (!n) return "";
1473
1607
  const r = n[t];
1474
1608
  return typeof r == "string" ? r.trim().replace(/^bearer\s+/i, "").trim() : "";
1475
1609
  }
1476
- function Wr(e = {}) {
1477
- const t = e.storage ?? "sessionStorage", n = e.storageKey ?? Ot, r = e.answerAgentCallbackUrlField ?? Gr, o = Lt(t);
1610
+ function vo(e = {}) {
1611
+ const t = e.storage ?? "sessionStorage", n = e.storageKey ?? ct, r = e.answerAgentCallbackUrlField ?? fo, o = ut(t);
1612
+ if (!o) return "";
1613
+ const i = o.getItem(n);
1614
+ if (!i) return "";
1615
+ const a = mt(i);
1616
+ if (!a) return "";
1617
+ const s = a[r];
1618
+ return (typeof s == "string" ? s.trim() : "") || go;
1619
+ }
1620
+ function So(e = {}) {
1621
+ const t = e.storage ?? "sessionStorage", n = e.storageKey ?? ct, r = e.realtimeWsUrlField ?? ho, o = ut(t);
1478
1622
  if (!o) return "";
1479
1623
  const i = o.getItem(n);
1480
1624
  if (!i) return "";
1481
- const a = jt(i);
1625
+ const a = mt(i);
1482
1626
  if (!a) return "";
1483
1627
  const s = a[r];
1484
- return (typeof s == "string" ? s.trim() : "") || Jr;
1628
+ return typeof s == "string" ? s.trim() : "";
1485
1629
  }
1486
- function tt(e, t) {
1630
+ function dt(e, t) {
1487
1631
  return {
1488
- ...Vt(t),
1632
+ ...Zt(t),
1489
1633
  ...e ?? {}
1490
1634
  };
1491
1635
  }
1492
- function Vt(e = {}) {
1493
- const t = e.storage ?? "sessionStorage", n = e.storageKey ?? Ot, r = e.tokenField ?? Kr, o = Lt(t);
1636
+ function Zt(e = {}) {
1637
+ const t = e.storage ?? "sessionStorage", n = e.storageKey ?? ct, r = e.tokenField ?? po, o = ut(t);
1494
1638
  if (!o) return {};
1495
1639
  const i = o.getItem(n);
1496
1640
  if (!i) return {};
1497
- const a = Yr(i, r);
1641
+ const a = yo(i, r);
1498
1642
  return a ? { Authorization: `Bearer ${a}` } : {};
1499
1643
  }
1500
- async function nt(e = {}) {
1501
- return e.getHeaders ? await e.getHeaders() ?? {} : Vt(e.authStorage);
1644
+ async function pt(e = {}) {
1645
+ return e.getHeaders ? await e.getHeaders() ?? {} : Zt(e.authStorage);
1502
1646
  }
1503
- function Xr(e = {}) {
1647
+ function bo(e = {}) {
1504
1648
  const t = (e.baseUrl ?? "/api/v1").replace(/\/$/, ""), n = e.detailPath ?? "/dev/form/detail", r = e.fetch ?? fetch;
1505
1649
  async function o(i) {
1506
1650
  const a = new URLSearchParams();
@@ -1510,21 +1654,21 @@ function Xr(e = {}) {
1510
1654
  a.set("form_unique_id", i.formUniqueId);
1511
1655
  else
1512
1656
  throw new Error("form_id 或 form_unique_id 至少传一个");
1513
- const s = await nt(e), l = await r(`${t}${n}?${a.toString()}`, {
1657
+ const s = await pt(e), l = await r(`${t}${n}?${a.toString()}`, {
1514
1658
  method: "GET",
1515
1659
  headers: s
1516
- }), u = await et(l), m = zr(u.form_definition);
1660
+ }), u = await lt(l), m = eo(u.form_definition);
1517
1661
  return {
1518
1662
  formUniqueId: u.form_unique_id,
1519
1663
  formId: u.form_id,
1520
1664
  disabled: u.disabled === 1,
1521
1665
  formDefinition: m,
1522
- a2ui: Pr(u.form_definition) ?? void 0
1666
+ a2ui: Xr(u.form_definition) ?? void 0
1523
1667
  };
1524
1668
  }
1525
1669
  return { fetchDetail: o };
1526
1670
  }
1527
- function Qr(e) {
1671
+ function ko(e) {
1528
1672
  if (!e || typeof e != "object" || Array.isArray(e))
1529
1673
  return e ?? null;
1530
1674
  const t = e;
@@ -1534,13 +1678,13 @@ function Qr(e) {
1534
1678
  blocks: t.blocks
1535
1679
  } : e;
1536
1680
  }
1537
- function rt({
1681
+ function ft({
1538
1682
  context: e,
1539
1683
  payload: t,
1540
1684
  form: n,
1541
1685
  answer: r
1542
1686
  }) {
1543
- const o = xe(t) ?? t, i = n ? Qr(n) : o;
1687
+ const o = Ee(t) ?? t, i = n ? ko(n) : o;
1544
1688
  return {
1545
1689
  mission_id: e.missionId ?? null,
1546
1690
  tenant_id: e.tenantId ?? null,
@@ -1553,7 +1697,7 @@ function rt({
1553
1697
  answer: r
1554
1698
  };
1555
1699
  }
1556
- function $t(e) {
1700
+ function en(e) {
1557
1701
  const t = e.callback_url;
1558
1702
  if (typeof t != "string" || !t.trim())
1559
1703
  return "callback_url 为空,无法提交";
@@ -1568,34 +1712,34 @@ function $t(e) {
1568
1712
  const o = e.mission_id;
1569
1713
  return o == null || o === "" ? "mission_id 缺失,无法提交" : null;
1570
1714
  }
1571
- function ni(e) {
1572
- return $t(
1573
- rt({
1715
+ function Ei(e) {
1716
+ return en(
1717
+ ft({
1574
1718
  context: e,
1575
1719
  payload: {},
1576
1720
  answer: {}
1577
1721
  })
1578
1722
  );
1579
1723
  }
1580
- const gt = "answer_agent_callback_url 未配置,无法提交";
1581
- function Zr(e) {
1724
+ const Nt = "answer_agent_callback_url 未配置,无法提交";
1725
+ function Ao(e) {
1582
1726
  if ((e == null ? void 0 : e.answerAgentCallbackUrl) != null) {
1583
1727
  const n = e.answerAgentCallbackUrl.trim();
1584
1728
  if (!n)
1585
- throw new Error(gt);
1729
+ throw new Error(Nt);
1586
1730
  return n;
1587
1731
  }
1588
- const t = Wr(e == null ? void 0 : e.authStorage).trim();
1732
+ const t = vo(e == null ? void 0 : e.authStorage).trim();
1589
1733
  if (!t)
1590
- throw new Error(gt);
1734
+ throw new Error(Nt);
1591
1735
  return t;
1592
1736
  }
1593
- function Dt(e) {
1737
+ function tn(e) {
1594
1738
  if (!e || typeof e != "object" || Array.isArray(e)) return null;
1595
1739
  const n = e.data;
1596
1740
  return !n || typeof n != "object" || Array.isArray(n) ? null : n;
1597
1741
  }
1598
- function eo(e, t) {
1742
+ function Co(e, t) {
1599
1743
  if (t && typeof t == "object" && t !== null && "message" in t) {
1600
1744
  const n = t.message;
1601
1745
  if (typeof n == "string" && n.trim())
@@ -1603,27 +1747,27 @@ function eo(e, t) {
1603
1747
  }
1604
1748
  return typeof t == "string" && t.trim() ? `提交失败 (${e}): ${t.trim()}` : `提交失败 (${e})`;
1605
1749
  }
1606
- function to(e) {
1750
+ function _o(e) {
1607
1751
  return `提交失败:${typeof e.error == "string" && e.error.trim() ? e.error.trim() : `回调 HTTP ${e.callback_status ?? "失败"}`}`;
1608
1752
  }
1609
- function Ht(e) {
1610
- const t = Dt(e.body);
1611
- return (t == null ? void 0 : t.callback_ok) === !1 ? { type: "error", message: to(t) } : e.ok ? { type: "success", message: "提交成功" } : {
1753
+ function nn(e) {
1754
+ const t = tn(e.body);
1755
+ return (t == null ? void 0 : t.callback_ok) === !1 ? { type: "error", message: _o(t) } : e.ok ? { type: "success", message: "提交成功" } : {
1612
1756
  type: "error",
1613
- message: eo(e.status, e.body)
1757
+ message: Co(e.status, e.body)
1614
1758
  };
1615
1759
  }
1616
- async function Kt(e, t) {
1617
- const n = $t(e);
1760
+ async function rn(e, t) {
1761
+ const n = en(e);
1618
1762
  if (n)
1619
1763
  throw new Error(n);
1620
- const r = Zr(t), o = await qt(r, e, {
1764
+ const r = Ao(t), o = await Xt(r, e, {
1621
1765
  ...t,
1622
- headers: tt(t == null ? void 0 : t.headers, t == null ? void 0 : t.authStorage)
1623
- }), i = Dt(o.body);
1766
+ headers: dt(t == null ? void 0 : t.headers, t == null ? void 0 : t.authStorage)
1767
+ }), i = tn(o.body);
1624
1768
  return o.ok && (i == null ? void 0 : i.callback_ok) === !1 ? { ok: !1, status: o.status, body: o.body } : o;
1625
1769
  }
1626
- function no(e) {
1770
+ function xo(e) {
1627
1771
  return {
1628
1772
  resumeUniqueId: e.resume_unique_id,
1629
1773
  resumeId: e.resume_id,
@@ -1644,7 +1788,7 @@ function no(e) {
1644
1788
  }))
1645
1789
  };
1646
1790
  }
1647
- function ro(e, t) {
1791
+ function To(e, t) {
1648
1792
  const n = new URLSearchParams();
1649
1793
  n.set("page", String(t)), n.set("page_size", String(e.pageSize ?? 20));
1650
1794
  for (const r of e.names ?? [])
@@ -1655,27 +1799,27 @@ function ro(e, t) {
1655
1799
  r && n.append("resume_unique_id", r);
1656
1800
  return n;
1657
1801
  }
1658
- function oo(e = {}) {
1802
+ function Io(e = {}) {
1659
1803
  const t = (e.baseUrl ?? "/api/v1").replace(/\/$/, ""), n = e.searchPath ?? "/univ/resume/search", r = e.fetch ?? fetch;
1660
1804
  return async ({ filter: o, page: i }) => {
1661
- const a = await nt(e), s = ro(o, i), l = await r(`${t}${n}?${s.toString()}`, {
1805
+ const a = await pt(e), s = To(o, i), l = await r(`${t}${n}?${s.toString()}`, {
1662
1806
  method: "GET",
1663
1807
  headers: a
1664
- }), u = await et(l);
1808
+ }), u = await lt(l);
1665
1809
  return {
1666
- list: (u.list ?? []).map(no),
1810
+ list: (u.list ?? []).map(xo),
1667
1811
  total: u.total ?? 0,
1668
1812
  page: u.page ?? i,
1669
1813
  pageSize: u.page_size ?? o.pageSize ?? 20
1670
1814
  };
1671
1815
  };
1672
1816
  }
1673
- function io(e) {
1817
+ function No(e) {
1674
1818
  var r, o, i, a;
1675
1819
  const t = !!((r = e.flowUniqueIds) != null && r.length), n = !!((o = e.agentUniqueId) != null && o.trim() && ((i = e.flowType) != null && i.trim()) && ((a = e.category) != null && a.trim()));
1676
1820
  return t || n;
1677
1821
  }
1678
- function ao(e) {
1822
+ function Mo(e) {
1679
1823
  return {
1680
1824
  caseUniqueId: e.case_unique_id,
1681
1825
  caseId: e.case_id,
@@ -1686,7 +1830,7 @@ function ao(e) {
1686
1830
  description: e.description ?? void 0
1687
1831
  };
1688
1832
  }
1689
- function so(e, t, n) {
1833
+ function Fo(e, t, n) {
1690
1834
  var o, i, a;
1691
1835
  const r = new URLSearchParams();
1692
1836
  r.set("page", String(t)), r.set("page_size", String(e.pageSize ?? 20)), r.set("published", String(n)), (o = e.agentUniqueId) != null && o.trim() && r.set("agent_unique_id", e.agentUniqueId.trim()), (i = e.flowType) != null && i.trim() && r.set("flow_type", e.flowType.trim()), (a = e.category) != null && a.trim() && r.set("category_unique_id", e.category.trim());
@@ -1694,24 +1838,24 @@ function so(e, t, n) {
1694
1838
  s && r.append("flow_unique_ids", s);
1695
1839
  return r;
1696
1840
  }
1697
- function lo(e = {}) {
1841
+ function Uo(e = {}) {
1698
1842
  const t = (e.baseUrl ?? "/api/v1").replace(/\/$/, ""), n = e.listPath ?? "/univ/case/list", r = e.fetch ?? fetch, o = e.published ?? 1;
1699
1843
  return async ({ filter: i, page: a }) => {
1700
- if (!io(i))
1844
+ if (!No(i))
1701
1845
  return { list: [], total: 0, page: 1, pageSize: i.pageSize ?? 20 };
1702
- const s = await nt(e), l = so(i, a, o), u = await r(`${t}${n}?${l.toString()}`, {
1846
+ const s = await pt(e), l = Fo(i, a, o), u = await r(`${t}${n}?${l.toString()}`, {
1703
1847
  method: "GET",
1704
1848
  headers: s
1705
- }), m = await et(u);
1849
+ }), m = await lt(u);
1706
1850
  return {
1707
- list: (m.list ?? []).map(ao),
1851
+ list: (m.list ?? []).map(Mo),
1708
1852
  total: m.total ?? 0,
1709
1853
  page: m.page ?? a,
1710
1854
  pageSize: m.page_size ?? i.pageSize ?? 20
1711
1855
  };
1712
1856
  };
1713
1857
  }
1714
- function ri(e = {}) {
1858
+ function Pi(e = {}) {
1715
1859
  var r, o, i, a;
1716
1860
  const t = {
1717
1861
  baseUrl: e.baseUrl,
@@ -1720,22 +1864,22 @@ function ri(e = {}) {
1720
1864
  authStorage: e.authStorage
1721
1865
  };
1722
1866
  return {
1723
- fetchDetail: Xr({
1867
+ fetchDetail: bo({
1724
1868
  ...t,
1725
1869
  detailPath: (r = e.form) == null ? void 0 : r.detailPath
1726
1870
  }).fetchDetail,
1727
- resumeSearch: oo({
1871
+ resumeSearch: Io({
1728
1872
  ...t,
1729
1873
  searchPath: (o = e.resume) == null ? void 0 : o.searchPath
1730
1874
  }),
1731
- caseSearch: lo({
1875
+ caseSearch: Uo({
1732
1876
  ...t,
1733
1877
  listPath: (i = e.case) == null ? void 0 : i.listPath,
1734
1878
  published: (a = e.case) == null ? void 0 : a.published
1735
1879
  })
1736
1880
  };
1737
1881
  }
1738
- function Gt(e, t) {
1882
+ function on(e, t) {
1739
1883
  if (!t.trim()) return !0;
1740
1884
  try {
1741
1885
  return new RegExp(t).test(e);
@@ -1743,44 +1887,44 @@ function Gt(e, t) {
1743
1887
  return !0;
1744
1888
  }
1745
1889
  }
1746
- function Jt(e) {
1890
+ function an(e) {
1747
1891
  return e == null ? !0 : typeof e == "string" ? !e.trim() : !1;
1748
1892
  }
1749
- function co(e, t) {
1893
+ function Eo(e, t) {
1750
1894
  switch (e.type) {
1751
1895
  case "multiselect":
1752
1896
  case "checkbox":
1753
1897
  case "file":
1754
1898
  case "resume_multiselect":
1755
1899
  case "case_multiselect":
1756
- return L(t).length === 0;
1900
+ return G(t).length === 0;
1757
1901
  case "toggle":
1758
- return !ce(t);
1902
+ return !fe(t);
1759
1903
  case "number":
1760
1904
  return t == null || t === "";
1761
1905
  default:
1762
- return Jt(t);
1906
+ return an(t);
1763
1907
  }
1764
1908
  }
1765
- function Be(e, t) {
1909
+ function Ge(e, t) {
1766
1910
  return e.required === !0 || t > 0;
1767
1911
  }
1768
- function uo(e, t) {
1912
+ function Po(e, t) {
1769
1913
  var n, r;
1770
1914
  for (const o of e) {
1771
1915
  const i = (n = o.name) == null ? void 0 : n.trim();
1772
- if (!i || Ae(o.type) || ye(o.type)) continue;
1916
+ if (!i || Fe(o.type) || Ce(o.type)) continue;
1773
1917
  const a = t[i], s = ((r = o.label) == null ? void 0 : r.trim()) || i;
1774
- if (o.required && co(o, a))
1918
+ if (o.required && Eo(o, a))
1775
1919
  return { fieldName: i, label: s, message: `请填写「${s}」` };
1776
- if (o.type === "email" && !Jt(a)) {
1920
+ if (o.type === "email" && !an(a)) {
1777
1921
  const l = String(a).trim();
1778
- if (!Gt(l, Xe))
1922
+ if (!on(l, it))
1779
1923
  return { fieldName: i, label: s, message: `「${s}」格式不正确` };
1780
1924
  }
1781
1925
  if (o.type === "file") {
1782
- const l = o.fileMinCount ?? 0, u = L(a).length;
1783
- if (l > 0 && u < l && Be(o, u))
1926
+ const l = o.fileMinCount ?? 0, u = G(a).length;
1927
+ if (l > 0 && u < l && Ge(o, u))
1784
1928
  return {
1785
1929
  fieldName: i,
1786
1930
  label: s,
@@ -1788,8 +1932,8 @@ function uo(e, t) {
1788
1932
  };
1789
1933
  }
1790
1934
  if (o.type === "resume_multiselect") {
1791
- const l = o.resumeMinCount, u = L(a).length;
1792
- if (l !== void 0 && u < l && Be(o, u))
1935
+ const l = o.resumeMinCount, u = G(a).length;
1936
+ if (l !== void 0 && u < l && Ge(o, u))
1793
1937
  return {
1794
1938
  fieldName: i,
1795
1939
  label: s,
@@ -1797,8 +1941,8 @@ function uo(e, t) {
1797
1941
  };
1798
1942
  }
1799
1943
  if (o.type === "case_multiselect") {
1800
- const l = o.caseMinCount, u = L(a).length;
1801
- if (l !== void 0 && u < l && Be(o, u))
1944
+ const l = o.caseMinCount, u = G(a).length;
1945
+ if (l !== void 0 && u < l && Ge(o, u))
1802
1946
  return {
1803
1947
  fieldName: i,
1804
1948
  label: s,
@@ -1808,20 +1952,20 @@ function uo(e, t) {
1808
1952
  }
1809
1953
  return null;
1810
1954
  }
1811
- const mo = {
1812
- video: yn,
1813
- audio: gn,
1814
- image: hn,
1815
- file: bt,
1816
- spreadsheet: fn,
1817
- document: vt
1955
+ const wo = {
1956
+ video: En,
1957
+ audio: Un,
1958
+ image: Fn,
1959
+ file: Ut,
1960
+ spreadsheet: Mn,
1961
+ document: Ft
1818
1962
  };
1819
- function po({
1963
+ function Ro({
1820
1964
  type: e,
1821
1965
  size: t = 40,
1822
1966
  className: n
1823
1967
  }) {
1824
- const r = mo[e] ?? bt;
1968
+ const r = wo[e] ?? Ut;
1825
1969
  return /* @__PURE__ */ c(
1826
1970
  r,
1827
1971
  {
@@ -1831,7 +1975,7 @@ function po({
1831
1975
  }
1832
1976
  );
1833
1977
  }
1834
- const Yt = "skopon-form-v0_9", fo = /* @__PURE__ */ new Set([
1978
+ const sn = "skopon-form-v0_9", zo = /* @__PURE__ */ new Set([
1835
1979
  "SkoponMedia",
1836
1980
  "SkoponSelect",
1837
1981
  "Image",
@@ -1843,24 +1987,24 @@ const Yt = "skopon-form-v0_9", fo = /* @__PURE__ */ new Set([
1843
1987
  "FileUpload",
1844
1988
  "TextField",
1845
1989
  "Text",
1846
- ...kr()
1847
- ]), ho = /* @__PURE__ */ new Set(["h1", "h2", "h3", "h4", "h5", "caption"]);
1848
- function ue(e) {
1849
- const t = [...ge.components.values()].find((n) => n.name === e);
1990
+ ...Lr()
1991
+ ]), Bo = /* @__PURE__ */ new Set(["h1", "h2", "h3", "h4", "h5", "caption"]);
1992
+ function he(e) {
1993
+ const t = [...Ae.components.values()].find((n) => n.name === e);
1850
1994
  if (!t) throw new Error(`Missing basic catalog component: ${e}`);
1851
1995
  return t.schema;
1852
1996
  }
1853
- function N(e) {
1997
+ function M(e) {
1854
1998
  return typeof e == "string" ? e : "";
1855
1999
  }
1856
- function Wt(e) {
2000
+ function ln(e) {
1857
2001
  return Array.isArray(e) ? e.map((t) => {
1858
2002
  if (!t || typeof t != "object") return null;
1859
2003
  const n = t, r = String(n.value ?? n.label ?? ""), o = String(n.label ?? n.value ?? "");
1860
2004
  return { value: r, label: o };
1861
2005
  }).filter((t) => !!t) : [];
1862
2006
  }
1863
- function _e({
2007
+ function Pe({
1864
2008
  mediaType: e,
1865
2009
  urls: t,
1866
2010
  mediaSize: n,
@@ -1868,8 +2012,8 @@ function _e({
1868
2012
  help: o,
1869
2013
  placeholder: i
1870
2014
  }) {
1871
- const a = r == null ? void 0 : r.trim(), s = o == null ? void 0 : o.trim(), l = Ln(n), u = (i == null ? void 0 : i.trim()) || (e === "image" ? "未设置图片 URL" : e === "video" ? "未设置视频 URL" : "未设置音频 URL");
1872
- return /* @__PURE__ */ C("div", { className: "form-block-preview", children: [
2015
+ const a = r == null ? void 0 : r.trim(), s = o == null ? void 0 : o.trim(), l = tr(n), u = (i == null ? void 0 : i.trim()) || (e === "image" ? "未设置图片 URL" : e === "video" ? "未设置视频 URL" : "未设置音频 URL");
2016
+ return /* @__PURE__ */ N("div", { className: "form-block-preview", children: [
1873
2017
  a ? /* @__PURE__ */ c("div", { className: "form-block-preview-label", children: a }) : null,
1874
2018
  t.length === 0 ? /* @__PURE__ */ c("div", { className: "form-media-preview form-media-preview--empty", children: u }) : /* @__PURE__ */ c("div", { className: l, children: t.map((m, d) => e === "image" ? /* @__PURE__ */ c(
1875
2019
  "img",
@@ -1896,21 +2040,21 @@ function _e({
1896
2040
  },
1897
2041
  `media-${d}`
1898
2042
  )) }),
1899
- s ? /* @__PURE__ */ c(D.Text, { type: "secondary", className: "form-block-preview-help", children: s }) : null
2043
+ s ? /* @__PURE__ */ c(X.Text, { type: "secondary", className: "form-block-preview-help", children: s }) : null
1900
2044
  ] });
1901
2045
  }
1902
- function Te(e, t) {
1903
- const n = Array.isArray(e.urls) ? e.urls.map((r) => String(r).trim()).filter(Boolean) : N(e.url).trim() ? [N(e.url).trim()] : [];
2046
+ function we(e, t) {
2047
+ const n = Array.isArray(e.urls) ? e.urls.map((r) => String(r).trim()).filter(Boolean) : M(e.url).trim() ? [M(e.url).trim()] : [];
1904
2048
  return {
1905
2049
  mediaType: t,
1906
2050
  urls: n,
1907
- mediaSize: le(e.mediaSize),
1908
- label: N(e.label) || N(e.description),
1909
- help: N(e.help),
1910
- placeholder: N(e.placeholder)
2051
+ mediaSize: pe(e.mediaSize),
2052
+ label: M(e.label) || M(e.description),
2053
+ help: M(e.help),
2054
+ placeholder: M(e.placeholder)
1911
2055
  };
1912
2056
  }
1913
- const go = {
2057
+ const qo = {
1914
2058
  name: "SkoponMedia",
1915
2059
  schema: f.object({
1916
2060
  mediaType: f.any().optional(),
@@ -1920,19 +2064,19 @@ const go = {
1920
2064
  help: f.any().optional(),
1921
2065
  placeholder: f.any().optional()
1922
2066
  }).passthrough()
1923
- }, yo = j(go, ({ context: e }) => {
1924
- const t = e.componentModel.properties, n = N(t.mediaType);
1925
- return /* @__PURE__ */ c(_e, { ...Te(t, n === "video" ? "video" : n === "audio" ? "audio" : "image") });
1926
- }), vo = j(
1927
- { name: "Image", schema: ue("Image") },
1928
- ({ context: e }) => /* @__PURE__ */ c(_e, { ...Te(e.componentModel.properties, "image") })
1929
- ), bo = j(
1930
- { name: "Video", schema: ue("Video") },
1931
- ({ context: e }) => /* @__PURE__ */ c(_e, { ...Te(e.componentModel.properties, "video") })
1932
- ), So = j(
1933
- { name: "AudioPlayer", schema: ue("AudioPlayer") },
1934
- ({ context: e }) => /* @__PURE__ */ c(_e, { ...Te(e.componentModel.properties, "audio") })
1935
- ), ko = {
2067
+ }, Oo = J(qo, ({ context: e }) => {
2068
+ const t = e.componentModel.properties, n = M(t.mediaType);
2069
+ return /* @__PURE__ */ c(Pe, { ...we(t, n === "video" ? "video" : n === "audio" ? "audio" : "image") });
2070
+ }), Vo = J(
2071
+ { name: "Image", schema: he("Image") },
2072
+ ({ context: e }) => /* @__PURE__ */ c(Pe, { ...we(e.componentModel.properties, "image") })
2073
+ ), Lo = J(
2074
+ { name: "Video", schema: he("Video") },
2075
+ ({ context: e }) => /* @__PURE__ */ c(Pe, { ...we(e.componentModel.properties, "video") })
2076
+ ), jo = J(
2077
+ { name: "AudioPlayer", schema: he("AudioPlayer") },
2078
+ ({ context: e }) => /* @__PURE__ */ c(Pe, { ...we(e.componentModel.properties, "audio") })
2079
+ ), $o = {
1936
2080
  name: "SkoponSelect",
1937
2081
  schema: f.object({
1938
2082
  label: f.any().optional(),
@@ -1942,87 +2086,93 @@ const go = {
1942
2086
  value: f.any().optional()
1943
2087
  }).passthrough()
1944
2088
  };
1945
- function Ao({ context: e }) {
1946
- const { interactive: t } = K(), { value: n, setValue: r } = G(e), o = e.componentModel.properties, i = N(o.label), a = N(o.placeholder), s = Wt(o.options), l = N(o.mode) === "multiple";
1947
- return B(() => {
1948
- const u = It(n, l);
1949
- u !== null && r(u);
1950
- }, [l, n, r]), /* @__PURE__ */ C("div", { className: "form-block-preview", children: [
1951
- i ? /* @__PURE__ */ c("div", { className: "form-block-preview-label", children: i }) : null,
2089
+ function Do({ context: e }) {
2090
+ const { interactive: t } = ee(), { value: n, setValue: r, setValueSilent: o, fieldName: i } = te(e, "value", {
2091
+ component: "SkoponSelect",
2092
+ changeAction: "select"
2093
+ }), a = e.componentModel.properties, s = M(a.label), l = M(a.placeholder), u = ln(a.options), m = M(a.mode) === "multiple";
2094
+ return w(() => {
2095
+ const d = Lt(n, m);
2096
+ d !== null && o(d);
2097
+ }, [m, n, o]), /* @__PURE__ */ N("div", { className: "form-block-preview", "data-skopon-field": i || void 0, children: [
2098
+ s ? /* @__PURE__ */ c("div", { className: "form-block-preview-label", children: s }) : null,
1952
2099
  /* @__PURE__ */ c(
1953
- qe,
2100
+ Je,
1954
2101
  {
1955
- mode: l ? "multiple" : void 0,
2102
+ mode: m ? "multiple" : void 0,
1956
2103
  disabled: !t,
1957
2104
  allowClear: !0,
1958
2105
  className: "form-block-preview-control",
1959
2106
  style: { width: "100%" },
1960
- placeholder: a || (l ? "请选择多项" : "请选择"),
1961
- options: s,
1962
- value: l ? L(n) : ie(n),
1963
- onChange: (u) => r(l ? u ?? [] : u ?? "")
2107
+ placeholder: l || (m ? "请选择多项" : "请选择"),
2108
+ options: u,
2109
+ value: m ? G(n) : ce(n),
2110
+ onChange: (d) => r(m ? d ?? [] : d ?? "")
1964
2111
  }
1965
2112
  )
1966
2113
  ] });
1967
2114
  }
1968
- const Co = j(
1969
- ko,
1970
- Ao
2115
+ const Ho = J(
2116
+ $o,
2117
+ Do
1971
2118
  );
1972
- function xo({ context: e }) {
1973
- const { interactive: t } = K(), { value: n, setValue: r } = G(e), o = e.componentModel.properties, i = N(o.label), a = N(o.variant) || "mutuallyExclusive", s = N(o.skoponPickerType), l = N(o.placeholder), u = Wt(o.options), d = s === "select" || s === "multiselect" || s === "radio" || s === "checkbox" ? s : a === "multipleSelection" ? "checkbox" : "radio", b = d === "multiselect" || d === "checkbox";
1974
- return B(() => {
1975
- const h = It(n, b);
1976
- h !== null && r(h);
1977
- }, [b, n, r]), /* @__PURE__ */ C("div", { className: "form-block-preview", children: [
1978
- i ? /* @__PURE__ */ c("div", { className: "form-block-preview-label", children: i }) : null,
1979
- d === "select" ? /* @__PURE__ */ c(
1980
- qe,
2119
+ function Ko({ context: e }) {
2120
+ const { interactive: t } = ee(), { value: n, setValue: r, setValueSilent: o, fieldName: i } = te(e, "value", {
2121
+ component: "ChoicePicker",
2122
+ changeAction: "select"
2123
+ }), a = e.componentModel.properties, s = M(a.label), l = M(a.variant) || "mutuallyExclusive", u = M(a.skoponPickerType), m = M(a.placeholder), d = ln(a.options), g = u === "select" || u === "multiselect" || u === "radio" || u === "checkbox" ? u : l === "multipleSelection" ? "checkbox" : "radio", k = g === "multiselect" || g === "checkbox";
2124
+ return w(() => {
2125
+ const v = Lt(n, k);
2126
+ v !== null && o(v);
2127
+ }, [k, n, o]), /* @__PURE__ */ N("div", { className: "form-block-preview", "data-skopon-field": i || void 0, children: [
2128
+ s ? /* @__PURE__ */ c("div", { className: "form-block-preview-label", children: s }) : null,
2129
+ g === "select" ? /* @__PURE__ */ c(
2130
+ Je,
1981
2131
  {
1982
2132
  disabled: !t,
1983
2133
  allowClear: !0,
1984
2134
  className: "form-block-preview-control",
1985
2135
  style: { width: "100%" },
1986
- placeholder: l || "请选择",
1987
- options: u,
1988
- value: ie(n),
1989
- onChange: (h) => r(h ?? "")
2136
+ placeholder: m || "请选择",
2137
+ options: d,
2138
+ value: ce(n),
2139
+ onChange: (v) => r(v ?? "")
1990
2140
  }
1991
- ) : d === "multiselect" ? /* @__PURE__ */ c(
1992
- qe,
2141
+ ) : g === "multiselect" ? /* @__PURE__ */ c(
2142
+ Je,
1993
2143
  {
1994
2144
  mode: "multiple",
1995
2145
  disabled: !t,
1996
2146
  allowClear: !0,
1997
2147
  className: "form-block-preview-control",
1998
2148
  style: { width: "100%" },
1999
- placeholder: l || "请选择多项",
2000
- options: u,
2001
- value: L(n),
2002
- onChange: (h) => r(h ?? [])
2149
+ placeholder: m || "请选择多项",
2150
+ options: d,
2151
+ value: G(n),
2152
+ onChange: (v) => r(v ?? [])
2003
2153
  }
2004
- ) : d === "checkbox" ? /* @__PURE__ */ c(
2005
- on.Group,
2154
+ ) : g === "checkbox" ? /* @__PURE__ */ c(
2155
+ bn.Group,
2006
2156
  {
2007
2157
  disabled: !t,
2008
2158
  className: "form-block-preview-control",
2009
- options: u,
2010
- value: L(n),
2011
- onChange: (h) => r(h)
2159
+ options: d,
2160
+ value: G(n),
2161
+ onChange: (v) => r(v)
2012
2162
  }
2013
2163
  ) : /* @__PURE__ */ c(
2014
- an.Group,
2164
+ kn.Group,
2015
2165
  {
2016
2166
  disabled: !t,
2017
2167
  className: "form-block-preview-control",
2018
- options: u,
2019
- value: ie(n),
2020
- onChange: (h) => r(h.target.value)
2168
+ options: d,
2169
+ value: ce(n),
2170
+ onChange: (v) => r(v.target.value)
2021
2171
  }
2022
2172
  )
2023
2173
  ] });
2024
2174
  }
2025
- const _o = j(
2175
+ const Go = J(
2026
2176
  {
2027
2177
  name: "ChoicePicker",
2028
2178
  schema: f.object({
@@ -2034,80 +2184,88 @@ const _o = j(
2034
2184
  placeholder: f.any().optional()
2035
2185
  }).passthrough()
2036
2186
  },
2037
- xo
2187
+ Ko
2038
2188
  );
2039
- function To({ context: e }) {
2040
- const { interactive: t } = K(), { value: n, setValue: r } = G(e), o = e.componentModel.properties, i = N(o.label);
2041
- return /* @__PURE__ */ C("div", { className: "form-block-preview", children: [
2042
- i ? /* @__PURE__ */ c("div", { className: "form-block-preview-label", children: i }) : null,
2189
+ function Jo({ context: e }) {
2190
+ const { interactive: t } = ee(), { value: n, setValue: r, fieldName: o } = te(e, "value", {
2191
+ component: "CheckBox",
2192
+ changeAction: "change"
2193
+ }), i = e.componentModel.properties, a = M(i.label);
2194
+ return /* @__PURE__ */ N("div", { className: "form-block-preview", "data-skopon-field": o || void 0, children: [
2195
+ a ? /* @__PURE__ */ c("div", { className: "form-block-preview-label", children: a }) : null,
2043
2196
  /* @__PURE__ */ c(
2044
- sn,
2197
+ An,
2045
2198
  {
2046
2199
  disabled: !t,
2047
2200
  className: "form-block-preview-control",
2048
- checked: ce(n),
2049
- onChange: (a) => r(a)
2201
+ checked: fe(n),
2202
+ onChange: (s) => r(s)
2050
2203
  }
2051
2204
  )
2052
2205
  ] });
2053
2206
  }
2054
- const Io = j(
2055
- { name: "CheckBox", schema: ue("CheckBox") },
2056
- To
2207
+ const Wo = J(
2208
+ { name: "CheckBox", schema: he("CheckBox") },
2209
+ Jo
2057
2210
  );
2058
- function No(e, t, n) {
2059
- const r = ie(e);
2211
+ function Yo(e, t, n) {
2212
+ const r = ce(e);
2060
2213
  if (!r) return;
2061
2214
  if (!t && n) {
2062
- const i = ut(r, "HH:mm", !0);
2215
+ const i = At(r, "HH:mm", !0);
2063
2216
  return i.isValid() ? i : void 0;
2064
2217
  }
2065
- const o = ut(r);
2218
+ const o = At(r);
2066
2219
  return o.isValid() ? o : void 0;
2067
2220
  }
2068
- function Mo({ context: e }) {
2069
- const { interactive: t } = K(), { value: n, setValue: r } = G(e), o = e.componentModel.properties, i = N(o.label), a = N(o.placeholder), s = o.enableDate === !0, l = o.enableTime === !0, u = No(n, s, l), m = (d) => {
2070
- if (!d) {
2221
+ function Qo({ context: e }) {
2222
+ const { interactive: t } = ee(), { value: n, setValue: r, fieldName: o, reportFocus: i } = te(e, "value", {
2223
+ component: "DateTimeInput",
2224
+ changeAction: "change"
2225
+ }), a = e.componentModel.properties, s = M(a.label), l = M(a.placeholder), u = a.enableDate === !0, m = a.enableTime === !0, d = Yo(n, u, m), y = (g) => {
2226
+ if (!g) {
2071
2227
  r("");
2072
2228
  return;
2073
2229
  }
2074
- if (!s && l) {
2075
- r(d.format("HH:mm"));
2230
+ if (!u && m) {
2231
+ r(g.format("HH:mm"));
2076
2232
  return;
2077
2233
  }
2078
- if (s && l) {
2079
- r(d.format("YYYY-MM-DDTHH:mm"));
2234
+ if (u && m) {
2235
+ r(g.format("YYYY-MM-DDTHH:mm"));
2080
2236
  return;
2081
2237
  }
2082
- r(d.format("YYYY-MM-DD"));
2238
+ r(g.format("YYYY-MM-DD"));
2083
2239
  };
2084
- return /* @__PURE__ */ C("div", { className: "form-block-preview", children: [
2085
- i ? /* @__PURE__ */ c("div", { className: "form-block-preview-label", children: i }) : null,
2086
- !s && l ? /* @__PURE__ */ c(
2087
- ln,
2240
+ return /* @__PURE__ */ N("div", { className: "form-block-preview", "data-skopon-field": o || void 0, children: [
2241
+ s ? /* @__PURE__ */ c("div", { className: "form-block-preview-label", children: s }) : null,
2242
+ !u && m ? /* @__PURE__ */ c(
2243
+ Cn,
2088
2244
  {
2089
2245
  disabled: !t,
2090
2246
  className: "form-block-preview-control",
2091
2247
  style: { width: "100%" },
2092
- placeholder: a || "选择时间",
2093
- value: u,
2094
- onChange: m
2248
+ placeholder: l || "选择时间",
2249
+ value: d,
2250
+ onChange: y,
2251
+ onFocus: i
2095
2252
  }
2096
2253
  ) : /* @__PURE__ */ c(
2097
- cn,
2254
+ _n,
2098
2255
  {
2099
- showTime: s && l,
2256
+ showTime: u && m,
2100
2257
  disabled: !t,
2101
2258
  className: "form-block-preview-control",
2102
2259
  style: { width: "100%" },
2103
- placeholder: a || (s && l ? "选择日期时间" : "选择日期"),
2104
- value: u,
2105
- onChange: m
2260
+ placeholder: l || (u && m ? "选择日期时间" : "选择日期"),
2261
+ value: d,
2262
+ onChange: y,
2263
+ onFocus: i
2106
2264
  }
2107
2265
  )
2108
2266
  ] });
2109
2267
  }
2110
- const Fo = j(
2268
+ const Xo = J(
2111
2269
  {
2112
2270
  name: "DateTimeInput",
2113
2271
  schema: f.object({
@@ -2120,8 +2278,8 @@ const Fo = j(
2120
2278
  max: f.any().optional()
2121
2279
  }).passthrough()
2122
2280
  },
2123
- Mo
2124
- ), Uo = {
2281
+ Qo
2282
+ ), Zo = {
2125
2283
  name: "FileUpload",
2126
2284
  schema: f.object({
2127
2285
  label: f.any().optional(),
@@ -2133,130 +2291,141 @@ const Fo = j(
2133
2291
  value: f.any().optional()
2134
2292
  }).passthrough()
2135
2293
  };
2136
- function Po({ context: e }) {
2137
- const { interactive: t } = K(), { value: n, setValue: r } = G(e), o = e.componentModel.properties, i = N(o.label), a = N(o.accept), s = Array.isArray(o.fileAcceptTypes) ? o.fileAcceptTypes.map(String) : void 0, l = a ? a.split(",").map((p) => p.trim()).filter(Boolean) : void 0, u = En(s, l), m = typeof o.filePlaceholderIcon == "string" && ["video", "audio", "image", "file", "spreadsheet", "document"].includes(
2138
- o.filePlaceholderIcon
2139
- ) ? o.filePlaceholderIcon : "document", d = typeof o.minCount == "number" ? Math.max(0, o.minCount) : 0, b = typeof o.maxCount == "number" ? o.maxCount : 1, h = b > 0, x = L(n), _ = h && x.length >= b, y = x.length < d;
2140
- return /* @__PURE__ */ C("div", { className: "form-block-preview", children: [
2141
- i ? /* @__PURE__ */ c("div", { className: "form-block-preview-label", children: i }) : null,
2142
- /* @__PURE__ */ C(
2143
- Ne.Dragger,
2294
+ function ei({ context: e }) {
2295
+ const { interactive: t } = ee(), { value: n, setValue: r, fieldName: o } = te(e, "value", {
2296
+ component: "FileUpload",
2297
+ changeAction: "change"
2298
+ }), i = e.componentModel.properties, a = M(i.label), s = M(i.accept), l = Array.isArray(i.fileAcceptTypes) ? i.fileAcceptTypes.map(String) : void 0, u = s ? s.split(",").map((p) => p.trim()).filter(Boolean) : void 0, m = Jn(l, u), d = typeof i.filePlaceholderIcon == "string" && ["video", "audio", "image", "file", "spreadsheet", "document"].includes(
2299
+ i.filePlaceholderIcon
2300
+ ) ? i.filePlaceholderIcon : "document", y = typeof i.minCount == "number" ? Math.max(0, i.minCount) : 0, g = typeof i.maxCount == "number" ? i.maxCount : 1, k = g > 0, v = G(n), C = k && v.length >= g, h = v.length < y;
2301
+ return /* @__PURE__ */ N("div", { className: "form-block-preview", "data-skopon-field": o || void 0, children: [
2302
+ a ? /* @__PURE__ */ c("div", { className: "form-block-preview-label", children: a }) : null,
2303
+ /* @__PURE__ */ N(
2304
+ qe.Dragger,
2144
2305
  {
2145
- disabled: !t || _,
2146
- accept: Pn(s, l),
2306
+ disabled: !t || C,
2307
+ accept: Gn(l, u),
2147
2308
  className: "form-file-upload-preview",
2148
- showUploadList: t && x.length > 0,
2149
- fileList: t ? x.map((p, v) => ({
2150
- uid: `${v}-${p}`,
2309
+ showUploadList: t && v.length > 0,
2310
+ fileList: t ? v.map((p, S) => ({
2311
+ uid: `${S}-${p}`,
2151
2312
  name: p,
2152
2313
  status: "done"
2153
2314
  })) : [],
2154
2315
  beforeUpload: (p) => {
2155
- if (!t) return Ne.LIST_IGNORE;
2156
- const v = L(pt(e));
2157
- if (h && v.length >= b) return Ne.LIST_IGNORE;
2158
- const A = h ? [...v, p.name].slice(0, b) : [...v, p.name];
2316
+ if (!t) return qe.LIST_IGNORE;
2317
+ const S = G(xt(e));
2318
+ if (k && S.length >= g) return qe.LIST_IGNORE;
2319
+ const A = k ? [...S, p.name].slice(0, g) : [...S, p.name];
2159
2320
  return r(A), !1;
2160
2321
  },
2161
2322
  onRemove: (p) => {
2162
- const v = L(pt(e)), A = /^(\d+)-/.exec(p.uid ?? ""), g = A ? Number(A[1]) : -1, I = g >= 0 && g < v.length ? v.filter((U, V) => V !== g) : v.filter((U) => U !== p.name);
2163
- if (I.length < d) return !1;
2164
- r(I);
2323
+ const S = G(xt(e)), A = /^(\d+)-/.exec(p.uid ?? ""), x = A ? Number(A[1]) : -1, _ = x >= 0 && x < S.length ? S.filter((z, T) => T !== x) : S.filter((z) => z !== p.name);
2324
+ if (_.length < y) return !1;
2325
+ r(_);
2165
2326
  },
2166
2327
  children: [
2167
- /* @__PURE__ */ c("p", { className: "form-file-upload-preview-icon", children: /* @__PURE__ */ c(po, { type: m, size: 40 }) }),
2328
+ /* @__PURE__ */ c("p", { className: "form-file-upload-preview-icon", children: /* @__PURE__ */ c(Ro, { type: d, size: 40 }) }),
2168
2329
  /* @__PURE__ */ c("p", { className: "form-file-upload-preview-text", children: "点击或拖拽文件到此处上传" })
2169
2330
  ]
2170
2331
  }
2171
2332
  ),
2172
- /* @__PURE__ */ C(D.Text, { type: "secondary", className: "form-block-preview-help", children: [
2333
+ /* @__PURE__ */ N(X.Text, { type: "secondary", className: "form-block-preview-help", children: [
2173
2334
  "允许:",
2174
- u ?? "全部类型",
2175
- d > 0 ? `;至少 ${d} 个文件` : "",
2176
- h ? `;最多 ${b} 个文件` : "",
2335
+ m ?? "全部类型",
2336
+ y > 0 ? `;至少 ${y} 个文件` : "",
2337
+ k ? `;最多 ${g} 个文件` : "",
2177
2338
  ";当前仅收集文件名(不含文件内容,需宿主另行上传)",
2178
- y && t ? `(当前 ${x.length} 个,未达下限)` : ""
2339
+ h && t ? `(当前 ${v.length} 个,未达下限)` : ""
2179
2340
  ] })
2180
2341
  ] });
2181
2342
  }
2182
- const Eo = j(
2183
- Uo,
2184
- Po
2343
+ const ti = J(
2344
+ Zo,
2345
+ ei
2185
2346
  );
2186
- function zo({ context: e }) {
2187
- const { interactive: t } = K(), { value: n, setValue: r } = G(e), o = e.componentModel.properties, i = N(o.label), a = N(o.placeholder), s = N(o.variant) || "shortText", l = N(o.validationRegexp), u = ie(n) ?? "", m = !t, [d, b] = P(""), h = (y) => {
2188
- if (!l || !y.trim()) {
2189
- b("");
2347
+ function ni({ context: e }) {
2348
+ const { interactive: t } = ee(), { value: n, setValue: r, fieldName: o, reportFocus: i } = te(e, "value", {
2349
+ component: "TextField",
2350
+ changeAction: "change",
2351
+ debounceChange: !0
2352
+ }), a = e.componentModel.properties, s = M(a.label), l = M(a.placeholder), u = M(a.variant) || "shortText", m = M(a.validationRegexp), d = ce(n) ?? "", y = !t, [g, k] = E(""), v = (p) => {
2353
+ if (!m || !p.trim()) {
2354
+ k("");
2190
2355
  return;
2191
2356
  }
2192
- b(Gt(y, l) ? "" : "格式不正确");
2357
+ k(on(p, m) ? "" : "格式不正确");
2193
2358
  };
2194
- B(() => {
2195
- h(u);
2196
- }, [l, u]);
2197
- const x = "form-block-preview-control";
2198
- let _;
2199
- if (s === "longText")
2200
- _ = /* @__PURE__ */ c(
2201
- Me.TextArea,
2359
+ w(() => {
2360
+ v(d);
2361
+ }, [m, d]);
2362
+ const C = "form-block-preview-control";
2363
+ let h;
2364
+ if (u === "longText")
2365
+ h = /* @__PURE__ */ c(
2366
+ Oe.TextArea,
2202
2367
  {
2203
- disabled: m,
2204
- className: x,
2205
- placeholder: a || "长文本回答...",
2368
+ disabled: y,
2369
+ className: C,
2370
+ placeholder: l || "长文本回答...",
2206
2371
  autoSize: { minRows: 2, maxRows: 6 },
2207
- value: u,
2208
- status: d ? "error" : void 0,
2209
- onChange: (y) => {
2210
- const p = y.target.value;
2211
- r(p), h(p);
2372
+ value: d,
2373
+ status: g ? "error" : void 0,
2374
+ onChange: (p) => {
2375
+ const S = p.target.value;
2376
+ r(S), v(S);
2212
2377
  },
2213
- onBlur: (y) => h(y.target.value)
2378
+ onFocus: i,
2379
+ onBlur: (p) => v(p.target.value)
2214
2380
  }
2215
2381
  );
2216
- else if (s === "number") {
2217
- const y = u && Number.isFinite(Number(u)) ? Number(u) : void 0;
2218
- _ = /* @__PURE__ */ c(
2219
- un,
2382
+ else if (u === "number") {
2383
+ const p = d && Number.isFinite(Number(d)) ? Number(d) : void 0;
2384
+ h = /* @__PURE__ */ c(
2385
+ xn,
2220
2386
  {
2221
- disabled: m,
2222
- className: x,
2387
+ disabled: y,
2388
+ className: C,
2223
2389
  style: { width: "100%" },
2224
- placeholder: a || "数字",
2225
- value: y,
2226
- onChange: (p) => r(p == null ? "" : String(p))
2390
+ placeholder: l || "数字",
2391
+ value: p,
2392
+ onChange: (S) => r(S == null ? "" : String(S)),
2393
+ onFocus: i
2227
2394
  }
2228
2395
  );
2229
- } else s === "obscured" ? _ = /* @__PURE__ */ c(
2230
- Me.Password,
2396
+ } else u === "obscured" ? h = /* @__PURE__ */ c(
2397
+ Oe.Password,
2231
2398
  {
2232
- disabled: m,
2233
- className: x,
2234
- placeholder: a,
2235
- value: u,
2236
- onChange: (y) => r(y.target.value)
2399
+ disabled: y,
2400
+ className: C,
2401
+ placeholder: l,
2402
+ value: d,
2403
+ onChange: (p) => r(p.target.value),
2404
+ onFocus: i
2237
2405
  }
2238
- ) : _ = /* @__PURE__ */ c(
2239
- Me,
2406
+ ) : h = /* @__PURE__ */ c(
2407
+ Oe,
2240
2408
  {
2241
- disabled: m,
2242
- className: x,
2243
- placeholder: a,
2244
- value: u,
2245
- status: d ? "error" : void 0,
2246
- onChange: (y) => {
2247
- const p = y.target.value;
2248
- r(p), h(p);
2409
+ disabled: y,
2410
+ className: C,
2411
+ placeholder: l,
2412
+ value: d,
2413
+ status: g ? "error" : void 0,
2414
+ onChange: (p) => {
2415
+ const S = p.target.value;
2416
+ r(S), v(S);
2249
2417
  },
2250
- onBlur: (y) => h(y.target.value)
2418
+ onFocus: i,
2419
+ onBlur: (p) => v(p.target.value)
2251
2420
  }
2252
2421
  );
2253
- return /* @__PURE__ */ C("div", { className: "form-block-preview", children: [
2254
- i ? /* @__PURE__ */ c("div", { className: "form-block-preview-label", children: i }) : null,
2255
- _,
2256
- d ? /* @__PURE__ */ c(D.Text, { type: "danger", className: "form-block-preview-help", children: d }) : null
2422
+ return /* @__PURE__ */ N("div", { className: "form-block-preview", "data-skopon-field": o || void 0, children: [
2423
+ s ? /* @__PURE__ */ c("div", { className: "form-block-preview-label", children: s }) : null,
2424
+ h,
2425
+ g ? /* @__PURE__ */ c(X.Text, { type: "danger", className: "form-block-preview-help", children: g }) : null
2257
2426
  ] });
2258
2427
  }
2259
- const Ro = j(
2428
+ const ri = J(
2260
2429
  {
2261
2430
  name: "TextField",
2262
2431
  schema: f.object({
@@ -2267,37 +2436,37 @@ const Ro = j(
2267
2436
  value: f.any().optional()
2268
2437
  }).passthrough()
2269
2438
  },
2270
- zo
2439
+ ni
2271
2440
  );
2272
- function wo({ context: e }) {
2273
- const t = e.componentModel.properties, n = N(t.text), r = N(t.variant) || "body";
2274
- return ho.has(r) ? r === "caption" ? /* @__PURE__ */ c(D.Text, { type: "secondary", className: "form-block-preview-paragraph", children: /* @__PURE__ */ c("em", { children: n }) }) : /* @__PURE__ */ c(r, { className: "form-block-preview-heading", children: n }) : /* @__PURE__ */ c(D.Paragraph, { className: "form-block-preview-paragraph", children: n });
2441
+ function oi({ context: e }) {
2442
+ const t = e.componentModel.properties, n = M(t.text), r = M(t.variant) || "body";
2443
+ return Bo.has(r) ? r === "caption" ? /* @__PURE__ */ c(X.Text, { type: "secondary", className: "form-block-preview-paragraph", children: /* @__PURE__ */ c("em", { children: n }) }) : /* @__PURE__ */ c(r, { className: "form-block-preview-heading", children: n }) : /* @__PURE__ */ c(X.Paragraph, { className: "form-block-preview-paragraph", children: n });
2275
2444
  }
2276
- const Bo = j(
2277
- { name: "Text", schema: ue("Text") },
2278
- wo
2445
+ const ii = J(
2446
+ { name: "Text", schema: he("Text") },
2447
+ oi
2279
2448
  );
2280
- function Xt() {
2449
+ function cn() {
2281
2450
  const t = [
2282
- ...[...ge.components.values()].filter(
2283
- (r) => !fo.has(r.name)
2451
+ ...[...Ae.components.values()].filter(
2452
+ (r) => !zo.has(r.name)
2284
2453
  ),
2285
- yo,
2286
- Co,
2287
- vo,
2288
- bo,
2289
- So,
2290
- _o,
2291
- Io,
2292
- Fo,
2293
- Eo,
2294
- Ro,
2295
- Bo,
2296
- ...Sr()
2297
- ], n = [...ge.functions.values()];
2298
- return new vn(Yt, t, n, ge.themeSchema);
2299
- }
2300
- const H = {
2454
+ Oo,
2455
+ Ho,
2456
+ Vo,
2457
+ Lo,
2458
+ jo,
2459
+ Go,
2460
+ Wo,
2461
+ Xo,
2462
+ ti,
2463
+ ri,
2464
+ ii,
2465
+ ...Vr()
2466
+ ], n = [...Ae.functions.values()];
2467
+ return new Pn(sn, t, n, Ae.themeSchema);
2468
+ }
2469
+ const Z = {
2301
2470
  jade9: "#29a383",
2302
2471
  jade10: "#26997b",
2303
2472
  jade11: "#208368",
@@ -2309,20 +2478,20 @@ const H = {
2309
2478
  primaryHover: "#26997b",
2310
2479
  primaryActive: "#1d3b31",
2311
2480
  onPrimary: "#ffffff"
2312
- }, qo = {
2481
+ }, ai = {
2313
2482
  cssVar: { key: "vidtempl" },
2314
2483
  token: {
2315
- colorPrimary: H.primarySolid,
2316
- colorPrimaryHover: H.primaryHover,
2317
- colorPrimaryActive: H.primaryActive,
2318
- colorLink: H.primary,
2319
- colorLinkHover: H.primaryHover,
2320
- colorSuccess: H.jade9,
2484
+ colorPrimary: Z.primarySolid,
2485
+ colorPrimaryHover: Z.primaryHover,
2486
+ colorPrimaryActive: Z.primaryActive,
2487
+ colorLink: Z.primary,
2488
+ colorLinkHover: Z.primaryHover,
2489
+ colorSuccess: Z.jade9,
2321
2490
  colorWarning: "#f5a623",
2322
2491
  gold6: "#f5a623",
2323
2492
  gold7: "#e6951a",
2324
2493
  colorError: "#e5484d",
2325
- colorInfo: H.primary,
2494
+ colorInfo: Z.primary,
2326
2495
  colorBgLayout: "#f9f9f9",
2327
2496
  colorBgContainer: "#ffffff",
2328
2497
  colorBgElevated: "#ffffff",
@@ -2382,7 +2551,7 @@ const H = {
2382
2551
  },
2383
2552
  Tag: {
2384
2553
  defaultBg: "#e6f7ed",
2385
- defaultColor: H.primary,
2554
+ defaultColor: Z.primary,
2386
2555
  fontSizeSM: 13
2387
2556
  },
2388
2557
  Form: {
@@ -2394,14 +2563,14 @@ const H = {
2394
2563
  }
2395
2564
  }
2396
2565
  };
2397
- function Y({
2566
+ function ue({
2398
2567
  children: e,
2399
2568
  locale: t,
2400
2569
  theme: n
2401
2570
  }) {
2402
- return /* @__PURE__ */ c(mn, { theme: n ?? qo, locale: t, children: e });
2571
+ return /* @__PURE__ */ c(Tn, { theme: n ?? ai, locale: t, children: e });
2403
2572
  }
2404
- const Oo = tn(
2573
+ const si = yn(
2405
2574
  function({
2406
2575
  doc: t,
2407
2576
  surfaceId: n = "skopon-form",
@@ -2412,57 +2581,67 @@ const Oo = tn(
2412
2581
  caseSearch: s = null,
2413
2582
  wrapProvider: l = !0
2414
2583
  }, u) {
2415
- B(() => {
2416
- Ct(), At();
2584
+ w(() => {
2585
+ Rt(), wt();
2417
2586
  }, []);
2418
- const m = O(null), d = O(i);
2587
+ const m = P(null), d = P(i);
2419
2588
  d.current = i;
2420
- const b = w(() => {
2421
- if (De(t)) return "";
2589
+ const y = R(() => {
2590
+ if (et(t)) return "";
2422
2591
  try {
2423
2592
  return JSON.stringify(t);
2424
2593
  } catch {
2425
2594
  return String(t);
2426
2595
  }
2427
- }, [t]), h = w(() => {
2428
- if (!b)
2596
+ }, [t]), g = R(() => {
2597
+ if (!y)
2429
2598
  return { surfaces: [], processor: null };
2430
2599
  try {
2431
- const p = JSON.parse(b), v = new kt([Xt()]), A = Ur(p, {
2600
+ const h = JSON.parse(y), p = new Pt([cn()]), S = Qr(h, {
2432
2601
  surfaceId: n,
2433
- catalogId: Yt
2602
+ catalogId: sn
2434
2603
  });
2435
- return v.processMessages(A), {
2436
- surfaces: Array.from(v.model.surfacesMap.values()),
2437
- processor: v
2604
+ return p.processMessages(S), {
2605
+ surfaces: Array.from(p.model.surfacesMap.values()),
2606
+ processor: p
2438
2607
  };
2439
- } catch (p) {
2440
- return console.error("[SkoponFormRenderer] 渲染 A2UI surface 失败", p), { surfaces: [], processor: null };
2608
+ } catch (h) {
2609
+ return console.error("[SkoponFormRenderer] 渲染 A2UI surface 失败", h), { surfaces: [], processor: null };
2441
2610
  }
2442
- }, [b, n]), { surfaces: x, processor: _ } = h;
2443
- if (m.current = _, nn(
2611
+ }, [y, n]), { surfaces: k, processor: v } = g;
2612
+ if (m.current = v, vn(
2444
2613
  u,
2445
2614
  () => ({
2446
- getValues(p) {
2447
- const v = m.current;
2448
- if (!v) return {};
2449
- const A = (p ?? d.current).map((g) => g.trim()).filter(Boolean);
2450
- return Rr(v, n, A);
2615
+ getValues(h) {
2616
+ const p = m.current;
2617
+ if (!p) return {};
2618
+ const S = (h ?? d.current).map((A) => A.trim()).filter(Boolean);
2619
+ return to(p, n, S);
2620
+ },
2621
+ setValues(h) {
2622
+ const p = m.current;
2623
+ if (!p) return;
2624
+ const S = p.model.surfacesMap.get(n);
2625
+ if (S)
2626
+ for (const [A, x] of Object.entries(h)) {
2627
+ const _ = A.trim();
2628
+ _ && S.dataModel.set(`/${_}`, x);
2629
+ }
2451
2630
  }
2452
2631
  }),
2453
2632
  [n]
2454
- ), x.length === 0) {
2455
- const p = /* @__PURE__ */ c(je, { resumeSearch: a, children: /* @__PURE__ */ c(Le, { caseSearch: s, children: /* @__PURE__ */ c(Oe, { interactive: o, children: r }) }) });
2456
- return l ? /* @__PURE__ */ c(Y, { children: p }) : p;
2633
+ ), k.length === 0) {
2634
+ const h = /* @__PURE__ */ c(Qe, { resumeSearch: a, children: /* @__PURE__ */ c(Ye, { caseSearch: s, children: /* @__PURE__ */ c(We, { interactive: o, children: r }) }) });
2635
+ return l ? /* @__PURE__ */ c(ue, { children: h }) : h;
2457
2636
  }
2458
- const y = /* @__PURE__ */ c(je, { resumeSearch: a, children: /* @__PURE__ */ c(Le, { caseSearch: s, children: /* @__PURE__ */ c(Oe, { interactive: o, children: /* @__PURE__ */ c("div", { className: "a2ui-surface a2ui-container", children: x.map((p) => /* @__PURE__ */ c(St, { surface: p }, p.id)) }) }) }) });
2459
- return l ? /* @__PURE__ */ c(Y, { children: y }) : y;
2637
+ const C = /* @__PURE__ */ c(Qe, { resumeSearch: a, children: /* @__PURE__ */ c(Ye, { caseSearch: s, children: /* @__PURE__ */ c(We, { interactive: o, children: /* @__PURE__ */ c("div", { className: "a2ui-surface a2ui-container", children: k.map((h) => /* @__PURE__ */ c(Et, { surface: h }, h.id)) }) }) }) });
2638
+ return l ? /* @__PURE__ */ c(ue, { children: C }) : C;
2460
2639
  }
2461
2640
  );
2462
- function he() {
2463
- return new kt([Xt()]);
2641
+ function ke() {
2642
+ return new Pt([cn()]);
2464
2643
  }
2465
- function oi({
2644
+ function wi({
2466
2645
  messages: e,
2467
2646
  surfaceId: t = "skopon-form-stream",
2468
2647
  emptyHint: n = null,
@@ -2470,82 +2649,244 @@ function oi({
2470
2649
  resumeSearch: o = null,
2471
2650
  caseSearch: i = null
2472
2651
  }) {
2473
- B(() => {
2474
- Ct(), At();
2652
+ w(() => {
2653
+ Rt(), wt();
2475
2654
  }, []);
2476
- const a = O(null);
2477
- a.current === null && (a.current = he());
2478
- const s = O(0), l = O(""), u = O(!0), m = O(t);
2479
- function d(p, v) {
2480
- a.current = p, s.current = v.length, l.current = JSON.stringify(v), u.current && (x(p), y(Array.from(p.model.surfacesMap.values())));
2655
+ const a = P(null);
2656
+ a.current === null && (a.current = ke());
2657
+ const s = P(0), l = P(""), u = P(!0), m = P(t);
2658
+ function d(h, p) {
2659
+ a.current = h, s.current = p.length, l.current = JSON.stringify(p), u.current && (k(h), C(Array.from(h.model.surfacesMap.values())));
2481
2660
  }
2482
- function b(p, v) {
2483
- if (v <= 0) return !1;
2484
- const A = JSON.stringify(p.slice(0, v)), g = l.current;
2485
- if (!g) return !0;
2661
+ function y(h, p) {
2662
+ if (p <= 0) return !1;
2663
+ const S = JSON.stringify(h.slice(0, p)), A = l.current;
2664
+ if (!A) return !0;
2486
2665
  try {
2487
- const I = JSON.parse(g);
2488
- return JSON.stringify(I.slice(0, v)) !== A;
2666
+ const x = JSON.parse(A);
2667
+ return JSON.stringify(x.slice(0, p)) !== S;
2489
2668
  } catch {
2490
2669
  return !0;
2491
2670
  }
2492
2671
  }
2493
- const [h, x] = P(
2672
+ const [g, k] = E(
2494
2673
  () => a.current
2495
- ), [_, y] = P(
2674
+ ), [v, C] = E(
2496
2675
  () => Array.from(
2497
2676
  a.current.model.surfacesMap.values()
2498
2677
  )
2499
2678
  );
2500
- return B(() => (u.current = !0, () => {
2679
+ return w(() => (u.current = !0, () => {
2501
2680
  u.current = !1;
2502
- }), []), B(() => {
2503
- a.current = h;
2504
- }, [h]), B(() => {
2505
- const p = () => {
2506
- u.current && y(Array.from(h.model.surfacesMap.values()));
2507
- }, v = h.onSurfaceCreated(p), A = h.onSurfaceDeleted(p);
2681
+ }), []), w(() => {
2682
+ a.current = g;
2683
+ }, [g]), w(() => {
2684
+ const h = () => {
2685
+ u.current && C(Array.from(g.model.surfacesMap.values()));
2686
+ }, p = g.onSurfaceCreated(h), S = g.onSurfaceDeleted(h);
2508
2687
  return () => {
2509
- v.unsubscribe(), A.unsubscribe();
2688
+ p.unsubscribe(), S.unsubscribe();
2510
2689
  };
2511
- }, [h]), B(() => {
2512
- let p = !1;
2513
- const v = m.current !== t;
2514
- if (m.current = t, v) {
2515
- const U = he();
2516
- return Array.isArray(e) && e.length > 0 ? (U.processMessages(e), p || d(U, e)) : (a.current = U, s.current = 0, l.current = "", p || (x(U), y([]))), () => {
2517
- p = !0;
2690
+ }, [g]), w(() => {
2691
+ let h = !1;
2692
+ const p = m.current !== t;
2693
+ if (m.current = t, p) {
2694
+ const _ = ke();
2695
+ return Array.isArray(e) && e.length > 0 ? (_.processMessages(e), h || d(_, e)) : (a.current = _, s.current = 0, l.current = "", h || (k(_), C([]))), () => {
2696
+ h = !0;
2518
2697
  };
2519
2698
  }
2520
2699
  if (!Array.isArray(e) || e.length === 0) {
2521
2700
  if (s.current > 0) {
2522
- const U = he();
2523
- a.current = U, s.current = 0, l.current = "", p || (x(U), y([]));
2701
+ const _ = ke();
2702
+ a.current = _, s.current = 0, l.current = "", h || (k(_), C([]));
2524
2703
  }
2525
2704
  return () => {
2526
- p = !0;
2705
+ h = !0;
2527
2706
  };
2528
2707
  }
2529
- const A = a.current, g = s.current;
2530
- if (e.length < g || b(e, g)) {
2531
- const U = he();
2532
- return U.processMessages(e), p || d(U, e), () => {
2533
- p = !0;
2708
+ const S = a.current, A = s.current;
2709
+ if (e.length < A || y(e, A)) {
2710
+ const _ = ke();
2711
+ return _.processMessages(e), h || d(_, e), () => {
2712
+ h = !0;
2534
2713
  };
2535
2714
  }
2536
- const I = e.slice(g);
2537
- return I.length === 0 ? () => {
2538
- p = !0;
2539
- } : (A.processMessages(I), s.current = e.length, l.current = JSON.stringify(e), p || y(Array.from(A.model.surfacesMap.values())), () => {
2540
- p = !0;
2715
+ const x = e.slice(A);
2716
+ return x.length === 0 ? () => {
2717
+ h = !0;
2718
+ } : (S.processMessages(x), s.current = e.length, l.current = JSON.stringify(e), h || C(Array.from(S.model.surfacesMap.values())), () => {
2719
+ h = !0;
2541
2720
  });
2542
- }, [e, t]), _.length === 0 ? /* @__PURE__ */ c(Y, { children: n }) : /* @__PURE__ */ c(Y, { children: /* @__PURE__ */ c(je, { resumeSearch: o, children: /* @__PURE__ */ c(Le, { caseSearch: i, children: /* @__PURE__ */ c(Oe, { interactive: r, children: /* @__PURE__ */ c("div", { className: "a2ui-surface a2ui-container", children: _.map((p) => /* @__PURE__ */ c(St, { surface: p }, p.id)) }) }) }) }) });
2721
+ }, [e, t]), v.length === 0 ? /* @__PURE__ */ c(ue, { children: n }) : /* @__PURE__ */ c(ue, { children: /* @__PURE__ */ c(Qe, { resumeSearch: o, children: /* @__PURE__ */ c(Ye, { caseSearch: i, children: /* @__PURE__ */ c(We, { interactive: r, children: /* @__PURE__ */ c("div", { className: "a2ui-surface a2ui-container", children: v.map((h) => /* @__PURE__ */ c(Et, { surface: h }, h.id)) }) }) }) }) });
2722
+ }
2723
+ const li = 100, ci = 3e4;
2724
+ class ui {
2725
+ constructor(t) {
2726
+ Q(this, "url");
2727
+ Q(this, "askUserMessageId");
2728
+ Q(this, "onAutoControl");
2729
+ Q(this, "ws", null);
2730
+ Q(this, "closed", !1);
2731
+ Q(this, "reconnectAttempt", 0);
2732
+ Q(this, "reconnectTimer", null);
2733
+ Q(this, "sendQueue", []);
2734
+ this.url = t.url, this.askUserMessageId = t.askUserMessageId, this.onAutoControl = t.onAutoControl;
2735
+ }
2736
+ connect() {
2737
+ if (!(this.closed || typeof WebSocket > "u")) {
2738
+ this.clearReconnectTimer();
2739
+ try {
2740
+ const t = new WebSocket(this.url);
2741
+ this.ws = t, t.onopen = () => {
2742
+ this.reconnectAttempt = 0, this.flushQueue();
2743
+ }, t.onmessage = (n) => {
2744
+ this.handleMessage(n.data);
2745
+ }, t.onclose = () => {
2746
+ this.ws = null, this.scheduleReconnect();
2747
+ }, t.onerror = () => {
2748
+ };
2749
+ } catch (t) {
2750
+ console.warn("[FormRuntimeWs] connect failed", t), this.scheduleReconnect();
2751
+ }
2752
+ }
2753
+ }
2754
+ send(t, n) {
2755
+ var i;
2756
+ if (this.closed) return;
2757
+ const r = {
2758
+ type: t,
2759
+ ask_user_message_id: this.askUserMessageId,
2760
+ data: n
2761
+ };
2762
+ let o;
2763
+ try {
2764
+ o = JSON.stringify(r);
2765
+ } catch (a) {
2766
+ console.warn("[FormRuntimeWs] serialize failed", a);
2767
+ return;
2768
+ }
2769
+ if (((i = this.ws) == null ? void 0 : i.readyState) === WebSocket.OPEN) {
2770
+ this.ws.send(o);
2771
+ return;
2772
+ }
2773
+ this.enqueue(o);
2774
+ }
2775
+ close() {
2776
+ if (this.closed = !0, this.clearReconnectTimer(), this.sendQueue = [], this.ws) {
2777
+ this.ws.onopen = null, this.ws.onmessage = null, this.ws.onclose = null, this.ws.onerror = null;
2778
+ try {
2779
+ this.ws.close();
2780
+ } catch {
2781
+ }
2782
+ this.ws = null;
2783
+ }
2784
+ }
2785
+ enqueue(t) {
2786
+ for (this.sendQueue.push(t); this.sendQueue.length > li; )
2787
+ this.sendQueue.shift();
2788
+ }
2789
+ flushQueue() {
2790
+ if (!this.ws || this.ws.readyState !== WebSocket.OPEN) return;
2791
+ const t = this.sendQueue;
2792
+ this.sendQueue = [];
2793
+ for (const n of t)
2794
+ this.ws.send(n);
2795
+ }
2796
+ scheduleReconnect() {
2797
+ if (this.closed) return;
2798
+ this.clearReconnectTimer();
2799
+ const t = Math.min(
2800
+ ci,
2801
+ 1e3 * 2 ** Math.min(this.reconnectAttempt, 5)
2802
+ );
2803
+ this.reconnectAttempt += 1, this.reconnectTimer = setTimeout(() => {
2804
+ this.reconnectTimer = null, this.connect();
2805
+ }, t);
2806
+ }
2807
+ clearReconnectTimer() {
2808
+ this.reconnectTimer != null && (clearTimeout(this.reconnectTimer), this.reconnectTimer = null);
2809
+ }
2810
+ handleMessage(t) {
2811
+ var i;
2812
+ if (typeof t != "string") return;
2813
+ let n;
2814
+ try {
2815
+ n = JSON.parse(t);
2816
+ } catch {
2817
+ return;
2818
+ }
2819
+ if (!n || typeof n != "object" || Array.isArray(n)) return;
2820
+ const r = n;
2821
+ if (r.type !== "form_auto_control_event" || String(r.ask_user_message_id ?? "") !== this.askUserMessageId) return;
2822
+ const o = r.data;
2823
+ !o || typeof o != "object" || Array.isArray(o) || (i = this.onAutoControl) == null || i.call(this, o, r);
2824
+ }
2543
2825
  }
2544
- function Lo(e) {
2545
- const t = xe(e);
2546
- return t ? Qe(t.blocks) : e && typeof e == "object" && !Array.isArray(e) ? e : {};
2826
+ function un(e) {
2827
+ return typeof CSS < "u" && typeof CSS.escape == "function" ? CSS.escape(e) : e.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
2828
+ }
2829
+ function mi(e, t) {
2830
+ if (!e) return !1;
2831
+ const n = e.querySelector(`[data-skopon-field="${un(t)}"]`);
2832
+ return n instanceof HTMLElement ? ((n.querySelector(
2833
+ 'input, textarea, select, button, [tabindex]:not([tabindex="-1"])'
2834
+ ) ?? n).focus(), !0) : !1;
2835
+ }
2836
+ function di(e, t) {
2837
+ if (!e) return !1;
2838
+ const n = e.querySelector(`[data-skopon-field="${un(t)}"]`);
2839
+ return n instanceof HTMLElement ? ((n.querySelector(
2840
+ 'button, [role="button"], .skopon-resume-select-card, input, label'
2841
+ ) ?? n).click(), !0) : !1;
2842
+ }
2843
+ function pi(e, t, n) {
2844
+ const r = e.action;
2845
+ if (r !== "change" && r !== "select" && r !== "focus" && r !== "click" && r !== "submit") {
2846
+ console.warn("[FormAutoControl] unknown action", r);
2847
+ return;
2848
+ }
2849
+ n.runAutoControl(() => {
2850
+ var a;
2851
+ if (r === "submit") {
2852
+ t.submit();
2853
+ return;
2854
+ }
2855
+ const o = typeof e.field == "string" ? e.field.trim() : "";
2856
+ if (!o) {
2857
+ console.warn("[FormAutoControl] missing field for action", r);
2858
+ return;
2859
+ }
2860
+ const i = ((a = e.component) == null ? void 0 : a.trim()) || "Unknown";
2861
+ if (r === "change" || r === "select") {
2862
+ if (e.value === void 0) {
2863
+ console.warn("[FormAutoControl] missing value for action", r);
2864
+ return;
2865
+ }
2866
+ t.setValues({ [o]: e.value }), n.reportEvent({
2867
+ action: r,
2868
+ component: i,
2869
+ field: o,
2870
+ value: e.value
2871
+ });
2872
+ return;
2873
+ }
2874
+ if (r === "focus") {
2875
+ mi(t.rootElement, o), n.reportEvent({
2876
+ action: "focus",
2877
+ component: i,
2878
+ field: o
2879
+ });
2880
+ return;
2881
+ }
2882
+ di(t.rootElement, o) || console.warn("[FormAutoControl] click target not found", o);
2883
+ });
2884
+ }
2885
+ function fi(e) {
2886
+ const t = Ee(e);
2887
+ return t ? at(t.blocks) : e && typeof e == "object" && !Array.isArray(e) ? e : {};
2547
2888
  }
2548
- function jo({
2889
+ function hi({
2549
2890
  payload: e,
2550
2891
  callbackUrl: t,
2551
2892
  title: n,
@@ -2555,69 +2896,69 @@ function jo({
2555
2896
  submitHeaders: a,
2556
2897
  onNotify: s
2557
2898
  }) {
2558
- const [l, u] = P(!1), m = O(!0);
2559
- B(() => (m.current = !0, () => {
2899
+ const [l, u] = E(!1), m = P(!0);
2900
+ w(() => (m.current = !0, () => {
2560
2901
  m.current = !1;
2561
2902
  }), []);
2562
- const d = w(
2563
- () => tt(a),
2903
+ const d = R(
2904
+ () => dt(a),
2564
2905
  [a]
2565
- ), b = w(
2566
- () => Bt(e, t, d),
2906
+ ), y = R(
2907
+ () => Qt(e, t, d),
2567
2908
  [e, t, d]
2568
- ), h = w(
2909
+ ), g = R(
2569
2910
  () => ({
2570
2911
  ...i,
2571
2912
  callbackUrl: (i == null ? void 0 : i.callbackUrl) ?? t ?? null
2572
2913
  }),
2573
2914
  [i, t]
2574
2915
  );
2575
- async function x() {
2916
+ async function k() {
2576
2917
  if (!l) {
2577
2918
  u(!0);
2578
2919
  try {
2579
- const _ = Lo(e), y = rt({
2580
- context: h,
2920
+ const v = fi(e), C = ft({
2921
+ context: g,
2581
2922
  payload: e,
2582
- answer: _
2583
- }), p = await Kt(y, {
2923
+ answer: v
2924
+ }), h = await rn(C, {
2584
2925
  headers: d
2585
2926
  });
2586
2927
  if (!m.current) return;
2587
- const v = Ht(p);
2588
- s == null || s(v.type, v.message);
2589
- } catch (_) {
2928
+ const p = nn(h);
2929
+ s == null || s(p.type, p.message);
2930
+ } catch (v) {
2590
2931
  if (!m.current) return;
2591
- const y = _ instanceof Error ? _.message : "提交失败";
2592
- s == null || s("error", y);
2932
+ const C = v instanceof Error ? v.message : "提交失败";
2933
+ s == null || s("error", C);
2593
2934
  } finally {
2594
2935
  m.current && u(!1);
2595
2936
  }
2596
2937
  }
2597
2938
  }
2598
- return /* @__PURE__ */ C("div", { className: "ask-user-curl-card", children: [
2599
- /* @__PURE__ */ C("div", { className: "ask-user-curl-card-header", children: [
2600
- /* @__PURE__ */ C("div", { className: "ask-user-curl-card-header-title", children: [
2601
- /* @__PURE__ */ c(D.Text, { type: "secondary", children: n ?? "curl 命令" }),
2602
- r ? /* @__PURE__ */ c(re, { title: r, children: /* @__PURE__ */ c(oe, { className: "ask-user-curl-unpublished-tag", children: "卡片 ID 未发布" }) }) : null,
2603
- o ? /* @__PURE__ */ c(re, { title: o, children: /* @__PURE__ */ c(oe, { className: "ask-user-curl-incomplete-tag", children: "卡片 ID 待补足" }) }) : null
2939
+ return /* @__PURE__ */ N("div", { className: "ask-user-curl-card", children: [
2940
+ /* @__PURE__ */ N("div", { className: "ask-user-curl-card-header", children: [
2941
+ /* @__PURE__ */ N("div", { className: "ask-user-curl-card-header-title", children: [
2942
+ /* @__PURE__ */ c(X.Text, { type: "secondary", children: n ?? "curl 命令" }),
2943
+ r ? /* @__PURE__ */ c(se, { title: r, children: /* @__PURE__ */ c(le, { className: "ask-user-curl-unpublished-tag", children: "卡片 ID 未发布" }) }) : null,
2944
+ o ? /* @__PURE__ */ c(se, { title: o, children: /* @__PURE__ */ c(le, { className: "ask-user-curl-incomplete-tag", children: "卡片 ID 待补足" }) }) : null
2604
2945
  ] }),
2605
- /* @__PURE__ */ c(re, { title: "提交到 answer_agent_callback_url", children: /* @__PURE__ */ c(
2606
- ke,
2946
+ /* @__PURE__ */ c(se, { title: "提交到 answer_agent_callback_url", children: /* @__PURE__ */ c(
2947
+ Me,
2607
2948
  {
2608
2949
  size: "small",
2609
2950
  type: "text",
2610
2951
  loading: l,
2611
2952
  disabled: l,
2612
- onClick: () => void x(),
2953
+ onClick: () => void k(),
2613
2954
  children: "提交"
2614
2955
  }
2615
2956
  ) })
2616
2957
  ] }),
2617
- /* @__PURE__ */ c("pre", { className: "skopon-form-curl-json", children: b })
2958
+ /* @__PURE__ */ c("pre", { className: "skopon-form-curl-json", children: y })
2618
2959
  ] });
2619
2960
  }
2620
- function Vo(e, t) {
2961
+ function gi(e, t) {
2621
2962
  if (t && typeof t == "object" && t !== null && "message" in t) {
2622
2963
  const n = t.message;
2623
2964
  if (typeof n == "string" && n.trim())
@@ -2625,208 +2966,300 @@ function Vo(e, t) {
2625
2966
  }
2626
2967
  return typeof t == "string" && t.trim() ? `提交失败 (${e}): ${t.trim()}` : `提交失败 (${e})`;
2627
2968
  }
2628
- function ii({
2969
+ function yi({
2629
2970
  payload: e,
2630
2971
  formUniqueId: t,
2631
- callbackUrl: n,
2632
- submitMode: r = "curl",
2633
- answerAgentContext: o,
2634
- submitHeaders: i,
2635
- fetchFormDetail: a,
2636
- onNotify: s,
2637
- resumeSearch: l = null,
2638
- caseSearch: u = null
2972
+ askUserMessageId: n,
2973
+ callbackUrl: r,
2974
+ submitMode: o = "curl",
2975
+ answerAgentContext: i,
2976
+ submitHeaders: a,
2977
+ fetchFormDetail: s,
2978
+ onNotify: l,
2979
+ resumeSearch: u = null,
2980
+ caseSearch: m = null,
2981
+ onSurfaceReadyChange: d,
2982
+ onAutoControlReady: y
2639
2983
  }) {
2640
- const [m, d] = P(null), [b, h] = P(!1), [x, _] = P(!0), [y, p] = P(!1), v = O(null), A = O(!0), g = O(s);
2641
- g.current = s;
2642
- const I = (t == null ? void 0 : t.trim()) ?? "", U = w(
2643
- () => tt(i),
2644
- [i]
2645
- ), V = w(
2984
+ const [g, k] = E(null), [v, C] = E(!1), [h, p] = E(!0), [S, A] = E(!1), x = P(null), _ = P(null), z = P(!0), T = P(l);
2985
+ T.current = l;
2986
+ const D = Ot(), H = (t == null ? void 0 : t.trim()) ?? "", oe = (n == null ? void 0 : n.trim()) ?? "", K = R(
2987
+ () => dt(a),
2988
+ [a]
2989
+ ), j = R(
2646
2990
  () => ({
2647
- ...o,
2648
- callbackUrl: (o == null ? void 0 : o.callbackUrl) ?? n ?? null
2991
+ ...i,
2992
+ callbackUrl: (i == null ? void 0 : i.callbackUrl) ?? r ?? null
2649
2993
  }),
2650
- [o, n]
2994
+ [i, r]
2651
2995
  );
2652
- B(() => (A.current = !0, () => {
2653
- A.current = !1;
2654
- }), []), B(() => {
2655
- let T = !1;
2656
- return I ? (_(!0), h(!1), a({ formUniqueId: I }).then((S) => {
2657
- T || (h(!!S.disabled), d(S.formDefinition ?? null));
2658
- }).catch((S) => {
2659
- var ee;
2660
- if (!T) {
2661
- h(!1), d(null);
2662
- const me = S instanceof Error ? S.message : "获取表单定义失败";
2663
- (ee = g.current) == null || ee.call(g, "error", me);
2996
+ w(() => (z.current = !0, () => {
2997
+ z.current = !1;
2998
+ }), []), w(() => {
2999
+ let V = !1;
3000
+ return H ? (p(!0), C(!1), s({ formUniqueId: H }).then((q) => {
3001
+ V || (C(!!q.disabled), k(q.formDefinition ?? null));
3002
+ }).catch((q) => {
3003
+ var W;
3004
+ if (!V) {
3005
+ C(!1), k(null);
3006
+ const ye = q instanceof Error ? q.message : "获取表单定义失败";
3007
+ (W = T.current) == null || W.call(T, "error", ye);
2664
3008
  }
2665
3009
  }).finally(() => {
2666
- T || _(!1);
3010
+ V || p(!1);
2667
3011
  }), () => {
2668
- T = !0;
2669
- }) : (_(!1), h(!1), d(null), () => {
2670
- T = !0;
3012
+ V = !0;
3013
+ }) : (p(!1), C(!1), k(null), () => {
3014
+ V = !0;
2671
3015
  });
2672
- }, [I, a]);
2673
- const M = w(() => xe(e), [e]), F = w(() => M ? Or(M, m ?? void 0) : null, [M, m]), $ = (F == null ? void 0 : F.matchedBlocks) ?? [], E = !!(M && jr(M) && $.length === 0), q = w(() => E && M ? Vr(M) : F && F.renderBlocks.length > 0 ? F.renderBlocks : [], [F, E, M]), J = w(
2674
- () => E ? {} : Qe((F == null ? void 0 : F.extraBlocks) ?? []),
2675
- [E, F]
2676
- ), X = w(() => E && M ? $r(M) : q.filter((T) => {
2677
- var S;
2678
- return (S = T.name) == null ? void 0 : S.trim();
2679
- }).map((T) => T.name.trim()), [E, M, q]), Z = w(() => {
2680
- if (q.length === 0) return null;
2681
- const T = (F == null ? void 0 : F.title) ?? (M == null ? void 0 : M.title) ?? "", S = (F == null ? void 0 : F.description) ?? (M == null ? void 0 : M.description) ?? "";
2682
- return Er({ title: T, description: S }, q);
2683
- }, [F, M, q]), k = I ? `ask-user-${I}` : "ask-user-payload";
2684
- if (x)
2685
- return /* @__PURE__ */ c(Y, { children: /* @__PURE__ */ c("div", { className: "ask-user-form-card", children: /* @__PURE__ */ c(Ge, { size: "small" }) }) });
2686
- if (!M || q.length === 0)
2687
- return /* @__PURE__ */ c(Y, { children: /* @__PURE__ */ c(
2688
- jo,
2689
- {
2690
- payload: e,
2691
- callbackUrl: n,
2692
- answerAgentContext: V,
2693
- submitHeaders: i,
2694
- unpublishedFormId: b && I ? I : void 0,
2695
- onNotify: s
2696
- }
2697
- ) });
2698
- async function R() {
2699
- var T, S, ee, me, ot, it, at;
2700
- if (!y) {
2701
- p(!0);
3016
+ }, [H, s]);
3017
+ const I = R(() => Ee(e), [e]), F = R(() => I ? io(I, g ?? void 0) : null, [I, g]), ie = (F == null ? void 0 : F.matchedBlocks) ?? [], Y = !!(I && so(I) && ie.length === 0), b = R(() => Y && I ? lo(I) : F && F.renderBlocks.length > 0 ? F.renderBlocks : [], [F, Y, I]), B = R(
3018
+ () => Y ? {} : at((F == null ? void 0 : F.extraBlocks) ?? []),
3019
+ [Y, F]
3020
+ ), $ = R(() => Y && I ? co(I) : b.filter((V) => {
3021
+ var q;
3022
+ return (q = V.name) == null ? void 0 : q.trim();
3023
+ }).map((V) => V.name.trim()), [Y, I, b]), U = R(() => {
3024
+ if (b.length === 0) return null;
3025
+ const V = (F == null ? void 0 : F.title) ?? (I == null ? void 0 : I.title) ?? "", q = (F == null ? void 0 : F.description) ?? (I == null ? void 0 : I.description) ?? "";
3026
+ return Zr({ title: V, description: q }, b);
3027
+ }, [F, I, b]), mn = H ? `ask-user-${H}` : "ask-user-payload", ge = !!(!h && I && b.length > 0 && U);
3028
+ w(() => (d(ge), () => d(!1)), [ge, d]);
3029
+ const Re = L(async () => {
3030
+ var V, q, W, ye, yt, vt, St;
3031
+ if (!S) {
3032
+ A(!0);
2702
3033
  try {
2703
- const te = ((T = v.current) == null ? void 0 : T.getValues(X)) ?? {}, de = uo(q, te);
2704
- if (de) {
2705
- (S = g.current) == null || S.call(g, "error", de.message);
3034
+ const ae = ((V = x.current) == null ? void 0 : V.getValues($)) ?? {}, ve = Po(b, ae);
3035
+ if (ve) {
3036
+ (q = T.current) == null || q.call(T, "error", ve.message);
2706
3037
  return;
2707
3038
  }
2708
- const st = { ...te, ...J };
2709
- if (r === "post") {
2710
- const ct = (n ?? "").trim();
2711
- if (!ct) {
2712
- (ee = g.current) == null || ee.call(g, "error", "callback_url 为空,无法提交");
3039
+ const ze = { ...ae, ...B };
3040
+ if (D.reportData(ze), D.reportEvent({
3041
+ action: "submit",
3042
+ component: "SubmitButton"
3043
+ }), o === "post") {
3044
+ const kt = (r ?? "").trim();
3045
+ if (!kt) {
3046
+ (W = T.current) == null || W.call(T, "error", "callback_url 为空,无法提交");
2713
3047
  return;
2714
3048
  }
2715
- const Ie = await qt(ct, st, {
2716
- headers: U
3049
+ const Be = await Xt(kt, ze, {
3050
+ headers: K
2717
3051
  });
2718
- if (!A.current) return;
2719
- Ie.ok ? (me = g.current) == null || me.call(g, "success", "提交成功") : (ot = g.current) == null || ot.call(g, "error", Vo(Ie.status, Ie.body));
3052
+ if (!z.current) return;
3053
+ Be.ok ? (ye = T.current) == null || ye.call(T, "success", "提交成功") : (yt = T.current) == null || yt.call(T, "error", gi(Be.status, Be.body));
2720
3054
  return;
2721
3055
  }
2722
- const Qt = rt({
2723
- context: V,
3056
+ const dn = ft({
3057
+ context: j,
2724
3058
  payload: e,
2725
- form: m ?? M,
2726
- answer: st
2727
- }), Zt = await Kt(Qt, {
2728
- headers: U
3059
+ form: g ?? I,
3060
+ answer: ze
3061
+ }), pn = await rn(dn, {
3062
+ headers: K
2729
3063
  });
2730
- if (!A.current) return;
2731
- const lt = Ht(Zt);
2732
- (it = g.current) == null || it.call(g, lt.type, lt.message);
2733
- } catch (te) {
2734
- if (!A.current) return;
2735
- const de = te instanceof Error ? te.message : "提交失败";
2736
- (at = g.current) == null || at.call(g, "error", de);
3064
+ if (!z.current) return;
3065
+ const bt = nn(pn);
3066
+ (vt = T.current) == null || vt.call(T, bt.type, bt.message);
3067
+ } catch (ae) {
3068
+ if (!z.current) return;
3069
+ const ve = ae instanceof Error ? ae.message : "提交失败";
3070
+ (St = T.current) == null || St.call(T, "error", ve);
2737
3071
  } finally {
2738
- A.current && p(!1);
3072
+ z.current && A(!1);
2739
3073
  }
2740
3074
  }
2741
- }
2742
- return /* @__PURE__ */ c(Y, { children: /* @__PURE__ */ C("div", { className: "ask-user-form-card", children: [
2743
- b && I ? /* @__PURE__ */ c("div", { className: "ask-user-form-card-status", children: /* @__PURE__ */ c(re, { title: I, children: /* @__PURE__ */ c(oe, { className: "ask-user-curl-unpublished-tag", children: "卡片 ID 未发布" }) }) }) : null,
2744
- /* @__PURE__ */ c(
2745
- Oo,
2746
- {
2747
- ref: v,
2748
- doc: Z,
2749
- surfaceId: k,
2750
- fieldNames: X,
2751
- interactive: !0,
2752
- wrapProvider: !1,
2753
- resumeSearch: l,
2754
- caseSearch: u
2755
- }
2756
- ),
2757
- /* @__PURE__ */ c("div", { className: "ask-user-form-actions", children: /* @__PURE__ */ c(
2758
- re,
2759
- {
2760
- title: r === "post" ? "提交 JSON 到 callback_url" : "提交到 answer_agent_callback_url",
2761
- children: /* @__PURE__ */ c(
2762
- ke,
3075
+ }, [
3076
+ S,
3077
+ $,
3078
+ b,
3079
+ B,
3080
+ D,
3081
+ o,
3082
+ r,
3083
+ K,
3084
+ j,
3085
+ e,
3086
+ g,
3087
+ I
3088
+ ]), ht = P(Re);
3089
+ ht.current = Re;
3090
+ const gt = L(
3091
+ (V) => {
3092
+ pi(
3093
+ V,
3094
+ {
3095
+ setValues: (q) => {
3096
+ var W;
3097
+ return (W = x.current) == null ? void 0 : W.setValues(q);
3098
+ },
3099
+ getValues: (q) => {
3100
+ var W;
3101
+ return ((W = x.current) == null ? void 0 : W.getValues(q)) ?? {};
3102
+ },
3103
+ submit: () => ht.current(),
3104
+ rootElement: _.current
3105
+ },
3106
+ {
3107
+ reportEvent: D.reportEvent,
3108
+ runAutoControl: D.runAutoControl
3109
+ }
3110
+ );
3111
+ },
3112
+ [D]
3113
+ );
3114
+ return w(() => {
3115
+ if (!ge) {
3116
+ y(null);
3117
+ return;
3118
+ }
3119
+ return y(gt), () => y(null);
3120
+ }, [ge, gt, y]), h ? /* @__PURE__ */ c("div", { className: "ask-user-form-card", children: /* @__PURE__ */ c(tt, { size: "small" }) }) : !I || b.length === 0 ? /* @__PURE__ */ c(
3121
+ hi,
3122
+ {
3123
+ payload: e,
3124
+ callbackUrl: r,
3125
+ answerAgentContext: j,
3126
+ submitHeaders: a,
3127
+ unpublishedFormId: v && H ? H : void 0,
3128
+ onNotify: l
3129
+ }
3130
+ ) : /* @__PURE__ */ N(
3131
+ "div",
3132
+ {
3133
+ className: "ask-user-form-card",
3134
+ ref: _,
3135
+ "data-ask-user-message-id": oe || void 0,
3136
+ children: [
3137
+ v && H ? /* @__PURE__ */ c("div", { className: "ask-user-form-card-status", children: /* @__PURE__ */ c(se, { title: H, children: /* @__PURE__ */ c(le, { className: "ask-user-curl-unpublished-tag", children: "卡片 ID 未发布" }) }) }) : null,
3138
+ /* @__PURE__ */ c(
3139
+ si,
2763
3140
  {
2764
- type: "primary",
2765
- size: "small",
2766
- loading: y,
2767
- disabled: y,
2768
- onClick: () => void R(),
2769
- children: "提交"
3141
+ ref: x,
3142
+ doc: U,
3143
+ surfaceId: mn,
3144
+ fieldNames: $,
3145
+ interactive: !0,
3146
+ wrapProvider: !1,
3147
+ resumeSearch: u,
3148
+ caseSearch: m
3149
+ }
3150
+ ),
3151
+ /* @__PURE__ */ c("div", { className: "ask-user-form-actions", children: /* @__PURE__ */ c(
3152
+ se,
3153
+ {
3154
+ title: o === "post" ? "提交 JSON 到 callback_url" : "提交到 answer_agent_callback_url",
3155
+ children: /* @__PURE__ */ c(
3156
+ Me,
3157
+ {
3158
+ type: "primary",
3159
+ size: "small",
3160
+ loading: S,
3161
+ disabled: S,
3162
+ onClick: () => void Re(),
3163
+ children: "提交"
3164
+ }
3165
+ )
2770
3166
  }
2771
- )
3167
+ ) })
3168
+ ]
3169
+ }
3170
+ );
3171
+ }
3172
+ function Ri(e) {
3173
+ var d;
3174
+ const t = ((d = e.askUserMessageId) == null ? void 0 : d.trim()) ?? "", n = R(() => So(), []), [r, o] = E(!1), [i, a] = E(null), s = P(null), l = L((y) => {
3175
+ o(y);
3176
+ }, []), u = L(
3177
+ (y) => {
3178
+ s.current = y;
3179
+ },
3180
+ []
3181
+ ), m = !!(n && t && r);
3182
+ return w(() => {
3183
+ if (!m || !n || !t) {
3184
+ a(null);
3185
+ return;
3186
+ }
3187
+ const y = new ui({
3188
+ url: n,
3189
+ askUserMessageId: t,
3190
+ onAutoControl: (g) => {
3191
+ var k;
3192
+ (k = s.current) == null || k.call(s, g);
2772
3193
  }
2773
- ) })
2774
- ] }) });
3194
+ });
3195
+ return y.connect(), a(y), () => {
3196
+ y.close(), a(null);
3197
+ };
3198
+ }, [m, n, t]), /* @__PURE__ */ c(ue, { children: /* @__PURE__ */ c(pr, { client: i, children: /* @__PURE__ */ c(
3199
+ yi,
3200
+ {
3201
+ ...e,
3202
+ onSurfaceReadyChange: l,
3203
+ onAutoControlReady: u
3204
+ }
3205
+ ) }) });
2775
3206
  }
2776
3207
  export {
2777
- Zo as A2UI_PROTOCOL_VERSION,
2778
- ii as AskUserFormCard,
2779
- Le as CaseSearchProvider,
2780
- jo as CurlSubmitBlock,
2781
- Jr as DEFAULT_ANSWER_AGENT_CALLBACK_URL,
2782
- Gr as DEFAULT_AUTH_ANSWER_AGENT_CALLBACK_URL_FIELD,
2783
- Ot as DEFAULT_AUTH_STORAGE_KEY,
2784
- Kr as DEFAULT_AUTH_TOKEN_FIELD,
2785
- bn as FORM_MEDIA_SIZES,
2786
- je as ResumeSearchProvider,
2787
- oi as SkoponA2uiStreamRenderer,
2788
- Y as SkoponFormProvider,
2789
- Oo as SkoponFormRenderer,
2790
- Fr as a2uiToBlocks,
2791
- Et as blocksToA2ui,
2792
- rt as buildAnswerAgentBody,
2793
- Dr as buildAskUserCurlBodyJson,
2794
- Hr as buildAskUserCurlStatement,
2795
- ei as buildAskUserSubmitCurlFromPayload,
2796
- Er as buildAskUserSurface,
2797
- Bt as buildCurlStatement,
2798
- ti as copyTextToClipboard,
2799
- lo as createCaseSearchClient,
2800
- Xr as createFormClient,
2801
- oo as createResumeSearchClient,
2802
- ri as createSkoponSdkClients,
2803
- Qe as extractExtraBlockValues,
2804
- Rr as extractSurfaceValues,
2805
- Ht as formatAnswerAgentSubmitMessage,
2806
- $r as getPayloadInputFieldNames,
2807
- Vr as getPayloadRenderableBlocks,
2808
- Or as intersectPayloadBlocksWithForm,
2809
- De as isA2uiSurfaceEmpty,
2810
- W as isInputBlockType,
2811
- Ae as isLayoutBlockType,
2812
- ye as isMediaBlockType,
2813
- zr as mapFormDefinitionFromDto,
2814
- Q as normalizeFormDefinition,
2815
- xe as parsePayloadBlocksJson,
2816
- jr as payloadHasInputBlocks,
2817
- Wr as resolveAnswerAgentCallbackUrl,
2818
- nt as resolveClientHeaders,
2819
- Vt as resolveSkoponAuthHeaders,
2820
- tt as resolveSubmitAuthHeaders,
2821
- Pr as resolveSurfaceFromFormDefinition,
2822
- qo as skoponAntdTheme,
2823
- H as skoponBrandColors,
2824
- Kt as submitAnswerAgent,
2825
- qt as submitFormJson,
2826
- Ur as surfaceDocToMessages,
2827
- ve as syncFormDefinition,
2828
- Wn as useCaseSearch,
2829
- ir as useResumeSearch,
2830
- $t as validateAnswerAgentBody,
2831
- ni as validateAnswerAgentContext
3208
+ Mi as A2UI_PROTOCOL_VERSION,
3209
+ Ri as AskUserFormCard,
3210
+ Ye as CaseSearchProvider,
3211
+ hi as CurlSubmitBlock,
3212
+ go as DEFAULT_ANSWER_AGENT_CALLBACK_URL,
3213
+ fo as DEFAULT_AUTH_ANSWER_AGENT_CALLBACK_URL_FIELD,
3214
+ ho as DEFAULT_AUTH_REALTIME_WS_URL_FIELD,
3215
+ ct as DEFAULT_AUTH_STORAGE_KEY,
3216
+ po as DEFAULT_AUTH_TOKEN_FIELD,
3217
+ wn as FORM_MEDIA_SIZES,
3218
+ Qe as ResumeSearchProvider,
3219
+ wi as SkoponA2uiStreamRenderer,
3220
+ ue as SkoponFormProvider,
3221
+ si as SkoponFormRenderer,
3222
+ Yr as a2uiToBlocks,
3223
+ Gt as blocksToA2ui,
3224
+ ft as buildAnswerAgentBody,
3225
+ uo as buildAskUserCurlBodyJson,
3226
+ mo as buildAskUserCurlStatement,
3227
+ Fi as buildAskUserSubmitCurlFromPayload,
3228
+ Zr as buildAskUserSurface,
3229
+ Qt as buildCurlStatement,
3230
+ Ui as copyTextToClipboard,
3231
+ Uo as createCaseSearchClient,
3232
+ bo as createFormClient,
3233
+ Io as createResumeSearchClient,
3234
+ Pi as createSkoponSdkClients,
3235
+ at as extractExtraBlockValues,
3236
+ to as extractSurfaceValues,
3237
+ nn as formatAnswerAgentSubmitMessage,
3238
+ co as getPayloadInputFieldNames,
3239
+ lo as getPayloadRenderableBlocks,
3240
+ io as intersectPayloadBlocksWithForm,
3241
+ et as isA2uiSurfaceEmpty,
3242
+ ne as isInputBlockType,
3243
+ Fe as isLayoutBlockType,
3244
+ Ce as isMediaBlockType,
3245
+ eo as mapFormDefinitionFromDto,
3246
+ re as normalizeFormDefinition,
3247
+ Ee as parsePayloadBlocksJson,
3248
+ so as payloadHasInputBlocks,
3249
+ vo as resolveAnswerAgentCallbackUrl,
3250
+ pt as resolveClientHeaders,
3251
+ So as resolveRealtimeWsUrl,
3252
+ Zt as resolveSkoponAuthHeaders,
3253
+ dt as resolveSubmitAuthHeaders,
3254
+ Xr as resolveSurfaceFromFormDefinition,
3255
+ ai as skoponAntdTheme,
3256
+ Z as skoponBrandColors,
3257
+ rn as submitAnswerAgent,
3258
+ Xt as submitFormJson,
3259
+ Qr as surfaceDocToMessages,
3260
+ _e as syncFormDefinition,
3261
+ gr as useCaseSearch,
3262
+ xr as useResumeSearch,
3263
+ en as validateAnswerAgentBody,
3264
+ Ei as validateAnswerAgentContext
2832
3265
  };