@govbr-ds/core
Version:
Padrão Digital de Governo
2 lines • 2 kB
JavaScript
!function t(s,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("core",[],e):"object"==typeof exports?exports.core=e():s.core=e()}(self,()=>(()=>{var t=()=>{},s,e=()=>{};(()=>{class t{constructor(t,s){this.name=t,this.component=s,this.activeStepNum=0,this.DOMstrings={stepsBar:this.component,stepsBarClass:"step-progress",stepsBtnClass:"step-progress-btn",stepsBtns:this.component.querySelectorAll(".step-progress-btn")},this.removeAttributes=(t,s)=>{t.forEach(t=>{t.removeAttribute(s)})},this.findParent=(t,s)=>{let e=t;for(;!e.classList.contains(s);)e=e.parentNode;return e},this.getActiveStep=t=>Array.from(this.DOMstrings.stepsBtns).indexOf(t),this.setActiveStep=function(t){this.removeAttributes(this.DOMstrings.stepsBtns,"active"),this.removeAttributes(this.DOMstrings.stepsBtns,"aria-current"),this.DOMstrings.stepsBtns.forEach((s,e)=>{e===t&&(s.removeAttribute("disabled"),s.setAttribute("active",""),s.setAttribute("aria-current","step"))}),this.activeStepNum=t},this.setStepsNum=()=>{this.DOMstrings.stepsBtns.forEach((t,s)=>{const e=t.querySelector(".step-icon"),i=undefined;"text"===this.component.getAttribute("data-type")?t.setAttribute("step-num",`${s+1}/${this.DOMstrings.stepsBtns.length}`):e?t.setAttribute("step-num",""):t.setAttribute("step-num",s+1)})},this.setStep=t=>{const s=t<=this.DOMstrings.stepsBtns.length?t-1:0;this.setActiveStep(s)},this._setBehavior()}_setBehavior(){this.DOMstrings.stepsBar.addEventListener("click",t=>{const s=t.target;if(!s.classList.contains(`${this.DOMstrings.stepsBtnClass}`))return void t.target.parentNode.click();const e=this.getActiveStep(s);this.setActiveStep(e)}),this.setStepsNum(),this.component.hasAttribute("data-initial")?this.setStep(this.component.getAttribute("data-initial")):this.setStep(1),!this.component.classList.contains("vertical")&&this.component.hasAttribute("data-scroll")}}var s=null})(),t();var i={};return e(),i})());
//# sourceMappingURL=step.min.js.map