{"version":3,"file":"chunks/cb5064390c662b.js","mappings":"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","sources":["webpack:///./resources/js/components/generic/microsite-nav.ts"],"sourcesContent":["class MicrositeNav {\n\n readonly guideOffsetTop : number;\n stickMenuHeightComputed: boolean;\n stickyMenuHeight: number;\n stickyPosition: number;\n domRoot: HTMLElement;\n indicators: NodeListOf;\n mobileToggles: HTMLCollectionOf;\n\n constructor(domRoot: HTMLElement, params: any) {\n this.stickyPosition = Number(params.stickyPosition);\n this.domRoot = domRoot;\n this.indicators = domRoot.querySelectorAll(\".is-nested-microsite-nav\");\n this.mobileToggles = document.getElementsByClassName(\"mobile-header-link\");\n this.stickMenuHeightComputed = false;\n this.stickyMenuHeight = 0;\n this.guideOffsetTop = this.domRoot.offsetTop;\n this.init();\n }\n\n init() {\n document.addEventListener(\"click\", function(e) {\n var sidebarToggled = document.body.classList.contains(\"sidebar-toggled\");\n if (sidebarToggled && e.target.href && e.target.href.indexOf(\"#navigation\") > -1) {\n e.preventDefault();\n window.location.hash = '';\n }\n });\n\n Array.from(this.indicators).forEach(sideLink => {\n sideLink.addEventListener(\"click\", (e)=> {\n let level = e.target.className.match(/level(\\d)/)[1];\n let levelClass = 'level' + level;\n // if (this.domRoot.classList.contains(\"mobile-reveal\") && e.target.classList.contains('level2')) {\n // return false;\n // } else {\n e.preventDefault();\n // }\n\n Array.from(this.indicators).forEach(sLink => {\n if (e.target != sLink && !sLink.parentNode.classList.contains('active') && sLink.parentNode.classList.contains(levelClass)) {\n sLink.parentNode.classList.remove(\"revealed\");\n }\n });\n\n if (!this.domRoot.classList.contains(\"mobile-reveal\")) {\n this.domRoot.parentNode.scrollTop = 0;\n }\n this.domRoot.classList.toggle(\"mobile-reveal\");\n e.target.parentNode.classList.toggle(\"revealed\"); \n });\n });\n\n Array.from(this.mobileToggles).forEach(mobileToggle => {\n mobileToggle.addEventListener(\"click\", (e)=> {\n this.domRoot.classList.remove(\"mobile-reveal\");\n e.target.parentNode.parentNode.classList.remove(\"revealed\");\n });\n });\n\n window.addEventListener(\"scroll\", () => {\n this.checkWhichScrolled();\n });\n window.addEventListener(\"resize\", () => {\n this.checkWhichScrolled();\n });\n }\n\n getStickyMenuHeight(element: Element): number {\n const stickyMenu = element.querySelector('.imkt-navbar__main-section');\n return stickyMenu && stickyMenu.offsetHeight || 0;\n }\n\n offsetTopFind(el, withHeight = 0) {\n var yPosition = withHeight;\n while (el.offsetParent !== null) {\n yPosition += el.offsetTop;\n el = el.offsetParent;\n }\n\n // Compute the sticky menu height using the root node\n if (this.stickMenuHeightComputed === false) {\n this.stickyMenuHeight = this.getStickyMenuHeight(el);\n this.stickMenuHeightComputed = true;\n }\n return yPosition;\n }\n\n\n checkWhichScrolled() {\n let winTop = window.scrollY;\n let winBot = window.innerHeight;\n let guideStyle = this.domRoot.style;\n let guideHeight = this.domRoot.offsetHeight;\n\n let parentContainer = this.domRoot.parentNode;\n let sidebarOffset = this.offsetTopFind(parentContainer);\n let parentHeight = this.offsetTopFind(parentContainer.parentNode, parentContainer.parentNode.offsetHeight);\n let bottomPos = winTop - parentHeight + winBot;\n\n if (winTop >= (sidebarOffset - this.stickyMenuHeight)) {\n guideStyle.position = \"fixed\";\n guideStyle.maxHeight = \"calc(100vh - \" + (this.stickyPosition + 50) + \"px)\";\n guideStyle.width = (this.domRoot.parentNode.offsetWidth - 32) + \"px\";\n if (winTop > (parentHeight - guideHeight - this.stickyPosition)) {\n guideStyle.bottom = bottomPos + \"px\";\n guideStyle.top = \"auto\";\n } else {\n guideStyle.top = (this.stickyMenuHeight + this.guideOffsetTop) + \"px\";\n guideStyle.bottom = \"auto\";\n }\n } else {\n guideStyle.position = \"static\";\n guideStyle.top = \"auto\";\n guideStyle.bottom = \"auto\";\n guideStyle.width = \"auto\";\n }\n }\n\n}\n\nexport default MicrositeNav;"],"names":["MicrositeNav","domRoot","params","_classCallCheck","this","stickyPosition","Number","indicators","querySelectorAll","mobileToggles","document","getElementsByClassName","stickMenuHeightComputed","stickyMenuHeight","guideOffsetTop","offsetTop","init","key","value","_this","addEventListener","e","body","classList","contains","target","href","indexOf","preventDefault","window","location","hash","Array","from","forEach","sideLink","levelClass","className","match","sLink","parentNode","remove","scrollTop","toggle","mobileToggle","checkWhichScrolled","element","stickyMenu","querySelector","offsetHeight","el","yPosition","arguments","length","undefined","offsetParent","getStickyMenuHeight","winTop","scrollY","winBot","innerHeight","guideStyle","style","guideHeight","parentContainer","sidebarOffset","offsetTopFind","parentHeight","bottomPos","position","maxHeight","width","offsetWidth","bottom","top"],"sourceRoot":""}