(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[726],{63:(e,t,r)=>{"use strict";var n=r(7260);r.o(n,"usePathname")&&r.d(t,{usePathname:function(){return n.usePathname}}),r.o(n,"useRouter")&&r.d(t,{useRouter:function(){return n.useRouter}})},1402:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{default:function(){return g},handleClientScriptLoad:function(){return h},initScriptLoader:function(){return b}});let n=r(8140),a=r(9417),o=r(5155),i=n._(r(7650)),s=a._(r(2115)),u=r(2073),l=r(4681),c=r(4853),d=new Map,f=new Set,p=e=>{let{src:t,id:r,onLoad:n=()=>{},onReady:a=null,dangerouslySetInnerHTML:o,children:s="",strategy:u="afterInteractive",onError:c,stylesheets:p}=e,h=r||t;if(h&&f.has(h))return;if(d.has(t)){f.add(h),d.get(t).then(n,c);return}let b=()=>{a&&a(),f.add(h)},m=document.createElement("script"),g=new Promise((e,t)=>{m.addEventListener("load",function(t){e(),n&&n.call(this,t),b()}),m.addEventListener("error",function(e){t(e)})}).catch(function(e){c&&c(e)});o?(m.innerHTML=o.__html||"",b()):s?(m.textContent="string"==typeof s?s:Array.isArray(s)?s.join(""):"",b()):t&&(m.src=t,d.set(t,g)),(0,l.setAttributesFromProps)(m,e),"worker"===u&&m.setAttribute("type","text/partytown"),m.setAttribute("data-nscript",u),p&&(e=>{if(i.default.preinit)return e.forEach(e=>{i.default.preinit(e,{as:"style"})});{let t=document.head;e.forEach(e=>{let r=document.createElement("link");r.type="text/css",r.rel="stylesheet",r.href=e,t.appendChild(r)})}})(p),document.body.appendChild(m)};function h(e){let{strategy:t="afterInteractive"}=e;"lazyOnload"===t?window.addEventListener("load",()=>{(0,c.requestIdleCallback)(()=>p(e))}):p(e)}function b(e){e.forEach(h),[...document.querySelectorAll('[data-nscript="beforeInteractive"]'),...document.querySelectorAll('[data-nscript="beforePageRender"]')].forEach(e=>{let t=e.id||e.getAttribute("src");f.add(t)})}function m(e){let{id:t,src:r="",onLoad:n=()=>{},onReady:a=null,strategy:l="afterInteractive",onError:d,stylesheets:h,...b}=e,{updateScripts:m,scripts:g,getIsSsr:y,appDir:w,nonce:_}=(0,s.useContext)(u.HeadManagerContext);_=b.nonce||_;let v=(0,s.useRef)(!1);(0,s.useEffect)(()=>{let e=t||r;v.current||(a&&e&&f.has(e)&&a(),v.current=!0)},[a,t,r]);let x=(0,s.useRef)(!1);if((0,s.useEffect)(()=>{if(!x.current){if("afterInteractive"===l)p(e);else"lazyOnload"===l&&("complete"===document.readyState?(0,c.requestIdleCallback)(()=>p(e)):window.addEventListener("load",()=>{(0,c.requestIdleCallback)(()=>p(e))}));x.current=!0}},[e,l]),("beforeInteractive"===l||"worker"===l)&&(m?(g[l]=(g[l]||[]).concat([{id:t,src:r,onLoad:n,onReady:a,onError:d,...b,nonce:_}]),m(g)):y&&y()?f.add(t||r):y&&!y()&&p({...e,nonce:_})),w){if(h&&h.forEach(e=>{i.default.preinit(e,{as:"style"})}),"beforeInteractive"===l)if(!r)return b.dangerouslySetInnerHTML&&(b.children=b.dangerouslySetInnerHTML.__html,delete b.dangerouslySetInnerHTML),(0,o.jsx)("script",{nonce:_,dangerouslySetInnerHTML:{__html:"(self.__next_s=self.__next_s||[]).push("+JSON.stringify([0,{...b,id:t}])+")"}});else return i.default.preload(r,b.integrity?{as:"script",integrity:b.integrity,nonce:_,crossOrigin:b.crossOrigin}:{as:"script",nonce:_,crossOrigin:b.crossOrigin}),(0,o.jsx)("script",{nonce:_,dangerouslySetInnerHTML:{__html:"(self.__next_s=self.__next_s||[]).push("+JSON.stringify([r,{...b,id:t}])+")"}});"afterInteractive"===l&&r&&i.default.preload(r,b.integrity?{as:"script",integrity:b.integrity,nonce:_,crossOrigin:b.crossOrigin}:{as:"script",nonce:_,crossOrigin:b.crossOrigin})}return null}Object.defineProperty(m,"__nextScript",{value:!0});let g=m;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},2501:(e,t,r)=>{"use strict";r.d(t,{QuoteProvider:()=>s,o:()=>i});var n=r(5155),a=r(2115);let o=(0,a.createContext)(null);function i(){let e=(0,a.useContext)(o);if(!e)throw Error("useQuote must be used within QuoteProvider");return e}function s(e){let{children:t}=e,[r,i]=(0,a.useState)(!1),s=(0,a.useCallback)(()=>i(!0),[]),u=(0,a.useCallback)(()=>i(!1),[]);return(0,n.jsx)(o.Provider,{value:{isOpen:r,open:s,close:u},children:t})}},3645:(e,t,r)=>{"use strict";r.d(t,{TrackedAnchor:()=>a});var n=r(5155);function a(e){let{href:t,eventName:r,eventPayload:a,className:o="",target:i,rel:s,onClick:u,children:l}=e;return(0,n.jsx)("a",{href:t,target:i,rel:s,className:o,onClick:()=>{"dataLayer"in window&&window.dataLayer.push({event:r,page_location:window.location.pathname,...a}),null==u||u()},children:l})}},4726:(e,t,r)=>{Promise.resolve().then(r.t.bind(r,2619,23)),Promise.resolve().then(r.t.bind(r,1356,23)),Promise.resolve().then(r.t.bind(r,1402,23)),Promise.resolve().then(r.bind(r,6376)),Promise.resolve().then(r.bind(r,6891)),Promise.resolve().then(r.bind(r,3645))},4853:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{cancelIdleCallback:function(){return n},requestIdleCallback:function(){return r}});let r="undefined"!=typeof self&&self.requestIdleCallback&&self.requestIdleCallback.bind(window)||function(e){let t=Date.now();return self.setTimeout(function(){e({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-t))}})},1)},n="undefined"!=typeof self&&self.cancelIdleCallback&&self.cancelIdleCallback.bind(window)||function(e){return clearTimeout(e)};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},5932:(e,t,r)=>{"use strict";r.d(t,{ErrorBoundary:()=>a});var n=r(2115);class a extends n.Component{static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(e,t){if("dataLayer"in window){var r;window.dataLayer.push({event:"client_error",error_boundary:null!=(r=this.props.label)?r:"unknown",error_message:e.message,error_stack:e.stack,component_stack:t.componentStack,page_location:window.location.pathname})}}render(){var e;return this.state.hasError?null!=(e=this.props.fallback)?e:null:this.props.children}constructor(...e){super(...e),this.state={hasError:!1}}}},6376:(e,t,r)=>{"use strict";r.d(t,{QuoteButton:()=>i});var n=r(5155),a=r(2501);let o={primary:"rounded-md bg-brand-red px-10 py-4 text-center text-sm font-bold uppercase tracking-wider text-white transition hover:bg-brand-red-dark hover:shadow-[0_0_20px_rgba(232,117,26,0.4)]",white:"rounded-md bg-white px-8 py-3 text-sm font-semibold uppercase tracking-wider text-brand-blue transition hover:bg-gray-100",outline:"rounded-md border-2 border-white/30 px-10 py-4 text-center text-sm font-semibold uppercase tracking-wider text-white transition hover:border-white hover:bg-white/10"};function i(e){let{label:t="Get A Quote",className:r="",variant:i="primary"}=e,{open:s}=(0,a.o)();return(0,n.jsx)("button",{onClick:()=>{"dataLayer"in window&&window.dataLayer.push({event:"cta_click_quote",cta_text:t,page_location:window.location.pathname}),s()},"data-tracking":"cta-quote",className:"".concat(o[i]," ").concat(r),children:t})}},6891:(e,t,r)=>{"use strict";r.d(t,{QuoteInline:()=>s});var n=r(5155),a=r(2115),o=r(63),i=r(5932);function s(e){return(0,n.jsx)(i.ErrorBoundary,{label:"quote-inline",children:(0,n.jsx)(u,{...e})})}function u(e){let{className:t="",widgetId:r="strux-gaq-inline-r56426",headerText:i="Get Your Free In-Home Design & Pricing",buttonText:s="Get My Free Design",categories:u="Cabinets|Slatwall|Storage Racks|Other",source:l="inline_form"}=e,c=(0,o.useRouter)(),d=(0,a.useRef)(null);return(0,a.useEffect)(()=>{let e="data-strux-inline-".concat(r);if(document.querySelector("script[".concat(e,"]")))return;let t="https://app.struxgarage.com/assets/widgets/v1/strux-get-a-quote-widget.js?target=".concat(r,"&businessId=business2&headerText=").concat(encodeURIComponent(i),"&buttonText=").concat(encodeURIComponent(s),"&categories=").concat(encodeURIComponent(u)),n=document.createElement("script");n.src=t,n.async=!0,n.setAttribute(e,"true"),document.body.appendChild(n)},[r,i,s,u]),(0,a.useEffect)(()=>{let e=d.current;if(!e)return;let t=e=>{let t=e.detail;"dataLayer"in window&&window.dataLayer.push({event:"quote_submitted",source:l,page_location:window.location.pathname,...t}),c.push("/thank-you")};return e.addEventListener("strux:quote-submitted",t),()=>e.removeEventListener("strux:quote-submitted",t)},[c,l]),(0,n.jsx)("div",{ref:d,id:r,className:t,"data-tracking":"quote-inline"})}}}]);