{"version":3,"file":"HubspotForm2.BxTY0Mjs.mjs","names":["useState"],"sources":["https:/framerusercontent.com/modules/rjBmwr7wQu41maxbvubb/VZl7l8rAgAyPipRHpXvW/HubspotForm2.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useEffect,useState}from\"react\";const HUBSPOT_SCRIPT_URL=\"https://js.hsforms.net/forms/embed/v2.js\";/**\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */export default function HubspotForm2(props){const{service,formType,portalId,formId,region,submitService,formWidth}=props;const[loaded,setLoaded]=useState(false);useEffect(()=>{// 플리커 방지: 초기 숨김\nconst container=document.getElementById(\"hubspot-form-container\");if(container)container.style.opacity=\"0\";if(document.querySelector(`script[src=\"${HUBSPOT_SCRIPT_URL}\"]`)){if(window.hbspt){createForm();}return;}const script=document.createElement(\"script\");script.type=\"text/javascript\";script.src=HUBSPOT_SCRIPT_URL;script.async=true;script.onload=()=>{createForm();};script.onerror=()=>{console.error(\"Failed to load the HubSpot script.\");};document.body.appendChild(script);function createForm(){if(!window.hbspt)return;window.hbspt.forms.create({portalId:portalId,formId:formId,region:region,target:\"#hubspot-form-container\",onFormReady:function($formLike){const isJQ=$formLike&&typeof $formLike.find===\"function\";const $form=isJQ?$formLike:null;const form=isJQ?$formLike.get(0):$formLike;if(!form)return;// --- 스타일 주입 ---\ntry{const doc=form.ownerDocument;const styleEl=doc.createElement(\"style\");styleEl.textContent=`\n                            input[name=\"privacy_consent_contact\"],\n                            input[name=\"marketing_consent_contact\"] {\n                            margin-left: 20px !important;\n                            }\n                        `;doc.head.appendChild(styleEl);}catch(e){console.warn(\"style inject failed:\",e);}// --- 필드 값 세팅 ---\nconst setVal=(name,val)=>{const el=form.querySelector(`[name=\"${name}\"]`);if(!el)return;el.value=val;el.dispatchEvent(new Event(\"change\",{bubbles:true}));};setVal(\"services_name\",service);setVal(\"contact_create_source\",formType);let submitEl=form.querySelector('[name=\"submit_services\"]');if(!submitEl){submitEl=form.ownerDocument.createElement(\"input\");submitEl.type=\"hidden\";submitEl.name=\"submit_services\";form.appendChild(submitEl);}submitEl.value=submitService;// --- 전체 동의 그룹 로직 ---\nconst $sel=sel=>isJQ?$form.find(sel):null;const qs=sel=>isJQ?$sel(sel)[0]:form.querySelector(sel);const allConsent=qs('input[name=\"all_consent_contact\"]');const privacy=qs('input[name=\"privacy_consent_contact\"]');const marketing=qs('input[name=\"marketing_consent_contact\"]');if(allConsent&&privacy&&marketing){let updating=false;const fire=(el,checked)=>{if(!el)return;const needToggle=!!el.checked!==!!checked;if(needToggle){el.click()// 허브스팟 내부 이벤트 트리거\n;}else{if(isJQ){$sel(`[name=\"${el.name}\"]`).prop(\"checked\",checked).trigger(\"input\").trigger(\"change\");}else{el.checked=checked;el.dispatchEvent(new Event(\"input\",{bubbles:true}));el.dispatchEvent(new Event(\"change\",{bubbles:true}));}}};const onAllChange=()=>{if(updating)return;updating=true;const checked=allConsent.checked;fire(privacy,checked);fire(marketing,checked);updating=false;};const syncAll=()=>{if(updating)return;updating=true;const shouldAll=privacy.checked&&marketing.checked;if(allConsent.checked!==shouldAll){if(isJQ){$sel('input[name=\"all_consent_contact\"]').prop(\"checked\",shouldAll).trigger(\"input\").trigger(\"change\");}else{allConsent.checked=shouldAll;allConsent.dispatchEvent(new Event(\"input\",{bubbles:true}));allConsent.dispatchEvent(new Event(\"change\",{bubbles:true}));}}updating=false;};allConsent.addEventListener(\"change\",onAllChange);privacy.addEventListener(\"change\",syncAll);marketing.addEventListener(\"change\",syncAll);}// --- 표시 전환 (플리커 제거) ---\nconst ctn=document.getElementById(\"hubspot-form-container\");if(ctn)ctn.style.opacity=\"1\";},// 251028 - 전체 동의 클릭 시 개인정보 동의 체크 실제 적용 안되는 문제\n// onFormReady: function ($formLike) {\n//     // ----- jQuery/Native 대응: form 요소 확보 -----\n//     const form =\n//         $formLike && typeof $formLike.get === \"function\"\n//             ? $formLike.get(0)\n//             : $formLike\n//     if (!form) return\n//     // 0) iframe 내부 CSS 선주입 (하위 두 체크박스 들여쓰기)\n//     try {\n//         const doc = form.ownerDocument\n//         const styleEl = doc.createElement(\"style\")\n//         styleEl.textContent = `\n//         input[name=\"privacy_consent_contact\"],\n//         input[name=\"marketing_consent_contact\"] {\n//             margin-left: 20px !important;\n//         }\n//         /* 라벨 들여쓰기 원하면 주석 해제\n//         label[for^=\"privacy_consent_contact\"],\n//         label[for^=\"marketing_consent_contact\"] {\n//             padding-left: 20px;\n//             display: block;\n//         } */\n//         `\n//         doc.head.appendChild(styleEl)\n//     } catch (e) {\n//         console.warn(\"style inject failed:\", e)\n//     }\n//     // 1) 폼 필드 값 삽입 (change 디스패치 포함)\n//     const setVal = (name, val) => {\n//         const el = form.querySelector(`[name=\"${name}\"]`)\n//         if (!el) return\n//         el.value = val\n//         el.dispatchEvent(new Event(\"change\", { bubbles: true }))\n//     }\n//     setVal(\"services_name\", service)\n//     setVal(\"contact_create_source\", formType)\n//     let submitEl = form.querySelector(\n//         '[name=\"submit_services\"]'\n//     )\n//     if (!submitEl) {\n//         submitEl = form.ownerDocument.createElement(\"input\")\n//         submitEl.type = \"hidden\"\n//         submitEl.name = \"submit_services\"\n//         form.appendChild(submitEl)\n//     }\n//     submitEl.value = submitService\n//     // 2) ✅ 전체 동의 체크박스 그룹 로직 (순수 DOM)\n//     const qs = (sel) => form.querySelector(sel)\n//     const allConsent = qs('input[name=\"all_consent_contact\"]')\n//     const privacy = qs('input[name=\"privacy_consent_contact\"]')\n//     const marketing = qs(\n//         'input[name=\"marketing_consent_contact\"]'\n//     )\n//     if (allConsent && privacy && marketing) {\n//         let updating = false\n//         const onAllChange = () => {\n//             if (updating) return\n//             updating = true\n//             const checked = allConsent.checked\n//             privacy.checked = checked\n//             marketing.checked = checked\n//             privacy.dispatchEvent(\n//                 new Event(\"change\", { bubbles: true })\n//             )\n//             marketing.dispatchEvent(\n//                 new Event(\"change\", { bubbles: true })\n//             )\n//             updating = false\n//         }\n//         const syncAll = () => {\n//             if (updating) return\n//             updating = true\n//             allConsent.checked =\n//                 privacy.checked && marketing.checked\n//             updating = false\n//         }\n//         allConsent.addEventListener(\"change\", onAllChange)\n//         privacy.addEventListener(\"change\", syncAll)\n//         marketing.addEventListener(\"change\", syncAll)\n//     }\n//     // 3) 모든 세팅 완료 → 컨테이너 표시 (플리커 제거)\n//     const ctn = document.getElementById(\n//         \"hubspot-form-container\"\n//     )\n//     if (ctn) ctn.style.opacity = \"1\"\n// },\nonFormSubmitted:function(_$form){// const params = new URLSearchParams(window.location.search)\n// const redirectUrl = `https://wefuncorp.com/confirm/${service}-${formType}?${params}`\n// window.location.href = redirectUrl\n}});setLoaded(true);}// Hubspot Form Submit Callback\nconst onMessage=event=>{if(event.data?.type===\"hsFormCallback\"){// console.log(\"hsFormCallback event.data\", event.data)\n}if(event.data?.type===\"hsFormCallback\"&&event.data?.eventName===\"onFormSubmitted\"){const params=new URLSearchParams(window.location.search);const redirectUrl=`https://wefuncorp.com/confirm/${service}-${formType}?${params}`;window.location.href=redirectUrl;}};window.addEventListener(\"message\",onMessage);return()=>{window.removeEventListener(\"message\",onMessage);};},[service,formType,portalId,formId,region,submitService]);return /*#__PURE__*/_jsx(\"div\",{id:\"hubspot-form-container\",style:{width:formWidth,minHeight:700,maxHeight:700,overflowY:\"auto\",transition:\"opacity .12s ease\"}});}addPropertyControls(HubspotForm2,{service:{title:\"서비스명\",type:ControlType.String,defaultValue:\"snack\"},submitService:{title:\"서비스 한글명\",type:ControlType.String,defaultValue:\"스낵24\"},formType:{title:\"폼 타입\",type:ControlType.String,defaultValue:\"all\"},portalId:{title:\"portalId\",type:ControlType.String,defaultValue:\"\"},formId:{title:\"formId\",type:ControlType.String,defaultValue:\"\"},region:{title:\"region\",type:ControlType.String,defaultValue:\"\"},formWidth:{title:\"폼 가로 길이\",type:ControlType.String,defaultValue:\"600px\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"HubspotForm2\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"auto\",\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./HubspotForm2.map"],"mappings":"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"}