{"version":3,"file":"static/chunks/7624.5501d9a6c0080a5d.js","mappings":"+JAMMA,EAAYC,EAAQ,OA8D1B,EA5DqB,WAKnB,IAAMC,EAA0BC,SAASC,cAAc,eACjDC,EAAuBF,SAASC,cAAc,uBAC9CE,EAAuBH,SAASC,cAAc,WAEpD,GAAKF,GAAcG,EAAnB,CAKA,IAAME,EAAQ,WAEkB,OAA1BF,EAAOG,QAAQC,SAInBP,EAAUQ,UAAUC,IAAI,qBACxBT,EAAUQ,UAAUE,OAAO,sBAC3BP,EAAOQ,MAAMC,UAAb,UAA4BZ,EAAUa,aAAtC,QAIIC,EAAU,WACdd,EAAUQ,UAAUE,OAAO,qBAC3BV,EAAUQ,UAAUC,IAAI,sBACxBN,EAAOQ,MAAMC,UAAY,KAI3Bd,EAAU,CACRiB,QAASZ,EACTa,QAAS,kBAAMF,KACfG,SAAU,kBAAMZ,OAGbL,EAAUM,QAAQY,YAErBpB,EAAU,CACRiB,QAASX,EACTe,OAAQ,EACRH,QAAS,kBAAMX,KACfY,SAAU,kBAAMH,OAKpBM,OAAOC,iBAAiB,iBAAiB,WACvCP,OAIFM,OAAOC,iBAAiB,gBAAgB,WACtChB,S,4CCjDEiB,EAAsC,SAAC,GAAgC,MAA9BC,EAA8B,EAA9BA,SAE7CC,EAAAA,EAAAA,WAAUC,GACV,IAAQC,GAAR,WAAyBC,EAAAA,EAAAA,aAAzB,aAAyB,EAAwBC,YAAzCF,aAER,IAAKH,EACL,OACE,+BACE,gBAAKM,UAAU,wBAAf,UACE,iBAAKA,UAAU,4BAAf,WACE,iBAAKA,UAAU,oCAAf,WACE,SAAC,UAAD,CAAMC,KAAK,QAAX,UAAmB,iDACnB,SAAC,UAAD,CAAMA,KAAK,QAAX,UAAmB,sDAErB,iBAAKD,UAAU,yBAAf,WACE,sDACA,SAACE,EAAA,EAAD,CAAWC,OAAQN,EAAcG,UAAU,4BAWvDP,EAAUW,aAAe,CACvBV,SAAS,GAGX","sources":["webpack://_N_E/./components/StickyCta/stickyScroll.ts","webpack://_N_E/./components/StickyCta/index.tsx"],"sourcesContent":["/**\n * Sticky CTA until it hits the footer\n */\n// import ScrollOut from \"scroll-out\"\n// import \"../util/keyboardHook\"\n\nconst ScrollOut = require('scroll-out');\n\nconst stickyScroll = () => {\n /*\n Types must be set to HTMLElement.\n Element does not allow for the use of dataset or style, and fails both linting and jest\n */\n const stickyCta : HTMLElement = document.querySelector('.sticky-cta');\n const footer : HTMLElement = document.querySelector('.footer-nav-section');\n const header : HTMLElement = document.querySelector('.header');\n\n if (!stickyCta || !footer) {\n return;\n }\n\n // When it becomes \"sticky\"\n const stick = () => {\n // Stick, but only if the footer isn't \"in\"\n if (footer.dataset.scroll === 'in') {\n return;\n }\n\n stickyCta.classList.add('sticky-cta--stuck');\n stickyCta.classList.remove('sticky-cta--hidden');\n footer.style.marginTop = `${stickyCta.clientHeight}px`;\n };\n \n // When it becomes \"unsticky\"\n const unstick = () => {\n stickyCta.classList.remove('sticky-cta--stuck');\n stickyCta.classList.add('sticky-cta--hidden');\n footer.style.marginTop = '0';\n };\n\n // Sticks until it hits the footer\n ScrollOut({\n targets: footer,\n onShown: () => unstick(),\n onHidden: () => stick(),\n });\n\n if (!stickyCta.dataset.persistent) {\n // Sticks on first scroll, disappears at the top of the page\n ScrollOut({\n targets: header,\n offset: 1,\n onShown: () => stick(),\n onHidden: () => unstick(),\n });\n }\n\n // Hide when virtual keyboard is visible\n window.addEventListener('keyboardFocus', () => {\n unstick();\n });\n\n // Show when virtual keyboard blurs\n window.addEventListener('keyboardBlur', () => {\n stick();\n });\n};\n\nexport default stickyScroll;\n","import React, { useEffect } from 'react';\n// import SVG from 'react-inlinesvg';\nimport { Row, Col, Button, Container } from 'react-bootstrap';\nimport stickyScroll from './stickyScroll';\nimport PhoneLink from '../PhoneLink';\n// import CtaButtons from '../CtaButtons';\nimport Link from 'next/link';\nimport { useFranchiseeContext } from '../../context/Franchisee';\n// import styles from './styles';\n\ninterface StickyCtaProps {\n // add sticky cta props here\n booking?: boolean;\n}\n\nconst StickyCta: React.FC = ({ booking }: StickyCtaProps) => {\n // handle sticky CTA events\n useEffect(stickyScroll);\n const { phonePrimary } = useFranchiseeContext()?.franchisee;\n\n if (!booking) {\n return (\n <>\n
\n
\n
\n Book Your Cleaning\n Calculate Your Price\n
\n
\n

Call for a Free Estimate!

\n \n
\n
\n
\n {/* */}\n \n );\n};\n}\nStickyCta.defaultProps = {\n booking: false,\n};\n\nexport default StickyCta;\n"],"names":["ScrollOut","require","stickyCta","document","querySelector","footer","header","stick","dataset","scroll","classList","add","remove","style","marginTop","clientHeight","unstick","targets","onShown","onHidden","persistent","offset","window","addEventListener","StickyCta","booking","useEffect","stickyScroll","phonePrimary","useFranchiseeContext","franchisee","className","href","PhoneLink","number","defaultProps"],"sourceRoot":""}