@verbb/formie-browser 1.0.14 → 1.0.16

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 (156) hide show
  1. package/CHANGELOG.md +66 -0
  2. package/dist/chunks/{address-country-Dn71jroa.js → address-country-DLJF-OkC.js} +5 -9
  3. package/dist/chunks/{address-finder-O49uDRoR.js → address-finder-QK1m1eyv.js} +2 -2
  4. package/dist/chunks/{address-state-ByYatUur.js → address-state-CHKit8AW.js} +113 -112
  5. package/dist/chunks/{api-DYYsVIub.js → api-BPtH5RBA.js} +162 -130
  6. package/dist/chunks/{api-D6kJ7kXZ.js → api-BR2Gqy37.js} +313 -303
  7. package/dist/chunks/{api-ghNr2uxX.js → api-CmuOZ0i3.js} +1 -1
  8. package/dist/chunks/{async-nPFRNQ06.js → async-2GdXNFCE.js} +18 -1
  9. package/dist/chunks/{bpoint-D0RKFM4F.js → bpoint-GvYfyPjD.js} +1 -1
  10. package/dist/chunks/{calculations-YEoVCG2q.js → calculations-DeEmdUDq.js} +5 -7
  11. package/dist/chunks/{captcha-eu-DERJbXnH.js → captcha-eu-eU_M6snp.js} +2 -2
  12. package/dist/chunks/{checkbox-radio-gsm8QPJg.js → checkbox-radio-CSXo6svm.js} +4 -12
  13. package/dist/chunks/{combobox-CWNdx4Fk.js → combobox-CJh2DoSO.js} +323 -363
  14. package/dist/chunks/{conditions-DqNHLTbN.js → conditions-Dz3068K0.js} +140 -153
  15. package/dist/chunks/{country-from-ip-DDj_mFki.js → country-from-ip-BqQ-BqLH.js} +1 -1
  16. package/dist/chunks/{custom-google-maps-C4l2S3GO.js → custom-google-maps-rNm5VFbb.js} +2 -6
  17. package/dist/chunks/{custom-link-CLazgKYH.js → custom-link-CLqFCssQ.js} +1 -1
  18. package/dist/chunks/{custom-maps-DqcAlD0v.js → custom-maps-DgjYQDLj.js} +4 -8
  19. package/dist/chunks/{date-picker-RUnevF7l.js → date-picker-BVJxJVYT.js} +42 -58
  20. package/dist/chunks/{debug-BV0DvdHx.js → debug-rhzqP1j2.js} +2 -14
  21. package/dist/chunks/{dist-ZLeW0zZ3.js → dist-CJReDlDK.js} +13 -8
  22. package/dist/chunks/{eway-or6dtjoT.js → eway-BZuTBAUW.js} +3 -3
  23. package/dist/chunks/{field-references.resolver-Ca8MguFv.js → field-references.resolver-uSHf5-NP.js} +1 -1
  24. package/dist/chunks/{file-upload-Bm-TXyNB.js → file-upload-vEUr_EuP.js} +131 -113
  25. package/dist/chunks/{friendly-captcha-v1-GFqCt1Mh.js → friendly-captcha-v1-C_cF1WD2.js} +2 -2
  26. package/dist/chunks/{friendly-captcha-v2-WoW246JG.js → friendly-captcha-v2-BenESH-n.js} +2 -2
  27. package/dist/chunks/{friendly-challenge-DPG9MJb1.js → friendly-challenge-BgPBEMXx.js} +21 -35
  28. package/dist/chunks/{go-cardless-DzJ-0FKg.js → go-cardless-DWZeB0Bq.js} +2 -6
  29. package/dist/chunks/{google-address-C1P1nTDM.js → google-address-DQR6rsbh.js} +15 -10
  30. package/dist/chunks/{hcaptcha-D0T8aIHz.js → hcaptcha-COilLmRT.js} +2 -2
  31. package/dist/chunks/{hidden-BZhXnNPe.js → hidden-Bc2TpcgF.js} +1 -1
  32. package/dist/chunks/{http-C2QdHuWO.js → http-Dj_skqaa.js} +1 -1
  33. package/dist/chunks/{leaflet-src-DE6rv6M-.js → leaflet-src-Cg-LUOD8.js} +74 -122
  34. package/dist/chunks/{loqate-DD1S7PY9.js → loqate-ZZClcacr.js} +2 -2
  35. package/dist/chunks/{mollie-DG8Ju83x.js → mollie-8OMXIYa8.js} +2 -6
  36. package/dist/chunks/{moneris-C8m3Fvqu.js → moneris-qYHJ9EFy.js} +1 -1
  37. package/dist/chunks/opayo-DlWPEnla.js +159 -0
  38. package/dist/chunks/{paddle-BIYR9Um3.js → paddle-CArfWih0.js} +2 -2
  39. package/dist/chunks/{password-validation-C8_uO_c_.js → password-validation-HGOU9kf3.js} +2 -2
  40. package/dist/chunks/{paypal-B_yxIo2d.js → paypal-BcaMCMGY.js} +2 -2
  41. package/dist/chunks/{payway-CeOzS0sL.js → payway-vxC7_bfR.js} +4 -12
  42. package/dist/chunks/{phone-country-bAqje17P.js → phone-country-Bx9EG50h.js} +124 -141
  43. package/dist/chunks/{place-kit-BE5gi3vo.js → place-kit-BKk8xDXf.js} +10 -10
  44. package/dist/chunks/{placekit-autocomplete.esm-CZZERYur.js → placekit-autocomplete.esm-D2A_0iVU.js} +2 -5
  45. package/dist/chunks/{recaptcha-enterprise-CruXddZq.js → recaptcha-enterprise-Cx6HUpMa.js} +6 -12
  46. package/dist/chunks/recaptcha-shared-CcMI-r8t.js +33 -0
  47. package/dist/chunks/{recaptcha-v2-checkbox-CCnJYCnG.js → recaptcha-v2-checkbox-DQ9BJzcv.js} +2 -2
  48. package/dist/chunks/{recaptcha-v2-invisible-BuVqRRYn.js → recaptcha-v2-invisible-BP0T8Pan.js} +2 -2
  49. package/dist/chunks/recaptcha-v3-DKMGQ27K.js +38 -0
  50. package/dist/chunks/{repeater-DwE27jI1.js → repeater-BR0RUvTs.js} +50 -40
  51. package/dist/chunks/{rich-text-uV4o_pGk.js → rich-text-H2A6cm1t.js} +33 -11
  52. package/dist/chunks/{rolldown-runtime-DtPi1Y-2.js → rolldown-runtime-VHNaYcLd.js} +1 -1
  53. package/dist/chunks/{scripts-CbQ7agX3.js → scripts-DrccjrFv.js} +1 -1
  54. package/dist/chunks/{sdk-lkwSvlpM.js → sdk-_cmrRYgp.js} +4 -16
  55. package/dist/chunks/{shared-OKhSay59.js → shared-CJ1LIEh3.js} +1 -3
  56. package/dist/chunks/{signature-7cldFbqj.js → signature-CfKA_poI.js} +9 -41
  57. package/dist/chunks/skip-CEW89ExY.js +7 -0
  58. package/dist/chunks/{snaptcha-C04kNGYQ.js → snaptcha-P3EoSQud.js} +1 -1
  59. package/dist/chunks/{square-DEzxv9D9.js → square-Dyz0p_GU.js} +2 -2
  60. package/dist/chunks/{stripe-CVPQGDz3.js → stripe-Bfd_jp_k.js} +4 -7
  61. package/dist/chunks/{summary-BF_8mrXI.js → summary-B3CAebLV.js} +45 -37
  62. package/dist/chunks/{survey-likert-fk1hUPff.js → survey-likert-CEtUceag.js} +1 -1
  63. package/dist/chunks/{survey-rank-BsLGl2LX.js → survey-rank-Dtt97y6s.js} +3 -7
  64. package/dist/chunks/{survey-rating-DVS6e6fM.js → survey-rating-mlDMI0uq.js} +9 -23
  65. package/dist/chunks/{table-DnIBdeKF.js → table-0k6Md0IO.js} +2 -2
  66. package/dist/chunks/{text-limit-LGMPhFuC.js → text-limit-CTVML6s7.js} +10 -10
  67. package/dist/chunks/{turnstile-n9DNyPxi.js → turnstile-Sp4ubowK.js} +2 -2
  68. package/dist/chunks/{upload-manager-BbiUosZq.js → upload-manager-Ccg3d_4I.js} +258 -260
  69. package/dist/index.d.ts +1 -0
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +743 -734
  72. package/dist/js/core/create-formie-client.d.ts.map +1 -1
  73. package/dist/js/core/dom-events.d.ts +5 -0
  74. package/dist/js/core/dom-events.d.ts.map +1 -1
  75. package/dist/js/core/page-client-event.d.ts.map +1 -1
  76. package/dist/js/core/submit-result-state.d.ts.map +1 -1
  77. package/dist/js/core/submit-result-ui.d.ts +3 -1
  78. package/dist/js/core/submit-result-ui.d.ts.map +1 -1
  79. package/dist/js/core/validation-focus.d.ts.map +1 -1
  80. package/dist/js/modules/address/google-address.d.ts +10 -0
  81. package/dist/js/modules/address/google-address.d.ts.map +1 -1
  82. package/dist/js/modules/address/place-kit.d.ts.map +1 -1
  83. package/dist/js/modules/captchas/factories.d.ts.map +1 -1
  84. package/dist/js/modules/captchas/host.d.ts +4 -1
  85. package/dist/js/modules/captchas/host.d.ts.map +1 -1
  86. package/dist/js/modules/captchas/recaptcha-shared.d.ts +1 -1
  87. package/dist/js/modules/captchas/recaptcha-shared.d.ts.map +1 -1
  88. package/dist/js/modules/captchas/recaptcha-v3.d.ts.map +1 -1
  89. package/dist/js/modules/fields/address-state.d.ts.map +1 -1
  90. package/dist/js/modules/fields/combobox.d.ts +2 -0
  91. package/dist/js/modules/fields/combobox.d.ts.map +1 -1
  92. package/dist/js/modules/fields/conditions/effects.d.ts.map +1 -1
  93. package/dist/js/modules/fields/conditions.d.ts.map +1 -1
  94. package/dist/js/modules/fields/date-picker.d.ts.map +1 -1
  95. package/dist/js/modules/fields/file-upload.d.ts.map +1 -1
  96. package/dist/js/modules/fields/phone-country.d.ts.map +1 -1
  97. package/dist/js/modules/fields/repeater.d.ts.map +1 -1
  98. package/dist/js/modules/fields/rich-text.d.ts.map +1 -1
  99. package/dist/js/modules/fields/summary.d.ts.map +1 -1
  100. package/dist/js/modules/fields/text-limit.d.ts.map +1 -1
  101. package/dist/js/modules/fields/upload-manager.d.ts.map +1 -1
  102. package/dist/js/modules/payments/factories.d.ts.map +1 -1
  103. package/dist/js/modules/payments/opayo.d.ts.map +1 -1
  104. package/dist/js/submit/pipeline.d.ts +2 -0
  105. package/dist/js/submit/pipeline.d.ts.map +1 -1
  106. package/dist/js/utils/async.d.ts +1 -0
  107. package/dist/js/utils/async.d.ts.map +1 -1
  108. package/dist/js/utils/form-started-at.d.ts +1 -0
  109. package/dist/js/utils/form-started-at.d.ts.map +1 -1
  110. package/dist/js/utils/unload-warning.d.ts +4 -0
  111. package/dist/js/utils/unload-warning.d.ts.map +1 -1
  112. package/dist/js/validation/rules/required.d.ts.map +1 -1
  113. package/dist/js/validation/submit-readiness.d.ts.map +1 -1
  114. package/dist/js/validation/validator.d.ts +1 -0
  115. package/dist/js/validation/validator.d.ts.map +1 -1
  116. package/package.json +3 -3
  117. package/src/index.ts +1 -0
  118. package/src/js/core/create-formie-client.ts +37 -28
  119. package/src/js/core/dom-events.ts +30 -1
  120. package/src/js/core/page-client-event.ts +5 -7
  121. package/src/js/core/submit-result-state.ts +30 -2
  122. package/src/js/core/submit-result-ui.ts +25 -3
  123. package/src/js/core/validation-focus.ts +17 -3
  124. package/src/js/modules/address/google-address.ts +95 -37
  125. package/src/js/modules/address/place-kit.ts +13 -7
  126. package/src/js/modules/captchas/factories.ts +241 -101
  127. package/src/js/modules/captchas/host.ts +16 -0
  128. package/src/js/modules/captchas/recaptcha-enterprise.ts +1 -1
  129. package/src/js/modules/captchas/recaptcha-shared.ts +23 -5
  130. package/src/js/modules/captchas/recaptcha-v3.ts +23 -14
  131. package/src/js/modules/fields/address-country.ts +5 -5
  132. package/src/js/modules/fields/address-state.ts +80 -27
  133. package/src/js/modules/fields/combobox.ts +22 -1
  134. package/src/js/modules/fields/conditions/effects.ts +4 -5
  135. package/src/js/modules/fields/conditions.ts +9 -0
  136. package/src/js/modules/fields/date-picker.ts +6 -3
  137. package/src/js/modules/fields/file-upload.ts +55 -18
  138. package/src/js/modules/fields/phone-country.ts +25 -2
  139. package/src/js/modules/fields/repeater.ts +55 -4
  140. package/src/js/modules/fields/rich-text.ts +33 -0
  141. package/src/js/modules/fields/summary.ts +63 -10
  142. package/src/js/modules/fields/text-limit.ts +11 -0
  143. package/src/js/modules/fields/upload-manager.ts +54 -18
  144. package/src/js/modules/payments/factories.ts +87 -54
  145. package/src/js/modules/payments/opayo.ts +7 -0
  146. package/src/js/submit/pipeline.ts +16 -9
  147. package/src/js/utils/async.ts +34 -0
  148. package/src/js/utils/form-started-at.ts +19 -4
  149. package/src/js/utils/unload-warning.ts +63 -7
  150. package/src/js/validation/rules/required.ts +18 -0
  151. package/src/js/validation/submit-readiness.ts +2 -0
  152. package/src/js/validation/validator.ts +29 -6
  153. package/src/vendor.d.ts +2 -0
  154. package/dist/chunks/opayo-B3EvrVxw.js +0 -188
  155. package/dist/chunks/recaptcha-shared-AQRMDMme.js +0 -27
  156. package/dist/chunks/recaptcha-v3-CloqhO2A.js +0 -28
