{"version":3,"file":"static/chunks/9611.feb555690b44c4ab.js","mappings":"q4CAgBA,IAAMA,GAAiBC,EAAAA,EAAAA,UAAQ,kBAAM,kCAAP,yDACxBC,GAAeD,EAAAA,EAAAA,UAAQ,kBAAM,kCAAP,yDACtBE,GAAYF,EAAAA,EAAAA,UAAQ,kBAAM,+BAAP,uDAQnBG,EAAAA,SAAAA,I,uHACF,WACI,MAYIC,KAAKC,MAXLC,EADJ,EACIA,UACAC,EAFJ,EAEIA,OACAC,EAHJ,EAGIA,OACAC,EAJJ,EAIIA,SACAC,EALJ,EAKIA,KACAC,EANJ,EAMIA,WACAC,EAPJ,EAOIA,WACAC,EARJ,EAQIA,aACAC,EATJ,EASIA,aACAC,EAVJ,EAUIA,IACAC,EAXJ,EAWIA,eAIAC,EAaAF,EAbAE,UACAC,EAYAH,EAZAG,YACAC,EAWAJ,EAXAI,QACAC,EAUAL,EAVAK,cACAC,EASAN,EATAM,MACAC,EAQAP,EARAO,QACAC,EAOAR,EAPAQ,aACAC,EAMAT,EANAS,mBACAC,EAKAV,EALAU,WACAC,EAIAX,EAJAW,aACAC,EAGAZ,EAHAY,cACAC,EAEAb,EAFAa,OACAC,EACAd,EADAc,eAGIC,EAAUhB,EAAVgB,MACFC,EAAS3B,KAAKC,MAAM2B,SACpB5B,KAAKC,MAAM2B,SAAS3B,MAAM0B,OAC1B,KAEAE,EA3CI,SAACH,GAAD,aAAY,eACrBI,EAAAA,EAAAA,MAAeC,MADM,SAErBD,EAAAA,EAAAA,QAAiBE,KAFI,GAGxBN,GAwCiBO,CAAUP,GAEzB,OACI,iCACI,UAAC,UAAD,YACI,2BAAQb,KAER,iBAAMqB,IAAI,0BAA0BC,KAAK,2BACzC,iBAAMD,IAAI,0BAA0BC,KAAK,0BAA0BC,YAAY,UAC/E,iBAAMF,IAAI,0BAA0BC,KAAK,sBAAsBC,YAAY,UAC3E,iBAAMF,IAAI,0BAA0BC,KAAK,4BAA4BC,YAAY,UACjF,iBAAMF,IAAI,0BAA0BC,KAAK,mCAAmCC,YAAY,UACxF,iBAAMF,IAAI,0BAA0BC,KAAK,mCAAmCC,YAAY,UACxF,iBAAMF,IAAI,0BAA0BC,KAAK,2BAA2BC,YAAY,UAChF,iBAAMF,IAAI,0BAA0BC,KAAK,8BAA8BC,YAAY,UACnF,iBAAMF,IAAI,0BAA0BC,KAAK,gCAAgCC,YAAY,WAElFtB,IACC,iBAAMuB,KAAK,cAAcC,QAASxB,MAEnCC,IACC,iBAAMwB,SAAS,WAAWD,QAASvB,MAEpCC,IACC,iBACIuB,SAAS,iBACTD,QAAStB,MAGdC,IACC,iBAAMsB,SAAS,SAASD,QAASrB,MAElCC,IACC,iBAAMqB,SAAS,WAAWD,QAASpB,MAEpCC,IACC,iBAAMoB,SAAS,gBAAgBD,QAASnB,MAEzCC,IACC,iBAAMmB,SAAS,sBAAsBD,QAASlB,MAE/CC,IACC,iBAAMkB,SAAS,cAAcD,QAASjB,MAEvCC,IACC,iBAAMiB,SAAS,gBAAgBD,QAAShB,MAEzCC,IACC,iBAAMW,IAAI,YAAYC,KAAMZ,MAE7BC,IACC,iBAAMa,KAAK,SAASC,QAASd,MAG9BC,IACC,iBAAMc,SAAS,WAAWD,QAASb,KAGvC,iBAAMS,IAAI,mBAAmBM,MAAM,UAAUL,KAAI,oBAAeT,EAAf,4BACjD,iBAAMQ,IAAI,OAAOO,KAAK,YAAYD,MAAM,QAAQL,KAAI,oBAAeT,EAAf,yBACpD,iBAAMQ,IAAI,OAAOO,KAAK,YAAYD,MAAM,QAASL,KAAI,oBAAeT,EAAf,yBACrD,iBAAMQ,IAAI,YAAaC,KAAI,oBAAeT,EAAf,0BAA8CgB,MAAM,aAE/E,iBAAML,KAAK,0BAA0BC,QAAQ,aAC7C,iBAAMD,KAAK,cAAcC,QAAQ,gBAErC,SAACK,EAAA,EAAD,CAAON,KAAMX,EAAb,UACI,iBACIkB,UAAWC,GAAAA,CACPhB,EAAM,SACNA,EAAO,qBACPA,EAAO,oBAAoBF,IAJnC,WAMMpB,IACE,4BACKH,IACG,SAAC0C,EAAA,EAAD,OACQ1C,GADR,IAEIE,KAAMA,EACNqB,OAAQA,OAMvBzB,IAAa,SAACJ,EAAD,KAAeI,IAC5BO,IAAgB,SAACZ,EAAD,KAAkBY,KAEnC,iBAAMmC,UAAU,YAAhB,SACK5C,KAAKC,MAAM2B,YAGdpB,GAAcuC,OAAOC,KAAK7C,GAAQ8C,OAAS,IACzC,SAACC,EAAA,EAAD,OACQ/C,GADR,IAEIwB,OAAQA,EACRwB,YAAazC,EACb0C,UAAW,CAAC,iBAAiB/C,aAK1CO,IAAkB,SAACjB,EAAD,KAAoBiB,W,EA3InDb,CAAiBsD,EAAAA,eAiLvBtD,EAASuD,aAAe,CACpBnD,OAAQ,GACRI,YAAY,EACZC,YAAY,GAGhB,IAAsB+C,EAyDtB,GAzDsBA,EAQG,SAAAA,GAAiB,oKAYlC,YACSC,EAAAA,EAAAA,IAAU,oBAIfC,EAAAA,EAAAA,IAAa,kBACbC,EAAAA,EAAAA,GAAc,CAAEC,OAAQ,UAlBM,+BAqBlC,WACI,GAAK3D,KAAKC,MAAMK,KAKhB,GAAKN,KAAKC,MAAMK,KAAKsD,UAArB,CAKA,IAAQA,EAAc5D,KAAKC,MAAMK,KAAzBsD,WAEJJ,EAAAA,EAAAA,IAAU,mBAAqBI,KAInCF,EAAAA,EAAAA,GAAc,CAAEC,OAAQC,KACxBC,EAAAA,EAAAA,IAAU,gBAAiBD,SAXvB5D,KAAK8D,2BALL9D,KAAK8D,wBAvBqB,oBA0ClC,WACI,OACI,SAACP,EAAD,KAAuBvD,KAAKC,YA5CF,GACxBoD,EAAAA,eADwB,EAE3BC,aAAe,CAClBhD,KAAM,MAHwB,EAiDbyD,CAAiBhE,GAzDH,SAACE,GACxC,OACI,SAAC+D,EAAA,WAAD,CAAsBC,MAAOhE,EAAMiE,UAAnC,UACI,SAACX,EAAD,KAAuBtD,Q,glBChN5B,IAAMkE,EAAe,SAACC,GAAD,OAAe,SAACnE,GACxC,IAAMoE,EAAa,MAAKC,EAAAA,EAAAA,IAAqBrE,IAE7C,OACI,SAAC,EAAD,OAAcoE,GAAd,IAA0BE,OAAQH,EAAU/B,KAA5C,UACI,SAAC+B,EAAD,KAAeC,U,uCCPrBL,E,SAAcX,cAAoB,IAExC,O,mCCJA,SAASQ,EAAUW,EAAOC,EAAQC,GAC9BA,EAAiBA,GAAkB,IACnC,IAAIC,EAAI,IAAIC,KACZD,EAAEE,QAAQF,EAAEG,UAA6B,GAAjBJ,EAAsB,GAAK,GAAK,KACxD,IAAIK,EAAU,WAAaJ,EAAEK,cAC7BC,SAASC,OAASV,EAAQ,IAAMC,EAAS,IAAMM,EAAU,UAG7D,SAAStB,EAAae,GAElBS,SAASC,OAASV,EAAAA,yC,iFAGtB,IAAMhB,EAAY,SAACnB,GACfA,GAAc,IAEd,IADA,IAAM6C,EAASD,SAASC,OAAOC,MAAM,KAC5BC,EAAI,EAAGA,EAAIF,EAAOjC,OAAQmC,IAAK,CAEpC,IADA,IAAIC,EAAOH,EAAOE,GACQ,MAAnBC,EAAKC,OAAO,IACfD,EAAOA,EAAKE,UAAU,GAE1B,GAA2B,IAAvBF,EAAKG,QAAQnD,GACb,OAAOgD,EAAKE,UAAUlD,EAAKY,OAAQoC,EAAKpC,QAGhD,MAAO,K,6qBCzBJ,IAAMS,EAAgB,SAAC+B,GAK1BC,OAAOC,UAAYD,OAAOC,WAAa,GACvCD,OAAOC,UAAUC,KAAKH,IAGnB,SAASI,EAAWxD,EAAMyD,EAAUC,EAAQC,GAAwB,IAAjBC,EAAiB,uDAAJ,GACnEvC,EAAc,EAAD,CACTwC,MAAO7D,EACPyD,SAAUA,EACVC,OAAQA,EACRC,MAAOA,GACJC,M,kBCdXE,EAAOC,QAAU,CAAC,SAAW,mCAAmC,oBAAoB,8C,kBCApFD,EAAOC,QAAU,CAAC,oBAAoB,0CAA0C,6BAA6B","sources":["webpack://_N_E/./containers/BasePage/BasePage.js","webpack://_N_E/./containers/BasePage/index.js","webpack://_N_E/./security/CSRFContext.js","webpack://_N_E/./utils/Cookie.js","webpack://_N_E/./utils/DataLayerHelpers.js","webpack://_N_E/./containers/BasePage/BasePage.folkhem.module.scss","webpack://_N_E/./containers/BasePage/BasePage.nordr.module.scss"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Head from 'next/head';\nimport dynamic from 'next/dynamic';\nimport Btn from '../../components/Btn'; // Added for css precedence\nimport Footer from '../../components/Footer';\nimport Header from '../../components/Header';\nimport { themes } from '../../themes/ThemeContext';\nimport { getCookie, setCookie, removeCookie } from '../../utils/Cookie';\nimport { dataLayerPush } from '../../utils/DataLayerHelpers';\nimport Theme from '../../themes/Theme';\nimport CSRFContext from '../../security/CSRFContext';\nimport stylesNordr from './BasePage.nordr.module.scss'\nimport stylesFolkhem from './BasePage.folkhem.module.scss'\n\nconst WagtailUserbar = dynamic(() => import('../../components/WagtailUserbar'));\nconst BannerGlobal = dynamic(() => import('../../components/BannerGlobal'));\nconst CookieBar = dynamic(() => import('../../components/CookieBar'));\n\nconst getStyles = (theme) => ({\n [themes.NORDR]: stylesNordr,\n [themes.FOLKHEM]: stylesFolkhem,\n }[theme]\n);\n\nclass BasePage extends React.PureComponent {\n render() {\n const {\n cookieBar,\n footer,\n header,\n pageType,\n user,\n hideTopNav,\n hideFooter,\n bannerGlobal,\n siteSettings,\n seo,\n wagtailUserbar,\n } = this.props;\n\n const {\n htmlTitle,\n description,\n ogTitle,\n ogDescription,\n ogUrl,\n ogImage,\n twitterTitle,\n twitterDescription,\n twitterUrl,\n twitterImage,\n canonicalLink,\n robots,\n facebookPageId,\n } = seo;\n\n const { theme } = siteSettings;\n const layout = this.props.children\n ? this.props.children.props.layout\n : null;\n\n const styles = getStyles(theme);\n\n return (\n <>\n \n {htmlTitle}\n\n \n \n \n \n \n \n \n \n \n\n {!!description && (\n \n )}\n {!!ogTitle && (\n \n )}\n {!!ogDescription && (\n \n )}\n {!!ogUrl && (\n \n )}\n {!!ogImage && (\n \n )}\n {!!twitterTitle && (\n \n )}\n {!!twitterDescription && (\n \n )}\n {!!twitterUrl && (\n \n )}\n {!!twitterImage && (\n \n )}\n {!!canonicalLink && (\n \n )}\n {!!robots && (\n \n )}\n\n {!!facebookPageId && (\n \n )}\n\n \n \n \n \n\n \n \n \n \n \n {!hideTopNav && (\n
\n {header && (\n \n )}\n
\n )}\n\n {cookieBar && }\n {bannerGlobal && }\n\n
\n {this.props.children}\n
\n\n {!hideFooter && Object.keys(footer).length > 0 && (\n \n )}\n \n
\n {!!wagtailUserbar && }\n \n );\n }\n}\n\nBasePage.propTypes = {\n hideTopNav: PropTypes.bool,\n hideFooter: PropTypes.bool,\n cookieBar: PropTypes.object,\n footer: PropTypes.object,\n header: PropTypes.object,\n pageType: PropTypes.string,\n children: PropTypes.object,\n bannerGlobal: PropTypes.shape({\n buttonText: PropTypes.string,\n cookieId: PropTypes.string,\n wysiwyg: PropTypes.string,\n buttonLink: PropTypes.string,\n theme: PropTypes.string,\n }),\n user: PropTypes.shape({\n name: PropTypes.string,\n profile: PropTypes.shape({\n href: PropTypes.string,\n }),\n login: PropTypes.shape({\n href: PropTypes.string,\n }),\n logout: PropTypes.shape({\n href: PropTypes.string,\n }),\n firstName: PropTypes.string,\n lastName: PropTypes.string,\n email: PropTypes.string,\n }),\n};\n\nBasePage.defaultProps = {\n footer: {},\n hideTopNav: false,\n hideFooter: false,\n};\n\nconst withCSRFToken = ComposedComponent => (props) => {\n return (\n \n \n \n );\n}\n\nconst withUserTracking = ComposedComponent =>\n class extends React.PureComponent {\n static defaultProps = {\n user: null,\n }\n\n static propTypes = {\n user: PropTypes.shape({\n azureAdId: PropTypes.string,\n }),\n };\n\n attemptToLogoutUser() {\n if (!getCookie('userIDTracked')) {\n return;\n }\n\n removeCookie('userIDTracked');\n dataLayerPush({ userID: null });\n }\n\n componentDidMount() {\n if (!this.props.user) {\n this.attemptToLogoutUser();\n return;\n }\n\n if (!this.props.user.azureAdId) {\n this.attemptToLogoutUser();\n return;\n }\n\n const { azureAdId } = this.props.user;\n\n if (getCookie('userIDTracked') === azureAdId) {\n return;\n }\n\n dataLayerPush({ userID: azureAdId });\n setCookie('userIDTracked', azureAdId);\n }\n\n render() {\n return (\n \n );\n }\n };\n\nexport default withCSRFToken(withUserTracking(BasePage));\n","import BasePage from './BasePage';\nimport React from 'react';\nimport { snakeCaseToCamelCase } from '../../utils';\n\nexport const basePageWrap = (Component) => (props) => {\n const camelProps = { ...snakeCaseToCamelCase(props) };\n\n return (\n \n \n \n );\n};\n\nexport default BasePage;\n","import React from 'react';\n\nconst CSRFContext = React.createContext(\"\");\n\nexport default CSRFContext;\n","function setCookie(cname, cvalue, expirationDays) {\n expirationDays = expirationDays || 365;\n let d = new Date();\n d.setTime(d.getTime() + expirationDays * 24 * 60 * 60 * 1000);\n let expires = 'expires=' + d.toUTCString();\n document.cookie = cname + '=' + cvalue + ';' + expires + ';path=/';\n}\n\nfunction removeCookie(cname) {\n let expires = 'Thu, 01 Jan 1970 00:00:00 GMT';\n document.cookie = cname + '=;' + expires + ';path=/';\n}\n\nconst getCookie = (name) => {\n name = name + '=';\n const cookie = document.cookie.split(';');\n for (let i = 0; i < cookie.length; i++) {\n let part = cookie[i];\n while (part.charAt(0) === ' ') {\n part = part.substring(1);\n }\n if (part.indexOf(name) === 0) {\n return part.substring(name.length, part.length);\n }\n }\n return '';\n};\n\nexport { setCookie, getCookie, removeCookie };\n","export const dataLayerPush = (layer) => {\n if (typeof window === 'undefined') {\n return;\n }\n\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push(layer);\n};\n\nexport function trackEvent(name, category, action, label, dimensions = {}) {\n dataLayerPush({\n event: name,\n category: category,\n action: action,\n label: label,\n ...dimensions,\n });\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"BasePage\":\"BasePage_folkhem_BasePage__ueRym\",\"BasePage--Wrapper\":\"BasePage_folkhem_BasePage--Wrapper__U8H4I\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"BasePage--Wrapper\":\"BasePage_nordr_BasePage--Wrapper__R6Vl6\",\"BasePage--Layout-our-homes\":\"BasePage_nordr_BasePage--Layout-our-homes__pnmRs\"};"],"names":["WagtailUserbar","dynamic","BannerGlobal","CookieBar","BasePage","this","props","cookieBar","footer","header","pageType","user","hideTopNav","hideFooter","bannerGlobal","siteSettings","seo","wagtailUserbar","htmlTitle","description","ogTitle","ogDescription","ogUrl","ogImage","twitterTitle","twitterDescription","twitterUrl","twitterImage","canonicalLink","robots","facebookPageId","theme","layout","children","styles","themes","stylesNordr","stylesFolkhem","getStyles","rel","href","crossOrigin","name","content","property","sizes","type","color","Theme","className","classNames","Header","Object","keys","length","Footer","siteSetting","modifiers","React","defaultProps","ComposedComponent","getCookie","removeCookie","dataLayerPush","userID","azureAdId","setCookie","attemptToLogoutUser","withUserTracking","CSRFContext","value","csrfToken","basePageWrap","Component","camelProps","snakeCaseToCamelCase","_class","cname","cvalue","expirationDays","d","Date","setTime","getTime","expires","toUTCString","document","cookie","split","i","part","charAt","substring","indexOf","layer","window","dataLayer","push","trackEvent","category","action","label","dimensions","event","module","exports"],"sourceRoot":""}