@verbb/formie-browser 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -0
- package/LICENSE.md +40 -0
- package/README.md +34 -0
- package/dist/chunks/address-finder-DfMCiW89.js +47 -0
- package/dist/chunks/api-CbqEMQT5.js +181 -0
- package/dist/chunks/api-DE7LfK-R.js +960 -0
- package/dist/chunks/api-DOfDzYC_.js +538 -0
- package/dist/chunks/async-B3DUf1GZ.js +26 -0
- package/dist/chunks/bpoint-Ciy3yY9Q.js +34 -0
- package/dist/chunks/calculations-CkYAqO_-.js +197 -0
- package/dist/chunks/captcha-eu-DnOWhMwr.js +43 -0
- package/dist/chunks/checkbox-radio-0x7Tc0br.js +197 -0
- package/dist/chunks/chunk-K6L4z4UQ.js +24 -0
- package/dist/chunks/conditions-4fXKhEJS.js +609 -0
- package/dist/chunks/date-picker-B6iZkjHS.js +6204 -0
- package/dist/chunks/debug-KnZeKYBI.js +39 -0
- package/dist/chunks/dist-D09GnXMW.js +2663 -0
- package/dist/chunks/event-names-DamGPtXR.js +51 -0
- package/dist/chunks/eway-DEAYcwT0.js +86 -0
- package/dist/chunks/field-references.keys-BpBZ_quS.js +24 -0
- package/dist/chunks/field-references.resolver-Ba6xhiJC.js +183 -0
- package/dist/chunks/file-upload-Bh63PQSE.js +430 -0
- package/dist/chunks/friendly-captcha-v1-CqO4WVre.js +40 -0
- package/dist/chunks/friendly-captcha-v2-CyykcJcM.js +47 -0
- package/dist/chunks/friendly-challenge-Dg8XkStd.js +1101 -0
- package/dist/chunks/go-cardless-CuND59rR.js +26 -0
- package/dist/chunks/google-address--uR8WDSm.js +208 -0
- package/dist/chunks/hcaptcha-CmaFUesv.js +72 -0
- package/dist/chunks/hidden-CYnZYple.js +36 -0
- package/dist/chunks/http-18nn97DZ.js +29 -0
- package/dist/chunks/i18n-vUh-KGiH.js +55 -0
- package/dist/chunks/loqate-BICNJlVK.js +97 -0
- package/dist/chunks/mollie-DwlsgHZ1.js +26 -0
- package/dist/chunks/moneris-B_IFZFTx.js +159 -0
- package/dist/chunks/opayo-U2x_TOII.js +192 -0
- package/dist/chunks/paddle-BqXFrc79.js +75 -0
- package/dist/chunks/paypal-Cn_DYGDb.js +121 -0
- package/dist/chunks/payway-Rnq796eC.js +75 -0
- package/dist/chunks/phone-country-B6Me4lK0.js +3317 -0
- package/dist/chunks/place-kit-ldUl-u9w.js +56 -0
- package/dist/chunks/placekit-autocomplete.esm-D-lGeaZl.js +1771 -0
- package/dist/chunks/recaptcha-enterprise-DPJNyv1X.js +72 -0
- package/dist/chunks/recaptcha-shared-DTI4qWVR.js +22 -0
- package/dist/chunks/recaptcha-v2-checkbox-zFjpvJ5c.js +49 -0
- package/dist/chunks/recaptcha-v2-invisible-CnYtkNvz.js +62 -0
- package/dist/chunks/recaptcha-v3-EAlWhnkX.js +33 -0
- package/dist/chunks/repeater-CXD1eLSn.js +151 -0
- package/dist/chunks/rich-text-DkmZRhGj.js +442 -0
- package/dist/chunks/scripts-BGD_iU_6.js +41 -0
- package/dist/chunks/sdk-B7u9fTlP.js +2103 -0
- package/dist/chunks/shared-DC6_1u8X.js +85 -0
- package/dist/chunks/signature-E9KyYXS1.js +765 -0
- package/dist/chunks/snaptcha-CCDunGeb.js +8 -0
- package/dist/chunks/square-BLqK51rS.js +61 -0
- package/dist/chunks/stripe-B8gHpZNC.js +273 -0
- package/dist/chunks/styles-BIh6g7V_.js +22 -0
- package/dist/chunks/summary-EcNE0cvg.js +191 -0
- package/dist/chunks/table-yxEDL6kA.js +124 -0
- package/dist/chunks/text-limit-D0H_Ca2c.js +179 -0
- package/dist/chunks/theme-classes-vSHpdCUO.js +59 -0
- package/dist/chunks/turnstile-DP0bdR7T.js +68 -0
- package/dist/chunks/utils-ByrEVYrJ.js +49584 -0
- package/dist/css/formie-base.css +78 -0
- package/dist/css/formie-theme.css +19 -0
- package/dist/css/formie.css +2 -0
- package/dist/css/theme/_buttons.css +249 -0
- package/dist/css/theme/_loading.css +37 -0
- package/dist/css/theme/_messages.css +39 -0
- package/dist/css/theme/_progress.css +62 -0
- package/dist/css/theme/_tokens.css +361 -0
- package/dist/css/theme/_typography.css +70 -0
- package/dist/css/theme/fields/_address.css +17 -0
- package/dist/css/theme/fields/_check-radio.css +108 -0
- package/dist/css/theme/fields/_file.css +58 -0
- package/dist/css/theme/fields/_group.css +13 -0
- package/dist/css/theme/fields/_input.css +48 -0
- package/dist/css/theme/fields/_nested.css +19 -0
- package/dist/css/theme/fields/_repeater.css +69 -0
- package/dist/css/theme/fields/_rich-text.css +201 -0
- package/dist/css/theme/fields/_select.css +37 -0
- package/dist/css/theme/fields/_signature.css +39 -0
- package/dist/css/theme/fields/_summary.css +53 -0
- package/dist/css/theme/fields/_table.css +121 -0
- package/dist/css/theme/fields/_text-limit.css +10 -0
- package/dist/css/theme/forms/_field.css +62 -0
- package/dist/css/theme/forms/_form.css +166 -0
- package/dist/css/theme/integrations/_payment-modal.css +32 -0
- package/dist/css/theme/integrations/_paypal.css +10 -0
- package/dist/css/theme/integrations/_payway.css +10 -0
- package/dist/css/theme/integrations/_stripe.css +24 -0
- package/dist/css/theme/utilities/_accessibility.css +13 -0
- package/dist/css/theme-base/_controls.css +41 -0
- package/dist/css/theme-base/_primitives.css +34 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3206 -0
- package/dist/js/compatibility/dom-adapter.d.ts +12 -0
- package/dist/js/compatibility/dom-adapter.d.ts.map +1 -0
- package/dist/js/compatibility/event-map.d.ts +25 -0
- package/dist/js/compatibility/event-map.d.ts.map +1 -0
- package/dist/js/compatibility/validator-adapter.d.ts +17 -0
- package/dist/js/compatibility/validator-adapter.d.ts.map +1 -0
- package/dist/js/contracts/client.d.ts +40 -0
- package/dist/js/contracts/client.d.ts.map +1 -0
- package/dist/js/contracts/common.d.ts +5 -0
- package/dist/js/contracts/common.d.ts.map +1 -0
- package/dist/js/contracts/modules.d.ts +47 -0
- package/dist/js/contracts/modules.d.ts.map +1 -0
- package/dist/js/contracts/schema.d.ts +79 -0
- package/dist/js/contracts/schema.d.ts.map +1 -0
- package/dist/js/contracts/theme.d.ts +2 -0
- package/dist/js/contracts/theme.d.ts.map +1 -0
- package/dist/js/core/create-formie-client.d.ts +3 -0
- package/dist/js/core/create-formie-client.d.ts.map +1 -0
- package/dist/js/core/dom-events.d.ts +2 -0
- package/dist/js/core/dom-events.d.ts.map +1 -0
- package/dist/js/core/formie.d.ts +27 -0
- package/dist/js/core/formie.d.ts.map +1 -0
- package/dist/js/core/hydrate-modules.d.ts +22 -0
- package/dist/js/core/hydrate-modules.d.ts.map +1 -0
- package/dist/js/core/page-client-event.d.ts +9 -0
- package/dist/js/core/page-client-event.d.ts.map +1 -0
- package/dist/js/core/page-tab-errors.d.ts +2 -0
- package/dist/js/core/page-tab-errors.d.ts.map +1 -0
- package/dist/js/core/submit-flow.d.ts +21 -0
- package/dist/js/core/submit-flow.d.ts.map +1 -0
- package/dist/js/core/submit-result-state.d.ts +8 -0
- package/dist/js/core/submit-result-state.d.ts.map +1 -0
- package/dist/js/core/submit-result-ui.d.ts +10 -0
- package/dist/js/core/submit-result-ui.d.ts.map +1 -0
- package/dist/js/events/event-bus.d.ts +21 -0
- package/dist/js/events/event-bus.d.ts.map +1 -0
- package/dist/js/modules/address/address-finder.d.ts +2 -0
- package/dist/js/modules/address/address-finder.d.ts.map +1 -0
- package/dist/js/modules/address/api.d.ts +8 -0
- package/dist/js/modules/address/api.d.ts.map +1 -0
- package/dist/js/modules/address/constants.d.ts +15 -0
- package/dist/js/modules/address/constants.d.ts.map +1 -0
- package/dist/js/modules/address/factories.d.ts +35 -0
- package/dist/js/modules/address/factories.d.ts.map +1 -0
- package/dist/js/modules/address/google-address.d.ts +2 -0
- package/dist/js/modules/address/google-address.d.ts.map +1 -0
- package/dist/js/modules/address/host.d.ts +30 -0
- package/dist/js/modules/address/host.d.ts.map +1 -0
- package/dist/js/modules/address/index.d.ts +3 -0
- package/dist/js/modules/address/index.d.ts.map +1 -0
- package/dist/js/modules/address/loqate.d.ts +2 -0
- package/dist/js/modules/address/loqate.d.ts.map +1 -0
- package/dist/js/modules/address/place-kit.d.ts +2 -0
- package/dist/js/modules/address/place-kit.d.ts.map +1 -0
- package/dist/js/modules/captchas/api.d.ts +9 -0
- package/dist/js/modules/captchas/api.d.ts.map +1 -0
- package/dist/js/modules/captchas/captcha-eu.d.ts +2 -0
- package/dist/js/modules/captchas/captcha-eu.d.ts.map +1 -0
- package/dist/js/modules/captchas/constants.d.ts +5 -0
- package/dist/js/modules/captchas/constants.d.ts.map +1 -0
- package/dist/js/modules/captchas/factories.d.ts +63 -0
- package/dist/js/modules/captchas/factories.d.ts.map +1 -0
- package/dist/js/modules/captchas/friendly-captcha-v1.d.ts +2 -0
- package/dist/js/modules/captchas/friendly-captcha-v1.d.ts.map +1 -0
- package/dist/js/modules/captchas/friendly-captcha-v2.d.ts +2 -0
- package/dist/js/modules/captchas/friendly-captcha-v2.d.ts.map +1 -0
- package/dist/js/modules/captchas/hcaptcha.d.ts +2 -0
- package/dist/js/modules/captchas/hcaptcha.d.ts.map +1 -0
- package/dist/js/modules/captchas/host.d.ts +78 -0
- package/dist/js/modules/captchas/host.d.ts.map +1 -0
- package/dist/js/modules/captchas/index.d.ts +3 -0
- package/dist/js/modules/captchas/index.d.ts.map +1 -0
- package/dist/js/modules/captchas/recaptcha-enterprise.d.ts +2 -0
- package/dist/js/modules/captchas/recaptcha-enterprise.d.ts.map +1 -0
- package/dist/js/modules/captchas/recaptcha-shared.d.ts +26 -0
- package/dist/js/modules/captchas/recaptcha-shared.d.ts.map +1 -0
- package/dist/js/modules/captchas/recaptcha-v2-checkbox.d.ts +2 -0
- package/dist/js/modules/captchas/recaptcha-v2-checkbox.d.ts.map +1 -0
- package/dist/js/modules/captchas/recaptcha-v2-invisible.d.ts +2 -0
- package/dist/js/modules/captchas/recaptcha-v2-invisible.d.ts.map +1 -0
- package/dist/js/modules/captchas/recaptcha-v3.d.ts +2 -0
- package/dist/js/modules/captchas/recaptcha-v3.d.ts.map +1 -0
- package/dist/js/modules/captchas/snaptcha.d.ts +2 -0
- package/dist/js/modules/captchas/snaptcha.d.ts.map +1 -0
- package/dist/js/modules/captchas/turnstile.d.ts +2 -0
- package/dist/js/modules/captchas/turnstile.d.ts.map +1 -0
- package/dist/js/modules/captchas/utils.d.ts +13 -0
- package/dist/js/modules/captchas/utils.d.ts.map +1 -0
- package/dist/js/modules/fields/calculations.d.ts +3 -0
- package/dist/js/modules/fields/calculations.d.ts.map +1 -0
- package/dist/js/modules/fields/checkbox-radio.d.ts +3 -0
- package/dist/js/modules/fields/checkbox-radio.d.ts.map +1 -0
- package/dist/js/modules/fields/conditions/config.d.ts +5 -0
- package/dist/js/modules/fields/conditions/config.d.ts.map +1 -0
- package/dist/js/modules/fields/conditions/effects.d.ts +2 -0
- package/dist/js/modules/fields/conditions/effects.d.ts.map +1 -0
- package/dist/js/modules/fields/conditions/evaluator.d.ts +6 -0
- package/dist/js/modules/fields/conditions/evaluator.d.ts.map +1 -0
- package/dist/js/modules/fields/conditions/references.d.ts +5 -0
- package/dist/js/modules/fields/conditions/references.d.ts.map +1 -0
- package/dist/js/modules/fields/conditions/transforms.d.ts +3 -0
- package/dist/js/modules/fields/conditions/transforms.d.ts.map +1 -0
- package/dist/js/modules/fields/conditions/types.d.ts +30 -0
- package/dist/js/modules/fields/conditions/types.d.ts.map +1 -0
- package/dist/js/modules/fields/conditions/values.d.ts +5 -0
- package/dist/js/modules/fields/conditions/values.d.ts.map +1 -0
- package/dist/js/modules/fields/conditions.d.ts +3 -0
- package/dist/js/modules/fields/conditions.d.ts.map +1 -0
- package/dist/js/modules/fields/date-picker.d.ts +3 -0
- package/dist/js/modules/fields/date-picker.d.ts.map +1 -0
- package/dist/js/modules/fields/file-upload.d.ts +3 -0
- package/dist/js/modules/fields/file-upload.d.ts.map +1 -0
- package/dist/js/modules/fields/hidden.d.ts +3 -0
- package/dist/js/modules/fields/hidden.d.ts.map +1 -0
- package/dist/js/modules/fields/index.d.ts +3 -0
- package/dist/js/modules/fields/index.d.ts.map +1 -0
- package/dist/js/modules/fields/phone-country.d.ts +3 -0
- package/dist/js/modules/fields/phone-country.d.ts.map +1 -0
- package/dist/js/modules/fields/repeater.d.ts +3 -0
- package/dist/js/modules/fields/repeater.d.ts.map +1 -0
- package/dist/js/modules/fields/rich-text.d.ts +3 -0
- package/dist/js/modules/fields/rich-text.d.ts.map +1 -0
- package/dist/js/modules/fields/shared.d.ts +20 -0
- package/dist/js/modules/fields/shared.d.ts.map +1 -0
- package/dist/js/modules/fields/signature.d.ts +3 -0
- package/dist/js/modules/fields/signature.d.ts.map +1 -0
- package/dist/js/modules/fields/summary.d.ts +3 -0
- package/dist/js/modules/fields/summary.d.ts.map +1 -0
- package/dist/js/modules/fields/table.d.ts +3 -0
- package/dist/js/modules/fields/table.d.ts.map +1 -0
- package/dist/js/modules/fields/text-limit.d.ts +3 -0
- package/dist/js/modules/fields/text-limit.d.ts.map +1 -0
- package/dist/js/modules/loader.d.ts +11 -0
- package/dist/js/modules/loader.d.ts.map +1 -0
- package/dist/js/modules/payments/api.d.ts +8 -0
- package/dist/js/modules/payments/api.d.ts.map +1 -0
- package/dist/js/modules/payments/bpoint.d.ts +2 -0
- package/dist/js/modules/payments/bpoint.d.ts.map +1 -0
- package/dist/js/modules/payments/constants.d.ts +5 -0
- package/dist/js/modules/payments/constants.d.ts.map +1 -0
- package/dist/js/modules/payments/eway.d.ts +9 -0
- package/dist/js/modules/payments/eway.d.ts.map +1 -0
- package/dist/js/modules/payments/factories.d.ts +54 -0
- package/dist/js/modules/payments/factories.d.ts.map +1 -0
- package/dist/js/modules/payments/go-cardless.d.ts +2 -0
- package/dist/js/modules/payments/go-cardless.d.ts.map +1 -0
- package/dist/js/modules/payments/host.d.ts +70 -0
- package/dist/js/modules/payments/host.d.ts.map +1 -0
- package/dist/js/modules/payments/index.d.ts +3 -0
- package/dist/js/modules/payments/index.d.ts.map +1 -0
- package/dist/js/modules/payments/mollie.d.ts +2 -0
- package/dist/js/modules/payments/mollie.d.ts.map +1 -0
- package/dist/js/modules/payments/moneris.d.ts +2 -0
- package/dist/js/modules/payments/moneris.d.ts.map +1 -0
- package/dist/js/modules/payments/opayo.d.ts +25 -0
- package/dist/js/modules/payments/opayo.d.ts.map +1 -0
- package/dist/js/modules/payments/paddle.d.ts +2 -0
- package/dist/js/modules/payments/paddle.d.ts.map +1 -0
- package/dist/js/modules/payments/paypal.d.ts +2 -0
- package/dist/js/modules/payments/paypal.d.ts.map +1 -0
- package/dist/js/modules/payments/payway.d.ts +2 -0
- package/dist/js/modules/payments/payway.d.ts.map +1 -0
- package/dist/js/modules/payments/square.d.ts +2 -0
- package/dist/js/modules/payments/square.d.ts.map +1 -0
- package/dist/js/modules/payments/stripe.d.ts +2 -0
- package/dist/js/modules/payments/stripe.d.ts.map +1 -0
- package/dist/js/modules/payments/utils.d.ts +17 -0
- package/dist/js/modules/payments/utils.d.ts.map +1 -0
- package/dist/js/modules/registry.d.ts +9 -0
- package/dist/js/modules/registry.d.ts.map +1 -0
- package/dist/js/modules/styles.d.ts +2 -0
- package/dist/js/modules/styles.d.ts.map +1 -0
- package/dist/js/submit/pipeline.d.ts +18 -0
- package/dist/js/submit/pipeline.d.ts.map +1 -0
- package/dist/js/theme/theme-classes.d.ts +10 -0
- package/dist/js/theme/theme-classes.d.ts.map +1 -0
- package/dist/js/transport/forms-api.d.ts +11 -0
- package/dist/js/transport/forms-api.d.ts.map +1 -0
- package/dist/js/utils/async.d.ts +8 -0
- package/dist/js/utils/async.d.ts.map +1 -0
- package/dist/js/utils/debug.d.ts +10 -0
- package/dist/js/utils/debug.d.ts.map +1 -0
- package/dist/js/utils/event-names.d.ts +13 -0
- package/dist/js/utils/event-names.d.ts.map +1 -0
- package/dist/js/utils/field-references.d.ts +6 -0
- package/dist/js/utils/field-references.d.ts.map +1 -0
- package/dist/js/utils/field-references.keys.d.ts +4 -0
- package/dist/js/utils/field-references.keys.d.ts.map +1 -0
- package/dist/js/utils/field-references.parser.d.ts +3 -0
- package/dist/js/utils/field-references.parser.d.ts.map +1 -0
- package/dist/js/utils/field-references.registry.d.ts +3 -0
- package/dist/js/utils/field-references.registry.d.ts.map +1 -0
- package/dist/js/utils/field-references.resolver.d.ts +4 -0
- package/dist/js/utils/field-references.resolver.d.ts.map +1 -0
- package/dist/js/utils/field-references.types.d.ts +27 -0
- package/dist/js/utils/field-references.types.d.ts.map +1 -0
- package/dist/js/utils/fields.d.ts +5 -0
- package/dist/js/utils/fields.d.ts.map +1 -0
- package/dist/js/utils/http.d.ts +9 -0
- package/dist/js/utils/http.d.ts.map +1 -0
- package/dist/js/utils/i18n.d.ts +7 -0
- package/dist/js/utils/i18n.d.ts.map +1 -0
- package/dist/js/utils/scripts.d.ts +13 -0
- package/dist/js/utils/scripts.d.ts.map +1 -0
- package/dist/js/utils/unload-warning.d.ts +10 -0
- package/dist/js/utils/unload-warning.d.ts.map +1 -0
- package/dist/js/validation/rules/email.d.ts +4 -0
- package/dist/js/validation/rules/email.d.ts.map +1 -0
- package/dist/js/validation/rules/match.d.ts +4 -0
- package/dist/js/validation/rules/match.d.ts.map +1 -0
- package/dist/js/validation/rules/number.d.ts +4 -0
- package/dist/js/validation/rules/number.d.ts.map +1 -0
- package/dist/js/validation/rules/required.d.ts +4 -0
- package/dist/js/validation/rules/required.d.ts.map +1 -0
- package/dist/js/validation/rules/shared.d.ts +7 -0
- package/dist/js/validation/rules/shared.d.ts.map +1 -0
- package/dist/js/validation/rules/url.d.ts +4 -0
- package/dist/js/validation/rules/url.d.ts.map +1 -0
- package/dist/js/validation/rules.d.ts +10 -0
- package/dist/js/validation/rules.d.ts.map +1 -0
- package/dist/js/validation/types.d.ts +44 -0
- package/dist/js/validation/types.d.ts.map +1 -0
- package/dist/js/validation/validator.d.ts +53 -0
- package/dist/js/validation/validator.d.ts.map +1 -0
- package/package.json +78 -0
- package/src/css/formie-base.css +78 -0
- package/src/css/formie-theme.css +19 -0
- package/src/css/formie.css +2 -0
- package/src/css/theme/_buttons.css +249 -0
- package/src/css/theme/_loading.css +37 -0
- package/src/css/theme/_messages.css +39 -0
- package/src/css/theme/_progress.css +62 -0
- package/src/css/theme/_tokens.css +361 -0
- package/src/css/theme/_typography.css +70 -0
- package/src/css/theme/fields/_address.css +17 -0
- package/src/css/theme/fields/_check-radio.css +108 -0
- package/src/css/theme/fields/_file.css +58 -0
- package/src/css/theme/fields/_group.css +13 -0
- package/src/css/theme/fields/_input.css +48 -0
- package/src/css/theme/fields/_nested.css +19 -0
- package/src/css/theme/fields/_repeater.css +69 -0
- package/src/css/theme/fields/_rich-text.css +201 -0
- package/src/css/theme/fields/_select.css +37 -0
- package/src/css/theme/fields/_signature.css +39 -0
- package/src/css/theme/fields/_summary.css +53 -0
- package/src/css/theme/fields/_table.css +121 -0
- package/src/css/theme/fields/_text-limit.css +10 -0
- package/src/css/theme/forms/_field.css +62 -0
- package/src/css/theme/forms/_form.css +166 -0
- package/src/css/theme/integrations/_payment-modal.css +32 -0
- package/src/css/theme/integrations/_paypal.css +10 -0
- package/src/css/theme/integrations/_payway.css +10 -0
- package/src/css/theme/integrations/_stripe.css +24 -0
- package/src/css/theme/utilities/_accessibility.css +13 -0
- package/src/css/theme-base/_controls.css +41 -0
- package/src/css/theme-base/_primitives.css +34 -0
- package/src/icons/rich-text/aligncenter.svg +6 -0
- package/src/icons/rich-text/alignleft.svg +6 -0
- package/src/icons/rich-text/alignright.svg +6 -0
- package/src/icons/rich-text/bold.svg +4 -0
- package/src/icons/rich-text/clear.svg +6 -0
- package/src/icons/rich-text/code.svg +4 -0
- package/src/icons/rich-text/heading1.svg +3 -0
- package/src/icons/rich-text/heading2.svg +3 -0
- package/src/icons/rich-text/image.svg +6 -0
- package/src/icons/rich-text/italic.svg +5 -0
- package/src/icons/rich-text/line.svg +3 -0
- package/src/icons/rich-text/link.svg +4 -0
- package/src/icons/rich-text/olist.svg +8 -0
- package/src/icons/rich-text/paragraph.svg +3 -0
- package/src/icons/rich-text/quote.svg +4 -0
- package/src/icons/rich-text/strikethrough.svg +4 -0
- package/src/icons/rich-text/ulist.svg +8 -0
- package/src/icons/rich-text/underline.svg +4 -0
- package/src/index.ts +125 -0
- package/src/js/compatibility/dom-adapter.ts +129 -0
- package/src/js/compatibility/event-map.ts +72 -0
- package/src/js/compatibility/validator-adapter.ts +105 -0
- package/src/js/contracts/client.ts +43 -0
- package/src/js/contracts/common.ts +14 -0
- package/src/js/contracts/modules.ts +53 -0
- package/src/js/contracts/schema.ts +83 -0
- package/src/js/contracts/theme.ts +1 -0
- package/src/js/core/create-formie-client.ts +1519 -0
- package/src/js/core/dom-events.ts +8 -0
- package/src/js/core/formie.ts +242 -0
- package/src/js/core/hydrate-modules.ts +102 -0
- package/src/js/core/page-client-event.ts +129 -0
- package/src/js/core/page-tab-errors.ts +37 -0
- package/src/js/core/submit-flow.ts +120 -0
- package/src/js/core/submit-result-state.ts +597 -0
- package/src/js/core/submit-result-ui.ts +448 -0
- package/src/js/events/event-bus.ts +109 -0
- package/src/js/modules/address/address-finder.ts +85 -0
- package/src/js/modules/address/api.ts +22 -0
- package/src/js/modules/address/constants.ts +15 -0
- package/src/js/modules/address/factories.ts +203 -0
- package/src/js/modules/address/google-address.ts +345 -0
- package/src/js/modules/address/host.ts +137 -0
- package/src/js/modules/address/index.ts +10 -0
- package/src/js/modules/address/loqate.ts +128 -0
- package/src/js/modules/address/place-kit.ts +94 -0
- package/src/js/modules/captchas/api.ts +25 -0
- package/src/js/modules/captchas/captcha-eu.ts +86 -0
- package/src/js/modules/captchas/constants.ts +4 -0
- package/src/js/modules/captchas/factories.ts +485 -0
- package/src/js/modules/captchas/friendly-captcha-v1.ts +65 -0
- package/src/js/modules/captchas/friendly-captcha-v2.ts +84 -0
- package/src/js/modules/captchas/hcaptcha.ts +153 -0
- package/src/js/modules/captchas/host.ts +448 -0
- package/src/js/modules/captchas/index.ts +16 -0
- package/src/js/modules/captchas/recaptcha-enterprise.ts +138 -0
- package/src/js/modules/captchas/recaptcha-shared.ts +69 -0
- package/src/js/modules/captchas/recaptcha-v2-checkbox.ts +72 -0
- package/src/js/modules/captchas/recaptcha-v2-invisible.ts +108 -0
- package/src/js/modules/captchas/recaptcha-v3.ts +62 -0
- package/src/js/modules/captchas/snaptcha.ts +10 -0
- package/src/js/modules/captchas/turnstile.ts +131 -0
- package/src/js/modules/captchas/utils.ts +85 -0
- package/src/js/modules/fields/calculations.ts +273 -0
- package/src/js/modules/fields/checkbox-radio.ts +295 -0
- package/src/js/modules/fields/conditions/config.ts +79 -0
- package/src/js/modules/fields/conditions/effects.ts +166 -0
- package/src/js/modules/fields/conditions/evaluator.ts +44 -0
- package/src/js/modules/fields/conditions/references.ts +165 -0
- package/src/js/modules/fields/conditions/transforms.ts +206 -0
- package/src/js/modules/fields/conditions/types.ts +33 -0
- package/src/js/modules/fields/conditions/values.ts +115 -0
- package/src/js/modules/fields/conditions.ts +229 -0
- package/src/js/modules/fields/date-picker.ts +272 -0
- package/src/js/modules/fields/file-upload.ts +628 -0
- package/src/js/modules/fields/hidden.ts +58 -0
- package/src/js/modules/fields/index.ts +19 -0
- package/src/js/modules/fields/phone-country.ts +226 -0
- package/src/js/modules/fields/repeater.ts +231 -0
- package/src/js/modules/fields/rich-text.ts +217 -0
- package/src/js/modules/fields/shared.ts +238 -0
- package/src/js/modules/fields/signature.ts +202 -0
- package/src/js/modules/fields/summary.ts +272 -0
- package/src/js/modules/fields/table.ts +197 -0
- package/src/js/modules/fields/text-limit.ts +280 -0
- package/src/js/modules/loader.ts +331 -0
- package/src/js/modules/payments/api.ts +20 -0
- package/src/js/modules/payments/bpoint.ts +48 -0
- package/src/js/modules/payments/constants.ts +17 -0
- package/src/js/modules/payments/eway.ts +132 -0
- package/src/js/modules/payments/factories.ts +332 -0
- package/src/js/modules/payments/go-cardless.ts +37 -0
- package/src/js/modules/payments/host.ts +459 -0
- package/src/js/modules/payments/index.ts +17 -0
- package/src/js/modules/payments/mollie.ts +38 -0
- package/src/js/modules/payments/moneris.ts +216 -0
- package/src/js/modules/payments/opayo.ts +272 -0
- package/src/js/modules/payments/paddle.ts +111 -0
- package/src/js/modules/payments/payment.ts +183 -0
- package/src/js/modules/payments/paypal.ts +214 -0
- package/src/js/modules/payments/payway.ts +114 -0
- package/src/js/modules/payments/square.ts +106 -0
- package/src/js/modules/payments/stripe.ts +426 -0
- package/src/js/modules/payments/stub-payment-module.ts +87 -0
- package/src/js/modules/payments/utils.ts +60 -0
- package/src/js/modules/registry.ts +38 -0
- package/src/js/modules/styles.ts +29 -0
- package/src/js/submit/pipeline.ts +514 -0
- package/src/js/theme/theme-classes.ts +106 -0
- package/src/js/transport/forms-api.ts +345 -0
- package/src/js/utils/async.ts +81 -0
- package/src/js/utils/debug.ts +59 -0
- package/src/js/utils/event-names.ts +60 -0
- package/src/js/utils/field-references.keys.ts +47 -0
- package/src/js/utils/field-references.parser.ts +121 -0
- package/src/js/utils/field-references.registry.ts +50 -0
- package/src/js/utils/field-references.resolver.ts +115 -0
- package/src/js/utils/field-references.ts +11 -0
- package/src/js/utils/field-references.types.ts +31 -0
- package/src/js/utils/fields.ts +58 -0
- package/src/js/utils/http.ts +51 -0
- package/src/js/utils/i18n.ts +98 -0
- package/src/js/utils/scripts.ts +84 -0
- package/src/js/utils/unload-warning.ts +190 -0
- package/src/js/validation/rules/email.ts +18 -0
- package/src/js/validation/rules/match.ts +26 -0
- package/src/js/validation/rules/minmax.ts +47 -0
- package/src/js/validation/rules/number.ts +55 -0
- package/src/js/validation/rules/pattern.ts +29 -0
- package/src/js/validation/rules/required.ts +30 -0
- package/src/js/validation/rules/shared.ts +47 -0
- package/src/js/validation/rules/url.ts +23 -0
- package/src/js/validation/rules.ts +16 -0
- package/src/js/validation/types.ts +50 -0
- package/src/js/validation/validator.ts +643 -0
- package/src/vendor.d.ts +100 -0
- package/src/vite-env.d.ts +22 -0
- package/vite-dev.mjs +22 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { s as getPaymentProviderActionEventName } from "./event-names-DamGPtXR.js";
|
|
2
|
+
import { t as definePaymentModule } from "./api-DE7LfK-R.js";
|
|
3
|
+
//#region src/js/modules/payments/go-cardless.ts
|
|
4
|
+
/** Event name from PHP addSubmitData – dispatched on form when backend returns GoCardless redirect URL */
|
|
5
|
+
var REDIRECT_EVENT = getPaymentProviderActionEventName("go-cardless", "redirect");
|
|
6
|
+
var goCardlessModule = definePaymentModule({
|
|
7
|
+
id: "go-cardless",
|
|
8
|
+
defaultRequiredInputSuffixes: [],
|
|
9
|
+
load: async () => null,
|
|
10
|
+
setup: async ({ services, root }) => {
|
|
11
|
+
const handler = (event) => {
|
|
12
|
+
const data = event.detail?.data;
|
|
13
|
+
if (!data?.redirectUrl) {
|
|
14
|
+
services.addError("Missing GoCardless redirect URL.");
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
window.location.href = data.redirectUrl;
|
|
18
|
+
};
|
|
19
|
+
root.addEventListener(REDIRECT_EVENT, handler);
|
|
20
|
+
return { destroy: () => {
|
|
21
|
+
root.removeEventListener(REDIRECT_EVENT, handler);
|
|
22
|
+
} };
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
//#endregion
|
|
26
|
+
export { goCardlessModule };
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import { n as getAddressProviderEventName } from "./event-names-DamGPtXR.js";
|
|
2
|
+
import { t as defineAddressModule } from "./api-CbqEMQT5.js";
|
|
3
|
+
import { n as loadExternalScript, t as ensureGlobal } from "./scripts-BGD_iU_6.js";
|
|
4
|
+
//#region src/js/modules/address/google-address.ts
|
|
5
|
+
var SCRIPT_ID = "FORMIE_GOOGLE_ADDRESS_SCRIPT";
|
|
6
|
+
var CALLBACK_NAME = "formieGoogleMapsReady";
|
|
7
|
+
var loadPromise = null;
|
|
8
|
+
/** Load Google Maps with callback; required when using loading=async. */
|
|
9
|
+
async function loadGoogleMapsScript(apiKey) {
|
|
10
|
+
const w = window;
|
|
11
|
+
const existing = w.google;
|
|
12
|
+
if (typeof existing !== "undefined" && existing !== null) {
|
|
13
|
+
const maps = existing.maps;
|
|
14
|
+
if (maps?.places?.PlaceAutocompleteElement) return existing;
|
|
15
|
+
const imp = maps;
|
|
16
|
+
if (typeof imp?.importLibrary === "function") await imp.importLibrary("places");
|
|
17
|
+
return existing;
|
|
18
|
+
}
|
|
19
|
+
if (loadPromise) return loadPromise;
|
|
20
|
+
if (document.getElementById(SCRIPT_ID)) {
|
|
21
|
+
const google = await ensureGlobal("google", 1e4);
|
|
22
|
+
const maps = google?.maps;
|
|
23
|
+
if (typeof maps?.importLibrary === "function") await maps.importLibrary("places");
|
|
24
|
+
return google;
|
|
25
|
+
}
|
|
26
|
+
const url = new URL("https://maps.googleapis.com/maps/api/js");
|
|
27
|
+
url.searchParams.set("key", apiKey);
|
|
28
|
+
url.searchParams.set("loading", "async");
|
|
29
|
+
url.searchParams.set("libraries", "places");
|
|
30
|
+
url.searchParams.set("callback", CALLBACK_NAME);
|
|
31
|
+
loadPromise = (async () => {
|
|
32
|
+
const ready = new Promise((resolve, reject) => {
|
|
33
|
+
const t = setTimeout(() => {
|
|
34
|
+
if (w[CALLBACK_NAME]) {
|
|
35
|
+
delete w[CALLBACK_NAME];
|
|
36
|
+
reject(/* @__PURE__ */ new Error("Google Maps API load timeout"));
|
|
37
|
+
}
|
|
38
|
+
}, 15e3);
|
|
39
|
+
w[CALLBACK_NAME] = () => {
|
|
40
|
+
clearTimeout(t);
|
|
41
|
+
delete w[CALLBACK_NAME];
|
|
42
|
+
resolve(w.google);
|
|
43
|
+
};
|
|
44
|
+
});
|
|
45
|
+
await loadExternalScript({
|
|
46
|
+
id: SCRIPT_ID,
|
|
47
|
+
src: url.toString(),
|
|
48
|
+
async: true,
|
|
49
|
+
defer: true
|
|
50
|
+
});
|
|
51
|
+
const google = await ready;
|
|
52
|
+
const maps = google?.maps;
|
|
53
|
+
if (typeof maps?.importLibrary === "function") await maps.importLibrary("places");
|
|
54
|
+
return google;
|
|
55
|
+
})();
|
|
56
|
+
try {
|
|
57
|
+
return await loadPromise;
|
|
58
|
+
} catch (e) {
|
|
59
|
+
loadPromise = null;
|
|
60
|
+
throw e;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
function setFieldValues(services, data) {
|
|
64
|
+
if (data.formattedAddress) services.input.setValue("autoComplete", data.formattedAddress);
|
|
65
|
+
if (data.address1) services.input.setValue("address1", data.address1);
|
|
66
|
+
if (data.city !== void 0) services.input.setValue("city", data.city);
|
|
67
|
+
if (data.state !== void 0) services.input.setValue("state", data.state);
|
|
68
|
+
if (data.zip !== void 0) services.input.setValue("zip", data.zip);
|
|
69
|
+
if (data.country !== void 0) services.input.setValue("country", data.country);
|
|
70
|
+
}
|
|
71
|
+
function componentMap() {
|
|
72
|
+
return {
|
|
73
|
+
subpremise: "shortText",
|
|
74
|
+
street_number: "shortText",
|
|
75
|
+
route: "longText",
|
|
76
|
+
postal_town: "longText",
|
|
77
|
+
locality: "longText",
|
|
78
|
+
administrative_area_level_1: "shortText",
|
|
79
|
+
country: "shortText",
|
|
80
|
+
postal_code: "shortText"
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
function parseAddressComponents(components) {
|
|
84
|
+
const map = componentMap();
|
|
85
|
+
const out = {};
|
|
86
|
+
for (const comp of components) {
|
|
87
|
+
const type = comp.types?.[0];
|
|
88
|
+
if (!type || !map[type]) continue;
|
|
89
|
+
out[type] = comp[map[type]] ?? comp.short_text ?? comp.long_text ?? "";
|
|
90
|
+
}
|
|
91
|
+
return out;
|
|
92
|
+
}
|
|
93
|
+
function buildAddressFromComponents(formData) {
|
|
94
|
+
let address1 = "";
|
|
95
|
+
if (formData.street_number || formData.route) {
|
|
96
|
+
address1 = [formData.street_number, formData.route].filter(Boolean).join(" ");
|
|
97
|
+
if (formData.subpremise) address1 = `${formData.subpremise}/${address1}`;
|
|
98
|
+
}
|
|
99
|
+
return {
|
|
100
|
+
address1,
|
|
101
|
+
city: formData.locality || formData.postal_town || "",
|
|
102
|
+
state: formData.administrative_area_level_1 || "",
|
|
103
|
+
zip: formData.postal_code || "",
|
|
104
|
+
country: formData.country || ""
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
var googleAddressModule = defineAddressModule({
|
|
108
|
+
id: "google-address",
|
|
109
|
+
load: async ({ options }) => {
|
|
110
|
+
const apiKey = options.provider.apiKey;
|
|
111
|
+
if (!apiKey) throw new Error("Google Places API key is required");
|
|
112
|
+
return loadGoogleMapsScript(apiKey);
|
|
113
|
+
},
|
|
114
|
+
mount: async ({ api, field, services, provider }) => {
|
|
115
|
+
const input = services.input.getAutocomplete();
|
|
116
|
+
const PlaceAutocompleteElement = api?.maps?.places?.PlaceAutocompleteElement;
|
|
117
|
+
if (!input || typeof PlaceAutocompleteElement !== "function") {
|
|
118
|
+
console.warn("[formie] Google Places API not ready; address autocomplete skipped.");
|
|
119
|
+
return null;
|
|
120
|
+
}
|
|
121
|
+
const autocomplete = new PlaceAutocompleteElement({
|
|
122
|
+
types: ["geocode"],
|
|
123
|
+
...provider.options || {}
|
|
124
|
+
});
|
|
125
|
+
const inputHeight = window.getComputedStyle(input).height;
|
|
126
|
+
autocomplete.style.height = inputHeight;
|
|
127
|
+
autocomplete.style.boxSizing = "border-box";
|
|
128
|
+
let wrapper = input.parentElement;
|
|
129
|
+
if (!wrapper?.classList.contains("formie-autocomplete-wrapper")) {
|
|
130
|
+
wrapper = document.createElement("div");
|
|
131
|
+
wrapper.classList.add("formie-autocomplete-wrapper");
|
|
132
|
+
input.parentNode?.insertBefore(wrapper, input);
|
|
133
|
+
wrapper.appendChild(input);
|
|
134
|
+
}
|
|
135
|
+
const savedValue = input.value;
|
|
136
|
+
if (savedValue) {
|
|
137
|
+
const overlay = document.createElement("div");
|
|
138
|
+
overlay.classList.add("formie-autocomplete-placeholder");
|
|
139
|
+
overlay.textContent = savedValue;
|
|
140
|
+
wrapper.style.position = "relative";
|
|
141
|
+
overlay.style.cssText = `
|
|
142
|
+
position: absolute; left: 0; top: 0; height: ${inputHeight};
|
|
143
|
+
line-height: ${inputHeight}; width: 100%; padding: 0 2.5rem;
|
|
144
|
+
pointer-events: none; color: #6B7280; font-size: 14px; z-index: 1;
|
|
145
|
+
`;
|
|
146
|
+
wrapper.appendChild(overlay);
|
|
147
|
+
autocomplete.addEventListener("focusin", () => {
|
|
148
|
+
overlay.style.display = "none";
|
|
149
|
+
});
|
|
150
|
+
autocomplete.addEventListener("focusout", () => {
|
|
151
|
+
if (input.value) overlay.style.display = "";
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
wrapper.replaceChild(autocomplete, input);
|
|
155
|
+
input.type = "hidden";
|
|
156
|
+
input.name = input.getAttribute("name") || "";
|
|
157
|
+
wrapper.appendChild(input);
|
|
158
|
+
const onSelect = async (ev) => {
|
|
159
|
+
const pred = ev.placePrediction;
|
|
160
|
+
if (!pred) return;
|
|
161
|
+
const place = await pred.toPlace();
|
|
162
|
+
await place.fetchFields({ fields: ["addressComponents", "formattedAddress"] });
|
|
163
|
+
if (!place.addressComponents) return;
|
|
164
|
+
setFieldValues(services, {
|
|
165
|
+
...buildAddressFromComponents(parseAddressComponents(place.addressComponents)),
|
|
166
|
+
formattedAddress: place.formattedAddress
|
|
167
|
+
});
|
|
168
|
+
field.dispatchEvent(new CustomEvent(getAddressProviderEventName("google", "populate"), {
|
|
169
|
+
bubbles: true,
|
|
170
|
+
detail: {
|
|
171
|
+
addressProvider: "google",
|
|
172
|
+
place,
|
|
173
|
+
formattedAddress: place.formattedAddress,
|
|
174
|
+
addressComponents: place.addressComponents
|
|
175
|
+
}
|
|
176
|
+
}));
|
|
177
|
+
};
|
|
178
|
+
autocomplete.addEventListener("gmp-select", onSelect);
|
|
179
|
+
return autocomplete;
|
|
180
|
+
},
|
|
181
|
+
onCurrentLocation: async (position, { field, services }) => {
|
|
182
|
+
const { latitude, longitude } = position.coords;
|
|
183
|
+
const form = services.form;
|
|
184
|
+
const actionUrl = form?.action || window.location.href;
|
|
185
|
+
const fieldHandle = field.getAttribute("data-formie-field-handle")?.trim();
|
|
186
|
+
const formHandle = (form?.querySelector("[name=\"handle\"]"))?.value?.trim();
|
|
187
|
+
if (!formHandle || !fieldHandle) return;
|
|
188
|
+
try {
|
|
189
|
+
const formData = new FormData();
|
|
190
|
+
formData.append("action", "formie/address/google-places-geocode");
|
|
191
|
+
formData.append("latlng", `${latitude},${longitude}`);
|
|
192
|
+
formData.append("handle", formHandle);
|
|
193
|
+
formData.append("fieldHandle", fieldHandle);
|
|
194
|
+
const data = await (await fetch(actionUrl, {
|
|
195
|
+
method: "POST",
|
|
196
|
+
body: formData,
|
|
197
|
+
credentials: "include",
|
|
198
|
+
headers: {
|
|
199
|
+
"X-Requested-With": "XMLHttpRequest",
|
|
200
|
+
Accept: "application/json"
|
|
201
|
+
}
|
|
202
|
+
})).json();
|
|
203
|
+
if (data?.results?.[0]?.address_components) setFieldValues(services, buildAddressFromComponents(parseAddressComponents(data.results[0].address_components)));
|
|
204
|
+
} catch {}
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
//#endregion
|
|
208
|
+
export { googleAddressModule };
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { a as CAPTCHA_PROVIDER_LOAD_TIMEOUT_MS, r as getScriptAttributes, t as defineCaptchaModule } from "./api-DOfDzYC_.js";
|
|
2
|
+
import { n as loadExternalScript, t as ensureGlobal } from "./scripts-BGD_iU_6.js";
|
|
3
|
+
//#region src/js/modules/captchas/hcaptcha.ts
|
|
4
|
+
async function loadHcaptchaGlobal(options) {
|
|
5
|
+
const language = typeof options.language === "string" && options.language.trim() !== "" ? options.language.trim() : "en";
|
|
6
|
+
const { async, defer } = getScriptAttributes(options.loadingMethod);
|
|
7
|
+
const callbackName = "FORMIE_HCAPTCHA_ONLOAD";
|
|
8
|
+
const globalWindow = window;
|
|
9
|
+
const existing = globalWindow.hcaptcha;
|
|
10
|
+
if (existing) return existing;
|
|
11
|
+
const callbackPromise = new Promise((resolve) => {
|
|
12
|
+
globalWindow[callbackName] = () => {
|
|
13
|
+
delete globalWindow[callbackName];
|
|
14
|
+
resolve();
|
|
15
|
+
};
|
|
16
|
+
});
|
|
17
|
+
await loadExternalScript({
|
|
18
|
+
id: "FORMIE_HCAPTCHA_SCRIPT",
|
|
19
|
+
src: `https://js.hcaptcha.com/1/api.js?recaptchacompat=off&render=explicit&onload=${encodeURIComponent(callbackName)}&hl=${encodeURIComponent(language)}`,
|
|
20
|
+
async,
|
|
21
|
+
defer
|
|
22
|
+
});
|
|
23
|
+
await callbackPromise;
|
|
24
|
+
return ensureGlobal("hcaptcha", CAPTCHA_PROVIDER_LOAD_TIMEOUT_MS);
|
|
25
|
+
}
|
|
26
|
+
var hcaptchaModule = defineCaptchaModule({
|
|
27
|
+
id: "hcaptcha",
|
|
28
|
+
defaultPlaceholderSelector: "[data-hcaptcha-placeholder]",
|
|
29
|
+
defaultTokenFieldNames: ["h-captcha-response"],
|
|
30
|
+
load: ({ options }) => {
|
|
31
|
+
return loadHcaptchaGlobal(options.provider);
|
|
32
|
+
},
|
|
33
|
+
mount: ({ api, container, provider, services }) => {
|
|
34
|
+
return api.render(container, {
|
|
35
|
+
sitekey: provider.siteKey || "",
|
|
36
|
+
theme: provider.theme || "light",
|
|
37
|
+
size: provider.size || "normal",
|
|
38
|
+
callback: (token) => {
|
|
39
|
+
if (typeof token === "string" && token.trim() !== "") services.tokens.write(token.trim());
|
|
40
|
+
services.errors.clear();
|
|
41
|
+
},
|
|
42
|
+
"expired-callback": () => {
|
|
43
|
+
services.tokens.clear();
|
|
44
|
+
services.errors.clear();
|
|
45
|
+
},
|
|
46
|
+
"chalexpired-callback": () => {
|
|
47
|
+
services.tokens.clear();
|
|
48
|
+
services.errors.clear();
|
|
49
|
+
},
|
|
50
|
+
"error-callback": () => {
|
|
51
|
+
services.tokens.clear();
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
},
|
|
55
|
+
screen: ({ api, widget, placeholder, services, stageCtx }) => {
|
|
56
|
+
if (services.tokens.has()) return;
|
|
57
|
+
api.execute(widget);
|
|
58
|
+
return services.tokens.wait().then((hasToken) => {
|
|
59
|
+
if (!hasToken) {
|
|
60
|
+
const message = services.errors.getDefaultMessage();
|
|
61
|
+
services.errors.show(message, placeholder);
|
|
62
|
+
stageCtx.abort(message);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
},
|
|
66
|
+
unmount: ({ api, widget, services }) => {
|
|
67
|
+
api.reset(widget);
|
|
68
|
+
services.tokens.clear();
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
//#endregion
|
|
72
|
+
export { hcaptchaModule };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { r as getModuleFieldContainers } from "./shared-DC6_1u8X.js";
|
|
2
|
+
//#region src/js/modules/fields/hidden.ts
|
|
3
|
+
var INPUT_SELECTOR = "input[data-formie-hidden-input]";
|
|
4
|
+
function getCookieValue(name) {
|
|
5
|
+
const cookies = document.cookie ? document.cookie.split("; ") : [];
|
|
6
|
+
for (const cookie of cookies) {
|
|
7
|
+
const parts = cookie.split("=");
|
|
8
|
+
if (decodeURIComponent(parts.shift() || "") === name) return decodeURIComponent(parts.join("="));
|
|
9
|
+
}
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
var hiddenModule = {
|
|
13
|
+
id: "hidden",
|
|
14
|
+
kind: "field",
|
|
15
|
+
match: (ctx) => {
|
|
16
|
+
return !!ctx.target.querySelector(INPUT_SELECTOR);
|
|
17
|
+
},
|
|
18
|
+
setup: async (ctx) => {
|
|
19
|
+
const options = ctx.options || {};
|
|
20
|
+
const cookieValue = options.cookieName ? getCookieValue(options.cookieName) : null;
|
|
21
|
+
const inputs = getModuleFieldContainers(ctx).map((field) => {
|
|
22
|
+
return field.querySelector(INPUT_SELECTOR);
|
|
23
|
+
}).filter((input) => {
|
|
24
|
+
return input instanceof HTMLInputElement;
|
|
25
|
+
});
|
|
26
|
+
if (cookieValue !== null) inputs.forEach((input) => {
|
|
27
|
+
input.value = cookieValue;
|
|
28
|
+
});
|
|
29
|
+
await ctx.emit("formie:module:hidden:init", { count: inputs.length });
|
|
30
|
+
return { destroy: () => {
|
|
31
|
+
ctx.emit("formie:module:hidden:destroy", {});
|
|
32
|
+
} };
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
//#endregion
|
|
36
|
+
export { hiddenModule };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
//#region src/js/utils/http.ts
|
|
2
|
+
async function request(url, options = {}) {
|
|
3
|
+
const headers = {
|
|
4
|
+
Accept: "application/json",
|
|
5
|
+
...options.headers || {}
|
|
6
|
+
};
|
|
7
|
+
delete headers["X-Requested-With"];
|
|
8
|
+
delete headers["x-requested-with"];
|
|
9
|
+
return fetch(String(url), {
|
|
10
|
+
method: options.method || "GET",
|
|
11
|
+
body: options.body ?? null,
|
|
12
|
+
signal: options.signal,
|
|
13
|
+
cache: "no-store",
|
|
14
|
+
headers,
|
|
15
|
+
credentials: "same-origin"
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
async function requestJson(url, options = {}) {
|
|
19
|
+
const response = await request(url, options);
|
|
20
|
+
if (!response.ok) throw new Error(`Request failed (${response.status}) for ${String(url)}`);
|
|
21
|
+
return response.json();
|
|
22
|
+
}
|
|
23
|
+
async function requestText(url, options = {}) {
|
|
24
|
+
const response = await request(url, options);
|
|
25
|
+
if (!response.ok) throw new Error(`Request failed (${response.status}) for ${String(url)}`);
|
|
26
|
+
return response.text();
|
|
27
|
+
}
|
|
28
|
+
//#endregion
|
|
29
|
+
export { requestText as n, requestJson as t };
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
//#region src/js/utils/i18n.ts
|
|
2
|
+
function getWindowTranslationStore() {
|
|
3
|
+
return window.FormieTranslations || {};
|
|
4
|
+
}
|
|
5
|
+
function hydrateTranslationsFromDom() {
|
|
6
|
+
if (typeof document === "undefined") return;
|
|
7
|
+
const scripts = Array.from(document.querySelectorAll("script[type=\"application/json\"][data-formie-translations]:not([data-formie-translations-loaded=\"true\"])"));
|
|
8
|
+
if (scripts.length === 0) return;
|
|
9
|
+
let nextStore = null;
|
|
10
|
+
for (const script of scripts) {
|
|
11
|
+
script.dataset.formieTranslationsLoaded = "true";
|
|
12
|
+
const payload = script.textContent?.trim();
|
|
13
|
+
if (!payload) continue;
|
|
14
|
+
try {
|
|
15
|
+
const translations = JSON.parse(payload);
|
|
16
|
+
if (!translations || Array.isArray(translations) || typeof translations !== "object") continue;
|
|
17
|
+
nextStore = {
|
|
18
|
+
...nextStore ?? getWindowTranslationStore(),
|
|
19
|
+
...translations
|
|
20
|
+
};
|
|
21
|
+
} catch {
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (nextStore) window.FormieTranslations = nextStore;
|
|
26
|
+
}
|
|
27
|
+
function getTranslationStore() {
|
|
28
|
+
hydrateTranslationsFromDom();
|
|
29
|
+
return getWindowTranslationStore();
|
|
30
|
+
}
|
|
31
|
+
function getFormieTranslations() {
|
|
32
|
+
return { ...getTranslationStore() };
|
|
33
|
+
}
|
|
34
|
+
function setFormieTranslations(translations) {
|
|
35
|
+
window.FormieTranslations = { ...translations };
|
|
36
|
+
return getFormieTranslations();
|
|
37
|
+
}
|
|
38
|
+
function mergeFormieTranslations(translations) {
|
|
39
|
+
window.FormieTranslations = {
|
|
40
|
+
...getTranslationStore(),
|
|
41
|
+
...translations
|
|
42
|
+
};
|
|
43
|
+
return getFormieTranslations();
|
|
44
|
+
}
|
|
45
|
+
function t(message, replacements = {}) {
|
|
46
|
+
let output = getTranslationStore()[message] || message;
|
|
47
|
+
output = output.replace(/{([a-zA-Z0-9]+)}/g, (match, key) => {
|
|
48
|
+
if (Object.prototype.hasOwnProperty.call(replacements, key)) return String(replacements[key]);
|
|
49
|
+
return match;
|
|
50
|
+
});
|
|
51
|
+
return output;
|
|
52
|
+
}
|
|
53
|
+
var translate = t;
|
|
54
|
+
//#endregion
|
|
55
|
+
export { translate as a, t as i, mergeFormieTranslations as n, setFormieTranslations as r, getFormieTranslations as t };
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { n as ADDRESS_SELECTORS, t as defineAddressModule } from "./api-CbqEMQT5.js";
|
|
2
|
+
import { r as loadScriptAndEnsureGlobal } from "./scripts-BGD_iU_6.js";
|
|
3
|
+
//#region src/js/modules/address/loqate.ts
|
|
4
|
+
var SCRIPT_ID = "FORMIE_LOQATE_SCRIPT";
|
|
5
|
+
var loqateModule = defineAddressModule({
|
|
6
|
+
id: "loqate",
|
|
7
|
+
load: async () => {
|
|
8
|
+
await loadScriptAndEnsureGlobal("pca", {
|
|
9
|
+
id: SCRIPT_ID,
|
|
10
|
+
src: "https://services.pcapredict.com/js/address-3.91.min.js",
|
|
11
|
+
async: true,
|
|
12
|
+
defer: true
|
|
13
|
+
});
|
|
14
|
+
const link = document.createElement("link");
|
|
15
|
+
link.href = "https://services.pcapredict.com/css/address-3.91.min.css";
|
|
16
|
+
link.rel = "stylesheet";
|
|
17
|
+
link.type = "text/css";
|
|
18
|
+
if (!document.querySelector(`link[href="${link.href}"]`)) document.body.appendChild(link);
|
|
19
|
+
return window.pca;
|
|
20
|
+
},
|
|
21
|
+
mount: ({ api, field, services, provider }) => {
|
|
22
|
+
const namespace = provider.namespace || "";
|
|
23
|
+
const apiKey = provider.apiKey || "";
|
|
24
|
+
if (!apiKey) throw new Error("Loqate API key is required");
|
|
25
|
+
const handleToSelector = {
|
|
26
|
+
autoComplete: ADDRESS_SELECTORS.autoComplete,
|
|
27
|
+
address1: ADDRESS_SELECTORS.address1,
|
|
28
|
+
address2: ADDRESS_SELECTORS.address2,
|
|
29
|
+
address3: ADDRESS_SELECTORS.address3,
|
|
30
|
+
city: ADDRESS_SELECTORS.city,
|
|
31
|
+
state: ADDRESS_SELECTORS.state,
|
|
32
|
+
zip: ADDRESS_SELECTORS.zip,
|
|
33
|
+
country: ADDRESS_SELECTORS.country
|
|
34
|
+
};
|
|
35
|
+
const getLoqateElementRef = (handle) => {
|
|
36
|
+
if (namespace) return `${namespace}[${handle}]`;
|
|
37
|
+
const cssSelector = handleToSelector[handle];
|
|
38
|
+
const el = cssSelector ? field.querySelector(cssSelector) : null;
|
|
39
|
+
if (el?.name) return el.name;
|
|
40
|
+
if (el?.id) return el.id;
|
|
41
|
+
return "";
|
|
42
|
+
};
|
|
43
|
+
const autoCompleteRef = getLoqateElementRef("autoComplete");
|
|
44
|
+
if (!autoCompleteRef) throw new Error("Loqate: could not find autocomplete input within address field");
|
|
45
|
+
const fields = [
|
|
46
|
+
{
|
|
47
|
+
element: autoCompleteRef,
|
|
48
|
+
field: "",
|
|
49
|
+
mode: api.fieldMode.SEARCH
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
element: getLoqateElementRef("address1"),
|
|
53
|
+
field: "Line1",
|
|
54
|
+
mode: api.fieldMode.POPULATE
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
element: getLoqateElementRef("address2"),
|
|
58
|
+
field: "Line2",
|
|
59
|
+
mode: api.fieldMode.POPULATE
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
element: getLoqateElementRef("address3"),
|
|
63
|
+
field: "Line3",
|
|
64
|
+
mode: api.fieldMode.POPULATE
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
element: getLoqateElementRef("city"),
|
|
68
|
+
field: "City",
|
|
69
|
+
mode: api.fieldMode.POPULATE
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
element: getLoqateElementRef("state"),
|
|
73
|
+
field: "Province",
|
|
74
|
+
mode: api.fieldMode.POPULATE
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
element: getLoqateElementRef("zip"),
|
|
78
|
+
field: "PostalCode",
|
|
79
|
+
mode: api.fieldMode.POPULATE
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
element: getLoqateElementRef("country"),
|
|
83
|
+
field: "CountryName",
|
|
84
|
+
mode: api.fieldMode.COUNTRY
|
|
85
|
+
}
|
|
86
|
+
].filter((f) => f.element);
|
|
87
|
+
const control = new api.Address(fields, {
|
|
88
|
+
key: apiKey,
|
|
89
|
+
simulateReactEvents: true,
|
|
90
|
+
...provider.reconfigurableOptions || {}
|
|
91
|
+
});
|
|
92
|
+
if (typeof control.load === "function") control.load();
|
|
93
|
+
return control;
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
//#endregion
|
|
97
|
+
export { loqateModule };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { s as getPaymentProviderActionEventName } from "./event-names-DamGPtXR.js";
|
|
2
|
+
import { t as definePaymentModule } from "./api-DE7LfK-R.js";
|
|
3
|
+
//#region src/js/modules/payments/mollie.ts
|
|
4
|
+
/** Event name from PHP addSubmitData – dispatched on form when backend returns Mollie checkout URL */
|
|
5
|
+
var REDIRECT_EVENT = getPaymentProviderActionEventName("mollie", "redirect");
|
|
6
|
+
var mollieModule = definePaymentModule({
|
|
7
|
+
id: "mollie",
|
|
8
|
+
defaultRequiredInputSuffixes: [],
|
|
9
|
+
load: async () => null,
|
|
10
|
+
setup: async ({ services, root }) => {
|
|
11
|
+
const handler = (event) => {
|
|
12
|
+
const data = event.detail?.data;
|
|
13
|
+
if (!data?.checkoutUrl) {
|
|
14
|
+
services.addError("Missing Mollie checkout URL.");
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
window.location.href = data.checkoutUrl;
|
|
18
|
+
};
|
|
19
|
+
root.addEventListener(REDIRECT_EVENT, handler);
|
|
20
|
+
return { destroy: () => {
|
|
21
|
+
root.removeEventListener(REDIRECT_EVENT, handler);
|
|
22
|
+
} };
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
//#endregion
|
|
26
|
+
export { mollieModule };
|