{"version":3,"file":"chunks/1caad83f0f2d90.js","mappings":"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","sources":["webpack:///./resources/js/components/navigation/global-navigation.ts"],"sourcesContent":["import * as $ from \"jquery\";\nimport onThrottled from \"../../utils/event\";\nimport tracking from '../../utils/tracking';\n\nexport default class GlobalNavigation {\n  $domRoot: HTMLElement;\n  params: any;\n  $header: JQuery<HTMLElement>;\n  $globalNav: JQuery<HTMLElement>;\n  $globalNavLogo: JQuery<HTMLElement>;\n  $globalNavTitle: JQuery<HTMLElement>;\n  $dropdown: JQuery<HTMLElement>;\n  $search: JQuery<HTMLElement>;\n  $searchInput: JQuery<HTMLElement>;\n  $dropdownContent: JQuery<HTMLElement>;\n  mobileBreakpoint: number;\n  dropdownSpeed: number;\n  dropdownSpeedFast: number;\n  canClickDropdown: boolean;\n  isCurrentlyMobile: boolean;\n  classNames: { [name: string]: string };\n  overlay?: JQuery<any>;\n  \n  constructor(domRoot: HTMLElement, params: any) {\n    (this.$domRoot = domRoot), (this.params = { ...params });\n\n    this.$header = $(\".header--wac\");\n    this.$globalNav = $(\".global-nav--wac\");\n    this.$globalNavLogo = $(\".global-nav--wac__logo\");\n    this.$globalNavTitle = $(\".global-nav--wac__title\");\n    this.$dropdown = $(\".container--nav-dropdown\");\n    this.$search = $(\".global-nav--wac__search\");\n    this.$searchInput = $(\".global-nav--wac__search-input\");\n    this.$dropdownContent = $(\".container--nav-dropdown__content\");\n    this.mobileBreakpoint = 1099; // tied to css\n    this.dropdownSpeed = 500; // tied to css\n    this.dropdownSpeedFast = 250; // tied to css\n    this.canClickDropdown = true;\n    this.isCurrentlyMobile = false;\n\n    (this.classNames = {\n      mobileMenuOpenClass: \"mobile-menu--open\",\n      searchOpenClass: \"search--open\",\n      overlayOpenClass: \"overlay--open\",\n      searchIconClass: \".global-nav--wac__search-icon\",\n      overlayClass: \".overlay--global-nav\",\n      headerlessNavbarClass:\n        \".headerless-nav .imkt-navbar__link-list-link--dropdown-trigger\",\n      globalNavBackArrowClass: \".global-nav--wac__back-arrow\",\n      menuToggleClass: \".global-nav--wac__menu-toggle\",\n      searchCloseIconClass: \".global-nav--wac__search-close\",\n      dropdownLinksClass: \".global-nav--wac__link.has-dropdown a\",\n      dropdownCloseClass: \".container--nav-dropdown__close\",\n      dropdownClass: \".container--nav-dropdown\",\n      dropdownOpenClass: \"dropdown--open\",\n      slideInClass: \"slide-in--active\",\n      logoInactiveClass: \"inactive\",\n      //WAC header tracking WCF-820\n      navLinkDropDownClass: \".global-nav--wac__link.has-dropdown\",\n      navDropdownLinksClass: \".container--nav-dropdown__link\",\n      navDropDownColumnSecondaryClass:\n        \".container--nav-dropdown__column--secondary li\",\n      navDropDownLinkAllClass: \".container--nav-dropdown__link--all\",\n      navLogoClass: \".global-nav--wac__logo\",\n    }),\n      this.init();\n  }\n\n  init() {\n    this.setLayoutState();\n\n    this.addOverlay();\n    this.bindEvents();\n  }\n\n  bindEvents() {\n    var self = this;\n    onThrottled($(window), \"resize\", function () {\n      if (self.hasChangedLayout()) {\n        self.closeMobileMenu();\n        self.closeDropdown();\n        self.showLogo();\n        if (self.$search.hasClass(\"active\")) {\n          self.openSearch();\n        }\n      }\n      if (self.isMobileLayout() && self.isMobileMenuOpen()) {\n        self.setHeaderHeight();\n      }\n      self.setLayoutState();\n    });\n\n    document.addEventListener(\"keydown\", (event: any) => {\n      if (event.code == \"Escape\") {\n        self.closeDropdown();\n      }\n    });\n\n    $(document).on(\"click\", self.classNames.menuToggleClass, function (e) {\n      e.preventDefault();\n      self.isMobileMenuOpen() ? self.closeMobileMenu() : self.openMobileMenu();\n      self.hideOverlay();\n      self.closeDropdown();\n      self.isMobileDropdownOpen() ? self.hideLogo() : self.showLogo();\n    });\n\n    $(document).on(\"click\", self.classNames.dropdownLinksClass, function (e) {\n      e.preventDefault();\n      if (!self.canClickDropdown) {\n        return;\n      }\n      self.canClickDropdown = false;\n      var dropdownId = $(this).data(\"dropdown-id\");\n      var $dropdownContent = $(\"#\" + dropdownId);\n      var isDropdownHidden = !$dropdownContent.hasClass(\"active\");\n\n      self.closeSearch();\n\n      $(self.classNames.dropdownLinksClass).removeClass(\"selected\");\n      $(\"[id^=dropdown-]\").removeClass(\"active\");\n      $(\"body\").addClass(self.classNames.overlayOpenClass);\n\n      if (isDropdownHidden) {\n        self.openDropdown(this);\n      } else {\n        self.closeDropdown();\n      }\n\n      if (self.isMobileLayout()) {\n        self.hideLogo();\n        self.addTitle($(this));\n        self.dropdownSlideIn();\n      }\n    });\n\n    $(document).on(\"click\", self.classNames.searchIconClass, function (e) {\n      e.preventDefault();\n      self.closeMobileMenu();\n      self.closeDropdown();\n      self.openSearch();\n    });\n\n    $(document).on(\"click\", self.classNames.searchCloseIconClass, function (e) {\n      e.preventDefault();\n      self.closeSearch();\n    });\n\n    $(document).on(\n      \"click touchstart\",\n      self.classNames.overlayClass,\n      function () {\n        self.closeDropdown();\n        self.closeSearch();\n      }\n    );\n\n    $(document).on(\n      \"click touchstart\",\n      self.classNames.headerlessNavbarClass,\n      function () {\n        self.closeDropdown();\n        self.closeSearch();\n      }\n    );\n\n    $(document).on(\"click\", self.classNames.dropdownCloseClass, function (e) {\n      e.preventDefault();\n      self.closeDropdown();\n      self.closeSearch();\n      self.closeMobileMenu();\n    });\n\n    $(document).on(\n      \"click\",\n      self.classNames.globalNavBackArrowClass,\n      function (e) {\n        e.preventDefault();\n        self.closeDropdown();\n        self.showLogo();\n      }\n    );\n\n    $(document).on(\"click\", self.classNames.navLogoClass, function () {\n      self.sendTracking(\"wac_header_logo_clicked\", \"Atlassian Logo\");\n    });\n  }\n\n  sendTracking(eventName, linkName) {\n    var properties = {\n      originUrl: window.location.href,\n      linkText: linkName,\n    };\n    tracking.trackEvent(eventName, properties);\n  }\n\n  hasChangedLayout() {\n    return this.isCurrentlyMobile !== this.isMobileLayout();\n  }\n\n  isMobileLayout() {\n    return $(window).width() <= this.mobileBreakpoint;\n  }\n\n  isMobileMenuOpen() {\n    return this.$globalNav.hasClass(\"active\");\n  }\n\n  setLayoutState() {\n    this.isCurrentlyMobile = this.isMobileLayout();\n  }\n\n  addOverlay() {\n    $(\"body\").prepend('<div class=\"overlay--global-nav\"></div>');\n    this.overlay = $(this.classNames.overlayClass);\n  }\n\n  openMobileMenu() {\n    this.closeSearch();\n    $(\"html, body\").addClass(this.classNames.mobileMenuOpenClass);\n    this.$globalNav.addClass(\"active\");\n    this.$header.addClass(\"active\");\n    this.setHeaderHeight();\n  }\n\n  closeMobileMenu() {\n    $(\"html, body\").removeClass(this.classNames.mobileMenuOpenClass);\n    this.$globalNav.removeClass(\"active\");\n    this.$header.removeClass(\"active\");\n    this.resetHeaderHeight();\n    this.deselectLinks();\n  }\n\n  openSearch() {\n    this.$search.addClass(\"active\");\n    $(\"html, body\").addClass(this.classNames.searchOpenClass);\n    this.showOverlay();\n    this.$searchInput.focus();\n  }\n\n  closeSearch() {\n    this.$search.removeClass(\"active\");\n    $(\"html, body\").removeClass(this.classNames.searchOpenClass);\n    this.hideOverlay();\n  }\n\n  showOverlay() {\n    this.overlay.addClass(\"active\");\n  }\n\n  hideOverlay() {\n    this.overlay.removeClass(\"active\");\n  }\n\n  openDropdown(dropdownLink) {\n    $(dropdownLink).addClass(\"selected\");\n    var dropdownId = $(dropdownLink).data(\"dropdown-id\");\n    var $dropdown = $(\"#\" + dropdownId);\n    $dropdown.addClass(\"active\");\n    setTimeout(\n      function () {\n        $(\"html, body\").addClass(this.classNames.dropdownOpenClass);\n        this.canClickDropdown = true;\n      }.bind(this),\n      this.dropdownSpeed\n    );\n    this.showOverlay();\n  }\n\n  closeDropdown() {\n    $(this.classNames.dropdownClass).removeClass(\"active\");\n    setTimeout(\n      function () {\n        $(\"html, body\").removeClass(this.classNames.overlayOpenClass);\n        this.canClickDropdown = true;\n      }.bind(this),\n      this.dropdownSpeedFast\n    );\n    $(\"html, body\").removeClass(this.classNames.dropdownOpenClass);\n    this.hideOverlay();\n    this.deselectLinks();\n    this.dropdownRemoveSlideIn();\n  }\n\n  hideLogo() {\n    this.$globalNavLogo.addClass(this.classNames.logoInactiveClass);\n  }\n\n  showLogo() {\n    this.$globalNavLogo.removeClass(this.classNames.logoInactiveClass);\n  }\n\n  addTitle($dropdownText) {\n    var self = this;\n    self.$globalNavTitle.text($dropdownText.text());\n  }\n\n  isMobileDropdownOpen() {\n    return this.$dropdown.hasClass(\"active\");\n  }\n\n  dropdownSlideIn() {\n    if (this.isMobileLayout()) {\n      this.$globalNav.addClass(this.classNames.slideInClass);\n    }\n  }\n\n  dropdownRemoveSlideIn() {\n    if (this.isMobileLayout()) {\n      this.$globalNav.removeClass(this.classNames.slideInClass);\n    }\n  }\n\n  setHeaderHeight() {\n    this.$header.css({ height: $(window).height() + \"px\" });\n  }\n\n  resetHeaderHeight() {\n    this.$header.css({ height: \"\" });\n  }\n\n  deselectLinks() {\n    $(this.classNames.dropdownLinksClass).removeClass(\"selected\");\n  }\n}\n"],"names":["GlobalNavigation","domRoot","params","_classCallCheck","this","$domRoot","_objectSpread","$header","$","$globalNav","$globalNavLogo","$globalNavTitle","$dropdown","$search","$searchInput","$dropdownContent","mobileBreakpoint","dropdownSpeed","dropdownSpeedFast","canClickDropdown","isCurrentlyMobile","classNames","mobileMenuOpenClass","searchOpenClass","overlayOpenClass","searchIconClass","overlayClass","headerlessNavbarClass","globalNavBackArrowClass","menuToggleClass","searchCloseIconClass","dropdownLinksClass","dropdownCloseClass","dropdownClass","dropdownOpenClass","slideInClass","logoInactiveClass","navLinkDropDownClass","navDropdownLinksClass","navDropDownColumnSecondaryClass","navDropDownLinkAllClass","navLogoClass","init","key","value","setLayoutState","addOverlay","bindEvents","self","onThrottled","window","hasChangedLayout","closeMobileMenu","closeDropdown","showLogo","hasClass","openSearch","isMobileLayout","isMobileMenuOpen","setHeaderHeight","document","addEventListener","event","code","on","e","preventDefault","openMobileMenu","hideOverlay","isMobileDropdownOpen","hideLogo","dropdownId","data","isDropdownHidden","closeSearch","removeClass","addClass","openDropdown","addTitle","dropdownSlideIn","sendTracking","eventName","linkName","properties","originUrl","location","href","linkText","tracking","width","prepend","overlay","resetHeaderHeight","deselectLinks","showOverlay","focus","dropdownLink","setTimeout","bind","dropdownRemoveSlideIn","$dropdownText","text","css","height"],"sourceRoot":""}