{"version":3,"file":"chunks/8da53dca1415b2.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;\n $globalNav: JQuery;\n $globalNavLogo: JQuery;\n $globalNavTitle: JQuery;\n $dropdown: JQuery;\n $search: JQuery;\n $searchInput: JQuery;\n $dropdownContent: JQuery;\n mobileBreakpoint: number;\n dropdownSpeed: number;\n dropdownSpeedFast: number;\n canClickDropdown: boolean;\n isCurrentlyMobile: boolean;\n classNames: { [name: string]: string };\n overlay?: JQuery;\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('
');\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":""}