@govbr-ds/core
Version:
Padrão Digital de Governo
2 lines • 2.72 kB
JavaScript
!function t(e,s){"object"==typeof exports&&"object"==typeof module?module.exports=s():"function"==typeof define&&define.amd?define("core",[],s):"object"==typeof exports?exports.core=s():e.core=s()}(self,()=>(()=>{var t=()=>{},e,s=()=>{};(()=>{class t{constructor(t,e){this.name=t,this.component=e,this.activeStageNum=0,this.DOMstrings={carouselNextBtn:this.component.querySelector(".carousel-btn-next"),carouselPages:this.component.querySelectorAll(".carousel-page"),carouselPrevBtn:this.component.querySelector(".carousel-btn-prev"),carouselStage:this.component.querySelector(".carousel-stage"),circular:this.component.hasAttribute("data-circular"),step:this.component.querySelector(".br-step")},this.step=new BRStep("br-step",this.DOMstrings.step),this._setBehavior()}removeAttributes(t,e){t.forEach(t=>{t.removeAttribute(e)})}getActiveStep(){return this.step.activeStepNum}setActiveStep(t){this.step.setActiveStep(t)}getActiveStage(){let t;return this.DOMstrings.carouselPages.forEach(e=>{e.hasAttribute("active")&&(t=e)}),t}setActiveStage(t){this.removeAttributes(this.DOMstrings.carouselPages,"active"),this.DOMstrings.carouselPages.forEach((e,s)=>{e.style.left=s>t?"100%":"-100%",s===t&&(e.setAttribute("active",""),this.activeStageNum=t)}),this.disabledBtns()}disabledBtns(){this.DOMstrings.circular||(0===this.activeStageNum?this.DOMstrings.carouselNextBtn&&(document.activeElement==this.DOMstrings.carouselPrevBtn&&this.DOMstrings.carouselNextBtn.focus(),this.DOMstrings.carouselPrevBtn.setAttribute("disabled","")):this.DOMstrings.carouselPrevBtn.removeAttribute("disabled"),this.activeStageNum===this.DOMstrings.carouselPages.length-1?this.DOMstrings.carouselNextBtn&&(document.activeElement==this.DOMstrings.carouselNextBtn&&this.DOMstrings.carouselPrevBtn.focus(),this.DOMstrings.carouselNextBtn.setAttribute("disabled","")):this.DOMstrings.carouselNextBtn.removeAttribute("disabled"))}shiftPage(t){const e=this.getActiveStage(),s=this.DOMstrings.carouselPages.length-1;let i=Array.from(this.DOMstrings.carouselPages).indexOf(e);t<0?this.DOMstrings.circular?i=0===i?s:i-=1:i-=0===i?0:1:this.DOMstrings.circular?i=i===s?0:i+=1:i+=i===s?0:1,this.setActiveStep(i),this.setActiveStage(i)}_setBehavior(){this.DOMstrings.carouselNextBtn.addEventListener("click",()=>{this.shiftPage(1)}),this.DOMstrings.carouselPrevBtn.addEventListener("click",()=>{this.shiftPage(-1)}),this.DOMstrings.step.addEventListener("click",()=>{this.setActiveStage(this.step.activeStepNum)});const t=new Swipe(this.DOMstrings.carouselStage);t.on("SWIPE_LEFT",()=>{this.shiftPage(1)}),t.on("SWIPE_RIGHT",()=>{this.shiftPage(-1)}),this.disabledBtns()}}var e=null})(),t();var i={};return s(),i})());
//# sourceMappingURL=carousel.min.js.map