{"version":3,"file":"chunks/ee02105278e2ea.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 = 775; // 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).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","this","$domRoot","$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","setLayoutState","addOverlay","bindEvents","self","onThrottled","window","hasChangedLayout","closeMobileMenu","closeDropdown","showLogo","hasClass","openSearch","isMobileLayout","isMobileMenuOpen","setHeaderHeight","document","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":""}