{"version":3,"names":["sewWsDownloadsCss","SewWsDownloads","constructor","hostRef","this","searchInputLabel","trackingCategory","checkDownloadTypes","downloadTypes","json","JSON","parse","selectedDownloadType","Array","from","filter","type","value","length","selectedDownloadTypeName","name","checkHasAlreadyProductId","includes","hasAlreadyProductId","generateLink","_a","inputValue","location","href","componentWillLoad","render","h","Host","key","class","downloadTitle","downloadText","ws","noSearch","placeholder","comboboxId","onItemSelected","selectedItem","detail","map","option","selected","allowSearchInput","productInputTitle","replace","htmlFor","id","onInput","e","target","onKeyPress","onClick","gettrackmeEventCategory","gettrackmeEventObject","servicesItemLabel","buttonText","linksHeadline","linksText","sewWsFloatingButtonsCss","SewWsFloatingButtons","localization","region","language","scrollToTopAriaLabel","contactAriaLabel","downloadAriaLabel","whatsappAriaLabel","scrolled","openFlyout","isScrollToTopVisible","idle","loadGoogleApi","webchatChecked","webchatInitialized","lastScrollPosition","hasBeenShown","toggleOpenFloatingCard","flyout","calcMultiButtonPosition","getCurrentMediaQuery","document","body","classList","add","remove","scrollToTop","window","scrollTo","top","behavior","optOutInitialTipAnimation","localStorage","setItem","host","style","setProperty","floatingButtonsRef","clientHeight","optOutCurrentTipPopup","storageValue","getItem","String","currentTip","fetchTips","async","fetch","tipApiUrl","then","res","data","tips","_embedded","err","console","error","filterTips","catch","checkTipUrl","page","pagePathname","split","pageParams","matched","toLowerCase","param","search","tip","fs_date","start","end","pages","tipInitialTeaser","duration","setTimeout","multiButtonRef","position","innerHeight","getBoundingClientRect","bottom","checkChatInitialization","chatContainer","querySelector","webchatToggleBtnRef","clearInterval","initCheckInterval","onScroll","enableIdleAnimation","clearTimeout","scrollTimeout","scrollY","onResize","clientWidth","checkForClickOutside","eventWindowClicked","path","composedPath","every","el","addEventListener","enableTips","sessionStorage","linklistLength","querySelectorAll","linklistHeight","getConsent","cookie","indexOf","componentDidLoad","tipDuration","setInterval","componentDidRender","enableDownloads","open","icon","innerHTML","cardTitle","firstPhoneTitle","firstPhoneNumber","firstPhoneHelpText","secondPhoneTitle","secondPhoneNumber","secondPhoneHelpText","thirdPhoneTitle","thirdPhoneNumber","thirdPhoneHelpText","externalZipcodeSearch","apiKey","apiBaseUrl","isFixed","action","externalZipcodeInputName","title","loading","src","image_src","alt","image_alt","image_title","headline","text","button_link","link_target","button_text","tipOptOutLabel","enableWhatsapp","second","third","ref","onTransitionEnd","click","chatBtnTitle","chatBtnText","size","enableLinkButton","linkBtnText","linkBtnLink","linkBtnIcon","onClickedButton","tipLabel","expanded","visible","sewWsWhatsappServiceCss","SewWsWhatsappService","items","item","index","intro","step","img"],"sources":["src/components/website-components/sew-ws-downloads/sew-ws-downloads.scss?tag=sew-ws-downloads&encapsulation=shadow","src/components/website-components/sew-ws-downloads/sew-ws-downloads.tsx","src/components/website-components/sew-ws-floating-buttons/sew-ws-floating-buttons.scss?tag=sew-ws-floating-buttons&encapsulation=shadow","src/components/website-components/sew-ws-floating-buttons/sew-ws-floating-buttons.tsx","src/components/website-components/sew-ws-whatsapp-service/sew-ws-whatsapp-service.scss?tag=sew-ws-whatsapp-service&encapsulation=shadow","src/components/website-components/sew-ws-whatsapp-service/sew-ws-whatsapp-service.tsx"],"sourcesContent":[":host {\n @include grid;\n\n .main-content-container {\n display: grid;\n grid-auto-columns: 1fr;\n grid-auto-flow: column;\n column-gap: var(--column-gap);\n padding: 40px 0;\n }\n\n p {\n @include typo-ws-paragraph;\n\n margin: 0;\n }\n\n .dropdown-area,\n .input-area {\n display: flex;\n flex-direction: column;\n\n sew-combobox,\n sew-input {\n margin-top: auto;\n }\n\n p:has(+ sew-combobox),\n p:has(+ sew-input) {\n margin-bottom: 20px;\n }\n }\n\n sew-ws-button {\n align-self: flex-end;\n justify-self: start;\n }\n\n .links-headline {\n @include typo-ws-paragraph-bold;\n }\n\n .links-text {\n margin: 4px 0 0;\n }\n\n ::slotted(sew-ws-linklist) {\n margin-top: 12px;\n }\n}\n\n:host(.inside-flyout) {\n display: block;\n\n .dropdown-intro {\n @include typo-ws-h3;\n\n margin-bottom: 24px;\n }\n\n .main-content-container {\n grid-template-columns: 1fr;\n grid-auto-flow: row;\n row-gap: 40px;\n padding: 0;\n }\n\n sew-ws-button {\n width: 100%;\n }\n\n .dropdown-area {\n sew-combobox {\n margin-top: 20px;\n }\n }\n}\n\n@include mq-1 {\n :host {\n .main-content-container {\n grid-template-columns: 1fr;\n grid-auto-flow: row;\n row-gap: 40px;\n padding: 24px 0 40px;\n }\n\n .input-area {\n .product-input-title {\n margin-bottom: 20px;\n }\n }\n\n .dropdown-area {\n sew-combobox {\n margin-top: 20px;\n }\n }\n }\n}\n","import { Component, Host, h, Prop, Watch } from '@stencil/core';\nimport { gettrackmeEventCategory, gettrackmeEventObject } from '../../../utils/tracking-helpers';\nimport { SelectOption } from '../../forms/sew-combobox/sew-combobox.types';\nimport { SewComboboxCustomEvent } from '../../../components';\n\n@Component({\n tag: 'sew-ws-downloads',\n styleUrl: 'sew-ws-downloads.scss',\n shadow: true,\n})\nexport class SewWsDownloads {\n @Prop() downloadTitle: string;\n @Prop() downloadTypes: string;\n @Prop() buttonText: string;\n @Prop() linksHeadline: string;\n @Prop() linksText: string;\n @Prop() downloadText: string;\n @Prop() servicesItemLabel: string;\n @Prop() selectedDownloadType: string;\n @Prop() allowSearchInput: boolean;\n @Prop() searchInputLabel = 'Product';\n @Prop() trackingCategory = 'Services';\n @Prop() productInputTitle: string;\n\n private inputValue: string;\n private hasAlreadyProductId: boolean;\n private selectedDownloadTypeName: string;\n\n @Watch('downloadTypes')\n checkDownloadTypes(): void {\n if (!this.downloadTypes) return;\n\n const json = JSON.parse(this.downloadTypes);\n\n this.selectedDownloadType =\n Array.from(json).filter(\n (type: { name: string; value: string }) => type.value === this.selectedDownloadType\n ).length === 1\n ? this.selectedDownloadType\n : json[0].value;\n\n Array.from(json).filter(\n (type: { name: string; value: string }) =>\n type.value === this.selectedDownloadType && (this.selectedDownloadTypeName = type.name)\n );\n }\n\n private checkHasAlreadyProductId(): void {\n if (this.selectedDownloadType && this.selectedDownloadType.includes('&gId=')) {\n this.hasAlreadyProductId = true;\n } else {\n this.hasAlreadyProductId = false;\n }\n }\n\n private generateLink(): void {\n if (this.inputValue?.length > 0 && !this.hasAlreadyProductId) {\n this.selectedDownloadType = this.selectedDownloadType + '&search=' + this.inputValue;\n }\n\n location.href = this.selectedDownloadType;\n }\n\n componentWillLoad() {\n this.checkDownloadTypes();\n }\n\n render() {\n return (\n \n
\n
\n

{this.downloadTitle}

\n

{this.downloadText}

\n ) => {\n this.selectedDownloadType = selectedItem.detail.value;\n this.selectedDownloadTypeName = selectedItem.detail.name;\n this.checkHasAlreadyProductId();\n }}\n >\n \n \n
\n\n {this.allowSearchInput && !this.hasAlreadyProductId && (\n
\n {this.productInputTitle && (\n

\n {this.productInputTitle.replace('#', this.selectedDownloadTypeName)}\n

\n )}\n\n \n \n (this.inputValue = (e.target as HTMLInputElement).value)}\n onKeyPress={e => e.key === 'Enter' && this.generateLink()}\n >\n \n
\n )}\n\n \n this.generateLink()}\n data-sew-trackme-event-category={gettrackmeEventCategory(this.trackingCategory)}\n data-sew-trackme-event-object={gettrackmeEventObject(\n `${this.trackingCategory}_${this.servicesItemLabel}_${this.buttonText}`\n )}\n data-sew-trackme-event-action=\"Click\"\n >\n {this.buttonText}\n \n \n\n \n
\n
\n );\n }\n}\n",":host {\n // change this var to adjust floating buttons position\n --bottom-fixed: -10px;\n --btn-height: 80px;\n --header-height-mq1: 64px;\n --bottom: max(\n calc(100vh - 50vw + var(--half-of-small-slider) - 62px),\n calc(100vh - 80vh + var(--half-of-small-slider) - 62px)\n );\n\n display: flex;\n pointer-events: none;\n flex-direction: column;\n align-items: flex-end;\n position: absolute;\n bottom: var(--bottom);\n right: calc((var(--current-client-width) - 1760px) / 2 - 100px);\n z-index: 99;\n transition:\n bottom 0.5s,\n transform 0.5s,\n opacity 0.3s;\n gap: 12px;\n opacity: 1;\n}\n\n:host(.flyout-open) {\n z-index: 1000;\n}\n\n:host(.idle) {\n opacity: 0;\n\n .floating-buttons {\n > * {\n pointer-events: none;\n }\n }\n}\n\n:host(.idle:hover) {\n opacity: 1;\n\n .floating-buttons {\n > * {\n pointer-events: all;\n }\n }\n}\n\n.chat-btn,\n.link-btn,\n.contact-btn,\n.scroll-to-top-btn {\n all: unset;\n box-sizing: border-box;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 40px;\n z-index: 2;\n height: var(--btn-height);\n box-shadow: 0 2px 15px -5px #000;\n}\n\n@keyframes glow {\n 0% {\n box-shadow:\n 0 0 0 0 rgba($color-grey-02-steel, 0.6),\n 0 0 0 0 rgba($color-grey-02-steel, 0.6),\n 0 0 0 0 rgba($color-grey-02-steel, 0.6),\n 0 2px 15px -5px #000;\n }\n 25% {\n box-shadow:\n 0 0 0 13px rgba($color-grey-02-steel, 0.3),\n 0 0 0 0 rgba($color-grey-02-steel, 0.6),\n 0 0 0 0 rgba($color-grey-02-steel, 0.6),\n 0 2px 15px -5px #000;\n }\n 50% {\n box-shadow:\n 0 0 0 26px rgba($color-grey-02-steel, 0),\n 0 0 0 13px rgba($color-grey-02-steel, 0.3),\n 0 0 0 0 rgba($color-grey-02-steel, 0.6),\n 0 2px 15px -5px #000;\n }\n 75% {\n box-shadow:\n 0 0 0 26px rgba($color-grey-02-steel, 0),\n 0 0 0 26px rgba($color-grey-02-steel, 0),\n 0 0 0 13px rgba($color-grey-02-steel, 0.3),\n 0 2px 15px -5px #000;\n }\n 100% {\n box-shadow:\n 0 0 0 26px rgba($color-grey-02-steel, 0),\n 0 0 0 26px rgba($color-grey-02-steel, 0),\n 0 0 0 26px rgba($color-grey-02-steel, 0),\n 0 2px 15px -5px #000;\n }\n}\n\n.chat-btn,\n.link-btn {\n background-color: $color-grey-02-steel;\n color: $color-white;\n animation: glow 3s linear;\n\n .icon {\n width: 80px;\n display: flex;\n justify-content: center;\n }\n\n .hover {\n max-width: 0;\n overflow: hidden;\n transition: max-width 0.6s;\n\n .title,\n .text {\n white-space: nowrap;\n padding-left: 32px;\n }\n\n .title {\n @include typo-ws-paragraph;\n }\n\n .text {\n @include typo-ws-paragraph-s;\n }\n }\n\n &:hover {\n .hover {\n max-width: 400px;\n }\n }\n}\n\n.link-btn {\n background-color: $color-white;\n color: $color-red;\n border: 1px solid $color-red;\n animation: none;\n\n .icon {\n width: 78px; // minus 2px because of border\n }\n\n .hover {\n .text {\n @include typo-ws-copy-xl-fixed;\n }\n }\n}\n\n.floating-buttons {\n display: flex;\n flex-direction: column;\n gap: 12px;\n transition: 0.3s transform ease-in-out;\n align-items: flex-end;\n\n > * {\n pointer-events: all;\n }\n}\n\n.contact-btn {\n background-color: $color-red;\n color: $color-white;\n visibility: hidden;\n\n &.visible {\n visibility: visible;\n }\n\n .expanded {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n max-width: 0;\n animation: expandedArea 6s linear forwards 2s;\n }\n\n .svg {\n width: 60px;\n display: flex;\n justify-content: center;\n }\n\n .has-been-shown {\n animation: none;\n width: 0;\n }\n\n .title,\n .phone {\n margin-left: 32px;\n white-space: nowrap;\n }\n\n .title {\n @include typo-ws-paragraph-s;\n }\n\n .phone {\n @include typo-ws-copy-l;\n\n margin-top: -3px;\n }\n\n .icon {\n padding: 0 10px;\n }\n\n &:hover {\n .svg {\n transform: scale(1.1);\n }\n }\n}\n\n.scroll-to-top-btn {\n opacity: 0;\n background-color: $color-white;\n width: 80px;\n color: $color-red;\n border: 1px solid $color-red;\n\n .svg {\n transform: translateY(10%);\n transition: transform 0.2s;\n\n .shaft {\n opacity: 0;\n transition: opacity 0.2s;\n }\n }\n\n &:hover {\n .svg {\n transform: translateY(0);\n\n .shaft {\n opacity: 1;\n }\n }\n }\n\n &:active {\n background: $color-red;\n color: $color-white;\n }\n}\n\n:host(.no-stage),\n:host(.scrolled) {\n position: fixed;\n bottom: var(--bottom-fixed);\n\n .scroll-to-top-btn {\n transform: translate3d(0, calc(var(--btn-height) + var(--bottom-fixed)), 0);\n transition:\n 0.3s transform ease-in-out,\n opacity 900ms;\n }\n}\n\n:host(.scroll-to-top-visible) {\n .floating-buttons {\n transform: translate3d(0, calc(var(--btn-height) * -1), 0);\n }\n\n .scroll-to-top-btn {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n}\n\n.flyout-layer {\n box-sizing: border-box;\n background-color: $color-white;\n padding: 44px 32px 40px;\n position: fixed;\n bottom: -20px; // to hide the shadow\n transform: translateY(100%);\n transition:\n bottom 500ms,\n top 500ms,\n transform 500ms,\n opacity 500ms;\n right: calc((var(--current-client-width) - 1760px) / 2 - 100px);\n box-shadow: 0 2px 15px -5px #000;\n z-index: 3;\n opacity: 0;\n pointer-events: all;\n width: min-content;\n min-width: 364px;\n\n &.open {\n bottom: calc(240px - var(--flyout-offset, 0));\n transform: translateY(0);\n opacity: 1;\n\n &.multi-button {\n bottom: calc(var(--multi-button-position) + 10px);\n\n &::after {\n position: absolute;\n content: '';\n background-color: $color-white;\n width: 30px;\n height: 30px;\n bottom: -14px;\n rotate: 135deg;\n box-shadow: rgb(0 0 0) 5px -5px 9px -6px;\n z-index: 3;\n opacity: 0;\n animation: arrowFadeIn 100ms 400ms forwards;\n }\n }\n\n &.multi-button.contact-flyout {\n &::after {\n right: 28px;\n }\n }\n\n &.multi-button.download-flyout,\n &.multi-button.whatsapp-flyout {\n &::after {\n right: 96px;\n }\n }\n\n &.multi-button.whatsapp-flyout.third {\n &::after {\n right: 163px;\n }\n }\n }\n\n .card-title {\n @include typo-ws-h3;\n\n margin: 0 0 24px;\n }\n\n .card-content {\n .headline {\n @include typo-ws-paragraph;\n }\n\n .text {\n @include typo-ws-copy-l-fixed;\n\n margin-top: 4px;\n color: inherit;\n text-decoration: none;\n\n @include mq-4-min {\n font-size: 32px;\n line-height: 44px;\n }\n }\n\n .help-text {\n @include typo-ws-paragraph-s;\n }\n }\n\n hr {\n all: unset;\n height: 1px;\n background-color: $color-grey-03;\n margin: 16px 0;\n display: block;\n }\n\n .close-icon {\n width: 28px;\n height: 28px;\n position: absolute;\n right: 20px;\n top: 20px;\n }\n\n .close-icon:hover {\n cursor: pointer;\n }\n\n .search-field {\n margin-top: 32px;\n }\n\n sew-ws-linklist {\n margin-top: 32px;\n }\n\n img {\n width: 100%;\n }\n\n .highlight-title {\n @include typo-ws-h3;\n\n margin: 0 0 16px;\n }\n\n .highlight-headline {\n @include typo-ws-paragraph-bold;\n\n margin: 20px 0 0;\n }\n\n .highlight-text {\n @include typo-ws-paragraph;\n\n margin: 8px 0 0;\n }\n\n .tip-btn {\n margin-top: 24px;\n width: 100%;\n }\n\n .tip-opt-out-link {\n --link-color: $color-grey-02-steel;\n\n margin-top: 24px;\n cursor: pointer;\n }\n}\n\n@media (width <= 2020px) {\n :host {\n right: 40px;\n }\n\n .flyout-layer {\n right: 50px;\n }\n}\n\n@include mq-2 {\n .flyout-layer {\n right: 50px;\n }\n}\n\n@include mq-1 {\n :host {\n --bottom-fixed: -40px;\n\n position: fixed;\n bottom: var(--bottom-fixed);\n right: 20px; // +10px because position changed 10px because of scaling\n }\n\n .contact-btn,\n .scroll-to-top-btn,\n .chat-btn,\n .link-btn {\n scale: 0.75;\n margin: -10px 0;\n transform-origin: right;\n }\n\n .flyout-layer {\n top: 100vh;\n left: 0;\n width: 100vw;\n min-height: calc(100vh - var(--header-height-mq1));\n max-width: unset;\n overflow: auto;\n\n &.open {\n top: var(--header-height-mq1);\n bottom: 0;\n\n &::after {\n all: unset !important;\n }\n }\n\n ::slotted(sew-ws-button),\n sew-ws-link {\n margin-top: 32px;\n }\n }\n}\n\n@keyframes expandedArea {\n 0% {\n max-width: 0;\n }\n\n 10% {\n max-width: 400px;\n }\n\n 90% {\n max-width: 400px;\n }\n\n 100% {\n max-width: 0;\n }\n}\n\n@keyframes arrowFadeIn {\n from {\n bottom: 0;\n }\n\n to {\n opacity: 1;\n bottom: -14px;\n z-index: 4;\n }\n}\n","import { Component, Element, Host, h, Prop, State, Listen } from '@stencil/core';\nimport { getCurrentMediaQuery } from '../../../utils/getCurrentMediaQuery';\n\ninterface Tips {\n fs_date: number;\n tips: Tip[];\n}\n\ninterface Tip {\n start: number;\n end: number;\n button_text: string;\n button_link: string;\n headline: string;\n image_alt: string;\n image_src: string;\n image_title: string;\n link_target: string;\n text: string;\n title: string;\n pages: string[];\n id: number;\n}\n\n@Component({\n tag: 'sew-ws-floating-buttons',\n styleUrl: 'sew-ws-floating-buttons.scss',\n shadow: true,\n})\nexport class SewWsFloatingButtons {\n @Element() host: HTMLSewWsFloatingButtonsElement;\n\n @Prop() cardTitle: string;\n @Prop() firstPhoneTitle: string;\n @Prop() firstPhoneNumber: string;\n @Prop() firstPhoneHelpText: string;\n @Prop() secondPhoneTitle: string;\n @Prop() secondPhoneNumber: string;\n @Prop() secondPhoneHelpText: string;\n @Prop() thirdPhoneTitle: string;\n @Prop() thirdPhoneNumber: string;\n @Prop() thirdPhoneHelpText: string;\n @Prop() chatBtnTitle: string;\n @Prop() chatBtnText: string;\n @Prop() linkBtnText: string;\n @Prop() linkBtnLink: string;\n @Prop() linkBtnIcon: string;\n @Prop() apiKey: string;\n @Prop() localization = { region: 'de', language: 'de' };\n @Prop() apiBaseUrl: string;\n @Prop() externalZipcodeSearch: string;\n @Prop() externalZipcodeInputName: string;\n @Prop() placeholder: string;\n @Prop() tipOptOutLabel: string;\n @Prop() tipDuration: number;\n @Prop() tipApiUrl: string;\n @Prop() tipLabel: string;\n @Prop() enableDownloads: boolean;\n @Prop() enableWhatsapp: boolean;\n @Prop() enableTips: boolean;\n @Prop() enableLinkButton: boolean;\n @Prop() scrollToTopAriaLabel = 'Scroll To Top';\n @Prop() contactAriaLabel = 'Contact';\n @Prop() downloadAriaLabel = 'Download';\n @Prop() whatsappAriaLabel = 'WhatsApp';\n @Prop() enableIdleAnimation: boolean;\n\n @State() scrolled = false;\n @State() openFlyout: 'contact' | 'tip' | 'download' | 'whatsapp' | null = null;\n @State() isScrollToTopVisible = false;\n @State() tips: Tips;\n @State() currentTip: Tip;\n @State() idle = false;\n @State() loadGoogleApi = false;\n @State() webchatChecked = false;\n @State() webchatInitialized = false;\n\n private lastScrollPosition = 0;\n private hasBeenShown = false;\n private floatingButtonsRef: HTMLDivElement;\n private multiButtonRef: HTMLSewWsMultiButtonElement;\n private scrollTimeout: any;\n private initCheckInterval;\n private webchatToggleBtnRef: HTMLButtonElement;\n\n @Listen('scroll', { target: 'window' })\n onScroll(): void {\n if (this.enableIdleAnimation) {\n clearTimeout(this.scrollTimeout);\n this.idle = false;\n this.scrollTimeout = setTimeout(() => {\n this.idle = true;\n }, 3500);\n }\n\n if (window.scrollY > 0) {\n this.scrolled = true;\n\n if (this.lastScrollPosition > window.scrollY) {\n this.isScrollToTopVisible = true;\n } else {\n this.isScrollToTopVisible = false;\n }\n } else {\n this.scrolled = false;\n this.isScrollToTopVisible = false;\n }\n\n this.lastScrollPosition = window.scrollY;\n }\n\n @Listen('resize', { target: 'window' })\n onResize(): void {\n this.host.style.setProperty('--current-client-width', document.body.clientWidth + 'px');\n }\n\n /**\n * Tracks if any Element outside of the Contact Flyout was clicked.\n * If this is the case, close the Contact Flyout closes.\n * @param eventWindowClicked Event emitted on click on window\n */\n @Listen('mousedown', { target: 'window' })\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n checkForClickOutside(eventWindowClicked): void {\n const path =\n eventWindowClicked.path || (eventWindowClicked.composedPath && eventWindowClicked.composedPath());\n\n if (this.openFlyout && path.every(el => el !== this.host)) {\n this.toggleOpenFloatingCard();\n }\n }\n\n private toggleOpenFloatingCard = (flyout?: 'contact' | 'tip' | 'download' | 'whatsapp'): void => {\n if (flyout) {\n this.loadGoogleApi = true;\n this.calcMultiButtonPosition();\n this.openFlyout = flyout;\n } else {\n this.openFlyout = null;\n }\n\n if (getCurrentMediaQuery() === 1 && this.openFlyout) {\n document.body.classList.add('sew-modal-open');\n } else if (getCurrentMediaQuery() === 1 && !this.openFlyout) {\n document.body.classList.remove('sew-modal-open');\n }\n };\n\n private scrollToTop = (): void => {\n window.scrollTo({ top: 0, behavior: 'smooth' });\n };\n\n private optOutInitialTipAnimation = (): void => {\n localStorage.setItem('optOutHighlight', 'true');\n this.toggleOpenFloatingCard();\n this.host.style.setProperty('--floating-buttons-height', this.floatingButtonsRef.clientHeight + 'px');\n };\n\n private optOutCurrentTipPopup = (): void => {\n let storageValue = localStorage.getItem('optOutTipPopup');\n\n if (!storageValue?.includes(String(this.currentTip.id))) {\n storageValue = storageValue\n ? storageValue + ' ,' + this.currentTip.id\n : String(this.currentTip.id);\n localStorage.setItem('optOutTipPopup', storageValue);\n }\n\n this.toggleOpenFloatingCard();\n };\n\n private fetchTips = async () => {\n await fetch(this.tipApiUrl)\n .then(res => res.json())\n .then(\n data => (this.tips = data._embedded['rh:doc'][0]),\n err => console.error(err)\n )\n .then(this.filterTips)\n .catch(err => console.error(err));\n };\n\n private checkTipUrl = (page: string): boolean => {\n const pagePathname = page.split('?')[0];\n const pageParams = page.split('?')[1];\n let matched = false;\n\n if (window.location.href.toLowerCase().includes(pagePathname.toLowerCase())) {\n if (pageParams) {\n matched =\n pageParams\n .split('&')\n .filter(param => window.location.search.toLowerCase().includes(param.toLowerCase()))\n .length === pageParams.split('&').length;\n } else {\n matched = true;\n }\n }\n\n return matched;\n };\n\n private filterTips = () => {\n this.currentTip = this.tips?.tips\n .map(tip => tip)\n .filter(\n tip =>\n this.tips.fs_date > tip.start &&\n this.tips.fs_date < tip.end &&\n tip.pages.filter(page => this.checkTipUrl(page)).length > 0\n )[0];\n };\n\n componentWillLoad(): void {\n document.addEventListener('openContactButton', () => {\n this.toggleOpenFloatingCard('contact');\n });\n\n this.enableTips && this.tipApiUrl && this.fetchTips();\n\n if (!sessionStorage.getItem('sew-floating-buttons')) {\n sessionStorage.setItem('sew-floating-buttons', 'true');\n } else {\n this.hasBeenShown = true;\n }\n\n if (!document.querySelector('sew-ws-stage:not([compact])')) {\n this.host.classList.add('no-stage');\n }\n\n const linklistLength = this.host.querySelectorAll('sew-ws-link[slot=\"links\"]').length;\n // link height times number and gap height times number - 1\n if (linklistLength) {\n const linklistHeight = linklistLength * 24 + (linklistLength - 1) * 12;\n this.host.style.setProperty('--flyout-offset', linklistHeight + 'px');\n }\n }\n\n private tipInitialTeaser = (duration: number): void => {\n setTimeout(() => this.toggleOpenFloatingCard('tip'), 1000);\n setTimeout(() => this.toggleOpenFloatingCard(), duration);\n };\n\n private calcMultiButtonPosition = () => {\n if (!this.multiButtonRef) return;\n\n const position =\n window.innerHeight -\n this.multiButtonRef.getBoundingClientRect().bottom +\n this.multiButtonRef.clientHeight;\n\n this.host.style.setProperty('--multi-button-position', position + 'px');\n };\n\n private getConsent(): boolean {\n return document.cookie.indexOf('googlemaps-opt-in=true') !== -1;\n }\n\n private checkChatInitialization = () => {\n const chatContainer = document.querySelector('.webchat-toggle-button');\n if (chatContainer) {\n this.webchatToggleBtnRef = chatContainer as HTMLButtonElement;\n this.webchatInitialized = true;\n clearInterval(this.initCheckInterval);\n }\n this.webchatChecked = true;\n };\n\n componentDidLoad(): void {\n this.host.style.setProperty('--current-client-width', document.body.clientWidth + 'px');\n\n if (\n this.enableTips &&\n this.currentTip &&\n !localStorage.getItem('optOutHighlight') &&\n !localStorage.getItem('optOutTipPopup')?.includes(String(this.currentTip.id))\n ) {\n this.hasBeenShown = true;\n this.tipInitialTeaser(this.tipDuration);\n }\n\n setInterval(this.checkChatInitialization, 500);\n }\n\n componentDidRender(): void {\n this.host.style.setProperty('--floating-buttons-height', this.floatingButtonsRef.clientHeight + 'px');\n }\n\n public render() {\n return (\n \n \n this.toggleOpenFloatingCard()} class=\"close-icon\" icon=\"close\" />\n

\n
\n
{this.firstPhoneTitle}
\n \n {this.firstPhoneNumber}\n \n {this.firstPhoneHelpText &&
{this.firstPhoneHelpText}
}\n
\n
\n
\n
{this.secondPhoneTitle}
\n \n {this.secondPhoneNumber}\n \n {this.secondPhoneHelpText &&
{this.secondPhoneHelpText}
}\n
\n {this.thirdPhoneTitle &&
}\n {this.thirdPhoneTitle && (\n
\n
{this.thirdPhoneTitle}
\n \n {this.thirdPhoneNumber}\n \n {this.thirdPhoneHelpText && (\n
{this.thirdPhoneHelpText}
\n )}\n
\n )}\n {!this.externalZipcodeSearch && this.getConsent() && this.loadGoogleApi && (\n \n )}\n {this.externalZipcodeSearch && !this.getConsent() && (\n
\n \n \n \n
\n )}\n {this.externalZipcodeSearch && this.getConsent() && this.loadGoogleApi && (\n \n )}\n \n \n \n \n {this.enableTips && this.currentTip && (\n \n this.optOutCurrentTipPopup()}\n class=\"close-icon\"\n icon=\"close\"\n />\n

{this.currentTip.title}

\n \n

{this.currentTip.headline}

\n

{this.currentTip.text}

\n \n \n {this.currentTip.button_text}\n \n \n \n \n \n \n )}\n\n {this.enableDownloads && (\n \n this.toggleOpenFloatingCard()}\n class=\"close-icon\"\n icon=\"close\"\n />\n \n \n )}\n\n {this.enableWhatsapp && (\n \n this.toggleOpenFloatingCard()}\n class=\"close-icon\"\n icon=\"close\"\n />\n \n \n )}\n\n (this.floatingButtonsRef = el)}\n onTransitionEnd={() => this.calcMultiButtonPosition()}\n >\n {this.webchatInitialized && (\n this.webchatToggleBtnRef.click()}\n >\n
\n
{this.chatBtnTitle}
\n
{this.chatBtnText}
\n
\n
\n \n
\n \n )}\n {this.enableLinkButton && (\n \n
\n
{this.linkBtnText}
\n
\n
\n \n
\n
\n )}\n {this.enableTips && this.currentTip && (\n this.toggleOpenFloatingCard(e.detail)}\n tip-label={this.tipLabel}\n initial-animation={!this.hasBeenShown}\n />\n )}\n\n {this.enableDownloads || this.enableWhatsapp ? (\n (this.multiButtonRef = el)}\n onClickedButton={e => this.toggleOpenFloatingCard(e.detail)}\n expanded={\n this.openFlyout === 'contact' ||\n this.openFlyout === 'download' ||\n this.openFlyout === 'whatsapp'\n }\n initial-animation={!this.hasBeenShown}\n whatsapp-aria-label={this.enableWhatsapp && this.whatsappAriaLabel}\n download-aria-label={this.enableDownloads && this.downloadAriaLabel}\n contact-aria-label={this.contactAriaLabel}\n />\n ) : (\n this.toggleOpenFloatingCard('contact')}\n aria-label={this.cardTitle}\n >\n
\n {this.firstPhoneTitle}\n {this.firstPhoneNumber}\n
\n
\n \n
\n \n )}\n\n \n \n \n \n \n );\n }\n}\n",":host {\n @include typo-ws-paragraph;\n}\n\n.headline {\n @include typo-ws-h3;\n\n margin: 0 0 24px;\n}\n\na {\n color: $color-red;\n text-decoration: none;\n\n &[href^='tel:'] {\n white-space: nowrap;\n }\n}\n\n.intro {\n margin-bottom: 24px;\n}\n\n.step {\n margin-top: 16px;\n border-top: 1px solid $color-grey-02-steel;\n padding-top: 12px;\n}\n\n.split {\n display: flex;\n column-gap: 10px;\n}\n\n::slotted(sew-picture) {\n width: 80px;\n flex-shrink: 0;\n}\n","import { Component, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'sew-ws-whatsapp-service',\n styleUrl: 'sew-ws-whatsapp-service.scss',\n shadow: true,\n})\nexport class SewWsWhatsappService {\n @Prop() headline: string;\n @Prop() items: any;\n\n render() {\n return (\n
\n

{this.headline}

\n {this.items.map((item, index) => {\n return (\n
0, split: item.img }}>\n {item.img && (\n \n )}\n \n
\n );\n })}\n
\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}