{
  "version": 3,
  "sources": ["/cdn/shop/t/3/assets/klaviyo-form.js"],
  "sourcesContent": ["import { g as getFieldValue, f as formatPhoneForKlaviyo, s as subscribeToKlaviyo } from \"./klaviyoSubscription.js\";\nimport { d, E } from \"./preact-signals.js\";\nclass KlaviyoForm extends HTMLElement {\n  constructor() {\n    super();\n    this.submitted = d(false);\n    this.submitting = d(false);\n    this.form = this.querySelector(\"form\");\n    if (!this.form) {\n      console.warn(\"No form found in KlaviyoForm\");\n      return;\n    }\n    this.submitBtn = this.form.querySelector('[type=\"submit\"]');\n    this.successMessage = this.querySelector(\".klaviyo-success-message\");\n    this.listId = this.dataset.listId;\n    this.companyId = this.dataset.companyId;\n    if (!this.companyId) {\n      console.warn(\"No companyId found in KlaviyoForm\");\n      return;\n    }\n    this.successUrl = this.dataset.successUrl;\n    E(() => {\n      if (this.submitting.value) {\n        this.submitBtn.classList.add(\"loading\");\n      } else {\n        this.submitBtn.classList.remove(\"loading\");\n      }\n    });\n    this.form.addEventListener(\"submit\", (e) => {\n      e.preventDefault();\n      e.stopPropagation();\n      console.log(\"Form submission prevented\");\n      this.handleSubmit(e);\n    });\n  }\n  async handleSubmit(e) {\n    console.log(\"submitting\");\n    this.submitting.value = true;\n    const formData = new FormData(this.form);\n    const formObject = {};\n    formData.forEach((value, key) => formObject[key] = value);\n    console.log(formObject);\n    const phoneValue = getFieldValue(formObject, \"phoneNumber\");\n    if (phoneValue) {\n      const phoneValidation = formatPhoneForKlaviyo(phoneValue);\n      if (!phoneValidation.isValid) {\n        alert(`Phone number error: ${phoneValidation.error}`);\n        return false;\n      }\n    }\n    try {\n      const newsletterLists = formData.getAll(\"newsletter-lists[]\");\n      if (newsletterLists.length > 0) {\n        await subscribeToKlaviyo({\n          email: getFieldValue(formObject, \"email\"),\n          formData: formObject,\n          companyId: this.companyId,\n          listIds: newsletterLists\n        });\n      }\n      const hasNewsletterSignup = formData.get(\"newsletter-signup\");\n      const shouldSubscribeToDefault = hasNewsletterSignup || !newsletterLists.length && this.listId;\n      if (shouldSubscribeToDefault && this.listId) {\n        await subscribeToKlaviyo({\n          email: getFieldValue(formObject, \"email\"),\n          formData: formObject,\n          companyId: this.companyId,\n          listIds: this.listId\n        });\n      }\n      this.submitted.value = true;\n      if (this.successUrl) {\n        window.location.href = this.successUrl;\n        return;\n      }\n      this.form.classList.add(\"hidden\");\n      if (this.successMessage) {\n        this.successMessage.classList.remove(\"hidden\");\n      }\n    } catch (error) {\n      console.error(\"Klaviyo subscription failed:\", error);\n      if (error.message.includes(\"Phone validation failed\")) {\n        alert(error.message.replace(\"Phone validation failed: \", \"\"));\n      } else if (error.message.includes(\"phone number\")) {\n        alert(`Phone number issue: ${error.message}`);\n      } else {\n        alert(`Subscription failed: ${error.message}`);\n      }\n      return false;\n    } finally {\n      this.submitting.value = false;\n    }\n    return false;\n  }\n}\nif (!customElements.get(\"klaviyo-form\")) {\n  customElements.define(\"klaviyo-form\", KlaviyoForm);\n}\nexport {\n  KlaviyoForm,\n  KlaviyoForm as default\n};\n"],
  "mappings": "AAAA,OAAS,KAAK,cAAe,KAAK,sBAAuB,KAAK,uBAA0B,2BACxF,OAAS,EAAG,MAAS,sBACrB,MAAM,oBAAoB,WAAY,CACpC,aAAc,CAKZ,GAJA,MAAM,EACN,KAAK,UAAY,EAAE,EAAK,EACxB,KAAK,WAAa,EAAE,EAAK,EACzB,KAAK,KAAO,KAAK,cAAc,MAAM,EACjC,CAAC,KAAK,KAAM,CACd,QAAQ,KAAK,8BAA8B,EAC3C,MACF,CAKA,GAJA,KAAK,UAAY,KAAK,KAAK,cAAc,iBAAiB,EAC1D,KAAK,eAAiB,KAAK,cAAc,0BAA0B,EACnE,KAAK,OAAS,KAAK,QAAQ,OAC3B,KAAK,UAAY,KAAK,QAAQ,UAC1B,CAAC,KAAK,UAAW,CACnB,QAAQ,KAAK,mCAAmC,EAChD,MACF,CACA,KAAK,WAAa,KAAK,QAAQ,WAC/B,EAAE,IAAM,CACF,KAAK,WAAW,MAClB,KAAK,UAAU,UAAU,IAAI,SAAS,EAEtC,KAAK,UAAU,UAAU,OAAO,SAAS,CAE7C,CAAC,EACD,KAAK,KAAK,iBAAiB,SAAW,GAAM,CAC1C,EAAE,eAAe,EACjB,EAAE,gBAAgB,EAClB,QAAQ,IAAI,2BAA2B,EACvC,KAAK,aAAa,CAAC,CACrB,CAAC,CACH,CACA,MAAM,aAAa,EAAG,CACpB,QAAQ,IAAI,YAAY,EACxB,KAAK,WAAW,MAAQ,GACxB,MAAM,SAAW,IAAI,SAAS,KAAK,IAAI,EACjC,WAAa,CAAC,EACpB,SAAS,QAAQ,CAAC,MAAO,MAAQ,WAAW,GAAG,EAAI,KAAK,EACxD,QAAQ,IAAI,UAAU,EACtB,MAAM,WAAa,cAAc,WAAY,aAAa,EAC1D,GAAI,WAAY,CACd,MAAM,gBAAkB,sBAAsB,UAAU,EACxD,GAAI,CAAC,gBAAgB,QACnB,aAAM,uBAAuB,gBAAgB,KAAK,EAAE,EAC7C,EAEX,CACA,GAAI,CACF,MAAM,gBAAkB,SAAS,OAAO,oBAAoB,EAoB5D,GAnBI,gBAAgB,OAAS,GAC3B,MAAM,mBAAmB,CACvB,MAAO,cAAc,WAAY,OAAO,EACxC,SAAU,WACV,UAAW,KAAK,UAChB,QAAS,eACX,CAAC,GAEyB,SAAS,IAAI,mBAAmB,GACJ,CAAC,gBAAgB,QAAU,KAAK,SACxD,KAAK,QACnC,MAAM,mBAAmB,CACvB,MAAO,cAAc,WAAY,OAAO,EACxC,SAAU,WACV,UAAW,KAAK,UAChB,QAAS,KAAK,MAChB,CAAC,EAEH,KAAK,UAAU,MAAQ,GACnB,KAAK,WAAY,CACnB,OAAO,SAAS,KAAO,KAAK,WAC5B,MACF,CACA,KAAK,KAAK,UAAU,IAAI,QAAQ,EAC5B,KAAK,gBACP,KAAK,eAAe,UAAU,OAAO,QAAQ,CAEjD,OAAS,MAAO,CACd,eAAQ,MAAM,+BAAgC,KAAK,EAC/C,MAAM,QAAQ,SAAS,yBAAyB,EAClD,MAAM,MAAM,QAAQ,QAAQ,4BAA6B,EAAE,CAAC,EACnD,MAAM,QAAQ,SAAS,cAAc,EAC9C,MAAM,uBAAuB,MAAM,OAAO,EAAE,EAE5C,MAAM,wBAAwB,MAAM,OAAO,EAAE,EAExC,EACT,QAAE,CACA,KAAK,WAAW,MAAQ,EAC1B,CACA,MAAO,EACT,CACF,CACK,eAAe,IAAI,cAAc,GACpC,eAAe,OAAO,eAAgB,WAAW,EAEnD,OACE,YACA,eAAe",
  "names": []
}
