@govbr-ds/core
Version:
Padrão Digital de Governo
2 lines • 4.97 kB
JavaScript
!function e(t,o){"object"==typeof exports&&"object"==typeof module?module.exports=o():"function"==typeof define&&define.amd?define("core",[],o):"object"==typeof exports?exports.core=o():t.core=o()}(self,()=>(()=>{var e=()=>{},t,o=()=>{};(()=>{class e{constructor(e,t){this.name=e,this.component=t,this.componentSearch=this.component.querySelector(".header-search"),this.componentSearchInput=this.component.querySelector(".header-search input"),this.componentSearchTrigger=this.component.querySelector('[data-toggle="search"]'),this.componentSearchDismiss=this.component.querySelector('[data-dismiss="search"]'),this.hideDrop=null,this.menuTrigger=this.component.querySelector('[data-target="#main-navigation"]'),this._setBehavior()}_setBehavior(){this._setLogoutBehavior(),this._setSearchBehaviors(),this._setKeyboardBehaviors(),this._setDropdownBehavior(),this._setSticky()}_setLoginBehavior(){for(const e of this.component.querySelectorAll('[data-trigger="login"]'))e.addEventListener("click",()=>{const t=e.closest(".header-login");t.querySelector(".header-sign-in").classList.add("d-none"),t.querySelector(".header-avatar").classList.remove("d-none")})}_setLogoutBehavior(){for(const e of this.component.querySelectorAll('[data-trigger="logout"]'))e.addEventListener("click",()=>{const t=e.closest(".header-login");t.querySelector(".avatar").classList.remove("show"),t.querySelector('[data-toggle="dropdown"]').classList.remove("active"),t.querySelector(".header-sign-in").classList.remove("d-none"),t.querySelector(".header-avatar").classList.add("d-none")})}_setSearchBehaviors(){this.componentSearchTrigger&&(this.componentSearchTrigger.addEventListener("focus",()=>{this._cleanDropDownHeader()}),this.componentSearchTrigger.addEventListener("click",()=>{this._openSearch()})),this.componentSearchDismiss&&this.componentSearchDismiss.addEventListener("click",()=>{this._closeSearch()})}_setKeyboardBehaviors(){this.componentSearchInput&&this.componentSearchInput.addEventListener("keydown",e=>{if(27===e.keyCode)this._closeSearch()});for(const e of this.component.querySelectorAll('.dropdown [data-toggle="dropdown"]'))e.addEventListener("keydown",e=>{if(32===e.keyCode)e.target.parentNode.classList.contains("show")&&(e.target.parentNode.click(),e.target.parentNode.classList.remove("show"),e.target.classList.remove("active"),e.stopPropagation())})}_openSearch(){this.componentSearch&&(this.componentSearch.classList.add("active"),this.componentSearch.querySelector("input").focus())}_closeSearch(){this.componentSearch&&(this.componentSearch.classList.remove("active"),this._nextFocusElement().focus())}handleEvent(e){const t=this.component.querySelector(".br-notification");t&&!t.contains(e.target)&&this.activateTr!==e.target.parentNode&&this._cleanDropDownHeaderRef(this.component)}_setDropdownBehavior(){let e;this.cleaned=!1,this.activateTr="teste";for(const t of this.component.querySelectorAll('.dropdown [data-toggle="dropdown"]'))t.addEventListener("click",o=>{this._headerTooltip(),clearTimeout(e),this.activateTr=t,document.addEventListener("mousedown",this,!1),o.stopImmediatePropagation();const s=undefined;if(t.classList.contains("active"))t.classList.remove("active"),t.closest(".dropdown").classList.remove("show");else{this._cleanDropDownHeader(),t.classList.add("active"),t.closest(".dropdown").classList.add("show");const o=undefined;this._nextFocusElement().addEventListener("focus",()=>{clearTimeout(e)})}return o.stopPropagation(),""});this.menuTrigger.addEventListener("focus",()=>{this._cleanDropDownHeader()})}_headerTooltip(){this.TooltipExampleList&&this.TooltipExampleList.forEach(e=>{e.component.remove(),e.popperInstance.destroy()}),this.TooltipExampleList=[],this.component.querySelectorAll(".notification-tooltip").forEach(e=>{const t=e.getAttribute("data-tooltip-text"),o=undefined,s=new Tooltip({activator:e,placement:"top",textTooltip:t});this.TooltipExampleList.push(s)})}_cleanDropDownHeaderRef(e){if(!1===this.cleaned)for(const t of e.querySelectorAll(".dropdown.show")){t.classList.remove("show"),t.parentNode.classList.remove("show");for(const t of e.querySelectorAll(".br-button"))t.classList.remove("active")}this.cleaned=!1}_cleanDropDownHeader(){this._cleanDropDownHeaderRef(this.component)}_setSticky(){this.component.hasAttribute("data-sticky")&&(window.onscroll=()=>{window.pageYOffset>this.component.offsetHeight?this.component.classList.add("sticky","compact"):this.component.classList.remove("sticky","compact")})}_nextFocusElement(){const e='a:not([disabled]), button:not([disabled]), input[type=text]:not([disabled]), [tabindex]:not([disabled]):not([tabindex="-1"])';if(document.activeElement){const t=Array.prototype.filter.call(document.body.querySelectorAll(e),e=>e.offsetWidth>0||e.offsetHeight>0||e===document.activeElement),o=t.indexOf(document.activeElement);if(o>-1){const e=undefined;return t[o+1]||t[0]}}return null}}var t=null})(),e();var s={};return o(),s})());
//# sourceMappingURL=header.min.js.map