{"version":3,"file":"theme.min.js","mappings":"MACAA,SAASC,iBAAiB,KAAKC,SAAQ,SAACC,EAAmBC,GACvDD,EAASE,aAAa,SAAWF,EAASG,aAAa,QAAQC,SAAS,SAC1EJ,EAASK,aAAa,SAAU,SAElC,IAIA,IAAIC,EAAW,CACb,qGACA,qGACA,sGAKF,SAASC,IAEP,GAAIC,OAAOC,WAAa,KAAM,CAE5B,IAAIC,EAAcC,KAAKC,MAAMD,KAAKE,SAAWP,EAASQ,QAGlDC,EAAgB,OAAST,EAASI,GAAe,IAGnCb,SAASmB,eAAe,wBAC9BC,MAAMC,gBAAkBH,C,CAExC,CA0CA,GAvCAR,IAGAC,OAAOW,iBAAiB,SAAUZ,GAIlCa,YAAW,WACQvB,SAASC,iBAAiB,gCAEhCC,SAAQ,SAACsB,EAAmBpB,GACvC,IAAMqB,EAAQD,EAAKlB,aAAa,cAAgB,IAAMkB,EAAKlB,aAAa,cAAgB,IAAMkB,EAAKlB,aAAa,cAC1GoB,EAAWF,EAAKlB,aAAa,iBAAmBkB,EAAKlB,aAAa,iBAAmBmB,EAErFE,EAAI3B,SAAS4B,cAAc,KACjCD,EAAEnB,aAAa,OAAQ,iBAAUiB,IACjCE,EAAEE,UAAYH,EAEVF,EAAKM,eAAeN,EAAKM,cAAcC,YAAYJ,GACvDH,EAAKQ,UAAUC,IAAI,aACnBT,EAAKJ,MAAMc,QAAU,MACtB,GACD,GAAG,KAGAlC,SAASmC,cAAc,qBACzBnC,SAASmC,cAAc,oBAAoBb,iBAAiB,SAAS,SAACc,GACrEA,EAAEC,iBAEF1B,OAAO2B,SAAS,CACfC,IAAK,EACLC,KAAM,EACNC,SAAU,UAEZ,IAKgB,MADEzC,SAASmC,cAAc,+BACnB,CACtB,IAAMO,EAAS1C,SAASmC,cAAc,qBAChCQ,EAAW3C,SAASmB,eAAe,sBAEzCuB,EAAOV,UAAUC,IAAI,SACrBU,EAASX,UAAUC,IAAI,O,CAIxB,IACMW,EADY5C,SAASmC,cAAc,6BACbU,aAkD5B,GAjDmB7C,SAASmC,cAAc,0BAE1CxB,OAAOW,iBAAiB,UAAU,SAAUwB,GAC3C,IAAMC,EAAK/C,SAASmC,cAAc,qBAEzB,MAANY,IACDA,EAAmB3B,MAAMmB,IAAM,MAE5B5B,OAAOqC,QAAUJ,EACpBG,EAAGf,UAAUC,IAAI,SAEjBc,EAAGf,UAAUiB,OAAO,UAGtB,IAAMC,EAAalD,SAASmC,cAAc,0BAEzB,MAAde,GAgBAvC,OAAOW,iBAAiB,UAZH,WACJ4B,EAAWC,wBAGfZ,KAPK,GAQVW,EAAWlB,UAAUC,IAAI,YAEzBiB,EAAWlB,UAAUiB,OAAO,WAEpC,IAMH,IAAMG,EAAQpD,SAASmC,cAAc,oBACzB,MAATiB,IAEEzC,OAAOqC,QAAU,IACpBI,EAAMpB,UAAUC,IAAI,wBAEpBmB,EAAMpB,UAAUiB,OAAO,wBAI1B,IAAG,GAGQjD,SAASmC,cAAc,0BAC5B,CACL,IAAMkB,EAAYrD,SAASmC,cAAc,4BACnC,EAASnC,SAASmC,cAAc,yBACnCkB,IACFA,EAAU/B,iBAAiB,SAAS,WACnC,EAAOF,MAAMc,QAAmC,SAAzB,EAAOd,MAAMc,QAAqB,eAAiB,MAC3E,IAEAmB,EAAUjC,MAAMc,QAAUlC,SAASC,iBAAiB,oBAAoBgB,OAAS,EAAI,eAAiB,OACtG,EAAOG,MAAMc,QAAUlC,SAASC,iBAAiB,oBAAoBgB,OAAS,EAAI,OAAS,e","sources":["webpack://2sic-standard-skin-template/./src/ts/theme.ts"],"sourcesContent":["/* Open all PDF links in a new window */\r\ndocument.querySelectorAll('a').forEach((linkElem: Element, index) => {\r\n\tif(linkElem.hasAttribute('href') && linkElem.getAttribute('href').endsWith('.pdf')) {\r\n\t\tlinkElem.setAttribute('target', '_blank');\r\n\t}\r\n});\r\n\r\n//Footer Background\r\n// Array mit Hintergrundbild-Dateinamen\r\nvar bgImages = [\r\n 'https://www.customcampers.com/Portals/_default/Skins/CustomCampers/images/FooterBG/Campervan01.jpg',\r\n 'https://www.customcampers.com/Portals/_default/Skins/CustomCampers/images/FooterBG/Campervan02.jpg',\r\n 'https://www.customcampers.com/Portals/_default/Skins/CustomCampers/images/FooterBG/Campervan03.jpg'\r\n];\r\n\r\n\r\n// Funktion zum Setzen des Hintergrundbilds basierend auf dem aktuellen Viewport-Breite\r\nfunction setRandomBgImage() {\r\n // Nur ausführen, wenn der Viewport-Breite größer als 1200px ist\r\n if (window.innerWidth > 1680) {\r\n // Zufällige Zahl von 0 bis zur Anzahl der Hintergrundbilder\r\n var randomIndex = Math.floor(Math.random() * bgImages.length);\r\n\r\n // Hintergrundbild-URL aus dem Array basierend auf der zufälligen Zahl auswählen\r\n var randomBgImage = 'url(' + bgImages[randomIndex] + ')';\r\n\r\n // Div-Element auswählen und Hintergrundbild setzen\r\n var randomBgDiv = document.getElementById('to-shine-page-footer');\r\n randomBgDiv.style.backgroundImage = randomBgImage;\r\n }\r\n}\r\n\r\n// Setzen des Hintergrundbilds beim Laden der Seite\r\nsetRandomBgImage();\r\n\r\n// Setzen des Hintergrundbilds beim Ändern der Fenstergröße\r\nwindow.addEventListener('resize', setRandomBgImage);\r\n\r\n\r\n/* mailencrypting */\r\nsetTimeout(function () {\r\n\tlet mailElement = document.querySelectorAll('[data-madr1]:not(.madr-done)');\r\n\r\n\tmailElement.forEach((mail: HTMLElement, index) => {\r\n\t\tconst maddr = mail.getAttribute('data-madr1') + '@' + mail.getAttribute('data-madr2') + '.' + mail.getAttribute('data-madr3');\r\n\t\tconst linktext = mail.getAttribute('data-linktext') ? mail.getAttribute('data-linktext') : maddr;\r\n\r\n\t\tconst a = document.createElement('a')\r\n\t\ta.setAttribute('href', `mailto:${maddr}`)\r\n\t\ta.innerHTML = linktext;\r\n\r\n\t\tif (mail.parentElement) mail.parentElement.appendChild(a);\r\n\t\tmail.classList.add('madr-done');\r\n\t\tmail.style.display = 'none';\r\n\t});\r\n}, 500);\r\n\r\n/* Go to top button */\r\nif(document.querySelector('#to-shine-to-top')) {\r\n\tdocument.querySelector('#to-shine-to-top').addEventListener('click', (e) => {\r\n\t\te.preventDefault();\r\n\t\r\n\t\twindow.scrollTo({\r\n\t\t\ttop: 0,\r\n\t\t\tleft: 0,\r\n\t\t\tbehavior: 'smooth'\r\n\t\t});\r\n\t})\r\n}\r\n\r\n/* logo behavior when no header content */\r\nconst headerPane = document.querySelector(\".to-shine-header-pane-empty\");\r\nif(headerPane != null) {\r\n\tconst navbar = document.querySelector(\".navbar-expand-lg\");\r\n\tconst pagemain = document.getElementById(\"to-shine-page-main\");\r\n\r\n\tnavbar.classList.add(\"black\");\r\n\tpagemain.classList.add(\"mt-0\");\r\n}\r\n\r\n/* scrolling behavior (to top button / breadcrumb) */\r\nconst navheader = document.querySelector('#to-shine-page-navigation') as HTMLElement;\r\nconst navheight = navheader.offsetHeight;\r\nconst breadcrumb = document.querySelector('.theme-page-breadcrumb') as HTMLElement;\r\n\r\nwindow.addEventListener('scroll', function (event) {\r\n\tconst bc = document.querySelector('.navbar-expand-lg');\r\n\r\n\tif(bc != null) {\r\n\t\t(bc as HTMLElement).style.top = `0px` ;\r\n\r\n\t\tif (window.scrollY > navheight) {\r\n\t\t\tbc.classList.add('fixed');\r\n\t\t} else {\r\n\t\t\tbc.classList.remove('fixed');\r\n\t\t}\r\n\t}\r\n\tconst breadcrumb = document.querySelector('.theme-page-breadcrumb') as HTMLElement;\r\n\r\nif (breadcrumb != null) {\r\n const navheight = 92; // Der Abstand, ab wann die Klasse hinzugefügt werden soll\r\n\r\n // Funktion, die bei jedem Scroll überprüft, ob die Position des Breadcrumbs erreicht ist\r\n const handleScroll = () => {\r\n const rect = breadcrumb.getBoundingClientRect();\r\n \r\n // Überprüfen, ob das breadcrumb-Element den 160px-Punkt vom Viewport erreicht hat\r\n if (rect.top <= navheight) {\r\n breadcrumb.classList.add('bg-glass');\r\n } else {\r\n breadcrumb.classList.remove('bg-glass');\r\n }\r\n };\r\n\r\n // Event-Listener, um die Scrollposition zu überwachen\r\n window.addEventListener('scroll', handleScroll);\r\n}\r\n\r\n\tconst toTop = document.querySelector(\"#to-shine-to-top\");\r\n\tif(toTop != null) {\r\n\t\t/* show / hide scroll to top button */\r\n\t\tif (window.scrollY > 200) {\r\n\t\t\ttoTop.classList.add('to-shine-top-visible');\r\n\t\t} else {\r\n\t\t\ttoTop.classList.remove('to-shine-top-visible');\r\n\t\t}\r\n\t}\r\n\t\r\n}, false);\r\n\r\n/* Breadcrumb */\r\nconst bc = document.querySelector('.theme-page-breadcrumb');\r\nif(bc){\r\n\tconst bcTrigger = document.querySelector('.breadcrumb-item-trigger') as HTMLElement | null;\r\n\tconst bcHome = document.querySelector('.breadcrumb-item-home') as HTMLElement;\r\n\tif(bcTrigger) {\r\n\t\tbcTrigger.addEventListener('click', () => {\r\n\t\t\tbcHome.style.display = bcHome.style.display === 'none' ? 'inline-block' : 'none';\r\n\t\t})\r\n\r\n\t\tbcTrigger.style.display = document.querySelectorAll('.breadcrumb-item').length > 2 ? 'inline-block' : 'none';\r\n\t\tbcHome.style.display = document.querySelectorAll('.breadcrumb-item').length > 2 ? 'none' : 'inline-block';\r\n\r\n\t}\r\n}\r\n\r\n\r\n"],"names":["document","querySelectorAll","forEach","linkElem","index","hasAttribute","getAttribute","endsWith","setAttribute","bgImages","setRandomBgImage","window","innerWidth","randomIndex","Math","floor","random","length","randomBgImage","getElementById","style","backgroundImage","addEventListener","setTimeout","mail","maddr","linktext","a","createElement","innerHTML","parentElement","appendChild","classList","add","display","querySelector","e","preventDefault","scrollTo","top","left","behavior","navbar","pagemain","navheight","offsetHeight","event","bc","scrollY","remove","breadcrumb","getBoundingClientRect","toTop","bcTrigger"],"sourceRoot":""}