@inploi/plugin-chatbot 14.17.3 → 14.18.1

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 (96) hide show
  1. package/README.md +10 -1
  2. package/cdn/index.js +34 -6
  3. package/cdn/style.css +1 -1
  4. package/dist/chatbot-body-DjE1hhPI.js +4309 -0
  5. package/dist/chatbot-body-Y8XV3f3-.cjs +5 -0
  6. package/dist/common.geo-transport-CJGUJXTA-BsgnqoTX.js +41 -0
  7. package/dist/common.geo-transport-CJGUJXTA-DQyNyTXw.cjs +1 -0
  8. package/dist/index-C8Gr0Ijn.js +3198 -0
  9. package/dist/index-DSa7ZKqt.cjs +21 -0
  10. package/dist/index.d.cts +547 -0
  11. package/dist/index.d.ts +547 -2
  12. package/dist/plugin-chatbot.cjs +1 -1
  13. package/dist/plugin-chatbot.js +2 -3
  14. package/dist/style.css +1 -1
  15. package/package.json +18 -13
  16. package/dist/accessible-labels.test.d.ts +0 -1
  17. package/dist/chatbot-body-2942441d.cjs +0 -5
  18. package/dist/chatbot-body-73450740.js +0 -4523
  19. package/dist/chatbot.analytics.d.ts +0 -37
  20. package/dist/chatbot.analytics.test.d.ts +0 -1
  21. package/dist/chatbot.api.d.ts +0 -26
  22. package/dist/chatbot.constants.d.ts +0 -2
  23. package/dist/chatbot.context.test.d.ts +0 -1
  24. package/dist/chatbot.d.ts +0 -104
  25. package/dist/chatbot.dom.d.ts +0 -5
  26. package/dist/chatbot.idb.d.ts +0 -73
  27. package/dist/chatbot.lifecycle.test.d.ts +0 -1
  28. package/dist/chatbot.resume.d.ts +0 -15
  29. package/dist/chatbot.resume.test.d.ts +0 -1
  30. package/dist/chatbot.state.d.ts +0 -78
  31. package/dist/chatbot.state.test.d.ts +0 -1
  32. package/dist/chatbot.storage.test.d.ts +0 -1
  33. package/dist/chatbot.utils.d.ts +0 -8
  34. package/dist/components/chat-bubble.d.ts +0 -11
  35. package/dist/components/chat-error.d.ts +0 -3
  36. package/dist/components/chat-input/chat-input.address-countries.test.d.ts +0 -1
  37. package/dist/components/chat-input/chat-input.address.d.ts +0 -5
  38. package/dist/components/chat-input/chat-input.address.test.d.ts +0 -1
  39. package/dist/components/chat-input/chat-input.boolean.d.ts +0 -11
  40. package/dist/components/chat-input/chat-input.constants.d.ts +0 -1
  41. package/dist/components/chat-input/chat-input.d.ts +0 -12
  42. package/dist/components/chat-input/chat-input.file.d.ts +0 -8
  43. package/dist/components/chat-input/chat-input.file.test.d.ts +0 -1
  44. package/dist/components/chat-input/chat-input.multiple-choice.d.ts +0 -4
  45. package/dist/components/chat-input/chat-input.multiple-choice.test.d.ts +0 -1
  46. package/dist/components/chat-input/chat-input.number.d.ts +0 -4
  47. package/dist/components/chat-input/chat-input.phone-number.d.ts +0 -4
  48. package/dist/components/chat-input/chat-input.submit.d.ts +0 -4
  49. package/dist/components/chat-input/chat-input.submit.test.d.ts +0 -1
  50. package/dist/components/chat-input/chat-input.text.d.ts +0 -5
  51. package/dist/components/chat-input/chat-input.text.test.d.ts +0 -1
  52. package/dist/components/chat-input/input-style.d.ts +0 -3
  53. package/dist/components/chat-loading.d.ts +0 -1
  54. package/dist/components/chatbot-body.d.ts +0 -12
  55. package/dist/components/chatbot-body.lifecycle.test.d.ts +0 -1
  56. package/dist/components/chatbot.d.ts +0 -17
  57. package/dist/components/conversation.d.ts +0 -8
  58. package/dist/components/correction.test.d.ts +0 -1
  59. package/dist/components/input-error.d.ts +0 -5
  60. package/dist/components/job-alerts-offer.d.ts +0 -13
  61. package/dist/components/job-alerts-offer.test.d.ts +0 -1
  62. package/dist/components/job-alerts-privacy-line.test.d.ts +0 -1
  63. package/dist/components/loading-indicator.d.ts +0 -3
  64. package/dist/components/message.link.d.ts +0 -5
  65. package/dist/components/palette-debugger.d.ts +0 -1
  66. package/dist/components/send-button.d.ts +0 -3
  67. package/dist/components/skip-button.d.ts +0 -3
  68. package/dist/components/status-bar.d.ts +0 -22
  69. package/dist/components/status-bar.test.d.ts +0 -1
  70. package/dist/components/transition.d.ts +0 -1
  71. package/dist/components/typing-indicator.d.ts +0 -3
  72. package/dist/components/useChatService.d.ts +0 -17
  73. package/dist/components/useChatService.test.d.ts +0 -1
  74. package/dist/components/useFocus.d.ts +0 -1
  75. package/dist/i18n.d.ts +0 -776
  76. package/dist/index-0685e04a.cjs +0 -5
  77. package/dist/index-8df73cbc.js +0 -3530
  78. package/dist/index.cdn.d.ts +0 -9
  79. package/dist/index.dev.d.ts +0 -8
  80. package/dist/interpreter.test.d.ts +0 -1
  81. package/dist/md.d.ts +0 -1
  82. package/dist/md.test.d.ts +0 -1
  83. package/dist/mocks/browser.d.ts +0 -1
  84. package/dist/mocks/flows.mocks.d.ts +0 -77
  85. package/dist/mocks/handlers.d.ts +0 -14
  86. package/dist/mocks/mocks.utils.d.ts +0 -5
  87. package/dist/mocks/pre-apply.mock.d.ts +0 -296
  88. package/dist/phone.test.d.ts +0 -1
  89. package/dist/progress.d.ts +0 -12
  90. package/dist/progress.test.d.ts +0 -1
  91. package/dist/rpc.d.ts +0 -1
  92. package/dist/style/theme.d.ts +0 -3
  93. package/dist/style/theme.utils.d.ts +0 -6
  94. package/dist/style/tokens.d.ts +0 -86
  95. package/dist/widget-version.d.ts +0 -7
  96. package/dist/widget-version.test.d.ts +0 -1
