{"version":3,"file":"chunks/effed16c4626af.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<HTMLElement>;\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<any>;\n  params: any;\n  $navbar: any;\n  $navbarMainSection: JQuery<HTMLElement>;\n  $titleWrapper: JQuery<HTMLElement>;\n  $charlieLogo: JQuery<HTMLElement>;\n  $linkList: JQuery<HTMLElement>;\n  $titleLink: JQuery<HTMLElement>;\n  $navbarToggle: JQuery<HTMLElement>;\n  $navbarButton: JQuery<HTMLElement>;\n  $topLinks: JQuery<HTMLElement>;\n  $dropdownLinksWrapper: any;\n  $dropdownToggle: any;\n  $desktopDropdownToggle: any;\n  $collapsedSection: JQuery<HTMLElement>;\n  $navbarHashLink: JQuery<HTMLElement>;\n  $navSections: JQuery<HTMLElement>;\n  navContentsWidth: number;\n  $hoverableLinks: JQuery<HTMLElement>;\n  $navbarHoverContent: JQuery<HTMLElement>;\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":""}