@verbb/formie-browser 1.0.0 → 1.0.2

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 (120) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/chunks/address-finder-CQW81kY0.js +37 -0
  3. package/dist/chunks/bpoint-D8OjLmsn.js +26 -0
  4. package/dist/chunks/calculations-BqZsENCq.js +147 -0
  5. package/dist/chunks/captcha-eu-DIa6aUWz.js +34 -0
  6. package/dist/chunks/checkbox-radio-BI-UjgMF.js +136 -0
  7. package/dist/chunks/conditions-BVl6jTYo.js +433 -0
  8. package/dist/chunks/date-picker-69TgvErA.js +4994 -0
  9. package/dist/chunks/eway-1GPxH6DU.js +74 -0
  10. package/dist/chunks/file-upload-BDZZftgL.js +281 -0
  11. package/dist/chunks/friendly-captcha-v1-DA2QPKA3.js +33 -0
  12. package/dist/chunks/friendly-captcha-v2-BorOWiz_.js +38 -0
  13. package/dist/chunks/go-cardless-DwBgERcA.js +24 -0
  14. package/dist/chunks/google-address-BcTBncyS.js +162 -0
  15. package/dist/chunks/hcaptcha-BchdVCqq.js +56 -0
  16. package/dist/chunks/hidden-D8RqSPt7.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-C1ZOKiAi.js +4229 -0
  20. package/dist/chunks/loqate-nXuTX7In.js +55 -0
  21. package/dist/chunks/mollie-qdCynQCd.js +24 -0
  22. package/dist/chunks/moneris-BNEA-laO.js +101 -0
  23. package/dist/chunks/opayo-BJtXOkuK.js +122 -0
  24. package/dist/chunks/paddle-D72Pa8kr.js +60 -0
  25. package/dist/chunks/paypal-Cqt2bned.js +100 -0
  26. package/dist/chunks/payway-BjCqsc0H.js +56 -0
  27. package/dist/chunks/phone-country-K9pYAlzM.js +3765 -0
  28. package/dist/chunks/place-kit-Dg6f_UoM.js +42 -0
  29. package/dist/chunks/placekit-autocomplete.esm-LAwfbPZl.js +1299 -0
  30. package/dist/chunks/recaptcha-enterprise--VYAeeqz.js +71 -0
  31. package/dist/chunks/recaptcha-shared-PSIEEEe1.js +15 -0
  32. package/dist/chunks/recaptcha-v2-checkbox-atBNe5ml.js +41 -0
  33. package/dist/chunks/recaptcha-v2-invisible-DnBufNPT.js +59 -0
  34. package/dist/chunks/recaptcha-v3-CF6O8rDj.js +28 -0
  35. package/dist/chunks/repeater-CB7Yojvx.js +124 -0
  36. package/dist/chunks/rich-text-nAV_SQZo.js +304 -0
  37. package/dist/chunks/scripts-BkAAux0i.js +36 -0
  38. package/dist/chunks/sdk-3SicTWby.js +1559 -0
  39. package/dist/chunks/shared-DGqeMvcJ.js +80 -0
  40. package/dist/chunks/signature-BT6CsQ6n.js +550 -0
  41. package/dist/chunks/snaptcha-C7qQo02f.js +8 -0
  42. package/dist/chunks/square-C5AH3trb.js +46 -0
  43. package/dist/chunks/stripe-EJK0RyUv.js +202 -0
  44. package/dist/chunks/styles-C3aqgtek.js +21 -0
  45. package/dist/chunks/summary-DC_ipXCU.js +126 -0
  46. package/dist/chunks/table-BEAI99qo.js +95 -0
  47. package/dist/chunks/text-limit-Blgq5G-G.js +135 -0
  48. package/dist/chunks/turnstile-_uCRwnU-.js +59 -0
  49. package/dist/chunks/utils-BntI3W4S.js +6149 -0
  50. package/dist/index.js +39 -3205
  51. package/package.json +5 -5
  52. package/src/js/modules/fields/file-upload.ts +1 -1
  53. package/src/js/modules/fields/repeater.ts +1 -1
  54. package/src/js/modules/fields/rich-text.ts +2 -2
  55. package/src/js/modules/fields/signature.ts +1 -1
  56. package/src/js/modules/fields/summary.ts +1 -1
  57. package/src/js/modules/fields/table.ts +1 -1
  58. package/src/js/modules/fields/text-limit.ts +1 -1
  59. package/src/js/modules/payments/paypal.ts +1 -1
  60. package/src/js/modules/payments/payway.ts +1 -1
  61. package/src/js/modules/payments/stripe.ts +1 -1
  62. package/dist/chunks/address-finder-DfMCiW89.js +0 -47
  63. package/dist/chunks/api-CbqEMQT5.js +0 -181
  64. package/dist/chunks/api-DE7LfK-R.js +0 -960
  65. package/dist/chunks/api-DOfDzYC_.js +0 -538
  66. package/dist/chunks/async-B3DUf1GZ.js +0 -26
  67. package/dist/chunks/bpoint-Ciy3yY9Q.js +0 -34
  68. package/dist/chunks/calculations-CkYAqO_-.js +0 -197
  69. package/dist/chunks/captcha-eu-DnOWhMwr.js +0 -43
  70. package/dist/chunks/checkbox-radio-0x7Tc0br.js +0 -197
  71. package/dist/chunks/chunk-K6L4z4UQ.js +0 -24
  72. package/dist/chunks/conditions-4fXKhEJS.js +0 -609
  73. package/dist/chunks/date-picker-B6iZkjHS.js +0 -6204
  74. package/dist/chunks/debug-KnZeKYBI.js +0 -39
  75. package/dist/chunks/dist-D09GnXMW.js +0 -2663
  76. package/dist/chunks/event-names-DamGPtXR.js +0 -51
  77. package/dist/chunks/eway-DEAYcwT0.js +0 -86
  78. package/dist/chunks/field-references.keys-BpBZ_quS.js +0 -24
  79. package/dist/chunks/field-references.resolver-Ba6xhiJC.js +0 -183
  80. package/dist/chunks/file-upload-Bh63PQSE.js +0 -430
  81. package/dist/chunks/friendly-captcha-v1-CqO4WVre.js +0 -40
  82. package/dist/chunks/friendly-captcha-v2-CyykcJcM.js +0 -47
  83. package/dist/chunks/friendly-challenge-Dg8XkStd.js +0 -1101
  84. package/dist/chunks/go-cardless-CuND59rR.js +0 -26
  85. package/dist/chunks/google-address--uR8WDSm.js +0 -208
  86. package/dist/chunks/hcaptcha-CmaFUesv.js +0 -72
  87. package/dist/chunks/hidden-CYnZYple.js +0 -36
  88. package/dist/chunks/http-18nn97DZ.js +0 -29
  89. package/dist/chunks/i18n-vUh-KGiH.js +0 -55
  90. package/dist/chunks/loqate-BICNJlVK.js +0 -97
  91. package/dist/chunks/mollie-DwlsgHZ1.js +0 -26
  92. package/dist/chunks/moneris-B_IFZFTx.js +0 -159
  93. package/dist/chunks/opayo-U2x_TOII.js +0 -192
  94. package/dist/chunks/paddle-BqXFrc79.js +0 -75
  95. package/dist/chunks/paypal-Cn_DYGDb.js +0 -121
  96. package/dist/chunks/payway-Rnq796eC.js +0 -75
  97. package/dist/chunks/phone-country-B6Me4lK0.js +0 -3317
  98. package/dist/chunks/place-kit-ldUl-u9w.js +0 -56
  99. package/dist/chunks/placekit-autocomplete.esm-D-lGeaZl.js +0 -1771
  100. package/dist/chunks/recaptcha-enterprise-DPJNyv1X.js +0 -72
  101. package/dist/chunks/recaptcha-shared-DTI4qWVR.js +0 -22
  102. package/dist/chunks/recaptcha-v2-checkbox-zFjpvJ5c.js +0 -49
  103. package/dist/chunks/recaptcha-v2-invisible-CnYtkNvz.js +0 -62
  104. package/dist/chunks/recaptcha-v3-EAlWhnkX.js +0 -33
  105. package/dist/chunks/repeater-CXD1eLSn.js +0 -151
  106. package/dist/chunks/rich-text-DkmZRhGj.js +0 -442
  107. package/dist/chunks/scripts-BGD_iU_6.js +0 -41
  108. package/dist/chunks/sdk-B7u9fTlP.js +0 -2103
  109. package/dist/chunks/shared-DC6_1u8X.js +0 -85
  110. package/dist/chunks/signature-E9KyYXS1.js +0 -765
  111. package/dist/chunks/snaptcha-CCDunGeb.js +0 -8
  112. package/dist/chunks/square-BLqK51rS.js +0 -61
  113. package/dist/chunks/stripe-B8gHpZNC.js +0 -273
  114. package/dist/chunks/styles-BIh6g7V_.js +0 -22
  115. package/dist/chunks/summary-EcNE0cvg.js +0 -191
  116. package/dist/chunks/table-yxEDL6kA.js +0 -124
  117. package/dist/chunks/text-limit-D0H_Ca2c.js +0 -179
  118. package/dist/chunks/theme-classes-vSHpdCUO.js +0 -59
  119. package/dist/chunks/turnstile-DP0bdR7T.js +0 -68
  120. package/dist/chunks/utils-ByrEVYrJ.js +0 -49584
