/* growform client2 bundle.url: https://assets.growform.co/5050e03-mh22ly5y/form.bundle.js resolve.source: memory resolve.at: 2025-10-22T17:14:07.793Z form.source: api cache.age_ms: 9124 fallback_used: false */ ;(function () { var EMBED_TYPE = "iFrame"; var FORM_ID = "648f487720bc73000b0145d6"; var FORM_BUNDLE_URL = "https://assets.growform.co/5050e03-mh22ly5y/form.bundle.js"; // injected by worker (KV/memory/fallback) var FORM_DATA = {"data":{"form":{"_id":"648f487720bc73000b0145d6","steps":[{"id":"4549006b3238878b38d7d4e7","name":"Drive or Patio","sortOrder":1},{"id":"8ed682951ad3c632fd3e7b6f","name":"Surface Type - Patio","sortOrder":2,"conditionalLogic":{"action":"show","ruleBlocks":[{"sortOrder":0,"rules":[{"observedField":"single select_148912270813498","operator":"selected_option","criteria":"284aedf7d3a81aea3369fefe"},{"observedField":"single select_148912270813498","operator":"selected_option","criteria":"1d32fce5ca17af9b15f14efd"}]}]}},{"id":"3ea1e67834edc225ca6de415","name":"Surface Type - Drive","sortOrder":3,"copyOf":"8ed682951ad3c632fd3e7b6f","conditionalLogic":{"action":"show","ruleBlocks":[{"sortOrder":0,"rules":[{"observedField":"single select_148912270813498","operator":"selected_option","criteria":"2e7b1e3edf6a21467a1356b3"},{"observedField":"single select_148912270813498","operator":"selected_option","criteria":"1d32fce5ca17af9b15f14efd"}]}]}},{"id":"6ab1376392b2d53019dc1042","name":"Primary Soiling","sortOrder":4},{"id":"41cc2bd8bc0231ae2c224719","name":"First Line Address","sortOrder":5},{"id":"b0f0ed4726f67cf1da8361f1","name":"Unnamed step 5","sortOrder":6},{"id":"a23d56e59301cb3a45df9dd3","name":"Unnamed step 6","sortOrder":7},{"id":"57df75df207eeacb55551534","name":"Name","sortOrder":8},{"id":"183afe4ac7f2df33ae95ed6e","name":"Unnamed step 7","sortOrder":9}],"formName":"Drive & Patio Cleaning","fields":{"decorative text_52363373085874":{"type":"Decorative Header","value":"Your Drive & Patio Quote Is On The Way!","width":12,"step":"complete","sortOrder":1,"fieldStyle":{"fontSize":{"value":"22","unit":"px"},"fontWeight":"Bold"},"margins":{"marginTop":20},"stepId":"complete"},"decorative text_576559560634956":{"type":"Decorative Header","value":"Location - Post Code","width":12,"step":5,"sortOrder":1,"fieldStyle":{"fontSize":{"value":"22","unit":"px"},"fontWeight":"Bold","textAlign":"Left"},"stepId":"b0f0ed4726f67cf1da8361f1"},"decorative text_194067845817258":{"type":"Decorative Paragraph","value":"A member of our team will be in touch with you within 48 working hours. \n","width":12,"step":"complete","sortOrder":2,"margins":{"marginBottom":60},"stepId":"complete"},"decorative text_56213455664147":{"type":"Decorative Header","value":"Primary soiling...","width":12,"step":3,"sortOrder":1,"fieldStyle":{"fontSize":{"value":"21","unit":"px"},"fontWeight":"Bold","textAlign":"Left"},"stepId":"6ab1376392b2d53019dc1042"},"decorative header_838442739020120":{"type":"Decorative Header","value":"Drive or patio...","width":12,"sortOrder":1,"step":1,"fieldStyle":{"fontFamily":"Mulish","textAlign":"Left"},"stepId":"4549006b3238878b38d7d4e7"},"single select_148912270813498":{"type":"Single Select","width":12,"label":"Drive or patio...","options":[{"text":"Driveway","id":"2e7b1e3edf6a21467a1356b3"},{"text":"Patio","id":"284aedf7d3a81aea3369fefe"},{"text":"Both","image":null,"id":"1d32fce5ca17af9b15f14efd"}],"helperText":null,"step":1,"sortOrder":2,"validationRules":{"required":true},"stepId":"4549006b3238878b38d7d4e7"},"single select_990018989483279":{"type":"Single Select","width":12,"label":"Primary soiling...","options":[{"text":"Moss","id":"484ea18463a6ddbc60c53398"},{"text":"Algae ","id":"52ffa37c77d002f428a152ef"},{"text":"Lichen","id":"b7c5394ad75949127b4c6a3d"},{"text":"Carbon","image":null,"id":"0cd0cae3760497100078ff98"},{"text":"Graffiti","image":null,"id":"d1b58e0d9325e59b06a2792b"},{"text":"General grime","image":null,"id":"fcfbca68bea39659796a689b"},{"text":"Weeds","image":null,"id":"06c698b327cdfec52a334e9d"}],"helperText":null,"step":3,"sortOrder":2,"validationRules":{"required":true},"stepId":"6ab1376392b2d53019dc1042"},"decorative header_323722194895032":{"type":"Decorative Header","value":"Email for Estimate...","width":12,"sortOrder":1,"step":6,"fieldStyle":{"textAlign":"Left"},"stepId":"a23d56e59301cb3a45df9dd3"},"email_836096070705177":{"type":"Email","label":"What is your email address?","width":12,"step":6,"sortOrder":2,"stepId":"a23d56e59301cb3a45df9dd3"},"decorative header_743720678432519":{"type":"Decorative Header","value":"Contact Number...","width":12,"sortOrder":1,"step":7,"fieldStyle":{"textAlign":"Left"},"stepId":"183afe4ac7f2df33ae95ed6e"},"phone_192224535258866":{"type":"Phone","label":"What is your phone number?","width":12,"step":7,"sortOrder":2,"defaultCountryFormat":"gb","validationRules":{"required":true,"regex":"phone"},"stepId":"183afe4ac7f2df33ae95ed6e"},"decorative header_973487602651944":{"type":"Decorative Header","value":"Patio type...","width":12,"sortOrder":1,"step":2,"fieldStyle":{"textAlign":"Left"},"stepId":"8ed682951ad3c632fd3e7b6f"},"single select_163802748425046":{"type":"Single Select","width":12,"label":"Patio type...","options":[{"text":"Concrete","id":"52ef2aac961d5aa62195a8e4"},{"text":"Brick","id":"87c521b2ac2dfccaabaf8453"},{"text":"Stone","id":"9d110e42336dcdcc7683c769"},{"text":"Pavers","image":null,"id":"c2fd33e53f9fb31212023528"},{"text":"Tile","image":null,"id":"ff0ea16adaf4b98e5e5ea2f6"},{"text":"Mixed","image":null,"id":"056ef672d2f364322e09c503"}],"helperText":null,"step":2,"sortOrder":2,"validationRules":{"required":true},"stepId":"8ed682951ad3c632fd3e7b6f"},"decorative_header_364257670164416":{"type":"Decorative Header","value":"Location - First Line Address","width":12,"sortOrder":1,"stepId":"41cc2bd8bc0231ae2c224719","fieldStyle":{"textAlign":"Left"}},"text_242818241101142":{"type":"Text","label":"What is your first line of address","width":12,"stepId":"41cc2bd8bc0231ae2c224719","sortOrder":2,"validationRules":{"required":true}},"decorative_header_694936253124926":{"type":"Decorative Header","value":"Driveway type...","width":12,"sortOrder":1,"step":2,"fieldStyle":{"textAlign":"Left"},"stepId":"3ea1e67834edc225ca6de415"},"single_select_945324708405878":{"type":"Single Select","width":12,"label":"Driveway type...","options":[{"text":"Concrete","id":"52ef2aac961d5aa62195a8e4"},{"text":"Asphalt","id":"87c521b2ac2dfccaabaf8453"},{"text":"Gravel","id":"9d110e42336dcdcc7683c769"},{"text":"Brick","image":null,"id":"c2fd33e53f9fb31212023528"},{"text":"Cobblestone","image":null,"id":"ff0ea16adaf4b98e5e5ea2f6"},{"text":"Tarmac","image":null,"id":"056ef672d2f364322e09c503"},{"text":"Resin","image":null,"id":"c52692f98bd66e6e6b48ad6d"}],"helperText":null,"step":2,"sortOrder":2,"validationRules":{"required":true},"stepId":"3ea1e67834edc225ca6de415"},"decorative_header_733391433756979":{"type":"Decorative Header","value":"Please tell us your name...","width":12,"sortOrder":1,"stepId":"57df75df207eeacb55551534","fieldStyle":{"textAlign":"Left"}},"text_675146953766521":{"type":"Text","label":"name","width":12,"sortOrder":2,"stepId":"57df75df207eeacb55551534","validationRules":{"required":true}},"zipcode_935014501341783":{"type":"Zipcode","label":"What is your post code?","zipcodeFieldFormat":"postcode_uk","width":12,"stepId":"b0f0ed4726f67cf1da8361f1","sortOrder":2}},"options":{"numberOfSteps":7,"dateFormat":"DD/MM/YYYY","progressBar":{"enable":true},"continueButton":{"continueText":"Next","submitText":"Show my estimate now","backText":"Back"},"customStyles":{"width":{"unit":"px","value":650},"parentContainerMinHeight":{"value":0,"unit":"px"},"parentBackgroundImage":{"imageInitialHeight":1116,"imageInitialWidth":1902,"imageHeight":1116,"imageWidth":1902,"imageUrl":"https://res.cloudinary.com/dqnjggegp/image/upload/v1601640522/uploads/qrwuvldlke6g8njr2x6j.jpg"},"headerMarginTop":70,"parentBackgroundColor":"#171d21","innerFormBackgroundColor":"#ffffff","innerFormBackgroundTransparency":"","primaryColor":"#148007","bodyTextColor":"#ffffff","parentContainerBackgroundType":"none","innerFormBackgroundType":"none","buttonBorderColor":"#ffffff","buttonColorSelected":"#dce3ec","buttonBorderColorSelected":"#2696e6","footerMarginBottom":70,"errorColor":"#ff4e4e","buttonColor":"#ffffff","inputLabelColor":"#a3a3a3","inputTextColor":"#000000","buttonTextColor":"#000000"},"localization":{"dateFormat":"DD/MM/YYYY"},"exportTransparentBackground":false,"customScript":"","customCss":".parentContainer {\npadding-top: 10px;\n}\n\n.formBackground {\npadding-top: 10px;\n}","actionOnSubmit":"fireJavaScript"},"ownedByUser":"62c033aff75d9e0022871728","personalisation":{"form_related_to":"Roofers / roofing"},"created":"2023-06-18T18:09:59.342Z","__v":0,"lastEdited":"2023-10-16T18:19:11.325Z","screenshotUrl":"https://res.cloudinary.com/dqnjggegp/image/upload/v1742564993/growform-production/form-screenshots/648f487720bc73000b0145d6.png","leadsCount":5,"isActive":true},"accountIsActive":true,"accountIsFreeTrial":false}}; // ---- 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' + '