1var module_41989989595=function(){const STEPS=[{title:"Value Points",fields:[{name:"value_points",required:!1}]},{title:"Marketing Phase",fields:[{name:"marketing_maturity_qualifier",required:!1}]},{title:"Personal Info",fields:[{name:"firstname",required:!0},{name:"lastname",required:!0},{name:"email",required:!0},{name:"phone",required:!0},{name:"company",required:!0},{name:"website",required:!1}]}],API_BASE="https://www.ironpaper.com/hs/serverless/api/hubspot";let container,bar,progress,step=0,fieldMeta={};const state={},form=document.getElementById("multistepForm");async function multistepInit(){const fieldList=STEPS.flatMap(s=>s.fields.map(f=>f.name)).join(","),res=await fetch(`${API_BASE}/fields?fields=${fieldList}`),allMeta=await res.json();fieldMeta=Object.fromEntries(allMeta.map(f=>[f.name,f])),function(){const wrapper=document.createElement("div");wrapper.id="form-step",container.appendChild(wrapper);const nav=document.createElement("div");nav.className="form-nav";const backBtn=document.createElement("button");backBtn.type="button",backBtn.className="previous-step",backBtn.textContent="Previous",backBtn.onclick=()=>showStep(--step),nav.appendChild(backBtn);const nextBtn=document.createElement("button");nextBtn.type="button",nextBtn.className="next-step hs-button primary large",nextBtn.textContent="Next",nav.appendChild(nextBtn),form.appendChild(nav)}(),function(){const wrapper=container;
1STEPS.forEach(({fields:fields},stepIndex)=>{const stepWrapper=document.createElement("div");stepWrapper.className="form-step",stepWrapper.dataset.step=stepIndex,stepIndex!==step&&stepWrapper.classList.add("hidden"),fields.forEach(({name:name,required:required})=>{const field=fieldMeta[name];if(!field)return;const fieldType=typeOverrides[name]||(field.inputType||"text").toLowerCase(),fieldWrapper=document.createElement("div");fieldWrapper.className=`hs-form-field hs-fieldtype-${fieldType} hs-${name}`;const label=document.createElement("label");let input;label.htmlFor=name,label.textContent=field.label+(required?" *":""),fieldWrapper.appendChild(label),"checkbox"===field.inputType&&field.options?.length?(input=document.createElement("ul"),input.className="hs-form-checkbox-display",field.options.forEach(opt=>{const checkbox=document.createElement("input");checkbox.type="checkbox",checkbox.name=name,checkbox.value=opt.value,checkbox.id=`${name}__${opt.value}`,Array.isArray(state[name])&&state[name].includes(opt.value)&&(checkbox.checked=!0);const cbLabel=document.createElement("label");cbLabel.htmlFor=checkbox.id,cbLabel.textContent=opt.label;const group=document.createElement("li");group.className="hs-form-checkbox",group.appendChild(checkbox),group.appendChild(cbLabel),input.appendChild(group)})):"select"===field.inputType&&field.options?.length?(input=document.createElement("select"),input.name=name,input.id=name,field.options.forEach(opt=>{const option=new Option(opt.label,opt.value);input.add(option)}),input.value=state[name]||""):"textarea"===field.inputType?(input=document.createElement("textarea"),input.name=name,input.id=name,input.className="hs-input",input.value=state[name]||""):(input=document.createElement("input"),input.type=fieldType,input.name=name,input.id=name,input.className="hs-input",input.value=state[name]||""),input&&required&&"DIV"!==input.tagName&&(input.required=!0),fieldWrapper.appendChild(input),fieldWrapper.appendChild(document.createElement("div")),stepWrapper.appendChild(fieldWrapper)}),wrapper.appendChild(stepWrapper)}),form.classList.remove("pre-render");const inputs=form.querySelectorAll(".hs-fieldtype-text:not(.hs-linkedinbio), .hs-fieldtype-tel, .hs-fieldtype-email");for(var i=0;i<inputs.length;i++)initInput(inputs[i])}(),showStep(step)}form&&(container=form.querySelector(".field-container"),bar=form.querySelector(".progress-bar"),progress=form.querySelector(".progress"));const typeOverrides={email:"email",phone:"tel"};function showStep(stepIndex){const steps=form.querySelectorAll(".form-step");steps.forEach((el,i)=>{i===stepIndex?(el.classList.remove("hidden"),requestAnimationFrame(()=>{el.classList.add("active")})):(el.classList.remove("active"),el.classList.add("hidden"))});const pct=Math.round((stepIndex+1)/STEPS.length*100);progress.style.width=`${pct}%`;const backBtn=form.querySelector(".form-nav .previous-step"),nextBtn=form.querySelector(".form-nav .next-step");backBtn.disabled=0===stepIndex,nextBtn.textContent=stepIndex===STEPS.length-1?"Connect with Us":"Next",nextBtn.onclick=stepIndex===STEPS.length-1?submitForm:nextStep;const activeStep=steps[stepIndex];if(activeStep){const focusable=activeStep.querySelector('input[type="text"], input[type="email"], input[type="tel"]');focusable&&focusable.focus()}}function nextStep(){validateCurrentStep()&&(step++,showStep(step))}async function submitForm(){if(!validateCurrentStep(STEPS.length-1))return;const hutk=document.cookie.split("; ").find(row=>row.startsWith("hubspotutk="))?.split("=")[1],context={hutk:hutk,pageUri:window.location.href,pageName:document.title},res=await fetch(`${API_BASE}/submit`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:state,context:context})});res.ok?window.location.href="https://www.ironpaper.com/thank-you/":(alert("Oops â submission failed."),console.error(await res.text()))}function validateCurrentStep(forcedStep=step){const{fields:fields}=STEPS[forcedStep];let hasError=!1;return fields.forEach(({name:name,required:required})=>{const field=fieldMeta[name],labelText=field?.label||name,container=document.querySelector(`.hs-${name}`),existingError=container?.querySelector(".field-error");existingError&&existingError.remove();const els=[...document.querySelectorAll(`[name="${name}"]`)];let value,isValid=!0,errorMsg="";if(1===els.length){const el=els[0];value=el.value,required&&("email"===el.type?function(value){return/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test(value.trim())}(value)||(isValid=!1,errorMsg="Please enter a valid email address."):"tel"===el.type?function(value){return value.replace(/\D/g,"").length>=10&&/^\+?[\d\s\-().]{7,}$/.test(value.trim())}(value)||(isValid=!1,errorMsg="Please enter a valid phone number."):el.checkValidity()||(isValid=!1,errorMsg=`Please enter your ${labelText.toLowerCase()}.`))}else{const selected=els.filter(el=>el.checked).map(el=>el.value);isValid=!required||selected.length>0,value=selected,required&&0===selected.length&&(errorMsg=`Please select at least one ${labelText.toLowerCase()}.`)}if(isValid)state[name]=value;else{hasError=!0;const errorId=`${name}-error-msg`,errorP=document.createElement("p");errorP.className="field-error",errorP.id=errorId,errorP.setAttribute("role","alert"),errorP.setAttribute("aria-live","assertive"),errorP.textContent=errorMsg,container.appendChild(errorP),els.forEac
1h(el=>{el.classList.add("invalid","error"),el.setAttribute("aria-invalid","true"),el.setAttribute("aria-describedby",errorId);const removeError=()=>{el.classList.remove("invalid","error"),el.removeAttribute("aria-invalid"),el.removeAttribute("aria-describedby");const errEl=container.querySelector(`#${errorId}`);errEl&&errEl.remove()};el.addEventListener("focus",removeError,{once:!0}),el.addEventListener("change",removeError,{once:!0}),el.addEventListener("blur",()=>{el.checkValidity?.()&&el.classList.contains("invalid")&&removeError()},{once:!0})})}}),!hasError}document.addEventListener("DOMContentLoaded",()=>{document.querySelectorAll(".cl-fr-container").forEach(function(form){var formString;form.querySelector("#multistepForm")?(multistepInit(),formString="#multistepForm"):formString="form.hsForm_"+form.dataset.form,waitForForm(formString).then(elm=>{const inputs=elm.querySelectorAll(".hs-fieldtype-text:not(.hs-linkedinbio), .hs-fieldtype-phonenumber");for(var i=0;i<inputs.length;i++)initInput(inputs[i])})})});const waitForForm=selector=>new Promise(resolve=>{if(document.querySelector(selector))return resolve(document.querySelector(selector));const observer=new MutationObserver(mutations=>{document.querySelector(selector)&&(observer.disconnect(),resolve(document.querySelector(selector)))});observer.observe(document.body,{childList:!0,subtree:!0})}),initInput=container=>{let label=container.querySelector("label"),input=container.querySelector(".hs-input"),labelShift=gsap.to(label,{paused:!0,scale:.7,yPercent:-150,duration:.3,transformOrigin:"center left",ease:"power3.inOut"});""!=input.value&&labelShift.play(),input.addEventListener("focus",function(event){labelShift.play()}),input.addEventListener("blur",function(event){input.value||labelShift.reverse()})}}(); 2//# sourceURL=https://281355.fs1.hubspotusercontent-na1.net/hubfs/281355/hub_generated/module_assets/1/41989989595/1773071338504/module_Content_Left_Form_Right.js
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.