import{g as E,u as L}from"./nEbfNkJh.js";import{i as x,a as T,p as k,b as H}from"./BX9MO-1l.js";function C(t,r,i){E(()=>{var o=L(()=>r(t,i==null?void 0:i())||{});if(o!=null&&o.destroy)return()=>o.destroy()})}function M(t){const r=JSON.parse(t);return r.data&&(r.data=k(r.data,H.decoders)),r}function d(t){return HTMLElement.prototype.cloneNode.call(t)}function N(t,r=()=>{}){const i=async({action:e,result:l,reset:n=!0,invalidateAll:c=!0})=>{l.type==="success"&&(n&&HTMLFormElement.prototype.reset.call(t),c&&await x()),(location.origin+location.pathname===e.origin+e.pathname||l.type==="redirect"||l.type==="error")&&await T(l)};async function o(e){var f,b,y;if(((f=e.submitter)!=null&&f.hasAttribute("formmethod")?e.submitter.formMethod:d(t).method)!=="post")return;e.preventDefault();const n=new URL((b=e.submitter)!=null&&b.hasAttribute("formaction")?e.submitter.formAction:d(t).action),c=(y=e.submitter)!=null&&y.hasAttribute("formenctype")?e.submitter.formEnctype:d(t).enctype,m=new FormData(t,e.submitter),u=new AbortController;let p=!1;const w=await r({action:n,cancel:()=>p=!0,controller:u,formData:m,formElement:t,submitter:e.submitter})??i;if(p)return;let s;try{const a=new Headers({accept:"application/json","x-sveltekit-action":"true"});c!=="multipart/form-data"&&a.set("Content-Type",/^(:?application\/x-www-form-urlencoded|text\/plain)$/.test(c)?c:"application/x-www-form-urlencoded");const A=c==="multipart/form-data"?m:new URLSearchParams(m),h=await fetch(n,{method:"POST",headers:a,cache:"no-store",body:A,signal:u.signal});s=M(await h.text()),s.type==="error"&&(s.status=h.status)}catch(a){if((a==null?void 0:a.name)==="AbortError")return;s={type:"error",error:a}}await w({action:n,formData:m,formElement:t,update:a=>i({action:n,result:s,reset:a==null?void 0:a.reset,invalidateAll:a==null?void 0:a.invalidateAll}),result:s})}return HTMLFormElement.prototype.addEventListener.call(t,"submit",o),{destroy(){HTMLFormElement.prototype.removeEventListener.call(t,"submit",o)}}}export{C as a,N as e};