@@ -0,0 +1,71 @@
1
+ import { a as i, c as p } from "./index-C1ZOKiAi.js";
2
+ import { l } from "./recaptcha-shared-PSIEEEe1.js";
3
+ const y = i({
4
+ id: "recaptcha-enterprise",
5
+ defaultPlaceholderSelector: "[data-recaptcha-placeholder]",
6
+ defaultTokenFieldNames: ["g-recaptcha-response"],
7
+ load: ({ options: t }) => l(
8
+ t.provider,
9
+ !0,
10
+ (t.provider.enterpriseType === "score" || t.provider.enterpriseType === "policy") && t.provider.siteKey || void 0
11
+ ),
12
+ mount: ({ api: t, container: s, provider: e, services: a }) => {
13
+ const r = t.enterprise || t;
14
+ return new Promise((c) => {
15
+ r.ready(() => {
16
+ if (e.enterpriseType !== "checkbox") {
17
+ c(e.siteKey || `recaptcha-enterprise-${e.enterpriseType || "score"}`);
18
+ return;
19
+ }
20
+ c(r.render(s, {
21
+ sitekey: e.siteKey || "",
22
+ theme: e.theme || "light",
23
+ badge: e.badge || "bottomright",
24
+ size: e.size || "normal",
25
+ action: e.action || "submit",
26
+ callback: (o) => {
27
+ typeof o == "string" && o.trim() !== "" && a.tokens.write(o.trim()), a.errors.clear();
28
+ },
29
+ "expired-callback": () => {
30
+ a.tokens.clear(), a.errors.clear();
31
+ },
32
+ "error-callback": () => {
33
+ a.tokens.clear();
34
+ }
35
+ }));
36
+ });
37
+ });
38
+ },
39
+ screen: async ({ api: t, widget: s, provider: e, placeholder: a, services: r, stageCtx: c }) => {
40
+ const o = t.enterprise || t;
41
+ if (e.enterpriseType === "checkbox") {
42
+ if (r.tokens.has())
43
+ return;
44
+ const n = r.errors.getDefaultMessage();
45
+ r.errors.show(n, a), c.abort(n);
46
+ return;
47
+ }
48
+ if (r.tokens.has())
49
+ return;
50
+ if (e.enterpriseType === "score" || e.enterpriseType === "policy") {
51
+ const n = await o.execute(e.siteKey || "", { action: e.action || "submit" });
52
+ typeof n == "string" && n.trim() !== "" && r.tokens.write(n.trim());
53
+ } else
54
+ o.execute(s);
55
+ if (!await r.tokens.wait(p)) {
56
+ const n = r.errors.getDefaultMessage();
57
+ r.errors.show(n, a), c.abort(n);
58
+ }
59
+ },
60
+ reset: ({ api: t, widget: s, provider: e, services: a }) => {
61
+ const r = t.enterprise || t;
62
+ e.enterpriseType === "checkbox" && r.reset(s), a.tokens.clear();
63
+ },
64
+ unmount: ({ api: t, widget: s, provider: e, services: a }) => {
65
+ const r = t.enterprise || t;
66
+ e.enterpriseType === "checkbox" && r.reset(s), a.tokens.clear();
67
+ }
68
+ });
69
+ export {
70
+ y as recaptchaEnterpriseModule
71
+ };
@@ -0,0 +1,15 @@
1
+ import { l } from "./scripts-BkAAux0i.js";
2
+ import { b as m, C as o } from "./index-C1ZOKiAi.js";
3
+ async function R(t, r = !1, e) {
4
+ const s = typeof t.language == "string" && t.language.trim() !== "" ? t.language.trim() : "en", { async: g, defer: i } = m(t.loadingMethod), n = r ? "https://www.google.com/recaptcha/enterprise.js" : "https://www.recaptcha.net/recaptcha/api.js", c = typeof e == "string" && e.trim() !== "" ? e.trim() : "explicit", a = new URL(n);
5
+ return a.searchParams.set("render", c), a.searchParams.set("hl", s), c !== "explicit" && typeof t.badge == "string" && t.badge.trim() !== "" && a.searchParams.set("badge", t.badge.trim()), l("grecaptcha", {
6
+ id: r ? "FORMIE_RECAPTCHA_ENTERPRISE_SCRIPT" : "FORMIE_RECAPTCHA_SCRIPT",
7
+ src: a.toString(),
8
+ async: g,
9
+ defer: i,
10
+ timeoutMs: o
11
+ });
12
+ }
13
+ export {
14
+ R as l
15
+ };
@@ -0,0 +1,41 @@
1
+ import { a as c } from "./index-C1ZOKiAi.js";
2
+ import { l as s } from "./recaptcha-shared-PSIEEEe1.js";
3
+ const d = c({
4
+ id: "recaptcha-v2-checkbox",
5
+ defaultPlaceholderSelector: "[data-recaptcha-placeholder]",
6
+ defaultTokenFieldNames: ["g-recaptcha-response"],
7
+ load: ({ options: e }) => s(e.provider),
8
+ mount: ({ api: e, container: r, provider: a, services: t }) => new Promise((l) => {
9
+ e.ready(() => {
10
+ l(e.render(r, {
11
+ sitekey: a.siteKey || "",
12
+ theme: a.theme || "light",
13
+ size: a.size || "normal",
14
+ callback: (o) => {
15
+ typeof o == "string" && o.trim() !== "" && t.tokens.write(o.trim()), t.errors.clear();
16
+ },
17
+ "expired-callback": () => {
18
+ t.tokens.clear(), t.errors.clear();
19
+ },
20
+ "error-callback": () => {
21
+ t.tokens.clear();
22
+ }
23
+ }));
24
+ });
25
+ }),
26
+ screen: ({ placeholder: e, services: r, stageCtx: a }) => {
27
+ if (r.tokens.has())
28
+ return;
29
+ const t = r.errors.getDefaultMessage();
30
+ r.errors.show(t, e), a.abort(t);
31
+ },
32
+ reset: ({ api: e, widget: r, services: a }) => {
33
+ e.reset(r), a.tokens.clear();
34
+ },
35
+ unmount: ({ api: e, widget: r, services: a }) => {
36
+ e.reset(r), a.tokens.clear();
37
+ }
38
+ });
39
+ export {
40
+ d as recaptchaV2CheckboxModule
41
+ };
@@ -0,0 +1,59 @@
1
+ import { a as c, c as l } from "./index-C1ZOKiAi.js";
2
+ import { l as d } from "./recaptcha-shared-PSIEEEe1.js";
3
+ async function p(e, o, r = 1e3) {
4
+ const t = Date.now() + r;
5
+ for (; Date.now() < t; ) {
6
+ const n = typeof e.getResponse == "function" ? e.getResponse(o) : "";
7
+ if (typeof n == "string" && n.trim() !== "")
8
+ return n.trim();
9
+ await new Promise((a) => {
10
+ window.setTimeout(a, 100);
11
+ });
12
+ }
13
+ }
14
+ const u = c({
15
+ id: "recaptcha-v2-invisible",
16
+ defaultPlaceholderSelector: "[data-recaptcha-placeholder]",
17
+ defaultTokenFieldNames: ["g-recaptcha-response"],
18
+ load: ({ options: e }) => d(e.provider),
19
+ mount: ({ api: e, container: o, provider: r, services: t }) => new Promise((n) => {
20
+ e.ready(() => {
21
+ const a = e.render(o, {
22
+ sitekey: r.siteKey || "",
23
+ badge: r.badge || "bottomright",
24
+ size: "invisible",
25
+ callback: (i) => {
26
+ const s = typeof i == "string" && i.trim() !== "" ? i.trim() : typeof e.getResponse == "function" ? e.getResponse(a) : "";
27
+ s && t.tokens.write(s), t.errors.clear();
28
+ },
29
+ "expired-callback": () => {
30
+ t.tokens.clear(), t.errors.clear();
31
+ },
32
+ "error-callback": () => {
33
+ t.tokens.clear();
34
+ }
35
+ });
36
+ n({
37
+ // Keep the widget id in a tiny object so later lifecycle
38
+ // methods have a stable shape to work with.
39
+ id: a
40
+ });
41
+ });
42
+ }),
43
+ screen: async ({ api: e, widget: o, placeholder: r, services: t, stageCtx: n }) => {
44
+ if (t.tokens.has())
45
+ return;
46
+ e.execute(o.id);
47
+ const a = await p(e, o.id);
48
+ if (typeof a == "string" && a.trim() !== "" && t.tokens.write(a.trim()), !await t.tokens.wait(l)) {
49
+ const s = t.errors.getDefaultMessage();
50
+ t.errors.show(s, r), n.abort(s);
51
+ }
52
+ },
53
+ unmount: ({ api: e, widget: o, services: r }) => {
54
+ e.reset(o.id), r.tokens.clear();
55
+ }
56
+ });
57
+ export {
58
+ u as recaptchaV2InvisibleModule
59
+ };
@@ -0,0 +1,28 @@
1
+ import { a as c, c as i } from "./index-C1ZOKiAi.js";
2
+ import { l } from "./recaptcha-shared-PSIEEEe1.js";
3
+ const u = c({
4
+ id: "recaptcha-v3",
5
+ defaultPlaceholderSelector: "[data-recaptcha-placeholder]",
6
+ defaultTokenFieldNames: ["g-recaptcha-response"],
7
+ load: ({ options: e }) => l(e.provider, !1, e.provider.siteKey || void 0),
8
+ mount: ({ api: e, provider: t }) => new Promise((o) => {
9
+ e.ready(() => {
10
+ o(t.siteKey || "recaptcha-v3");
11
+ });
12
+ }),
13
+ screen: async ({ api: e, provider: t, placeholder: o, services: a, stageCtx: s }) => {
14
+ if (a.tokens.has())
15
+ return;
16
+ const r = await e.execute(t.siteKey || "", { action: t.action || "submit" });
17
+ if (typeof r == "string" && r.trim() !== "" && a.tokens.write(r.trim()), !await a.tokens.wait(i)) {
18
+ const n = a.errors.getDefaultMessage();
19
+ a.errors.show(n, o), s.abort(n);
20
+ }
21
+ },
22
+ unmount: ({ services: e }) => {
23
+ e.tokens.clear();
24
+ }
25
+ });
26
+ export {
27
+ u as recaptchaV3Module
28
+ };
@@ -0,0 +1,124 @@
1
+ import { d as p, c as L, f as y } from "./shared-DGqeMvcJ.js";
2
+ import { e as M } from "./styles-C3aqgtek.js";
3
+ import { h as k, s as A } from "./index-C1ZOKiAi.js";
4
+ const R = '@layer formie-theme{.formie-repeater-container{display:grid;gap:var(--formie-space-4)}.formie-repeater-item-wrapper{position:relative;display:grid;gap:var(--formie-space-4);padding:var(--formie-space-4);border:var(--formie-border-width) solid var(--formie-color-border);border-radius:var(--formie-radius-md);transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}.formie-repeater-item-wrapper:focus-within{border-color:var(--formie-focus-ring-border-color);box-shadow:var(--formie-shadow-focus)}.formie-field-has-error .formie-repeater-item-wrapper{border-color:var(--formie-color-danger)}.formie-field-has-error .formie-repeater-item-wrapper:focus-within{box-shadow:var(--formie-shadow-danger-focus)}.formie-repeater-item-wrapper>.formie-repeater-remove-button{position:absolute;top:var(--formie-repeater-remove-button-top);right:var(--formie-repeater-remove-button-right);transform:var(--formie-repeater-remove-button-transform);font-size:0;line-height:0}.formie-button.formie-repeater-add-button{position:relative;display:inline-flex;align-items:center;justify-content:center;width:auto;max-width:100%;justify-self:start;padding-left:var(--formie-repeater-add-button-padding-left)}.formie-button.formie-repeater-add-button:before{position:absolute;content:"";display:block;width:var(--formie-repeater-add-button-width);height:var(--formie-repeater-add-button-height);left:var(--formie-repeater-add-button-left);top:50%;transform:translateY(-50%);background-color:currentColor;-webkit-mask-image:var(--formie-repeater-add-button-icon-mask);mask-image:var(--formie-repeater-add-button-icon-mask);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}}', u = "[data-formie-repeater-field-layout]", v = "[data-formie-repeater-container]", g = "[data-formie-repeater-item]", C = "[data-formie-repeater-add]", H = "[data-formie-repeater-remove]", E = "data-formie-template-id", l = "repeater", s = k("fields", "repeater");
5
+ M(l, [R]);
6
+ function S(e, o) {
7
+ return y(e, o);
8
+ }
9
+ function _(e, o) {
10
+ const t = document.createElement("div");
11
+ return t.innerHTML = e.replaceAll("__ROW__", String(o)).trim(), t.firstElementChild instanceof HTMLElement ? t.firstElementChild : null;
12
+ }
13
+ function i(e) {
14
+ return e.querySelectorAll(g).length;
15
+ }
16
+ function f(e, o) {
17
+ if (!e)
18
+ return;
19
+ const t = parseInt(e.getAttribute("data-formie-max-rows") || "", 10);
20
+ if (t > 0 && o >= t) {
21
+ e.disabled = !0;
22
+ return;
23
+ }
24
+ e.disabled = !1;
25
+ }
26
+ function I(e) {
27
+ const o = e.matches(v) ? e : e.querySelector(v), t = e.querySelector(C);
28
+ if (!(o instanceof HTMLElement))
29
+ return s.warn("Missing repeater container; skipping field."), () => {
30
+ };
31
+ const n = /* @__PURE__ */ new Map();
32
+ let T = Array.from(e.querySelectorAll(g)).reduce((r, a) => {
33
+ const m = parseInt(a.getAttribute("data-formie-repeater-item-id") || "", 10);
34
+ return Number.isNaN(m) ? r : Math.max(r, m + 1);
35
+ }, 0);
36
+ const w = () => {
37
+ e.querySelectorAll(H).forEach((r) => {
38
+ if (!(r instanceof HTMLElement) || n.has(r))
39
+ return;
40
+ const a = (m) => {
41
+ m.preventDefault();
42
+ const c = r.closest(g);
43
+ if (!(c instanceof HTMLElement))
44
+ return;
45
+ const d = parseInt((t instanceof HTMLButtonElement ? t.getAttribute("data-formie-min-rows") : "") || "", 10);
46
+ d > 0 && i(e) <= d || (c.remove(), f(t instanceof HTMLButtonElement ? t : null, i(e)), s.log("Row removed.", {
47
+ rowCount: i(e)
48
+ }), p(e, l, "remove", {
49
+ repeater: e,
50
+ row: c
51
+ }));
52
+ };
53
+ r.addEventListener("click", a), n.set(r, a);
54
+ });
55
+ }, b = async () => {
56
+ if (!(t instanceof HTMLButtonElement))
57
+ return;
58
+ const r = t.getAttribute("data-formie-repeater-add");
59
+ if (!r) {
60
+ s.warn("Add handle missing.");
61
+ return;
62
+ }
63
+ const a = t.getAttribute(E) || e.getAttribute(E), m = parseInt(t.getAttribute("data-formie-max-rows") || "", 10);
64
+ if (m > 0 && i(e) >= m)
65
+ return;
66
+ const c = S(e, a);
67
+ if (!c) {
68
+ s.warn("Template not found for add action.", { handle: r });
69
+ return;
70
+ }
71
+ const d = _(L(c), T++);
72
+ if (!d) {
73
+ s.warn("Failed to build row from template.");
74
+ return;
75
+ }
76
+ o.appendChild(d), await A(50), w(), f(t, i(e)), s.log("Row appended.", {
77
+ rowCount: i(e)
78
+ }), p(e, l, "append", {
79
+ repeater: e,
80
+ row: d
81
+ }), p(e, l, "init-row", {
82
+ repeater: e,
83
+ row: d
84
+ });
85
+ }, h = (r) => {
86
+ r.preventDefault(), b();
87
+ };
88
+ if (t instanceof HTMLButtonElement && t.addEventListener("click", h), w(), f(t instanceof HTMLButtonElement ? t : null, i(e)), t instanceof HTMLButtonElement && i(e) === 0) {
89
+ const r = parseInt(t.getAttribute("data-formie-min-rows") || "", 10);
90
+ for (let a = 0; a < r; a += 1)
91
+ b();
92
+ }
93
+ return p(e, l, "init", {
94
+ repeater: e
95
+ }), s.log("Field initialized.", {
96
+ rowCount: i(e)
97
+ }), () => {
98
+ t instanceof HTMLButtonElement && t.removeEventListener("click", h), n.forEach((r, a) => {
99
+ a.removeEventListener("click", r);
100
+ });
101
+ };
102
+ }
103
+ const q = {
104
+ id: l,
105
+ kind: "field",
106
+ match: (e) => e.target instanceof HTMLElement && (e.target.matches(u) || !!e.target.querySelector(u)),
107
+ setup: async (e) => {
108
+ if (!(e.target instanceof HTMLElement))
109
+ return;
110
+ const o = e.target.matches(u) ? [e.target] : Array.from(e.target.querySelectorAll(u)).filter((n) => n instanceof HTMLElement), t = o.map((n) => I(n));
111
+ return s.log("Module setup.", { fieldCount: o.length }), await e.emit("formie:module:repeater:init", {
112
+ count: o.length
113
+ }), {
114
+ destroy: () => {
115
+ t.forEach((n) => {
116
+ n();
117
+ }), s.log("Module destroy.", { fieldCount: o.length }), e.emit("formie:module:repeater:destroy", {});
118
+ }
119
+ };
120
+ }
121
+ };
122
+ export {
123
+ q as repeaterModule
124
+ };