UNPKG

@govbr-ds/core

Version:

Padrão Digital de Governo

2 lines 3.85 kB
!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.DOMstrings={stepFormPanelClass:"wizard-panel",stepFormPanels:this.component.querySelectorAll(".wizard-panel"),stepNextBtnClass:"wizard-btn-next",stepPrevBtnClass:"wizard-btn-prev",stepsBar:this.component.querySelector(".wizard-progress"),stepsBarClass:"wizard-progress",stepsBtnClass:"wizard-progress-btn",stepsBtns:this.component.querySelectorAll(".wizard-progress-btn"),stepsForm:this.component.querySelector(".wizard-form")},this.removeAttributes=(t,s)=>{t.forEach((t=>{t.removeAttribute(s)}))},this.setAttributes=(t,s,e)=>{t.forEach((t=>{t.setAttribute(s,e)}))},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.setAttributes(this.DOMstrings.stepsBtns,"aria-selected","false"),this.DOMstrings.stepsBtns.forEach(((s,e)=>{e===t&&(s.removeAttribute("disabled"),s.setAttribute("active",""),s.setAttribute("aria-selected","true"))}))},this.setFocusOnFirstElementPanel=t=>{if(t){const s=undefined;this.DOMstrings.stepFormPanels[t].querySelectorAll(".wizard-panel-content *").forEach((t=>{t.tabIndex>=0&&t.focus()}))}},this.getActivePanel=()=>{let t;return this.DOMstrings.stepFormPanels.forEach((s=>{s.hasAttribute("active")&&(t=s)})),t},this.setActivePanel=t=>{this.removeAttributes(this.DOMstrings.stepFormPanels,"active"),this.DOMstrings.stepFormPanels.forEach(((s,e)=>{e===t&&s.setAttribute("active","")}))},this.setStepsNum=()=>{this.DOMstrings.stepsBtns.forEach(((t,s)=>{t.setAttribute("step",s+1)}))},this.setStep=t=>{const s=t<=this.DOMstrings.stepsBtns.length?t-1:0;this.setActivePanel(s),this.setFocusOnFirstElementPanel(s),this.setActiveStep(s)},this.collapseSteps=()=>{this.component.setAttribute("collapsed","")},this.expandSteps=()=>{this.component.removeAttribute("collapsed")},this._setBehavior()}_setBehavior(){if(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.setActivePanel(e),this.setFocusOnFirstElementPanel(e)})),this.DOMstrings.stepsForm.addEventListener("click",(t=>{const s=t.target;if(!s.classList.contains(`${this.DOMstrings.stepPrevBtnClass}`)&&!s.classList.contains(`${this.DOMstrings.stepNextBtnClass}`))return;const e=this.findParent(s,`${this.DOMstrings.stepFormPanelClass}`);let i=Array.from(this.DOMstrings.stepFormPanels).indexOf(e);s.classList.contains(`${this.DOMstrings.stepPrevBtnClass}`)?(i-=1,e.style.left="1%"):(i+=1,e.style.left="-1%"),this.setActiveStep(i),this.setActivePanel(i),this.setFocusOnFirstElementPanel(i)})),this.setStepsNum(),this.component.hasAttribute("step")&&this.setStep(this.component.getAttribute("step")),this.component.hasAttribute("scroll")&&!this.component.hasAttribute("vertical")){const t=Math.round(100/this.DOMstrings.stepsBtns.length)-.5;this.DOMstrings.stepsBar.style.gridTemplateColumns=`repeat(auto-fit, minmax(100px, ${t}% ))`}const t=new Swipe(this.DOMstrings.stepsBar);this.component.hasAttribute("vertical")?(t.on("SWIPE_LEFT",(()=>{this.collapseSteps()})),t.on("SWIPE_RIGHT",(()=>{this.expandSteps()})),this.DOMstrings.stepsForm.ontouchstart=()=>{this.collapseSteps()}):(this.DOMstrings.stepsBar.ontouchstart=()=>{this.expandSteps()},this.DOMstrings.stepsForm.ontouchstart=()=>{this.collapseSteps()})}}var s=null})(),t();var i={};return e(),i})())); //# sourceMappingURL=wizard.min.js.map