@verbb/formie-browser 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (361) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/chunks/address-finder-BjMuEiwF.js +37 -0
  3. package/dist/chunks/bpoint-KudsBCo2.js +26 -0
  4. package/dist/chunks/calculations-DlGSkQ3W.js +147 -0
  5. package/dist/chunks/captcha-eu-CterYFok.js +34 -0
  6. package/dist/chunks/checkbox-radio-CBvgk3hR.js +136 -0
  7. package/dist/chunks/conditions-DYy1-Hwt.js +459 -0
  8. package/dist/chunks/date-picker-BlD--zfe.js +4994 -0
  9. package/dist/chunks/eway-qwc-B5Us.js +74 -0
  10. package/dist/chunks/file-upload-CIgHrXfp.js +316 -0
  11. package/dist/chunks/friendly-captcha-v1-EDFac33c.js +33 -0
  12. package/dist/chunks/friendly-captcha-v2-BDpSvFGR.js +38 -0
  13. package/dist/chunks/go-cardless-DuDMVsnz.js +24 -0
  14. package/dist/chunks/google-address-Bmjp01pH.js +181 -0
  15. package/dist/chunks/hcaptcha-BTQ6An6g.js +56 -0
  16. package/dist/chunks/hidden-DbPdOxKb.js +31 -0
  17. package/dist/chunks/index-BEsfee-D.js +1839 -0
  18. package/dist/chunks/index-BP7Unm5Y.js +863 -0
  19. package/dist/chunks/index-BcqwpPNE.js +4314 -0
  20. package/dist/chunks/loqate-BdNGv93o.js +55 -0
  21. package/dist/chunks/mollie-DFOjTuGX.js +24 -0
  22. package/dist/chunks/moneris-BbFfl-EL.js +101 -0
  23. package/dist/chunks/opayo-CmgYa9ya.js +122 -0
  24. package/dist/chunks/paddle-BUi7w1_o.js +60 -0
  25. package/dist/chunks/paypal-A-ePfh6k.js +100 -0
  26. package/dist/chunks/payway-BqFCbhyo.js +56 -0
  27. package/dist/chunks/phone-country-DPMiqk4L.js +3765 -0
  28. package/dist/chunks/place-kit-CX7tamAg.js +42 -0
  29. package/dist/chunks/placekit-autocomplete.esm-LAwfbPZl.js +1299 -0
  30. package/dist/chunks/recaptcha-enterprise-DxF6cW95.js +71 -0
  31. package/dist/chunks/recaptcha-shared-DhGcbiaq.js +15 -0
  32. package/dist/chunks/recaptcha-v2-checkbox-R9EfbZ4k.js +41 -0
  33. package/dist/chunks/recaptcha-v2-invisible-DV9hswAp.js +59 -0
  34. package/dist/chunks/recaptcha-v3-V0xc-Edh.js +28 -0
  35. package/dist/chunks/repeater-DKUT6TGI.js +124 -0
  36. package/dist/chunks/rich-text-SH7KiaKH.js +304 -0
  37. package/dist/chunks/scripts-D9N2d5rN.js +36 -0
  38. package/dist/chunks/sdk-3SicTWby.js +1559 -0
  39. package/dist/chunks/shared-BmntPmnW.js +80 -0
  40. package/dist/chunks/signature-BA3tQsGT.js +550 -0
  41. package/dist/chunks/snaptcha-DV7p6J9k.js +8 -0
  42. package/dist/chunks/square-Bs-ndqYK.js +46 -0
  43. package/dist/chunks/stripe-DkZAHxtn.js +202 -0
  44. package/dist/chunks/styles-C3aqgtek.js +21 -0
  45. package/dist/chunks/summary-Dq2i9TQk.js +126 -0
  46. package/dist/chunks/table-Cu4WfVcw.js +95 -0
  47. package/dist/chunks/text-limit-2ycmB-Ae.js +135 -0
  48. package/dist/chunks/turnstile-CId90tRr.js +59 -0
  49. package/dist/chunks/utils-BntI3W4S.js +6149 -0
  50. package/dist/css/theme/forms/_form.css +28 -0
  51. package/dist/index.d.ts +30 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +39 -3205
  54. package/dist/js/compatibility/dom-adapter.d.ts +12 -0
  55. package/dist/js/compatibility/dom-adapter.d.ts.map +1 -0
  56. package/dist/js/compatibility/event-map.d.ts +25 -0
  57. package/dist/js/compatibility/event-map.d.ts.map +1 -0
  58. package/dist/js/compatibility/validator-adapter.d.ts +17 -0
  59. package/dist/js/compatibility/validator-adapter.d.ts.map +1 -0
  60. package/dist/js/contracts/client.d.ts +40 -0
  61. package/dist/js/contracts/client.d.ts.map +1 -0
  62. package/dist/js/contracts/common.d.ts +5 -0
  63. package/dist/js/contracts/common.d.ts.map +1 -0
  64. package/dist/js/contracts/modules.d.ts +47 -0
  65. package/dist/js/contracts/modules.d.ts.map +1 -0
  66. package/dist/js/contracts/schema.d.ts +79 -0
  67. package/dist/js/contracts/schema.d.ts.map +1 -0
  68. package/dist/js/contracts/theme.d.ts +2 -0
  69. package/dist/js/contracts/theme.d.ts.map +1 -0
  70. package/dist/js/core/create-formie-client.d.ts +3 -0
  71. package/dist/js/core/create-formie-client.d.ts.map +1 -0
  72. package/dist/js/core/dom-events.d.ts +2 -0
  73. package/dist/js/core/dom-events.d.ts.map +1 -0
  74. package/dist/js/core/formie.d.ts +27 -0
  75. package/dist/js/core/formie.d.ts.map +1 -0
  76. package/dist/js/core/hydrate-modules.d.ts +22 -0
  77. package/dist/js/core/hydrate-modules.d.ts.map +1 -0
  78. package/dist/js/core/page-client-event.d.ts +9 -0
  79. package/dist/js/core/page-client-event.d.ts.map +1 -0
  80. package/dist/js/core/page-tab-errors.d.ts +2 -0
  81. package/dist/js/core/page-tab-errors.d.ts.map +1 -0
  82. package/dist/js/core/submit-flow.d.ts +21 -0
  83. package/dist/js/core/submit-flow.d.ts.map +1 -0
  84. package/dist/js/core/submit-result-state.d.ts +8 -0
  85. package/dist/js/core/submit-result-state.d.ts.map +1 -0
  86. package/dist/js/core/submit-result-ui.d.ts +10 -0
  87. package/dist/js/core/submit-result-ui.d.ts.map +1 -0
  88. package/dist/js/events/event-bus.d.ts +21 -0
  89. package/dist/js/events/event-bus.d.ts.map +1 -0
  90. package/dist/js/modules/address/address-finder.d.ts +2 -0
  91. package/dist/js/modules/address/address-finder.d.ts.map +1 -0
  92. package/dist/js/modules/address/api.d.ts +8 -0
  93. package/dist/js/modules/address/api.d.ts.map +1 -0
  94. package/dist/js/modules/address/constants.d.ts +15 -0
  95. package/dist/js/modules/address/constants.d.ts.map +1 -0
  96. package/dist/js/modules/address/factories.d.ts +35 -0
  97. package/dist/js/modules/address/factories.d.ts.map +1 -0
  98. package/dist/js/modules/address/google-address.d.ts +9 -0
  99. package/dist/js/modules/address/google-address.d.ts.map +1 -0
  100. package/dist/js/modules/address/host.d.ts +30 -0
  101. package/dist/js/modules/address/host.d.ts.map +1 -0
  102. package/dist/js/modules/address/index.d.ts +3 -0
  103. package/dist/js/modules/address/index.d.ts.map +1 -0
  104. package/dist/js/modules/address/loqate.d.ts +2 -0
  105. package/dist/js/modules/address/loqate.d.ts.map +1 -0
  106. package/dist/js/modules/address/place-kit.d.ts +2 -0
  107. package/dist/js/modules/address/place-kit.d.ts.map +1 -0
  108. package/dist/js/modules/captchas/api.d.ts +9 -0
  109. package/dist/js/modules/captchas/api.d.ts.map +1 -0
  110. package/dist/js/modules/captchas/captcha-eu.d.ts +2 -0
  111. package/dist/js/modules/captchas/captcha-eu.d.ts.map +1 -0
  112. package/dist/js/modules/captchas/constants.d.ts +5 -0
  113. package/dist/js/modules/captchas/constants.d.ts.map +1 -0
  114. package/dist/js/modules/captchas/factories.d.ts +63 -0
  115. package/dist/js/modules/captchas/factories.d.ts.map +1 -0
  116. package/dist/js/modules/captchas/friendly-captcha-v1.d.ts +2 -0
  117. package/dist/js/modules/captchas/friendly-captcha-v1.d.ts.map +1 -0
  118. package/dist/js/modules/captchas/friendly-captcha-v2.d.ts +2 -0
  119. package/dist/js/modules/captchas/friendly-captcha-v2.d.ts.map +1 -0
  120. package/dist/js/modules/captchas/hcaptcha.d.ts +2 -0
  121. package/dist/js/modules/captchas/hcaptcha.d.ts.map +1 -0
  122. package/dist/js/modules/captchas/host.d.ts +78 -0
  123. package/dist/js/modules/captchas/host.d.ts.map +1 -0
  124. package/dist/js/modules/captchas/index.d.ts +3 -0
  125. package/dist/js/modules/captchas/index.d.ts.map +1 -0
  126. package/dist/js/modules/captchas/recaptcha-enterprise.d.ts +2 -0
  127. package/dist/js/modules/captchas/recaptcha-enterprise.d.ts.map +1 -0
  128. package/dist/js/modules/captchas/recaptcha-shared.d.ts +26 -0
  129. package/dist/js/modules/captchas/recaptcha-shared.d.ts.map +1 -0
  130. package/dist/js/modules/captchas/recaptcha-v2-checkbox.d.ts +2 -0
  131. package/dist/js/modules/captchas/recaptcha-v2-checkbox.d.ts.map +1 -0
  132. package/dist/js/modules/captchas/recaptcha-v2-invisible.d.ts +2 -0
  133. package/dist/js/modules/captchas/recaptcha-v2-invisible.d.ts.map +1 -0
  134. package/dist/js/modules/captchas/recaptcha-v3.d.ts +2 -0
  135. package/dist/js/modules/captchas/recaptcha-v3.d.ts.map +1 -0
  136. package/dist/js/modules/captchas/snaptcha.d.ts +2 -0
  137. package/dist/js/modules/captchas/snaptcha.d.ts.map +1 -0
  138. package/dist/js/modules/captchas/turnstile.d.ts +2 -0
  139. package/dist/js/modules/captchas/turnstile.d.ts.map +1 -0
  140. package/dist/js/modules/captchas/utils.d.ts +13 -0
  141. package/dist/js/modules/captchas/utils.d.ts.map +1 -0
  142. package/dist/js/modules/fields/calculations.d.ts +3 -0
  143. package/dist/js/modules/fields/calculations.d.ts.map +1 -0
  144. package/dist/js/modules/fields/checkbox-radio.d.ts +3 -0
  145. package/dist/js/modules/fields/checkbox-radio.d.ts.map +1 -0
  146. package/dist/js/modules/fields/conditions/config.d.ts +5 -0
  147. package/dist/js/modules/fields/conditions/config.d.ts.map +1 -0
  148. package/dist/js/modules/fields/conditions/effects.d.ts +4 -0
  149. package/dist/js/modules/fields/conditions/effects.d.ts.map +1 -0
  150. package/dist/js/modules/fields/conditions/evaluator.d.ts +6 -0
  151. package/dist/js/modules/fields/conditions/evaluator.d.ts.map +1 -0
  152. package/dist/js/modules/fields/conditions/references.d.ts +5 -0
  153. package/dist/js/modules/fields/conditions/references.d.ts.map +1 -0
  154. package/dist/js/modules/fields/conditions/transforms.d.ts +3 -0
  155. package/dist/js/modules/fields/conditions/transforms.d.ts.map +1 -0
  156. package/dist/js/modules/fields/conditions/types.d.ts +30 -0
  157. package/dist/js/modules/fields/conditions/types.d.ts.map +1 -0
  158. package/dist/js/modules/fields/conditions/values.d.ts +5 -0
  159. package/dist/js/modules/fields/conditions/values.d.ts.map +1 -0
  160. package/dist/js/modules/fields/conditions.d.ts +3 -0
  161. package/dist/js/modules/fields/conditions.d.ts.map +1 -0
  162. package/dist/js/modules/fields/date-picker.d.ts +3 -0
  163. package/dist/js/modules/fields/date-picker.d.ts.map +1 -0
  164. package/dist/js/modules/fields/file-upload.d.ts +3 -0
  165. package/dist/js/modules/fields/file-upload.d.ts.map +1 -0
  166. package/dist/js/modules/fields/hidden.d.ts +3 -0
  167. package/dist/js/modules/fields/hidden.d.ts.map +1 -0
  168. package/dist/js/modules/fields/index.d.ts +3 -0
  169. package/dist/js/modules/fields/index.d.ts.map +1 -0
  170. package/dist/js/modules/fields/phone-country.d.ts +3 -0
  171. package/dist/js/modules/fields/phone-country.d.ts.map +1 -0
  172. package/dist/js/modules/fields/repeater.d.ts +3 -0
  173. package/dist/js/modules/fields/repeater.d.ts.map +1 -0
  174. package/dist/js/modules/fields/rich-text.d.ts +3 -0
  175. package/dist/js/modules/fields/rich-text.d.ts.map +1 -0
  176. package/dist/js/modules/fields/shared.d.ts +20 -0
  177. package/dist/js/modules/fields/shared.d.ts.map +1 -0
  178. package/dist/js/modules/fields/signature.d.ts +3 -0
  179. package/dist/js/modules/fields/signature.d.ts.map +1 -0
  180. package/dist/js/modules/fields/summary.d.ts +3 -0
  181. package/dist/js/modules/fields/summary.d.ts.map +1 -0
  182. package/dist/js/modules/fields/table.d.ts +3 -0
  183. package/dist/js/modules/fields/table.d.ts.map +1 -0
  184. package/dist/js/modules/fields/text-limit.d.ts +3 -0
  185. package/dist/js/modules/fields/text-limit.d.ts.map +1 -0
  186. package/dist/js/modules/loader.d.ts +11 -0
  187. package/dist/js/modules/loader.d.ts.map +1 -0
  188. package/dist/js/modules/payments/api.d.ts +8 -0
  189. package/dist/js/modules/payments/api.d.ts.map +1 -0
  190. package/dist/js/modules/payments/bpoint.d.ts +2 -0
  191. package/dist/js/modules/payments/bpoint.d.ts.map +1 -0
  192. package/dist/js/modules/payments/constants.d.ts +5 -0
  193. package/dist/js/modules/payments/constants.d.ts.map +1 -0
  194. package/dist/js/modules/payments/eway.d.ts +9 -0
  195. package/dist/js/modules/payments/eway.d.ts.map +1 -0
  196. package/dist/js/modules/payments/factories.d.ts +54 -0
  197. package/dist/js/modules/payments/factories.d.ts.map +1 -0
  198. package/dist/js/modules/payments/go-cardless.d.ts +2 -0
  199. package/dist/js/modules/payments/go-cardless.d.ts.map +1 -0
  200. package/dist/js/modules/payments/host.d.ts +70 -0
  201. package/dist/js/modules/payments/host.d.ts.map +1 -0
  202. package/dist/js/modules/payments/index.d.ts +3 -0
  203. package/dist/js/modules/payments/index.d.ts.map +1 -0
  204. package/dist/js/modules/payments/mollie.d.ts +2 -0
  205. package/dist/js/modules/payments/mollie.d.ts.map +1 -0
  206. package/dist/js/modules/payments/moneris.d.ts +2 -0
  207. package/dist/js/modules/payments/moneris.d.ts.map +1 -0
  208. package/dist/js/modules/payments/opayo.d.ts +25 -0
  209. package/dist/js/modules/payments/opayo.d.ts.map +1 -0
  210. package/dist/js/modules/payments/paddle.d.ts +2 -0
  211. package/dist/js/modules/payments/paddle.d.ts.map +1 -0
  212. package/dist/js/modules/payments/paypal.d.ts +2 -0
  213. package/dist/js/modules/payments/paypal.d.ts.map +1 -0
  214. package/dist/js/modules/payments/payway.d.ts +2 -0
  215. package/dist/js/modules/payments/payway.d.ts.map +1 -0
  216. package/dist/js/modules/payments/square.d.ts +2 -0
  217. package/dist/js/modules/payments/square.d.ts.map +1 -0
  218. package/dist/js/modules/payments/stripe.d.ts +2 -0
  219. package/dist/js/modules/payments/stripe.d.ts.map +1 -0
  220. package/dist/js/modules/payments/utils.d.ts +17 -0
  221. package/dist/js/modules/payments/utils.d.ts.map +1 -0
  222. package/dist/js/modules/registry.d.ts +9 -0
  223. package/dist/js/modules/registry.d.ts.map +1 -0
  224. package/dist/js/modules/styles.d.ts +2 -0
  225. package/dist/js/modules/styles.d.ts.map +1 -0
  226. package/dist/js/submit/pipeline.d.ts +18 -0
  227. package/dist/js/submit/pipeline.d.ts.map +1 -0
  228. package/dist/js/theme/theme-classes.d.ts +10 -0
  229. package/dist/js/theme/theme-classes.d.ts.map +1 -0
  230. package/dist/js/transport/forms-api.d.ts +11 -0
  231. package/dist/js/transport/forms-api.d.ts.map +1 -0
  232. package/dist/js/utils/async.d.ts +8 -0
  233. package/dist/js/utils/async.d.ts.map +1 -0
  234. package/dist/js/utils/debug.d.ts +10 -0
  235. package/dist/js/utils/debug.d.ts.map +1 -0
  236. package/dist/js/utils/event-names.d.ts +13 -0
  237. package/dist/js/utils/event-names.d.ts.map +1 -0
  238. package/dist/js/utils/field-references.d.ts +6 -0
  239. package/dist/js/utils/field-references.d.ts.map +1 -0
  240. package/dist/js/utils/field-references.keys.d.ts +4 -0
  241. package/dist/js/utils/field-references.keys.d.ts.map +1 -0
  242. package/dist/js/utils/field-references.parser.d.ts +3 -0
  243. package/dist/js/utils/field-references.parser.d.ts.map +1 -0
  244. package/dist/js/utils/field-references.registry.d.ts +3 -0
  245. package/dist/js/utils/field-references.registry.d.ts.map +1 -0
  246. package/dist/js/utils/field-references.resolver.d.ts +4 -0
  247. package/dist/js/utils/field-references.resolver.d.ts.map +1 -0
  248. package/dist/js/utils/field-references.types.d.ts +27 -0
  249. package/dist/js/utils/field-references.types.d.ts.map +1 -0
  250. package/dist/js/utils/fields.d.ts +5 -0
  251. package/dist/js/utils/fields.d.ts.map +1 -0
  252. package/dist/js/utils/http.d.ts +9 -0
  253. package/dist/js/utils/http.d.ts.map +1 -0
  254. package/dist/js/utils/i18n.d.ts +7 -0
  255. package/dist/js/utils/i18n.d.ts.map +1 -0
  256. package/dist/js/utils/scripts.d.ts +13 -0
  257. package/dist/js/utils/scripts.d.ts.map +1 -0
  258. package/dist/js/utils/unload-warning.d.ts +10 -0
  259. package/dist/js/utils/unload-warning.d.ts.map +1 -0
  260. package/dist/js/validation/rules/email.d.ts +4 -0
  261. package/dist/js/validation/rules/email.d.ts.map +1 -0
  262. package/dist/js/validation/rules/match.d.ts +4 -0
  263. package/dist/js/validation/rules/match.d.ts.map +1 -0
  264. package/dist/js/validation/rules/number.d.ts +4 -0
  265. package/dist/js/validation/rules/number.d.ts.map +1 -0
  266. package/dist/js/validation/rules/required.d.ts +4 -0
  267. package/dist/js/validation/rules/required.d.ts.map +1 -0
  268. package/dist/js/validation/rules/shared.d.ts +7 -0
  269. package/dist/js/validation/rules/shared.d.ts.map +1 -0
  270. package/dist/js/validation/rules/url.d.ts +4 -0
  271. package/dist/js/validation/rules/url.d.ts.map +1 -0
  272. package/dist/js/validation/rules.d.ts +10 -0
  273. package/dist/js/validation/rules.d.ts.map +1 -0
  274. package/dist/js/validation/scope.d.ts +6 -0
  275. package/dist/js/validation/scope.d.ts.map +1 -0
  276. package/dist/js/validation/submit-readiness.d.ts +4 -0
  277. package/dist/js/validation/submit-readiness.d.ts.map +1 -0
  278. package/dist/js/validation/types.d.ts +44 -0
  279. package/dist/js/validation/types.d.ts.map +1 -0
  280. package/dist/js/validation/validator.d.ts +54 -0
  281. package/dist/js/validation/validator.d.ts.map +1 -0
  282. package/package.json +3 -2
  283. package/src/css/theme/forms/_form.css +28 -0
  284. package/src/js/core/create-formie-client.ts +6 -0
  285. package/src/js/core/submit-result-state.ts +17 -0
  286. package/src/js/modules/address/google-address.ts +33 -1
  287. package/src/js/modules/fields/conditions/effects.ts +79 -2
  288. package/src/js/modules/fields/conditions.ts +53 -11
  289. package/src/js/modules/fields/file-upload.ts +189 -97
  290. package/src/js/modules/fields/repeater.ts +1 -1
  291. package/src/js/modules/fields/rich-text.ts +2 -2
  292. package/src/js/modules/fields/signature.ts +1 -1
  293. package/src/js/modules/fields/summary.ts +1 -1
  294. package/src/js/modules/fields/table.ts +1 -1
  295. package/src/js/modules/fields/text-limit.ts +1 -1
  296. package/src/js/modules/payments/paypal.ts +1 -1
  297. package/src/js/modules/payments/payway.ts +1 -1
  298. package/src/js/modules/payments/stripe.ts +1 -1
  299. package/src/js/submit/pipeline.ts +3 -28
  300. package/src/js/validation/scope.ts +25 -0
  301. package/src/js/validation/submit-readiness.ts +157 -0
  302. package/src/js/validation/validator.ts +4 -0
  303. package/dist/chunks/address-finder-DfMCiW89.js +0 -47
  304. package/dist/chunks/api-CbqEMQT5.js +0 -181
  305. package/dist/chunks/api-DE7LfK-R.js +0 -960
  306. package/dist/chunks/api-DOfDzYC_.js +0 -538
  307. package/dist/chunks/async-B3DUf1GZ.js +0 -26
  308. package/dist/chunks/bpoint-Ciy3yY9Q.js +0 -34
  309. package/dist/chunks/calculations-CkYAqO_-.js +0 -197
  310. package/dist/chunks/captcha-eu-DnOWhMwr.js +0 -43
  311. package/dist/chunks/checkbox-radio-0x7Tc0br.js +0 -197
  312. package/dist/chunks/chunk-K6L4z4UQ.js +0 -24
  313. package/dist/chunks/conditions-4fXKhEJS.js +0 -609
  314. package/dist/chunks/date-picker-B6iZkjHS.js +0 -6204
  315. package/dist/chunks/debug-KnZeKYBI.js +0 -39
  316. package/dist/chunks/dist-D09GnXMW.js +0 -2663
  317. package/dist/chunks/event-names-DamGPtXR.js +0 -51
  318. package/dist/chunks/eway-DEAYcwT0.js +0 -86
  319. package/dist/chunks/field-references.keys-BpBZ_quS.js +0 -24
  320. package/dist/chunks/field-references.resolver-Ba6xhiJC.js +0 -183
  321. package/dist/chunks/file-upload-BIj85NFH.js +0 -428
  322. package/dist/chunks/friendly-captcha-v1-CqO4WVre.js +0 -40
  323. package/dist/chunks/friendly-captcha-v2-CyykcJcM.js +0 -47
  324. package/dist/chunks/friendly-challenge-Dg8XkStd.js +0 -1101
  325. package/dist/chunks/go-cardless-CuND59rR.js +0 -26
  326. package/dist/chunks/google-address--uR8WDSm.js +0 -208
  327. package/dist/chunks/hcaptcha-CmaFUesv.js +0 -72
  328. package/dist/chunks/hidden-CYnZYple.js +0 -36
  329. package/dist/chunks/http-18nn97DZ.js +0 -29
  330. package/dist/chunks/i18n-vUh-KGiH.js +0 -55
  331. package/dist/chunks/loqate-BICNJlVK.js +0 -97
  332. package/dist/chunks/mollie-DwlsgHZ1.js +0 -26
  333. package/dist/chunks/moneris-B_IFZFTx.js +0 -159
  334. package/dist/chunks/opayo-U2x_TOII.js +0 -192
  335. package/dist/chunks/paddle-BqXFrc79.js +0 -75
  336. package/dist/chunks/paypal-VowQ3ilP.js +0 -121
  337. package/dist/chunks/payway-VOO-ajyg.js +0 -75
  338. package/dist/chunks/phone-country-B6Me4lK0.js +0 -3317
  339. package/dist/chunks/place-kit-ldUl-u9w.js +0 -56
  340. package/dist/chunks/placekit-autocomplete.esm-D-lGeaZl.js +0 -1771
  341. package/dist/chunks/recaptcha-enterprise-DPJNyv1X.js +0 -72
  342. package/dist/chunks/recaptcha-shared-DTI4qWVR.js +0 -22
  343. package/dist/chunks/recaptcha-v2-checkbox-zFjpvJ5c.js +0 -49
  344. package/dist/chunks/recaptcha-v2-invisible-CnYtkNvz.js +0 -62
  345. package/dist/chunks/recaptcha-v3-EAlWhnkX.js +0 -33
  346. package/dist/chunks/repeater-BPm7Mkyn.js +0 -149
  347. package/dist/chunks/rich-text-CHSly1Hq.js +0 -438
  348. package/dist/chunks/scripts-BGD_iU_6.js +0 -41
  349. package/dist/chunks/sdk-B7u9fTlP.js +0 -2103
  350. package/dist/chunks/shared-DC6_1u8X.js +0 -85
  351. package/dist/chunks/signature-DNMCgrMd.js +0 -763
  352. package/dist/chunks/snaptcha-CCDunGeb.js +0 -8
  353. package/dist/chunks/square-BLqK51rS.js +0 -61
  354. package/dist/chunks/stripe-B6ZcDQdx.js +0 -273
  355. package/dist/chunks/styles-BIh6g7V_.js +0 -22
  356. package/dist/chunks/summary-BTG0uIOt.js +0 -189
  357. package/dist/chunks/table-BTYc0Qm8.js +0 -122
  358. package/dist/chunks/text-limit-CgBMu4sJ.js +0 -177
  359. package/dist/chunks/theme-classes-vSHpdCUO.js +0 -59
  360. package/dist/chunks/turnstile-DP0bdR7T.js +0 -68
  361. package/dist/chunks/utils-ByrEVYrJ.js +0 -49584
