{"version":3,"file":"component---src-templates-service-page-tsx-72e967714569be8dac66.js","mappings":"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","sources":["webpack://batmaid-www/../@containers/SmartlookClient/SmartlookClient.tsx","webpack://batmaid-www/./src/templates/Homepage/BookCleaningSection.tsx","webpack://batmaid-www/./src/templates/Homepage/QuoteSection.tsx","webpack://batmaid-www/./src/templates/ServicePage.tsx","webpack://batmaid-www/../node_modules/gatsby/node_modules/core-js/internals/array-includes.js","webpack://batmaid-www/../node_modules/gatsby/node_modules/core-js/internals/classof-raw.js","webpack://batmaid-www/../node_modules/gatsby/node_modules/core-js/internals/enum-bug-keys.js","webpack://batmaid-www/../node_modules/gatsby/node_modules/core-js/internals/indexed-object.js","webpack://batmaid-www/../node_modules/gatsby/node_modules/core-js/internals/length-of-array-like.js","webpack://batmaid-www/../node_modules/gatsby/node_modules/core-js/internals/math-trunc.js","webpack://batmaid-www/../node_modules/gatsby/node_modules/core-js/internals/object-keys-internal.js","webpack://batmaid-www/../node_modules/gatsby/node_modules/core-js/internals/to-absolute-index.js","webpack://batmaid-www/../node_modules/gatsby/node_modules/core-js/internals/to-indexed-object.js","webpack://batmaid-www/../node_modules/gatsby/node_modules/core-js/internals/to-integer-or-infinity.js","webpack://batmaid-www/../node_modules/gatsby/node_modules/core-js/internals/to-length.js"],"sourcesContent":["/**\n * @author jakubbujakowski\n * @since 2022-3-2\n *\n * IMPORTANT!\n * Smartlook is injected and initialized via GTM.\n * This component will only work on environemnts where GTM has been configured.\n */\nimport React, { useEffect } from \"react\";\nimport { Record } from \"immutable\";\n\nimport { IS_BROWSER } from \"@config/consts\";\n\nimport { IUser } from \"@typings/user\";\n\nimport { useAuth } from \"@hooks/useAuth\";\n\ninterface Props {\n urlWhitelist?: string[]; // when passed, only allow recording on these routes\n}\n\nconst SmartlookClient = (props: Props): null => {\n const { user } = useAuth();\n\n const disableSmartlookEffectDeps = IS_BROWSER ? [window.location.href] : [];\n\n const isUrlSupported = () =>\n props.urlWhitelist === undefined ||\n props.urlWhitelist?.some(url => window.location.href.includes(url));\n\n const handleIdentify = (user: Record<IUser>) => {\n (window as any)?.smartlook?.(\"identify\", user.get(\"uuid\"), {\n name: `${user.get(\"firstName\")} ${user.get(\"lastName\")}`,\n email: user.get(\"email\"),\n });\n };\n\n const handleAnonymize = () => {\n (window as any)?.smartlook?.(\"anonymize\");\n };\n\n const handleDisable = () => {\n (window as any)?.smartlook?.(\"disable\");\n };\n\n useEffect(() => {\n if (!user) {\n handleAnonymize();\n return;\n }\n\n handleIdentify(user);\n }, [user]);\n\n useEffect(() => {\n if (!isUrlSupported()) {\n handleDisable();\n }\n }, [disableSmartlookEffectDeps]);\n\n return null;\n};\n\nexport { SmartlookClient };\n","import { IGatsbyImageData } from \"gatsby-plugin-image\";\nimport React from \"react\";\nimport styled from \"styled-components\";\n\nimport { AVAILABLE_LANGS, SERVICE_TYPE } from \"@typings/globals\";\n\nimport {\n Column,\n Margins,\n Row,\n Container,\n Heading,\n CheckListItem,\n} from \"@ui/Atoms\";\n\nimport { useBreakpoint } from \"@hooks/useBreakpoint\";\nimport { useBrowserRerender } from \"@hooks/useBrowserRerender\";\n\nimport { SubscribeEmail } from \"@www/src/components/SubscribeEmail\";\n\nimport { GatsbyImage } from \"../../components/GatsbyImage\";\nimport { StartBookingForm } from \"../../components/StartBookingForm\";\n\nimport { List, StyledSection } from \"./shared\";\n\nconst handleFormSuccess = (path: string): void => {\n window.location.href = path;\n};\n\ninterface ListItemProp {\n list_item: { text: string };\n}\n\nexport interface BookCleaningProps {\n ready_to_book_title: { text: string };\n ready_to_book_list: ListItemProp[];\n ready_to_book_list_mobile: ListItemProp[];\n teaser_form_submit?: { text: string };\n teaser_form_placeholder?: { text: string };\n booking_form_submit: { text: string };\n booking_form_placeholder: { text: string };\n ready_to_book_image: {\n gatsbyImageData: IGatsbyImageData;\n };\n is_teaser_version?: boolean;\n email_submit: { text: string };\n email_placeholder: { text: string };\n serviceType?: SERVICE_TYPE;\n language: AVAILABLE_LANGS;\n}\n\nconst BookCleaningSection = (props: BookCleaningProps): React.ReactElement => {\n const { mobile, tablet } = useBreakpoint(\"v1\");\n const isBrowser = useBrowserRerender();\n\n const isMobile = mobile || tablet;\n\n const listToRender = isMobile\n ? props.ready_to_book_list_mobile\n : props.ready_to_book_list;\n\n return (\n <StyledSection hasOverflow>\n <Container>\n <Row>\n <StyledColumn xs={12} lg={6}>\n <GatsbyImage\n image={props.ready_to_book_image.gatsbyImageData}\n alt=\"maid\"\n />\n </StyledColumn>\n\n <Column xs={12} lg={6}>\n <Margins xs={[null, \"base_x8\", null, null]}>\n <StyledHeading\n type=\"h2\"\n styleAs={isBrowser && isMobile ? \"h6\" : \"h4\"}\n >\n {props.ready_to_book_title.text}\n </StyledHeading>\n </Margins>\n <BookCleaningSectionImg>\n <GatsbyImage\n image={props.ready_to_book_image.gatsbyImageData}\n alt=\"maids\"\n />\n </BookCleaningSectionImg>\n <ListWrapper>\n <List>\n {listToRender?.map(({ list_item }) => (\n <CheckListItem key={list_item.text} value={list_item.text} />\n ))}\n </List>\n </ListWrapper>\n <div>\n {props.is_teaser_version ? (\n <SubscribeEmail\n emailSubmit={\n props.teaser_form_submit?.text || props.email_submit.text\n }\n emailPlaceholder={\n props.teaser_form_placeholder?.text ||\n props.email_placeholder.text\n }\n buttonVariant=\"green\"\n />\n ) : (\n <StartBookingForm\n language={props.language}\n buttonVariant=\"green\"\n onSuccess={handleFormSuccess}\n serviceType={props.serviceType || SERVICE_TYPE.HOME_CLEANING}\n />\n )}\n </div>\n </Column>\n </Row>\n </Container>\n </StyledSection>\n );\n};\n\nexport { BookCleaningSection };\n\nconst BookCleaningSectionImg = styled.div`\n margin-bottom: ${props => props.theme.margins.base_x3};\n\n ${props => props.theme.breakpoints.desktop} {\n display: none;\n }\n`;\n\nconst ListWrapper = styled.div`\n display: flex;\n margin-bottom: ${props => props.theme.margins.base_x4};\n`;\n\nconst StyledHeading = styled(Heading)`\n margin-bottom: ${props => props.theme.margins.base_x3};\n text-align: left;\n\n ${props => props.theme.breakpoints.desktop} {\n margin-bottom: ${props => props.theme.margins.base_x4};\n }\n`;\n\nconst StyledColumn = styled(Column)`\n display: none;\n\n ${props => props.theme.breakpoints.desktop} {\n display: block;\n }\n`;\n","import React from \"react\";\nimport styled from \"styled-components\";\n\nimport { Container, Heading, Margins, Paragraph } from \"@ui/Atoms\";\nimport { rem } from \"@ui/helpers\";\n\nimport { useBreakpoint } from \"@hooks/useBreakpoint\";\nimport { useBrowserRerender } from \"@hooks/useBrowserRerender\";\n\nimport { StyledSection } from \"./shared\";\n\nexport interface QuoteSectionProps {\n quote_title: { text: string };\n quote_quote: { text: string };\n quote_author: { text: string };\n}\n\nconst QuoteSection = (props: QuoteSectionProps): React.ReactElement => {\n const isBrowser = useBrowserRerender();\n const { mobile, tablet } = useBreakpoint(\"v1\");\n const isMobile = mobile || tablet;\n\n return (\n <Section>\n <Container>\n <Margins\n xs={[null, \"base_x3\", null, null]}\n lg={[null, \"base_x8\", null, null]}\n >\n <Heading\n type=\"h2\"\n styleAs={isBrowser && isMobile ? \"h6\" : \"h4\"}\n color=\"white\"\n textAlignXs=\"left\"\n textAlignMd=\"left\"\n textAlignLg=\"center\"\n >\n {props.quote_title.text}\n </Heading>\n </Margins>\n\n <blockquote>\n <Quote>\n {isMobile ? `„${props.quote_quote.text}”` : props.quote_quote.text}\n </Quote>\n </blockquote>\n <Author>\n {isMobile\n ? props.quote_author.text\n : `— ${props.quote_author.text} —`}\n </Author>\n </Container>\n </Section>\n );\n};\n\nexport { QuoteSection };\n\nconst Section = styled(StyledSection)`\n background: ${props => props.theme.palette.grey800};\n color: ${props => props.theme.palette.white};\n`;\n\nconst Quote = styled(Paragraph)`\n position: relative;\n margin: 0 auto;\n font-size: ${props => props.theme.fonts.sizes.h6};\n line-height: ${props => props.theme.fonts.lineHeights.h5};\n color: ${props => props.theme.palette.white};\n white-space: pre-line;\n text-align: left;\n font-size: ${props => props.theme.fonts.sizes.body};\n font-style: italic;\n\n ${props => props.theme.breakpoints.desktop} {\n font-size: ${props => props.theme.fonts.sizes.h5};\n text-align: center;\n\n &:before {\n content: \"''\";\n position: absolute;\n left: -${rem(20)};\n top: -${rem(20)};\n }\n\n &:after {\n content: \",,\";\n position: absolute;\n right: -${rem(20)};\n bottom: -${rem(20)};\n }\n }\n`;\n\nconst Author = styled.div`\n color: ${props => props.theme.palette.grey400};\n margin-top: ${props => props.theme.margins.base_x4};\n\n ${props => props.theme.breakpoints.desktop} {\n margin-top: ${props => props.theme.margins.base_x4};\n text-align: center;\n }\n`;\n","import * as React from \"react\";\nimport { withPrismicPreview } from \"gatsby-plugin-prismic-previews\";\nimport { graphql, PageProps } from \"gatsby\";\n\nimport { DEFAULT_LANGUAGE } from \"@config/consts\";\n\nimport { AVAILABLE_COUNTRIES, HERO_TYPES, ORIGIN } from \"@typings/globals\";\n\nimport theme from \"@ui/themes/default\";\n\nimport { langFromTag } from \"@services/LangFromTag/LangFromTag\";\n\nimport { SmartlookClient } from \"@containers/SmartlookClient\";\n\nimport { useBreakpoint } from \"@hooks/useBreakpoint\";\n\nimport { getServiceType } from \"../components/StartBookingForm/StartBookingForm.helpers\";\nimport Layout from \"../components/Layout\";\nimport SEO, { SeoProps } from \"../components/SEO\";\n\nimport {\n TextSection,\n QuoteSection,\n VideoSection,\n BookCleaningSection,\n BecomeBatmaidSection,\n HeroSection,\n TextSectionProps,\n SliceHeroProps,\n HeroProps,\n QuoteSectionProps,\n VideoProps,\n BecomeBatmaidProps,\n BookCleaningProps,\n Partners,\n PartnersProps,\n BoxesSection,\n BoxesProps,\n DefaultCard,\n BlogCardProps,\n HowItWorks,\n} from \"./Homepage/\";\n\nenum SECTION_TYPES {\n TEXT_SECTION = \"text_section\",\n BOXES_LIST = \"boxes_list\",\n CLEANING_TIPS = \"cleaning_tips\",\n STEPS_LIST = \"steps_list\",\n}\n\ninterface CustomServicePageProps {\n section: any; //SectionsSlices; //@TODO\n index: number;\n language: string;\n howItWorksIconsSize: number;\n}\n\n// @TODO: adjust typing\nconst CustomServicePage = ({\n section,\n index,\n language,\n howItWorksIconsSize,\n}: CustomServicePageProps): React.ReactElement => {\n switch (section.slice_type) {\n case SECTION_TYPES.TEXT_SECTION: {\n const textSectionData: TextSectionProps = {\n text_section_title: section.primary.text_section_title,\n text_section_text: section.primary.text_section_text,\n isWhite: index % 2 === 0,\n };\n\n return <TextSection {...textSectionData} />;\n }\n case SECTION_TYPES.BOXES_LIST: {\n const boxesData: BoxesProps<DefaultCard> = {\n section_title: section.primary?.section_title,\n items: section.items?.map((box: any) => ({\n box_image_text: box?.box_image_text,\n box_image: box?.box_image,\n service_link: box?.service_link,\n })),\n language,\n isWhite: index % 2 === 0,\n };\n\n return <BoxesSection {...boxesData} />;\n }\n case SECTION_TYPES.CLEANING_TIPS: {\n const cleaningTipsData: BoxesProps<BlogCardProps> = {\n section_title: section.primary.section_title,\n items: section.items,\n isBlog: true,\n isWhite: index % 2 === 0,\n };\n\n return <BoxesSection {...cleaningTipsData} />;\n }\n\n case SECTION_TYPES.STEPS_LIST: {\n const stepsListData = {\n ...section.primary,\n isWhite: index % 2 === 0,\n iconsColor: theme.palette.grey600,\n };\n\n return <HowItWorks {...stepsListData} iconsSize={howItWorksIconsSize} />;\n }\n\n default: {\n return <React.Fragment />;\n }\n }\n};\n\ntype Primary = TextSectionProps | Omit<BoxesProps<DefaultCard>, \"items\">;\ntype Items = DefaultCard[] | BlogCardProps[];\n\ninterface SectionsSlices {\n slice_type: SECTION_TYPES;\n primary: Partial<Primary>;\n items: Partial<Items>;\n}\n\ntype Props = PageProps<\n {\n prismicServicePage: {\n data: PageData;\n };\n },\n {\n lang: string;\n origin: ORIGIN;\n country: AVAILABLE_COUNTRIES;\n type: string;\n }\n>;\n\ninterface PageData\n extends HeroProps,\n PartnersProps,\n QuoteSectionProps,\n VideoProps,\n BecomeBatmaidProps,\n BookCleaningProps,\n SeoProps {\n title: {\n text: string;\n };\n slug: {\n text: string;\n };\n service_type: HERO_TYPES;\n body: SliceHeroProps[];\n body1: SectionsSlices[];\n}\n\nconst ServicePage = (props: Props): React.ReactElement => {\n const { pageContext, data } = props;\n const { prismicServicePage } = data;\n\n const { desktop, desktopLarge } = useBreakpoint(\"v1\");\n\n const language = langFromTag(pageContext.lang) || DEFAULT_LANGUAGE;\n\n const urlLang = pageContext.lang.split(\"-\")[0];\n\n const seoData: SeoProps = {\n seo_title: prismicServicePage.data.seo_title,\n seo_description: prismicServicePage.data.seo_description,\n seo_image: prismicServicePage.data.seo_image,\n };\n\n const heroData: HeroProps = {\n language,\n hero_image_mobile: prismicServicePage.data.hero_image_mobile,\n booking_form_submit: prismicServicePage.data.booking_form_submit,\n booking_form_placeholder: prismicServicePage.data.booking_form_placeholder,\n email_submit: prismicServicePage.data.email_submit,\n email_placeholder: prismicServicePage.data.email_placeholder,\n heroesList: prismicServicePage.data.body,\n landingUrl: `/${urlLang}`,\n hero_breadcrumb_text: prismicServicePage.data.hero_breadcrumb_text,\n };\n\n const partnersData = {\n partners_logos: prismicServicePage.data.partners_logos,\n partners_title: prismicServicePage.data.partners_title,\n };\n\n const whyQuoteData = {\n quote_title: prismicServicePage.data.quote_title,\n quote_quote: prismicServicePage.data.quote_quote,\n quote_author: prismicServicePage.data.quote_author,\n };\n\n const videoData = {\n video_title: prismicServicePage.data.video_title,\n video_title_bottom: prismicServicePage.data.video_title_bottom,\n video_url: prismicServicePage.data.video_url,\n };\n\n const readyToBookData: BookCleaningProps = {\n ready_to_book_title: prismicServicePage.data.ready_to_book_title,\n ready_to_book_list: prismicServicePage.data.ready_to_book_list,\n ready_to_book_list_mobile:\n prismicServicePage.data.ready_to_book_list_mobile,\n ready_to_book_image: prismicServicePage.data.ready_to_book_image,\n booking_form_submit: prismicServicePage.data.booking_form_submit,\n booking_form_placeholder: prismicServicePage.data.booking_form_placeholder,\n email_submit: prismicServicePage.data.email_submit,\n email_placeholder: prismicServicePage.data.email_placeholder,\n serviceType: getServiceType(prismicServicePage.data.service_type),\n language,\n };\n\n const becomeBatmaidData = {\n become_cleaner_title: prismicServicePage.data.become_cleaner_title,\n become_cleaner_quote: prismicServicePage.data.become_cleaner_quote,\n become_cleaner_quote_author:\n prismicServicePage.data.become_cleaner_quote_author,\n become_cleaner_button_text:\n prismicServicePage.data.become_cleaner_button_text,\n become_cleaner_button_link:\n prismicServicePage.data.become_cleaner_button_link,\n lang: pageContext.lang,\n become_cleaner_image: prismicServicePage.data.become_cleaner_image,\n };\n\n return (\n <Layout\n language={language}\n country={props.pageContext.country}\n origin={ORIGIN.BATMAID}\n isFullWidth\n >\n <SmartlookClient />\n <SEO\n {...seoData}\n title={prismicServicePage.data.title.text}\n breadcrumbs={[\n {\n title:\n seoData.seo_title?.text || prismicServicePage.data.title.text,\n href: `/${language}/${prismicServicePage.data.slug.text.trim()}`,\n },\n ]}\n path={props.location.pathname}\n />\n <HeroSection {...heroData} isCityPage />\n <Partners {...partnersData} />\n {prismicServicePage.data.body1?.map((section, index) => (\n <CustomServicePage\n key={index}\n section={section}\n language={language}\n index={index}\n howItWorksIconsSize={desktop || desktopLarge ? 96 : 64}\n />\n ))}\n <QuoteSection {...whyQuoteData} />\n <VideoSection {...videoData} />\n <BecomeBatmaidSection {...becomeBatmaidData} />\n <BookCleaningSection {...readyToBookData} />\n </Layout>\n );\n};\n\nexport default withPrismicPreview(ServicePage);\n\nexport const query = graphql`\n query ServicePageQuery($id: String) {\n prismicServicePage(id: { eq: $id }) {\n _previewable\n lang\n data {\n slug {\n text\n }\n title {\n text\n }\n # ==== SEO ====\n seo_title {\n text\n }\n seo_description {\n text\n }\n seo_image {\n gatsbyImageData(width: 1200)\n }\n\n # ==== BOOKING FORM TEXTS ====\n booking_form_submit {\n text\n }\n booking_form_placeholder {\n text\n }\n\n # ==== EMAIL TEXTS (DEPRECATED) ====\n email_submit {\n text\n }\n email_placeholder {\n text\n }\n\n # hero\n hero_image_mobile {\n gatsbyImageData\n }\n hero_breadcrumb_text {\n text\n }\n body {\n ... on PrismicServicePageDataBodyLandingHero {\n primary {\n hero_type\n hero_section_title {\n text\n }\n hero_navigation_text {\n text\n }\n hero_section_description {\n text\n }\n hero_background_img {\n gatsbyImageData(width: 1920, imgixParams: { q: 90 })\n }\n button_text {\n text\n }\n button_link {\n text\n }\n }\n\n items {\n hero_description_image {\n gatsbyImageData\n }\n list_item {\n text\n }\n }\n }\n }\n\n # ==== PARTNERS SECTION ====\n partners_title {\n text\n }\n partners_logos {\n partner_logo {\n alt\n gatsbyImageData(\n layout: CONSTRAINED\n imgixParams: { q: 100 }\n sizes: \"(max-width: 360px) 85px, 144px\"\n placeholder: BLURRED\n )\n }\n partner_link {\n url\n target\n }\n }\n\n # custom section\n\n body1 {\n ... on PrismicServicePageDataBody1TextSection {\n slice_type\n primary {\n text_section_title {\n text\n }\n text_section_text {\n text\n }\n }\n }\n ... on PrismicServicePageDataBody1CleaningTips {\n slice_type\n primary {\n section_title {\n text\n }\n }\n items {\n blog_card_background_photo {\n gatsbyImageData\n }\n blog_card_title {\n text\n }\n blog_card_hashtags {\n text\n }\n blog_card_link {\n text\n }\n }\n }\n ... on PrismicServicePageDataBody1BoxesList {\n slice_type\n primary {\n section_title {\n text\n }\n }\n items {\n box_image {\n gatsbyImageData(\n layout: CONSTRAINED\n imgixParams: { q: 95, minH: 191, fit: \"crop\", crop: \"faces\" }\n sizes: \"(max-width: 360px) 280px, (max-width: 767px) 687px, (max-width: 991px) 312px, 232px\"\n placeholder: BLURRED\n )\n }\n box_image_text {\n text\n }\n service_link {\n slug\n }\n }\n }\n ... on PrismicServicePageDataBody1WhatDoWeOffer {\n slice_type\n primary {\n section_title {\n text\n }\n }\n items {\n what_do_we_offer_card_image {\n gatsbyImageData(\n layout: CONSTRAINED\n imgixParams: { q: 95, minH: 191, fit: \"crop\", crop: \"faces\" }\n sizes: \"(max-width: 360px) 280px, (max-width: 767px) 687px, (max-width: 991px) 312px, 232px\"\n placeholder: BLURRED\n )\n }\n what_do_we_offer_card_image_mobile {\n gatsbyImageData(\n layout: CONSTRAINED\n imgixParams: { q: 95, minH: 191, fit: \"crop\", crop: \"faces\" }\n sizes: \"(max-width: 360px) 280px, (max-width: 767px) 687px, (max-width: 991px) 312px, 232px\"\n placeholder: BLURRED\n )\n }\n what_do_we_offer_card_title {\n text\n }\n what_do_we_offer_card_title {\n text\n }\n what_do_we_offer_card_list_element__1 {\n text\n }\n what_do_we_offer_card_list_element__2 {\n text\n }\n what_do_we_offer_card_list_element__3 {\n text\n }\n what_do_we_offer_card_list_element__4 {\n text\n }\n what_do_we_offer_card_list_element__5 {\n text\n }\n }\n }\n ... on PrismicServicePageDataBody1StepsList {\n slice_type\n primary {\n how_it_works_title {\n text\n }\n how_it_works_title_mobile {\n text\n }\n how_it_works_step_one_title {\n text\n }\n how_it_works_step_one {\n text\n }\n how_it_works_step_one_icon\n how_it_works_step_two_title {\n text\n }\n how_it_works_step_two {\n text\n }\n how_it_works_step_two_icon\n how_it_works_step_three_title {\n text\n }\n how_it_works_step_three {\n text\n }\n how_it_works_step_three_icon\n }\n }\n }\n # ==== QUOTE SECTION ====\n quote_title {\n text\n }\n quote_quote {\n text\n }\n quote_author {\n text\n }\n # ==== VIDEO SECTION ====\n video_title {\n text\n }\n video_url {\n url\n }\n video_title_bottom {\n text\n }\n # ==== BECOME BATMAID SECTION ====\n become_cleaner_title {\n text\n }\n become_cleaner_quote {\n text\n }\n become_cleaner_quote_author {\n text\n }\n become_cleaner_button_text {\n text\n }\n become_cleaner_button_link {\n text\n }\n become_cleaner_image {\n gatsbyImageData(\n layout: CONSTRAINED\n imgixParams: { q: 95 }\n placeholder: BLURRED\n )\n }\n # ==== BOOK CLEANING SECTION ====\n service_type\n ready_to_book_title {\n text\n }\n ready_to_book_list {\n list_item {\n text\n }\n }\n ready_to_book_list_mobile {\n list_item {\n text\n }\n }\n ready_to_book_image {\n gatsbyImageData(\n layout: CONSTRAINED\n imgixParams: { q: 95 }\n width: 1980\n )\n }\n }\n }\n }\n`;\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n"],"names":["SmartlookClient","props","user","useAuth","disableSmartlookEffectDeps","IS_BROWSER","window","location","href","useEffect","handleAnonymize","_window2","_window2$smartlook","_window","_window$smartlook","smartlook","call","get","name","email","handleIdentify","handleDisable","_window3","_window3$smartlook","_props$urlWhitelist","undefined","urlWhitelist","some","url","includes","handleFormSuccess","path","BookCleaningSection","_props$teaser_form_su","_props$teaser_form_pl","mobile","tablet","useBreakpoint","isBrowser","useBrowserRerender","isMobile","listToRender","ready_to_book_list_mobile","ready_to_book_list","React","StyledSection","hasOverflow","Container","Row","StyledColumn","xs","lg","GatsbyImage","image","ready_to_book_image","gatsbyImageData","alt","Column","Margins","StyledHeading","type","styleAs","ready_to_book_title","text","BookCleaningSectionImg","ListWrapper","List","map","_ref","list_item","CheckListItem","key","value","is_teaser_version","SubscribeEmail","emailSubmit","teaser_form_submit","email_submit","emailPlaceholder","teaser_form_placeholder","email_placeholder","buttonVariant","StartBookingForm","language","onSuccess","serviceType","SERVICE_TYPE","HOME_CLEANING","styled","div","withConfig","displayName","componentId","theme","margins","base_x3","breakpoints","desktop","base_x4","Heading","QuoteSection","Section","color","textAlignXs","textAlignMd","textAlignLg","quote_title","Quote","quote_quote","Author","quote_author","palette","grey800","white","Paragraph","fonts","sizes","h6","lineHeights","h5","body","rem","grey400","SECTION_TYPES","CustomServicePage","section","index","howItWorksIconsSize","slice_type","TEXT_SECTION","textSectionData","text_section_title","primary","text_section_text","isWhite","TextSection","BOXES_LIST","_section$primary","_section$items","boxesData","section_title","items","box","box_image_text","box_image","service_link","BoxesSection","CLEANING_TIPS","cleaningTipsData","isBlog","STEPS_LIST","stepsListData","iconsColor","grey600","HowItWorks","Object","assign","iconsSize","withPrismicPreview","_seoData$seo_title","_prismicServicePage$d","pageContext","data","prismicServicePage","desktopLarge","langFromTag","lang","DEFAULT_LANGUAGE","urlLang","split","seoData","seo_title","seo_description","seo_image","heroData","hero_image_mobile","booking_form_submit","booking_form_placeholder","heroesList","landingUrl","hero_breadcrumb_text","partnersData","partners_logos","partners_title","whyQuoteData","videoData","video_title","video_title_bottom","video_url","readyToBookData","getServiceType","service_type","becomeBatmaidData","become_cleaner_title","become_cleaner_quote","become_cleaner_quote_author","become_cleaner_button_text","become_cleaner_button_link","become_cleaner_image","Layout","country","origin","ORIGIN","BATMAID","isFullWidth","SEO","title","breadcrumbs","slug","trim","pathname","HeroSection","isCityPage","Partners","body1","VideoSection","BecomeBatmaidSection","toIndexedObject","toAbsoluteIndex","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","el","fromIndex","O","length","module","exports","indexOf","uncurryThis","toString","stringSlice","slice","it","fails","classof","$Object","propertyIsEnumerable","toLength","obj","ceil","Math","floor","trunc","x","n","hasOwn","hiddenKeys","push","object","names","i","result","toIntegerOrInfinity","max","min","integer","IndexedObject","requireObjectCoercible","argument","number"],"sourceRoot":""}