1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[707],{85542:function(e,t,s){"use strict";s.d(t,{c:function(){return m}});var r=s(67294),a="background-color: #262335",o="#FEDE5D",n="#D86FD4",i="#F88839",l="#E2E1E5",c="#B3AEAE",d="#36F5F3",u="#84C9F4";function m(e){var t=e.id,s=e.debug,m=void 0===s||s,f=e.extraData,h=(0,r.useState)(!1),g=h[0],x=h[1],p=(0,r.useState)(!1),b=p[0],v=p[1],y=(0,r.useState)(void 0),w=y[0],j=y[1],N=(0,r.useState)(),S=N[0],k=N[1];return(0,r.useEffect)(function(){w&&m&&(console.group("%c \uD83D\uDEA8 Formcarry Error \uD83D\uDEA8","background: #E44141; color: #fff"),console.table(w),console.log("%cif you want to disable debugging, just set debug to false like:","color: #11C759"),console.log("%cconst %c{state, submit} %c= %cuseForm%c(%c{ %cdebug%c: %cfalse %c}%c);",a+"; color: "+o,a+"; color: "+n,a+"; color: "+l,a+"; color: "+d,a+"; color: "+n,a+"; color: "+d,a+"; color: "+o,a+"; color: "+c,a+"; color: "+i,a+"; color: "+u,a+"; color: "+n),console.groupEnd())},[m,w]),{state:{error:w,response:S,submitting:b,submitted:g},submit:function(e){if(e.preventDefault(),!t){console.log("%c\uD83D\uDCA5 Please set your form ID, you can get it from your dashboard: https://formcarry.com/profile/my-forms","background-color: #FCB56D; color: #000"),console.log('%cconst %c{state, submit} %c= %cuseForm%c(%c{ %cid%c: %c"Your Form ID" %c}%c);',a+"; color: "+o,a+"; color: "+n,a+"; color: "+l,a+"; color: "+d,a+"; color: "+n,a+"; color: "+d,a+"; color: "+o,a+"; color: "+c,a+"; color: "+i,a+"; color: "+u,a+"; color: "+n);return}var s=new FormData(e.currentTarget);if("object"==typeof f)for(var r in f)f.hasOwnProperty(r)&&s.append(r,f[r]);x(!1),j(void 0),k(void 0),v(!0),fetch("https://formcarry.com/s/"+t,{method:"POST",headers:{Accept:"application/json"},body:s}).then(function(e){return e.json()}).then(function(e){200===e.code?(x(!0),k(e)):j(e)}).catch(function(e){j(e)}).finally(function(){v(!1)})}}}},7405:function(e,t,s){(window.__NEXT_P=window.__NEXT_P||[]).push(["/salary-guide",function(){return s(64936)}])},59126:function(e,t,s){"use strict";s.d(t,{Uv:function(){return o},jo:function(){return n},lT:function(){return i}});var r=s(85893),a=s(67294);function o(e){let[t,s]=(0,a.useState)(!1),[o,n]=(0,a.useState)(!1),i=(0,a.useRef)();return(0,a.useLayoutEffect)(()=>{let e=new IntersectionObserver(e=>{console.log(e),o||t||e.forEach(e=>{s(e.isIntersecting),n(!0)})});return e.observe(i.current),()=>e.unobserve(i.current)},[]),(0,r.jsx)("div",{className:e.class+" fade-in-section ".concat(t?"is-visible":""),ref:i,children:e.children})}function n(e){let[t,s]=(0,a.useState)(!1),[o,n]=(0,a.useState)(!1),i=(0,a.useRef)();return(0,a.useLayoutEffect)(()=>{let e=new IntersectionObserver(e=>{o||t||e.forEach(e=>{s(e.isIntersecting),n(!0)})});return e.observe(i.current),()=>e.unobserve(i.current)},[]),(0,r.jsx)("div",{className:e.class+" fade-in-left-section ".concat(t?"is-visible":""),ref:i,children:e.children})}function i(e){let[t,s]=(0,a.useState)(!1),[o,n]=(0,a.useState)(!1),i=(0,a.useRef)();return(0,a.useLayoutEffect)(()=>{let e=new IntersectionObserver(e=>{o||t||e.forEach(e=>{o||(s(e.isIntersecting),n(!0))})});return o||e.observe(i.current),()=>e.disconnect(i.current)},[]),(0,r.jsx)("div",{className:e.class+" fade-in-right-section ".concat(t?"is-visible":""),ref:i,children:e.children})}},64936:function(e,t,s){"use strict";s.r(t);var r=s(85893),a=s(67294);s(59126);var o=s(9008),n=s.n(o);s(85542),s(11163);var i=s(9669),l=s.n(i);t.default=()=>{let[e,t]=(0,a.useState)(!1),[s,o]=(0,a.useState)(""),[i,c]=(0,a.useState)(""),[d,u]=(0,a.useState)(""),[m,f]=(0,a.useState)(""),[h,g]=(0,a.useState)(""),[x,p]=(0,a.useState)(""),[b,v]=(0,a.useState)("form"),[y,w]=(0,a.useState)(["","","",""]),[j,N]=(0,a.useState)(""),[S,k]=(0,a.useState)(""),[_,E]=(0,a.useState)(!1),C=(0,a.useRef)([]);(0,a.useEffect)(()=>{setTimeout(function(){document.getElementById("modal").style.display="block",t(!1)},7e3)},[]);let F=(e,t)=>{if(t.length>1)return;let s=[...y];if(s[e]=t.replace(/\D/g,""),w(s),k(""),t&&e<3){var r;null===(r=C.current[e+1])||void 0===r||r.focus()}},I=(e,t)=>{if("Backspace"===t.key&&!y[e]&&e>0){var s;null===(s=C.current[e-1])||void 0===s||s.focus()}},D=e=>{var t;e.preventDefault();let s=e.clipboardData.getData("text").replace(/\D/g,"").slice(0,4),r=["","","",""];s.split("").forEach((e,t)=>{t<4&&(r[t]=e)}),w(r);let a=Math.min(s.length,3);null===(t=C.current[a])||void 0===t||t.focus()},L=async e=>{if(e.preventDefault(),N(""),k(""),""===s||""===i||""===d||""===m){alert("Please fill all the fields");return}E(!0);try{let e=await l().post("/api/send-sms",{phoneNumber:d});if(e.data.success){let t="verification_code_".concat(d);localStorage.setItem(t,JSON.stringify({code:e.data.code,timestamp:e.data.timestamp,phoneNumber:e.data.phoneNumber})),v("verification")}}catch(e){var t,r;
1console.error("SMS error:",e),N((null===(r=e.response)||void 0===r?void 0:null===(t=r.data)||void 0===t?void 0:t.error)||"Failed to send verification code. Please try again.")}finally{E(!1)}},P=async()=>{k("");let e=y.join("");if(4!==e.length){k("Please enter the complete 4-digit code");return}let t="verification_code_".concat(d),r=localStorage.getItem(t);if(!r){k("Verification code expired. Please request a new one.");return}let{code:a,timestamp:o,phoneNumber:n}=JSON.parse(r);if(Date.now()-o>9e5){localStorage.removeItem(t),k("Verification code expired. Please request a new one.");return}if(e===a)try{await l().post("https://formcarry.com/s/2HMepIcU7FI",{formname:"salary-guide",first_name:s,last_name:i,contact_number:d,email:m,_gotcha:x}),localStorage.removeItem(t),window.location.replace("/salary-guide-issu")}catch(e){console.error("Form submission error:",e),k("Failed to submit form. Please try again.")}else k("Invalid code. Please try again.")},M=async()=>{var e,t,s;k(""),E(!0);try{let t=await l().post("/api/send-sms",{phoneNumber:d});if(t.data.success){let s="verification_code_".concat(d);localStorage.setItem(s,JSON.stringify({code:t.data.code,timestamp:t.data.timestamp,phoneNumber:t.data.phoneNumber})),w(["","","",""]),k(""),null===(e=C.current[0])||void 0===e||e.focus()}}catch(e){console.error("SMS error:",e),k((null===(s=e.response)||void 0===s?void 0:null===(t=s.data)||void 0===t?void 0:t.error)||"Failed to send verification code. Please try again.")}finally{E(!1)}};return(0,r.jsxs)("div",{className:"min-h-screen bg-black w-full",children:[(0,r.jsxs)(n(),{children:[(0,r.jsx)("title",{children:"UK Building Services Engineering Salary Guide - Greystone"}),(0,r.jsx)("meta",{name:"viewport",content:"initial-scale=1.0, width=device-width"}),(0,r.jsx)("meta",{name:"description",content:"A comprehensive guide to permanent salaries and contract rates of pay across the UK; plus salary trends and future predictions from industry leaders."},"description"),(0,r.jsx)("meta",{name:"keywords",content:"building services engineering, building services, engineering, salary guide, engineering salary guide, UK salary guide, salary trends, sustainability, salary guide, Greystone, Greystone engineering"},"keywords")]}),(0,r.jsxs)("div",{className:"max-w-7xl mx-auto px-8 flex flex-col md:flex-row items-center justify-center mt-24 pt-20 gap-x-3",children:[(0,r.jsx)("img",{className:"rounded-full p-5",src:"/assets/SG2026.png",style:{width:"600px",height:"auto"},alt:"Salary guide"}),(0,r.jsxs)("div",{className:"",children:[(0,r.jsx)("div",{className:"pt-24",children:(0,r.jsxs)("h2",{className:"text-5xl text-white text-center font-header",children:[(0,r.jsxs)("span",{className:"text-blue-500",children:["UK Building Services and Sustainability Salaries,"," "]})," ","rates and trends"]})}),(0,r.jsxs)("div",{className:"text-white text-lg text-center mt-12",children:[(0,r.jsx)("p",{className:"",children:"Each year we conduct extensive research that allows us to bring you the most accurate range of salaries across all disciplines in the building services engineering and sustainability sectors."}),(0,r.jsx)("p",{className:"mt-4",children:"Inside, you will find a comprehensive guide to both permanent salaries and contract rates of pay across the UK; as well as an overview of salary trends and future predictions from industry leaders."})]})]})]}),(0,r.jsxs)("div",{children:[e?(0,r.jsx)("div",{className:"flex justify-center items-center max-w-5xl sm:pt-20 mx-auto",children:(0,r.jsx)("div",{className:"w-full",dangerouslySetInnerHTML:{__html:'<div style="position:relative;padding-top:max(60%,326px);height:0;width:100%"><iframe allow="clipboard-write" sandbox="allow-top-navigation allow-top-navigation-by-user-activation allow-downloads allow-scripts allow-same-origin allow-popups allow-modals allow-popups-to-escape-sandbox allow-forms" allowfullscreen="true" style="position:absolute;border:none;width:100%;height:100%;left:0;right:0;top:0;bottom:0;" src="https://e.issuu.com/embed.html?backgroundColor=%23191718&d=greystone_2026-salary-guide&themeSecondaryColor=%23191718&u=greystoneeng"></iframe></div>'}})}):(0,r.jsx)("div",{className:"flex flex-col justify-center items-center max-w-5xl sm:pt-20 mx-auto",children:(0,r.jsx)("div",{className:"w-full guide
1-preview",dangerouslySetInnerHTML:{__html:'<div style="position:relative;padding-top:max(60%,326px);height:0;width:100%"><iframe allow="clipboard-write" sandbox="allow-top-navigation allow-top-navigation-by-user-activation allow-downloads allow-scripts allow-same-origin allow-popups-to-escape-sandbox allow-forms" style="position:absolute;border:none;width:100%;height:100%;left:0;right:0;top:0;bottom:0;" src="https://e.issuu.com/embed.html?backgroundColor=%23191718&d=greystone_2026-salary-guide&themeSecondaryColor=%23191718&u=greystoneeng"></iframe></div>'}})}),(0,r.jsx)("div",{className:"fixed z-10 inset-0 overflow-y-auto hidden",id:"modal",children:(0,r.jsxs)("div",{className:"flex items-end justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0",children:[(0,r.jsx)("div",{className:"fixed inset-0 transition-opacity","aria-hidden":"true",children:(0,r.jsx)("div",{className:"absolute inset-0 bg-gray-500 opacity-75"})}),(0,r.jsx)("span",{className:"hidden sm:inline-block sm:align-middle sm:h-screen","aria-hidden":"true",children:"â"}),(0,r.jsx)("div",{className:"inline-block align-bottom bg-white rounded-lg px-4 pt-5 pb-4 text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-xl w-full sm:p-6 relative",role:"dialog","aria-modal":"true","aria-labelledby":"modal-headline",children:"form"===b?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("form",{name:"salary-guide",method:"POST",acceptCharset:"UTF-8",onSubmit:L,id:"salary-guide",children:[(0,r.jsx)("input",{type:"hidden",name:"_gotcha",onChange:p}),(0,r.jsx)("input",{type:"hidden",name:"form-name",value:"salary-guide",onChange:g}),(0,r.jsx)("div",{className:"z-10 relative",children:(0,r.jsxs)("div",{className:"mt-3 text-center sm:mt-5",children:[(0,r.jsx)("div",{className:"flex justify-between items-center w-full",children:(0,r.jsx)("h3",{className:"text-3xl leading-6 font-medium text-gray-900 font-header mb-2 ",id:"modal-headline",children:"Sign up to access"})}),(0,r.jsxs)("div",{className:"mt-1",children:[(0,r.jsxs)("div",{className:"mt-4 text-left",children:[(0,r.jsx)("label",{htmlFor:"first_name",className:"block text-sm font-medium text-gray-700",children:"First Name"}),(0,r.jsxs)("div",{className:"mt-1 relative rounded-md shadow-sm",children:[(0,r.jsx)("div",{className:"absolute inset-y-0 left-0 pl-3 flex items-center",children:(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",className:"h-5 w-5 text-gray-400",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"})})}),(0,r.jsx)("input",{type:"text",name:"first_name",onChange:e=>o(e.target.value),value:s,id:"first_name",required:!0,className:"focus:ring-indigo-500 border focus:border-indigo-500 block w-full placeholder-gray-300 pl-10 sm:text-sm border-gray-300 p-3 rounded-md",placeholder:"First name"})]})]}),(0,r.jsxs)("div",{className:"mt-2 text-left",children:[(0,r.jsx)("label",{htmlFor:"last_name",className:"block text-sm font-medium text-gray-700",children:"Last Name"}),(0,r.jsxs)("div",{className:"mt-1 relative rounded-md shadow-sm",children:[(0,r.jsx)("div",{className:"absolute inset-y-0 left-0 pl-3 flex items-center",children:(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",className:"h-5 w-5 text-gray-400",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"})})}),(0,r.jsx)("input",{type:"text",name:"last_name",onChange:e=>c(e.target.value),value:i,id:"last_name",required:!0,className:"focus:ring-indigo-500 border focus:border-indigo-500 block w-full placeholder-gray-300 pl-10 sm:text-sm border-gray-300 p-3 rounded-md",placeholder:"Last name"})]})]}),(0,r.jsxs)("div",{className:"mt-2 text-left",children:[(0,r.jsx)("label",{htmlFor:"email",className:"block text-sm font-medium text-gray-700",children:"Email"}),(0,r.jsxs)("div",{className:"mt-1 relative rounded-md shadow-sm",children:[(0,r.jsx)("div",{className:"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none",children:(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",className:"h-5 w-5 text-gray-400",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"})})}),(0,r.jsx)("input",{type:"email",onChange:e=>f(e.target.value),value:m,name:"email",required:!0,id:"email",className:"focus:ring-indigo-500 focus:border-indigo-500 block w-full placeholder-gray-300 pl-10 sm:text-sm border p-3 border-gray-300 rounded-md",placeholder:"Email address"})]})]}),(0,r.jsxs)("div",{className:"mt-2 text-left",children:[(0,r.jsx)("label",{htmlFor:"contact_number",className:"block text-sm font-medium text-gray-700",children:"Phone"}),(0,r.jsxs)("div",{className:"mt-1 relative rounded-md shadow-sm",children:[(0,r.jsx)("div",{className:"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none",children:(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",className:"h-5 w-5 text-gray-400",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042
111.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z"})})}),(0,r.jsx)("input",{type:"tel",onChange:e=>u(e.target.value),value:d,name:"contact_number",required:!0,id:"contact_number",className:"focus:ring-indigo-500 focus:border-indigo-500 block w-full placeholder-gray-300 pl-10 sm:text-sm 0 border p-3 border-gray-300 rounded-md",placeholder:"Contact number"})]}),(0,r.jsx)("p",{className:"text-sm text-gray-500 mt-2",children:"We will send a 4-digit code to your phone to verify your number."})]}),j&&(0,r.jsx)("div",{className:"mt-3 p-3 bg-red-50 border border-red-200 rounded-md",children:(0,r.jsx)("p",{className:"text-sm text-red-600",children:j})})]})]})})]}),(0,r.jsx)("div",{className:"mt-5 sm:mt-6 relative z-10",children:(0,r.jsx)("button",{onClick:L,disabled:_,className:"inline-flex justify-center w-full rounded-md border border-transparent shadow-sm px-4 py-2 bg-blue-500 text-base font-medium text-white hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 sm:text-sm disabled:opacity-50 disabled:cursor-not-allowed",children:_?"Submitting...":"Submit"})})]}):(0,r.jsxs)("div",{className:"z-10 relative",children:[(0,r.jsxs)("div",{className:"mt-3 text-center sm:mt-5",children:[(0,r.jsx)("h3",{className:"text-3xl leading-6 font-medium text-gray-900 font-header mb-2",id:"modal-headline",children:"Verify Your Phone Number"}),(0,r.jsxs)("p",{className:"text-sm text-gray-500 mt-2",children:["Enter the 4-digit code sent to ",d]}),(0,r.jsx)("div",{className:"mt-6 flex justify-center gap-3",children:y.map((e,t)=>(0,r.jsx)("input",{ref:e=>C.current[t]=e,type:"text",inputMode:"numeric",maxLength:"1",value:e,onChange:e=>F(t,e.target.value),onKeyDown:e=>I(t,e),onPaste:0===t?D:void 0,className:"w-14 h-14 text-center text-2xl font-semibold border-2 border-gray-300 rounded-md focus:border-blue-500 focus:ring-2 focus:ring-blue-200 outline-none",autoFocus:0===t},t))}),S&&(0,r.jsx)("div",{className:"mt-4 p-3 bg-red-50 border border-red-200 rounded-md",children:(0,r.jsx)("p",{className:"text-sm text-red-600",children:S})})]}),(0,r.jsxs)("div",{className:"mt-6 flex flex-col gap-3",children:[(0,r.jsx)("button",{onClick:P,disabled:4!==y.join("").length||_,className:"inline-flex justify-center w-full rounded-md border border-transparent shadow-sm px-4 py-2 bg-blue-500 text-base font-medium text-white hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 sm:text-sm disabled:opacity-50 disabled:cursor-not-allowed",children:_?"Verifying...":"Verify"}),(0,r.jsx)("button",{onClick:()=>{v("form"),w(["","","",""]),k(""),N("")},type:"button",className:"inline-flex justify-center w-full rounded-md border border-gray-300 shadow-sm px-4 py-2 bg-white text-base font-medium text-gray-700 hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 sm:text-sm",children:"Back to Form"}),(0,r.jsx)("button",{onClick:M,disabled:_,type:"button",className:"text-sm text-blue-600 hover:text-blue-800 disabled:opacity-50 disabled:cursor-not-allowed",children:"Resend Code"})]})]})})]})})]})]})}}},function(e){e.O(0,[669,888,774,179],function(){return e(e.s=7405)}),_N_E=e.O()}]);
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.