{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/RHc6vUHHhFhDYysM02gb/Nfz8uhHn7qBwShK6qOV5/HubSpotForm.js"],
  "sourcesContent": ["import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef}from\"react\";import{addPropertyControls,ControlType}from\"framer\";const waitForAbsId=(timeout=5e3)=>{return new Promise((resolve,reject)=>{// If absId is already available, resolve immediately\nif(window.absId){console.log(\"waitForAbsId: absId is already available:\",window.absId);resolve(window.absId);return;}console.log(\"waitForAbsId: absId not available yet. Polling...\");const checkInterval=setInterval(()=>{if(window.absId){clearInterval(checkInterval);console.log(\"waitForAbsId: absId is now available:\",window.absId);resolve(window.absId);}},100)// Poll every 100ms\n;// Timeout after specified duration\nsetTimeout(()=>{clearInterval(checkInterval);const error=new Error(\"absId did not become available in time\");console.error(\"waitForAbsId:\",error);reject(error);},timeout);});};export function HubspotFormEmbed({portalId,formId,hiddenFields,goalName,goalProperties=[],zukoFormId}){const formRef=useRef(null);useEffect(()=>{if(!portalId||!formId)return;const createHubspotForm=()=>{if(window[\"hbspt\"]){var _formRef_current;window[\"hbspt\"].forms.create({portalId:String(portalId),formId:formId,target:`#${(_formRef_current=formRef.current)===null||_formRef_current===void 0?void 0:_formRef_current.id}`,onFormReady:async function($form){try{// Wait for absId to be available before creating the form\nconst absId=await waitForAbsId();console.log(\"Creating HubSpot form with absId:\",absId);// Update the form with absId\naddOrUpdateHiddenField($form,\"absId\",absId);updateHsContext($form,\"onFormReady\");// Force HubSpot to recognize new hidden fields\n$form.dispatchEvent(new Event(\"change\",{bubbles:true}));}catch(error){console.error(\"Failed to initialize form with absId:\",error);}// Setup Zuko tracking if needed\nif(zukoFormId)zukoTracking($form,zukoFormId);},onFormSubmit:function($form){trackGoal();if(zukoFormId&&window.Zuko)Zuko.trackForm({slug:zukoFormId}).trackEvent(Zuko.COMPLETION_EVENT);}});}else{console.warn(\"HubSpot forms library not found in window.\");}};// Function to add or update a hidden field in the form\nconst addOrUpdateHiddenField=(formNode,fieldName,value)=>{let inputField=formNode.querySelector(`input[name=\"${fieldName}\"]`);if(inputField){inputField.value=value;}else{const newHiddenField=document.createElement(\"input\");newHiddenField.type=\"hidden\";newHiddenField.name=fieldName;newHiddenField.value=value;formNode.appendChild(newHiddenField);}};const zukoTracking=($form,slug)=>{if(window.Zuko){// Zuko.trackForm({ slug }).trackEvent(Zuko.FORM_VIEW_EVENT)\nfor(const eventType of window.Zuko.eventTypes){$form.addEventListener(eventType,({type:eventType,target:{tagName,type,name}})=>{const element=document.createElement(tagName);element.name=name;try{element.type=type;}catch(_){// Ignore\n}window.Zuko.trackForm({slug}).trackEvent({type:eventType,target:element});});}}};// Function to update `hs_context` with custom fields on `onFormSubmit`\nconst updateHsContext=($form,event)=>{const absId=window.absId||\"\";// Locate the `hs_context` hidden input field within the real form element\nconst hsContextField=$form.querySelector(`input[name=\"hs_context\"]`);if(hsContextField){try{// Parse the existing `hs_context` JSON string into an object\nlet hsContextData=JSON.parse(hsContextField.value||\"{}\");// Inject the `absId` into the context and log it\nhsContextData.absId=absId;// Convert the `hiddenFields` array into a key-value object and inject into hsContext\nhiddenFields.forEach(({key,value})=>{if(key){hsContextData[key]=value;console.log(`[${event}] Added custom hidden field: ${key} = ${value}`);}});// Convert back to JSON string and set the modified value\nhsContextField.value=JSON.stringify(hsContextData);}catch(error){console.error(`[${event}] Failed to update hs_context field. Error:`,error);}}else{console.warn(`[${event}] hs_context hidden field not found in the form.`);}};// Function to track an ABsmartly goal\nconst trackGoal=()=>{if(window.ABsmartlyContext&&goalName){const propertiesObject=convertArrayToObject(goalProperties);try{window.ABsmartlyContext.track(goalName,propertiesObject||{});}catch(error){console.error(\"Failed to track goal. Error:\",error);}}else{console.warn(\"ABsmartlyContext not found or goalName is missing.\");}};// Convert a list of key-value pairs to an object\nconst convertArrayToObject=pairs=>{const result={};pairs.forEach(({key,value})=>{if(key){result[key]=value;}});return result;};// Function to load a script\nconst loadScript=src=>{return new Promise((resolve,reject)=>{const script=document.createElement(\"script\");script.src=src;script.async=true;script.onload=()=>resolve();script.onerror=error=>reject(error);document.body.appendChild(script);});};const initializeForm=async()=>{try{// Generate a unique ID for the form container\nif(formRef.current){formRef.current.id=`hubspot-form-${Math.random().toString(36).substring(2,9)}`;console.log(\"Form container ID set:\",formRef.current.id);}// Load scripts in parallel\nconst scriptsToLoad=[];if(!window[\"hbspt\"]){console.log(\"Loading HubSpot script...\");scriptsToLoad.push(loadScript(\"https://js.hsforms.net/forms/v2.js\"));}if(zukoFormId){console.log(\"Loading Zuko script...\");scriptsToLoad.push(loadScript(\"https://assets.zuko.io/js/v2/client.min.js\"));}// Wait for all scripts to load\nif(scriptsToLoad.length>0){await Promise.all(scriptsToLoad);console.log(\"All scripts loaded successfully\");}if(zukoFormId){const zukoTrackingScript=document.createElement(\"script\");zukoTrackingScript.textContent=`Zuko.trackForm({target:document.body,slug:\"${zukoFormId}\"}).trackEvent(Zuko.FORM_VIEW_EVENT);`;document.body.appendChild(zukoTrackingScript);}// Create the HubSpot form\ncreateHubspotForm();}catch(error){console.error(\"Failed to initialize form:\",error);}};initializeForm();},[portalId,formId,hiddenFields,goalName,goalProperties,zukoFormId]);return /*#__PURE__*/_jsx(\"div\",{ref:formRef,style:{width:\"100%\",height:\"auto\"}});}// Property controls for the component in Framer\naddPropertyControls(HubspotFormEmbed,{portalId:{type:ControlType.Number,title:\"Portal ID\",defaultValue:20189991},formId:{type:ControlType.String,title:\"Form ID\"},hiddenFields:{type:ControlType.Array,title:\"Hidden Fields\",control:{type:ControlType.Object,controls:{key:{type:ControlType.String,title:\"Field Name\"},value:{type:ControlType.String,title:\"Value\"}}},defaultValue:[]},goalName:{type:ControlType.String,title:\"Goal Name\",defaultValue:\"form_submit\"},goalProperties:{type:ControlType.Array,title:\"Goal Properties\",control:{type:ControlType.Object,controls:{key:{type:ControlType.String,title:\"Property Key\"},value:{type:ControlType.String,title:\"Property Value\"}}},defaultValue:[]},zukoFormId:{type:ControlType.String,title:\"Zuko Form ID\"}});HubspotFormEmbed.defaultProps={formId:\"48243ec1-df0f-4cd3-bc86-db322278f098\"};\nexport const __FramerMetadata__ = {\"exports\":{\"HubspotFormEmbed\":{\"type\":\"reactComponent\",\"name\":\"HubspotFormEmbed\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./HubSpotForm.map"],
  "mappings": "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",
  "names": ["waitForAbsId", "timeout", "resolve", "reject", "window", "checkInterval", "error", "HubspotFormEmbed", "portalId", "formId", "hiddenFields", "goalName", "goalProperties", "zukoFormId", "formRef", "pe", "ue", "createHubspotForm", "_formRef_current", "$form", "absId", "addOrUpdateHiddenField", "updateHsContext", "zukoTracking", "trackGoal", "formNode", "fieldName", "value", "inputField", "newHiddenField", "slug", "eventType", "tagName", "type", "name", "element", "event", "hsContextField", "hsContextData", "key", "propertiesObject", "convertArrayToObject", "pairs", "result", "loadScript", "src", "script", "scriptsToLoad", "zukoTrackingScript", "p", "addPropertyControls", "ControlType"]
}
