@govbr-ds/core
Version:
Padrão Digital de Governo
2 lines • 3.11 kB
JavaScript
!function e(t,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define("core",[],r):"object"==typeof exports?exports.core=r():t.core=r()}(self,()=>(()=>{var e=()=>{},t,r=()=>{};(()=>{class e{constructor(e,t){this.name=e,this.component=t,this._setBehavior()}_setBehavior(){this._setView(),window.addEventListener("resize",()=>{this._setView()}),window.document.addEventListener("click",e=>{!this.component.contains(e.target)&&this.component.querySelector(".br-card")&&this.component.querySelector(".br-card").remove()})}resetBreadcrumbs(){this._reset();const e=this.component.querySelector(".br-card");null!==e&&e.remove(),this._setView()}_setView(){this._reset();for(const e of this.component.querySelectorAll(".crumb-list")){const t=e.querySelectorAll(".crumb:not([data-active])");window.innerWidth<575?1!==t.length&&(t.forEach(e=>{e.classList.add("d-none")}),this._insertExpandButton()):(e.scrollWidth>e.offsetWidth||t.length>5)&&(t.forEach((e,r)=>{r>0&&r<t.length-1&&e.classList.add("d-none")}),this._insertExpandButton())}}_insertExpandButton(){const e=this._createCrumb(),t=this.component.querySelector(".crumb-list"),r=t.querySelectorAll(".crumb");t.insertBefore(e,r[1]);for(const e of this.component.querySelectorAll('[aria-current="page"]'))e.setAttribute("tabindex","-1")}_reset(){this.component.querySelectorAll(".crumb-list .crumb").forEach(e=>{if(e.classList.contains("menu-mobil")){e.remove();for(const e of this.component.querySelectorAll('[aria-current="page"]'))e.setAttribute("tabindex","0")}else e.classList.remove("d-none")})}_createCrumb(){const e=document.createElement("li");e.classList.add("crumb","menu-mobil"),e.setAttribute("data-toggle","dropdown");const t=document.createElement("button");t.classList.add("br-button","circle"),t.setAttribute("aria-label","Abrir menu Breadcrumb");const r=document.createElement("span");r.classList.add("sr-only"),r.innerHTML="Botão Menu";const s=document.createElement("i");s.classList.add("fas","fa-folder-plus");const o=document.createElement("i");return o.classList.add("icon","fas","fa-chevron-right"),e.appendChild(o),e.appendChild(t),t.appendChild(r),t.appendChild(s),e.addEventListener("click",()=>{let e=this.component.querySelector(".br-card");e?(s.classList.remove("fas","fa-folder-minus"),s.classList.add("fas","fa-folder-plus"),t.setAttribute("aria-label","Breadcrumb menu fechado"),this.component.querySelector(".br-card").remove()):(s.classList.remove("fas","fa-folder-plus"),s.classList.add("fas","fa-folder-minus"),t.setAttribute("aria-label","Breadcrumb menu aberto"),e=this._createList(),this.component.appendChild(e))}),e}_createList(){const e=document.createElement("nav");return e.classList.add("br-card"),this.component.querySelectorAll(".crumb-list .crumb").forEach(t=>{if(t.classList.contains("d-none")){const r=document.createElement("div");r.classList.add("br-item"),t.classList.contains("home")||(r.appendChild(t.querySelector("a").cloneNode(!0)),e.appendChild(r))}}),e}}var t=null})(),e();var s={};return r(),s})());
//# sourceMappingURL=breadcrumb.min.js.map