{"version":3,"file":"MailerLiteWrapper.CcBJCACs.mjs","names":["useRef","useState","React"],"sources":["https:/framerusercontent.com/modules/8P6piziymcxLSbOwMUWt/UowWhFBkGGV461mSOlfz/MailerLiteWrapper.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import React,{useEffect,useRef,useState}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";MailerLiteWrapper.displayName=\"MailerLite Connector\";// ==========================================\n// 1. DESIGNED PLACEHOLDER\n// ==========================================\nfunction DesignedPlaceholder({isCanvas,serviceName,icon}){const themeColor=\"#00a154\"// MailerLite Green\n;return /*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",alignItems:\"center\",justifyContent:\"center\",gap:16,width:\"100%\",height:\"100%\",minHeight:240,padding:30,background:\"#ffffff\",borderRadius:24,boxShadow:\"0px 4px 24px rgba(0,0,0,0.06), 0px 1px 4px rgba(0,0,0,0.04)\",border:isCanvas?`2px dashed ${themeColor}`:\"1px solid rgba(0,0,0,0.05)\",position:\"relative\",overflow:\"hidden\",fontFamily:\"Inter, sans-serif\",textAlign:\"center\",color:\"#333\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",top:-20,right:-20,fontSize:100,opacity:.05,pointerEvents:\"none\"},children:icon}),/*#__PURE__*/_jsx(\"div\",{style:{fontSize:26,background:`${themeColor}15`,width:45,height:45,borderRadius:16,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",color:themeColor},children:icon}),/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsxs(\"div\",{style:{fontSize:18,fontWeight:700,marginBottom:6},children:[serviceName,\" is almost ready\"]}),/*#__PURE__*/_jsxs(\"div\",{style:{fontSize:14,color:\"#666\",lineHeight:1.5,textAlign:\"center\"},children:[\"1. Connect your Form using the purple connector.\",/*#__PURE__*/_jsx(\"br\",{}),\"2. Open the Plugin to finish integration\"]})]}),isCanvas&&/*#__PURE__*/_jsxs(\"div\",{style:{marginTop:10,padding:\"8px 16px\",background:themeColor,color:\"#fff\",fontSize:12,fontWeight:600,borderRadius:30,display:\"flex\",alignItems:\"center\",gap:6},children:[/*#__PURE__*/_jsx(\"span\",{children:\"👉\"}),\" Connect Form\"]})]});}// ==========================================\n// 2. MAIN COMPONENT\n// ==========================================\n/**\n * @framerDisableUnlink\n * */export default function MailerLiteWrapper(props){const{apiKey,groupId,actionUrl,children,showErrorText}=props;const containerRef=useRef(null);const[status,setStatus]=useState(\"idle\");const[errorMsg,setErrorMsg]=useState(\"\");const currentTarget=RenderTarget.current();const isCanvas=currentTarget!==undefined&&currentTarget===RenderTarget.canvas;// --- HELPER: JSONP (FOR LEGACY METHOD) ---\nconst sendJsonp=(url,params,callback)=>{if(!url||!url.startsWith(\"http\")){callback(new Error(\"Invalid Action URL\"),null);return;}const query=Object.keys(params).map(k=>`${encodeURIComponent(k)}=${encodeURIComponent(params[k])}`).join(\"&\");const script=document.createElement(\"script\");const callbackName=\"ml_callback_\"+Math.round(1e5*Math.random());const timeoutId=setTimeout(()=>{cleanup();callback(new Error(\"Request timed out\"),null);},8e3);const cleanup=()=>{if(window[callbackName])delete window[callbackName];if(document.body.contains(script))document.body.removeChild(script);clearTimeout(timeoutId);};script.onerror=()=>{cleanup();callback(new Error(\"Script failed to load\"),null);};// @ts-ignore\nwindow[callbackName]=data=>{cleanup();callback(null,data);};script.src=`${url}?${query}&callback=${callbackName}&ajax=1&_=${Date.now()}`;document.body.appendChild(script);};// --- MAILERLITE HYBRID LOGIC ---\nuseEffect(()=>{const container=containerRef.current;if(!container)return;const handleSubmit=async e=>{const form=e.target;if(form.tagName!==\"FORM\")return;// Если ничего не настроено\nif(!actionUrl&&(!apiKey||!groupId))return;e.preventDefault();setStatus(\"loading\");setErrorMsg(\"\");const formData=new FormData(form);// 🔥 1. НОВЫЙ МЕТОД (API KEY + СЕРВЕР) - ПЛОСКИЙ ФОРМАТ\nif(apiKey&&groupId){const payload={serviceType:\"mailerlite\",apiKey:apiKey,groupId:groupId};// Добавляем все поля формы в корень объекта\nformData.forEach((value,key)=>{payload[key]=value;});try{const res=await fetch(\"https://lebrsttspvcclvrnzgty.supabase.co/functions/v1/submit-form\",{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify(payload)});if(!res.ok){const errData=await res.json().catch(()=>({}));throw new Error(errData.error||errData.message||\"Submission failed\");}setStatus(\"success\");form.reset();}catch(err){console.error(\"MailerLite API Error:\",err);setStatus(\"error\");setErrorMsg(err.message||\"Network Error\");}}else if(actionUrl&&actionUrl.startsWith(\"http\")){const params={};// MailerLite specific mapping for old forms\nformData.forEach((value,key)=>{const lower=key.toLowerCase();if(lower===\"email\")params[\"fields[email]\"]=value;else if(lower===\"name\"||lower===\"fname\")params[\"fields[name]\"]=value;else if(lower===\"lastname\"||lower===\"lname\")params[\"fields[last_name]\"]=value;else params[`fields[${key}]`]=value;});params[\"ml-submit\"]=1;params[\"ajax\"]=1;sendJsonp(actionUrl,params,(err,data)=>{if(err){setStatus(\"error\");setErrorMsg(err.message||\"Connection failed\");}else if(data&&(data.success||data.code===200)){setStatus(\"success\");form.reset();}else{setStatus(\"error\");let msg=\"Submission failed\";if(data&&data.errors){if(data.errors.fields)msg=JSON.stringify(data.errors.fields);else if(typeof data.errors===\"string\")msg=data.errors;}else if(data&&data.message){msg=data.message;}setErrorMsg(msg);}});}else{setStatus(\"error\");setErrorMsg(\"Invalid MailerLite Configuration.\");}};container.addEventListener(\"submit\",handleSubmit,{capture:true});return()=>container.removeEventListener(\"submit\",handleSubmit,{capture:true});},[apiKey,groupId,actionUrl]);const hasChildren=React.Children.count(children)>0;const childrenWithProps=React.Children.map(children,child=>{if(/*#__PURE__*/React.isValidElement(child)){// 🔥 LAYOUT FIX\nconst newProps={style:{...child.props.style,width:\"auto\",height:\"auto\",minWidth:\"100%\"}};if(status!==\"idle\"){newProps.variant=status===\"loading\"?\"Loading\":status===\"success\"?\"Success\":\"Error\";}return /*#__PURE__*/React.cloneElement(child,newProps);}return child;});return /*#__PURE__*/_jsxs(\"div\",{ref:containerRef,style:{width:\"100%\",height:\"100%\",position:\"relative\",// 🔥 FLEX CONTAINER\ndisplay:\"flex\",flexDirection:\"column\"},children:[hasChildren?childrenWithProps:/*#__PURE__*/_jsx(DesignedPlaceholder,{isCanvas:isCanvas,serviceName:\"MailerLite\",icon:\"🟢\"}),status===\"error\"&&showErrorText&&hasChildren&&/*#__PURE__*/_jsx(\"div\",{style:errorStyle,children:errorMsg}),status===\"success\"&&showErrorText&&hasChildren&&/*#__PURE__*/_jsx(\"div\",{style:successStyle,children:'✅ Sent successfully! Disable \"Show errors\" in the component settings to remove this message'})]});}addPropertyControls(MailerLiteWrapper,{children:{type:ControlType.ComponentInstance,title:\"👉 Connect Form\",description:\"Open the Plugin to finish integration\"},// 🔥 НОВЫЕ ПОЛЯ (скрытые)\napiKey:{type:ControlType.String,hidden:()=>true},groupId:{type:ControlType.String,hidden:()=>true},// 🦖 СТАРОЕ ПОЛЕ (скрытое, для обратной совместимости)\nactionUrl:{type:ControlType.String,title:\"Action URL\",defaultValue:\"\",hidden:()=>true},_serviceName:{type:ControlType.String,defaultValue:\"mailerlite\",hidden:()=>true},showErrorText:{type:ControlType.Boolean,title:\"Show Errors\",defaultValue:false,hidden:()=>false},loadingVariantName:{type:ControlType.String,defaultValue:\"Loading\",hidden:()=>true},successVariantName:{type:ControlType.String,defaultValue:\"Success\",hidden:()=>true},errorVariantName:{type:ControlType.String,defaultValue:\"Error\",hidden:()=>true}});const errorStyle={marginTop:12,color:\"#D32F2F\",fontSize:12,fontFamily:\"monospace\",background:\"#FFEBEE\",padding:\"12px\",borderRadius:8,width:\"100%\"};const successStyle={marginTop:10,color:\"#008000\",fontSize:13,fontWeight:600,textAlign:\"center\",width:\"100%\"};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"MailerLiteWrapper\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MailerLiteWrapper.map"],"mappings":"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"}