@@ -1,428 +0,0 @@
1
- import { a as getFormStateEventName, i as getFileUploadEventName } from "./event-names-DamGPtXR.js";
2
- import { t as requestJson } from "./http-18nn97DZ.js";
3
- import { t as ensureModuleStyles } from "./styles-BIh6g7V_.js";
4
- import { c as retainFormValidators, i as getModuleFieldTarget, s as releaseFormValidators, t as dispatchFieldEvent } from "./shared-DC6_1u8X.js";
5
- import fileUploadCss from "#theme/fields/_file.css?inline";
6
- //#region src/js/modules/fields/file-upload.ts
7
- var INPUT_SELECTOR = "input[type=\"file\"][data-formie-file-input]";
8
- var FILE_UPLOAD_EVENT = getFileUploadEventName("uploaded");
9
- var FORM_RESET_EVENT = getFormStateEventName("reset");
10
- var FILE_UPLOAD_KEY_ATTR = "data-formie-file-upload-key";
11
- var HYDRATE_ENDPOINT_ATTR = "data-formie-file-upload-hydrate-endpoint";
12
- var HIDDEN_INPUT_ANCHOR_ATTR = "data-formie-file-upload-anchor";
13
- var HIDDEN_INPUT_VALUE_ATTR = "data-formie-file-upload-asset-id";
14
- var FILE_VALIDATORS = [
15
- "fileLimit",
16
- "fileSizeMinLimit",
17
- "fileSizeMaxLimit"
18
- ];
19
- var VALIDATOR_SCOPE = "file-upload";
20
- var MODULE_ID = "file-upload";
21
- ensureModuleStyles(MODULE_ID, [fileUploadCss]);
22
- function isRecord(value) {
23
- return !!value && typeof value === "object" && !Array.isArray(value);
24
- }
25
- function toPositiveInt(value) {
26
- const parsed = Number(value);
27
- return Number.isInteger(parsed) && parsed > 0 ? parsed : null;
28
- }
29
- function toTrimmedString(value) {
30
- return typeof value === "string" ? value.trim() : "";
31
- }
32
- function getFieldHandle(field) {
33
- return field.getAttribute("data-formie-field-handle")?.trim() || "";
34
- }
35
- function getFileValueName(input) {
36
- return input.name.endsWith("[]") ? input.name.slice(0, -2) : input.name;
37
- }
38
- function getUploadedAssetInputName(input) {
39
- return `${getFileValueName(input)}[]`;
40
- }
41
- function getFileUploadKey(input) {
42
- return input.getAttribute(FILE_UPLOAD_KEY_ATTR)?.trim() || input.getAttribute("data-formie-input-id")?.trim() || "";
43
- }
44
- function getHiddenInputs(field) {
45
- return Array.from(field.querySelectorAll("input[type=\"hidden\"]")).filter((input) => {
46
- return input instanceof HTMLInputElement;
47
- });
48
- }
49
- function getUploadedAssetInputs(field, input) {
50
- const assetInputName = getUploadedAssetInputName(input);
51
- return getHiddenInputs(field).filter((hiddenInput) => {
52
- return hiddenInput.name === assetInputName && hiddenInput.value.trim() !== "";
53
- });
54
- }
55
- function ensureUploadedAssetAnchor(field, input) {
56
- const anchorName = getFileValueName(input);
57
- const existingAnchor = getHiddenInputs(field).find((hiddenInput) => {
58
- return hiddenInput.hasAttribute(HIDDEN_INPUT_ANCHOR_ATTR) || hiddenInput.name === anchorName && hiddenInput.value === "";
59
- });
60
- if (existingAnchor) {
61
- existingAnchor.setAttribute(HIDDEN_INPUT_ANCHOR_ATTR, "true");
62
- existingAnchor.name = anchorName;
63
- existingAnchor.value = "";
64
- return existingAnchor;
65
- }
66
- const anchor = document.createElement("input");
67
- anchor.type = "hidden";
68
- anchor.name = anchorName;
69
- anchor.value = "";
70
- anchor.setAttribute(HIDDEN_INPUT_ANCHOR_ATTR, "true");
71
- input.insertAdjacentElement("afterend", anchor);
72
- return anchor;
73
- }
74
- function normalizeUploadedAsset(candidate) {
75
- if (Array.isArray(candidate)) return null;
76
- const directId = toPositiveInt(candidate);
77
- if (directId) return {
78
- assetId: directId,
79
- filename: ""
80
- };
81
- if (!isRecord(candidate)) return null;
82
- const assetId = toPositiveInt(candidate.assetId ?? candidate.id ?? candidate.value);
83
- const filename = toTrimmedString(candidate.filename ?? candidate.title ?? candidate.label ?? candidate.name);
84
- const url = toTrimmedString(candidate.url) || null;
85
- if (!assetId && !filename) return null;
86
- return {
87
- assetId,
88
- filename,
89
- url
90
- };
91
- }
92
- function normalizeUploadedAssets(candidate) {
93
- if (!Array.isArray(candidate)) {
94
- const singleAsset = normalizeUploadedAsset(candidate);
95
- return singleAsset ? [singleAsset] : [];
96
- }
97
- return candidate.flatMap((entry) => {
98
- if (Array.isArray(entry)) return normalizeUploadedAssets(entry);
99
- const asset = normalizeUploadedAsset(entry);
100
- return asset ? [asset] : [];
101
- });
102
- }
103
- function readSummaryItems(summaryRoot) {
104
- if (!summaryRoot) return [];
105
- return Array.from(summaryRoot.querySelectorAll("[data-formie-file-summary-item]")).map((item) => {
106
- return {
107
- assetId: null,
108
- filename: item.textContent?.trim() || ""
109
- };
110
- }).filter((asset) => {
111
- return asset.filename !== "";
112
- });
113
- }
114
- function readUploadedAssetsFromHiddenInputs(field, input) {
115
- return getUploadedAssetInputs(field, input).map((hiddenInput) => {
116
- return {
117
- assetId: toPositiveInt(hiddenInput.value),
118
- filename: ""
119
- };
120
- }).filter((asset) => {
121
- return asset.assetId !== null;
122
- });
123
- }
124
- function mergeUploadedAssets(assetIds, summaryItems) {
125
- if (!assetIds.length) return summaryItems;
126
- return assetIds.map((asset, index) => {
127
- return {
128
- assetId: asset.assetId,
129
- filename: summaryItems[index]?.filename || ""
130
- };
131
- });
132
- }
133
- function normalizeFilenameList(filenames) {
134
- return filenames.map((filename) => {
135
- return filename.trim().toLowerCase();
136
- }).filter(Boolean);
137
- }
138
- function matchesPendingFiles(uploadedAssets, pendingFiles) {
139
- const uploadedFilenames = normalizeFilenameList(uploadedAssets.map((asset) => {
140
- return asset.filename;
141
- }));
142
- const normalizedPendingFiles = normalizeFilenameList(pendingFiles);
143
- if (!uploadedFilenames.length || !normalizedPendingFiles.length) return false;
144
- return uploadedFilenames.every((filename) => {
145
- return normalizedPendingFiles.includes(filename);
146
- });
147
- }
148
- function registerValidators(form) {
149
- retainFormValidators(form, VALIDATOR_SCOPE, (validator) => {
150
- validator.addValidator("fileLimit", ({ input }) => {
151
- const limit = parseInt(input.getAttribute("data-formie-file-limit") || "", 10);
152
- if (input.type !== "file" || !limit || !("files" in input) || !input.files?.length) return true;
153
- return input.files.length <= limit;
154
- }, ({ input, t }) => {
155
- return t("Choose up to {files} files.", { files: input.getAttribute("data-formie-file-limit") || "" });
156
- });
157
- validator.addValidator("fileSizeMinLimit", ({ input }) => {
158
- const sizeBytes = parseFloat(input.getAttribute("data-formie-size-min-limit") || "") * 1e3 * 1e3;
159
- if (input.type !== "file" || !sizeBytes || !("files" in input) || !input.files?.length) return true;
160
- return Array.from(input.files).every((file) => {
161
- return file.size >= sizeBytes;
162
- });
163
- }, ({ input, t }) => {
164
- return t("File must be larger than {filesize} MB.", { filesize: input.getAttribute("data-formie-size-min-limit") || "" });
165
- });
166
- validator.addValidator("fileSizeMaxLimit", ({ input }) => {
167
- const sizeBytes = parseFloat(input.getAttribute("data-formie-size-max-limit") || "") * 1e3 * 1e3;
168
- if (input.type !== "file" || !sizeBytes || !("files" in input) || !input.files?.length) return true;
169
- return Array.from(input.files).every((file) => {
170
- return file.size <= sizeBytes;
171
- });
172
- }, ({ input, t }) => {
173
- return t("File must be smaller than {filesize} MB.", { filesize: input.getAttribute("data-formie-size-max-limit") || "" });
174
- });
175
- });
176
- }
177
- function unregisterValidators(form) {
178
- releaseFormValidators(form, VALIDATOR_SCOPE, FILE_VALIDATORS);
179
- }
180
- function ensureSummaryRoot(field, input) {
181
- const existingSummary = field.querySelector("[data-formie-file-summary]");
182
- if (existingSummary) return existingSummary;
183
- const summary = document.createElement("div");
184
- summary.className = "formie-file-summary";
185
- summary.setAttribute("data-formie-file-summary", "true");
186
- input.insertAdjacentElement("afterend", summary);
187
- return summary;
188
- }
189
- function renderSummary(state) {
190
- const items = state.pendingFiles.length ? state.pendingFiles : state.uploadedAssets.map((asset) => {
191
- return asset.filename || (asset.assetId ? `Asset #${asset.assetId}` : "");
192
- }).filter(Boolean);
193
- const existingSummary = state.summaryRoot || state.field.querySelector("[data-formie-file-summary]");
194
- if (!items.length) {
195
- if (existingSummary) {
196
- existingSummary.replaceChildren();
197
- existingSummary.hidden = true;
198
- }
199
- state.summaryRoot = existingSummary;
200
- return;
201
- }
202
- const summaryRoot = existingSummary || ensureSummaryRoot(state.field, state.input);
203
- if (!summaryRoot) return;
204
- summaryRoot.hidden = false;
205
- state.summaryRoot = summaryRoot;
206
- const list = document.createElement("ul");
207
- list.className = "formie-file-summary-container";
208
- list.setAttribute("data-formie-file-summary-container", "true");
209
- items.forEach((filename) => {
210
- const item = document.createElement("li");
211
- item.className = "formie-file-summary-item";
212
- item.setAttribute("data-formie-file-summary-item", "true");
213
- item.textContent = filename;
214
- list.appendChild(item);
215
- });
216
- summaryRoot.replaceChildren(list);
217
- }
218
- function updateUploadedAssetInputs(field, input, uploadedAssets) {
219
- let insertionPoint = ensureUploadedAssetAnchor(field, input);
220
- const anchorName = getUploadedAssetInputName(input);
221
- getUploadedAssetInputs(field, input).forEach((hiddenInput) => {
222
- hiddenInput.remove();
223
- });
224
- uploadedAssets.forEach((asset) => {
225
- if (!asset.assetId) return;
226
- const hiddenInput = document.createElement("input");
227
- hiddenInput.type = "hidden";
228
- hiddenInput.name = anchorName;
229
- hiddenInput.value = String(asset.assetId);
230
- hiddenInput.setAttribute(HIDDEN_INPUT_VALUE_ATTR, "true");
231
- insertionPoint.insertAdjacentElement("afterend", hiddenInput);
232
- insertionPoint = hiddenInput;
233
- });
234
- input.value = "";
235
- }
236
- async function hydrateUploadedAssets(field, input, uploadedAssets) {
237
- const assetIds = uploadedAssets.map((asset) => {
238
- return asset.assetId;
239
- }).filter((assetId) => {
240
- return assetId !== null;
241
- });
242
- if (!assetIds.length) return uploadedAssets;
243
- const hydrateEndpoint = input.getAttribute(HYDRATE_ENDPOINT_ATTR)?.trim() || "/actions/formie/file-upload/hydrate";
244
- const body = new FormData();
245
- assetIds.forEach((assetId) => {
246
- body.append("assetIds[]", String(assetId));
247
- });
248
- const hydratedAssets = normalizeUploadedAssets((await requestJson(hydrateEndpoint, {
249
- method: "POST",
250
- body
251
- })).assets);
252
- if (!hydratedAssets.length) return uploadedAssets;
253
- const hydratedMap = new Map(hydratedAssets.map((asset) => {
254
- return [asset.assetId, asset];
255
- }));
256
- return uploadedAssets.map((asset) => {
257
- if (!asset.assetId || !hydratedMap.has(asset.assetId)) return asset;
258
- const hydratedAsset = hydratedMap.get(asset.assetId);
259
- return {
260
- assetId: asset.assetId,
261
- filename: hydratedAsset.filename || asset.filename,
262
- url: hydratedAsset.url ?? asset.url
263
- };
264
- });
265
- }
266
- function getUploadedAssetsFromEvent(event, matcher) {
267
- const detail = event.detail;
268
- if (!isRecord(detail)) return [];
269
- const detailFieldHandle = toTrimmedString(detail.fieldHandle);
270
- const detailInputKey = toTrimmedString(detail.inputKey);
271
- const detailInputName = toTrimmedString(detail.inputName ?? detail.name);
272
- const nestedData = isRecord(detail.data) ? detail.data : null;
273
- const nestedFieldHandle = toTrimmedString(nestedData?.fieldHandle);
274
- const nestedInputKey = toTrimmedString(nestedData?.inputKey);
275
- const nestedInputName = toTrimmedString(nestedData?.inputName ?? nestedData?.name);
276
- const candidates = [];
277
- let matchedByInputKey = false;
278
- let matchedByInputName = false;
279
- let matchedByFieldHandle = false;
280
- if (detailInputKey !== "" && detailInputKey === matcher.inputKey) {
281
- matchedByInputKey = true;
282
- candidates.push(detail.assets, detail.assetIds, detail.data);
283
- }
284
- if (detailInputName !== "" && detailInputName === matcher.inputName) {
285
- matchedByInputName = true;
286
- candidates.push(detail.assets, detail.assetIds, detail.data);
287
- }
288
- if (detailFieldHandle === matcher.fieldHandle) {
289
- matchedByFieldHandle = true;
290
- candidates.push(detail.assets, detail.assetIds, detail.data);
291
- }
292
- if (nestedData) {
293
- const nestedAssetCandidates = [
294
- nestedData.assets,
295
- nestedData.assetIds,
296
- nestedData.uploadedAssets,
297
- nestedData.data
298
- ];
299
- if (nestedInputKey !== "" && nestedInputKey === matcher.inputKey) {
300
- matchedByInputKey = true;
301
- candidates.push(...nestedAssetCandidates);
302
- }
303
- if (nestedInputName !== "" && nestedInputName === matcher.inputName) {
304
- matchedByInputName = true;
305
- candidates.push(...nestedAssetCandidates);
306
- }
307
- if (nestedFieldHandle === matcher.fieldHandle) {
308
- matchedByFieldHandle = true;
309
- candidates.push(...nestedAssetCandidates);
310
- }
311
- }
312
- [
313
- detail.assets,
314
- detail.assetIds,
315
- detail.data
316
- ].forEach((value) => {
317
- if (!isRecord(value)) return;
318
- if (matcher.inputKey && matcher.inputKey in value) {
319
- matchedByInputKey = true;
320
- candidates.push(value[matcher.inputKey]);
321
- }
322
- if (matcher.inputName in value) {
323
- matchedByInputName = true;
324
- candidates.push(value[matcher.inputName]);
325
- }
326
- if (matcher.fieldHandle in value) candidates.push(value[matcher.fieldHandle]);
327
- });
328
- for (const candidate of candidates) {
329
- const uploadedAssets = normalizeUploadedAssets(candidate);
330
- if (!uploadedAssets.length) continue;
331
- if (matchedByInputKey || matchedByInputName || matchedByFieldHandle || matchesPendingFiles(uploadedAssets, matcher.pendingFiles)) return uploadedAssets;
332
- }
333
- return [];
334
- }
335
- var fileUploadModule = {
336
- id: MODULE_ID,
337
- kind: "field",
338
- match: (ctx) => {
339
- return !!ctx.target.querySelector(INPUT_SELECTOR);
340
- },
341
- setup: async (ctx) => {
342
- const field = getModuleFieldTarget(ctx);
343
- const scope = field || ctx.target;
344
- const inputs = Array.from(scope.querySelectorAll(INPUT_SELECTOR)).filter((input) => {
345
- return input instanceof HTMLInputElement;
346
- });
347
- const form = ctx.form;
348
- registerValidators(form);
349
- const unbinds = inputs.map((input) => {
350
- if (!(field instanceof HTMLElement)) return () => {};
351
- const state = {
352
- field,
353
- input,
354
- summaryRoot: ensureSummaryRoot(field, input),
355
- uploadedAssets: mergeUploadedAssets(readUploadedAssetsFromHiddenInputs(field, input), readSummaryItems(field.querySelector("[data-formie-file-summary]"))),
356
- pendingFiles: [],
357
- hydrationToken: 0
358
- };
359
- const syncPendingFiles = () => {
360
- state.pendingFiles = Array.from(input.files || []).map((file) => {
361
- return file.name;
362
- });
363
- renderSummary(state);
364
- };
365
- const syncUploadedAssets = async (uploadedAssets) => {
366
- state.hydrationToken += 1;
367
- const hydrationToken = state.hydrationToken;
368
- state.pendingFiles = [];
369
- state.uploadedAssets = uploadedAssets;
370
- updateUploadedAssetInputs(field, input, uploadedAssets);
371
- renderSummary(state);
372
- try {
373
- const hydratedAssets = await hydrateUploadedAssets(field, input, uploadedAssets);
374
- if (hydrationToken !== state.hydrationToken) return;
375
- state.uploadedAssets = hydratedAssets;
376
- renderSummary(state);
377
- dispatchFieldEvent(field, MODULE_ID, "uploaded-assets-sync", {
378
- fileUpload: field,
379
- assets: hydratedAssets
380
- });
381
- } catch (error) {
382
- console.error("[formie] Failed to hydrate uploaded file details.", error);
383
- }
384
- };
385
- const resetUploadedAssets = () => {
386
- state.hydrationToken += 1;
387
- state.pendingFiles = [];
388
- state.uploadedAssets = [];
389
- updateUploadedAssetInputs(field, input, []);
390
- renderSummary(state);
391
- };
392
- const uploadedAssetHandler = (event) => {
393
- const fieldHandle = getFieldHandle(field);
394
- if (!fieldHandle) return;
395
- const uploadedAssets = getUploadedAssetsFromEvent(event, {
396
- fieldHandle,
397
- inputKey: getFileUploadKey(input),
398
- inputName: input.name,
399
- pendingFiles: state.pendingFiles
400
- });
401
- if (!uploadedAssets.length) return;
402
- syncUploadedAssets(uploadedAssets);
403
- };
404
- const resetHandler = () => {
405
- resetUploadedAssets();
406
- };
407
- input.addEventListener("change", syncPendingFiles);
408
- form?.addEventListener(FILE_UPLOAD_EVENT, uploadedAssetHandler);
409
- form?.addEventListener(FORM_RESET_EVENT, resetHandler);
410
- renderSummary(state);
411
- return () => {
412
- input.removeEventListener("change", syncPendingFiles);
413
- form?.removeEventListener(FILE_UPLOAD_EVENT, uploadedAssetHandler);
414
- form?.removeEventListener(FORM_RESET_EVENT, resetHandler);
415
- };
416
- });
417
- await ctx.emit("formie:module:file-upload:init", { count: inputs.length });
418
- return { destroy: () => {
419
- unbinds.forEach((unbind) => {
420
- unbind();
421
- });
422
- unregisterValidators(form);
423
- ctx.emit("formie:module:file-upload:destroy", {});
424
- } };
425
- }
426
- };
427
- //#endregion
428
- export { fileUploadModule };
@@ -1,40 +0,0 @@
1
- import { t as defineCaptchaModule } from "./api-DOfDzYC_.js";
2
- //#region src/js/modules/captchas/friendly-captcha-v1.ts
3
- var friendlyCaptchaV1Module = defineCaptchaModule({
4
- id: "friendly-captcha-v1",
5
- defaultPlaceholderSelector: "[data-friendly-captcha-placeholder]",
6
- defaultTokenFieldNames: ["frc-captcha-solution"],
7
- load: async () => {
8
- return import("./friendly-challenge-Dg8XkStd.js");
9
- },
10
- mount: ({ api, container, provider, services }) => {
11
- return new api.WidgetInstance(container, {
12
- sitekey: provider.siteKey || "",
13
- startMode: provider.startMode || "none",
14
- language: provider.language || "en",
15
- solutionFieldName: "frc-captcha-solution",
16
- doneCallback: (token) => {
17
- if (typeof token === "string" && token.trim() !== "") services.tokens.write(token.trim());
18
- services.errors.clear();
19
- },
20
- errorCallback: () => {
21
- services.tokens.clear();
22
- }
23
- });
24
- },
25
- screen: async ({ widget, placeholder, services, stageCtx }) => {
26
- if (services.tokens.has()) return;
27
- await widget.start();
28
- if (!await services.tokens.wait()) {
29
- const message = services.errors.getDefaultMessage();
30
- services.errors.show(message, placeholder);
31
- stageCtx.abort(message);
32
- }
33
- },
34
- unmount: ({ widget, services }) => {
35
- widget.destroy();
36
- services.tokens.clear();
37
- }
38
- });
39
- //#endregion
40
- export { friendlyCaptchaV1Module };
@@ -1,47 +0,0 @@
1
- import { t as defineCaptchaModule } from "./api-DOfDzYC_.js";
2
- //#region src/js/modules/captchas/friendly-captcha-v2.ts
3
- var friendlyCaptchaV2Module = defineCaptchaModule({
4
- id: "friendly-captcha-v2",
5
- defaultPlaceholderSelector: "[data-friendly-captcha-placeholder]",
6
- defaultTokenFieldNames: ["frc-captcha-response"],
7
- load: async () => {
8
- return import("./sdk-B7u9fTlP.js");
9
- },
10
- mount: ({ api, container, provider, services }) => {
11
- const widget = new api.FriendlyCaptchaSDK().createWidget({
12
- element: container,
13
- sitekey: provider.siteKey || "",
14
- formFieldName: "frc-captcha-response",
15
- language: provider.language,
16
- startMode: provider.startMode || "none"
17
- });
18
- widget.addEventListener("frc:widget.complete", (event) => {
19
- const detail = event.detail;
20
- if (typeof detail?.response === "string" && detail.response.trim() !== "") services.tokens.write(detail.response.trim());
21
- services.errors.clear();
22
- });
23
- widget.addEventListener("frc:widget.expire", () => {
24
- services.tokens.clear();
25
- services.errors.clear();
26
- });
27
- widget.addEventListener("frc:widget.error", (event) => {
28
- if (event.detail?.error) services.tokens.clear();
29
- });
30
- return widget;
31
- },
32
- screen: async ({ widget, placeholder, services, stageCtx }) => {
33
- if (services.tokens.has()) return;
34
- widget.start();
35
- if (!await services.tokens.wait()) {
36
- const message = services.errors.getDefaultMessage();
37
- services.errors.show(message, placeholder);
38
- stageCtx.abort(message);
39
- }
40
- },
41
- unmount: ({ widget, services }) => {
42
- widget.destroy();
43
- services.tokens.clear();
44
- }
45
- });
46
- //#endregion
47
- export { friendlyCaptchaV2Module };