{"version":3,"sources":["webpack:////Users/owenli/Documents/workspace/awi-wlc-fe/src/views/widgets/siteHeaderWidget/js/siteHeaderWidget.js","webpack:///./wlc/overlay.js"],"names":["CLS","SiteHeaderWidget","element","_this","this","_classCallCheck","$element","$","overlay","$topMenuNavDropdownButtons","find","concat","on","event","type","addClass","attr","removeClass","$topMenuLanguageNavDropdownButtons","$searchBar","$topSearchButton","trigger","siteHeaderWidget","$profileDropdown","document","body","append","setProfileDropdownPosition","$topAvatarButton","setProfileDropdownHeight","create","$topTogglerButton","window","_","debounce","hasClass","key","value","offsetTop","Math","floor","offset","top","css","maxHeight","height","Overlay","onDestroyCallback","off","destroy","remove"],"mappings":"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","file":"widget-23.2f662a3aa586e55a56ca.js","sourcesContent":["/* eslint-disable no-invalid-this */\nconst NS = 'SiteHeaderWidget';\nconst CLS = 'siteHeaderWidget';\n\nimport { overlay } from '../../../../global/js/wlc/overlay';\n\nexport class SiteHeaderWidget {\n constructor(element) {\n\t\tthis.element = element;\n\t\tthis.$element = $(element);\n\t\tthis.overlay = overlay;\n\n\t\t// Main top menu (show submenu on hover)\n this.$topMenuNavDropdownButtons = this.$element.find(`.${CLS}-top-menu-nav-item.dropdown`);\n\t\t// if(this.matchMedia('(min-width: 768px)').matches) {\n\t\t\tthis.$topMenuNavDropdownButtons.on('mouseenter mouseleave', function(event) {\n\t\t\t\tif(event.type === 'mouseenter') {\n\t\t\t\t\t$(this).addClass('show');\n\t\t\t\t\t$('.dropdown-toggle', this).attr('aria-expanded', 'true');\n\t\t\t\t\t$('.dropdown-menu', this).addClass('show');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t$(this).removeClass('show');\n\t\t\t\t\t$('.dropdown-toggle', this).attr('aria-expanded', 'false');\n\t\t\t\t\t$('.dropdown-menu', this).removeClass('show');\n\t\t\t\t}\n\t\t\t});\n\t\t// }\n\t\t// else {\n\t\t// \tthis.$topMenuNavDropdownButtons.off('mouseenter mouseleave');\n\t\t// }\n\n\t\t// Language top menu (show submenu on hover)\n this.$topMenuLanguageNavDropdownButtons = this.$element.find(`.${CLS}-top-menu-lang.dropdown`);\n\t\t// if(this.matchMedia('(min-width: 768px)').matches) {\n\t\t\tthis.$topMenuLanguageNavDropdownButtons.on('mouseenter mouseleave', function(event) {\n\t\t\t\tif(event.type === 'mouseenter') {\n\t\t\t\t\t$(this).addClass('show');\n\t\t\t\t\t$('.dropdown-toggle', this).attr('aria-expanded', 'true');\n\t\t\t\t\t$('.dropdown-menu', this).addClass('show');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t$(this).removeClass('show');\n\t\t\t\t\t$('.dropdown-toggle', this).attr('aria-expanded', 'false');\n\t\t\t\t\t$('.dropdown-menu', this).removeClass('show');\n\t\t\t\t}\n\t\t\t});\n\t\t// }\n\t\t// else {\n\t\t// \tthis.$topMenuNavDropdownButtons.off('mouseenter mouseleave');\n\t\t// }\n\n\t\t// Search icon button (dropdown search)\n this.$searchBar = this.$element.find(`.siteHeaderSearchBarWidget`);\n this.$topSearchButton = this.$element.find(`.${CLS}-top-btn--search`);\n this.$topSearchButton.on('click', () => {\n\t\t\tthis.$searchBar.addClass('active');\n\t\t\tthis.$topSearchButton.addClass('active');\n\t\t\tthis.$searchBar.trigger('siteHeaderSearchBarWidget.open', {\n\t\t\t\tsiteHeaderWidget: this.$element\n\t\t\t});\n\t\t\t// this.overlay.create(() => {\n\t\t\t// \tthis.$searchBar.removeClass('active');\n\t\t\t// \tthis.$topSearchButton.removeClass('active');\n\t\t\t// });\n });\n\n\t\t// Search close button (dropdown search)\n\t\tthis.$element.on(`${CLS}.searchBar.close`, () => {\n\t\t\t// this.overlay.destroy(() => {\n\t\t\t\tthis.$searchBar.removeClass('active');\n\t\t\t\tthis.$topSearchButton.removeClass('active');\n\t\t\t// });\n\t\t});\n\n\t\t// Profile Menu Dropdown (submenu)\n\t\tthis.$profileDropdown = this.$element.find(`.siteHeaderProfileDropdownWidget`);\n\t\t$(document.body).append(this.$profileDropdown);\n\t\tthis.setProfileDropdownPosition();\n\n\t\t// Profile button\n\t\tthis.$topAvatarButton = this.$element.find(`.${CLS}-top-btn--avatar`);\n this.$topAvatarButton.on('click', () => {\n\t\t\tthis.$topAvatarButton.addClass('active');\n\t\t\tthis.$profileDropdown.addClass('active');\n\t\t\tthis.setProfileDropdownHeight();\n\t\t\tthis.overlay.create(() => {\n\t\t\t\tthis.$topAvatarButton.removeClass('active');\n\t\t\t\tthis.$profileDropdown.removeClass('active');\n\t\t\t});\n });\n\n\t\t// Mobile menu toggle button (submenu)\n this.$topTogglerButton = this.$element.find(`.${CLS}-top-btn--toggler`);\n this.$topTogglerButton.on('click', () => {\n\t\t\tthis.$topTogglerButton.addClass('active');\n\t\t\tthis.$profileDropdown.addClass('active');\n\t\t\tthis.overlay.create(() => {\n\t\t\t\tthis.$topTogglerButton.removeClass('active');\n\t\t\t\tthis.$profileDropdown.removeClass('active');\n\t\t\t});\n });\n\n // On window resize + load (with debounce)\n\t\t$(window).on('load resize', _.debounce(() => {\n\t\t\t// Resizes the dropdownHeight when needed\n\t\t\tthis.setProfileDropdownPosition();\n\t\t\tif(this.$profileDropdown.hasClass('active')) {\n this.setProfileDropdownHeight();\n }\n\n\t\t\t// Top menu\n\t\t\t//\n }, 250));\n }\n\n setProfileDropdownHeight() {\n let offsetTop = Math.floor(this.$profileDropdown.offset().top);\n this.$profileDropdown.css({\n maxHeight: `calc(100vh - ${offsetTop}px)`\n });\n }\n\n setProfileDropdownPosition() {\n\t\tthis.$profileDropdown.css({\n\t\t\ttop: this.$element.offset().top + this.$element.height()\n\t\t});\n\t}\n}\n","class Overlay {\n\tcreate(onDestroyCallback) {\n\t\t$(document.body).append('
');\n\n\t\t$('.tpl-scroller').addClass('overlayHideScroll');\n\n\t\t$(document.body).on('click', '.overlay', () => {\n\t\t\t$(document.body).off('click', '.overlay');\n\t\t\tthis.destroy(onDestroyCallback);\n\t\t});\n\t}\n\n\tdestroy(onDestroyCallback) {\n\t\t$(document.body).removeClass('hasOverlay').css({});\n\t\t$('.tpl-scroller').removeClass('overlayHideScroll');\n\n\t\t$('.overlay').remove();\n\t\tif(onDestroyCallback) {\n\t\t\tonDestroyCallback();\n\t\t}\n\t}\n}\n\nexport let overlay = new Overlay();\n"],"sourceRoot":""}