1(()=>{const e="[data-nav-item]",t="[data-nav-trigger]",s="[data-nav-panel]";class a extends HTMLElement{constructor(){super(),this.desktopMedia=window.matchMedia("(min-width: 1200px)"),this.drawer=this.querySelector("[data-navigation]"),this.desktopDrawerHost=this.querySelector("[data-desktop-drawer-host]"),this.overlay=this.querySelector("[data-nav-overlay]"),this.mobileOpenButtons=this.querySelectorAll("[data-mobile-menu-open]"),this.mobileCloseButtons=this.querySelectorAll("[data-mobile-menu-close]"),this.topBar=document.querySelector(".js-sticky-topbar"),this.headerBar=this.querySelector("[data-header-bar]"),this.navItems=[],this.isDrawerOpen=!1,this.panelMap=new WeakMap,this.panelSlotMap=new WeakMap,this.panelShellMap=new WeakMap,this.panelOpenFrameMap=new WeakMap,this.panelShellChildrenMap=new WeakMap,this.itemIdMap=new Map,this.rootPanelItems=[],this.eventController=new AbortController,this.resizeObserver=null,this.searchBootstrapObserver=null,this.offsetUpdateFrame=null,this.cssVarCache={topBarHeight:"",headerBarHeight:"",drawerTop:""},this.updateOffsetVars(),this.setupPanels(),this.initSearchBar(),this.initResizeObserver(),this.attachEvents()}initSearchBar(){const e=this.querySelector(".js-search-bar");if(!e)return;const t=()=>{var t;const s=e.querySelector(".js-search-input-toggle");return!!s&&(s.classList.add("!flex"),null===(t=e.querySelector(".js-search-skeleton"))||void 0===t||t.classList.add("hidden"),!0)};t()||(this.searchBootstrapObserver=new MutationObserver(()=>{t()&&this.disconnectSearchBootstrapObserver()}),this.searchBootstrapObserver.observe(e,{childList:!0,subtree:!0}))}disconnectSearchBootstrapObserver(){this.searchBootstrapObserver&&(this.searchBootstrapObserver.disconnect(),this.searchBootstrapObserver=null)}initResizeObserver(){"undefined"!=typeof ResizeObserver&&(this.resizeObserver=new ResizeObserver(()=>{this.scheduleOffsetUpdate()}),this.topBar&&this.resizeObserver.observe(this.topBar),this.headerBar&&this.resizeObserver.observe(this.headerBar))}updateOffsetVars(){if(this.topBar){const e=`${Math.round(this.topBar.getBoundingClientRect().height)}px`;e!==this.cssVarCache.topBarHeight&&(document.body.style.setProperty("--top-bar-height",e),this.cssVarCache.topBarHeight=e)}if(this.headerBar){const e=this.headerBar.getBoundingClientRect(),t=`${Math.round(e.height)}px`,s=`${Math.max(0,Math.round(e.bottom))}px`;t!==this.cssVarCache.headerBarHeight&&(document.body.style.setProperty("--site-header-builder-bar-height",t),this.cssVarCache.headerBarHeight=t),s!==this.cssVarCache.drawerTop&&(this.style.setProperty("--site-header-builder-drawer-top",s),this.cssVarCache.drawerTop=s)}}scheduleOffsetUpdate(){this.offsetUpdateFrame||(this.offsetUpdateFrame=window.requestAnimationFrame(()=>{this.offsetUpdateFrame=null,this.updateOffsetVars()}))}cancelPanelOpenFrame(e){const t=this.panelOpenFrameMap.get(e);t&&(window.cancelAnimationFrame(t),this.panelOpenFrameMap.delete(e))}setDrawerOpenState(e){this.isDrawerOpen!==e&&(this.isDrawerOpen=e,e?document.body.dataset.siteHeaderDrawerOpen="true":delete document.body.dataset.siteHeaderDrawerOpen)}setOpenItems(e=[]){const t=new Set(e);this.navItems.forEach(e=>{this.setItemOpen(e,t.has(e))})}getPanelShell(e){return this.panelShellMap.get(e)||this.findPanelShell(e)}createSplitRails(){const e=document.createElement("div"),t=document.createElement("div"),s=document.createElement("div");return e.dataset.navSplitRails="",t.dataset.navSplitRail="primary",s.dataset.navSplitRail="feature",e.append(t,s),{container:e,primaryRail:t,featureRail:s}}restorePanelShell(e,t){const s=this.panelShellChildrenMap.get(e);s&&(e.replaceChildren(...s),delete e.dataset.desktopSplitPanel,delete t.dataset.desktopSplitPanel)}syncSplitPanelLayouts(){this.navItems.forEach(e=>{const t=this.getDirectPanel(e),s=t?this.getPanelShell(t):null;if(!t||!s)return;const a=this.panelShellChildrenMap.get(s);if(!a||"true"!==e.dataset.splitDesktopFeaturePanel||!this.desktopMedia.matches)return void this.restorePanelShell(s,t);const r=[],i=[];let n=!1,l=!1;if(a.forEach(e=>{if(e.matches("[data-nav-group-layout]")){if("children_list"===e.dataset.navGroupLayout)return r.push(e),void(n=!0);if("chip_grid"===e.dataset.navGroupLayout||"card_grid"===e.dataset.navGroupLayout)return i.push(e),void(l=!0)}r.push(e)}),!n||!l)return void this.restorePanelShell(s,t);const h=this.createSplitRails();
1r.forEach(e=>h.primaryRail.appendChild(e)),i.forEach(e=>h.featureRail.appendChild(e)),s.replaceChildren(h.container),s.dataset.desktopSplitPanel="true",t.dataset.desktopSplitPanel="true"})}setupPanels(){this.rootPanelItems=[],this.itemIdMap.clear(),this.navItems=Array.from(this.querySelectorAll(e)),this.navItems.forEach((e,t)=>{const s=this.findDirectPanel(e),a=e.dataset.navItemId||`nav-item-${t+1}`,r=!this.getParentItem(e);if(e.dataset.navItemId=a,e.dataset.itemState="closed",this.itemIdMap.set(a,e),!s)return;const i=this.findDirectPanelSlot(e),n=this.findPanelShell(s);this.panelMap.set(e,s),i&&this.panelSlotMap.set(e,i),n&&(this.panelShellMap.set(s,n),this.panelShellChildrenMap.has(n)||this.panelShellChildrenMap.set(n,Array.from(n.children))),s.dataset.ownerItemId=a,s.dataset.panelState="closed",r?(s.dataset.desktopPanelType="root",this.rootPanelItems.push(e)):s.dataset.desktopPanelType="nested"}),this.syncDesktopPanelMounts(),this.syncSplitPanelLayouts()}attachEvents(){const{signal:s}=this.eventController;this.mobileOpenButtons.forEach(e=>{e.addEventListener("click",()=>this.openMobileShell(),{signal:s})}),this.mobileCloseButtons.forEach(e=>{e.addEventListener("click",()=>this.closeMobileShell(),{signal:s})}),this.overlay&&this.overlay.addEventListener("click",()=>this.closeDesktopPanels(),{signal:s}),this.addEventListener("click",s=>{const a=s.target.closest("[data-nav-back]");if(a){const t=a.closest(e);return void(t&&(s.preventDefault(),this.closeItemBranch(t)))}const r=s.target.closest(t);if(r){const t=r.closest(e);if(!t)return;if("true"!==t.dataset.hasPanel)return;return s.preventDefault(),void(this.desktopMedia.matches?this.isDesktopItemOpen(t)?this.closeDesktopPanels():this.openDesktopPanelsForItem(t):this.openMobilePanel(t))}s.target.closest("a")&&!this.desktopMedia.matches&&this.isDrawerOpen&&this.closeMobileShell()},{signal:s}),document.addEventListener("click",e=>{this.desktopMedia.matches&&(this.contains(e.target)||this.closeDesktopPanels())},{signal:s}),document.addEventListener("keydown",e=>{"Escape"===e.key&&(this.desktopMedia.matches?this.closeDesktopPanels():this.isDrawerOpen&&this.closeMobileShell())},{signal:s}),this.desktopMedia.addEventListener("change",()=>{this.closeMobileShell(),this.closeDesktopPanels(),this.syncDesktopPanelMounts(),this.syncSplitPanelLayouts(),this.scheduleOffsetUpdate()},{signal:s}),this.resizeObserver||window.addEventListener("resize",()=>{this.scheduleOffsetUpdate()},{signal:s}),window.addEventListener("scroll",()=>this.scheduleOffsetUpdate(),{passive:!0,signal:s})}disconnectedCallback(){this.disconnectSearchBootstrapObserver(),this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null),this.offsetUpdateFrame&&(window.cancelAnimationFrame(this.offsetUpdateFrame),this.offsetUpdateFrame=null),this.navItems.forEach(e=>{const t=this.getDirectPanel(e);t&&this.cancelPanelOpenFrame(t)}),this.closeMobileShell(),this.closeDesktopPanels(),this.eventController.abort()}openMobileShell(){!this.drawer||this.desktopMedia.matches||this.isDrawerOpen||(this.drawer.dataset.mobileOpen="true",this.setDrawerOpenState(!0))}closeMobileShell(){this.drawer&&(this.drawer.dataset.mobileOpen="false",this.setDrawerOpenState(!1),this.setOpenItems())}openMobilePanel(t){const s=t.parentElement;s&&Array.from(s.children).forEach(s=>{s!==t&&s.matches(e)&&this.closeItemBranch(s)}),this.setItemOpen(t,!0)}openDesktopPanelsForItem(e){this.setOpenItems(this.getItemChain(e)),this.setDrawerOpenState(!0),this.overlay&&(this.overlay.dataset.overlayState="open")}closeDesktopPanels(){this.setOpenItems(),this.setDrawerOpenState(!1),this.overlay&&(this.overlay.dataset.overlayState="closed")}closeItemBranch(e){this.navItems.forEach(t=>{(t===e||e.contains(t))&&this.setItemOpen(t,!1)})}getItemChain(e){const t=[e];let s=this.getParentItem(e);for(;s;)t.unshift(s),s=this.getParentItem(s);return t}setItemOpen(e,t){const s=this.getDirectPanel(e),a=this.getDirectTrigger(e),r=t?"open":"closed";if(e.dataset.itemState=r,s)if(this.cancelPanelOpenFrame(s),t&&s.classList.contains("hidden")){s.classList.remove("hidden");const e=window.requestAnimationFrame(()=>{this.panelOpenFrameMap.delete(s),s.dataset.panelState="open"});this.panelOpenFrameMap.set(s,e)}else s.dataset.panelState=r;a&&a.setAttribute("aria-expanded",String(t))}getDirectPanel(e){return this.panelMap.get(e)||this.findDirectPanel(e)}getDirectTrigger(e){return this.findDirectTrigger(e)}getParentItem(t){const a=t.parentElement?t.parentElement.closest(e):null;if(a)return a;const r=t.parentElement?t.parentElement.closest(s):null,i=null==r?void 0:r.dataset.ownerItemId;return i&&this.itemIdMap.get(i)||null}isDesktopItemOpen(e){return"open"===e.dataset.itemState}findDirectPanel(e){return Array.from(e.children).find(e=>e.matches(s))}findPanelShell(e){return e.querySelector("[data-nav-panel-shell]")}findDirectTrigger(e){return Array.from(e.children).find(e=>e.matches(t))}findDirectPanelSlot(e){return Array.from(e.children).find(e=>e.matches("[data-nav-panel-slot]"))}syncDesktopPanelMounts(){this.desktopDrawerHost&&this.rootPanelItems.forEac
1h(e=>{const t=this.panelMap.get(e),s=this.panelSlotMap.get(e);t&&s&&(this.desktopMedia.matches?t.parentElement!==this.desktopDrawerHost&&this.desktopDrawerHost.appendChild(t):t.previousElementSibling===s&&t.parentElement===s.parentElement||s.insertAdjacentElement("afterend",t))})}}customElements.define("site-header-builder",a)})(); 2//# sourceMappingURL=section-site-header-builder.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.