{"version":3,"file":"chunks/6bbc38f7b56ecb.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","_classCallCheck","_defineProperty","this","$navbar","$","key","value","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","_objectSpread","$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","concat","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":""}