{this.downloadTitle}
\n{this.downloadText}
\n\n {this.productInputTitle.replace('#', this.selectedDownloadTypeName)}\n
\n )}\n\n{this.linksText}
\n{"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 {this.downloadTitle} {this.downloadText} \n {this.productInputTitle.replace('#', this.selectedDownloadTypeName)}\n {this.linksText} {this.currentTip.headline} {this.currentTip.text}
\n
}\n {this.thirdPhoneTitle && (\n {this.currentTip.title}
\n \n