@@ -1,102 +1,110 @@
1
1
  import { a as e, i as t, r as n } from "./event-names-BCI2FLD8.js";
2
- import { n as r } from "./http-C2QdHuWO.js";
3
- import { t as i } from "./styles-BfoIZwJp.js";
4
- import { l as a, n as o, u as s } from "./shared-OKhSay59.js";
2
+ import { t as r } from "./csrf-DxHg_ZYt.js";
3
+ import { n as i } from "./http-Dj_skqaa.js";
4
+ import { t as a } from "./styles-BfoIZwJp.js";
5
+ import { l as o, n as s, u as c } from "./shared-CJ1LIEh3.js";
5
6
  //#region src/css/theme/fields/_file.css?inline
6
- var c = "@layer formie-theme{.formie-file-input{padding:var(--formie-space-1);line-height:var(--formie-line-height-base);cursor:pointer}.formie-file-input::file-selector-button{appearance:none;padding:calc(var(--formie-control-padding-y) - 1px) var(--formie-space-2);min-height:calc(var(--formie-control-height) - (var(--formie-space-1) * 2));border:var(--formie-border-width) solid var(--formie-color-border-control);border-radius:calc(var(--formie-radius-sm) - 1px);background:var(--formie-color-surface-subtle);color:var(--formie-color-heading);font-weight:var(--formie-font-weight-normal);font-size:var(--formie-font-size-xs);white-space:nowrap;cursor:pointer;margin-inline-end:var(--formie-space-2);line-height:1.1;transition:border-color .15s,background-color .15s,color .15s,box-shadow .15s}.formie-file-input::-webkit-file-upload-button{appearance:none;padding:calc(var(--formie-control-padding-y) - 1px) var(--formie-space-2);min-height:calc(var(--formie-control-height) - (var(--formie-space-1) * 2));border:var(--formie-border-width) solid var(--formie-color-border-control);border-radius:calc(var(--formie-radius-sm) - 1px);background:var(--formie-color-surface-subtle);color:var(--formie-color-heading);font-weight:var(--formie-font-weight-normal);font-size:var(--formie-font-size-xs);white-space:nowrap;cursor:pointer;margin-inline-end:var(--formie-space-2);line-height:1.1;transition:border-color .15s,background-color .15s,color .15s,box-shadow .15s}.formie-file-input:hover::file-selector-button{border-color:color-mix(in srgb, var(--formie-color-border-control) 70%, var(--formie-color-heading) 30%);background:var(--formie-color-surface-muted)}.formie-file-input:hover::-webkit-file-upload-button{border-color:color-mix(in srgb, var(--formie-color-border-control) 70%, var(--formie-color-heading) 30%);background:var(--formie-color-surface-muted)}.formie-file-input:focus{outline:0}.formie-file-input:focus-visible::file-selector-button{border-color:var(--formie-color-focus-ring)}.formie-file-input:focus-visible::-webkit-file-upload-button{border-color:var(--formie-color-focus-ring)}.formie-field-has-error .formie-file-input::file-selector-button{border-color:var(--formie-color-danger)}.formie-field-has-error .formie-file-input::-webkit-file-upload-button{border-color:var(--formie-color-danger)}.formie-file-summary{padding:var(--formie-file-summary-padding);gap:var(--formie-gap-file-summary);border:var(--formie-border-width) solid var(--formie-color-border-control);border-radius:var(--formie-radius-sm)}.formie-file-summary-container{padding-left:var(--formie-list-indent);margin:0}}", l = "input[type=\"file\"][data-formie-file-input]", u = t("uploaded"), d = e("reset"), f = "data-formie-file-upload-key", p = "data-formie-file-upload-hydrate-endpoint", m = "data-formie-file-upload-anchor", h = "data-formie-file-upload-asset-id", g = "data-formie-file-upload-entry", _ = [
7
+ var l = "@layer formie-theme{.formie-file-input{padding:var(--formie-space-1);line-height:var(--formie-line-height-base);cursor:pointer}.formie-file-input::file-selector-button{appearance:none;padding:calc(var(--formie-control-padding-y) - 1px) var(--formie-space-2);min-height:calc(var(--formie-control-height) - (var(--formie-space-1) * 2));border:var(--formie-border-width) solid var(--formie-color-border-control);border-radius:calc(var(--formie-radius-sm) - 1px);background:var(--formie-color-surface-subtle);color:var(--formie-color-heading);font-weight:var(--formie-font-weight-normal);font-size:var(--formie-font-size-xs);white-space:nowrap;cursor:pointer;margin-inline-end:var(--formie-space-2);line-height:1.1;transition:border-color .15s,background-color .15s,color .15s,box-shadow .15s}.formie-file-input::-webkit-file-upload-button{appearance:none;padding:calc(var(--formie-control-padding-y) - 1px) var(--formie-space-2);min-height:calc(var(--formie-control-height) - (var(--formie-space-1) * 2));border:var(--formie-border-width) solid var(--formie-color-border-control);border-radius:calc(var(--formie-radius-sm) - 1px);background:var(--formie-color-surface-subtle);color:var(--formie-color-heading);font-weight:var(--formie-font-weight-normal);font-size:var(--formie-font-size-xs);white-space:nowrap;cursor:pointer;margin-inline-end:var(--formie-space-2);line-height:1.1;transition:border-color .15s,background-color .15s,color .15s,box-shadow .15s}.formie-file-input:hover::file-selector-button{border-color:color-mix(in srgb, var(--formie-color-border-control) 70%, var(--formie-color-heading) 30%);background:var(--formie-color-surface-muted)}.formie-file-input:hover::-webkit-file-upload-button{border-color:color-mix(in srgb, var(--formie-color-border-control) 70%, var(--formie-color-heading) 30%);background:var(--formie-color-surface-muted)}.formie-file-input:focus{outline:0}.formie-file-input:focus-visible::file-selector-button{border-color:var(--formie-color-focus-ring)}.formie-file-input:focus-visible::-webkit-file-upload-button{border-color:var(--formie-color-focus-ring)}.formie-field-has-error .formie-file-input::file-selector-button{border-color:var(--formie-color-danger)}.formie-field-has-error .formie-file-input::-webkit-file-upload-button{border-color:var(--formie-color-danger)}.formie-file-summary{padding:var(--formie-file-summary-padding);gap:var(--formie-gap-file-summary);border:var(--formie-border-width) solid var(--formie-color-border-control);border-radius:var(--formie-radius-sm)}.formie-file-summary-container{padding-left:var(--formie-list-indent);margin:0}}", u = "input[type=\"file\"][data-formie-file-input]", d = t("uploaded"), f = e("reset"), p = "data-formie-file-upload-key", m = "data-formie-file-upload-hydrate-endpoint", h = "data-formie-file-upload-anchor", g = "data-formie-file-upload-asset-id", _ = "data-formie-file-upload-entry", v = [
7
8
  "fileLimit",
8
9
  "fileSizeMinLimit",
9
10
  "fileSizeMaxLimit"
10
- ], v = "file-upload", y = "file-upload", b = n("repeater", "init-row"), x = "[data-formie-field-handle]";
11
- i(y, [c]);
12
- function S(e) {
11
+ ], y = "file-upload", b = "file-upload", x = n("repeater", "init-row"), S = "[data-formie-field-handle]";
12
+ a(b, [l]);
13
+ function C(e) {
13
14
  return !!e && typeof e == "object" && !Array.isArray(e);
14
15
  }
15
- function C(e) {
16
+ function w(e) {
16
17
  let t = Number(e);
17
18
  return Number.isInteger(t) && t > 0 ? t : null;
18
19
  }
19
- function w(e) {
20
- return typeof e == "string" ? e.trim() : "";
21
- }
22
20
  function T(e) {
23
- return e.getAttribute("data-formie-field-handle")?.trim() || "";
21
+ return typeof e == "string" ? e.trim() : "";
24
22
  }
25
23
  function E(e) {
26
- return e.name.endsWith("[]") ? e.name.slice(0, -2) : e.name;
24
+ return e.getAttribute("data-formie-field-handle")?.trim() || "";
27
25
  }
28
26
  function D(e) {
29
- return `${E(e)}[]`;
27
+ return e.name.endsWith("[]") ? e.name.slice(0, -2) : e.name;
30
28
  }
31
29
  function O(e) {
32
- return e.getAttribute(f)?.trim() || e.getAttribute("data-formie-input-id")?.trim() || "";
30
+ return `${D(e)}[]`;
33
31
  }
34
32
  function k(e) {
35
- return Array.from(e.querySelectorAll("input[type=\"hidden\"]")).filter((e) => e instanceof HTMLInputElement);
33
+ return e.getAttribute(p)?.trim() || e.getAttribute("data-formie-input-id")?.trim() || "";
36
34
  }
37
- function A(e, t) {
38
- let n = D(t);
39
- return k(e).filter((e) => e.hasAttribute(h) || e.name === n && e.value.trim() !== "");
35
+ function A(e) {
36
+ return Array.from(e.querySelectorAll("input[type=\"hidden\"]")).filter((e) => e instanceof HTMLInputElement);
40
37
  }
41
38
  function j(e, t) {
42
- let n = E(t), r = k(e).find((e) => e.hasAttribute(m) || e.name === n && e.value === "");
43
- if (r) return r.setAttribute(m, "true"), r.name = n, r.value = "", r;
39
+ let n = O(t);
40
+ return A(e).filter((e) => e.hasAttribute(g) || e.name === n && e.value.trim() !== "");
41
+ }
42
+ function M(e, t) {
43
+ let n = D(t), r = A(e).find((e) => e.hasAttribute(h) || e.name === n && e.value === "");
44
+ if (r) return r.setAttribute(h, "true"), r.name = n, r.value = "", r;
44
45
  let i = document.createElement("input");
45
- return i.type = "hidden", i.name = n, i.value = "", i.setAttribute(m, "true"), t.insertAdjacentElement("afterend", i), i;
46
+ return i.type = "hidden", i.name = n, i.value = "", i.setAttribute(h, "true"), t.insertAdjacentElement("afterend", i), i;
46
47
  }
47
- function M(e) {
48
+ function N(e) {
48
49
  if (Array.isArray(e)) return null;
49
- let t = C(e);
50
+ let t = w(e);
50
51
  if (t) return {
51
52
  assetId: t,
52
53
  filename: ""
53
54
  };
54
- if (!S(e)) return null;
55
- let n = C(e.assetId ?? e.id ?? e.value), r = w(e.filename ?? e.title ?? e.label ?? e.name), i = w(e.url) || null;
55
+ if (!C(e)) return null;
56
+ let n = w(e.assetId ?? e.id ?? e.value), r = T(e.filename ?? e.title ?? e.label ?? e.name), i = T(e.url) || null;
56
57
  return !n && !r ? null : {
57
58
  assetId: n,
58
59
  filename: r,
59
- url: i
60
+ url: i,
61
+ uploadUid: T(e.uploadUid) || null,
62
+ attachToken: T(e.attachToken) || null,
63
+ viewToken: T(e.viewToken ?? e.uploadToken) || null
60
64
  };
61
65
  }
62
- function N(e) {
66
+ function P(e) {
63
67
  if (!Array.isArray(e)) {
64
- let t = M(e);
68
+ let t = N(e);
65
69
  return t ? [t] : [];
66
70
  }
67
71
  return e.flatMap((e) => {
68
- if (Array.isArray(e)) return N(e);
69
- let t = M(e);
72
+ if (Array.isArray(e)) return P(e);
73
+ let t = N(e);
70
74
  return t ? [t] : [];
71
75
  });
72
76
  }
73
- function P(e) {
77
+ function F(e) {
74
78
  return e ? Array.from(e.querySelectorAll("[data-formie-file-summary-item]")).map((e) => ({
75
79
  assetId: null,
76
80
  filename: e.textContent?.trim() || ""
77
81
  })).filter((e) => e.filename !== "") : [];
78
82
  }
79
- function F(e, t) {
80
- return A(e, t).map((e) => ({
81
- assetId: C(e.getAttribute(h)) ?? C(e.value),
82
- filename: ""
83
+ function I(e, t) {
84
+ return j(e, t).map((t) => ({
85
+ assetId: w(t.getAttribute(g)) ?? w(t.value),
86
+ filename: "",
87
+ viewToken: t.getAttribute("data-formie-file-upload-token"),
88
+ uploadUid: t.name.endsWith("[uploadUid]") ? t.value : null,
89
+ attachToken: A(e).find((e) => e.name === t.name.replace(/\[uploadUid\]$/, "[attachToken]"))?.value
83
90
  })).filter((e) => e.assetId !== null);
84
91
  }
85
- function I(e, t) {
92
+ function L(e, t) {
86
93
  return e.length ? e.map((e, n) => ({
94
+ ...e,
87
95
  assetId: e.assetId,
88
96
  filename: t[n]?.filename || ""
89
97
  })) : t;
90
98
  }
91
- function L(e) {
99
+ function R(e) {
92
100
  return e.map((e) => e.trim().toLowerCase()).filter(Boolean);
93
101
  }
94
- function R(e, t) {
95
- let n = L(e.map((e) => e.filename)), r = L(t);
102
+ function z(e, t) {
103
+ let n = R(e.map((e) => e.filename)), r = R(t);
96
104
  return !n.length || !r.length ? !1 : n.every((e) => r.includes(e));
97
105
  }
98
- function z(e) {
99
- s(e, v, (e) => {
106
+ function B(e) {
107
+ c(e, y, (e) => {
100
108
  e.addValidator("fileLimit", ({ input: e }) => {
101
109
  let t = parseInt(e.getAttribute("data-formie-file-limit") || "", 10);
102
110
  return e.type !== "file" || !t || !("files" in e) || !e.files?.length || e.files.length <= t;
@@ -109,22 +117,22 @@ function z(e) {
109
117
  }, ({ input: e, t }) => e.getAttribute("data-formie-validation-max-file-size-message") ?? t("File must be smaller than {filesize} MB.", { filesize: e.getAttribute("data-formie-size-max-limit") || "" }));
110
118
  });
111
119
  }
112
- function B(e) {
113
- a(e, v, _);
120
+ function V(e) {
121
+ o(e, y, v);
114
122
  }
115
- function V(e, t) {
123
+ function H(e, t) {
116
124
  let n = e.querySelector("[data-formie-file-summary]");
117
125
  if (n) return n;
118
126
  let r = document.createElement("div");
119
127
  return r.className = "formie-file-summary", r.setAttribute("data-formie-file-summary", "true"), t.insertAdjacentElement("afterend", r), r;
120
128
  }
121
- function H(e) {
129
+ function U(e) {
122
130
  let t = e.pendingFiles.length ? e.pendingFiles : e.uploadedAssets.map((e) => e.filename || (e.assetId ? `Asset #${e.assetId}` : "")).filter(Boolean), n = e.summaryRoot || e.field.querySelector("[data-formie-file-summary]");
123
131
  if (!t.length) {
124
132
  n && (n.replaceChildren(), n.hidden = !0), e.summaryRoot = n;
125
133
  return;
126
134
  }
127
- let r = n || V(e.field, e.input);
135
+ let r = n || H(e.field, e.input);
128
136
  if (!r) return;
129
137
  r.hidden = !1, e.summaryRoot = r;
130
138
  let i = document.createElement("ul");
@@ -133,58 +141,72 @@ function H(e) {
133
141
  t.className = "formie-file-summary-item", t.setAttribute("data-formie-file-summary-item", "true"), t.textContent = e, i.appendChild(t);
134
142
  }), r.replaceChildren(i);
135
143
  }
136
- function U(e, t, n) {
137
- let r = j(e, t), i = E(t);
138
- k(e).filter((e) => e.hasAttribute(g) || e.name === `${i}[]` && e.value.trim() !== "").forEach((e) => {
144
+ function W(e, t, n) {
145
+ let r = M(e, t), i = D(t);
146
+ A(e).filter((e) => e.hasAttribute(_) || e.name === `${i}[]` && e.value.trim() !== "").forEach((e) => {
139
147
  e.remove();
140
148
  }), n.forEach((e, t) => {
141
149
  if (!e.assetId) return;
142
150
  let n = document.createElement("input");
143
- n.type = "hidden", n.name = `${i}[${t}][assetId]`, n.value = String(e.assetId), n.setAttribute(g, "true"), n.setAttribute(h, String(e.assetId)), r.insertAdjacentElement("afterend", n), r = n;
151
+ n.type = "hidden";
152
+ let a = e.uploadUid && e.attachToken;
153
+ if (n.name = `${i}[${t}][${a ? "uploadUid" : "assetId"}]`, n.value = a ? e.uploadUid : String(e.assetId), n.setAttribute(_, "true"), n.setAttribute(g, String(e.assetId)), e.viewToken && n.setAttribute("data-formie-file-upload-token", e.viewToken), r.insertAdjacentElement("afterend", n), r = n, a) {
154
+ let n = document.createElement("input");
155
+ n.type = "hidden", n.name = `${i}[${t}][attachToken]`, n.value = e.attachToken, n.setAttribute(_, "true"), r.insertAdjacentElement("afterend", n), r = n;
156
+ }
144
157
  }), t.value = "";
145
158
  }
146
- function W(e) {
159
+ function G(e) {
147
160
  if (!e) return "";
148
161
  let t = e.querySelector("input[name=\"handle\"]");
149
162
  return t instanceof HTMLInputElement && t.value.trim() ? t.value.trim() : e.getAttribute("data-formie-handle")?.trim() || "";
150
163
  }
151
- function G(e, t, n) {
152
- let r = t.form, i = new FormData(), a = W(r), o = T(e);
153
- a && i.append("handle", a), o && i.append("fieldHandle", o);
154
- let s = r?.querySelector("input[name=\"submissionUid\"]");
155
- return s instanceof HTMLInputElement && s.value.trim() && i.append("submissionUid", s.value.trim()), n.forEach((e) => {
156
- i.append("assetIds[]", String(e));
157
- }), i;
164
+ function K(e, t, n) {
165
+ let i = t.form, a = new FormData(), o = G(i), s = E(e);
166
+ return o && a.append("handle", o), s && a.append("fieldHandle", s), [
167
+ "submissionUid",
168
+ "resumeToken",
169
+ "submissionEditToken",
170
+ "siteId",
171
+ "renderId",
172
+ "draftContext",
173
+ "draftContextToken"
174
+ ].forEach((e) => {
175
+ let t = i?.querySelector(`input[name="${e}"]`);
176
+ t instanceof HTMLInputElement && t.value.trim() && a.append(e, t.value.trim());
177
+ }), n.forEach((e) => {
178
+ e.assetId && (a.append("assetIds[]", String(e.assetId)), e.viewToken && a.append(`uploadTokens[${e.assetId}]`, e.viewToken));
179
+ }), r(a, i), a;
158
180
  }
159
- async function K(e, t, n) {
160
- let i = n.map((e) => e.assetId).filter((e) => e !== null);
161
- if (!i.length) return n;
162
- let a = t.getAttribute(p)?.trim() || "/actions/formie/file-upload/hydrate", o = N((await r(a, {
181
+ async function q(e, t, n) {
182
+ if (!n.map((e) => e.assetId).filter((e) => e !== null).length) return n;
183
+ let r = t.getAttribute(m)?.trim() || "/actions/formie/file-upload/hydrate", a = P((await i(r, {
163
184
  profile: e.closest("form")?.dataset.formieRequestProfile,
164
185
  method: "POST",
165
- body: G(e, t, i)
186
+ body: K(e, t, n)
166
187
  })).assets);
167
- if (!o.length) return n;
168
- let s = new Map(o.map((e) => [e.assetId, e]));
188
+ if (!a.length) return n;
189
+ let o = new Map(a.map((e) => [e.assetId, e]));
169
190
  return n.map((e) => {
170
- if (!e.assetId || !s.has(e.assetId)) return e;
171
- let t = s.get(e.assetId);
191
+ if (!e.assetId || !o.has(e.assetId)) return e;
192
+ let t = o.get(e.assetId);
172
193
  return {
194
+ ...e,
173
195
  assetId: e.assetId,
174
196
  filename: t.filename || e.filename,
175
197
  url: t.url ?? e.url
176
198
  };
177
199
  });
178
200
  }
179
- function q(e, t) {
201
+ function J(e, t) {
180
202
  let n = e.detail;
181
- if (!S(n)) return [];
182
- let r = w(n.fieldHandle), i = w(n.inputKey), a = w(n.inputName ?? n.name), o = S(n.data) ? n.data : null, s = w(o?.fieldHandle), c = w(o?.inputKey), l = w(o?.inputName ?? o?.name), u = [], d = !1, f = !1, p = !1;
183
- if (i !== "" && i === t.inputKey && (d = !0, u.push(n.assets, n.assetIds, n.data)), a !== "" && a === t.inputName && (f = !0, u.push(n.assets, n.assetIds, n.data)), r === t.fieldHandle && (p = !0, u.push(n.assets, n.assetIds, n.data)), o) {
203
+ if (!C(n)) return [];
204
+ let r = T(n.fieldHandle), i = T(n.inputKey), a = T(n.inputName ?? n.name), o = C(n.data) ? n.data : null, s = T(o?.fieldHandle), c = T(o?.inputKey), l = T(o?.inputName ?? o?.name), u = [], d = !1, f = !1, p = !1;
205
+ if (i !== "" && i === t.inputKey && (d = !0, u.push(n.uploadedAssets, n.assets, n.assetIds, n.data)), a !== "" && a === t.inputName && (f = !0, u.push(n.uploadedAssets, n.assets, n.assetIds, n.data)), r === t.fieldHandle && (p = !0, u.push(n.uploadedAssets, n.assets, n.assetIds, n.data)), o) {
184
206
  let e = [
207
+ o.uploadedAssets,
185
208
  o.assets,
186
209
  o.assetIds,
187
- o.uploadedAssets,
188
210
  o.data
189
211
  ];
190
212
  c !== "" && c === t.inputKey && (d = !0, u.push(...e)), l !== "" && l === t.inputName && (f = !0, u.push(...e)), s === t.fieldHandle && (p = !0, u.push(...e));
@@ -194,73 +216,69 @@ function q(e, t) {
194
216
  n.assetIds,
195
217
  n.data
196
218
  ].forEach((e) => {
197
- S(e) && (t.inputKey && t.inputKey in e && (d = !0, u.push(e[t.inputKey])), t.inputName in e && (f = !0, u.push(e[t.inputName])), t.fieldHandle in e && u.push(e[t.fieldHandle]));
219
+ C(e) && (t.inputKey && t.inputKey in e && (d = !0, u.push(e[t.inputKey])), t.inputName in e && (f = !0, u.push(e[t.inputName])), t.fieldHandle in e && u.push(e[t.fieldHandle]));
198
220
  });
199
221
  for (let e of u) {
200
- let n = N(e);
201
- if (n.length && (d || f || p || R(n, t.pendingFiles))) return n;
222
+ let n = P(e);
223
+ if (n.length && (d || f || p || z(n, t.pendingFiles))) return n;
202
224
  }
203
225
  return [];
204
226
  }
205
- function J(e) {
206
- let t = e.closest(x);
227
+ function Y(e) {
228
+ let t = e.closest(S);
207
229
  return t instanceof HTMLElement ? t : null;
208
230
  }
209
- function Y(e) {
210
- return Array.from(e.querySelectorAll(l)).filter((e) => e instanceof HTMLInputElement);
231
+ function X(e) {
232
+ return Array.from(e.querySelectorAll(u)).filter((e) => e instanceof HTMLInputElement);
211
233
  }
212
- function X(e, t, n) {
234
+ function Z(e, t, n) {
213
235
  let r = {
214
236
  field: e,
215
237
  input: t,
216
- summaryRoot: V(e, t),
217
- uploadedAssets: I(F(e, t), P(e.querySelector("[data-formie-file-summary]"))),
238
+ summaryRoot: H(e, t),
239
+ uploadedAssets: L(I(e, t), F(e.querySelector("[data-formie-file-summary]"))),
218
240
  pendingFiles: [],
219
241
  hydrationToken: 0
220
242
  }, i = () => {
221
- r.pendingFiles = Array.from(t.files || []).map((e) => e.name), H(r);
243
+ r.pendingFiles = Array.from(t.files || []).map((e) => e.name), U(r);
222
244
  }, a = async (n) => {
223
245
  r.hydrationToken += 1;
224
246
  let i = r.hydrationToken;
225
- r.pendingFiles = [], r.uploadedAssets = n, U(e, t, n), H(r);
247
+ r.pendingFiles = [], r.uploadedAssets = n, W(e, t, n), U(r);
226
248
  try {
227
- let a = await K(e, t, n);
249
+ let a = await q(e, t, n);
228
250
  if (i !== r.hydrationToken) return;
229
- r.uploadedAssets = a, H(r), o(e, y, "uploaded-assets-sync", {
251
+ r.uploadedAssets = a, U(r), s(e, b, "uploaded-assets-sync", {
230
252
  fileUpload: e,
231
253
  assets: a
232
254
  });
233
255
  } catch (e) {
234
256
  console.error("[formie] Failed to hydrate uploaded file details.", e);
235
257
  }
236
- }, s = () => {
237
- r.hydrationToken += 1, r.pendingFiles = [], r.uploadedAssets = [], U(e, t, []), H(r);
258
+ }, o = () => {
259
+ r.hydrationToken += 1, r.pendingFiles = [], r.uploadedAssets = [], W(e, t, []), U(r);
238
260
  }, c = (n) => {
239
- let i = T(e);
261
+ let i = E(e);
240
262
  if (!i) return;
241
- let o = q(n, {
263
+ let o = J(n, {
242
264
  fieldHandle: i,
243
- inputKey: O(t),
265
+ inputKey: k(t),
244
266
  inputName: t.name,
245
267
  pendingFiles: r.pendingFiles
246
268
  });
247
269
  o.length && a(o);
248
270
  }, l = () => {
249
- s();
271
+ o();
250
272
  };
251
- return t.addEventListener("change", i), n?.addEventListener(u, c), n?.addEventListener(d, l), (() => {
252
- let n = F(e, t), i = P(r.summaryRoot);
253
- if (r.uploadedAssets = I(n, i), r.uploadedAssets.some((e) => e.assetId && !e.filename)) {
254
- a(r.uploadedAssets);
255
- return;
256
- }
257
- H(r);
273
+ return t.addEventListener("change", i), n?.addEventListener(d, c), n?.addEventListener(f, l), (() => {
274
+ let n = I(e, t), i = F(r.summaryRoot);
275
+ r.uploadedAssets = L(n, i), r.uploadedAssets.some((e) => e.assetId && !e.filename) ? a(r.uploadedAssets) : U(r);
258
276
  })(), () => {
259
- t.removeEventListener("change", i), n?.removeEventListener(u, c), n?.removeEventListener(d, l);
277
+ t.removeEventListener("change", i), n?.removeEventListener(d, c), n?.removeEventListener(f, l);
260
278
  };
261
279
  }
262
- var Z = {
263
- moduleId: `formie:${y}`,
280
+ var Q = {
281
+ moduleId: `formie:${b}`,
264
282
  version: 2,
265
283
  surfaces: [
266
284
  "server-rendered",
@@ -268,28 +286,28 @@ var Z = {
268
286
  "cp-edit"
269
287
  ],
270
288
  kind: "field",
271
- match: (e) => !!e.target.querySelector(l),
289
+ match: (e) => !!e.target.querySelector(u),
272
290
  setup: async (e) => {
273
291
  let t = e.form, n = /* @__PURE__ */ new WeakSet(), r = [], i = (e) => {
274
- Y(e).forEach((e) => {
292
+ X(e).forEach((e) => {
275
293
  if (n.has(e)) return;
276
- let i = J(e);
277
- i && (n.add(e), r.push(X(i, e, t)));
294
+ let i = Y(e);
295
+ i && (n.add(e), r.push(Z(i, e, t)));
278
296
  });
279
297
  };
280
- z(t), i(e.target);
298
+ B(t), i(e.target);
281
299
  let a = (e) => {
282
300
  let t = e.detail;
283
- if (!S(t)) return;
301
+ if (!C(t)) return;
284
302
  let n = t.row;
285
303
  n instanceof HTMLElement && i(n);
286
304
  };
287
- return t?.addEventListener(b, a), await e.emit("formie:module:file-upload:init", { count: r.length }), { destroy: () => {
288
- t?.removeEventListener(b, a), r.forEach((e) => {
305
+ return t?.addEventListener(x, a), await e.emit("formie:module:file-upload:init", { count: r.length }), { destroy: () => {
306
+ t?.removeEventListener(x, a), r.forEach((e) => {
289
307
  e();
290
- }), B(t), e.emit("formie:module:file-upload:destroy", {});
308
+ }), V(t), e.emit("formie:module:file-upload:destroy", {});
291
309
  } };
292
310
  }
293
311
  };
294
312
  //#endregion
295
- export { Z as fileUploadModule };
313
+ export { Q as fileUploadModule };
@@ -1,10 +1,10 @@
1
- import { t as e } from "./api-DYYsVIub.js";
1
+ import { t as e } from "./api-BPtH5RBA.js";
2
2
  //#region src/js/modules/captchas/friendly-captcha-v1.ts
3
3
  var t = e({
4
4
  moduleId: "formie:friendly-captcha-v1",
5
5
  defaultPlaceholderSelector: "[data-friendly-captcha-placeholder]",
6
6
  defaultTokenFieldNames: ["frc-captcha-solution"],
7
- load: async () => import("./friendly-challenge-DPG9MJb1.js"),
7
+ load: async () => import("./friendly-challenge-BgPBEMXx.js"),
8
8
  mount: ({ api: e, container: t, provider: n, services: r }) => {
9
9
  let i = n.theme || "auto", a = window.matchMedia?.("(prefers-color-scheme: dark)").matches ?? !1;
10
10
  return (i === "dark" || i === "auto" && a) && t.classList.add("dark"), new e.WidgetInstance(t, {
@@ -1,10 +1,10 @@
1
- import { t as e } from "./api-DYYsVIub.js";
1
+ import { t as e } from "./api-BPtH5RBA.js";
2
2
  //#region src/js/modules/captchas/friendly-captcha-v2.ts
3
3
  var t = e({
4
4
  moduleId: "formie:friendly-captcha-v2",
5
5
  defaultPlaceholderSelector: "[data-friendly-captcha-placeholder]",
6
6
  defaultTokenFieldNames: ["frc-captcha-response"],
7
- load: async () => import("./sdk-lkwSvlpM.js"),
7
+ load: async () => import("./sdk-_cmrRYgp.js"),
8
8
  mount: ({ api: e, container: t, provider: n, services: r }) => {
9
9
  let i = new e.FriendlyCaptchaSDK().createWidget({
10
10
  element: t,
@@ -736,11 +736,8 @@ var te = class {
736
736
  }, t), this.e = e, this.e.friendlyChallengeWidget = this, this.loadLanguage(), e.innerText = this.lang.text_init, this.opts.skipStyleInjection || h(this.opts.styleNonce), this.init(this.opts.startMode === "auto" || this.e.dataset.start === "auto");
737
737
  }
738
738
  init(e) {
739
- if (this.hasBeenDestroyed) {
740
- console.error("FriendlyCaptcha widget has been destroyed using destroy(), it can not be used anymore.");
741
- return;
742
- }
743
- if (this.initWorkerGroup(), e) this.start();
739
+ if (this.hasBeenDestroyed) console.error("FriendlyCaptcha widget has been destroyed using destroy(), it can not be used anymore.");
740
+ else if (this.initWorkerGroup(), e) this.start();
744
741
  else if (this.e.dataset.start !== "none" && (this.opts.startMode === "focus" || this.e.dataset.start === "focus")) {
745
742
  let e = _(this.e);
746
743
  e ? v(e, () => this.start()) : console.log("FriendlyCaptcha div seems not to be contained in a form, autostart will not work");
@@ -794,32 +791,25 @@ var te = class {
794
791
  return;
795
792
  }
796
793
  let e = this.opts.sitekey || this.e.dataset.sitekey;
797
- if (!e) {
798
- console.error("FriendlyCaptcha: sitekey not set on frc-captcha element"), this.e.innerHTML = m(this.opts.solutionFieldName, this.lang, "Website problem: sitekey not set", !1);
799
- return;
800
- }
801
- if (x()) {
802
- this.e.innerHTML = m(this.opts.solutionFieldName, this.lang, "Browser check failed, try a different browser", !1, !0);
803
- return;
804
- }
805
- if (this.needsReInit) {
806
- this.needsReInit = !1, this.init(!0);
807
- return;
808
- }
809
- this.hasBeenStarted = !0;
810
- try {
811
- this.e.innerHTML = u(this.opts.solutionFieldName, this.lang), this.puzzle = O(await k(this.opts.puzzleEndpoint, e, this.lang)), this.expiryTimeout && clearTimeout(this.expiryTimeout), this.expiryTimeout = setTimeout(() => this.expire(), this.puzzle.expiry - 3e4);
812
- } catch (e) {
813
- console.error("[FRC]", e), this.hasBeenStarted = !1, this.expiryTimeout && clearTimeout(this.expiryTimeout), this.e.innerHTML = m(this.opts.solutionFieldName, this.lang, e.message), this.makeButtonStart(), this.opts.errorCallback({
814
- code: "error_getting_puzzle",
815
- description: e.toString(),
816
- error: e
817
- });
818
- let t = this.e.dataset["callback-error"];
819
- t && window[t](this);
820
- return;
794
+ if (!e) console.error("FriendlyCaptcha: sitekey not set on frc-captcha element"), this.e.innerHTML = m(this.opts.solutionFieldName, this.lang, "Website problem: sitekey not set", !1);
795
+ else if (x()) this.e.innerHTML = m(this.opts.solutionFieldName, this.lang, "Browser check failed, try a different browser", !1, !0);
796
+ else if (this.needsReInit) this.needsReInit = !1, this.init(!0);
797
+ else {
798
+ this.hasBeenStarted = !0;
799
+ try {
800
+ this.e.innerHTML = u(this.opts.solutionFieldName, this.lang), this.puzzle = O(await k(this.opts.puzzleEndpoint, e, this.lang)), this.expiryTimeout && clearTimeout(this.expiryTimeout), this.expiryTimeout = setTimeout(() => this.expire(), this.puzzle.expiry - 3e4);
801
+ } catch (e) {
802
+ console.error("[FRC]", e), this.hasBeenStarted = !1, this.expiryTimeout && clearTimeout(this.expiryTimeout), this.e.innerHTML = m(this.opts.solutionFieldName, this.lang, e.message), this.makeButtonStart(), this.opts.errorCallback({
803
+ code: "error_getting_puzzle",
804
+ description: e.toString(),
805
+ error: e
806
+ });
807
+ let t = this.e.dataset["callback-error"];
808
+ t && window[t](this);
809
+ return;
810
+ }
811
+ await this.workerGroup.start(this.puzzle);
821
812
  }
822
- await this.workerGroup.start(this.puzzle);
823
813
  }
824
814
  handleDone(e) {
825
815
  this.valid = !0;
@@ -830,11 +820,7 @@ var te = class {
830
820
  this.workerGroup.terminateWorkers(), this.needsReInit = !1, this.hasBeenStarted = !1, this.expiryTimeout && clearTimeout(this.expiryTimeout), this.e && (this.e.remove(), delete this.e), this.hasBeenDestroyed = !0;
831
821
  }
832
822
  reset() {
833
- if (this.hasBeenDestroyed) {
834
- console.error("FriendlyCaptcha widget has been destroyed, it can not be used anymore");
835
- return;
836
- }
837
- this.workerGroup.terminateWorkers(), this.needsReInit = !1, this.hasBeenStarted = !1, this.expiryTimeout && clearTimeout(this.expiryTimeout), this.init(this.opts.startMode === "auto" || this.e.dataset.start === "auto");
823
+ this.hasBeenDestroyed ? console.error("FriendlyCaptcha widget has been destroyed, it can not be used anymore") : (this.workerGroup.terminateWorkers(), this.needsReInit = !1, this.hasBeenStarted = !1, this.expiryTimeout && clearTimeout(this.expiryTimeout), this.init(this.opts.startMode === "auto" || this.e.dataset.start === "auto"));
838
824
  }
839
825
  };
840
826
  //#endregion
@@ -1,5 +1,5 @@
1
1
  import { s as e } from "./event-names-BCI2FLD8.js";
2
- import { t } from "./api-D6kJ7kXZ.js";
2
+ import { t } from "./api-BR2Gqy37.js";
3
3
  //#region src/js/modules/payments/go-cardless.ts
4
4
  var n = e("go-cardless", "redirect"), r = t({
5
5
  moduleId: "formie:go-cardless",
@@ -8,11 +8,7 @@ var n = e("go-cardless", "redirect"), r = t({
8
8
  setup: async ({ services: e, root: t }) => {
9
9
  let r = (t) => {
10
10
  let n = t.detail?.data;
11
- if (!n?.redirectUrl) {
12
- e.addError("Missing GoCardless redirect URL.");
13
- return;
14
- }
15
- window.location.href = n.redirectUrl;
11
+ n?.redirectUrl ? window.location.href = n.redirectUrl : e.addError("Missing GoCardless redirect URL.");
16
12
  };
17
13
  return t.addEventListener(n, r), { destroy: () => {
18
14
  t.removeEventListener(n, r);
@@ -1,9 +1,9 @@
1
1
  import { t as e } from "./request-profile-DhwkeCpS.js";
2
- import { t } from "./dist-ZLeW0zZ3.js";
2
+ import { t } from "./dist-CJReDlDK.js";
3
3
  import { n } from "./event-names-BCI2FLD8.js";
4
4
  import { t as r } from "./csrf-DxHg_ZYt.js";
5
- import { t as i } from "./api-ghNr2uxX.js";
6
- import { n as a, t as o } from "./scripts-CbQ7agX3.js";
5
+ import { t as i } from "./api-CmuOZ0i3.js";
6
+ import { n as a, t as o } from "./scripts-DrccjrFv.js";
7
7
  //#region src/js/modules/address/google-address.ts
8
8
  var s = "FORMIE_GOOGLE_ADDRESS_SCRIPT", c = "formieGoogleMapsReady", l = null;
9
9
  async function u(e) {
@@ -67,10 +67,10 @@ function p(e) {
67
67
  }
68
68
  return n;
69
69
  }
70
- function m(e) {
71
- let t = "";
72
- return (e.street_number || e.route) && (t = [e.street_number, e.route].filter(Boolean).join(" "), e.subpremise && (t = `${e.subpremise}/${t}`)), {
73
- address1: t,
70
+ function m(e, t) {
71
+ let n = (t?.addressLines?.filter((e) => typeof e == "string" && e.trim() !== ""))?.join(", ") || "";
72
+ return !n && (e.street_number || e.route) && (n = [e.street_number, e.route].filter(Boolean).join(" "), e.subpremise && (n = `${e.subpremise}/${n}`)), {
73
+ address1: n,
74
74
  city: e.locality || e.postal_town || "",
75
75
  state: e.administrative_area_level_1 || "",
76
76
  zip: e.postal_code || "",
@@ -128,8 +128,12 @@ var _ = i({
128
128
  let i = e.placePrediction;
129
129
  if (!i) return;
130
130
  let a = await i.toPlace();
131
- await a.fetchFields({ fields: ["addressComponents", "formattedAddress"] }), a.addressComponents && (d(r, {
132
- ...m(p(a.addressComponents)),
131
+ await a.fetchFields({ fields: [
132
+ "addressComponents",
133
+ "formattedAddress",
134
+ "postalAddress"
135
+ ] }), a.addressComponents && (d(r, {
136
+ ...m(p(a.addressComponents), a.postalAddress),
133
137
  formattedAddress: a.formattedAddress
134
138
  }), t.dispatchEvent(new CustomEvent(n("google", "populate"), {
135
139
  bubbles: !0,
@@ -137,7 +141,8 @@ var _ = i({
137
141
  addressProvider: "google",
138
142
  place: a,
139
143
  formattedAddress: a.formattedAddress,
140
- addressComponents: a.addressComponents
144
+ addressComponents: a.addressComponents,
145
+ postalAddress: a.postalAddress
141
146
  }
142
147
  })));
143
148
  }), s;
@@ -1,5 +1,5 @@
1
- import { a as e, r as t, t as n } from "./api-DYYsVIub.js";
2
- import { n as r, t as i } from "./scripts-CbQ7agX3.js";
1
+ import { a as e, r as t, t as n } from "./api-BPtH5RBA.js";
2
+ import { n as r, t as i } from "./scripts-DrccjrFv.js";
3
3
  //#region src/js/modules/captchas/hcaptcha.ts
4
4
  async function a(n) {
5
5
  let a = typeof n.language == "string" && n.language.trim() !== "" ? n.language.trim() : "en", { async: o, defer: s } = t(n.loadingMethod), c = "FORMIE_HCAPTCHA_ONLOAD", l = window, u = l.hcaptcha;
@@ -1,4 +1,4 @@
1
- import { i as e } from "./shared-OKhSay59.js";
1
+ import { i as e } from "./shared-CJ1LIEh3.js";
2
2
  //#region src/js/modules/fields/hidden.ts
3
3
  var t = "input[data-formie-hidden-input]";
4
4
  function n(e) {
@@ -1,4 +1,4 @@
1
- import { t as e } from "./dist-ZLeW0zZ3.js";
1
+ import { t as e } from "./dist-CJReDlDK.js";
2
2
  //#region src/js/utils/http.ts
3
3
  async function t(t, n = {}) {
4
4
  let r = {