{"version":3,"file":"chunks/37715fecc222ce.js","mappings":"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","sources":["webpack:///./resources/js/common/headerless-navbar.ts","webpack:///./resources/js/components/navigation/navbar.ts"],"sourcesContent":["import * as $ from \"jquery\";\nimport storage from \"../utils/storage\";\nimport url from '../utils/url';\n\nexport default class HeaderlessNavbar {\n $navbar: JQuery;\n TARGET_HOSTNAME = 'atlassian.com';\n HEADERLESS_NAV_CLASS = 'headerless-nav';\n STORAGE_KEY_DISABLE = 'disable_product_nav';\n STORAGE_KEY_CONTEXT = 'context_product_nav';\n\n constructor(domRoot: HTMLElement) {\n this.$navbar = $(domRoot);\n }\n\n shouldUseHeaderlessNav() {\n if (!$('body').hasClass(this.HEADERLESS_NAV_CLASS)) {\n return false;\n }\n\n if (storage.getSessionStorage(this.STORAGE_KEY_DISABLE)) {\n return false;\n }\n\n let ref = document.referrer;\n let isRefExternal = ref ? url.getHostname(ref).indexOf(this.TARGET_HOSTNAME) === -1 : true;\n\n let headerlessContextPath = storage.getSessionStorage(this.STORAGE_KEY_CONTEXT);\n if (!headerlessContextPath) {\n headerlessContextPath = $('body').data('headerless-path').replace(/\\/wac\\//, '/');\n storage.setSessionStorage(this.STORAGE_KEY_CONTEXT, headerlessContextPath);\n }\n\n let isSimilarContextPath = this.isHeaderlessNavBarInContext(ref, headerlessContextPath);\n if (!ref || isRefExternal || isSimilarContextPath ) {\n return true;\n }\n return false;\n }\n\n disableHeaderlessNav() {\n $('body').removeClass(this.HEADERLESS_NAV_CLASS);\n storage.setSessionStorage(this.STORAGE_KEY_DISABLE, '1');\n storage.removeSessionStorage(this.STORAGE_KEY_CONTEXT);\n }\n\n initHeaderlessNav() {\n const $globalProductsLink = $('.global-nav--wac__link.has-dropdown a[data-dropdown-id=\"dropdown-b7fc3020\"]');\n const $subnavProductsLink = $('.imkt-navbar__link-list--products');\n const $globalNavLogo = $('.global-nav--wac__logo');\n const $globalNavLinks = $('.global-nav--wac__links');\n const $titleLink = this.$navbar.find('.imkt-navbar__title-link');\n const $globalHeader = $('.header--wac');\n const $globalNavProfile = $('#global-nav--wac__container--profile');\n const $rightNav = $('.imkt-navbar__right-nav');\n\n // Stop and disable headerless nav if no products menu found\n if (!$globalProductsLink.length || !$subnavProductsLink.length) {\n this.disableHeaderlessNav();\n return;\n }\n\n // Make global nav sticky (only visible for mobile layout)\n $globalHeader.addClass('imkt-sticky');\n\n // Bind click event to product icon\n $subnavProductsLink.on('click', (e) => {\n e.preventDefault();\n $globalProductsLink.trigger('click');\n });\n\n // Run once for global nav modifications (in the event a page has multiple subnavs)\n if (!$globalHeader.hasClass('headerless-nav-processed')) {\n\n // Append subnavbar links into global nav mobile links\n this.$navbar.find('.imkt-navbar__link-list a:not(.imkt-navbar__link-list-link--dropdown-trigger)').each( (index, element) => {\n let $subnavLink = $(element).clone();\n $globalNavLinks.append($subnavLink);\n });\n\n // Update global nav logo with subnav link\n $globalNavLogo.find('a').attr( 'href', $titleLink.attr('href') );\n\n // Update global nav logo with subnav link logo or text\n let $titleLinkTextLogo = $titleLink.find('.imkt-navbar__title-text');\n if ($titleLinkTextLogo.length) {\n\n $globalNavLogo.find('img').hide();\n $globalNavLogo.append( $titleLinkTextLogo.clone() );\n\n } else {\n\n $globalNavLogo.find('img').attr( 'src', $titleLink.find('img').attr('src') );\n\n }\n\n // Move globalNavProfile to headerless nav\n $globalNavProfile.detach().appendTo($rightNav);\n\n // Set class on header to halt processing more than once\n $globalHeader.addClass('headerless-nav-processed');\n }\n\n // Ready class to show the headerless nav\n this.$navbar.addClass('ready');\n\n }\n\n isHeaderlessNavBarInContext(referrer: string, contextPath: string | null) {\n if (!contextPath) {\n return false;\n }\n\n let currentPath = window.location.pathname;\n if ( this.isNestedJiraTourPath(contextPath) !== this.isNestedJiraTourPath(currentPath) ) {\n return false;\n }\n\n if (referrer.indexOf(contextPath) > -1 && currentPath.indexOf(contextPath) > -1) {\n return true;\n }\n\n return false;\n }\n\n isNestedJiraTourPath(pathname: string) {\n let nestedTourPaths = [\n '/software/jira/service-desk',\n '/software/jira/core'\n ];\n\n for (let i = 0; i < nestedTourPaths.length; i++) {\n if ( pathname.indexOf(nestedTourPaths[i]) !== -1 ) {\n return true;\n }\n }\n return false;\n }\n\n}\n","// Navbar section component\nimport * as $ from \"jquery\";\nimport HeaderlessNavbar from \"../../common/headerless-navbar\";\nimport onThrottled from \"../../utils/event\";\nimport imkt from '../../imkt';\nimport \"waypoints/lib/jquery.waypoints.js\";\n\nexport default class Navbar {\n constants = {\n CHARLIE_LOGO_WIDTH: 36,\n NAVBAR_COLLAPSED_CLASS: \"imkt-navbar__collapsed\",\n NAVBAR_COLLAPSED_OPEN_CLASS: \"imkt-navbar__collapsed--open\",\n HEADERLESS_NAV: \"headerless-nav\",\n };\n domRoot: JQuery;\n params: any;\n $navbar: any;\n $navbarMainSection: JQuery;\n $titleWrapper: JQuery;\n $charlieLogo: JQuery;\n $linkList: JQuery;\n $titleLink: JQuery;\n $navbarToggle: JQuery;\n $navbarButton: JQuery;\n $topLinks: JQuery;\n $dropdownLinksWrapper: any;\n $dropdownToggle: any;\n $desktopDropdownToggle: any;\n $collapsedSection: JQuery;\n $navbarHashLink: JQuery;\n $navSections: JQuery;\n navContentsWidth: number;\n $hoverableLinks: JQuery;\n $navbarHoverContent: JQuery;\n\n constructor(domRoot: HTMLElement, params: any) {\n this.domRoot = $(domRoot);\n this.params = { ...params };\n this.$navbar = this.domRoot;\n this.$navbarMainSection = $(\".imkt-navbar__main-section\", this.$navbar);\n this.$titleWrapper = $(\n \".imkt-navbar__title-wrapper\",\n this.$navbarMainSection\n );\n this.$charlieLogo = $(\".imkt-navbar__charlie-logo-link\", this.$titleWrapper);\n this.$linkList = $(\".imkt-navbar__link-list\", this.$navbarMainSection);\n this.$titleLink = $(\".imkt-navbar__title-link\", this.$titleWrapper);\n this.$navbarToggle = $(\"#jsToggleNavbarMenu\", this.$titleWrapper);\n this.$navbarButton = $(\".button\", this.$navbarMainSection);\n this.$topLinks = $(\".imkt-navbar__link-list-link\", this.$navbarMainSection);\n // dropdown links elements\n this.$dropdownLinksWrapper = this.domRoot.find(\n \".imkt-navbar__collapsed-dropdown-links\"\n );\n this.$dropdownToggle = this.domRoot.find(\n \".imkt-navbar__collapsed-link-list-link--dropdown-trigger\"\n );\n this.$desktopDropdownToggle = this.domRoot.find(\n \".imkt-navbar__link-list-link--dropdown-trigger\"\n );\n // collapsed elements\n this.$collapsedSection = $(\".imkt-navbar__collapsed-section\", this.$navbar);\n // hash links sections\n this.$navbarHashLink = $(\".imkt-navbar__hash-link-nav\", this.$domRoot);\n this.$navSections = $(\".hash-link-section\", this.$domRoot);\n // make width value of nav contents available to all functions\n this.navContentsWidth = 0;\n\n this.$hoverableLinks = $(\".hoverable-link\", this.$navbarMainSection);\n this.$navbarHoverContent = $(\n \".navbar-hover-content\",\n this.$navbarMainSection\n );\n\n // only initialize javascript for default size navbar\n if (this.$navbar.hasClass(\"imkt-navbar__default\") && this.$linkList.length) {\n this.init();\n } else {\n $(\"body\").removeClass(\"headerless-nav\");\n }\n }\n\n init() {\n var self = this;\n\n var headerlessNavbar = new HeaderlessNavbar(this.domRoot);\n try {\n if (headerlessNavbar.shouldUseHeaderlessNav()) {\n headerlessNavbar.initHeaderlessNav();\n } else {\n headerlessNavbar.disableHeaderlessNav();\n }\n } catch (e) {\n headerlessNavbar.disableHeaderlessNav();\n }\n\n // Allow fonts to render before working with element sizing\n $(document).on(\"font-face-applied\", function () {\n if (self.params.hasCharlie == \"true\" && self.$charlieLogo.length) {\n self.setLogoTitleWidth();\n }\n\n self.getNavContentsWidth();\n });\n this.navSelection();\n self.setNavbarDisplayMode();\n this.$navbarHoverContent.hide();\n this.bindEvents();\n this.setDefaultHoverLinkContent();\n }\n\n bindEvents() {\n var self = this;\n\n onThrottled($(window), \"resize\", function () {\n self.setNavbarDisplayMode();\n });\n\n $(window).on(\"keyup\", function () {\n if (\n document.activeElement.classList.contains(\"imkt-navbar__link-list-link\")\n ) {\n self.$topLinks.each(function () {\n $(this).removeClass(\"active\");\n });\n document.activeElement.classList.add(\"active\");\n } else if (\n document.activeElement.classList.contains(\n \"imkt-navbar__dropdown-links__link\"\n )\n ) {\n /* keep parent element active to allow tab movement */\n } else {\n self.$topLinks.each(function () {\n $(this).removeClass(\"active\");\n });\n }\n });\n // element will not be visible unless the navbar is in collapsed mode\n this.$navbarToggle.on(\"click\", function () {\n self.toggleCollapsedNavbar();\n });\n\n this.$dropdownToggle.on(\"click\", function (e) {\n e.preventDefault();\n var $this = $(this);\n $this.parent().find(\n \".imkt-navbar__collapsed-dropdown-links.dropdown-container\"\n ).toggle();\n $this.toggleClass(\"open\");\n return false;\n });\n\n this.$desktopDropdownToggle.on(\"click\", function (e) {\n e.preventDefault();\n });\n\n $(document).on(\"click\", function (e) {\n if (!$(e.target).hasClass(\"imkt-navbar__link-list-link\")) {\n self.$topLinks.each(function () {\n $(this).removeClass(\"active\");\n });\n }\n });\n\n this.$hoverableLinks.hover(function () {\n const hoverOverId = $(this).data(\"hover-content-id\");\n if (hoverOverId) {\n // removed existing hovered tag\n self.$hoverableLinks.removeClass(\"hover-over\");\n // hide current nav bar hover content\n self.$navbarHoverContent.hide();\n // set hover-over class on hovered link\n $(this).addClass(\"hover-over\");\n // show hovered over content\n document.querySelector(`#${hoverOverId}`).style.display = \"block\";\n }\n });\n }\n\n isMobile() {\n return $(window).width() <= imkt.wpl.globals.mediaQueries.md.maxWidth;\n }\n\n navbarOpen() {\n return this.$navbar.hasClass(this.constants.NAVBAR_COLLAPSED_OPEN_CLASS);\n }\n\n toggleCollapsedNavbar() {\n this.$navbar.toggleClass(this.constants.NAVBAR_COLLAPSED_OPEN_CLASS);\n this.$collapsedSection.slideToggle();\n }\n\n getNavContentsWidth() {\n var self = this;\n\n this.navContentsWidth = 50; // initialize with a buffer\n\n this.navContentsWidth += this.$titleWrapper.width();\n\n $.each(this.$linkList.children(\"li\"), function () {\n var $this = $(this);\n self.navContentsWidth += $this.outerWidth(true);\n });\n\n if (this.$navbarButton.length) {\n this.navContentsWidth += this.$navbarButton.width();\n }\n\n if (this.$navbarToggle.length) {\n this.navContentsWidth += this.$navbarToggle.outerWidth(true);\n }\n }\n\n setLogoTitleWidth() {\n // Create clones of our navbar title and get width of 'stuck' state\n var $titleClone = this.$titleLink.clone().find(\"span\").css({\n fontSize: \"1.5rem\",\n opacity: 0,\n position: \"absolute\",\n visibility: \"hidden\",\n });\n\n var $titleCloneCollapsed = this.$titleLink.clone().find(\"span\").css({\n fontSize: \"1.125rem\",\n opacity: 0,\n position: \"absolute\",\n visibility: \"hidden\",\n });\n\n this.$titleWrapper.after($titleClone, $titleCloneCollapsed); // add to page so we can get accurate width\n var initialTitleWidth = $titleClone[0].getBoundingClientRect().width; // store width\n $titleClone.remove(); // remove from page\n var stuckTitleWidth =\n $titleCloneCollapsed[0].getBoundingClientRect().width +\n this.constants.CHARLIE_LOGO_WIDTH; //store width\n $titleCloneCollapsed.remove(); // remove from page\n\n // assign optimal title wrapper width\n if (initialTitleWidth >= stuckTitleWidth) {\n this.$titleWrapper.width(initialTitleWidth);\n } else {\n this.$titleWrapper.width(stuckTitleWidth);\n }\n }\n\n setNavbarDisplayMode() {\n // if mobile, always set display mode to collapsed\n if (this.isMobile()) {\n this.$navbar.addClass(this.constants.NAVBAR_COLLAPSED_CLASS);\n } else {\n var navWidth = this.$navbarMainSection.find(\".column\").width();\n if (navWidth < this.navContentsWidth) {\n this.$navbar.addClass(this.constants.NAVBAR_COLLAPSED_CLASS);\n } else {\n this.$navbar.removeClass(this.constants.NAVBAR_COLLAPSED_CLASS);\n if (this.$navbar.hasClass(this.constants.NAVBAR_COLLAPSED_OPEN_CLASS)) {\n this.toggleCollapsedNavbar();\n }\n }\n }\n }\n\n navSelection() {\n var self = this;\n self.getNavContentsWidth();\n self.$navbarHashLink\n .find(\".column\")\n .width(self.navContentsWidth + 2)\n .fadeTo(\"300\", 1)\n .find(self.$titleLink)\n .on(\"click\", function (e) {\n e.preventDefault();\n });\n $.each(self.$navSections, function (index, section) {\n new Waypoint({\n element: $(section),\n handler(direction) {\n var id = $(this.element).attr(\"id\");\n if (direction === \"down\") {\n self.updateActiveNavItem(id);\n } else {\n if (index == 0) {\n self.removeActiveNavItem(id);\n } else if (index !== 0) {\n id = $(self.$navSections[index - 1]).attr(\"id\");\n self.updateActiveNavItem(id);\n }\n }\n },\n //,offset: '25%'\n });\n });\n }\n\n updateActiveNavItem(id) {\n this.removeActiveNavItem(id);\n this.$linkList.find('a[href=\"#' + id + '\"]').addClass(\"active\");\n }\n\n removeActiveNavItem() {\n this.$linkList.find(\"a\").removeClass(\"active\");\n }\n\n setDefaultHoverLinkContent() {\n if (this.$hoverableLinks.length > 0) {\n const setHoveredLink = this.$hoverableLinks.filter(\".hover-over\");\n // This assumes at init there would only be one default selected hover-over class\n if (setHoveredLink.length > 0) {\n const hoverOverId = setHoveredLink.data(\"hover-content-id\");\n document.querySelector(`#${hoverOverId}`).style.display = \"block\";\n }\n }\n }\n}\n"],"names":["HeaderlessNavbar","domRoot","this","$navbar","$","hasClass","HEADERLESS_NAV_CLASS","storage","STORAGE_KEY_DISABLE","ref","document","referrer","isRefExternal","url","indexOf","TARGET_HOSTNAME","headerlessContextPath","STORAGE_KEY_CONTEXT","data","replace","isSimilarContextPath","isHeaderlessNavBarInContext","removeClass","$globalProductsLink","$subnavProductsLink","$globalNavLogo","$globalNavLinks","$titleLink","find","$globalHeader","$globalNavProfile","$rightNav","length","addClass","on","e","preventDefault","trigger","each","index","element","$subnavLink","clone","append","attr","$titleLinkTextLogo","hide","detach","appendTo","disableHeaderlessNav","contextPath","currentPath","window","location","pathname","isNestedJiraTourPath","nestedTourPaths","i","Navbar","params","CHARLIE_LOGO_WIDTH","NAVBAR_COLLAPSED_CLASS","NAVBAR_COLLAPSED_OPEN_CLASS","HEADERLESS_NAV","$navbarMainSection","$titleWrapper","$charlieLogo","$linkList","$navbarToggle","$navbarButton","$topLinks","$dropdownLinksWrapper","$dropdownToggle","$desktopDropdownToggle","$collapsedSection","$navbarHashLink","$domRoot","$navSections","navContentsWidth","$hoverableLinks","$navbarHoverContent","init","self","headerlessNavbar","shouldUseHeaderlessNav","initHeaderlessNav","hasCharlie","setLogoTitleWidth","getNavContentsWidth","navSelection","setNavbarDisplayMode","bindEvents","setDefaultHoverLinkContent","onThrottled","activeElement","classList","contains","add","toggleCollapsedNavbar","$this","parent","toggle","toggleClass","target","hover","hoverOverId","querySelector","style","display","width","imkt","constants","slideToggle","children","outerWidth","$titleClone","css","fontSize","opacity","position","visibility","$titleCloneCollapsed","after","initialTitleWidth","getBoundingClientRect","remove","stuckTitleWidth","isMobile","fadeTo","section","Waypoint","handler","direction","id","updateActiveNavItem","removeActiveNavItem","setHoveredLink","filter"],"sourceRoot":""}