{"version":3,"file":"chunks/4d54ec5df99e25.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\n constructor(domRoot) {\n this.$navbar = $(domRoot);\n\n this.TARGET_HOSTNAME = 'atlassian.com';\n\n this.HEADERLESS_NAV_CLASS = 'headerless-nav';\n this.STORAGE_KEY_DISABLE = 'disable_product_nav';\n this.STORAGE_KEY_CONTEXT = 'context_product_nav';\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, contextPath) {\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) {\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 function Navbar(domRoot, params) {\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\nNavbar.prototype = {\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 init: function () {\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 bindEvents: function () {\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 isMobile: function () {\n return $(window).width() <= imkt.wpl.globals.mediaQueries.md.maxWidth;\n },\n navbarOpen: function () {\n return this.$navbar.hasClass(this.constants.NAVBAR_COLLAPSED_OPEN_CLASS);\n },\n toggleCollapsedNavbar: function () {\n this.$navbar.toggleClass(this.constants.NAVBAR_COLLAPSED_OPEN_CLASS);\n this.$collapsedSection.slideToggle();\n },\n getNavContentsWidth: function () {\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 setLogoTitleWidth: function () {\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 setNavbarDisplayMode: function () {\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 navSelection: function () {\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: function (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 updateActiveNavItem: function (id) {\n this.removeActiveNavItem(id);\n this.$linkList.find('a[href=\"#' + id + '\"]').addClass(\"active\");\n },\n removeActiveNavItem: function () {\n this.$linkList.find(\"a\").removeClass(\"active\");\n },\n setDefaultHoverLinkContent: function () {\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","$","TARGET_HOSTNAME","HEADERLESS_NAV_CLASS","STORAGE_KEY_DISABLE","STORAGE_KEY_CONTEXT","hasClass","storage","ref","document","referrer","isRefExternal","url","indexOf","headerlessContextPath","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","$navbarMainSection","$titleWrapper","$charlieLogo","$linkList","$navbarToggle","$navbarButton","$topLinks","$dropdownLinksWrapper","$dropdownToggle","$desktopDropdownToggle","$collapsedSection","$navbarHashLink","$domRoot","$navSections","navContentsWidth","$hoverableLinks","$navbarHoverContent","init","prototype","constants","CHARLIE_LOGO_WIDTH","NAVBAR_COLLAPSED_CLASS","NAVBAR_COLLAPSED_OPEN_CLASS","HEADERLESS_NAV","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","isMobile","width","imkt","navbarOpen","slideToggle","children","outerWidth","$titleClone","css","fontSize","opacity","position","visibility","$titleCloneCollapsed","after","initialTitleWidth","getBoundingClientRect","remove","stuckTitleWidth","fadeTo","section","Waypoint","handler","direction","id","updateActiveNavItem","removeActiveNavItem","setHoveredLink","filter"],"sourceRoot":""}