@@ -1,4523 +0,0 @@
1
- var Ds = Object.defineProperty;
2
- var Ns = (e, r, t) => r in e ? Ds(e, r, { enumerable: !0, configurable: !0, writable: !0, value: t }) : e[r] = t;
3
- var Q = (e, r, t) => (Ns(e, typeof r != "symbol" ? r + "" : r, t), t);
4
- import { p as Hr, f as xt, L as Ot, m as Ge, v as Kr, O as Gr, l as Os, I as js, C as $s, j as Jr, P as Bs, u as Ps, y as Us, w as qs, F as zs, V as ir, W as or, A as Ws, k as lr, b as Hs, x as Ks, h as Zr, E as Gs, S as Js, R as Zs, Q as Xs, J as Xr, Z as Ys, _ as Qs, s as z, a as re, o as c, c as Qe, d as wt, e as ke, g as ye, i as _t, n as Oe, q as Me, r as be, t as Wt, z as en, B as Yr, D as tn, G as rn, H as et, K as cr, M as ae, N as ce, T as sn, U as nn, X as an, Y as on, $ as ln, a0 as cn, a1 as Qr, a2 as un } from "./index-8df73cbc.js";
5
- import { addressSearchCountry as ur, searchAddressSuggestions as dn, saveClosedRoleJobAlerts as fn } from "@inploi/sdk";
6
- var hn = "https://maps.inploi.com/address", bt = /\b(?:GIR\s*0AA|[a-z]{1,2}\d[\da-z]?\s*\d[a-z]{2}|[a-z](?:\d{2}|\d[a-z])\s*[\da-z]{4})\b/i, es = /^(?:GIR0AA|[A-Z]{1,2}\d[\dA-Z]?\d[A-Z]{2})$/, ts = /^[A-Z](?:\d{2}|\d[A-Z])[\dA-Z]{4}$/, jt = (e) => e.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/\s+/g, " ").trim(), dr = (e) => e.split(",").map(
7
- (r) => jt(r).replace(/^\d+[a-z]?(?:\s*[-/]\s*\d+[a-z]?)?(?:\s+|$)/, "").trim()
8
- ), fr = (e) => es.test(e) ? `gb:${e.slice(0, -3)}` : ts.test(e) ? `ie:${e.slice(0, 3)}` : null, pn = (e, r, t) => {
9
- const [s = "", n = ""] = dr(e), a = fr(r), i = n.replace(bt, "").trim(), o = i && !["united kingdom", "ireland", "england", "scotland", "wales", "northern ireland"].includes(i);
10
- if (!s || !a && !o)
11
- return null;
12
- const l = t.slice(0, 3).findIndex((f) => {
13
- var y;
14
- const h = dr(f);
15
- if (!h.includes(s))
16
- return !1;
17
- const g = ((y = f.match(bt)) == null ? void 0 : y[0].replace(/\s/g, "").toUpperCase()) ?? "", m = fr(g);
18
- return a && m ? a === m : !!(o && h.some((k) => k.replace(bt, "").trim() === i));
19
- });
20
- return l === -1 ? null : l + 1;
21
- }, mn = async ({
22
- query: e,
23
- country: r,
24
- pickedLabel: t,
25
- pickedPostcode: s,
26
- pickedCountry: n,
27
- pickedState: a,
28
- log: i
29
- }) => {
30
- var l, f, h, g, m;
31
- if (!r || !r.split(",").every((y) => /^(gb|ie)$/i.test(y.trim())))
32
- return;
33
- let o;
34
- try {
35
- const y = new AbortController();
36
- o = setTimeout(() => y.abort(), 1500);
37
- const k = new URL(hn);
38
- k.search = new URLSearchParams({ q: e, country: r, limit: "5" }).toString();
39
- const _ = await fetch(k.href, { signal: y.signal });
40
- if (!_.ok)
41
- return;
42
- const w = await _.json();
43
- if (typeof w != "object" || w === null || !("results" in w) || !Array.isArray(w.results) || !("source" in w) || w.source !== "photon" && w.source !== "mapbox")
44
- return;
45
- const S = w.results, x = [];
46
- for (const R of S) {
47
- if (typeof R != "object" || R === null || !("label" in R) || typeof R.label != "string")
48
- return;
49
- x.push(R.label);
50
- }
51
- const N = ((s == null ? void 0 : s.trim()) || ((l = t.match(bt)) == null ? void 0 : l[0]) || "").replace(/\s/g, "").toUpperCase(), T = pn(t, N, x), A = (h = (f = _.headers.get("Server-Timing")) == null ? void 0 : f.match(/(?:^|,)\s*lookup\s*;\s*dur=([\d.]+)/)) == null ? void 0 : h[1], q = A === void 0 ? null : Number(A), O = _.headers.get("X-Geo-Fallback"), V = (m = (n == null ? void 0 : n.trim()) || ((g = t.split(",").at(-1)) == null ? void 0 : g.trim())) == null ? void 0 : m.toLowerCase();
52
- let M = null;
53
- es.test(N) ? M = N.startsWith("BT") ? "ni" : "gb" : ts.test(N) ? M = "ie" : jt(a ?? "") === "northern ireland" || t.split(",").some((R) => jt(R) === "northern ireland") ? M = "ni" : V === "united kingdom" || V === "gb" ? M = "gb" : (V === "ireland" || V === "ie") && (M = "ie"), await i({
54
- hit: T !== null,
55
- rank: T,
56
- results: x.length,
57
- source: w.source,
58
- // Only machine codes are telemetry: never forward arbitrary response text.
59
- fallback: O && /^[a-z0-9_-]{1,64}$/i.test(O) ? O : null,
60
- ms: q !== null && Number.isFinite(q) ? q : null,
61
- region: M
62
- });
63
- } catch {
64
- } finally {
65
- clearTimeout(o);
66
- }
67
- }, yn = "9.12.0", rs = `https://sdk.inploi.com/@inploi/flows@${yn}/cdn/captcha/index.html`, bn = new URL(rs).origin, hr = 3e4, gn = 5 * 6e4, vn = (e) => typeof e == "object" && e !== null && e.source === "inploi-captcha", Vt = /* @__PURE__ */ new WeakMap(), xn = (e) => {
68
- let r = Vt.get(e);
69
- return r || (r = e.fetch("/flow/captcha").then((t) => {
70
- let s = t == null ? void 0 : t.site_key;
71
- return typeof s == "string" && s !== "" ? s : void 0;
72
- }).catch((t) => {
73
- throw Vt.delete(e), t;
74
- }), Vt.set(e, r)), r;
75
- }, wn = (e, r = {}) => new Promise((t, s) => {
76
- let { signal: n, container: a = null, theme: i, onInteractive: o } = r instanceof AbortSignal ? { signal: r } : r, l = !1, f = () => {
77
- }, h = (_) => {
78
- l || (l = !0, clearTimeout(y), n == null || n.removeEventListener("abort", m), f(), _());
79
- }, g = (_) => h(() => s(new Error(_))), m = () => g("Captcha aborted"), y, k = (_) => {
80
- clearTimeout(y), y = setTimeout(() => g("Captcha timed out"), _);
81
- };
82
- if (k(hr), n == null ? void 0 : n.aborted)
83
- return m();
84
- n == null || n.addEventListener("abort", m), (async () => {
85
- let _ = await xn(e);
86
- if (_ === void 0)
87
- return h(() => t(void 0));
88
- if (l)
89
- return;
90
- let w = document.createElement("iframe");
91
- w.src = `${rs}?${new URLSearchParams({ sitekey: _, origin: window.location.origin, ...i && { theme: i } }).toString()}`, w.title = "Cloudflare security check", w.style.cssText = `display:block;border:0;width:${a ? "100%" : "300px"};height:0;color-scheme:normal`, a ? a.appendChild(w) : (w.style.cssText += ";position:fixed;bottom:16px;right:16px;z-index:2147483647", document.body.appendChild(w));
92
- let S = !1, x = (N) => {
93
- if (!w.contentWindow || N.source !== w.contentWindow || N.origin !== bn || !vn(N.data))
94
- return;
95
- let T = N.data;
96
- switch (T.type) {
97
- case "token":
98
- return h(() => t(T.token));
99
- case "resize":
100
- w.style.height = `${Math.max(0, Math.ceil(T.height))}px`;
101
- return;
102
- case "before-interactive":
103
- return S = !0, k(gn), o == null ? void 0 : o();
104
- case "after-interactive":
105
- return S = !1, k(hr);
106
- case "error":
107
- !S && !T.interactive && g("Captcha failed");
108
- return;
109
- case "expired":
110
- return g("Captcha expired");
111
- case "timeout":
112
- return g("Captcha timed out");
113
- }
114
- };
115
- window.addEventListener("message", x), f = () => {
116
- window.removeEventListener("message", x), w.remove();
117
- };
118
- })().catch((_) => h(() => s(_)));
119
- }), pr = ({ condition: e, context: r, submissions: t, ifBlock: s }) => {
120
- let [n, ...a] = e.compareKey.split(".");
121
- if (!n)
122
- return !1;
123
- let i = Hr({ context: r, key: n, path: a, submissions: t });
124
- if (!i)
125
- return !1;
126
- switch (i.type) {
127
- case "address": {
128
- let o = Ot(i.value, a);
129
- switch (e.compare) {
130
- case "equals":
131
- return o === e.compareValue;
132
- case "contains":
133
- return typeof o != "string" ? !1 : o.includes(e.compareValue);
134
- case "notEquals":
135
- return o !== e.compareValue;
136
- case "notContains":
137
- return typeof o != "string" ? !0 : !o.includes(e.compareValue);
138
- }
139
- break;
140
- }
141
- case "integration": {
142
- if (typeof i.value != "object" || Array.isArray(i.value))
143
- return !1;
144
- let o = Ot(i.value, a), l = { ...s, data: { compareKey: "_temp", compare: e.compare, compareValue: e.compareValue } };
145
- switch (typeof o) {
146
- case "boolean":
147
- return lt(l, { submissions: { _temp: { value: o, type: "boolean" } }, context: r });
148
- case "string":
149
- return lt(l, { submissions: { _temp: { value: o, type: "string" } }, context: r });
150
- case "number":
151
- return lt(l, { submissions: { _temp: { value: o, type: "number" } }, context: r });
152
- case "object":
153
- return Array.isArray(o) && o.every((f) => typeof f == "string") ? lt(l, { submissions: { _temp: { value: o, type: "enum" } }, context: r }) : !1;
154
- }
155
- break;
156
- }
157
- case "boolean": {
158
- let o = e.compareValue === "true";
159
- switch (e.compare) {
160
- case "equals":
161
- return i.value === o;
162
- case "notEquals":
163
- return i.value !== o;
164
- }
165
- break;
166
- }
167
- case "phone":
168
- case "string": {
169
- let o = i.type === "phone" ? xt(i.value) : i.value;
170
- switch (e.compare) {
171
- case "equals":
172
- return o === e.compareValue;
173
- case "contains":
174
- return o ? o.includes(e.compareValue) : !1;
175
- case "notEquals":
176
- return o !== e.compareValue;
177
- case "notContains":
178
- return o ? !o.includes(e.compareValue) : !0;
179
- }
180
- break;
181
- }
182
- case "number": {
183
- try {
184
- let o = Number(e.compareValue);
185
- switch (e.compare) {
186
- case "equals":
187
- return i.value === o;
188
- case "notEquals":
189
- return i.value !== o;
190
- case "greaterThan":
191
- return i.value > o;
192
- case "greaterThanOrEqualTo":
193
- return i.value >= o;
194
- case "lessThan":
195
- return i.value < o;
196
- case "lessThanOrEqualTo":
197
- return i.value <= o;
198
- }
199
- } catch {
200
- return console.error(`Failed to parse number in if-block ${s.id}`, i.value), !1;
201
- }
202
- break;
203
- }
204
- case "enum":
205
- switch (e.compare) {
206
- case "equals":
207
- return i.value.length === 1 && i.value[0] === e.compareValue;
208
- case "notEquals":
209
- return i.value.length === 1 && i.value[0] !== e.compareValue;
210
- case "contains":
211
- return i.value.includes(e.compareValue);
212
- case "notContains":
213
- return !i.value.includes(e.compareValue);
214
- }
215
- break;
216
- }
217
- }, lt = (e, { context: r, submissions: t }) => {
218
- let s = "combinator" in e.data ? e.data.conditions : [e.data];
219
- if (("combinator" in e.data ? e.data.combinator : "and") === "or") {
220
- for (let n of s)
221
- if (pr({ condition: n, context: r, submissions: t, ifBlock: e }))
222
- return !0;
223
- return !1;
224
- } else {
225
- for (let n of s)
226
- if (!pr({ condition: n, context: r, submissions: t, ifBlock: e }))
227
- return !1;
228
- return !0;
229
- }
230
- }, _n = /{{\s*([^}]+?)\s*(?:\|\s*([^}]+?)\s*)?}}/g, kn = (e, { context: r, submissions: t }) => e.replace(_n, (s, n, a = "") => {
231
- let [i, ...o] = n.trim().split("."), l = Hr({ key: i, path: o, submissions: t, context: r });
232
- if (!l)
233
- return a;
234
- switch (l.type) {
235
- case "boolean":
236
- return l.value === !0 ? "true" : "false";
237
- case "file":
238
- return l.value.map((f) => `${f.name} (${Ge(f.sizeKb)})`).join(", ");
239
- case "enum":
240
- return l.value.join(", ");
241
- case "address":
242
- return Object.values(l.value).filter((f) => f && f.trim().length > 0).join(", ");
243
- case "number":
244
- case "string":
245
- return l.value ? l.value.toString() : a;
246
- case "phone":
247
- return xt(l.value);
248
- case "integration": {
249
- if (typeof l.value != "object" || Array.isArray(l.value))
250
- break;
251
- let f = Ot(l.value, o);
252
- switch (typeof f) {
253
- case "boolean":
254
- return f === !0 ? "true" : "false";
255
- case "string":
256
- return f;
257
- case "number":
258
- return f.toString();
259
- case "object":
260
- if (Array.isArray(f) && f.every((h) => typeof h == "string"))
261
- return f.join(", ");
262
- }
263
- break;
264
- }
265
- }
266
- return a;
267
- });
268
- /*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */
269
- function Cn(e) {
270
- return e instanceof Uint8Array || ArrayBuffer.isView(e) && e.constructor.name === "Uint8Array";
271
- }
272
- function Ht(e, r, t = "") {
273
- const s = Cn(e), n = e == null ? void 0 : e.length, a = r !== void 0;
274
- if (!s || a && n !== r) {
275
- const i = t && `"${t}" `, o = a ? ` of length ${r}` : "", l = s ? `length=${n}` : `type=${typeof e}`;
276
- throw new Error(i + "expected Uint8Array" + o + ", got " + l);
277
- }
278
- return e;
279
- }
280
- function mr(e, r = !0) {
281
- if (e.destroyed)
282
- throw new Error("Hash instance has been destroyed");
283
- if (r && e.finished)
284
- throw new Error("Hash#digest() has already been called");
285
- }
286
- function Sn(e, r) {
287
- Ht(e, void 0, "digestInto() output");
288
- const t = r.outputLen;
289
- if (e.length < t)
290
- throw new Error('"digestInto() output" expected to be of length >=' + t);
291
- }
292
- function $t(...e) {
293
- for (let r = 0; r < e.length; r++)
294
- e[r].fill(0);
295
- }
296
- function Lt(e) {
297
- return new DataView(e.buffer, e.byteOffset, e.byteLength);
298
- }
299
- function pe(e, r) {
300
- return e << 32 - r | e >>> r;
301
- }
302
- const An = /* @__PURE__ */ (() => (
303
- // @ts-ignore
304
- typeof Uint8Array.from([]).toHex == "function" && typeof Uint8Array.fromHex == "function"
305
- ))(), En = /* @__PURE__ */ Array.from({ length: 256 }, (e, r) => r.toString(16).padStart(2, "0"));
306
- function In(e) {
307
- if (Ht(e), An)
308
- return e.toHex();
309
- let r = "";
310
- for (let t = 0; t < e.length; t++)
311
- r += En[e[t]];
312
- return r;
313
- }
314
- function Fn(e, r = {}) {
315
- const t = (n, a) => e(a).update(n).digest(), s = e(void 0);
316
- return t.outputLen = s.outputLen, t.blockLen = s.blockLen, t.create = (n) => e(n), Object.assign(t, r), Object.freeze(t);
317
- }
318
- const Vn = (e) => ({
319
- oid: Uint8Array.from([6, 9, 96, 134, 72, 1, 101, 3, 4, 2, e])
320
- });
321
- function Ln(e, r, t) {
322
- return e & r ^ ~e & t;
323
- }
324
- function Mn(e, r, t) {
325
- return e & r ^ e & t ^ r & t;
326
- }
327
- class Rn {
328
- constructor(r, t, s, n) {
329
- Q(this, "blockLen");
330
- Q(this, "outputLen");
331
- Q(this, "padOffset");
332
- Q(this, "isLE");
333
- // For partial updates less than block size
334
- Q(this, "buffer");
335
- Q(this, "view");
336
- Q(this, "finished", !1);
337
- Q(this, "length", 0);
338
- Q(this, "pos", 0);
339
- Q(this, "destroyed", !1);
340
- this.blockLen = r, this.outputLen = t, this.padOffset = s, this.isLE = n, this.buffer = new Uint8Array(r), this.view = Lt(this.buffer);
341
- }
342
- update(r) {
343
- mr(this), Ht(r);
344
- const { view: t, buffer: s, blockLen: n } = this, a = r.length;
345
- for (let i = 0; i < a; ) {
346
- const o = Math.min(n - this.pos, a - i);
347
- if (o === n) {
348
- const l = Lt(r);
349
- for (; n <= a - i; i += n)
350
- this.process(l, i);
351
- continue;
352
- }
353
- s.set(r.subarray(i, i + o), this.pos), this.pos += o, i += o, this.pos === n && (this.process(t, 0), this.pos = 0);
354
- }
355
- return this.length += r.length, this.roundClean(), this;
356
- }
357
- digestInto(r) {
358
- mr(this), Sn(r, this), this.finished = !0;
359
- const { buffer: t, view: s, blockLen: n, isLE: a } = this;
360
- let { pos: i } = this;
361
- t[i++] = 128, $t(this.buffer.subarray(i)), this.padOffset > n - i && (this.process(s, 0), i = 0);
362
- for (let g = i; g < n; g++)
363
- t[g] = 0;
364
- s.setBigUint64(n - 8, BigInt(this.length * 8), a), this.process(s, 0);
365
- const o = Lt(r), l = this.outputLen;
366
- if (l % 4)
367
- throw new Error("_sha2: outputLen must be aligned to 32bit");
368
- const f = l / 4, h = this.get();
369
- if (f > h.length)
370
- throw new Error("_sha2: outputLen bigger than state");
371
- for (let g = 0; g < f; g++)
372
- o.setUint32(4 * g, h[g], a);
373
- }
374
- digest() {
375
- const { buffer: r, outputLen: t } = this;
376
- this.digestInto(r);
377
- const s = r.slice(0, t);
378
- return this.destroy(), s;
379
- }
380
- _cloneInto(r) {
381
- r || (r = new this.constructor()), r.set(...this.get());
382
- const { blockLen: t, buffer: s, length: n, finished: a, destroyed: i, pos: o } = this;
383
- return r.destroyed = i, r.finished = a, r.length = n, r.pos = o, n % t && r.buffer.set(s), r;
384
- }
385
- clone() {
386
- return this._cloneInto();
387
- }
388
- }
389
- const Ie = /* @__PURE__ */ Uint32Array.from([
390
- 1779033703,
391
- 3144134277,
392
- 1013904242,
393
- 2773480762,
394
- 1359893119,
395
- 2600822924,
396
- 528734635,
397
- 1541459225
398
- ]), Tn = /* @__PURE__ */ Uint32Array.from([
399
- 1116352408,
400
- 1899447441,
401
- 3049323471,
402
- 3921009573,
403
- 961987163,
404
- 1508970993,
405
- 2453635748,
406
- 2870763221,
407
- 3624381080,
408
- 310598401,
409
- 607225278,
410
- 1426881987,
411
- 1925078388,
412
- 2162078206,
413
- 2614888103,
414
- 3248222580,
415
- 3835390401,
416
- 4022224774,
417
- 264347078,
418
- 604807628,
419
- 770255983,
420
- 1249150122,
421
- 1555081692,
422
- 1996064986,
423
- 2554220882,
424
- 2821834349,
425
- 2952996808,
426
- 3210313671,
427
- 3336571891,
428
- 3584528711,
429
- 113926993,
430
- 338241895,
431
- 666307205,
432
- 773529912,
433
- 1294757372,
434
- 1396182291,
435
- 1695183700,
436
- 1986661051,
437
- 2177026350,
438
- 2456956037,
439
- 2730485921,
440
- 2820302411,
441
- 3259730800,
442
- 3345764771,
443
- 3516065817,
444
- 3600352804,
445
- 4094571909,
446
- 275423344,
447
- 430227734,
448
- 506948616,
449
- 659060556,
450
- 883997877,
451
- 958139571,
452
- 1322822218,
453
- 1537002063,
454
- 1747873779,
455
- 1955562222,
456
- 2024104815,
457
- 2227730452,
458
- 2361852424,
459
- 2428436474,
460
- 2756734187,
461
- 3204031479,
462
- 3329325298
463
- ]), Fe = /* @__PURE__ */ new Uint32Array(64);
464
- class Dn extends Rn {
465
- constructor(r) {
466
- super(64, r, 8, !1);
467
- }
468
- get() {
469
- const { A: r, B: t, C: s, D: n, E: a, F: i, G: o, H: l } = this;
470
- return [r, t, s, n, a, i, o, l];
471
- }
472
- // prettier-ignore
473
- set(r, t, s, n, a, i, o, l) {
474
- this.A = r | 0, this.B = t | 0, this.C = s | 0, this.D = n | 0, this.E = a | 0, this.F = i | 0, this.G = o | 0, this.H = l | 0;
475
- }
476
- process(r, t) {
477
- for (let g = 0; g < 16; g++, t += 4)
478
- Fe[g] = r.getUint32(t, !1);
479
- for (let g = 16; g < 64; g++) {
480
- const m = Fe[g - 15], y = Fe[g - 2], k = pe(m, 7) ^ pe(m, 18) ^ m >>> 3, _ = pe(y, 17) ^ pe(y, 19) ^ y >>> 10;
481
- Fe[g] = _ + Fe[g - 7] + k + Fe[g - 16] | 0;
482
- }
483
- let { A: s, B: n, C: a, D: i, E: o, F: l, G: f, H: h } = this;
484
- for (let g = 0; g < 64; g++) {
485
- const m = pe(o, 6) ^ pe(o, 11) ^ pe(o, 25), y = h + m + Ln(o, l, f) + Tn[g] + Fe[g] | 0, _ = (pe(s, 2) ^ pe(s, 13) ^ pe(s, 22)) + Mn(s, n, a) | 0;
486
- h = f, f = l, l = o, o = i + y | 0, i = a, a = n, n = s, s = y + _ | 0;
487
- }
488
- s = s + this.A | 0, n = n + this.B | 0, a = a + this.C | 0, i = i + this.D | 0, o = o + this.E | 0, l = l + this.F | 0, f = f + this.G | 0, h = h + this.H | 0, this.set(s, n, a, i, o, l, f, h);
489
- }
490
- roundClean() {
491
- $t(Fe);
492
- }
493
- destroy() {
494
- this.set(0, 0, 0, 0, 0, 0, 0, 0), $t(this.buffer);
495
- }
496
- }
497
- class Nn extends Dn {
498
- constructor() {
499
- super(32);
500
- // We cannot use array here since array allows indexing by variable
501
- // which means optimizer/compiler cannot use registers.
502
- Q(this, "A", Ie[0] | 0);
503
- Q(this, "B", Ie[1] | 0);
504
- Q(this, "C", Ie[2] | 0);
505
- Q(this, "D", Ie[3] | 0);
506
- Q(this, "E", Ie[4] | 0);
507
- Q(this, "F", Ie[5] | 0);
508
- Q(this, "G", Ie[6] | 0);
509
- Q(this, "H", Ie[7] | 0);
510
- }
511
- }
512
- const On = /* @__PURE__ */ Fn(
513
- () => new Nn(),
514
- /* @__PURE__ */ Vn(1)
515
- );
516
- var ss = (e) => {
517
- let r = e.find((t) => t.isHead);
518
- if (!r)
519
- throw new Error("No head node found");
520
- return r;
521
- }, Kt = (e) => {
522
- var r, t;
523
- if (!(e.data.isFinished || (r = e.data.startedWriteNodeIds) != null && r.length))
524
- return (t = [...e.data.messages].reverse().find((s) => s.groupId && e.nodes.some((n) => n.id === s.groupId && n.type.startsWith("question-")) && (s.type === "system" || "author" in s && s.author === "user"))) == null ? void 0 : t.groupId;
525
- }, Bt = (e) => Array.isArray(e) ? e.map(Bt) : e !== null && typeof e == "object" ? Object.fromEntries(Object.entries(e).sort(([r], [t]) => r.localeCompare(t)).map(([r, t]) => [r, Bt(t)])) : typeof e == "function" ? void 0 : e, jn = (e) => In(On(new TextEncoder().encode(JSON.stringify(Bt(e)))));
526
- function $n(e, r, t, s) {
527
- var n;
528
- if (s != null && s.aborted)
529
- return;
530
- let a = jn(t), i = (n = e.data).preApplyFingerprints ?? (n.preApplyFingerprints = []);
531
- if (i.includes(a))
532
- return;
533
- i.push(a);
534
- let o = new AbortController(), l = setTimeout(() => o.abort(), 5e3);
535
- r.fetch("/flow/pre-apply", { method: "POST", signal: o.signal, body: JSON.stringify(t) }).catch(() => {
536
- let f = i.indexOf(a);
537
- f !== -1 && i.splice(f, 1);
538
- }).finally(() => {
539
- clearTimeout(l);
540
- });
541
- }
542
- var ns = ({ context: e, submissions: r }) => ({ context: e, submissions: r ?? {} }), he = (e, r) => kn(e, ns(r)), Bn = (e, r) => lt(e, ns(r)), as = ({ node: e, nodes: r, stopWhen: t }) => {
543
- if ((t == null ? void 0 : t(e)) === !0)
544
- return e;
545
- let s = e.nextId ? r.find((n) => n.id === e.nextId) : void 0;
546
- if (s)
547
- return as({ node: s, nodes: r, stopWhen: t });
548
- }, Pn = ({ childNode: e, nodes: r }) => {
549
- let t = r.filter((s) => s.type === "if-block").find((s) => {
550
- if (!s.branchId)
551
- return !1;
552
- let n = r.find((i) => i.id === s.branchId);
553
- if (!n)
554
- return !1;
555
- let a = as({ node: n, nodes: r, stopWhen: (i) => i.id === e.id });
556
- return !(!a || a.id !== e.id);
557
- });
558
- if (t != null && t.nextId)
559
- return r.find((s) => s.id === t.nextId);
560
- }, Un = 3, qn = ({ flow: e, analytics: r, logger: t, talentBankClient: s, context: n, apiClient: a, getSubmissions: i, getApplicationRecovery: o, setApplicationRecovery: l, chatService: f, persistWriteBarrier: h, onSubmitNetworkError: g, closedRoleBehaviour: m, settledOutcomes: y = m, dateEchoLocale: k, onFlowEnd: _, onInterpret: w, forceSubmitConfirmation: S, flowType: x, t: N }) => {
561
- var T;
562
- let A = new AbortController(), q = { submitAccepted: !1 };
563
- (T = e.data).startedWriteNodeIds ?? (T.startedWriteNodeIds = e.nodes.flatMap((M) => {
564
- var $, F;
565
- if (M.type !== "integration-application-submit" || !e.data.nodeHistory.includes(M.id))
566
- return [];
567
- let R = M.data.key ? ($ = i()) == null ? void 0 : $[M.data.key] : void 0;
568
- return (R == null ? void 0 : R.type) === "integration" && ((F = Kr(R.value)) == null ? void 0 : F.verdict) === "not_submitted" ? [] : [M.id];
569
- }));
570
- let O = { ...r.service, log: (M) => r.service.log({ ...M, customProperties: { ...M.customProperties, ...r.customProperties } }) }, V = async (M, R) => {
571
- let $ = A.signal;
572
- if ($.aborted)
573
- return;
574
- let F = i(), L = o(), P = (L == null ? void 0 : L.submitNodeId) === M.id ? e.nodes.find((D) => {
575
- var H;
576
- return D.id === L.fileQuestionNodeId && D.type === "question-file" && ((H = F == null ? void 0 : F[D.data.key]) == null ? void 0 : H.type) !== "file";
577
- }) : void 0;
578
- if (P)
579
- return V(P, R);
580
- w == null || w(M, R);
581
- try {
582
- await zn({ flow: e, analytics: O, logger: t, talentBankClient: s, apiClient: a, context: n, node: M, submissions: F, applicationRecovery: L, setApplicationRecovery: async (D) => {
583
- if (!$.aborted)
584
- try {
585
- await l(D);
586
- } catch (H) {
587
- t.error("Failed to persist application recovery", H);
588
- }
589
- }, forceSubmitConfirmation: S || (L == null ? void 0 : L.submitNodeId) === M.id, run: q, persistWriteBarrier: h, onSubmitNetworkError: g, settledOutcomes: y, dateEchoLocale: k, flowType: x, signal: $, t: N, chat: { sendMessage: async (D) => f.send({ groupId: M.id, message: D, signal: $ }), userInput: async (D) => f.input({ input: D, signal: $ }), setSubmission: (D, H) => {
590
- $.aborted || f.setSubmission(D, H);
591
- }, captcha: f.captcha }, next: (D) => {
592
- if ($.aborted)
593
- return;
594
- let H = (L == null ? void 0 : L.fileQuestionNodeId) === M.id ? L.submitNodeId : D, W = H ? e.nodes.find((te) => te.id === H) : Pn({ childNode: M, nodes: e.nodes });
595
- return W ? V(W, M) : _ == null ? void 0 : _(M);
596
- }, end: () => {
597
- $.aborted || (_ == null || _(M));
598
- } });
599
- } catch (D) {
600
- if (D instanceof Gr)
601
- return;
602
- throw D;
603
- }
604
- };
605
- return { interpret: async (M) => {
606
- let R = e.nodes.find(($) => $.id === M) ?? ss(e.nodes);
607
- return V(R);
608
- }, undo: (M) => {
609
- var H;
610
- if (delete e.data.reviewReplay, ((H = e.data.startedWriteNodeIds) == null ? void 0 : H.length) || e.data.isFinished)
611
- return { removed: 0 };
612
- let R = Kt(e), $ = R ? M.lastIndexOf(R) : -1, F = e.nodes.find((W) => W.id === R);
613
- if ($ === -1 || !F)
614
- return { removed: 0 };
615
- let L = e.nodes.find((W) => W.id === M[M.length - 1]);
616
- A.abort();
617
- let P = M.splice($);
618
- e.data.messages = e.data.messages.filter((W) => !W.groupId || !P.includes(W.groupId)), e.data.currentInput = null;
619
- let D = i();
620
- for (let W of P.slice(1)) {
621
- let te = e.nodes.find((Y) => Y.id === W);
622
- if (!(!te || !D || te.id === R) && ("key" in te.data && te.data.key && delete D[te.data.key], "keys" in te.data))
623
- for (let Y of Object.values(te.data.keys))
624
- typeof Y == "string" && delete D[Y];
625
- }
626
- return A = new AbortController(), V(F, L), { removed: P.length };
627
- }, abort: () => {
628
- A.abort();
629
- } };
630
- };
631
- async function zn(e) {
632
- let r = e.node;
633
- switch (r.type) {
634
- case "flow-section":
635
- return await e.chat.sendMessage({ type: "system", variant: "info", text: r.data.title }), e.next(r.nextId);
636
- case "pre-apply-result":
637
- return ma({ ...e, node: r });
638
- case "text":
639
- return aa({ ...e, node: r });
640
- case "image":
641
- return ia({ ...e, node: r });
642
- case "question-text":
643
- return oa({ ...e, node: r });
644
- case "question-enum":
645
- return ua({ ...e, node: r });
646
- case "question-number":
647
- return la({ ...e, node: r });
648
- case "question-phone":
649
- return ca({ ...e, node: r });
650
- case "question-boolean":
651
- return da({ ...e, node: r });
652
- case "question-file":
653
- return ha({ ...e, node: r });
654
- case "question-address":
655
- return fa({ ...e, node: r });
656
- case "end-flow":
657
- return pa({ ...e, node: r });
658
- case "if-block":
659
- return na({ ...e, node: r });
660
- case "jump":
661
- return Kn({ ...e, node: r });
662
- case "link":
663
- return sa({ ...e, node: r });
664
- case "integration-application-submit":
665
- return ea({ ...e, node: r });
666
- case "add-submission":
667
- return Gn({ ...e, node: r });
668
- case "integration-workflow-get":
669
- throw Error("Workflow should be unreachable");
670
- case "check-duplicate":
671
- return Hn({ ...e, node: r });
672
- case "feedback":
673
- return Wn({ ...e, node: r });
674
- default:
675
- throw new Error(`Unknown node: ${JSON.stringify(r)}`);
676
- }
677
- }
678
- async function Wn({ next: e, node: r }) {
679
- e(r.nextId);
680
- }
681
- async function Hn({ next: e, node: r, talentBankClient: t, submissions: s, flow: n, logger: a, chat: i }) {
682
- var l;
683
- let o = { isDuplicate: !1 };
684
- if (s && t) {
685
- let f = r.data.scope === "job" ? (l = n.job) == null ? void 0 : l.id : void 0;
686
- if (r.data.scope === "company" || f != null)
687
- try {
688
- o = await t.checkDuplicate({ email: Os({ key: r.data.email, submissions: s }).toString(), jobId: f, scope: r.data.scope });
689
- } catch (h) {
690
- a.error("[check-duplicate]", h);
691
- }
692
- }
693
- i.setSubmission(r.data.key, { type: "integration", value: o }), e(r.nextId);
694
- }
695
- async function Kn({ next: e, node: r }) {
696
- e(r.data.targetId);
697
- }
698
- async function Gn({ next: e, node: r, logger: t, submissions: s, context: n }) {
699
- if (!s) {
700
- t.error("Submissions not found");
701
- return;
702
- }
703
- s[r.data.key] = { type: "string", value: he(r.data.value, { submissions: s, context: n }) }, e(r.nextId);
704
- }
705
- var Jn = 5e3, Zn = (e, r) => r ? `${e}@${r.id_type}:${r.id}` : e, Xn = (e, r = Date.now()) => Math.min(e.until, r + (e.maintenance ? Xs : e.throttles ? Xr : Ys)), Yn = (e, r, t) => {
706
- let { waitMs: s, throttles: n, maintenance: a } = Qs(r == null ? void 0 : r.throttles, t);
707
- return { key: e, until: Date.now() + s, ...n !== void 0 && { throttles: n }, ...a && { maintenance: a } };
708
- }, Qn = ["ApiError", "NotFoundError", "UnauthorisedError", "SchemaValidationError", "ParsingError"], Pt = (e) => e instanceof Error && Qn.includes(e.name) ? e : void 0, yr = (e) => {
709
- let r = Pt(e);
710
- return (r == null ? void 0 : r.name) === "ApiError" ? r : void 0;
711
- };
712
- async function ea({ chat: e, next: r, end: t, node: s, logger: n, apiClient: a, submissions: i, analytics: o, flow: l, applicationRecovery: f, setApplicationRecovery: h, forceSubmitConfirmation: g, flowType: m, run: y, persistWriteBarrier: k, signal: _, onSubmitNetworkError: w, settledOutcomes: S, t: x }) {
713
- var V, M;
714
- let N = async ({ redirect_url: R, message: $, button_text: F }) => {
715
- let { anonymous_id: L, session_id: P } = o.getSessionInfo();
716
- await e.sendMessage({ type: "text", author: "bot", text: $ ?? x("submission_redirect_message") });
717
- try {
718
- let D = new URL(R);
719
- L && !D.searchParams.has("anonymous_id") && D.searchParams.set("anonymous_id", L), await e.sendMessage({ type: "link", href: D.toString(), text: F ?? x("complete_submission"), onClick: () => {
720
- if (!P) {
721
- n.error("session_id not set, cannot log FLOW_REDIRECT event");
722
- return;
723
- }
724
- o.log({ event: "FLOW_REDIRECT", properties: { flow_build: l.build, flow_id: l.id, flow_session_id: P, flow_version: l.version, href: D.toString(), job: l.job } });
725
- } });
726
- } catch (D) {
727
- n.error(`Invalid redirect URL: ${R}`, D), e.sendMessage({ type: "system", variant: "error", text: x("redirect_url_error") });
728
- }
729
- };
730
- if ((V = l.data.startedWriteNodeIds) != null && V.includes(s.id) && (f == null ? void 0 : f.submitNodeId) !== s.id) {
731
- let R = (M = l.data.submitRedirects) == null ? void 0 : M[s.id];
732
- return R ? (await N(R), r(s.nextId)) : (await e.sendMessage({ type: "system", variant: "warning", text: x("submission_unknown") }), t());
733
- }
734
- let T = Zn(s.id, l.job), A = 0, q = y.submitAccepted && s.data.skipConfirmation === !0 && (f == null ? void 0 : f.submitNodeId) !== s.id, O = async (R) => {
735
- var nt, pt, mt, Et, at, u, d, p, C;
736
- let $ = ((nt = l.data.submitCooldown) == null ? void 0 : nt.key) === T ? l.data.submitCooldown : void 0;
737
- $ && ($.until = Xn($));
738
- let F = $ == null ? void 0 : $.until;
739
- (l.data.reviewRequiresSend === !0 && !q || R !== !0 || F !== void 0 && F > Date.now()) && await e.userInput({ type: "submit", key: void 0, config: { label: s.data.submitLabel, ...F !== void 0 && { availableAt: F } } }), q = !1;
740
- let L;
741
- if (s.data.captcha) {
742
- let b = e.captcha, v = !0;
743
- try {
744
- L = await wn(a, { signal: _, container: (b == null ? void 0 : b.container()) ?? null, theme: b == null ? void 0 : b.theme, onInteractive: () => {
745
- e.sendMessage({ type: "text", author: "bot", text: x("captcha_check") }).catch(() => {
746
- }).then(() => {
747
- v && (b == null || b.reveal(!0));
748
- });
749
- } });
750
- } catch (I) {
751
- if (n.error("Captcha check failed", I), _.aborted)
752
- return;
753
- } finally {
754
- v = !1, b == null || b.reveal(!1);
755
- }
756
- }
757
- await e.sendMessage({ type: "loading", text: x("submitting") });
758
- let { anonymous_id: P, session_id: D } = o.getSessionInfo();
759
- if (_.aborted)
760
- return;
761
- let H = ((pt = l.data.startedWriteNodeIds) == null ? void 0 : pt.includes(s.id)) === !0;
762
- if ((f == null ? void 0 : f.submitNodeId) === s.id && await h(void 0), H || (l.data.startedWriteNodeIds = [...l.data.startedWriteNodeIds ?? [], s.id]), await k().catch((b) => n.error("Failed to persist application write barrier", b)), _.aborted)
763
- return;
764
- let W, te = setTimeout(() => {
765
- W = e.sendMessage({ type: "loading", semantic: "submission-still-working", text: x("submission_still_working") }).catch((b) => n.error("Failed to send submission progress message", b));
766
- }, Jn), Y, K = await a.fetch("/flow/submit", { method: "POST", body: JSON.stringify({ log_submit: !1, integration_id: s.data.integrationId, anonymous_id: P, session_id: D, job: l.job, flow_build: l.build, ...L !== void 0 && { captcha_token: L }, submissions: Bs(l.nodes, Ps(i || {}, s.data.submitKeys)), pre_apply: Jr(l.nodes, i || {}, l.data.flowSessionId) }) }).catch((b) => {
767
- Y = b;
768
- let v = yr(b);
769
- return (v == null ? void 0 : v.data) !== void 0 ? v.data : b;
770
- });
771
- if (clearTimeout(te), await W, _.aborted)
772
- return;
773
- if (Y !== void 0 && !Pt(Y) && w)
774
- return await w(Y, _), O(!0);
775
- l.data.stagingDestination = Us(K), s.data.key && e.setSubmission(s.data.key, { type: "integration", value: K });
776
- let rt = (mt = yr(Y)) == null ? void 0 : mt.status, $e = typeof rt == "number" ? rt : void 0, j = Kr(K, $e), Be = j === void 0 && $e === 429, Pe = S === "terminal" && ((j == null ? void 0 : j.outcome) === "closed" || (j == null ? void 0 : j.outcome) === "duplicate"), Ae = l.data.failedAttemptAt, Re = Ae == null ? void 0 : Ae[T];
777
- Ae && Re !== void 0 && Re > Date.now() && (Re = Ae[T] = Date.now());
778
- let Ue = Re !== void 0 && Date.now() - Re < qs || ((Et = l.data.unconfirmedAttemptKeys) == null ? void 0 : Et.includes(T)) === !0, st = (at = Pt(Y)) == null ? void 0 : at.status, ve = zs(K, typeof st == "number" ? st : void 0);
779
- ve && o.log({ event: "FLOW_SUBMIT", properties: { flow_id: l.id, flow_version: l.version, flow_session_id: l.data.flowSessionId, flow_build: l.build, service: ve.service, response: ve.response, captured: (K == null ? void 0 : K.captured) === !0, flow_type: (m == null ? void 0 : m()) ?? "CHATBOT_DRAWER", job: l.job, ...(j == null ? void 0 : j.outcome) === "duplicate" && { outcome: Ue ? "duplicate_after_own_attempt" : "duplicate" }, ...ve.outcome && { outcome: ve.outcome } } });
780
- let qe = ir(K) || (K == null ? void 0 : K.success) === !0;
781
- if ((qe || or(K)) && (y.submitAccepted = !0), qe && ((u = l.data.submitCooldown) == null ? void 0 : u.throttles) !== void 0 && (delete l.data.submitCooldown.throttles, await k().catch((b) => n.error("Failed to persist submit cooldown reset", b))), ir(K)) {
782
- let { redirect_url: b, message: v, button_text: I } = K.integration_response.data, B = { redirect_url: b, message: v, button_text: I };
783
- return _.aborted ? void 0 : (l.data.submitRedirects = { ...l.data.submitRedirects, [s.id]: B }, await k().catch((U) => n.error("Failed to persist submit redirect", U)), await N(B), r(s.nextId));
784
- }
785
- let ht = or(K);
786
- if (ht)
787
- return await e.sendMessage({ type: "system", variant: "success", text: ht.message ?? x("submission_pending") }), r(s.nextId);
788
- if ((K == null ? void 0 : K.success) === !0)
789
- return s.data.skipConfirmation !== !0 && await e.sendMessage({ type: "system", variant: "success", text: x("submission_completed") }), r(s.nextId);
790
- let ze = Ws(j), We = ze !== void 0 && ((d = i == null ? void 0 : i[ze]) == null ? void 0 : d.type) === "file" ? ze : void 0, Te = We === void 0 ? void 0 : l.nodes.find((b) => b.type === "question-file" && b.data.key === We);
791
- if (!Te && !Pe && !lr(j) && (l.data.submitCooldown = Yn(T, $, j)), (j == null ? void 0 : j.outcome) !== "duplicate" && !Be && (l.data.failedAttemptAt = { ...l.data.failedAttemptAt, [T]: Date.now() }, (p = l.data.unconfirmedAttemptKeys) != null && p.includes(T) && (l.data.unconfirmedAttemptKeys = l.data.unconfirmedAttemptKeys.filter((b) => b !== T))), (j == null ? void 0 : j.verdict) === "not_submitted" || (j == null ? void 0 : j.outcome) === "duplicate" || (j == null ? void 0 : j.outcome) === "closed" || Be || Hs(K, $e) ? (H || (l.data.startedWriteNodeIds = (C = l.data.startedWriteNodeIds) == null ? void 0 : C.filter((b) => b !== s.id)), (f == null ? void 0 : f.submitNodeId) === s.id && await h(f), await k().catch((b) => n.error("Failed to persist application write barrier release", b))) : await k().catch((b) => n.error("Failed to persist submit cooldown", b)), j) {
792
- if (n.error(Y ?? j.message), Te && We !== void 0)
793
- return e.setSubmission(We, null), await h({ fileQuestionNodeId: Te.id, submitNodeId: s.id }), await e.sendMessage({ type: "system", variant: "error", text: x("submission_unreadable_document") }), r(Te.id);
794
- if (j.outcome === "duplicate")
795
- return await e.sendMessage({ type: "system", variant: Pe ? "success" : "info", semantic: "submission-duplicate", text: x(Ue ? "submission_duplicate_earlier_attempt" : "submission_duplicate") }), Pe ? (delete l.data.submitCooldown, t()) : O(!1);
796
- if (j.outcome === "closed")
797
- return await e.sendMessage({ type: "system", variant: "info", semantic: "submission-closed", text: x("submission_closed") }), Pe ? (delete l.data.submitCooldown, t()) : O(!1);
798
- let b = Ks(j);
799
- return b ? (await e.sendMessage({ type: "system", variant: "warning", text: b.until === void 0 ? x("submission_provider_maintenance_later") : x("submission_provider_maintenance", { time: Zr(b.until, void 0) }) }), O(!1)) : j.outcome === "unknown" ? (await e.sendMessage({ type: "system", variant: "warning", text: x(Gs(j) ? "submission_unknown_do_not_resubmit" : "submission_unknown") }), O(!1)) : lr(j) ? Js(K) ? (await e.sendMessage({ type: "text", author: "bot", text: j.message }), O(!1)) : (A === 0 && await e.sendMessage({ type: "system", variant: "warning", text: x("captcha_failed") }), A++, O(A <= Un)) : Zs(j) ? (await e.sendMessage({ type: "system", variant: "error", text: x("submission_retryable") }), O(!1)) : (await e.sendMessage({ type: "system", variant: "error", text: x("submission_failed") }), t());
800
- }
801
- return n.error(Y ?? K), Be ? (await e.sendMessage({ type: "system", variant: "error", text: x("submission_retryable") }), O(!1)) : (await e.sendMessage({ type: "system", variant: "error", text: x("submission_failed") }), t());
802
- };
803
- await O(g === !0 && !q ? !1 : s.data.skipConfirmation);
804
- }
805
- var ta = /{{\s*\$context\.job\.apply_url\s*(?:\|[^}]*)?}}/, ra = (e, r) => {
806
- if (!ta.test(e))
807
- return !1;
808
- try {
809
- let { protocol: t } = new URL(r);
810
- return t === "https:" || t === "http:";
811
- } catch {
812
- return !1;
813
- }
814
- };
815
- async function sa({ chat: e, next: r, node: t, submissions: s, context: n, analytics: a, flow: i }) {
816
- let o = he(t.data.href, { submissions: s, context: n }), { flowSessionId: l } = i.data;
817
- await e.sendMessage({ type: "link", href: o, text: he(t.data.cta, { submissions: s, context: n }), ...ra(t.data.href, o) && { onClick: () => {
818
- a.log({ event: "FLOW_REDIRECT", properties: { flow_build: i.build, flow_id: i.id, flow_session_id: l, flow_version: i.version, href: o, job: i.job } });
819
- } } }), r(t.nextId);
820
- }
821
- async function na({ submissions: e, next: r, node: t, context: s }) {
822
- r(Bn(t, { submissions: e, context: s }) ? t.branchId : t.nextId);
823
- }
824
- async function aa({ chat: e, next: r, node: t, submissions: s, context: n }) {
825
- await e.sendMessage({ author: "bot", type: "text", text: he(t.data.text, { submissions: s, context: n }) }), r(t.nextId);
826
- }
827
- async function ia({ chat: e, next: r, node: t }) {
828
- await e.sendMessage({ author: "bot", type: "image", url: t.data.url, height: t.data.height, width: t.data.width }), r(t.nextId);
829
- }
830
- async function oa({ chat: e, next: r, node: t, submissions: s, context: n, t: a, dateEchoLocale: i }) {
831
- await e.sendMessage({ author: "bot", type: "text", text: he(t.data.question, { submissions: s, context: n }) });
832
- let o = t.data.format === "phone" ? await e.userInput({ key: t.data.key, type: "phone", config: { optional: t.data.optional, placeholder: t.data.placeholder, minChars: t.data.minChars, maxChars: t.data.maxChars, submissionFormat: "text", defaultValue: {} } }) : await e.userInput({ key: t.data.key, type: "text", config: { optional: t.data.optional, placeholder: t.data.placeholder, format: t.data.format, maxChars: t.data.maxChars, minChars: t.data.minChars, multiline: t.data.format === "text" && t.data.multiline === !0 } });
833
- o === null ? await e.sendMessage({ type: "system", variant: "info", semantic: "question-skipped", text: a("skipped") }) : await e.sendMessage({ author: "user", type: "text", text: o.type === "phone" ? xt(o.value) : t.data.format === "date" && i !== void 0 ? js(o.value, i) : o.value }), r(t.nextId);
834
- }
835
- async function la({ chat: e, next: r, node: t, submissions: s, context: n, t: a }) {
836
- await e.sendMessage({ author: "bot", type: "text", text: he(t.data.question, { submissions: s, context: n }) });
837
- let i = await e.userInput({ key: t.data.key, type: "number", config: { max: t.data.max, min: t.data.min, optional: t.data.optional, placeholder: t.data.placeholder, decimalCases: t.data.decimalCases } });
838
- i === null ? await e.sendMessage({ type: "system", variant: "info", semantic: "question-skipped", text: a("skipped") }) : await e.sendMessage({ author: "user", type: "text", text: i.value.toString() }), r(t.nextId);
839
- }
840
- async function ca({ chat: e, next: r, node: t, submissions: s, context: n, t: a }) {
841
- await e.sendMessage({ author: "bot", type: "text", text: he(t.data.question, { submissions: s, context: n }) });
842
- let i = await e.userInput({ key: t.data.key, type: "phone", config: { minChars: t.data.minChars, defaultValue: { countryCode: t.data.defaultCountryCode }, placeholder: t.data.placeholder, submissionFormat: "phone", optional: t.data.optional } });
843
- i === null ? await e.sendMessage({ type: "system", variant: "info", semantic: "question-skipped", text: a("skipped") }) : await e.sendMessage({ author: "user", type: "text", text: i.type === "phone" ? xt(i.value) : i.value }), r(t.nextId);
844
- }
845
- async function ua({ chat: e, next: r, node: t, submissions: s, context: n, t: a }) {
846
- await e.sendMessage({ author: "bot", type: "text", text: he(t.data.question, { submissions: s, context: n }) });
847
- let i = await e.userInput({ key: t.data.key, type: "multiple-choice", config: t.data });
848
- i.value.length === 0 ? await e.sendMessage({ type: "system", variant: "info", semantic: "question-skipped", text: a("skipped") }) : await e.sendMessage({ author: "user", type: "text", text: t.data.options.filter((o) => i.value.includes(o.value)).map((o) => o.label).join(", ") }), r(t.nextId);
849
- }
850
- async function da({ chat: e, next: r, node: t, submissions: s, context: n, t: a }) {
851
- await e.sendMessage({ author: "bot", type: "text", text: he(t.data.question, { submissions: s, context: n }) });
852
- let i = await e.userInput({ key: t.data.key, type: "boolean", config: { optional: t.data.optional, labels: { true: t.data.trueLabel, false: t.data.falseLabel } } });
853
- i === null ? await e.sendMessage({ type: "system", variant: "info", semantic: "question-skipped", text: a("skipped") }) : await e.sendMessage({ author: "user", type: "text", text: i.value === !0 ? t.data.trueLabel : t.data.falseLabel }), r(t.nextId);
854
- }
855
- async function fa({ chat: e, next: r, node: t, t: s }) {
856
- await e.sendMessage({ author: "bot", type: "text", text: t.data.question });
857
- let n = await e.userInput({ type: "address", key: t.data.key, config: { optional: t.data.optional, keys: t.data.keys, line2Required: t.data.line2Required, placeholder: t.data.placeholder } });
858
- if (n === null)
859
- await e.sendMessage({ type: "system", variant: "info", semantic: "question-skipped", text: s("skipped") });
860
- else {
861
- let a = Object.values(n.value).filter((i) => i && i.trim().length > 0).join(", ");
862
- await e.sendMessage({ author: "user", type: "text", text: a });
863
- }
864
- return r(t.nextId);
865
- }
866
- async function ha({ node: e, chat: r, next: t, submissions: s, context: n, t: a }) {
867
- await r.sendMessage({ author: "bot", type: "text", text: he(e.data.question, { submissions: s, context: n }) });
868
- let i = await r.userInput({ key: e.data.key, type: "file", config: { optional: e.data.optional, extensions: e.data.extensions, fileSizeLimitKib: e.data.maxSizeKb ?? 10 * 1024, allowMultiple: e.data.multiple === !0 } });
869
- if (i === null)
870
- await r.sendMessage({ type: "system", variant: "info", semantic: "question-skipped", text: a("skipped") });
871
- else
872
- for (let o of i.value)
873
- await r.sendMessage({ author: "user", type: "file", fileName: o.name, fileSizeKb: o.sizeKb });
874
- return t(e.nextId);
875
- }
876
- async function pa({ chat: e, end: r, node: t }) {
877
- await e.sendMessage({ type: "system", variant: "info", text: t.data.systemMessage }), r();
878
- }
879
- async function ma({ node: e, flow: r, submissions: t, chat: s, next: n, apiClient: a, analytics: i, signal: o, context: l }) {
880
- let f = $s(r.nodes, t || {}), { answers: h, ...g } = f;
881
- if (s.setSubmission(e.data.key, { type: "integration", value: g }), $n(r, a, { ...i.getSessionInfo(), job: r.job, flow_build: r.build, pre_apply: Jr(r.nodes, t || {}, r.data.flowSessionId) }, o), f.status !== "skipped") {
882
- let m = [f.status === "unavailable" ? "We could not prepare your pre-apply summary. You can still continue to your application." : f.hasHardConcerns ? e.data.messages.hard : f.hasAdvisoryConcerns ? e.data.messages.advisory : e.data.messages.matched];
883
- for (let y of ["hard", "advisory"]) {
884
- let k = h.filter((_) => !_.matched && _.severity === y);
885
- k.length && m.push((y === "hard" ? "Role requirements" : "Other things to consider") + `
886
- ` + k.map((_) => `• ${_.message}`).join(`
887
- `));
888
- }
889
- await s.sendMessage({ type: "text", author: "bot", text: m.join(`
890
-
891
- `) }), f.hasHardConcerns && e.data.alternativeLink && await s.sendMessage({ type: "link", href: e.data.alternativeLink.href, text: e.data.alternativeLink.label }), await s.userInput({ type: "submit", key: void 0, config: { label: he(e.data.continueLabel, { submissions: t, context: l }) } });
892
- }
893
- return n(e.nextId);
894
- }
895
- const br = (e, r, t) => {
896
- var s;
897
- return e.log({
898
- event: t,
899
- properties: {
900
- flow_id: r.id,
901
- flow_version: r.version,
902
- flow_session_id: r.data.flowSessionId,
903
- flow_build: r.build,
904
- flow_type: "CHATBOT_DRAWER",
905
- job: r.job
906
- },
907
- customProperties: (s = r.analytics) == null ? void 0 : s.customProperties
908
- });
909
- }, Ut = "resume-prompt", ya = async ({
910
- chatService: e,
911
- t: r,
912
- signal: t
913
- }) => {
914
- await e.send({
915
- message: {
916
- type: "text",
917
- author: "bot",
918
- text: r("resume_prompt")
919
- },
920
- groupId: Ut,
921
- signal: t
922
- });
923
- const s = await e.input({
924
- input: {
925
- type: "boolean",
926
- key: void 0,
927
- config: {
928
- labels: {
929
- true: r("resume_continue"),
930
- false: r("resume_start_again")
931
- },
932
- optional: !1
933
- }
934
- },
935
- signal: t
936
- });
937
- return z.removeMessagesSentByNodeIds([Ut]), (s == null ? void 0 : s.value) !== !1;
938
- }, je = ({
939
- class: e,
940
- ...r
941
- }) => {
942
- const {
943
- t
944
- } = re();
945
- return c("button", {
946
- class: Qe("bg-accent-9 active:bg-accent-10 pointer-coarse:touch-hitbox fr flex-shrink-0 rounded-full p-2 text-white transition-all disabled:cursor-not-allowed disabled:opacity-50", e),
947
- type: "submit",
948
- ...r,
949
- children: c("svg", {
950
- class: "block",
951
- width: "16",
952
- height: "16",
953
- viewBox: "0 0 16 16",
954
- fill: "transparent",
955
- stroke: "currentColor",
956
- "stroke-linecap": "round",
957
- "stroke-width": "2",
958
- children: [c("title", {
959
- children: t("send")
960
- }), c("path", {
961
- d: "M3.5 7.5L8 3L12.5 7.5"
962
- }), c("path", {
963
- d: "M8 4V13"
964
- })]
965
- })
966
- });
967
- };
968
- var xe;
969
- // @__NO_SIDE_EFFECTS__
970
- function Gt(e) {
971
- return {
972
- lang: (e == null ? void 0 : e.lang) ?? (xe == null ? void 0 : xe.lang),
973
- message: e == null ? void 0 : e.message,
974
- abortEarly: (e == null ? void 0 : e.abortEarly) ?? (xe == null ? void 0 : xe.abortEarly),
975
- abortPipeEarly: (e == null ? void 0 : e.abortPipeEarly) ?? (xe == null ? void 0 : xe.abortPipeEarly)
976
- };
977
- }
978
- var Mt;
979
- // @__NO_SIDE_EFFECTS__
980
- function ba(e) {
981
- return Mt == null ? void 0 : Mt.get(e);
982
- }
983
- var Rt;
984
- // @__NO_SIDE_EFFECTS__
985
- function ga(e) {
986
- return Rt == null ? void 0 : Rt.get(e);
987
- }
988
- var Tt;
989
- // @__NO_SIDE_EFFECTS__
990
- function va(e, r) {
991
- var t;
992
- return (t = Tt == null ? void 0 : Tt.get(e)) == null ? void 0 : t.get(r);
993
- }
994
- // @__NO_SIDE_EFFECTS__
995
- function Xe(e) {
996
- var t, s;
997
- const r = typeof e;
998
- return r === "string" ? `"${e}"` : r === "number" || r === "bigint" || r === "boolean" ? `${e}` : r === "object" || r === "function" ? (e && ((s = (t = Object.getPrototypeOf(e)) == null ? void 0 : t.constructor) == null ? void 0 : s.name)) ?? "null" : r;
999
- }
1000
- function se(e, r, t, s, n) {
1001
- const a = n && "input" in n ? n.input : t.value, i = (n == null ? void 0 : n.expected) ?? e.expects ?? null, o = (n == null ? void 0 : n.received) ?? /* @__PURE__ */ Xe(a), l = {
1002
- kind: e.kind,
1003
- type: e.type,
1004
- input: a,
1005
- expected: i,
1006
- received: o,
1007
- message: `Invalid ${r}: ${i ? `Expected ${i} but r` : "R"}eceived ${o}`,
1008
- requirement: e.requirement,
1009
- path: n == null ? void 0 : n.path,
1010
- issues: n == null ? void 0 : n.issues,
1011
- lang: s.lang,
1012
- abortEarly: s.abortEarly,
1013
- abortPipeEarly: s.abortPipeEarly
1014
- }, f = e.kind === "schema", h = (n == null ? void 0 : n.message) ?? e.message ?? /* @__PURE__ */ va(e.reference, l.lang) ?? (f ? /* @__PURE__ */ ga(l.lang) : null) ?? s.message ?? /* @__PURE__ */ ba(l.lang);
1015
- h !== void 0 && (l.message = typeof h == "function" ? (
1016
- // @ts-expect-error
1017
- h(l)
1018
- ) : h), f && (t.typed = !1), t.issues ? t.issues.push(l) : t.issues = [l];
1019
- }
1020
- // @__NO_SIDE_EFFECTS__
1021
- function ge(e) {
1022
- return {
1023
- version: 1,
1024
- vendor: "valibot",
1025
- validate(r) {
1026
- return e["~run"]({ value: r }, /* @__PURE__ */ Gt());
1027
- }
1028
- };
1029
- }
1030
- // @__NO_SIDE_EFFECTS__
1031
- function xa(e, r) {
1032
- return Object.hasOwn(e, r) && r !== "__proto__" && r !== "prototype" && r !== "constructor";
1033
- }
1034
- // @__NO_SIDE_EFFECTS__
1035
- function wa(e, r) {
1036
- const t = [...new Set(e)];
1037
- return t.length > 1 ? `(${t.join(` ${r} `)})` : t[0] ?? "never";
1038
- }
1039
- // @__NO_SIDE_EFFECTS__
1040
- function _a(e) {
1041
- if (e.path) {
1042
- let r = "";
1043
- for (const t of e.path)
1044
- if (typeof t.key == "string" || typeof t.key == "number")
1045
- r ? r += `.${t.key}` : r += t.key;
1046
- else
1047
- return null;
1048
- return r;
1049
- }
1050
- return null;
1051
- }
1052
- var is = class extends Error {
1053
- /**
1054
- * Creates a Valibot error with useful information.
1055
- *
1056
- * @param issues The error issues.
1057
- */
1058
- constructor(e) {
1059
- super(e[0].message), this.name = "ValiError", this.issues = e;
1060
- }
1061
- }, ka = /^[\w+-]+(?:\.[\w+-]+)*@[\da-z]+(?:[.-][\da-z]+)*\.[a-z]{2,}$/iu;
1062
- // @__NO_SIDE_EFFECTS__
1063
- function os(e, r) {
1064
- return {
1065
- kind: "validation",
1066
- type: "check",
1067
- reference: os,
1068
- async: !1,
1069
- expects: null,
1070
- requirement: e,
1071
- message: r,
1072
- "~run"(t, s) {
1073
- return t.typed && !this.requirement(t.value) && se(this, "input", t, s), t;
1074
- }
1075
- };
1076
- }
1077
- // @__NO_SIDE_EFFECTS__
1078
- function ls(e) {
1079
- return {
1080
- kind: "validation",
1081
- type: "email",
1082
- reference: ls,
1083
- expects: null,
1084
- async: !1,
1085
- requirement: ka,
1086
- message: e,
1087
- "~run"(r, t) {
1088
- return r.typed && !this.requirement.test(r.value) && se(this, "email", r, t), r;
1089
- }
1090
- };
1091
- }
1092
- // @__NO_SIDE_EFFECTS__
1093
- function ct(e, r) {
1094
- return {
1095
- kind: "validation",
1096
- type: "max_length",
1097
- reference: ct,
1098
- async: !1,
1099
- expects: `<=${e}`,
1100
- requirement: e,
1101
- message: r,
1102
- "~run"(t, s) {
1103
- return t.typed && t.value.length > this.requirement && se(this, "length", t, s, {
1104
- received: `${t.value.length}`
1105
- }), t;
1106
- }
1107
- };
1108
- }
1109
- // @__NO_SIDE_EFFECTS__
1110
- function cs(e, r) {
1111
- return {
1112
- kind: "validation",
1113
- type: "max_value",
1114
- reference: cs,
1115
- async: !1,
1116
- expects: `<=${e instanceof Date ? e.toJSON() : /* @__PURE__ */ Xe(e)}`,
1117
- requirement: e,
1118
- message: r,
1119
- "~run"(t, s) {
1120
- return t.typed && !(t.value <= this.requirement) && se(this, "value", t, s, {
1121
- received: t.value instanceof Date ? t.value.toJSON() : /* @__PURE__ */ Xe(t.value)
1122
- }), t;
1123
- }
1124
- };
1125
- }
1126
- // @__NO_SIDE_EFFECTS__
1127
- function Ze(e, r) {
1128
- return {
1129
- kind: "validation",
1130
- type: "min_length",
1131
- reference: Ze,
1132
- async: !1,
1133
- expects: `>=${e}`,
1134
- requirement: e,
1135
- message: r,
1136
- "~run"(t, s) {
1137
- return t.typed && t.value.length < this.requirement && se(this, "length", t, s, {
1138
- received: `${t.value.length}`
1139
- }), t;
1140
- }
1141
- };
1142
- }
1143
- // @__NO_SIDE_EFFECTS__
1144
- function us(e, r) {
1145
- return {
1146
- kind: "validation",
1147
- type: "min_value",
1148
- reference: us,
1149
- async: !1,
1150
- expects: `>=${e instanceof Date ? e.toJSON() : /* @__PURE__ */ Xe(e)}`,
1151
- requirement: e,
1152
- message: r,
1153
- "~run"(t, s) {
1154
- return t.typed && !(t.value >= this.requirement) && se(this, "value", t, s, {
1155
- received: t.value instanceof Date ? t.value.toJSON() : /* @__PURE__ */ Xe(t.value)
1156
- }), t;
1157
- }
1158
- };
1159
- }
1160
- // @__NO_SIDE_EFFECTS__
1161
- function Jt(e, r) {
1162
- return {
1163
- kind: "validation",
1164
- type: "regex",
1165
- reference: Jt,
1166
- async: !1,
1167
- expects: `${e}`,
1168
- requirement: e,
1169
- message: r,
1170
- "~run"(t, s) {
1171
- return t.typed && !this.requirement.test(t.value) && se(this, "format", t, s), t;
1172
- }
1173
- };
1174
- }
1175
- // @__NO_SIDE_EFFECTS__
1176
- function Zt(e) {
1177
- return {
1178
- kind: "transformation",
1179
- type: "transform",
1180
- reference: Zt,
1181
- async: !1,
1182
- operation: e,
1183
- "~run"(r) {
1184
- return r.value = this.operation(r.value), r;
1185
- }
1186
- };
1187
- }
1188
- // @__NO_SIDE_EFFECTS__
1189
- function ds(e) {
1190
- return {
1191
- kind: "validation",
1192
- type: "url",
1193
- reference: ds,
1194
- async: !1,
1195
- expects: null,
1196
- requirement(r) {
1197
- try {
1198
- return new URL(r), !0;
1199
- } catch {
1200
- return !1;
1201
- }
1202
- },
1203
- message: e,
1204
- "~run"(r, t) {
1205
- return r.typed && !this.requirement(r.value) && se(this, "URL", r, t), r;
1206
- }
1207
- };
1208
- }
1209
- // @__NO_SIDE_EFFECTS__
1210
- function Ca(e, r, t) {
1211
- return typeof e.fallback == "function" ? (
1212
- // @ts-expect-error
1213
- e.fallback(r, t)
1214
- ) : (
1215
- // @ts-expect-error
1216
- e.fallback
1217
- );
1218
- }
1219
- // @__NO_SIDE_EFFECTS__
1220
- function fs(e, r, t) {
1221
- return typeof e.default == "function" ? (
1222
- // @ts-expect-error
1223
- e.default(r, t)
1224
- ) : (
1225
- // @ts-expect-error
1226
- e.default
1227
- );
1228
- }
1229
- // @__NO_SIDE_EFFECTS__
1230
- function hs(e, r) {
1231
- return {
1232
- kind: "schema",
1233
- type: "array",
1234
- reference: hs,
1235
- expects: "Array",
1236
- async: !1,
1237
- item: e,
1238
- message: r,
1239
- get "~standard"() {
1240
- return /* @__PURE__ */ ge(this);
1241
- },
1242
- "~run"(t, s) {
1243
- var a;
1244
- const n = t.value;
1245
- if (Array.isArray(n)) {
1246
- t.typed = !0, t.value = [];
1247
- for (let i = 0; i < n.length; i++) {
1248
- const o = n[i], l = this.item["~run"]({ value: o }, s);
1249
- if (l.issues) {
1250
- const f = {
1251
- type: "array",
1252
- origin: "value",
1253
- input: n,
1254
- key: i,
1255
- value: o
1256
- };
1257
- for (const h of l.issues)
1258
- h.path ? h.path.unshift(f) : h.path = [f], (a = t.issues) == null || a.push(h);
1259
- if (t.issues || (t.issues = l.issues), s.abortEarly) {
1260
- t.typed = !1;
1261
- break;
1262
- }
1263
- }
1264
- l.typed || (t.typed = !1), t.value.push(l.value);
1265
- }
1266
- } else
1267
- se(this, "type", t, s);
1268
- return t;
1269
- }
1270
- };
1271
- }
1272
- // @__NO_SIDE_EFFECTS__
1273
- function ps(e) {
1274
- return {
1275
- kind: "schema",
1276
- type: "boolean",
1277
- reference: ps,
1278
- expects: "boolean",
1279
- async: !1,
1280
- message: e,
1281
- get "~standard"() {
1282
- return /* @__PURE__ */ ge(this);
1283
- },
1284
- "~run"(r, t) {
1285
- return typeof r.value == "boolean" ? r.typed = !0 : se(this, "type", r, t), r;
1286
- }
1287
- };
1288
- }
1289
- // @__NO_SIDE_EFFECTS__
1290
- function ms(e) {
1291
- return {
1292
- kind: "schema",
1293
- type: "number",
1294
- reference: ms,
1295
- expects: "number",
1296
- async: !1,
1297
- message: e,
1298
- get "~standard"() {
1299
- return /* @__PURE__ */ ge(this);
1300
- },
1301
- "~run"(r, t) {
1302
- return typeof r.value == "number" && !isNaN(r.value) ? r.typed = !0 : se(this, "type", r, t), r;
1303
- }
1304
- };
1305
- }
1306
- // @__NO_SIDE_EFFECTS__
1307
- function Ce(e, r) {
1308
- return {
1309
- kind: "schema",
1310
- type: "object",
1311
- reference: Ce,
1312
- expects: "Object",
1313
- async: !1,
1314
- entries: e,
1315
- message: r,
1316
- get "~standard"() {
1317
- return /* @__PURE__ */ ge(this);
1318
- },
1319
- "~run"(t, s) {
1320
- var a;
1321
- const n = t.value;
1322
- if (n && typeof n == "object") {
1323
- t.typed = !0, t.value = {};
1324
- for (const i in this.entries) {
1325
- const o = this.entries[i];
1326
- if (i in n || (o.type === "exact_optional" || o.type === "optional" || o.type === "nullish") && // @ts-expect-error
1327
- o.default !== void 0) {
1328
- const l = i in n ? (
1329
- // @ts-expect-error
1330
- n[i]
1331
- ) : /* @__PURE__ */ fs(o), f = o["~run"]({ value: l }, s);
1332
- if (f.issues) {
1333
- const h = {
1334
- type: "object",
1335
- origin: "value",
1336
- input: n,
1337
- key: i,
1338
- value: l
1339
- };
1340
- for (const g of f.issues)
1341
- g.path ? g.path.unshift(h) : g.path = [h], (a = t.issues) == null || a.push(g);
1342
- if (t.issues || (t.issues = f.issues), s.abortEarly) {
1343
- t.typed = !1;
1344
- break;
1345
- }
1346
- }
1347
- f.typed || (t.typed = !1), t.value[i] = f.value;
1348
- } else if (o.fallback !== void 0)
1349
- t.value[i] = /* @__PURE__ */ Ca(o);
1350
- else if (o.type !== "exact_optional" && o.type !== "optional" && o.type !== "nullish" && (se(this, "key", t, s, {
1351
- input: void 0,
1352
- expected: `"${i}"`,
1353
- path: [
1354
- {
1355
- type: "object",
1356
- origin: "key",
1357
- input: n,
1358
- key: i,
1359
- // @ts-expect-error
1360
- value: n[i]
1361
- }
1362
- ]
1363
- }), s.abortEarly))
1364
- break;
1365
- }
1366
- } else
1367
- se(this, "type", t, s);
1368
- return t;
1369
- }
1370
- };
1371
- }
1372
- // @__NO_SIDE_EFFECTS__
1373
- function Je(e, r) {
1374
- return {
1375
- kind: "schema",
1376
- type: "optional",
1377
- reference: Je,
1378
- expects: `(${e.expects} | undefined)`,
1379
- async: !1,
1380
- wrapped: e,
1381
- default: r,
1382
- get "~standard"() {
1383
- return /* @__PURE__ */ ge(this);
1384
- },
1385
- "~run"(t, s) {
1386
- return t.value === void 0 && (this.default !== void 0 && (t.value = /* @__PURE__ */ fs(this, t, s)), t.value === void 0) ? (t.typed = !0, t) : this.wrapped["~run"](t, s);
1387
- }
1388
- };
1389
- }
1390
- // @__NO_SIDE_EFFECTS__
1391
- function ys(e, r) {
1392
- return {
1393
- kind: "schema",
1394
- type: "picklist",
1395
- reference: ys,
1396
- expects: /* @__PURE__ */ wa(e.map(Xe), "|"),
1397
- async: !1,
1398
- options: e,
1399
- message: r,
1400
- get "~standard"() {
1401
- return /* @__PURE__ */ ge(this);
1402
- },
1403
- "~run"(t, s) {
1404
- return this.options.includes(t.value) ? t.typed = !0 : se(this, "type", t, s), t;
1405
- }
1406
- };
1407
- }
1408
- // @__NO_SIDE_EFFECTS__
1409
- function bs(e, r, t) {
1410
- return {
1411
- kind: "schema",
1412
- type: "record",
1413
- reference: bs,
1414
- expects: "Object",
1415
- async: !1,
1416
- key: e,
1417
- value: r,
1418
- message: t,
1419
- get "~standard"() {
1420
- return /* @__PURE__ */ ge(this);
1421
- },
1422
- "~run"(s, n) {
1423
- var i, o;
1424
- const a = s.value;
1425
- if (a && typeof a == "object") {
1426
- s.typed = !0, s.value = {};
1427
- for (const l in a)
1428
- if (/* @__PURE__ */ xa(a, l)) {
1429
- const f = a[l], h = this.key["~run"]({ value: l }, n);
1430
- if (h.issues) {
1431
- const m = {
1432
- type: "object",
1433
- origin: "key",
1434
- input: a,
1435
- key: l,
1436
- value: f
1437
- };
1438
- for (const y of h.issues)
1439
- y.path = [m], (i = s.issues) == null || i.push(y);
1440
- if (s.issues || (s.issues = h.issues), n.abortEarly) {
1441
- s.typed = !1;
1442
- break;
1443
- }
1444
- }
1445
- const g = this.value["~run"](
1446
- { value: f },
1447
- n
1448
- );
1449
- if (g.issues) {
1450
- const m = {
1451
- type: "object",
1452
- origin: "value",
1453
- input: a,
1454
- key: l,
1455
- value: f
1456
- };
1457
- for (const y of g.issues)
1458
- y.path ? y.path.unshift(m) : y.path = [m], (o = s.issues) == null || o.push(y);
1459
- if (s.issues || (s.issues = g.issues), n.abortEarly) {
1460
- s.typed = !1;
1461
- break;
1462
- }
1463
- }
1464
- (!h.typed || !g.typed) && (s.typed = !1), h.typed && (s.value[h.value] = g.value);
1465
- }
1466
- } else
1467
- se(this, "type", s, n);
1468
- return s;
1469
- }
1470
- };
1471
- }
1472
- // @__NO_SIDE_EFFECTS__
1473
- function le(e) {
1474
- return {
1475
- kind: "schema",
1476
- type: "string",
1477
- reference: le,
1478
- expects: "string",
1479
- async: !1,
1480
- message: e,
1481
- get "~standard"() {
1482
- return /* @__PURE__ */ ge(this);
1483
- },
1484
- "~run"(r, t) {
1485
- return typeof r.value == "string" ? r.typed = !0 : se(this, "type", r, t), r;
1486
- }
1487
- };
1488
- }
1489
- function gs(e, r, t) {
1490
- const s = e["~run"]({ value: r }, /* @__PURE__ */ Gt(t));
1491
- if (s.issues)
1492
- throw new is(s.issues);
1493
- return s.value;
1494
- }
1495
- // @__NO_SIDE_EFFECTS__
1496
- function Sa(e, r) {
1497
- const t = {};
1498
- for (const s in e.entries)
1499
- t[s] = !r || r.includes(s) ? /* @__PURE__ */ Je(e.entries[s]) : e.entries[s];
1500
- return {
1501
- ...e,
1502
- entries: t,
1503
- get "~standard"() {
1504
- return /* @__PURE__ */ ge(this);
1505
- }
1506
- };
1507
- }
1508
- // @__NO_SIDE_EFFECTS__
1509
- function Le(...e) {
1510
- return {
1511
- ...e[0],
1512
- pipe: e,
1513
- get "~standard"() {
1514
- return /* @__PURE__ */ ge(this);
1515
- },
1516
- "~run"(r, t) {
1517
- for (const s of e)
1518
- if (s.kind !== "metadata") {
1519
- if (r.issues && (s.kind === "schema" || s.kind === "transformation")) {
1520
- r.typed = !1;
1521
- break;
1522
- }
1523
- (!r.issues || !t.abortEarly && !t.abortPipeEarly) && (r = s["~run"](r, t));
1524
- }
1525
- return r;
1526
- }
1527
- };
1528
- }
1529
- // @__NO_SIDE_EFFECTS__
1530
- async function Aa(e, r, t) {
1531
- const s = await e["~run"](
1532
- { value: r },
1533
- /* @__PURE__ */ Gt(t)
1534
- );
1535
- return {
1536
- typed: s.typed,
1537
- success: !s.issues,
1538
- output: s.value,
1539
- issues: s.issues
1540
- };
1541
- }
1542
- const tt = ({
1543
- error: e
1544
- }) => !e || !e.message ? null : c("div", {
1545
- role: "alert",
1546
- class: "text-error-11 flex max-w-full items-start gap-1 overflow-hidden rounded-2xl px-2 py-2",
1547
- children: [c("svg", {
1548
- class: "text-error-9 mt-0.5 h-4 w-4 shrink-0",
1549
- viewBox: "0 0 16 16",
1550
- fill: "none",
1551
- xmlns: "http://www.w3.org/2000/svg",
1552
- children: [c("circle", {
1553
- cx: "8",
1554
- cy: "8",
1555
- r: "6.3",
1556
- stroke: "currentColor",
1557
- "stroke-width": "1.4"
1558
- }), c("rect", {
1559
- x: "7",
1560
- y: "4",
1561
- width: "2",
1562
- height: "5",
1563
- fill: "currentColor"
1564
- }), c("rect", {
1565
- x: "7",
1566
- y: "10",
1567
- width: "2",
1568
- height: "2",
1569
- fill: "currentColor"
1570
- })]
1571
- }), c("p", {
1572
- class: "break-words pr-1 text-sm",
1573
- children: e.message
1574
- })]
1575
- }), Se = ({
1576
- class: e,
1577
- ...r
1578
- }) => {
1579
- const {
1580
- t
1581
- } = re();
1582
- return c("button", {
1583
- type: "button",
1584
- class: Qe("fr touch-hitbox text-neutral-11 bg-neutral-1 ring-divider hover:ring-divider active:ring-interactive-bg-hover hover:text-neutral-12 active:text-neutral-12 hover:bg-divider active:bg-interactive-bg-hover flex flex-shrink-0 items-center justify-center gap-1 self-center rounded-full py-1 pl-2 pr-2.5 text-sm ring-1 transition-all", e),
1585
- ...r,
1586
- children: [c("svg", {
1587
- "aria-hidden": !0,
1588
- class: "block",
1589
- width: "16",
1590
- height: "16",
1591
- viewBox: "0 0 16 16",
1592
- fill: "transparent",
1593
- stroke: "currentColor",
1594
- "stroke-linecap": "round",
1595
- "stroke-width": "1.5",
1596
- children: [c("title", {
1597
- children: t("skip")
1598
- }), c("path", {
1599
- d: "M3.25 11.25A5 5 0 0 1 12 7"
1600
- }), c("path", {
1601
- d: "M13.25 4.5V8.25H9.5"
1602
- })]
1603
- }), t("skip")]
1604
- });
1605
- };
1606
- var Xt = { Afghanistan: "93", Albania: "355", Algeria: "213", "American Samoa": "1 684", Andorra: "376", Angola: "244", Anguilla: "1 264", Antarctica: "672", "Antigua and Barbuda": "1 268", Argentina: "54", Armenia: "374", Aruba: "297", Australia: "61", Austria: "43", Azerbaijan: "994", Bahrain: "973", Bangladesh: "880", Barbados: "1 246", Belarus: "375", Belgium: "32", Belize: "501", Benin: "229", Bermuda: "1 441", Bhutan: "975", Bolivia: "591", "Bosnia and Herzegovina": "387", Botswana: "267", "Bouvet Island": "47", Brazil: "55", "British Indian Ocean Territory": "246", "British Virgin Islands": "1 284", Brunei: "673", Bulgaria: "359", "Burkina Faso": "226", Burundi: "257", "Cabo Verde": "238", Cambodia: "855", Cameroon: "237", Canada: "1", "Caribbean Netherlands": "599", "Cayman Islands": "1 345", "Central African Republic": "236", Chad: "235", Chile: "56", China: "86", "Christmas Island": "61", "Cocos (Keeling) Islands": "61", Colombia: "57", Comoros: "269", "Cook Islands": "682", "Costa Rica": "506", Croatia: "385", Cuba: "53", Curaçao: "599", Cyprus: "357", Czechia: "420", "Côte d'Ivoire": "225", "Democratic Republic of the Congo": "243", Denmark: "45", Djibouti: "253", "Dominican Republic": "1 809", Ecuador: "593", Egypt: "20", "El Salvador": "503", "Equatorial Guinea": "240", Eritrea: "291", Estonia: "372", Eswatini: "268", Ethiopia: "251", "Falkland Islands (Islas Malvinas)": "500", "Faroe Islands": "298", Fiji: "679", Finland: "358", France: "33", "French Guiana": "594", "French Polynesia": "689", "French Southern and Antarctic Lands": "262", Gabon: "241", Georgia: "995", Germany: "49", Ghana: "233", Gibraltar: "350", Greece: "30", Greenland: "299", Grenada: "1 473", Guadeloupe: "590", Guam: "1 671", Guatemala: "502", Guernsey: "44", Guinea: "224", "Guinea-Bissau": "245", Guyana: "592", Haiti: "509", Honduras: "504", "Hong Kong": "852", Hungary: "36", Iceland: "354", India: "91", Indonesia: "62", Iran: "98", Iraq: "964", Ireland: "353", "Isle of Man": "44", Israel: "972", Italy: "39", Jamaica: "1 876", Japan: "81", Jersey: "44", Jordan: "962", Kazakhstan: "7", Kenya: "254", Kiribati: "686", Kosovo: "383", Kuwait: "965", Kyrgyzstan: "996", Laos: "856", Latvia: "371", Lebanon: "961", Lesotho: "266", Liberia: "231", Libya: "218", Liechtenstein: "423", Lithuania: "370", Luxembourg: "352", Macao: "853", Madagascar: "261", Malawi: "265", Malaysia: "60", Maldives: "960", Mali: "223", Malta: "356", "Marshall Islands": "692", Martinique: "596", Mauritania: "222", Mauritius: "230", Mayotte: "262", Mexico: "52", Micronesia: "691", Moldova: "373", Monaco: "377", Mongolia: "976", Montenegro: "382", Montserrat: "1 664", Morocco: "212", Mozambique: "258", "Myanmar (Burma)": "95", Namibia: "264", Nauru: "674", Nepal: "977", Netherlands: "31", "New Caledonia": "687", "New Zealand": "64", Nicaragua: "505", Niger: "227", Nigeria: "234", Niue: "683", "Norfolk Island": "672", "North Korea": "850", "North Macedonia": "389", "Northern Mariana Islands": "1 670", Norway: "47", Oman: "968", Pakistan: "92", Palau: "680", Palestine: "970", Panama: "507", "Papua New Guinea": "675", Paraguay: "595", Peru: "51", Philippines: "63", "Pitcairn Islands": "64", Poland: "48", Portugal: "351", "Puerto Rico": "1 787", Qatar: "974", Romania: "40", Russia: "7", Rwanda: "250", Réunion: "262", "Saint Barthélemy": "590", "Saint Helena, Ascension and Tristan da Cunha": "290", "Saint Kitts and Nevis": "1 869", "Saint Lucia": "1 758", "Saint Martin": "590", "Saint Pierre and Miquelon": "508", "Saint Vincent and the Grenadines": "1 784", Samoa: "685", "San Marino": "378", "Saudi Arabia": "966", Senegal: "221", Serbia: "381", Seychelles: "248", "Sierra Leone": "232", Singapore: "65", "Sint Maarten": "1 721", Slovakia: "421", Slovenia: "386", "Solomon Islands": "677", Somalia: "252", "South Africa": "27", "South Georgia and the South Sandwich Islands": "500", "South Korea": "82", "South Sudan": "211", Spain: "34", "Sri Lanka": "94", Sudan: "249", Suriname: "597", "Svalbard and Jan Mayen": "47", Sweden: "46", Switzerland: "41", Syria: "963", "São Tomé and Príncipe": "239", Taiwan: "886", Tajikistan: "992", Tanzania: "255", Thailand: "66", "The Bahamas": "1 242", "The Gambia": "220", "Timor-Leste": "670", Togo: "228", Tokelau: "690", Tonga: "676", "Trinidad and Tobago": "1 868", Tunisia: "216", Turkmenistan: "993", "Turks and Caicos Islands": "1 649", Tuvalu: "688", Türkiye: "90", "U.S. Virgin Islands": "1 340", Uganda: "256", Ukraine: "380", "United Arab Emirates": "971", "United Kingdom": "44", "United States": "1", "United States Minor Outlying Islands": "1", Uruguay: "598", Uzbekistan: "998", Vanuatu: "678", "Vatican City": "379", Venezuela: "58", Vietnam: "84", "Wallis and Futuna": "681", "Western Sahara": "212", Yemen: "967", Zambia: "260", Zimbabwe: "263", "Åland Islands": "358" }, Ea = (e) => {
1607
- if (e === "")
1608
- return { countryCode: "", phoneNumber: "" };
1609
- let r = Object.values(Xt).find((s) => e.startsWith(s)) ?? "", t = e.replace(r, "");
1610
- return /^\d+$/.test(t) ? { countryCode: r, phoneNumber: t } : { countryCode: "", phoneNumber: "" };
1611
- };
1612
- const Ye = wt("outline-divider ease-expo-out placeholder:text-neutral-10 text-neutral-12 focus-visible:outline-accent-7 caret-accent-9 bg-lowest py-1 text-base outline outline-2 transition-all", {
1613
- variants: {
1614
- optional: {
1615
- true: "pr-16 pl-3",
1616
- false: "pl-3 pr-3"
1617
- }
1618
- },
1619
- defaultVariants: {
1620
- optional: !1
1621
- }
1622
- }), Ia = "https://api.mapbox.com/search/searchbox/v1/suggest", Fa = "ZzRDWFU0dTZ3SF9aWk9RNGl6QzZaWS5RZmlFak13a0hPbGxXZXlNSGN5RUhObUJ6TXpSV08yUW5OdE5tSTZJU1lpd2lJb1JYYXRObmJ2Tm5iaGhHZWx4V1lpb2pJMUp5ZS5rcA==", Va = (e) => atob(e).split("").reverse().join(""), we = /* @__PURE__ */ Ce({
1623
- name: /* @__PURE__ */ le()
1624
- }), La = /* @__PURE__ */ Ce({
1625
- suggestions: /* @__PURE__ */ hs(/* @__PURE__ */ Ce({
1626
- feature_type: /* @__PURE__ */ Je(/* @__PURE__ */ le()),
1627
- full_address: /* @__PURE__ */ Je(/* @__PURE__ */ le()),
1628
- place_formatted: /* @__PURE__ */ Je(/* @__PURE__ */ le()),
1629
- name: /* @__PURE__ */ Je(/* @__PURE__ */ le()),
1630
- mapbox_id: /* @__PURE__ */ le(),
1631
- context: /* @__PURE__ */ Sa(/* @__PURE__ */ Ce({
1632
- address: we,
1633
- street: we,
1634
- neighborhood: we,
1635
- locality: we,
1636
- district: we,
1637
- place: we,
1638
- region: we,
1639
- postcode: we,
1640
- country: we
1641
- }))
1642
- }))
1643
- }), Ma = (e) => (_t(() => {
1644
- e && ur(e);
1645
- }, [e]), en(() => {
1646
- var t;
1647
- const r = (t = z.current$.peek().flow) == null ? void 0 : t.data.flowSessionId;
1648
- return r ? {
1649
- enabled: !0,
1650
- getPredictions: async (s, n) => {
1651
- var g;
1652
- const a = new URL(Ia);
1653
- a.searchParams.set("q", s), a.searchParams.set("session_token", r);
1654
- const i = e && ur(e);
1655
- a.searchParams.set("limit", "5");
1656
- const o = (g = z.current$.peek().flow) == null ? void 0 : g.locationOrigin;
1657
- return o && o.lat !== void 0 && o.lng !== void 0 && o.lat >= -90 && o.lat <= 90 && o.lng >= -180 && o.lng <= 180 && a.searchParams.set("proximity", `${o.lng},${o.lat}`), a.searchParams.set("access_token", Va(Fa)), (await dn(async (m) => {
1658
- const y = new URL(a);
1659
- m && y.searchParams.set("country", m);
1660
- const k = await fetch(y.href, {
1661
- signal: n
1662
- });
1663
- if (!k.ok)
1664
- throw new Error(`Address lookup failed with ${k.status}`);
1665
- return gs(La, await k.json()).suggestions;
1666
- }, i, n)).map((m) => {
1667
- var y, k, _, w, S, x, N, T, A;
1668
- return {
1669
- country: i,
1670
- // A postcode result has no full address and is named by the postcode itself (PROD-7311).
1671
- label: m.full_address ?? ([m.name, m.place_formatted].filter(Boolean).join(", ") || m.mapbox_id),
1672
- id: m.mapbox_id,
1673
- address: {
1674
- line1: ((y = m.context.address) == null ? void 0 : y.name) ?? ((k = m.context.street) == null ? void 0 : k.name),
1675
- line2: void 0,
1676
- line3: ((_ = m.context.neighborhood) == null ? void 0 : _.name) ?? ((w = m.context.locality) == null ? void 0 : w.name),
1677
- city: ((S = m.context.place) == null ? void 0 : S.name) ?? ((x = m.context.district) == null ? void 0 : x.name),
1678
- state: (N = m.context.region) == null ? void 0 : N.name,
1679
- postcode: ((T = m.context.postcode) == null ? void 0 : T.name) ?? (m.feature_type === "postcode" ? m.name : void 0),
1680
- country: (A = m.context.country) == null ? void 0 : A.name
1681
- }
1682
- };
1683
- });
1684
- }
1685
- } : {
1686
- enabled: !1
1687
- };
1688
- }, [e])), gr = (e) => {
1689
- const {
1690
- t: r
1691
- } = re();
1692
- return c("button", {
1693
- type: "button",
1694
- class: "touch-hitbox text-neutral-11 hover:bg-neutral-4 hover:text-neutral-12 hover:border-neutral-5 relative flex items-center gap-1 rounded-[18px] border border-solid border-transparent px-3 py-1 pl-1.5 text-sm transition-colors",
1695
- ...e,
1696
- children: [c("svg", {
1697
- width: "16",
1698
- height: "16",
1699
- viewBox: "0 0 16 16",
1700
- stroke: "currentColor",
1701
- "stroke-width": "1.5",
1702
- fill: "none",
1703
- xmlns: "http://www.w3.org/2000/svg",
1704
- children: c("path", {
1705
- d: "M10 3L5 8L10 13"
1706
- })
1707
- }), c("span", {
1708
- children: r("back")
1709
- })]
1710
- });
1711
- }, Ra = ({
1712
- input: e,
1713
- onSubmitSuccess: r,
1714
- logger: t,
1715
- analytics: s,
1716
- rpcClient: n
1717
- }) => {
1718
- const {
1719
- t: a
1720
- } = re(), [i, o] = ke(), {
1721
- enabled: l,
1722
- getPredictions: f
1723
- } = Ma(n), [h, g] = ke(l ? "query" : "manual"), [m, y] = ke(""), [k, _] = ke(), w = ye(), S = () => {
1724
- var A;
1725
- (A = w.current) == null || A.controller.abort(), w.current = void 0;
1726
- };
1727
- _t(() => S, []);
1728
- const x = ye(), N = (A) => {
1729
- var O;
1730
- if (Oe(l, "Query state should not be enabled"), A = A.trim(), A === ((O = w.current) == null ? void 0 : O.query) || A === (k == null ? void 0 : k.query) && k.status === "done")
1731
- return;
1732
- if (S(), y(A), A === "") {
1733
- _(void 0);
1734
- return;
1735
- }
1736
- const q = w.current = {
1737
- query: A,
1738
- controller: new AbortController()
1739
- };
1740
- _({
1741
- query: A,
1742
- status: "pending"
1743
- }), f(A, q.controller.signal).then((V) => {
1744
- w.current === q && (w.current = void 0, _({
1745
- query: A,
1746
- status: "done",
1747
- items: V
1748
- }));
1749
- }, (V) => {
1750
- w.current === q && (w.current = void 0, t.error("Failed to get address details", V instanceof is ? "Unexpected response" : V), _({
1751
- query: A,
1752
- status: "failed",
1753
- error: a("address_error")
1754
- }));
1755
- });
1756
- }, T = (A, q) => {
1757
- o((O) => ({
1758
- ...O,
1759
- [A]: q
1760
- }));
1761
- };
1762
- switch (h) {
1763
- case "query":
1764
- return Oe(l, "Query state should not be enabled"), c(Ta, {
1765
- input: e,
1766
- onSkip: () => r(null),
1767
- onAddressSelect: (A, q) => {
1768
- if (A === "") {
1769
- w.current && (S(), _(void 0)), g("manual");
1770
- return;
1771
- }
1772
- const O = (k == null ? void 0 : k.status) === "done" ? k.items.find((V) => V.id === A) : void 0;
1773
- O && (mn({
1774
- query: q,
1775
- country: O.country,
1776
- pickedLabel: O.label,
1777
- pickedPostcode: O.address.postcode,
1778
- pickedCountry: O.address.country,
1779
- pickedState: O.address.state,
1780
- log: (V) => s.log({
1781
- event: "ADDRESS_SHADOW_COMPARED",
1782
- properties: V
1783
- })
1784
- }), x.current !== A && o(O.address), x.current = A, g("details"));
1785
- },
1786
- onAddressSearch: N,
1787
- lookup: k,
1788
- query: m
1789
- });
1790
- case "details":
1791
- return Oe(i !== void 0), c(vr, {
1792
- input: e,
1793
- logger: t,
1794
- onSubmitSuccess: r,
1795
- addressFields: i,
1796
- onFieldChange: T,
1797
- actions: c(gr, {
1798
- onClick: () => {
1799
- g("query");
1800
- }
1801
- })
1802
- });
1803
- case "manual":
1804
- return c(vr, {
1805
- logger: t,
1806
- input: e,
1807
- onSubmitSuccess: r,
1808
- addressFields: i ?? {},
1809
- onFieldChange: T,
1810
- actions: l ? c(gr, {
1811
- onClick: () => {
1812
- g("query");
1813
- }
1814
- }) : e.config.optional ? (
1815
- // Without address search this is the only screen, so an optional question needs its own way past.
1816
- c(Se, {
1817
- onClick: () => r(null)
1818
- })
1819
- ) : void 0
1820
- });
1821
- }
1822
- }, Ta = ({
1823
- input: e,
1824
- onSkip: r,
1825
- lookup: t,
1826
- onAddressSelect: s,
1827
- query: n,
1828
- onAddressSearch: a
1829
- }) => {
1830
- const {
1831
- t: i
1832
- } = re(), o = ye(null);
1833
- return Me(() => {
1834
- o.current && (o.current.focus(), o.current.select());
1835
- }, []), c(be, {
1836
- children: [c("form", {
1837
- noValidate: !0,
1838
- onSubmit: (l) => {
1839
- l.preventDefault();
1840
- const h = new FormData(l.currentTarget).get("address");
1841
- typeof h == "string" && a(h);
1842
- },
1843
- class: "flex gap-2 p-2.5",
1844
- children: [c("div", {
1845
- class: "group relative flex-1",
1846
- children: [c("input", {
1847
- ref: o,
1848
- name: "address",
1849
- id: "chat-address",
1850
- autocomplete: "address-line1",
1851
- autoFocus: !0,
1852
- placeholder: e.config.placeholder || i("address_search"),
1853
- defaultValue: n,
1854
- class: Ye({
1855
- optional: !!e.config.optional,
1856
- className: "w-full rounded-full"
1857
- })
1858
- }), c("button", {
1859
- type: "submit",
1860
- class: "touch-hitbox text-neutral-12 hover:bg-neutral-3 fr absolute bottom-0 right-0 top-0 flex cursor-pointer items-center gap-1 rounded-full px-3 transition-all",
1861
- children: [c("svg", {
1862
- "aria-hidden": "true",
1863
- width: "16",
1864
- height: "16",
1865
- viewBox: "0 0 16 16",
1866
- fill: "none",
1867
- xmlns: "http://www.w3.org/2000/svg",
1868
- children: c("g", {
1869
- id: "inploi",
1870
- stroke: "currentColor",
1871
- "stroke-linecap": "round",
1872
- "stroke-linejoin": "round",
1873
- strokeWidth: "1.5",
1874
- children: [c("circle", {
1875
- cx: "7",
1876
- cy: "7",
1877
- r: "4"
1878
- }), c("path", {
1879
- d: "M10 10L13 13"
1880
- })]
1881
- })
1882
- }), c("span", {
1883
- class: "sr-only",
1884
- children: i("search")
1885
- })]
1886
- })]
1887
- }), e.config.optional && c(Se, {
1888
- class: "relative",
1889
- onClick: r
1890
- })]
1891
- }), (t == null ? void 0 : t.status) === "failed" ? c(tt, {
1892
- error: {
1893
- message: t.error
1894
- }
1895
- }) : null, c("p", {
1896
- role: "status",
1897
- class: (t == null ? void 0 : t.status) === "pending" || (t == null ? void 0 : t.status) === "done" && t.items.length === 0 ? "text-neutral-11 flex items-center gap-2 px-4 py-2 text-sm" : "sr-only",
1898
- children: (t == null ? void 0 : t.status) === "pending" ? c(be, {
1899
- children: [c(Wt, {
1900
- "aria-hidden": "true",
1901
- class: "h-4 w-4 shrink-0"
1902
- }), i("address_searching")]
1903
- }) : (t == null ? void 0 : t.status) === "done" && t.items.length === 0 ? i("address_no_results") : null
1904
- }), c("ul", {
1905
- children: [((t == null ? void 0 : t.status) === "done" ? t.items : []).map((l) => c("li", {
1906
- children: c("button", {
1907
- class: "text-neutral-11 fr hover:bg-neutral-3 focus-visible:bg-neutral-3 hover:text-neutral-12 border-b-neutral-3 flex w-full items-center border border-b border-solid border-transparent px-4 py-3 text-sm transition-colors duration-100",
1908
- onClick: () => {
1909
- var f;
1910
- s(l.id, ((f = o.current) == null ? void 0 : f.value) ?? n ?? "");
1911
- },
1912
- children: [c("span", {
1913
- class: "flex-grow",
1914
- children: l.label
1915
- }), c("svg", {
1916
- class: "flex-none",
1917
- width: "16",
1918
- height: "16",
1919
- viewBox: "0 0 16 16",
1920
- stroke: "currentColor",
1921
- "stroke-width": "1.5",
1922
- fill: "none",
1923
- xmlns: "http://www.w3.org/2000/svg",
1924
- children: c("path", {
1925
- d: "M6 3L11 8L6 13"
1926
- })
1927
- })]
1928
- })
1929
- }, l.id)), c("li", {
1930
- children: c("button", {
1931
- class: "text-neutral-11 fr hover:bg-neutral-3 focus-visible:bg-neutral-3 hover:text-neutral-12 border-b-neutral-3 flex w-full items-center border border-b border-solid border-transparent px-4 py-3 text-sm transition-colors duration-100",
1932
- onClick: () => {
1933
- var l;
1934
- s("", ((l = o.current) == null ? void 0 : l.value) ?? n ?? "");
1935
- },
1936
- children: c("span", {
1937
- class: "flex-grow",
1938
- children: i("address_manual")
1939
- })
1940
- })
1941
- }, "")]
1942
- })]
1943
- });
1944
- }, Dt = ["line1", "line2", "line3", "city", "state", "postcode", "country"], vr = ({
1945
- addressFields: e,
1946
- onFieldChange: r,
1947
- onSubmitSuccess: t,
1948
- actions: s,
1949
- input: n
1950
- }) => {
1951
- const a = ye(null);
1952
- Me(() => {
1953
- if (a.current) {
1954
- const l = a.current.querySelector("input");
1955
- l && (l.focus(), l.select());
1956
- }
1957
- }, []);
1958
- const i = Object.keys(Xt), {
1959
- t: o
1960
- } = re();
1961
- return c("form", {
1962
- class: "flex flex-col px-2 pt-2",
1963
- onSubmit: (l) => {
1964
- l.preventDefault();
1965
- const f = l.currentTarget, h = [...f.querySelectorAll("input")].filter((y) => y.value !== "" && !y.value.trim());
1966
- for (const y of h) {
1967
- y.value = "";
1968
- const k = Dt.find((_) => n.config.keys[_] === y.name);
1969
- k && r(k, "");
1970
- }
1971
- if (h.length > 0 && !f.checkValidity()) {
1972
- f.reportValidity();
1973
- return;
1974
- }
1975
- const g = new FormData(f), m = Object.fromEntries(g.entries());
1976
- t({
1977
- type: "address",
1978
- value: m
1979
- });
1980
- },
1981
- children: [c("div", {
1982
- class: "bg-neutral-3 border-neutral-5 grid items-center gap-1.5 rounded-2xl border pb-2 pl-4 pr-3 pt-3 [grid-template-columns:min-content_1fr]",
1983
- ref: a,
1984
- children: Dt.map((l, f) => {
1985
- const h = `isdk_${l}`, g = n.config.keys[l];
1986
- return g ? c(be, {
1987
- children: [c("label", {
1988
- for: h,
1989
- class: "text-neutral-11 [&:has(+*>input:focus)]:text-neutral-12 w-24 pb-2 text-xs uppercase leading-3 tracking-widest transition-colors",
1990
- children: o(l)
1991
- }), c("div", {
1992
- class: "flex flex-col items-stretch gap-1.5",
1993
- children: [l === "country" ? c("div", {
1994
- class: "relative",
1995
- children: [c("select", {
1996
- class: "text-neutral-12 hover:bg-neutral-4 placeholder:text-neutral-8 focus:bg-neutral-5 w-full flex-1 appearance-none rounded-lg border-solid bg-transparent bg-none px-3 py-1.5 text-base transition-colors focus:outline-none",
1997
- name: g,
1998
- id: h,
1999
- defaultValue: e[l],
2000
- onChange: (m) => r(l, m.currentTarget.value),
2001
- required: !0,
2002
- children: [e.country && !i.includes(e.country) ? c("option", {
2003
- value: e[l],
2004
- children: e[l]
2005
- }) : c("option", {
2006
- value: "",
2007
- children: o("select_country")
2008
- }), i.map((m) => c("option", {
2009
- value: m,
2010
- children: m
2011
- }, m))]
2012
- }), c("svg", {
2013
- class: "text-neutral-12 absolute bottom-2.5 right-2 flex items-center justify-center",
2014
- width: "16",
2015
- height: "16",
2016
- stroke: "currentColor",
2017
- "stroke-width": "1.5",
2018
- "stroke-linecap": "round",
2019
- "stroke-linejoin": "round",
2020
- viewBox: "0 0 16 16",
2021
- fill: "none",
2022
- xmlns: "http://www.w3.org/2000/svg",
2023
- children: c("path", {
2024
- d: "M4 6.5L8 10.5L12 6.5"
2025
- })
2026
- })]
2027
- }) : c("input", {
2028
- autoFocus: f === 0 ? !0 : void 0,
2029
- class: "text-neutral-12 hover:bg-neutral-4 placeholder:text-neutral-8 focus:bg-neutral-5 flex-1 rounded-lg border-solid bg-transparent px-3 py-1.5 text-base transition-colors autofill:shadow-[inset_0_0_0_1000px_hsl(210_16.7%_97.6%)] focus:outline-none",
2030
- name: g,
2031
- id: h,
2032
- defaultValue: e[l],
2033
- onInput: (m) => r(l, m.currentTarget.value),
2034
- required: l === "line2" ? n.config.line2Required === !0 : l !== "line3"
2035
- }), f === Dt.length - 1 ? c("hr", {
2036
- class: "m-0 w-full border-b border-b-transparent"
2037
- }) : c("hr", {
2038
- class: "border-b-neutral-5 m-0 w-full border-b border-solid"
2039
- })]
2040
- })]
2041
- }) : null;
2042
- })
2043
- }), c("div", {
2044
- class: "bg-neutral-1 sticky bottom-0 flex items-center py-2",
2045
- children: [s, c(je, {
2046
- class: "ml-auto"
2047
- })]
2048
- })]
2049
- });
2050
- }, Yt = () => {
2051
- const e = ye(null);
2052
- return _t(() => {
2053
- var r;
2054
- (r = e.current) == null || r.focus();
2055
- }, []), e;
2056
- }, vs = ["true", "false"], Da = /* @__PURE__ */ ys(vs), Na = "answer", xs = "flex items-center flex-wrap gap-2 p-2.5", ws = "min-w-0 max-w-full flex-auto", _s = Yr(({
2057
- label: e,
2058
- ...r
2059
- }, t) => c("button", {
2060
- class: "bg-lowest ease-expo-out ring-divider text-neutral-12 active:ring-accent-7 active:bg-accent-2 active:text-accent-11 fr block w-full overflow-hidden rounded-2xl px-2 py-2.5 ring-2 transition-all selection:bg-transparent",
2061
- ...r,
2062
- ref: t,
2063
- children: c("p", {
2064
- class: "text-center text-base",
2065
- children: e
2066
- })
2067
- })), Oa = ({
2068
- input: e,
2069
- onSubmitSuccess: r
2070
- }) => {
2071
- const t = Yt();
2072
- return c("form", {
2073
- noValidate: !0,
2074
- class: "",
2075
- onSubmit: (s) => {
2076
- s.preventDefault();
2077
- const n = tn(s).value, a = gs(Da, n);
2078
- r({
2079
- type: "boolean",
2080
- value: a === "true"
2081
- });
2082
- },
2083
- children: [c("ul", {
2084
- class: xs,
2085
- children: vs.map((s, n) => c("li", {
2086
- class: ws,
2087
- children: c(_s, {
2088
- ref: n === 0 ? t : null,
2089
- type: "submit",
2090
- name: Na,
2091
- value: s,
2092
- label: e.config.labels[s]
2093
- }, s)
2094
- }))
2095
- }), e.config.optional && c("div", {
2096
- class: "px-2 pb-2",
2097
- children: c(Se, {
2098
- class: "relative w-full",
2099
- type: "button",
2100
- onClick: () => r(null)
2101
- })
2102
- })]
2103
- });
2104
- }, xr = (e) => e.reduce((r, t) => r + t.sizeKb, 0), ja = et("file"), wr = 3, kt = (e) => {
2105
- const r = e.lastIndexOf(".");
2106
- return r === -1 ? [e, ""] : [e.slice(0, r), e.slice(r)];
2107
- }, $a = ({
2108
- file: e,
2109
- class: r,
2110
- ...t
2111
- }) => {
2112
- const {
2113
- t: s
2114
- } = re(), [n, a] = kt(e.name);
2115
- return c("div", {
2116
- class: Qe("bg-accent-1 outline-accent-4 flex max-w-full gap-2 overflow-hidden rounded-lg px-3 py-2 text-sm outline", r),
2117
- ...t,
2118
- children: [c("p", {
2119
- class: "text-accent-12 flex flex-grow overflow-hidden",
2120
- children: [c("span", {
2121
- class: "sr-only",
2122
- children: [s("file_name"), ": "]
2123
- }), c("span", {
2124
- class: "block truncate",
2125
- children: n
2126
- }), c("span", {
2127
- children: a
2128
- })]
2129
- }), c("p", {
2130
- class: "text-accent-11",
2131
- children: [c("span", {
2132
- class: "sr-only",
2133
- children: [s("file_size"), ": "]
2134
- }), Ge(e.sizeKb)]
2135
- })]
2136
- });
2137
- }, _r = ({
2138
- class: e,
2139
- ...r
2140
- }) => c("li", {
2141
- class: Qe("outline-neutral-6 text-neutral-11 bg-neutral-1 block rounded-md px-1 py-0.5 text-xs outline outline-1", e),
2142
- ...r
2143
- }), Ba = (e, r) => {
2144
- const [t, s] = kt(e);
2145
- return `${t.slice(0, r)}${s}`;
2146
- }, kr = (e) => ({
2147
- name: Ba(e.name, 42),
2148
- sizeKb: e.size / 1e3
2149
- }), Pa = [".heic", ".heif", ".jpg", ".jpeg", ".png", ".gif", ".webp", ".txt", ".rtf", ".odt", ".pages", ".zip"], Ua = (e, r, t) => {
2150
- const s = kt(r.name)[1].toLowerCase(), n = [...t.map((i) => i.toLowerCase()), ...Pa], a = s === "" ? "none" : n.includes(s) ? s : "other";
2151
- return `chatbot-file-refused:${e}:${a}`;
2152
- }, qa = ({
2153
- input: e,
2154
- onSubmitSuccess: r,
2155
- analytics: t
2156
- }) => {
2157
- var w;
2158
- const s = (w = z.current$.value.flow) == null ? void 0 : w.data.submissions[e.key], [n, a] = ke(ja(s) && s.value.length ? {
2159
- status: "ready",
2160
- files: s.value
2161
- } : {
2162
- status: "empty"
2163
- }), i = ye(0), o = n.status === "ready" ? n.files : [], l = n.status === "ready" || n.status === "pending" ? n.files : [], f = n.status === "error" ? n.error : void 0, h = l.length - wr, g = xr(l), m = Yt(), {
2164
- t: y
2165
- } = re(), k = (S) => {
2166
- if (!S.length)
2167
- return {
2168
- reason: "required",
2169
- error: {
2170
- type: "required",
2171
- message: y("validation_file")
2172
- }
2173
- };
2174
- if (!cr(S, e.config.extensions))
2175
- return {
2176
- reason: "type",
2177
- file: S.find((x) => !cr([x], e.config.extensions)),
2178
- error: {
2179
- type: "validate",
2180
- message: y("validation_file_ext", {
2181
- ext: e.config.extensions.join(", ")
2182
- })
2183
- }
2184
- };
2185
- if (S.some((x) => x.sizeKb === 0))
2186
- return {
2187
- reason: "empty",
2188
- file: S.find((x) => x.sizeKb === 0),
2189
- error: {
2190
- type: "validate",
2191
- message: y("validation_file_empty")
2192
- }
2193
- };
2194
- if (e.config.fileSizeLimitKib && xr(S) > e.config.fileSizeLimitKib)
2195
- return {
2196
- reason: "size",
2197
- error: {
2198
- type: "max",
2199
- message: y("validation_file_size", {
2200
- size: Ge(e.config.fileSizeLimitKib)
2201
- })
2202
- }
2203
- };
2204
- if (!e.config.allowMultiple && S.length > 1)
2205
- return {
2206
- reason: "count",
2207
- error: {
2208
- type: "invalid",
2209
- message: y("validation_file_max", {
2210
- count: 1
2211
- })
2212
- }
2213
- };
2214
- }, _ = (S, x) => {
2215
- var N, T;
2216
- return t.log({
2217
- event: "INTERACTION",
2218
- properties: {
2219
- tag: Ua(S, x, e.config.extensions)
2220
- },
2221
- customProperties: (T = (N = z.current$.peek().flow) == null ? void 0 : N.analytics) == null ? void 0 : T.customProperties
2222
- });
2223
- };
2224
- return c("form", {
2225
- class: "flex flex-col gap-1 p-2.5",
2226
- onSubmit: (S) => {
2227
- if (S.preventDefault(), n.status === "pending" || n.status === "error")
2228
- return;
2229
- const x = k(o);
2230
- x ? a({
2231
- status: "error",
2232
- error: x.error
2233
- }) : r({
2234
- type: "file",
2235
- value: o
2236
- });
2237
- },
2238
- children: [c("div", {
2239
- class: "flex items-center gap-2",
2240
- children: [c("label", {
2241
- ref: m,
2242
- for: "dropzone-file",
2243
- class: "border-neutral-8 bg-neutral-2 flex h-48 w-full cursor-pointer flex-col items-center justify-center overflow-hidden rounded-2xl border border-dashed p-4",
2244
- children: [l.length > 0 ? c("ul", {
2245
- class: "flex max-w-full flex-wrap justify-center gap-1 overflow-hidden p-1",
2246
- children: [l.slice(0, wr).map((S) => {
2247
- const [x, N] = kt(S.name);
2248
- return c(_r, {
2249
- class: "flex overflow-hidden",
2250
- children: [c("span", {
2251
- class: "block truncate",
2252
- children: x
2253
- }), c("span", {
2254
- children: N
2255
- })]
2256
- });
2257
- }), h > 0 ? c(_r, {
2258
- children: y("file_more", {
2259
- count: h
2260
- })
2261
- }) : null]
2262
- }) : c("div", {
2263
- class: "flex flex-col justify-center gap-4 pb-6 pt-5",
2264
- children: [c("header", {
2265
- class: "flex flex-col items-center gap-0",
2266
- children: [c("svg", {
2267
- class: "text-neutral-11 mb-1 h-8 w-8",
2268
- "aria-hidden": "true",
2269
- xmlns: "http://www.w3.org/2000/svg",
2270
- fill: "none",
2271
- viewBox: "0 0 20 16",
2272
- children: c("path", {
2273
- stroke: "currentColor",
2274
- "stroke-linecap": "round",
2275
- "stroke-linejoin": "round",
2276
- "stroke-width": "1.5",
2277
- d: "M13 13h3a3 3 0 0 0 0-6h-.025A5.56 5.56 0 0 0 16 6.5 5.5 5.5 0 0 0 5.207 5.021C5.137 5.017 5.071 5 5 5a4 4 0 0 0 0 8h2.167M10 15V6m0 0L8 8m2-2 2 2"
2278
- })
2279
- }), c("p", {
2280
- class: "text-neutral-12 tracking-[-0.01em]",
2281
- children: y("upload_file", {
2282
- count: e.config.allowMultiple ? 2 : 1
2283
- })
2284
- }), e.config.fileSizeLimitKib ? c("p", {
2285
- class: "text-neutral-11 text-xs",
2286
- children: ["(", y("file_max_size", {
2287
- size: Ge(e.config.fileSizeLimitKib)
2288
- }), ")"]
2289
- }) : null]
2290
- }), c("aside", {
2291
- class: "flex flex-col items-center gap-2",
2292
- children: [c("p", {
2293
- id: "accepted-filetypes",
2294
- class: "sr-only",
2295
- children: y("file_extensions")
2296
- }), c("ul", {
2297
- "aria-describedby": "accepted-filetypes",
2298
- class: "flex flex-wrap justify-center gap-2",
2299
- children: e.config.extensions.map((S) => c("li", {
2300
- class: "ring-lowest outline-neutral-6 text-neutral-11 bg-neutral-1 rounded-md px-1 py-0.5 text-[11px] uppercase tracking-wide outline outline-1 ring-2",
2301
- children: S.replace(".", "")
2302
- }))
2303
- })]
2304
- })]
2305
- }), c("p", {
2306
- role: "status",
2307
- class: Qe("text-neutral-11 flex items-center gap-1.5 text-xs", l.length === 0 && "sr-only"),
2308
- children: n.status === "pending" ? c(be, {
2309
- children: [c(Wt, {
2310
- "aria-hidden": "true",
2311
- class: "h-4 w-4"
2312
- }), y("file_preparing", {
2313
- count: l.length
2314
- })]
2315
- }) : n.status === "ready" ? c(be, {
2316
- children: [o.length > 1 ? y("file_total_size", {
2317
- size: Ge(g)
2318
- }) : Ge(g), c("span", {
2319
- class: "sr-only",
2320
- children: [". ", y("file_ready", {
2321
- count: o.length
2322
- })]
2323
- })]
2324
- }) : null
2325
- }), c("input", {
2326
- id: "dropzone-file",
2327
- "aria-label": y("upload_file", {
2328
- count: e.config.allowMultiple ? 2 : 1
2329
- }),
2330
- onInput: async (S) => {
2331
- Oe(S.target instanceof HTMLInputElement);
2332
- const x = S.target.files ? Array.from(S.target.files) : [];
2333
- S.target.value = "";
2334
- const [N] = x;
2335
- if (!N)
2336
- return;
2337
- const T = ++i.current, A = n.status === "ready", q = x.map(kr), O = k(q);
2338
- if (O)
2339
- return _(O.reason, O.file ?? N), a({
2340
- status: "error",
2341
- error: O.error
2342
- });
2343
- a({
2344
- status: "pending",
2345
- files: q
2346
- });
2347
- let V;
2348
- try {
2349
- const M = await Promise.all(x.map(async (R) => {
2350
- try {
2351
- return {
2352
- ...kr(R),
2353
- data: await rn(R)
2354
- };
2355
- } catch ($) {
2356
- throw V ?? (V = R), $;
2357
- }
2358
- }));
2359
- i.current === T && a({
2360
- status: "ready",
2361
- files: M
2362
- });
2363
- } catch {
2364
- if (i.current !== T)
2365
- return;
2366
- _("unreadable", V ?? N), a({
2367
- status: "error",
2368
- error: {
2369
- type: "invalid",
2370
- message: y(A ? "file_read_error_replacement" : "file_read_error")
2371
- }
2372
- });
2373
- }
2374
- },
2375
- multiple: e.config.allowMultiple,
2376
- accept: e.config.extensions.join(","),
2377
- type: "file",
2378
- class: "sr-only"
2379
- })]
2380
- }), c("div", {
2381
- class: "flex h-full flex-col items-center gap-2",
2382
- children: [c(je, {
2383
- disabled: o.length === 0
2384
- }), e.config.optional && c(Se, {
2385
- class: "relative",
2386
- onClick: () => r(null)
2387
- })]
2388
- })]
2389
- }), c(tt, {
2390
- error: f
2391
- })]
2392
- });
2393
- };
2394
- var ft = (e) => e.type === "checkbox", Ne = (e) => e instanceof Date, oe = (e) => e == null;
2395
- const ks = (e) => typeof e == "object";
2396
- var X = (e) => !oe(e) && !Array.isArray(e) && ks(e) && !Ne(e), za = (e) => X(e) && e.target ? ft(e.target) ? e.target.checked : e.target.value : e, Wa = (e) => e.substring(0, e.search(/\.\d+(\.|$)/)) || e, Ha = (e, r) => e.has(Wa(r)), Ka = (e) => {
2397
- const r = e.constructor && e.constructor.prototype;
2398
- return X(r) && r.hasOwnProperty("isPrototypeOf");
2399
- }, Qt = typeof window < "u" && typeof window.HTMLElement < "u" && typeof document < "u";
2400
- function ee(e) {
2401
- if (e instanceof Date)
2402
- return new Date(e);
2403
- const r = typeof FileList < "u" && e instanceof FileList;
2404
- if (Qt && (e instanceof Blob || r))
2405
- return e;
2406
- const t = Array.isArray(e);
2407
- if (!t && !(X(e) && Ka(e)))
2408
- return e;
2409
- const s = t ? [] : Object.create(Object.getPrototypeOf(e));
2410
- for (const n in e)
2411
- Object.prototype.hasOwnProperty.call(e, n) && (s[n] = ee(e[n]));
2412
- return s;
2413
- }
2414
- var Ct = (e) => /^\w*$/.test(e), J = (e) => e === void 0, er = (e) => Array.isArray(e) ? e.filter(Boolean) : [], tr = (e) => er(e.replace(/["|']|\]/g, "").split(/\.|\[/)), E = (e, r, t) => {
2415
- if (!r || !X(e))
2416
- return t;
2417
- const s = (Ct(r) ? [r] : tr(r)).reduce((n, a) => oe(n) ? n : n[a], e);
2418
- return J(s) || s === e ? J(e[r]) ? t : e[r] : s;
2419
- }, me = (e) => typeof e == "boolean", de = (e) => typeof e == "function", G = (e, r, t) => {
2420
- let s = -1;
2421
- const n = Ct(r) ? [r] : tr(r), a = n.length, i = a - 1;
2422
- for (; ++s < a; ) {
2423
- const o = n[s];
2424
- let l = t;
2425
- if (s !== i) {
2426
- const f = e[o];
2427
- l = X(f) || Array.isArray(f) ? f : isNaN(+n[s + 1]) ? {} : [];
2428
- }
2429
- if (o === "__proto__" || o === "constructor" || o === "prototype")
2430
- return;
2431
- e[o] = l, e = e[o];
2432
- }
2433
- };
2434
- const Cr = {
2435
- BLUR: "blur",
2436
- FOCUS_OUT: "focusout",
2437
- CHANGE: "change"
2438
- }, fe = {
2439
- onBlur: "onBlur",
2440
- onChange: "onChange",
2441
- onSubmit: "onSubmit",
2442
- onTouched: "onTouched",
2443
- all: "all"
2444
- }, _e = {
2445
- max: "max",
2446
- min: "min",
2447
- maxLength: "maxLength",
2448
- minLength: "minLength",
2449
- pattern: "pattern",
2450
- required: "required",
2451
- validate: "validate"
2452
- }, Ga = ae.createContext(null);
2453
- Ga.displayName = "HookFormControlContext";
2454
- var Ja = (e, r, t, s = !0) => {
2455
- const n = {
2456
- defaultValues: r._defaultValues
2457
- };
2458
- for (const a in e)
2459
- Object.defineProperty(n, a, {
2460
- get: () => {
2461
- const i = a;
2462
- return r._proxyFormState[i] !== fe.all && (r._proxyFormState[i] = !s || fe.all), t && (t[i] = !0), e[i];
2463
- }
2464
- });
2465
- return n;
2466
- };
2467
- const Za = typeof window < "u" ? ae.useLayoutEffect : ae.useEffect;
2468
- var ue = (e) => typeof e == "string", Xa = (e, r, t, s, n) => ue(e) ? (s && r.watch.add(e), E(t, e, n)) : Array.isArray(e) ? e.map((a) => (s && r.watch.add(a), E(t, a))) : (s && (r.watchAll = !0), t), qt = (e) => oe(e) || !ks(e);
2469
- function Ve(e, r, t = /* @__PURE__ */ new WeakSet()) {
2470
- if (qt(e) || qt(r))
2471
- return Object.is(e, r);
2472
- if (Ne(e) && Ne(r))
2473
- return Object.is(e.getTime(), r.getTime());
2474
- const s = Object.keys(e), n = Object.keys(r);
2475
- if (s.length !== n.length)
2476
- return !1;
2477
- if (t.has(e) || t.has(r))
2478
- return !0;
2479
- t.add(e), t.add(r);
2480
- for (const a of s) {
2481
- const i = e[a];
2482
- if (!n.includes(a))
2483
- return !1;
2484
- if (a !== "ref") {
2485
- const o = r[a];
2486
- if (Ne(i) && Ne(o) || X(i) && X(o) || Array.isArray(i) && Array.isArray(o) ? !Ve(i, o, t) : !Object.is(i, o))
2487
- return !1;
2488
- }
2489
- }
2490
- return !0;
2491
- }
2492
- const Ya = ae.createContext(null);
2493
- Ya.displayName = "HookFormContext";
2494
- var Cs = (e, r, t, s, n) => r ? {
2495
- ...t[e],
2496
- types: {
2497
- ...t[e] && t[e].types ? t[e].types : {},
2498
- [s]: n || !0
2499
- }
2500
- } : {}, ut = (e) => Array.isArray(e) ? e : [e], Sr = () => {
2501
- let e = [];
2502
- return {
2503
- get observers() {
2504
- return e;
2505
- },
2506
- next: (n) => {
2507
- for (const a of e)
2508
- a.next && a.next(n);
2509
- },
2510
- subscribe: (n) => (e.push(n), {
2511
- unsubscribe: () => {
2512
- e = e.filter((a) => a !== n);
2513
- }
2514
- }),
2515
- unsubscribe: () => {
2516
- e = [];
2517
- }
2518
- };
2519
- };
2520
- function Ss(e, r) {
2521
- const t = {};
2522
- for (const s in e)
2523
- if (e.hasOwnProperty(s)) {
2524
- const n = e[s], a = r[s];
2525
- if (n && X(n) && a) {
2526
- const i = Ss(n, a);
2527
- X(i) && (t[s] = i);
2528
- } else
2529
- e[s] && (t[s] = a);
2530
- }
2531
- return t;
2532
- }
2533
- var ie = (e) => X(e) && !Object.keys(e).length, rr = (e) => e.type === "file", gt = (e) => {
2534
- if (!Qt)
2535
- return !1;
2536
- const r = e ? e.ownerDocument : 0;
2537
- return e instanceof (r && r.defaultView ? r.defaultView.HTMLElement : HTMLElement);
2538
- }, As = (e) => e.type === "select-multiple", sr = (e) => e.type === "radio", Qa = (e) => sr(e) || ft(e), Nt = (e) => gt(e) && e.isConnected;
2539
- function ei(e, r) {
2540
- const t = r.slice(0, -1).length;
2541
- let s = 0;
2542
- for (; s < t; )
2543
- e = J(e) ? s++ : e[r[s++]];
2544
- return e;
2545
- }
2546
- function ti(e) {
2547
- for (const r in e)
2548
- if (e.hasOwnProperty(r) && !J(e[r]))
2549
- return !1;
2550
- return !0;
2551
- }
2552
- function Z(e, r) {
2553
- const t = Array.isArray(r) ? r : Ct(r) ? [r] : tr(r), s = t.length === 1 ? e : ei(e, t), n = t.length - 1, a = t[n];
2554
- return s && delete s[a], n !== 0 && (X(s) && ie(s) || Array.isArray(s) && ti(s)) && Z(e, t.slice(0, -1)), e;
2555
- }
2556
- var ri = (e) => {
2557
- for (const r in e)
2558
- if (de(e[r]))
2559
- return !0;
2560
- return !1;
2561
- };
2562
- function Es(e) {
2563
- return Array.isArray(e) || X(e) && !ri(e);
2564
- }
2565
- function zt(e, r = {}) {
2566
- for (const t in e) {
2567
- const s = e[t];
2568
- Es(s) ? (r[t] = Array.isArray(s) ? [] : {}, zt(s, r[t])) : J(s) || (r[t] = !0);
2569
- }
2570
- return r;
2571
- }
2572
- function Ke(e, r, t) {
2573
- t || (t = zt(r));
2574
- for (const s in e) {
2575
- const n = e[s];
2576
- if (Es(n))
2577
- J(r) || qt(t[s]) ? t[s] = zt(n, Array.isArray(n) ? [] : {}) : Ke(n, oe(r) ? {} : r[s], t[s]);
2578
- else {
2579
- const a = r[s];
2580
- t[s] = !Ve(n, a);
2581
- }
2582
- }
2583
- return t;
2584
- }
2585
- const Ar = {
2586
- value: !1,
2587
- isValid: !1
2588
- }, Er = { value: !0, isValid: !0 };
2589
- var Is = (e) => {
2590
- if (Array.isArray(e)) {
2591
- if (e.length > 1) {
2592
- const r = e.filter((t) => t && t.checked && !t.disabled).map((t) => t.value);
2593
- return { value: r, isValid: !!r.length };
2594
- }
2595
- return e[0].checked && !e[0].disabled ? (
2596
- // @ts-expect-error expected to work in the browser
2597
- e[0].attributes && !J(e[0].attributes.value) ? J(e[0].value) || e[0].value === "" ? Er : { value: e[0].value, isValid: !0 } : Er
2598
- ) : Ar;
2599
- }
2600
- return Ar;
2601
- }, Fs = (e, { valueAsNumber: r, valueAsDate: t, setValueAs: s }) => J(e) ? e : r ? e === "" ? NaN : e && +e : t && ue(e) ? new Date(e) : s ? s(e) : e;
2602
- const Ir = {
2603
- isValid: !1,
2604
- value: null
2605
- };
2606
- var Vs = (e) => Array.isArray(e) ? e.reduce((r, t) => t && t.checked && !t.disabled ? {
2607
- isValid: !0,
2608
- value: t.value
2609
- } : r, Ir) : Ir;
2610
- function Fr(e) {
2611
- const r = e.ref;
2612
- return rr(r) ? r.files : sr(r) ? Vs(e.refs).value : As(r) ? [...r.selectedOptions].map(({ value: t }) => t) : ft(r) ? Is(e.refs).value : Fs(J(r.value) ? e.ref.value : r.value, e);
2613
- }
2614
- var si = (e, r, t, s) => {
2615
- const n = {};
2616
- for (const a of e) {
2617
- const i = E(r, a);
2618
- i && G(n, a, i._f);
2619
- }
2620
- return {
2621
- criteriaMode: t,
2622
- names: [...e],
2623
- fields: n,
2624
- shouldUseNativeValidation: s
2625
- };
2626
- }, vt = (e) => e instanceof RegExp, it = (e) => J(e) ? e : vt(e) ? e.source : X(e) ? vt(e.value) ? e.value.source : e.value : e, Vr = (e) => ({
2627
- isOnSubmit: !e || e === fe.onSubmit,
2628
- isOnBlur: e === fe.onBlur,
2629
- isOnChange: e === fe.onChange,
2630
- isOnAll: e === fe.all,
2631
- isOnTouch: e === fe.onTouched
2632
- });
2633
- const Lr = "AsyncFunction";
2634
- var ni = (e) => !!e && !!e.validate && !!(de(e.validate) && e.validate.constructor.name === Lr || X(e.validate) && Object.values(e.validate).find((r) => r.constructor.name === Lr)), ai = (e) => e.mount && (e.required || e.min || e.max || e.maxLength || e.minLength || e.pattern || e.validate), Mr = (e, r, t) => !t && (r.watchAll || r.watch.has(e) || [...r.watch].some((s) => e.startsWith(s) && /^\.\w+/.test(e.slice(s.length))));
2635
- const dt = (e, r, t, s) => {
2636
- for (const n of t || Object.keys(e)) {
2637
- const a = E(e, n);
2638
- if (a) {
2639
- const { _f: i, ...o } = a;
2640
- if (i) {
2641
- if (i.refs && i.refs[0] && r(i.refs[0], n) && !s)
2642
- return !0;
2643
- if (i.ref && r(i.ref, i.name) && !s)
2644
- return !0;
2645
- if (dt(o, r))
2646
- break;
2647
- } else if (X(o) && dt(o, r))
2648
- break;
2649
- }
2650
- }
2651
- };
2652
- function Rr(e, r, t) {
2653
- const s = E(e, t);
2654
- if (s || Ct(t))
2655
- return {
2656
- error: s,
2657
- name: t
2658
- };
2659
- const n = t.split(".");
2660
- for (; n.length; ) {
2661
- const a = n.join("."), i = E(r, a), o = E(e, a);
2662
- if (i && !Array.isArray(i) && t !== a)
2663
- return { name: t };
2664
- if (o && o.type)
2665
- return {
2666
- name: a,
2667
- error: o
2668
- };
2669
- if (o && o.root && o.root.type)
2670
- return {
2671
- name: `${a}.root`,
2672
- error: o.root
2673
- };
2674
- n.pop();
2675
- }
2676
- return {
2677
- name: t
2678
- };
2679
- }
2680
- var ii = (e, r, t, s) => {
2681
- t(e);
2682
- const { name: n, ...a } = e;
2683
- return ie(a) || Object.keys(a).length >= Object.keys(r).length || Object.keys(a).find((i) => r[i] === (!s || fe.all));
2684
- }, oi = (e, r, t) => !e || !r || e === r || ut(e).some((s) => s && (t ? s === r : s.startsWith(r) || r.startsWith(s))), li = (e, r, t, s, n) => n.isOnAll ? !1 : !t && n.isOnTouch ? !(r || e) : (t ? s.isOnBlur : n.isOnBlur) ? !e : (t ? s.isOnChange : n.isOnChange) ? e : !0, ci = (e, r) => !er(E(e, r)).length && Z(e, r), ui = (e, r, t) => {
2685
- const s = ut(E(e, t));
2686
- return G(s, "root", r[t]), G(e, t, s), e;
2687
- };
2688
- function Tr(e, r, t = "validate") {
2689
- if (ue(e) || Array.isArray(e) && e.every(ue) || me(e) && !e)
2690
- return {
2691
- type: t,
2692
- message: ue(e) ? e : "",
2693
- ref: r
2694
- };
2695
- }
2696
- var He = (e) => X(e) && !vt(e) ? e : {
2697
- value: e,
2698
- message: ""
2699
- }, Dr = async (e, r, t, s, n, a) => {
2700
- const { ref: i, refs: o, required: l, maxLength: f, minLength: h, min: g, max: m, pattern: y, validate: k, name: _, valueAsNumber: w, mount: S } = e._f, x = E(t, _);
2701
- if (!S || r.has(_))
2702
- return {};
2703
- const N = o ? o[0] : i, T = (F) => {
2704
- n && N.reportValidity && (N.setCustomValidity(me(F) ? "" : F || ""), N.reportValidity());
2705
- }, A = {}, q = sr(i), O = ft(i), V = q || O, M = (w || rr(i)) && J(i.value) && J(x) || gt(i) && i.value === "" || x === "" || Array.isArray(x) && !x.length, R = Cs.bind(null, _, s, A), $ = (F, L, P, D = _e.maxLength, H = _e.minLength) => {
2706
- const W = F ? L : P;
2707
- A[_] = {
2708
- type: F ? D : H,
2709
- message: W,
2710
- ref: i,
2711
- ...R(F ? D : H, W)
2712
- };
2713
- };
2714
- if (a ? !Array.isArray(x) || !x.length : l && (!V && (M || oe(x)) || me(x) && !x || O && !Is(o).isValid || q && !Vs(o).isValid)) {
2715
- const { value: F, message: L } = ue(l) ? { value: !!l, message: l } : He(l);
2716
- if (F && (A[_] = {
2717
- type: _e.required,
2718
- message: L,
2719
- ref: N,
2720
- ...R(_e.required, L)
2721
- }, !s))
2722
- return T(L), A;
2723
- }
2724
- if (!M && (!oe(g) || !oe(m))) {
2725
- let F, L;
2726
- const P = He(m), D = He(g);
2727
- if (!oe(x) && !isNaN(x)) {
2728
- const H = i.valueAsNumber || x && +x;
2729
- oe(P.value) || (F = H > P.value), oe(D.value) || (L = H < D.value);
2730
- } else {
2731
- const H = i.valueAsDate || new Date(x), W = (K) => /* @__PURE__ */ new Date((/* @__PURE__ */ new Date()).toDateString() + " " + K), te = i.type == "time", Y = i.type == "week";
2732
- ue(P.value) && x && (F = te ? W(x) > W(P.value) : Y ? x > P.value : H > new Date(P.value)), ue(D.value) && x && (L = te ? W(x) < W(D.value) : Y ? x < D.value : H < new Date(D.value));
2733
- }
2734
- if ((F || L) && ($(!!F, P.message, D.message, _e.max, _e.min), !s))
2735
- return T(A[_].message), A;
2736
- }
2737
- if ((f || h) && !M && (ue(x) || a && Array.isArray(x))) {
2738
- const F = He(f), L = He(h), P = !oe(F.value) && x.length > +F.value, D = !oe(L.value) && x.length < +L.value;
2739
- if ((P || D) && ($(P, F.message, L.message), !s))
2740
- return T(A[_].message), A;
2741
- }
2742
- if (y && !M && ue(x)) {
2743
- const { value: F, message: L } = He(y);
2744
- if (vt(F) && !x.match(F) && (A[_] = {
2745
- type: _e.pattern,
2746
- message: L,
2747
- ref: i,
2748
- ...R(_e.pattern, L)
2749
- }, !s))
2750
- return T(L), A;
2751
- }
2752
- if (k) {
2753
- if (de(k)) {
2754
- const F = await k(x, t), L = Tr(F, N);
2755
- if (L && (A[_] = {
2756
- ...L,
2757
- ...R(_e.validate, L.message)
2758
- }, !s))
2759
- return T(L.message), A;
2760
- } else if (X(k)) {
2761
- let F = {};
2762
- for (const L in k) {
2763
- if (!ie(F) && !s)
2764
- break;
2765
- const P = Tr(await k[L](x, t), N, L);
2766
- P && (F = {
2767
- ...P,
2768
- ...R(L, P.message)
2769
- }, T(P.message), s && (A[_] = F));
2770
- }
2771
- if (!ie(F) && (A[_] = {
2772
- ref: N,
2773
- ...F
2774
- }, !s))
2775
- return A;
2776
- }
2777
- }
2778
- return T(!0), A;
2779
- };
2780
- const di = {
2781
- mode: fe.onSubmit,
2782
- reValidateMode: fe.onChange,
2783
- shouldFocusError: !0
2784
- };
2785
- function fi(e = {}) {
2786
- let r = {
2787
- ...di,
2788
- ...e
2789
- }, t = {
2790
- submitCount: 0,
2791
- isDirty: !1,
2792
- isReady: !1,
2793
- isLoading: de(r.defaultValues),
2794
- isValidating: !1,
2795
- isSubmitted: !1,
2796
- isSubmitting: !1,
2797
- isSubmitSuccessful: !1,
2798
- isValid: !1,
2799
- touchedFields: {},
2800
- dirtyFields: {},
2801
- validatingFields: {},
2802
- errors: r.errors || {},
2803
- disabled: r.disabled || !1
2804
- }, s = {}, n = X(r.defaultValues) || X(r.values) ? ee(r.defaultValues || r.values) || {} : {}, a = r.shouldUnregister ? {} : ee(n), i = {
2805
- action: !1,
2806
- mount: !1,
2807
- watch: !1,
2808
- keepIsValid: !1
2809
- }, o = {
2810
- mount: /* @__PURE__ */ new Set(),
2811
- disabled: /* @__PURE__ */ new Set(),
2812
- unMount: /* @__PURE__ */ new Set(),
2813
- array: /* @__PURE__ */ new Set(),
2814
- watch: /* @__PURE__ */ new Set()
2815
- }, l, f = 0;
2816
- const h = {
2817
- isDirty: !1,
2818
- dirtyFields: !1,
2819
- validatingFields: !1,
2820
- touchedFields: !1,
2821
- isValidating: !1,
2822
- isValid: !1,
2823
- errors: !1
2824
- }, g = {
2825
- ...h
2826
- };
2827
- let m = {
2828
- ...g
2829
- };
2830
- const y = {
2831
- array: Sr(),
2832
- state: Sr()
2833
- }, k = r.criteriaMode === fe.all, _ = (u) => (d) => {
2834
- clearTimeout(f), f = setTimeout(u, d);
2835
- }, w = async (u) => {
2836
- if (!i.keepIsValid && !r.disabled && (g.isValid || m.isValid || u)) {
2837
- let d;
2838
- r.resolver ? (d = ie((await V()).errors), S()) : d = await R(s, !0), d !== t.isValid && y.state.next({
2839
- isValid: d
2840
- });
2841
- }
2842
- }, S = (u, d) => {
2843
- !r.disabled && (g.isValidating || g.validatingFields || m.isValidating || m.validatingFields) && ((u || Array.from(o.mount)).forEach((p) => {
2844
- p && (d ? G(t.validatingFields, p, d) : Z(t.validatingFields, p));
2845
- }), y.state.next({
2846
- validatingFields: t.validatingFields,
2847
- isValidating: !ie(t.validatingFields)
2848
- }));
2849
- }, x = (u, d = [], p, C, b = !0, v = !0) => {
2850
- if (C && p && !r.disabled) {
2851
- if (i.action = !0, v && Array.isArray(E(s, u))) {
2852
- const I = p(E(s, u), C.argA, C.argB);
2853
- b && G(s, u, I);
2854
- }
2855
- if (v && Array.isArray(E(t.errors, u))) {
2856
- const I = p(E(t.errors, u), C.argA, C.argB);
2857
- b && G(t.errors, u, I), ci(t.errors, u);
2858
- }
2859
- if ((g.touchedFields || m.touchedFields) && v && Array.isArray(E(t.touchedFields, u))) {
2860
- const I = p(E(t.touchedFields, u), C.argA, C.argB);
2861
- b && G(t.touchedFields, u, I);
2862
- }
2863
- (g.dirtyFields || m.dirtyFields) && (t.dirtyFields = Ke(n, a)), y.state.next({
2864
- name: u,
2865
- isDirty: F(u, d),
2866
- dirtyFields: t.dirtyFields,
2867
- errors: t.errors,
2868
- isValid: t.isValid
2869
- });
2870
- } else
2871
- G(a, u, d);
2872
- }, N = (u, d) => {
2873
- G(t.errors, u, d), y.state.next({
2874
- errors: t.errors
2875
- });
2876
- }, T = (u) => {
2877
- t.errors = u, y.state.next({
2878
- errors: t.errors,
2879
- isValid: !1
2880
- });
2881
- }, A = (u, d, p, C) => {
2882
- const b = E(s, u);
2883
- if (b) {
2884
- const v = E(a, u, J(p) ? E(n, u) : p);
2885
- J(v) || C && C.defaultChecked || d ? G(a, u, d ? v : Fr(b._f)) : D(u, v), i.mount && !i.action && w();
2886
- }
2887
- }, q = (u, d, p, C, b) => {
2888
- let v = !1, I = !1;
2889
- const B = {
2890
- name: u
2891
- };
2892
- if (!r.disabled) {
2893
- if (!p || C) {
2894
- (g.isDirty || m.isDirty) && (I = t.isDirty, t.isDirty = B.isDirty = F(), v = I !== B.isDirty);
2895
- const U = Ve(E(n, u), d);
2896
- I = !!E(t.dirtyFields, u), U ? Z(t.dirtyFields, u) : G(t.dirtyFields, u, !0), B.dirtyFields = t.dirtyFields, v = v || (g.dirtyFields || m.dirtyFields) && I !== !U;
2897
- }
2898
- if (p) {
2899
- const U = E(t.touchedFields, u);
2900
- U || (G(t.touchedFields, u, p), B.touchedFields = t.touchedFields, v = v || (g.touchedFields || m.touchedFields) && U !== p);
2901
- }
2902
- v && b && y.state.next(B);
2903
- }
2904
- return v ? B : {};
2905
- }, O = (u, d, p, C) => {
2906
- const b = E(t.errors, u), v = (g.isValid || m.isValid) && me(d) && t.isValid !== d;
2907
- if (r.delayError && p ? (l = _(() => N(u, p)), l(r.delayError)) : (clearTimeout(f), l = null, p ? G(t.errors, u, p) : Z(t.errors, u)), (p ? !Ve(b, p) : b) || !ie(C) || v) {
2908
- const I = {
2909
- ...C,
2910
- ...v && me(d) ? { isValid: d } : {},
2911
- errors: t.errors,
2912
- name: u
2913
- };
2914
- t = {
2915
- ...t,
2916
- ...I
2917
- }, y.state.next(I);
2918
- }
2919
- }, V = async (u) => (S(u, !0), await r.resolver(a, r.context, si(u || o.mount, s, r.criteriaMode, r.shouldUseNativeValidation))), M = async (u) => {
2920
- const { errors: d } = await V(u);
2921
- if (S(u), u)
2922
- for (const p of u) {
2923
- const C = E(d, p);
2924
- C ? G(t.errors, p, C) : Z(t.errors, p);
2925
- }
2926
- else
2927
- t.errors = d;
2928
- return d;
2929
- }, R = async (u, d, p = {
2930
- valid: !0
2931
- }) => {
2932
- for (const C in u) {
2933
- const b = u[C];
2934
- if (b) {
2935
- const { _f: v, ...I } = b;
2936
- if (v) {
2937
- const B = o.array.has(v.name), U = b._f && ni(b._f);
2938
- U && g.validatingFields && S([v.name], !0);
2939
- const ne = await Dr(b, o.disabled, a, k, r.shouldUseNativeValidation && !d, B);
2940
- if (U && g.validatingFields && S([v.name]), ne[v.name] && (p.valid = !1, d || e.shouldUseNativeValidation))
2941
- break;
2942
- !d && (E(ne, v.name) ? B ? ui(t.errors, ne, v.name) : G(t.errors, v.name, ne[v.name]) : Z(t.errors, v.name));
2943
- }
2944
- !ie(I) && await R(I, d, p);
2945
- }
2946
- }
2947
- return p.valid;
2948
- }, $ = () => {
2949
- for (const u of o.unMount) {
2950
- const d = E(s, u);
2951
- d && (d._f.refs ? d._f.refs.every((p) => !Nt(p)) : !Nt(d._f.ref)) && Ue(u);
2952
- }
2953
- o.unMount = /* @__PURE__ */ new Set();
2954
- }, F = (u, d) => !r.disabled && (u && d && G(a, u, d), !Ve(rt(), n)), L = (u, d, p) => Xa(u, o, {
2955
- ...i.mount ? a : J(d) ? n : ue(u) ? { [u]: d } : d
2956
- }, p, d), P = (u) => er(E(i.mount ? a : n, u, r.shouldUnregister ? E(n, u, []) : [])), D = (u, d, p = {}) => {
2957
- const C = E(s, u);
2958
- let b = d;
2959
- if (C) {
2960
- const v = C._f;
2961
- v && (!v.disabled && G(a, u, Fs(d, v)), b = gt(v.ref) && oe(d) ? "" : d, As(v.ref) ? [...v.ref.options].forEach((I) => I.selected = b.includes(I.value)) : v.refs ? ft(v.ref) ? v.refs.forEach((I) => {
2962
- (!I.defaultChecked || !I.disabled) && (Array.isArray(b) ? I.checked = !!b.find((B) => B === I.value) : I.checked = b === I.value || !!b);
2963
- }) : v.refs.forEach((I) => I.checked = I.value === b) : rr(v.ref) ? v.ref.value = "" : (v.ref.value = b, v.ref.type || y.state.next({
2964
- name: u,
2965
- values: ee(a)
2966
- })));
2967
- }
2968
- (p.shouldDirty || p.shouldTouch) && q(u, b, p.shouldTouch, p.shouldDirty, !0), p.shouldValidate && K(u);
2969
- }, H = (u, d, p) => {
2970
- for (const C in d) {
2971
- if (!d.hasOwnProperty(C))
2972
- return;
2973
- const b = d[C], v = u + "." + C, I = E(s, v);
2974
- (o.array.has(u) || X(b) || I && !I._f) && !Ne(b) ? H(v, b, p) : D(v, b, p);
2975
- }
2976
- }, W = (u, d, p = {}) => {
2977
- const C = E(s, u), b = o.array.has(u), v = ee(d);
2978
- G(a, u, v), b ? (y.array.next({
2979
- name: u,
2980
- values: ee(a)
2981
- }), (g.isDirty || g.dirtyFields || m.isDirty || m.dirtyFields) && p.shouldDirty && y.state.next({
2982
- name: u,
2983
- dirtyFields: Ke(n, a),
2984
- isDirty: F(u, v)
2985
- })) : C && !C._f && !oe(v) ? H(u, v, p) : D(u, v, p), Mr(u, o) ? y.state.next({
2986
- ...t,
2987
- name: u,
2988
- values: ee(a)
2989
- }) : y.state.next({
2990
- name: i.mount ? u : void 0,
2991
- values: ee(a)
2992
- });
2993
- }, te = async (u) => {
2994
- i.mount = !0;
2995
- const d = u.target;
2996
- let p = d.name, C = !0;
2997
- const b = E(s, p), v = (U) => {
2998
- C = Number.isNaN(U) || Ne(U) && isNaN(U.getTime()) || Ve(U, E(a, p, U));
2999
- }, I = Vr(r.mode), B = Vr(r.reValidateMode);
3000
- if (b) {
3001
- let U, ne;
3002
- const De = d.type ? Fr(b._f) : za(u), Ee = u.type === Cr.BLUR || u.type === Cr.FOCUS_OUT, Ms = !ai(b._f) && !r.resolver && !E(t.errors, p) && !b._f.deps || li(Ee, E(t.touchedFields, p), t.isSubmitted, B, I), It = Mr(p, o, Ee);
3003
- G(a, p, De), Ee ? (!d || !d.readOnly) && (b._f.onBlur && b._f.onBlur(u), l && l(0)) : b._f.onChange && b._f.onChange(u);
3004
- const Ft = q(p, De, Ee), Rs = !ie(Ft) || It;
3005
- if (!Ee && y.state.next({
3006
- name: p,
3007
- type: u.type,
3008
- values: ee(a)
3009
- }), Ms)
3010
- return (g.isValid || m.isValid) && (r.mode === "onBlur" ? Ee && w() : Ee || w()), Rs && y.state.next({ name: p, ...It ? {} : Ft });
3011
- if (!Ee && It && y.state.next({ ...t }), r.resolver) {
3012
- const { errors: nr } = await V([p]);
3013
- if (S([p]), v(De), C) {
3014
- const Ts = Rr(t.errors, s, p), ar = Rr(nr, s, Ts.name || p);
3015
- U = ar.error, p = ar.name, ne = ie(nr);
3016
- }
3017
- } else
3018
- S([p], !0), U = (await Dr(b, o.disabled, a, k, r.shouldUseNativeValidation))[p], S([p]), v(De), C && (U ? ne = !1 : (g.isValid || m.isValid) && (ne = await R(s, !0)));
3019
- C && (b._f.deps && (!Array.isArray(b._f.deps) || b._f.deps.length > 0) && K(b._f.deps), O(p, ne, U, Ft));
3020
- }
3021
- }, Y = (u, d) => {
3022
- if (E(t.errors, d) && u.focus)
3023
- return u.focus(), 1;
3024
- }, K = async (u, d = {}) => {
3025
- let p, C;
3026
- const b = ut(u);
3027
- if (r.resolver) {
3028
- const v = await M(J(u) ? u : b);
3029
- p = ie(v), C = u ? !b.some((I) => E(v, I)) : p;
3030
- } else
3031
- u ? (C = (await Promise.all(b.map(async (v) => {
3032
- const I = E(s, v);
3033
- return await R(I && I._f ? { [v]: I } : I);
3034
- }))).every(Boolean), !(!C && !t.isValid) && w()) : C = p = await R(s);
3035
- return y.state.next({
3036
- ...!ue(u) || (g.isValid || m.isValid) && p !== t.isValid ? {} : { name: u },
3037
- ...r.resolver || !u ? { isValid: p } : {},
3038
- errors: t.errors
3039
- }), d.shouldFocus && !C && dt(s, Y, u ? b : o.mount), C;
3040
- }, rt = (u, d) => {
3041
- let p = {
3042
- ...i.mount ? a : n
3043
- };
3044
- return d && (p = Ss(d.dirtyFields ? t.dirtyFields : t.touchedFields, p)), J(u) ? p : ue(u) ? E(p, u) : u.map((C) => E(p, C));
3045
- }, $e = (u, d) => ({
3046
- invalid: !!E((d || t).errors, u),
3047
- isDirty: !!E((d || t).dirtyFields, u),
3048
- error: E((d || t).errors, u),
3049
- isValidating: !!E(t.validatingFields, u),
3050
- isTouched: !!E((d || t).touchedFields, u)
3051
- }), j = (u) => {
3052
- const d = u ? ut(u) : void 0;
3053
- d == null || d.forEach((p) => Z(t.errors, p)), d ? d.forEach((p) => {
3054
- y.state.next({
3055
- name: p,
3056
- errors: t.errors
3057
- });
3058
- }) : y.state.next({
3059
- errors: {}
3060
- });
3061
- }, Be = (u, d, p) => {
3062
- const C = (E(s, u, { _f: {} })._f || {}).ref, b = E(t.errors, u) || {}, { ref: v, message: I, type: B, ...U } = b;
3063
- G(t.errors, u, {
3064
- ...U,
3065
- ...d,
3066
- ref: C
3067
- }), y.state.next({
3068
- name: u,
3069
- errors: t.errors,
3070
- isValid: !1
3071
- }), p && p.shouldFocus && C && C.focus && C.focus();
3072
- }, Pe = (u, d) => de(u) ? y.state.subscribe({
3073
- next: (p) => "values" in p && u(L(void 0, d), p)
3074
- }) : L(u, d, !0), Ae = (u) => y.state.subscribe({
3075
- next: (d) => {
3076
- oi(u.name, d.name, u.exact) && ii(d, u.formState || g, mt, u.reRenderRoot) && u.callback({
3077
- values: { ...a },
3078
- ...t,
3079
- ...d,
3080
- defaultValues: n
3081
- });
3082
- }
3083
- }).unsubscribe, Re = (u) => (i.mount = !0, m = {
3084
- ...m,
3085
- ...u.formState
3086
- }, Ae({
3087
- ...u,
3088
- formState: {
3089
- ...h,
3090
- ...u.formState
3091
- }
3092
- })), Ue = (u, d = {}) => {
3093
- for (const p of u ? ut(u) : o.mount)
3094
- o.mount.delete(p), o.array.delete(p), d.keepValue || (Z(s, p), Z(a, p)), !d.keepError && Z(t.errors, p), !d.keepDirty && Z(t.dirtyFields, p), !d.keepTouched && Z(t.touchedFields, p), !d.keepIsValidating && Z(t.validatingFields, p), !r.shouldUnregister && !d.keepDefaultValue && Z(n, p);
3095
- y.state.next({
3096
- values: ee(a)
3097
- }), y.state.next({
3098
- ...t,
3099
- ...d.keepDirty ? { isDirty: F() } : {}
3100
- }), !d.keepIsValid && w();
3101
- }, st = ({ disabled: u, name: d }) => {
3102
- if (me(u) && i.mount || u || o.disabled.has(d)) {
3103
- const b = o.disabled.has(d) !== !!u;
3104
- u ? o.disabled.add(d) : o.disabled.delete(d), b && i.mount && !i.action && w();
3105
- }
3106
- }, ve = (u, d = {}) => {
3107
- let p = E(s, u);
3108
- const C = me(d.disabled) || me(r.disabled);
3109
- return G(s, u, {
3110
- ...p || {},
3111
- _f: {
3112
- ...p && p._f ? p._f : { ref: { name: u } },
3113
- name: u,
3114
- mount: !0,
3115
- ...d
3116
- }
3117
- }), o.mount.add(u), p ? st({
3118
- disabled: me(d.disabled) ? d.disabled : r.disabled,
3119
- name: u
3120
- }) : A(u, !0, d.value), {
3121
- ...C ? { disabled: d.disabled || r.disabled } : {},
3122
- ...r.progressive ? {
3123
- required: !!d.required,
3124
- min: it(d.min),
3125
- max: it(d.max),
3126
- minLength: it(d.minLength),
3127
- maxLength: it(d.maxLength),
3128
- pattern: it(d.pattern)
3129
- } : {},
3130
- name: u,
3131
- onChange: te,
3132
- onBlur: te,
3133
- ref: (b) => {
3134
- if (b) {
3135
- ve(u, d), p = E(s, u);
3136
- const v = J(b.value) && b.querySelectorAll && b.querySelectorAll("input,select,textarea")[0] || b, I = Qa(v), B = p._f.refs || [];
3137
- if (I ? B.find((U) => U === v) : v === p._f.ref)
3138
- return;
3139
- G(s, u, {
3140
- _f: {
3141
- ...p._f,
3142
- ...I ? {
3143
- refs: [
3144
- ...B.filter(Nt),
3145
- v,
3146
- ...Array.isArray(E(n, u)) ? [{}] : []
3147
- ],
3148
- ref: { type: v.type, name: u }
3149
- } : { ref: v }
3150
- }
3151
- }), A(u, !1, void 0, v);
3152
- } else
3153
- p = E(s, u, {}), p._f && (p._f.mount = !1), (r.shouldUnregister || d.shouldUnregister) && !(Ha(o.array, u) && i.action) && o.unMount.add(u);
3154
- }
3155
- };
3156
- }, qe = () => r.shouldFocusError && dt(s, Y, o.mount), ht = (u) => {
3157
- me(u) && (y.state.next({ disabled: u }), dt(s, (d, p) => {
3158
- const C = E(s, p);
3159
- C && (d.disabled = C._f.disabled || u, Array.isArray(C._f.refs) && C._f.refs.forEach((b) => {
3160
- b.disabled = C._f.disabled || u;
3161
- }));
3162
- }, 0, !1));
3163
- }, ze = (u, d) => async (p) => {
3164
- let C;
3165
- p && (p.preventDefault && p.preventDefault(), p.persist && p.persist());
3166
- let b = ee(a);
3167
- if (y.state.next({
3168
- isSubmitting: !0
3169
- }), r.resolver) {
3170
- const { errors: v, values: I } = await V();
3171
- S(), t.errors = v, b = ee(I);
3172
- } else
3173
- await R(s);
3174
- if (o.disabled.size)
3175
- for (const v of o.disabled)
3176
- Z(b, v);
3177
- if (Z(t.errors, "root"), ie(t.errors)) {
3178
- y.state.next({
3179
- errors: {}
3180
- });
3181
- try {
3182
- await u(b, p);
3183
- } catch (v) {
3184
- C = v;
3185
- }
3186
- } else
3187
- d && await d({ ...t.errors }, p), qe(), setTimeout(qe);
3188
- if (y.state.next({
3189
- isSubmitted: !0,
3190
- isSubmitting: !1,
3191
- isSubmitSuccessful: ie(t.errors) && !C,
3192
- submitCount: t.submitCount + 1,
3193
- errors: t.errors
3194
- }), C)
3195
- throw C;
3196
- }, We = (u, d = {}) => {
3197
- E(s, u) && (J(d.defaultValue) ? W(u, ee(E(n, u))) : (W(u, d.defaultValue), G(n, u, ee(d.defaultValue))), d.keepTouched || Z(t.touchedFields, u), d.keepDirty || (Z(t.dirtyFields, u), t.isDirty = d.defaultValue ? F(u, ee(E(n, u))) : F()), d.keepError || (Z(t.errors, u), g.isValid && w()), y.state.next({ ...t }));
3198
- }, Te = (u, d = {}) => {
3199
- const p = u ? ee(u) : n, C = ee(p), b = ie(u), v = b ? n : C;
3200
- if (d.keepDefaultValues || (n = p), !d.keepValues) {
3201
- if (d.keepDirtyValues) {
3202
- const I = /* @__PURE__ */ new Set([
3203
- ...o.mount,
3204
- ...Object.keys(Ke(n, a))
3205
- ]);
3206
- for (const B of Array.from(I)) {
3207
- const U = E(t.dirtyFields, B), ne = E(a, B), De = E(v, B);
3208
- U && !J(ne) ? G(v, B, ne) : !U && !J(De) && W(B, De);
3209
- }
3210
- } else {
3211
- if (Qt && J(u))
3212
- for (const I of o.mount) {
3213
- const B = E(s, I);
3214
- if (B && B._f) {
3215
- const U = Array.isArray(B._f.refs) ? B._f.refs[0] : B._f.ref;
3216
- if (gt(U)) {
3217
- const ne = U.closest("form");
3218
- if (ne) {
3219
- ne.reset();
3220
- break;
3221
- }
3222
- }
3223
- }
3224
- }
3225
- if (d.keepFieldsRef)
3226
- for (const I of o.mount)
3227
- W(I, E(v, I));
3228
- else
3229
- s = {};
3230
- }
3231
- a = r.shouldUnregister ? d.keepDefaultValues ? ee(n) : {} : ee(v), y.array.next({
3232
- values: { ...v }
3233
- }), y.state.next({
3234
- values: { ...v }
3235
- });
3236
- }
3237
- o = {
3238
- mount: d.keepDirtyValues ? o.mount : /* @__PURE__ */ new Set(),
3239
- unMount: /* @__PURE__ */ new Set(),
3240
- array: /* @__PURE__ */ new Set(),
3241
- disabled: /* @__PURE__ */ new Set(),
3242
- watch: /* @__PURE__ */ new Set(),
3243
- watchAll: !1,
3244
- focus: ""
3245
- }, i.mount = !g.isValid || !!d.keepIsValid || !!d.keepDirtyValues || !r.shouldUnregister && !ie(v), i.watch = !!r.shouldUnregister, i.keepIsValid = !!d.keepIsValid, i.action = !1, d.keepErrors || (t.errors = {}), y.state.next({
3246
- submitCount: d.keepSubmitCount ? t.submitCount : 0,
3247
- isDirty: b ? !1 : d.keepDirty ? t.isDirty : !!(d.keepDefaultValues && !Ve(u, n)),
3248
- isSubmitted: d.keepIsSubmitted ? t.isSubmitted : !1,
3249
- dirtyFields: b ? {} : d.keepDirtyValues ? d.keepDefaultValues && a ? Ke(n, a) : t.dirtyFields : d.keepDefaultValues && u ? Ke(n, u) : d.keepDirty ? t.dirtyFields : {},
3250
- touchedFields: d.keepTouched ? t.touchedFields : {},
3251
- errors: d.keepErrors ? t.errors : {},
3252
- isSubmitSuccessful: d.keepIsSubmitSuccessful ? t.isSubmitSuccessful : !1,
3253
- isSubmitting: !1,
3254
- defaultValues: n
3255
- });
3256
- }, nt = (u, d) => Te(de(u) ? u(a) : u, { ...r.resetOptions, ...d }), pt = (u, d = {}) => {
3257
- const p = E(s, u), C = p && p._f;
3258
- if (C) {
3259
- const b = C.refs ? C.refs[0] : C.ref;
3260
- b.focus && setTimeout(() => {
3261
- b.focus(), d.shouldSelect && de(b.select) && b.select();
3262
- });
3263
- }
3264
- }, mt = (u) => {
3265
- t = {
3266
- ...t,
3267
- ...u
3268
- };
3269
- }, at = {
3270
- control: {
3271
- register: ve,
3272
- unregister: Ue,
3273
- getFieldState: $e,
3274
- handleSubmit: ze,
3275
- setError: Be,
3276
- _subscribe: Ae,
3277
- _runSchema: V,
3278
- _updateIsValidating: S,
3279
- _focusError: qe,
3280
- _getWatch: L,
3281
- _getDirty: F,
3282
- _setValid: w,
3283
- _setFieldArray: x,
3284
- _setDisabledField: st,
3285
- _setErrors: T,
3286
- _getFieldArray: P,
3287
- _reset: Te,
3288
- _resetDefaultValues: () => de(r.defaultValues) && r.defaultValues().then((u) => {
3289
- nt(u, r.resetOptions), y.state.next({
3290
- isLoading: !1
3291
- });
3292
- }),
3293
- _removeUnmounted: $,
3294
- _disableForm: ht,
3295
- _subjects: y,
3296
- _proxyFormState: g,
3297
- get _fields() {
3298
- return s;
3299
- },
3300
- get _formValues() {
3301
- return a;
3302
- },
3303
- get _state() {
3304
- return i;
3305
- },
3306
- set _state(u) {
3307
- i = u;
3308
- },
3309
- get _defaultValues() {
3310
- return n;
3311
- },
3312
- get _names() {
3313
- return o;
3314
- },
3315
- set _names(u) {
3316
- o = u;
3317
- },
3318
- get _formState() {
3319
- return t;
3320
- },
3321
- get _options() {
3322
- return r;
3323
- },
3324
- set _options(u) {
3325
- r = {
3326
- ...r,
3327
- ...u
3328
- };
3329
- }
3330
- },
3331
- subscribe: Re,
3332
- trigger: K,
3333
- register: ve,
3334
- handleSubmit: ze,
3335
- watch: Pe,
3336
- setValue: W,
3337
- getValues: rt,
3338
- reset: nt,
3339
- resetField: We,
3340
- clearErrors: j,
3341
- unregister: Ue,
3342
- setError: Be,
3343
- setFocus: pt,
3344
- getFieldState: $e
3345
- };
3346
- return {
3347
- ...at,
3348
- formControl: at
3349
- };
3350
- }
3351
- function St(e = {}) {
3352
- const r = ae.useRef(void 0), t = ae.useRef(void 0), [s, n] = ae.useState({
3353
- isDirty: !1,
3354
- isValidating: !1,
3355
- isLoading: de(e.defaultValues),
3356
- isSubmitted: !1,
3357
- isSubmitting: !1,
3358
- isSubmitSuccessful: !1,
3359
- isValid: !1,
3360
- submitCount: 0,
3361
- dirtyFields: {},
3362
- touchedFields: {},
3363
- validatingFields: {},
3364
- errors: e.errors || {},
3365
- disabled: e.disabled || !1,
3366
- isReady: !1,
3367
- defaultValues: de(e.defaultValues) ? void 0 : e.defaultValues
3368
- });
3369
- if (!r.current)
3370
- if (e.formControl)
3371
- r.current = {
3372
- ...e.formControl,
3373
- formState: s
3374
- }, e.defaultValues && !de(e.defaultValues) && e.formControl.reset(e.defaultValues, e.resetOptions);
3375
- else {
3376
- const { formControl: i, ...o } = fi(e);
3377
- r.current = {
3378
- ...o,
3379
- formState: s
3380
- };
3381
- }
3382
- const a = r.current.control;
3383
- return a._options = e, Za(() => {
3384
- const i = a._subscribe({
3385
- formState: a._proxyFormState,
3386
- callback: () => n({ ...a._formState }),
3387
- reRenderRoot: !0
3388
- });
3389
- return n((o) => ({
3390
- ...o,
3391
- isReady: !0
3392
- })), a._formState.isReady = !0, i;
3393
- }, [a]), ae.useEffect(() => a._disableForm(e.disabled), [a, e.disabled]), ae.useEffect(() => {
3394
- e.mode && (a._options.mode = e.mode), e.reValidateMode && (a._options.reValidateMode = e.reValidateMode);
3395
- }, [a, e.mode, e.reValidateMode]), ae.useEffect(() => {
3396
- e.errors && (a._setErrors(e.errors), a._focusError());
3397
- }, [a, e.errors]), ae.useEffect(() => {
3398
- e.shouldUnregister && a._subjects.state.next({
3399
- values: a._getWatch()
3400
- });
3401
- }, [a, e.shouldUnregister]), ae.useEffect(() => {
3402
- if (a._proxyFormState.isDirty) {
3403
- const i = a._getDirty();
3404
- i !== s.isDirty && a._subjects.state.next({
3405
- isDirty: i
3406
- });
3407
- }
3408
- }, [a, s.isDirty]), ae.useEffect(() => {
3409
- var i;
3410
- e.values && !Ve(e.values, t.current) ? (a._reset(e.values, {
3411
- keepFieldsRef: !0,
3412
- ...a._options.resetOptions
3413
- }), !((i = a._options.resetOptions) === null || i === void 0) && i.keepIsValid || a._setValid(), t.current = e.values, n((o) => ({ ...o }))) : a._resetDefaultValues();
3414
- }, [a, e.values]), ae.useEffect(() => {
3415
- a._state.mount || (a._setValid(), a._state.mount = !0), a._state.watch && (a._state.watch = !1, a._subjects.state.next({ ...a._formState })), a._removeUnmounted();
3416
- }), r.current.formState = ae.useMemo(() => Ja(s, a), [a, s]), r.current;
3417
- }
3418
- const Nr = (e, r, t) => {
3419
- if (e && "reportValidity" in e) {
3420
- const s = E(t, r);
3421
- e.setCustomValidity(s && s.message || ""), e.reportValidity();
3422
- }
3423
- }, hi = (e, r) => {
3424
- for (const t in r.fields) {
3425
- const s = r.fields[t];
3426
- s && s.ref && "reportValidity" in s.ref ? Nr(s.ref, t, e) : s.refs && s.refs.forEach((n) => Nr(n, t, e));
3427
- }
3428
- }, pi = (e, r) => {
3429
- r.shouldUseNativeValidation && hi(e, r);
3430
- const t = {};
3431
- for (const s in e) {
3432
- const n = E(r.fields, s), a = Object.assign(e[s] || {}, { ref: n && n.ref });
3433
- if (mi(r.names || Object.keys(e), s)) {
3434
- const i = Object.assign({}, E(t, s));
3435
- G(i, "root", a), G(t, s, i);
3436
- } else
3437
- G(t, s, a);
3438
- }
3439
- return t;
3440
- }, mi = (e, r) => e.some((t) => t.startsWith(r + "."));
3441
- var At = function(e, r, t) {
3442
- return t === void 0 && (t = {}), function(s, n, a) {
3443
- try {
3444
- var i = !a.shouldUseNativeValidation && a.criteriaMode === "all";
3445
- return Promise.resolve(/* @__PURE__ */ Aa(e, s, Object.assign({}, r, { abortPipeEarly: !i }))).then(function(o) {
3446
- if (o.issues) {
3447
- for (var l = {}; o.issues.length; ) {
3448
- var f = o.issues[0], h = /* @__PURE__ */ _a(f);
3449
- if (h && (l[h] || (l[h] = { message: f.message, type: f.type }), i)) {
3450
- var g = l[h].types, m = g && g[f.type];
3451
- l[h] = Cs(h, i, l, f.type, m ? [].concat(m, f.message) : f.message);
3452
- }
3453
- o.issues.shift();
3454
- }
3455
- return { values: {}, errors: pi(l, a) };
3456
- }
3457
- return { values: t.raw ? s : o.output, errors: {} };
3458
- });
3459
- } catch (o) {
3460
- return Promise.reject(o);
3461
- }
3462
- };
3463
- };
3464
- const Or = 27, jr = 12, $r = 10, yi = et("enum"), bi = (e, r) => {
3465
- const t = {
3466
- min: e.minSelected ?? 0,
3467
- max: e.maxSelected ?? e.options.length
3468
- };
3469
- return At(/* @__PURE__ */ Ce({
3470
- checked: /* @__PURE__ */ Le(/* @__PURE__ */ bs(/* @__PURE__ */ le(), /* @__PURE__ */ ps()), /* @__PURE__ */ Zt((s) => Object.entries(s).filter(([n, a]) => a).map(([n, a]) => n)), /* @__PURE__ */ ct(t.max, r("validation_multiple_choice_max", {
3471
- count: t.max
3472
- })), /* @__PURE__ */ Ze(t.min, r("validation_multiple_choice_min", {
3473
- count: t.min
3474
- })))
3475
- }));
3476
- }, gi = Yr(({
3477
- option: e,
3478
- ...r
3479
- }, t) => c(be, {
3480
- children: [c("input", {
3481
- class: "peer sr-only h-full",
3482
- type: "checkbox",
3483
- ...r,
3484
- ref: t
3485
- }), c("label", {
3486
- class: "bg-lowest hover:bg-neutral-2 active:outline-neutral-8 ease-expo-out outline-divider text-neutral-11 peer-checked:outline-accent-7 peer-checked:bg-accent-2 peer-checked:text-accent-9 peer-focus-visible:ring-accent-9 peer-focus-visible:ring-offset-accent-7 block cursor-pointer select-none rounded-2xl px-3 py-1.5 outline outline-1 ring-0 ring-transparent transition-all selection:bg-transparent peer-focus-visible:ring-4",
3487
- htmlFor: r.id,
3488
- children: e.label
3489
- })]
3490
- })), Br = wt("gutter-stable flex w-full flex-1 flex-wrap gap-2 overflow-y-auto rounded-xl p-2.5 pr-4", {
3491
- variants: {
3492
- variant: {
3493
- // In cases where there is only one option, we want to center it
3494
- singleOption: "justify-center",
3495
- // Two choices, one answer
3496
- booleanLike: xs
3497
- }
3498
- }
3499
- }), vi = ({
3500
- input: e,
3501
- onSubmitSuccess: r
3502
- }) => {
3503
- var h, g;
3504
- const t = e.key ? (h = z.current$.value.flow) == null ? void 0 : h.data.submissions[e.key] : void 0, s = e.config.maxSelected === 1, n = s && e.config.options.length === 2, {
3505
- t: a
3506
- } = re(), {
3507
- register: i,
3508
- handleSubmit: o,
3509
- formState: {
3510
- errors: l
3511
- }
3512
- } = St({
3513
- defaultValues: {
3514
- checked: s ? {} : yi(t) ? Object.fromEntries(t.value.map((m) => [m, !0])) : {}
3515
- },
3516
- resolver: bi(e.config, a)
3517
- }), f = Yt();
3518
- return n ? c(be, {
3519
- children: [c("ul", {
3520
- style: {
3521
- maxHeight: 6.5 * Or + 5 * jr + 2 * $r
3522
- },
3523
- class: Br({
3524
- variant: "booleanLike"
3525
- }),
3526
- children: e.config.options.map((m, y) => c("li", {
3527
- class: ws,
3528
- children: c(_s, {
3529
- type: "submit",
3530
- ref: (k) => {
3531
- k && y === 0 && (f.current = k);
3532
- },
3533
- label: m.label,
3534
- value: "true",
3535
- onClick: () => r({
3536
- type: "enum",
3537
- value: [m.value]
3538
- })
3539
- })
3540
- }, m.value))
3541
- }), e.config.minSelected === 0 && c("div", {
3542
- class: "px-2 pb-2",
3543
- children: c(Se, {
3544
- class: "relative w-full",
3545
- type: "button",
3546
- onClick: () => r({
3547
- type: "enum",
3548
- value: []
3549
- })
3550
- })
3551
- })]
3552
- }) : c("form", {
3553
- noValidate: !0,
3554
- onSubmit: (m) => o((y) => {
3555
- const k = y.checked;
3556
- r({
3557
- type: "enum",
3558
- value: k
3559
- });
3560
- })(m),
3561
- children: [c("div", {
3562
- class: "flex items-center gap-1",
3563
- children: [c("ul", {
3564
- style: {
3565
- maxHeight: 6.5 * Or + 5 * jr + 2 * $r
3566
- },
3567
- class: Br({
3568
- variant: e.config.options.length === 1 ? "singleOption" : void 0
3569
- }),
3570
- children: e.config.options.map((m, y) => {
3571
- const k = `checked.${m.value}`, {
3572
- ref: _,
3573
- ...w
3574
- } = i(k);
3575
- return c("li", {
3576
- class: "relative",
3577
- children: c(gi, {
3578
- option: m,
3579
- autoFocus: y === 0,
3580
- ref: (S) => {
3581
- S && y === 0 && (f.current = S), _(S);
3582
- },
3583
- id: k,
3584
- ...w,
3585
- onClick: s ? () => r({
3586
- type: "enum",
3587
- value: [m.value]
3588
- }) : void 0
3589
- })
3590
- }, m.value);
3591
- })
3592
- }), c("div", {
3593
- class: "flex flex-col items-center gap-2 pr-2.5 pt-2.5",
3594
- children: [s ? null : c(je, {}), e.config.minSelected === 0 && c(Se, {
3595
- class: "relative",
3596
- type: "button",
3597
- onClick: () => r({
3598
- type: "enum",
3599
- value: []
3600
- })
3601
- })]
3602
- })]
3603
- }), c("div", {
3604
- class: "px-1",
3605
- children: c(tt, {
3606
- error: (g = l.checked) == null ? void 0 : g.root
3607
- })
3608
- })]
3609
- });
3610
- }, xi = et("number"), wi = (e, r) => {
3611
- const t = e.min ?? Number.MIN_SAFE_INTEGER, s = e.max ?? Number.MAX_SAFE_INTEGER, n = e.decimalCases ?? 0;
3612
- return At(/* @__PURE__ */ Ce({
3613
- number: /* @__PURE__ */ Le(/* @__PURE__ */ ms(r("validation_number")), /* @__PURE__ */ us(t, r("validation_number_min", {
3614
- min: t
3615
- })), /* @__PURE__ */ cs(s, r("validation_number_max", {
3616
- max: s
3617
- })), /* @__PURE__ */ os((a) => a === Number(a.toFixed(n)), r("validation_number_decimal_cases", {
3618
- count: n
3619
- })))
3620
- }));
3621
- }, _i = ({
3622
- input: e,
3623
- onSubmitSuccess: r
3624
- }) => {
3625
- var g;
3626
- const t = e.config.defaultValue, s = e.key ? (g = z.current$.value.flow) == null ? void 0 : g.data.submissions[e.key] : void 0, {
3627
- t: n
3628
- } = re(), {
3629
- register: a,
3630
- handleSubmit: i,
3631
- formState: {
3632
- errors: o
3633
- }
3634
- } = St({
3635
- defaultValues: {
3636
- number: xi(s) ? s.value : t ? Number(t) : void 0
3637
- },
3638
- resolver: wi(e.config, n)
3639
- }), {
3640
- ref: l,
3641
- ...f
3642
- } = a("number", {
3643
- required: !e.config.optional,
3644
- valueAsNumber: !0
3645
- }), h = ye();
3646
- return Me(() => {
3647
- h.current && (h.current.focus(), h.current.select());
3648
- }, []), c("form", {
3649
- class: "flex flex-col gap-1 p-2.5",
3650
- onSubmit: i((m) => {
3651
- m.number !== void 0 && r({
3652
- type: "number",
3653
- value: m.number
3654
- });
3655
- }),
3656
- children: [c("div", {
3657
- class: "flex items-center gap-2",
3658
- children: [c("div", {
3659
- class: "relative min-w-0 flex-grow",
3660
- children: [c("input", {
3661
- ...f,
3662
- id: "chat-input",
3663
- autocomplete: "off",
3664
- autoCapitalize: "off",
3665
- autoCorrect: "off",
3666
- autoFocus: !0,
3667
- ref: (m) => {
3668
- m && (h.current = m), l(m);
3669
- },
3670
- type: "text",
3671
- min: e.config.min,
3672
- max: e.config.max,
3673
- class: Ye({
3674
- optional: e.config.optional,
3675
- className: "[type=number:-webkit-inner-spin-button] w-full rounded-full [-webkit-outer-spin-button:none]"
3676
- }),
3677
- placeholder: e.config.placeholder
3678
- }), e.config.optional && c(Se, {
3679
- class: "absolute bottom-0 right-0.5 top-0",
3680
- onClick: () => r(null)
3681
- })]
3682
- }), c(je, {})]
3683
- }), c(tt, {
3684
- error: o.number
3685
- })]
3686
- });
3687
- }, ki = "44", Ci = /^[0-9 ]+$/, Si = et("string"), Ai = et("phone"), Ei = (e) => {
3688
- const r = /* @__PURE__ */ Le(/* @__PURE__ */ le(e("validation_country_code")), /* @__PURE__ */ Jt(Ci, e("validation_country_code"))), t = /* @__PURE__ */ Le(/* @__PURE__ */ le(e("validation_phone")), /* @__PURE__ */ Ze(1, e("validation_phone")), /* @__PURE__ */ Zt((s) => s.replace(/[^0-9]/g, "")));
3689
- return At(/* @__PURE__ */ Ce({
3690
- countryCode: r,
3691
- phoneNumber: t
3692
- }));
3693
- }, Ii = ({
3694
- input: e,
3695
- onSubmitSuccess: r
3696
- }) => {
3697
- var _;
3698
- const t = e.key ? (_ = z.current$.value.flow) == null ? void 0 : _.data.submissions[e.key] : void 0, {
3699
- t: s
3700
- } = re(), [n, a] = ke(), i = Si(t) ? Ea(t.value) : Ai(t) ? t.value : void 0, {
3701
- register: o,
3702
- handleSubmit: l,
3703
- formState: {
3704
- errors: f
3705
- },
3706
- watch: h
3707
- } = St({
3708
- defaultValues: {
3709
- countryCode: (i == null ? void 0 : i.countryCode) ?? e.config.defaultValue.countryCode ?? ki,
3710
- phoneNumber: (i == null ? void 0 : i.phoneNumber) ?? e.config.defaultValue.phoneNumber ?? ""
3711
- },
3712
- resolver: Ei(s)
3713
- }), {
3714
- ref: g,
3715
- ...m
3716
- } = o("phoneNumber", {
3717
- required: !e.config.optional
3718
- }), y = ye(), k = h("countryCode");
3719
- return Me(() => {
3720
- y.current && (y.current.focus(), y.current.select());
3721
- }, []), c("form", {
3722
- noValidate: !0,
3723
- class: "flex flex-col gap-1 p-2.5",
3724
- onSubmit: l((w) => {
3725
- const S = w.phoneNumber.replace(/[^0-9]/g, ""), x = w.countryCode.replace(/[^0-9]/g, "");
3726
- a(void 0);
3727
- const N = e.config.minChars ?? 7, T = S.length + x.length;
3728
- if (T < N)
3729
- return a(s("validation_phone_min_chars", {
3730
- count: N
3731
- }));
3732
- const A = e.config.maxChars;
3733
- if (A != null && T > A)
3734
- return a(s("validation_max_chars", {
3735
- count: A
3736
- }));
3737
- e.config.submissionFormat === "phone" ? r({
3738
- type: "phone",
3739
- value: {
3740
- countryCode: x,
3741
- phoneNumber: S
3742
- }
3743
- }) : r({
3744
- type: "string",
3745
- value: k + w.phoneNumber
3746
- });
3747
- }),
3748
- children: [c("div", {
3749
- class: "flex items-center gap-2",
3750
- children: [c("div", {
3751
- class: "relative flex min-w-0 flex-1 flex-grow gap-2",
3752
- children: [c("label", {
3753
- class: "text-neutral-12 bg-lowest hover:bg-neutral-5 placeholder:text-neutral-8 focus-visible:outline-accent-7 focus-within:bg-neutral-5 focus-within:outline-accent-7 outline-divider relative flex h-full cursor-pointer appearance-none items-center justify-center overflow-hidden text-ellipsis whitespace-nowrap rounded-l-full border-solid px-3 py-1.5 text-center text-base outline outline-2 transition-all focus-within:outline-none",
3754
- htmlFor: `isdk_phone_${e.key}`,
3755
- children: [c("span", {
3756
- children: ["+", k]
3757
- }), c("select", {
3758
- ...o("countryCode", {}),
3759
- id: `isdk_phone_${e.key}`,
3760
- class: "absolute inset-0 opacity-0",
3761
- children: Object.entries(Xt).map(([w, S]) => c("option", {
3762
- value: S,
3763
- children: [w, " (+", S, ")"]
3764
- }, w))
3765
- })]
3766
- }), c("input", {
3767
- ...m,
3768
- id: "chat-input",
3769
- type: "tel",
3770
- inputMode: "tel",
3771
- autocomplete: "off",
3772
- autoCapitalize: "off",
3773
- autoCorrect: "off",
3774
- autoFocus: !0,
3775
- ref: (w) => {
3776
- w && (y.current = w), g(w);
3777
- },
3778
- class: Ye({
3779
- optional: e.config.optional,
3780
- className: "min-w-0 flex-1 rounded-r-full"
3781
- }),
3782
- placeholder: e.config.placeholder
3783
- }), e.config.optional && c(Se, {
3784
- class: "absolute bottom-0 right-1 top-0",
3785
- onClick: () => r(null)
3786
- })]
3787
- }), c(je, {})]
3788
- }), c(tt, {
3789
- error: f.countryCode || f.phoneNumber || {
3790
- message: n
3791
- }
3792
- })]
3793
- });
3794
- }, yt = (e) => e === void 0 ? 0 : Math.max(0, Math.ceil((e - Date.now()) / 1e3)), Pr = (e, r, t, s) => t !== void 0 && s * 1e3 > Xr ? e("submission_available_at", {
3795
- time: Zr(t, r)
3796
- }) : e("submission_cooldown", {
3797
- count: s
3798
- }), Fi = (e, r) => {
3799
- const t = e == null ? void 0 : e.trim();
3800
- return t && t !== "Submit" ? t : r("submit");
3801
- }, Vi = ({
3802
- input: e,
3803
- onSubmitSuccess: r
3804
- }) => {
3805
- const {
3806
- t,
3807
- locale: s
3808
- } = re(), {
3809
- availableAt: n
3810
- } = e.config, [a, i] = ke(() => yt(n)), [o, l] = ke("");
3811
- _t(() => {
3812
- const h = yt(n);
3813
- if (i(h), h === 0)
3814
- return;
3815
- l(Pr(t, s, n, h));
3816
- const g = setInterval(() => {
3817
- const m = yt(n);
3818
- i(m), !(m > 0) && (clearInterval(g), l(t("submission_cooldown_ready")));
3819
- }, 250);
3820
- return () => clearInterval(g);
3821
- }, [n, s, t]);
3822
- const f = a > 0;
3823
- return c("div", {
3824
- class: "flex flex-col items-center gap-2 py-3",
3825
- children: [c("button", {
3826
- class: "bg-accent-9 hover:bg-accent-10 active:bg-submit-bg-active hover:border-accent-10 active:border-submit-bg-active border-accent-9 ring-accent-6 focus-visible:outline-accent-8 ring-offset-neutral-1 aria-disabled:hover:bg-accent-9 aria-disabled:hover:border-accent-9 flex cursor-pointer rounded-full border border-solid px-5 py-3 pr-4 text-white outline-none ring-1 ring-offset-[1.5px] transition-all duration-300 focus-visible:outline-2 active:ring-2 active:ring-offset-2 aria-disabled:cursor-not-allowed aria-disabled:opacity-50 aria-disabled:active:ring-1 aria-disabled:active:ring-offset-[1.5px]",
3827
- name: e.key,
3828
- "aria-disabled": f,
3829
- "aria-describedby": f ? "submit-cooldown" : void 0,
3830
- onClick: () => {
3831
- yt(n) > 0 || r(null);
3832
- },
3833
- children: c("span", {
3834
- class: "flex items-center gap-1.5",
3835
- children: [c("span", {
3836
- class: "inline-flex items-center text-sm font-medium",
3837
- children: Fi(e.config.label, t)
3838
- }), c("svg", {
3839
- stroke: "currentColor",
3840
- "stroke-width": "1.5",
3841
- width: "16",
3842
- height: "16",
3843
- viewBox: "0 0 16 16",
3844
- fill: "none",
3845
- xmlns: "http://www.w3.org/2000/svg",
3846
- children: [c("path", {
3847
- d: "M4 8L8 4L12 8"
3848
- }), c("path", {
3849
- d: "M8 4V13"
3850
- })]
3851
- })]
3852
- })
3853
- }), f && c("p", {
3854
- id: "submit-cooldown",
3855
- "aria-hidden": "true",
3856
- class: "text-neutral-11 text-xs",
3857
- children: Pr(t, s, n, a)
3858
- }), c("p", {
3859
- role: "status",
3860
- class: "sr-only",
3861
- children: o
3862
- })]
3863
- });
3864
- }, Li = 160, Ur = (e) => {
3865
- e.style.height = "auto", e.style.height = `${Math.min(e.scrollHeight, Li)}px`;
3866
- }, Mi = {
3867
- date: {
3868
- type: "date",
3869
- inputMode: "text"
3870
- },
3871
- email: {
3872
- type: "email",
3873
- inputMode: "email",
3874
- formNoValidate: !0
3875
- },
3876
- text: {
3877
- type: "text",
3878
- inputMode: "text"
3879
- },
3880
- url: {
3881
- type: "url",
3882
- inputMode: "url",
3883
- formNoValidate: !0
3884
- }
3885
- }, Ri = et("string"), Ti = (e, r) => {
3886
- const t = {
3887
- maxLength: r("validation_max_chars", {
3888
- count: e.maxChars ?? 999
3889
- }),
3890
- minLength: r("validation_min_chars", {
3891
- count: e.minChars ?? 1
3892
- })
3893
- };
3894
- return At(/* @__PURE__ */ Ce({
3895
- text: {
3896
- date: /* @__PURE__ */ Le(/* @__PURE__ */ le(r("validation_date")), /* @__PURE__ */ Jt(/^\d{4}-\d{2}-\d{2}$/, r("validation_date"))),
3897
- email: /* @__PURE__ */ Le(/* @__PURE__ */ le(r("validation_email")), /* @__PURE__ */ ls(r("validation_email")), /* @__PURE__ */ Ze(e.minChars ?? 1, t.minLength), /* @__PURE__ */ ct(e.maxChars ?? 1 / 0, t.maxLength)),
3898
- text: /* @__PURE__ */ Le(/* @__PURE__ */ le(), /* @__PURE__ */ Ze(e.minChars ?? 1, t.minLength), /* @__PURE__ */ ct(e.maxChars ?? 1 / 0, t.maxLength)),
3899
- url: /* @__PURE__ */ Le(/* @__PURE__ */ le(r("validation_url")), /* @__PURE__ */ ds(r("validation_url")), /* @__PURE__ */ Ze(e.minChars ?? 1, t.minLength), /* @__PURE__ */ ct(e.maxChars ?? 1 / 0, t.maxLength))
3900
- }[e.format]
3901
- }));
3902
- }, Di = ({
3903
- input: e,
3904
- onSubmitSuccess: r
3905
- }) => {
3906
- var _;
3907
- const {
3908
- t
3909
- } = re(), s = e.key ? (_ = z.current$.value.flow) == null ? void 0 : _.data.submissions[e.key] : void 0, n = e.config.defaultValue, a = e.config.multiline === !0 && e.config.format === "text", {
3910
- register: i,
3911
- handleSubmit: o,
3912
- watch: l,
3913
- formState: {
3914
- errors: f
3915
- }
3916
- } = St({
3917
- defaultValues: {
3918
- text: Ri(s) ? s.value : n ?? ""
3919
- },
3920
- resolver: Ti(e.config, t)
3921
- }), {
3922
- ref: h,
3923
- ...g
3924
- } = i("text", {
3925
- required: !e.config.optional
3926
- }), m = ye();
3927
- Me(() => {
3928
- m.current && (m.current instanceof HTMLTextAreaElement && Ur(m.current), m.current.focus(), m.current.select());
3929
- }, []);
3930
- const y = e.config.maxChars, k = a && y !== void 0 ? l("text").length : void 0;
3931
- return c("form", {
3932
- noValidate: !0,
3933
- class: "flex flex-col gap-1 p-2.5",
3934
- onSubmit: o((w) => {
3935
- r({
3936
- type: "string",
3937
- value: w.text
3938
- });
3939
- }),
3940
- children: [c("div", {
3941
- class: a ? "flex items-end gap-2" : "flex items-center gap-2",
3942
- children: [c("div", {
3943
- class: "relative min-w-0 flex-1",
3944
- children: [a ? c("textarea", {
3945
- id: "chat-input",
3946
- ...g,
3947
- rows: 2,
3948
- maxLength: y,
3949
- autoFocus: !0,
3950
- "aria-describedby": k !== void 0 ? "chat-input-count" : void 0,
3951
- onInput: (w) => Ur(w.currentTarget),
3952
- onKeyDown: (w) => {
3953
- var S;
3954
- w.key === "Enter" && (w.ctrlKey || w.metaKey) && (w.preventDefault(), (S = w.currentTarget.form) == null || S.requestSubmit());
3955
- },
3956
- ref: (w) => {
3957
- w && (m.current = w), h(w);
3958
- },
3959
- placeholder: e.config.placeholder,
3960
- class: Ye({
3961
- optional: !!e.config.optional,
3962
- className: "block w-full resize-none overflow-y-auto rounded-2xl"
3963
- })
3964
- }) : c("input", {
3965
- id: "chat-input",
3966
- ...g,
3967
- ...Mi[e.config.format],
3968
- autocomplete: "off",
3969
- autoCapitalize: "off",
3970
- autoCorrect: "off",
3971
- autoFocus: !0,
3972
- ref: (w) => {
3973
- w && (m.current = w), h(w);
3974
- },
3975
- placeholder: e.config.placeholder,
3976
- class: Ye({
3977
- optional: !!e.config.optional,
3978
- className: "w-full rounded-full"
3979
- })
3980
- }), e.config.optional && c(
3981
- Se,
3982
- {
3983
- class: a ? "absolute bottom-1 right-0.5" : "absolute bottom-0 right-0.5 top-0",
3984
- onClick: () => r(null)
3985
- }
3986
- )]
3987
- }), c(je, {})]
3988
- }), k !== void 0 && y !== void 0 && c("p", {
3989
- id: "chat-input-count",
3990
- class: "text-neutral-10 px-3 text-right text-xs",
3991
- children: [k, "/", y]
3992
- }), c(tt, {
3993
- error: f.text
3994
- })]
3995
- });
3996
- }, Ni = {
3997
- text: Di,
3998
- phone: Ii,
3999
- "multiple-choice": vi,
4000
- boolean: Oa,
4001
- file: qa,
4002
- submit: Vi,
4003
- address: Ra,
4004
- number: _i
4005
- }, Oi = ({
4006
- logger: e,
4007
- analytics: r,
4008
- rpcClient: t
4009
- }) => {
4010
- var i;
4011
- const s = (i = z.current$.value.flow) == null ? void 0 : i.data.currentInput, n = ye(null), a = () => ce.onInteractionFn$.value();
4012
- return Me(() => {
4013
- var o;
4014
- (o = n.current) == null || o.scrollTo({
4015
- top: 0
4016
- });
4017
- }, [s]), c("div", {
4018
- ref: n,
4019
- class: "border-divider max-h-[calc(100%-var(--header-height)-4rem)] w-full shrink-0 scroll-pb-12 overflow-y-auto overscroll-contain border-t",
4020
- children: c("div", {
4021
- class: "flex flex-col",
4022
- onPointerDownCapture: s ? a : void 0,
4023
- onKeyDownCapture: s ? a : void 0,
4024
- children: s ? (() => {
4025
- const o = Ni[s.type];
4026
- return c(o, {
4027
- logger: e,
4028
- analytics: r,
4029
- rpcClient: t,
4030
- onSubmitSuccess: ce.onSubmitSuccessFn$.value,
4031
- input: s
4032
- });
4033
- })() : c("div", {
4034
- class: "flex items-center gap-2 p-2.5",
4035
- children: [c("input", {
4036
- "aria-hidden": "true",
4037
- id: "chat-input",
4038
- class: Ye({
4039
- optional: !1,
4040
- className: "flex-grow rounded-full"
4041
- }),
4042
- disabled: !0
4043
- }), c(je, {
4044
- disabled: !0,
4045
- "aria-hidden": "true",
4046
- tabIndex: -1
4047
- })]
4048
- })
4049
- })
4050
- });
4051
- };
4052
- function ji(e) {
4053
- return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
4054
- }
4055
- var $i = function(e) {
4056
- return e instanceof RegExp;
4057
- }, Bi = function(r) {
4058
- var t = /[\\^$.*+?()[\]{}|]/g, s = RegExp(t.source);
4059
- return r && s.test(r) ? r.replace(t, "\\$&") : r;
4060
- }, Ls = function(e) {
4061
- return typeof e == "string";
4062
- }, Pi = function(e) {
4063
- var r = [];
4064
- return e.forEach(function(t) {
4065
- Array.isArray(t) ? r = r.concat(t) : r.push(t);
4066
- }), r;
4067
- };
4068
- function Ui(e, r, t) {
4069
- var s = 0, n = 0;
4070
- if (e === "")
4071
- return e;
4072
- if (!e || !Ls(e))
4073
- throw new TypeError("First argument to react-string-replace#replaceString must be a string");
4074
- var a = r;
4075
- $i(a) || (a = new RegExp("(" + Bi(a) + ")", "gi"));
4076
- for (var i = e.split(a), o = 1, l = i.length; o < l; o += 2) {
4077
- if (i[o] === void 0 || i[o - 1] === void 0) {
4078
- console.warn("reactStringReplace: Encountered undefined value during string replacement. Your RegExp may not be working the way you expect.");
4079
- continue;
4080
- }
4081
- n = i[o].length, s += i[o - 1].length, i[o] = t(i[o], o, s), s += n;
4082
- }
4083
- return i;
4084
- }
4085
- var qi = function(r, t, s) {
4086
- return Array.isArray(r) || (r = [r]), Pi(r.map(function(n) {
4087
- return Ls(n) ? Ui(n, t, s) : n;
4088
- }));
4089
- };
4090
- const ot = /* @__PURE__ */ ji(qi), zi = /(\[[^\]]+\]\([^)]+\))/g, Wi = /\[([^\]]+)\]\(([^)]+)\)/, Hi = /(https?:\/\/[^\s]+)/g, Ki = /_(.*?)_/g, Gi = /\*\*(.*?)\*\*/g, Ji = /(\\n|\n)/g, qr = "text-accent-10 hover:text-accent-11 no-underline underline-offset-2 hover:underline", Zi = (e) => {
4091
- const r = ot(e, zi, (o, l) => {
4092
- const [, f, h] = o.match(Wi) ?? [];
4093
- return h ? c("a", {
4094
- class: qr,
4095
- href: h,
4096
- children: f ?? h
4097
- }, h + l) : c("span", {
4098
- children: "INVALID LINK"
4099
- });
4100
- }), t = ot(r, Hi, (o, l) => c("a", {
4101
- class: qr,
4102
- href: o,
4103
- children: o
4104
- }, o + l)), s = ot(t, Ki, (o, l) => c("em", {
4105
- children: o
4106
- }, o + l)), n = ot(s, Gi, (o, l) => c("strong", {
4107
- children: o
4108
- }, o + l));
4109
- let a = 0;
4110
- return ot(n, Ji, () => c("br", {}, `br-${a++}`));
4111
- }, Xi = wt("select-text max-w-[min(100%,24rem)] [text-wrap:pretty] leading-snug flex-shrink min-w-[2rem] py-2 px-3 rounded-[18px] min-h-[36px] break-words relative", {
4112
- variants: {
4113
- side: {
4114
- left: "bg-bubble-weak-bg text-neutral-12 shadow-surface-sm outline outline-1 outline-bubble-weak rounded-bl-md",
4115
- right: "ml-auto bg-accent-9 text-white rounded-br-md shadow-surface-sm shadow-bubble-strong-shadow"
4116
- },
4117
- animate: {
4118
- true: "animate-bubble-in",
4119
- false: ""
4120
- }
4121
- },
4122
- defaultVariants: {
4123
- side: "left"
4124
- }
4125
- }), Yi = ({
4126
- children: e,
4127
- className: r,
4128
- animate: t,
4129
- side: s,
4130
- ...n
4131
- }) => c("p", {
4132
- style: {
4133
- transformOrigin: s === "left" ? "0% 50%" : "100% 50%"
4134
- },
4135
- class: Xi({
4136
- className: r,
4137
- side: s,
4138
- animate: t
4139
- }),
4140
- ...n,
4141
- children: e
4142
- }), zr = /* @__PURE__ */ new Map(), Wr = sn({
4143
- overrides: {},
4144
- locale: void 0
4145
- }), Qi = (e, r) => {
4146
- const t = r == null ? void 0 : r.trim();
4147
- if (!t)
4148
- return e("job_alerts_privacy");
4149
- const s = e("job_alerts_privacy_sender", {
4150
- employer: t
4151
- });
4152
- return e("job_alerts_privacy") !== Wr("job_alerts_privacy") && s === Wr("job_alerts_privacy_sender", {
4153
- employer: t
4154
- }) ? e("job_alerts_privacy") : s;
4155
- }, eo = ({
4156
- flow: e,
4157
- rpcClient: r
4158
- }) => {
4159
- const {
4160
- t
4161
- } = re(), s = e.data.flowSessionId, n = zr.get(s) ?? nn("offer");
4162
- zr.set(s, n);
4163
- const a = (l) => {
4164
- const f = e.data.submissions[l];
4165
- return (f == null ? void 0 : f.type) === "string" ? f.value.trim() : void 0;
4166
- }, i = a("email") || e.nodes.flatMap((l) => l.type === "question-text" && l.data.format === "email" ? [a(l.data.key)] : []).find((l) => !!l);
4167
- if (!i || n.value === "declined")
4168
- return null;
4169
- if (n.value === "success")
4170
- return c("p", {
4171
- role: "status",
4172
- children: t("job_alerts_success")
4173
- });
4174
- const o = async () => {
4175
- if (!(n.value !== "offer" && n.value !== "error")) {
4176
- n.value = "saving";
4177
- try {
4178
- await fn(r, {
4179
- contact: {
4180
- email: i,
4181
- first_name: a("first_name"),
4182
- last_name: a("last_name")
4183
- },
4184
- job: e.job
4185
- }), n.value = "success";
4186
- } catch {
4187
- n.value = "error";
4188
- }
4189
- }
4190
- };
4191
- return c("div", {
4192
- class: "bg-neutral-2 flex flex-col gap-2 rounded-xl p-3 text-sm",
4193
- children: [c("p", {
4194
- children: t("job_alerts_offer", {
4195
- email: i
4196
- })
4197
- }), n.value === "error" ? c("p", {
4198
- role: "alert",
4199
- children: t("job_alerts_error")
4200
- }) : null, c("div", {
4201
- class: "flex gap-2",
4202
- children: [c("button", {
4203
- type: "button",
4204
- class: "bg-accent-9 min-h-[44px] rounded-lg px-3 py-2 text-white",
4205
- disabled: n.value === "saving",
4206
- onClick: o,
4207
- children: t("job_alerts_accept")
4208
- }), c("button", {
4209
- type: "button",
4210
- class: "min-h-[44px] rounded-lg px-3 py-2",
4211
- disabled: n.value === "saving",
4212
- onClick: () => {
4213
- n.value !== "offer" && n.value !== "error" || (n.value = "declined");
4214
- },
4215
- children: t("job_alerts_decline")
4216
- })]
4217
- }), c("p", {
4218
- class: "text-xs",
4219
- children: Qi(t, e.employer)
4220
- })]
4221
- });
4222
- }, to = ({
4223
- message: e
4224
- }) => c("div", {
4225
- class: "bg-accent-3 flex w-full items-center justify-center overflow-hidden rounded-xl px-2 py-2",
4226
- children: c("a", {
4227
- onClick: e.onClick,
4228
- class: "bg-lowest shadow-surface-sm ring-accent-6 hover:ring-accent-8 active:bg-accent-2 active:text-accent-10 text-accent-9 focus-visible:ring-accent-7/50 text-wrap-balance flex items-center gap-1.5 rounded-full py-2 pl-4 pr-2.5 text-center no-underline ring-1 transition-all focus:outline-none focus-visible:ring-4 focus-visible:ring-offset-2",
4229
- target: "_blank",
4230
- href: e.href,
4231
- children: [e.text, c("svg", {
4232
- class: "flex-none",
4233
- width: "15",
4234
- height: "15",
4235
- viewBox: "0 0 15 15",
4236
- fill: "none",
4237
- xmlns: "http://www.w3.org/2000/svg",
4238
- children: c("path", {
4239
- d: "M3.64645 11.3536C3.45118 11.1583 3.45118 10.8417 3.64645 10.6465L10.2929 4L6 4C5.72386 4 5.5 3.77614 5.5 3.5C5.5 3.22386 5.72386 3 6 3L11.5 3C11.6326 3 11.7598 3.05268 11.8536 3.14645C11.9473 3.24022 12 3.36739 12 3.5L12 9.00001C12 9.27615 11.7761 9.50001 11.5 9.50001C11.2239 9.50001 11 9.27615 11 9.00001V4.70711L4.35355 11.3536C4.15829 11.5488 3.84171 11.5488 3.64645 11.3536Z",
4240
- fill: "currentColor",
4241
- "fill-rule": "evenodd",
4242
- "clip-rule": "evenodd"
4243
- })
4244
- })]
4245
- })
4246
- }), ro = ({
4247
- className: e,
4248
- ...r
4249
- }) => c("div", {
4250
- "aria-hidden": !0,
4251
- children: ce.isBotTyping$.value === !0 ? c("div", {
4252
- "data-testid": "typing-indicator",
4253
- class: Qe("flex gap-1 p-4", e),
4254
- ...r,
4255
- children: Array.from({
4256
- length: 3
4257
- }, (t, s) => c("div", {
4258
- class: "bg-accent-9 h-1.5 w-1.5 animate-bounce rounded-full",
4259
- style: {
4260
- animationDelay: `${-s * 200}ms`
4261
- }
4262
- }))
4263
- }) : void 0
4264
- }), so = {
4265
- bot: "left",
4266
- user: "right"
4267
- }, no = wt("w-full select-none py-2 text-wrap-balance text-center text-[10px] uppercase tracking-widest drop-shadow-[0_1.5px_var(--i-color-n-1)]", {
4268
- variants: {
4269
- variant: {
4270
- info: "text-neutral-11",
4271
- warning: "text-system-warning",
4272
- error: "text-error-11",
4273
- success: "text-system-success"
4274
- }
4275
- }
4276
- }), ao = ({
4277
- env: e,
4278
- lastSentMessageFooter: r,
4279
- rpcClient: t
4280
- }) => {
4281
- const {
4282
- t: s
4283
- } = re(), n = z.current$.value.flow, a = (n == null ? void 0 : n.data.messages) ?? [], i = a.findIndex((l) => l.type === "system" && l.semantic === "submission-closed"), o = n ? Kt(n) : void 0;
4284
- return c("ol", {
4285
- "aria-label": s("chat_messages"),
4286
- "aria-live": "polite",
4287
- class: "mt-auto flex flex-col justify-end gap-2 p-2 pt-[calc(var(--header-height)+1rem)]",
4288
- children: [a.map((l, f) => c(be, {
4289
- children: [c("li", {
4290
- class: "flex",
4291
- tabIndex: f === a.length - 1 ? -1 : void 0,
4292
- children: [o && l.groupId === o && !a.slice(f + 1).some((h) => h.groupId === o) ? r : null, an(l).with({
4293
- type: "system"
4294
- }, (h) => c("p", {
4295
- class: no({
4296
- variant: h.variant
4297
- }),
4298
- children: h.text
4299
- })).with({
4300
- type: "text",
4301
- author: on.union("bot", "user")
4302
- }, (h) => {
4303
- const g = f === a.length - 1, m = h.author === "bot" ? Zi(h.text) : h.text;
4304
- return c(be, {
4305
- children: c(Yi, {
4306
- animate: g,
4307
- side: so[h.author],
4308
- children: m
4309
- }, f)
4310
- });
4311
- }).with({
4312
- type: "link"
4313
- }, (h) => c(to, {
4314
- message: h
4315
- })).with({
4316
- type: "image"
4317
- }, (h) => c("img", {
4318
- class: "shadow-surface-md w-full max-w-[min(100%,24rem)] rounded-2xl",
4319
- src: h.url,
4320
- style: {
4321
- aspectRatio: h.width / h.height
4322
- }
4323
- })).with({
4324
- type: "file"
4325
- }, (h) => c($a, {
4326
- class: h.author === "bot" ? void 0 : "ml-auto",
4327
- file: {
4328
- name: h.fileName,
4329
- sizeKb: h.fileSizeKb
4330
- }
4331
- })).with({
4332
- type: "loading"
4333
- }, (h) => {
4334
- const g = a[a.length - 1];
4335
- return !(h === g) || ce.isBotTyping$.value || n != null && n.data.isFinished ? null : c("div", {
4336
- class: "flex flex-grow flex-col items-center justify-center gap-2",
4337
- children: [c(Wt, {
4338
- "aria-hidden": h.text ? "true" : void 0,
4339
- class: "text-neutral-6 h-8 w-8"
4340
- }), h.text ? c("p", {
4341
- role: "status",
4342
- class: "text-neutral-11 text-sm",
4343
- children: h.text
4344
- }) : null]
4345
- });
4346
- }).exhaustive()]
4347
- }), f === i && (n != null && n.jobAlerts) && t ? c("li", {
4348
- children: c(eo, {
4349
- flow: n,
4350
- rpcClient: t
4351
- }, n.data.flowSessionId)
4352
- }) : null]
4353
- }, f)), e && e !== "production" && (n == null ? void 0 : n.data.isFinished) && n.data.stagingDestination && c("li", {
4354
- class: "text-neutral-11 text-center text-xs",
4355
- children: n.data.stagingDestination
4356
- }), c("li", {
4357
- class: ce.captchaVisible$.value ? "flex" : "hidden",
4358
- children: c("div", {
4359
- "data-captcha-slot": !0,
4360
- tabIndex: -1,
4361
- role: "group",
4362
- "aria-label": s("captcha_check"),
4363
- class: "w-full max-w-[min(100%,24rem)] rounded-md"
4364
- })
4365
- }, "captcha"), c(ro, {}, "typing")]
4366
- });
4367
- }, uo = ({
4368
- logger: e,
4369
- apiClient: r,
4370
- rpcClient: t,
4371
- analytics: s,
4372
- talentBankClient: n,
4373
- env: a
4374
- }) => {
4375
- const {
4376
- flow: i
4377
- } = z.current$.value;
4378
- Oe(i, "Flow is required to exist to show chatbot body");
4379
- const o = z.viewState$.value, {
4380
- chatRef: l,
4381
- chatService: f
4382
- } = ln(), {
4383
- t: h
4384
- } = re(), [g, m] = ke();
4385
- return Me(() => {
4386
- o === "maximised" && ce.scrollToEnd();
4387
- }, [o]), Me(() => {
4388
- var O;
4389
- const {
4390
- state: y,
4391
- flow: k
4392
- } = z.current$.peek();
4393
- if (y !== "loaded")
4394
- throw new Error(h("invalid_state"));
4395
- let _ = k.data.nodeHistory.at(-1);
4396
- if (ce.scrollToEnd(), z.setInput(void 0), k.data.isFinished)
4397
- return;
4398
- const w = () => {
4399
- const V = z.current$.peek().flow;
4400
- !V || V.data.hasInteracted || (z.markAsInteracted(), br(s, V, "FLOW_INTERACT"));
4401
- };
4402
- ce.onInteractionFn$.value = w, _ === void 0 ? (_ = ss(i.nodes).id, z.setCurrentNodeId(_), br(s, k, "FLOW_START")) : z.removeMessagesSentByNodeIds([_, Ut]);
4403
- const {
4404
- interpret: S,
4405
- abort: x,
4406
- undo: N
4407
- } = qn({
4408
- context: i.context,
4409
- analytics: {
4410
- service: s,
4411
- customProperties: (O = i.analytics) == null ? void 0 : O.customProperties
4412
- },
4413
- apiClient: r,
4414
- logger: e,
4415
- talentBankClient: n,
4416
- flow: i,
4417
- chatService: f,
4418
- t: h,
4419
- getApplicationRecovery: () => {
4420
- var V;
4421
- return (V = z.current$.peek().flow) == null ? void 0 : V.data.applicationRecovery;
4422
- },
4423
- setApplicationRecovery: z.setApplicationRecovery,
4424
- persistWriteBarrier: () => z.persistWriteBarrier(k),
4425
- // We need to get fresh submissions, that’s why we call `peek` here.
4426
- getSubmissions: () => {
4427
- var V;
4428
- return (V = z.current$.peek().flow) == null ? void 0 : V.data.submissions;
4429
- },
4430
- onInterpret: (V) => z.setCurrentNodeId(V.id),
4431
- onFlowEnd: async () => {
4432
- var M;
4433
- z.markAsFinished();
4434
- const V = z.current$.peek().flow;
4435
- Oe(V), s.log({
4436
- event: "FLOW_END",
4437
- properties: {
4438
- flow_id: i.id,
4439
- flow_version: i.version,
4440
- flow_session_id: V.data.flowSessionId,
4441
- flow_build: i.build,
4442
- job: i.job
4443
- },
4444
- customProperties: (M = i.analytics) == null ? void 0 : M.customProperties
4445
- });
4446
- }
4447
- }), T = _, A = () => {
4448
- m(() => N), S(T);
4449
- }, q = new AbortController();
4450
- return k.offerResume ? ya({
4451
- chatService: f,
4452
- t: h,
4453
- signal: q.signal
4454
- }).then((V) => (z.settleResume(k), V ? A() : (z.restart(), cn.flushStateData()))).catch((V) => {
4455
- V instanceof Gr || e.error("Resume prompt failed", V);
4456
- }) : A(), () => {
4457
- q.abort(), ce.onInteractionFn$.value === w && (ce.onInteractionFn$.value = () => {
4458
- }), x();
4459
- };
4460
- }, [s, r, f, e, i, n, h]), c(be, {
4461
- children: [c("div", {
4462
- class: "relative flex min-h-0 w-full max-w-full flex-grow flex-col",
4463
- children: [c("div", {
4464
- ref: l,
4465
- role: "region",
4466
- "aria-label": h("conversation_history"),
4467
- tabIndex: 0,
4468
- className: "hide-scrollbars fr flex min-h-0 w-full max-w-full flex-grow flex-col overflow-y-auto ring-inset",
4469
- style: {
4470
- WebkitOverflowScrolling: "touch"
4471
- },
4472
- children: c(ao, {
4473
- env: a,
4474
- rpcClient: t,
4475
- lastSentMessageFooter: !Kt(i) || !g ? null : c(io, {
4476
- undoFn: g
4477
- })
4478
- })
4479
- }), ce.isReadingHistory$.value && !i.data.isFinished && !ce.isBotTyping$.value && c("div", {
4480
- class: "absolute bottom-2 left-1/2 -translate-x-1/2",
4481
- children: c(Qr, {
4482
- class: "bg-neutral-1 ring-divider shadow-surface-md ring-1",
4483
- "aria-label": h("jump_to_current"),
4484
- onClick: () => {
4485
- var k, _;
4486
- ce.scrollToEnd(), (_ = ((k = l.current) == null ? void 0 : k.querySelector('li[tabindex="-1"]')) ?? l.current) == null || _.focus({
4487
- preventScroll: !0
4488
- });
4489
- },
4490
- children: c(un, {})
4491
- })
4492
- })]
4493
- }), c(Oi, {
4494
- logger: e,
4495
- analytics: s,
4496
- rpcClient: t
4497
- })]
4498
- });
4499
- }, io = ({
4500
- undoFn: e
4501
- }) => {
4502
- const {
4503
- t: r
4504
- } = re();
4505
- return c("div", {
4506
- class: "flex flex-1 items-center justify-end px-1",
4507
- children: c(Qr, {
4508
- "aria-label": r("undo"),
4509
- onClick: async () => {
4510
- const {
4511
- flow: t
4512
- } = z.current$.peek();
4513
- Oe(t), e(t.data.nodeHistory);
4514
- },
4515
- children: c("path", {
4516
- d: "M3 13h2.67l6.66-6.67a1.9 1.9 0 0 0 0-2.66 1.91 1.91 0 0 0-2.66 0L3 10.33V13Zm4.6-7.25 2.67 2.67"
4517
- })
4518
- })
4519
- });
4520
- };
4521
- export {
4522
- uo as ChatbotBody
4523
- };