/* growform client2 bundle.url: https://assets.growform.co/cee2d99-mhw6hzfz/form.bundle.js resolve.source: memory resolve.at: 2025-12-10T02:50:17.862Z form.source: api cache.age_ms: 9518 fallback_used: false */ ;(function () { var EMBED_TYPE = "iFrame"; var FORM_ID = "678961dfa51991000b03561a"; var FORM_BUNDLE_URL = "https://assets.growform.co/cee2d99-mhw6hzfz/form.bundle.js"; // injected by worker (KV/memory/fallback) var FORM_DATA = {"data":{"form":{"_id":"678961dfa51991000b03561a","steps":[{"id":"acd45227cac332d443c4e1db","name":"Step 1","sortOrder":1},{"id":"ac0ce1d8634334328d03ff33","name":"Residential Project","sortOrder":2,"copyOf":"8d53a2591d86a402dbecf0d3","conditionalLogic":{"action":"show","ruleBlocks":[{"sortOrder":0,"rules":[{"observedField":"buttons_485431231808561","operator":"selected_option","criteria":"6f2a813b3d39c5afbad8e16b"},{"observedField":"buttons_485431231808561","operator":"not_selected_option","criteria":"708fbd32de8ca944a2f64082"}]}]}},{"id":"60c2d61a66a74bcb70ce6e49","name":"Residential Project 2","sortOrder":3,"copyOf":"acd45227cac332d443c4e1db","conditionalLogic":{"action":"show","ruleBlocks":[{"sortOrder":0,"rules":[{"observedField":"buttons_485431231808561","operator":"not_selected_option","criteria":"708fbd32de8ca944a2f64082"}]}]}},{"id":"fe1c1c627e2401c9e5263ca9","name":"Commercial Project","sortOrder":4,"conditionalLogic":{"action":"show","ruleBlocks":[{"sortOrder":0,"rules":[{"observedField":"buttons_485431231808561","operator":"selected_option","criteria":"708fbd32de8ca944a2f64082"},{"observedField":"buttons_485431231808561","operator":"not_selected_option","criteria":"6f2a813b3d39c5afbad8e16b"}]}]}},{"id":"b4bb64e865c1d5e7597417fd","name":"Residential Project 3","sortOrder":5,"copyOf":"60c2d61a66a74bcb70ce6e49","conditionalLogic":null},{"id":"ff4727c9498ef9c0a6c989d9","name":"Residential Project 4 Contact info","sortOrder":6}],"formName":"Garage Force of Snohomish County ","fields":{"Decorative Header_52363373085874":{"type":"Decorative Header","value":"Thanks for your enquiry!","width":12,"step":"complete","sortOrder":1,"fieldStyle":{"fontSize":{"value":19,"unit":"px"},"fontWeight":"Bold"},"margins":{"marginTop":20},"stepId":"complete"},"Decorative Header_797442086161467":{"type":"Decorative Header","value":"What Service Are You Interested In?","width":12,"step":2,"sortOrder":1,"fieldStyle":{"fontSize":{"value":19,"unit":"px"},"fontWeight":"Bold"},"stepId":"acd45227cac332d443c4e1db","margins":{"marginBottom":5}},"Decorative Header_576559560634956":{"type":"Decorative Header","value":"How shall we contact you?","width":12,"step":5,"sortOrder":1,"fieldStyle":{"fontSize":{"value":19,"unit":"px"},"fontWeight":"Bold"},"stepId":"ff4727c9498ef9c0a6c989d9","margins":{"marginBottom":5}},"email_907058157108782":{"type":"Email","label":"Your email address","width":12,"margins":{"marginBottom":0},"step":5,"sortOrder":5,"stepId":"ff4727c9498ef9c0a6c989d9","validationRules":{"required":true,"regex":"email"}},"phone_589083232390193":{"type":"Phone","label":"Your phone number","width":12,"margins":{"marginBottom":0},"step":5,"sortOrder":4,"helperText":"","stepId":"ff4727c9498ef9c0a6c989d9","validationRules":{"required":true,"regex":"phone"}},"text_373461752242760":{"type":"Text","label":"First Name","width":12,"margins":{"marginBottom":0},"step":5,"sortOrder":2,"validationRules":{"required":true},"stepId":"ff4727c9498ef9c0a6c989d9","hideLabel":false},"Decorative_Paragraph_194067845817258":{"type":"Decorative Paragraph","value":"Thanks for getting in touch. We'll be in contact soon with next steps.","width":12,"step":"complete","sortOrder":2,"margins":{"marginBottom":60},"stepId":"complete"},"decorative_header_46751409231390":{"type":"Decorative Header","value":"What Floor Surface Are You Interested In Completing?","width":12,"step":1,"sortOrder":1,"fieldStyle":{"fontSize":{"value":19,"unit":"px"},"fontWeight":"Bold"},"stepId":"ac0ce1d8634334328d03ff33","margins":{"marginBottom":5}},"buttons_782408809089103":{"type":"Buttons","validationRules":{"required":false},"label":"SaaS tool needs","width":12,"hideLabel":true,"multiple":false,"options":[{"text":"Garage Floor","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1732686187/uploads/nbeowqatkjx7bwdcqwsr.jpg","id":"30517a20d4e24a916d0de9b7"},{"text":"Porch/Patio","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1732686247/uploads/yuywyni9i4lhfa7j0roz.png","id":"c4fdfe66371b2db22f1af773"},{"text":"Pool Surround","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1732686254/uploads/z3scjgfaymljlfhwuyhb.jpg","id":"80ca9cf5e40d39aeef449975"},{"text":"Sidewalk/Driveway","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1732686259/uploads/dddxkbiqigxoxplj1i4f.png","id":"e73867c75903ea11d2f7653d"},{"text":"Home Interior","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1732686264/uploads/s5stdpti6qp3n8nf2v3t.jpg","id":"87c226d6d22112a1a870e820"}],"step":1,"sortOrder":2,"helperText":"","imageStyles":{"width":"37","marginBottom":"17","sq_imageOnlyMode":"No","size":"33%"},"buttonStyle":{"minWidth":"107","height":"102","buttonsPerRow":"4","buttonsType":"Square","sq_buttonsPerRow":"3","sq_buttonsPerRowMobile":"2"},"stepId":"ac0ce1d8634334328d03ff33"},"buttons_485431231808561":{"type":"Buttons","validationRules":{"required":true},"label":"Step 1","width":12,"multiple":false,"buttonStyle":{"rt_buttonsPerRow":2,"rt_buttonsPerRowMobile":1,"buttonsType":"Square","spacing":20,"showControls":"Yes","rt_compactLayoutOnMobile":"Yes","sq_buttonsPerRow":"3"},"options":[{"text":"Residential Project","id":"6f2a813b3d39c5afbad8e16b","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1732685846/uploads/sunnbb3gwutplzp6pmwv.png"},{"text":"Commercial Project","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1732685854/uploads/zyre56wnfwl2bhtrt1av.png","id":"708fbd32de8ca944a2f64082"}],"stepId":"acd45227cac332d443c4e1db","sortOrder":2,"hideLabel":true,"imageStyles":{"rt_width":39,"size":"50%"}},"decorative_header_892646863007116":{"type":"Decorative Header","value":"Approximate Square Footage Of The Surface Area?","width":12,"step":2,"sortOrder":1,"fieldStyle":{"fontSize":{"value":19,"unit":"px"},"fontWeight":"Bold"},"stepId":"60c2d61a66a74bcb70ce6e49","margins":{"marginBottom":5}},"buttons_88398974892131":{"type":"Buttons","validationRules":{"required":true},"label":"Required features","width":12,"multiple":false,"buttonStyle":{"rt_buttonsPerRow":2,"rt_buttonsPerRowMobile":1,"buttonsType":"Rectangle","spacing":20,"showControls":"Yes","rt_compactLayoutOnMobile":"Yes","sq_buttonsPerRow":"2"},"options":[{"text":"Less thank 350 sqft","image":null,"id":"1b8fb32c139404bd79a4c75b"},{"text":"400 sqft - 600 sqft","image":null,"id":"4f39349d484dbbd8eb284a72"},{"text":"600 sqft- 800 sqft","image":null,"id":"973a87e8dd7d182dd58bcb3c"},{"text":"800 sqft+","image":null,"id":"0b2b5e26ee99f7904c765597"}],"stepId":"60c2d61a66a74bcb70ce6e49","sortOrder":2,"hideLabel":true,"imageStyles":{"size":"33%"}},"decorative_header_571859361534041":{"type":"Decorative Header","value":"Approximate Square Footage Of The Surface Area?","width":12,"sortOrder":1,"stepId":"fe1c1c627e2401c9e5263ca9","fieldStyle":{"fontSize":{"value":19,"unit":"px"}},"margins":{"marginBottom":5}},"decorative_header_346174429822992":{"type":"Decorative Header","value":"When Do You Want This Project Completed?","width":12,"step":2,"sortOrder":1,"fieldStyle":{"fontSize":{"value":19,"unit":"px"},"fontWeight":"Bold"},"stepId":"b4bb64e865c1d5e7597417fd","margins":{"marginBottom":5}},"buttons_630350322687014":{"type":"Buttons","validationRules":{"required":true},"label":"Required features","width":12,"multiple":false,"buttonStyle":{"rt_buttonsPerRow":2,"rt_buttonsPerRowMobile":1,"buttonsType":"Rectangle","spacing":20,"showControls":"Yes","rt_compactLayoutOnMobile":"Yes","sq_buttonsPerRow":"2"},"options":[{"text":"Immediately","image":null,"id":"1b8fb32c139404bd79a4c75b"},{"text":"1-2 Weeks","image":null,"id":"4f39349d484dbbd8eb284a72"},{"text":"30-60 Days","image":null,"id":"973a87e8dd7d182dd58bcb3c"}],"stepId":"b4bb64e865c1d5e7597417fd","sortOrder":2,"hideLabel":true,"imageStyles":{"size":"33%"}},"text_886551782140697":{"type":"Text","label":"Last Name","width":12,"stepId":"ff4727c9498ef9c0a6c989d9","sortOrder":3,"validationRules":{"required":true}},"checkboxes_744472662935257":{"type":"Checkboxes","label":"","width":"12","options":[{"text":"By providing your information you agree to receive marketing communications and content from Garage Force of Snohomish County. To unsubscribe text or email STOP.","id":"bd95b7db470bc19267fd5a64"}],"stepId":"ff4727c9498ef9c0a6c989d9","sortOrder":8,"validationRules":{"required":true}},"text_478141311785371":{"type":"Text","label":"Enter approximate SqFt","width":12,"stepId":"fe1c1c627e2401c9e5263ca9","sortOrder":2,"validationRules":{"required":false}},"zipcode_778508676729717":{"type":"Zipcode","label":"What is your zip code?","zipcodeFieldFormat":"zipcode_usa","width":12,"stepId":"ff4727c9498ef9c0a6c989d9","sortOrder":7},"address_15297253273768":{"type":"Address","label":"What is your address?","width":12,"stepId":"ff4727c9498ef9c0a6c989d9","sortOrder":6}},"options":{"numberOfSteps":5,"dateFormat":"DD/MM/YYYY","progressBar":{"enable":true},"continueButton":{"continueText":"Submit","submitText":"submit","backText":"Back"},"customStyles":{"width":{"unit":"px","value":580},"parentContainerMinHeight":{"value":0,"unit":"px"},"parentBackgroundImage":{"imageInitialHeight":1362,"imageInitialWidth":2066,"imageHeight":1362,"imageWidth":2066,"imageUrl":"https://res.cloudinary.com/dqnjggegp/image/upload/v1597337140/uploads/qmsfk98ank3wfp1ehvyg.jpg"},"headerMarginTop":40,"parentBackgroundColor":"#ffffff","innerFormBackgroundColor":"#ffffff","innerFormBackgroundTransparency":"","primaryColor":"#2868cb","bodyTextColor":"#343434","parentContainerBackgroundType":"color","innerFormBackgroundType":"none","buttonBorderColor":"#ff7500","buttonColorSelected":"#ffa659","buttonBorderColorSelected":"#ff7500","footerMarginBottom":70,"errorColor":"#ff4e4e","buttonColor":"#ff7500","buttonTextColor":"#ffffff","inputLabelColor":"#a3a3a3","inputTextColor":"#000000","defaultFont":"Open Sans","sq_buttonFont":"Poppins","sq_buttonFontSize":15,"showShadows":"Yes","sq_buttonTextColor":"#343434","sq_buttonColor":"#FFFFFF","sq_buttonColorSelected":"#FFFFFF","sq_buttonBorderColor":"#DADADA","sq_buttonBorderColorSelected":"primary","sq_buttonBannerColor":"#ffffff","rt_buttonFont":"Poppins","rt_buttonFontSize":15,"rt_buttonColor":"#FFFFFF","rt_buttonColorSelected":"#FFFFFF","rt_buttonTextColor":"#343434","rt_buttonBorderColor":"#DADADA","rt_buttonBorderColorSelected":"primary","inputLabelFont":"Poppins","inputFontSize":16,"continueSubmitButtonFontSize":15,"fullModeBackgroundColor":"#EAF0FA","canvasSetup":"minimal"},"localization":{"dateFormat":"MM/DD/YYYY"},"exportTransparentBackground":false,"customScript":"","customRedirectUrls":[{"url":"https://gfsnohomishcounty.localconcreteservice.com/thank-you","conditionalLogic":null}],"logo":{"value":"https://res.cloudinary.com/dqnjggegp/image/upload/v1731406418/uploads/iullku3kmehuw4gthw8v.webp","linkUrl":"https://www.example.com","imageWidth":80,"imageHeight":12,"imageInitialWidth":1160,"imageInitialHeight":171},"actionOnSubmit":"redirect","analyticsSettings":{"facebook":{"pixelId":" 381901944883443"}}},"ownedByUser":"6745e1fa47750d000bdba03d","personalisation":{"form_related_to":"B2B / SaaS"},"created":"2025-01-16T19:45:35.531Z","__v":0,"lastEdited":"2025-01-16T21:17:35.417Z","screenshotUrl":"https://res.cloudinary.com/dqnjggegp/image/upload/v1742556586/growform-production/form-screenshots/678961dfa51991000b03561a.png","leadsCount":3,"isActive":true},"accountIsActive":false,"accountIsFreeTrial":true}}; // ---- Utils ---- function safeJSONStringify(obj) { return JSON.stringify(obj) .replace(/<\/(script|style)/gi, '<\\/$1') .replace(//g, '--\\>') .replace(/\u2028/g, '\\u2028') .replace(/\u2029/g, '\\u2029'); } function preloadScript(href) { try { if (!href) return; if (document.querySelector('link[rel="preload"][href="' + href + '"]')) return; var l = document.createElement("link"); l.rel = "preload"; l.as = "script"; l.href = href; l.crossOrigin = ""; // allow cache reuse in iframe document.head.appendChild(l); } catch (_) {} } function parseQuery() { var out = {}; try { if (!window.location.search) return out; var usp = new URLSearchParams(window.location.search); usp.forEach(function (v, k) { out[k] = v; }); } catch (_) {} return out; } function buildIframeHTML(opts) { var html = '\n' + '\n' + '\n' + ' \n' + ' \n' + ' \n' + '\n' + '\n' + ' \n' + '
\n' + '