{"version":3,"file":"chunks/c5e9420a9ca09e.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","_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","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":""}