import{Segment}from"@dna/analytics";import{RespondToViewport,WithProfiler}from"@dna/mixins";import{LitElement,css,html,nothing,when}from"@lit";const MENU_DELAY=400;class DNADesktopNav extends WithProfiler(RespondToViewport(LitElement)){static properties={key:{type:Number},active:{type:Boolean,reflect:!0},href:{type:String},navTitle:{type:String},hasMenu:{type:Boolean,attribute:"has-menu"}};constructor(){super(),this._setMobileBreakpoints(["mobile","tablet"])}connectedCallback(){super.connectedCallback(),document.addEventListener("dna:header:close",this._handleOverlayMouseover),this.l1Text=this.getAttribute("navTitle"),this.$soloMenuItems=this.querySelectorAll(".js-solo-menu-item"),this.$featuredMenuItems=this.querySelectorAll(".js-featured-menu-items"),this.addEventListener("focusin",this._handleItemFocus)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("dna:header:close",this._handleOverlayMouseover),this.removeEventListener("focusin",this._handleItemFocus)}updateChildrenAccess=(index=1)=>{const $childLinks=this.querySelectorAll("a");for(let i=0;i<$childLinks.length;i++)$childLinks[i].setAttribute("tabindex",index)};_handleItemFocus=event=>{event.target.closest("a")&&this.contains(event.target)&&(this.active=!0)};_handleLinkMouseover=()=>{document.dispatchEvent(new CustomEvent("dna:country-selector:hide")),document.dispatchEvent(new CustomEvent("dna:search-bar:close")),this.dispatchEvent(new CustomEvent("dna:header:close",{bubbles:!0,composed:!0})),this.active=!0,this.updateChildrenAccess(0),this.hasMenu&&(this.setAttribute("aria-expanded",!0),this.hovered||(this.trackMegaMenuOpen(),this.hovered=!0))};_handleOverlayMouseover=event=>{this.active=!1,this.setAttribute("aria-expanded",!1),!(document.activeElement.classList.contains("js-main-menu-section")||this.contains(document.activeElement))&&(this.updateChildrenAccess(-1),event.type!=="dna:header:close"&&event?.target?.classList.contains("overlay")&&(this.hovered=!1,this.$soloMenuItems.length&&this.untrackMegaMenuItemClick(this.$soloMenuItems),this.$featuredMenuItems.length&&this.untrackMegaMenuItemClick(this.$featuredMenuItems)))};trackMegaMenuOpen(){Segment.protect(()=>{Segment.track(Segment.CONSTANTS.EVENTS.MAIN_MENU_SECTION_EXPANDED,{main_menu_section:this.navTitle}),this.$soloMenuItems.length&&this.trackMegaMenuItemClick(this.$soloMenuItems),this.$featuredMenuItems.length&&this.trackMegaMenuItemClick(this.$featuredMenuItems)})}trackMegaMenuItemClick(items){for(const item of items)item.addEventListener("click",event=>{const $clickedLink=event.target.closest("a"),clickedText=$clickedLink?.textContent?.trim(),clickedLink=$clickedLink?.getAttribute("href")?.trim();this.trackMenuItemClick(clickedText,clickedLink)})}untrackMegaMenuItemClick(items){for(const item of items)item.removeEventListener("click",event=>{const $clickedLink=event.target.closest("a"),clickedText=$clickedLink?.textContent?.trim(),clickedLink=$clickedLink?.getAttribute("href")?.trim();this.trackMenuItemClick(clickedText,clickedLink)})}trackMenuItemClick(text,link){text&&link?Segment.protect(()=>{const l1=this.l1Text,l2=` - ${text}`;Segment.track(Segment.CONSTANTS.EVENTS.MAIN_MENU_ITEM_CLICKED,{main_menu_item:`${l1}${l2}`,main_menu_item_link:link,main_menu_item_text:text})}):Segment.protect(()=>{Segment.track(Segment.CONSTANTS.EVENTS.MAIN_MENU_ITEM_CLICKED,{main_menu_item:this.l1Text,main_menu_item_link:this.href,main_menu_item_text:this.l1Text})})}render(){return html` ${when(this.isMobile,()=>nothing,()=>html`