1 line
6.8 KiB
JavaScript
1 line
6.8 KiB
JavaScript
(()=>{var e={31:()=>{class e{constructor(){this.tabLinks=document.querySelectorAll(".tab-link"),this.tabs=document.querySelectorAll(".tab"),this.selectTab=document.getElementById("tabs"),this.contactTabs=document.getElementById("contact-tabs"),this.contactTabs?(this.initializeTabs(),this.syncTabsWithSelect(),this.syncSelectWithTabs(),this.handleHashNavigation(),this.handleFormSubmission()):console.error("Element with id 'contact-tabs' not found.")}initializeTabs(){this.tabs.forEach(((e,t)=>{0!==t&&(e.style.display="none")})),this.tabLinks[0].classList.add("bg-blue-100"),this.tabLinks.forEach((e=>{e.addEventListener("click",this.handleTabLinkClick.bind(this))}))}handleTabLinkClick(e){const t=e.currentTarget.getAttribute("data-tab");sessionStorage.setItem("lastTab",t),this.updateHash(t),this.showTab(t)}showTab(e){this.tabs.forEach((e=>{e.style.display="none"})),this.tabLinks.forEach((e=>{e.classList.remove("bg-blue-100")})),document.getElementById(e).style.display="block";const t=document.querySelector(`[data-tab="${e}"]`);t&&t.classList.add("bg-blue-100"),this.selectTab&&(this.selectTab.value=e)}syncTabsWithSelect(){this.selectTab&&this.selectTab.addEventListener("change",(e=>{const t=e.target.value;sessionStorage.setItem("lastTab",t),this.updateHash(t),this.showTab(t)}))}syncSelectWithTabs(){this.tabLinks&&this.tabLinks.forEach((e=>{e.addEventListener("click",(t=>{const s=e.getAttribute("data-tab");sessionStorage.setItem("lastTab",s),this.updateHash(s),this.selectTab.value=s}))}))}handleHashNavigation(){const e=sessionStorage.getItem("lastTab"),t=window.location.hash.substring(1);t?(this.showTab(t),sessionStorage.setItem("lastTab",t)):e?this.showTab(e):this.showTab(this.tabLinks[0].dataset.tab)}updateHash(e){history.replaceState(null,null,"#"+e)}handleFormSubmission(){const e=new URLSearchParams(window.location.search),t=e.get("success"),s=e.get("error");if(t||s){const e=sessionStorage.getItem("lastTab");e&&this.showTab(e),history.replaceState(null,null,window.location.pathname)}}}document.addEventListener("DOMContentLoaded",(function(){if(document.getElementById("contact-tabs")){const t=new e;window.addEventListener("hashchange",(()=>{t.handleHashNavigation()}))}else console.log("Element with id 'contact-tabs' not found.")}))}},t={};function s(a){var i=t[a];if(void 0!==i)return i.exports;var n=t[a]={exports:{}};return e[a](n,n.exports,s),n.exports}(()=>{"use strict";s(31),new class{constructor(){this.init()}init(){document.addEventListener("DOMContentLoaded",(()=>{this.addToggleCollapseListener(".accordion-toggle")}))}addToggleCollapseListener(e){this.toggles=document.querySelectorAll(e),this.toggles.forEach((e=>{e.addEventListener("click",(()=>{e.parentNode.parentNode.classList.toggle("active")}))}))}},new class{constructor(){this.topBanner=document.getElementById("top-banner"),this.navbar=document.getElementById("header-nav"),this.navbarPadding=document.getElementById("header-padder"),this.contentContainer=document.getElementById("content-container"),this.toggleMenuBtn=document.getElementById("toggle-nav"),this.slideOutMenu=document.getElementById("slide-out-menu"),this.accordions=document.querySelectorAll("#slide-out-menu .accordion"),this.toggleSearchBtn=document.getElementById("toggle-search"),this.headerSearch=document.getElementById("header-search"),this.headerSearchOverlay=document.getElementById("search-overlay"),this.hoursDropdownToggle=document.getElementById("hours-dropdown-toggle"),this.todaysBusinessHoursEl=document.getElementById("todays-business-hours"),this.businessHoursMenu=this.hoursDropdownToggle.nextElementSibling,this.init()}init(){document.addEventListener("click",(e=>{this.handleLinkAndOutsideClick(e)})),window.addEventListener("scroll",this.handleScroll.bind(this)),this.toggleMenuBtn.addEventListener("click",(()=>this.toggleNavMenu())),this.toggleSearchBtn.addEventListener("click",(()=>this.toggleSearch())),this.hoursDropdownToggle.addEventListener("click",(()=>{this.businessHoursMenu.classList.toggle("hidden")})),document.addEventListener("keyup",(e=>this.keyPressDispatcher(e))),this.businessHours()}headerOutOfView(){this.navbar.classList.add("out-of-view")}headerInView(){setTimeout((()=>{this.navbar.classList.add("in-view")}),100)}handleScroll(){window.scrollY>0?(this.headerOutOfView(),this.headerInView(),this.navbarPadding.style.display="block",this.navbar.classList.add("fixed"),this.topBanner.style.display="none"):(this.topBanner.style.display="block",this.navbarPadding.style.display="none",this.navbar.classList.remove("in-view","out-of-view","fixed"),setTimeout((()=>{this.navbar.classList.remove("in-view")}),100))}isSearchOpen(){return!!this.headerSearch.classList.contains("active")}isMenuOpen(){return!!this.slideOutMenu.classList.contains("active")}keyPressDispatcher(e){console.log("Key pressed: ",e.keyCode),83!==e.keyCode||this.isSearchOpen()||this.toggleSearch(),77!==e.keyCode||this.isMenuOpen()||this.isSearchOpen()||this.toggleNavMenu(),27===e.keyCode&&(this.isSearchOpen()?this.toggleSearch():this.isMenuOpen()&&this.toggleNavMenu())}handleLinkAndOutsideClick(e){const t=e.target,s=t.closest("a");s?s.href===window.location.href&&this.toggleMenuBtn.classList.contains("active")&&this.toggleNavMenu():(!(this.toggleMenuBtn.contains(t)||this.slideOutMenu.contains(t)||this.toggleSearchBtn.contains(t)||this.headerSearch.contains(t))&&(this.toggleMenuBtn.classList.remove("active"),this.slideOutMenu.classList.remove("open"),this.removeBodyNoScroll()),!this.hoursDropdownToggle.contains(t)&&!this.hoursDropdownToggle.classList.contains("hidden")&&this.businessHoursMenu.classList.add("hidden"),!(this.toggleSearchBtn.contains(t)||this.headerSearch.contains(t)||this.toggleMenuBtn.contains(t)||this.slideOutMenu.contains(t))&&(this.toggleSearchBtn.classList.remove("active"),this.headerSearch.classList.remove("active"),this.headerSearchOverlay.classList.remove("active"),this.removeBodyNoScroll()))}toggleNavMenu(){this.headerSearch.classList.contains("active")&&this.toggleSearch(),this.toggleMenuBtn.classList.toggle("active"),this.slideOutMenu.classList.toggle("open"),document.body.classList.toggle("noScroll"),this.collapseAllAccordions()}toggleSearch(){this.toggleMenuBtn.classList.contains("active")&&this.toggleNavMenu(),this.headerSearch.classList.toggle("active"),this.headerSearchOverlay.classList.toggle("active"),this.headerSearch.querySelector("input").focus(),document.body.classList.toggle("noScroll"),this.headerSearch.classList.contains("active")&&(this.headerSearch.querySelector("input").value="")}collapseAllAccordions(){this.accordions.forEach((e=>{e.classList.remove("active")}))}removeBodyNoScroll(){document.body.classList.contains("noScroll")&&document.body.classList.remove("noScroll")}businessHours(){let e;switch((new Date).getDay()){case 0:case 6:e='<span class="text-red-500">We are closed today.</span>';break;default:e='<span class="text-green-500">Open Today from 9:00 am - 5:00 pm</span>'}this.todaysBusinessHoursEl.innerHTML=e}}})()})(); |