{"version":3,"sources":["dcc.slider.js"],"names":["Slider","[object Object]","el","items","controls","count","gutter","arguments","length","undefined","this","slider","scope","prevButton","nextButton","buildSlider","indexButtons","forEach","slide","tabIndexVal","classList","contains","querySelectorAll","link","tabIndex","options","container","mouseDrag","loop","autoHeight","preventScrollOnTouch","onInit","removeFocusableItems","responsive","768","1024","1366","sliderObject","tns","doRemoveFocusableItems","Array","from","getInfo","slideItems","events","on","resizeFunction","debounce","updateSliderHeight","window","addEventListener","CustomEvent","getSlideCount","dispatchEvent","enterButton","button","e","code","setTimeout","document","querySelector","add","detail","slideCount","visible","index","displayIndex"],"mappings":"AAAA,MAAMA,OACJC,YAAYC,EAAIC,EAAOC,EAAUC,GAC/B,IAAIC,EAASC,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,GACjFG,KAAKC,OAASD,KACdA,KAAKE,MAAQV,EACbQ,KAAKP,MAAQA,EACbO,KAAKL,MAAQA,IAAgB,EAC7BK,KAAKG,WAAaT,EAAS,GAC3BM,KAAKI,WAAaV,EAAS,GAC3BM,KAAKJ,OAASA,EACdI,KAAKK,cACLL,KAAKM,eAEPf,qBAAqBE,GACnBA,EAAMc,QAAQC,IACZ,MAAMC,EAAcD,EAAME,UAAUC,SAAS,oBAAsB,IAAM,EACzEH,EAAMI,iBAAiB,aAAaL,QAAQM,GAAQA,EAAKC,SAAWL,KAGxElB,cACE,IAAIwB,EAAU,CACZC,UAAWhB,KAAKP,MAChBwB,WAAW,EACXvB,UAAU,EACVwB,MAAM,EACNtB,OAAQI,KAAKJ,OACbO,WAAYH,KAAKG,WACjBC,WAAYJ,KAAKI,WACjBe,YAAY,EACZC,sBAAsB,EACtBC,OAAQ,IAAMrB,KAAKsB,qBAAqBtB,KAAKP,MAAMmB,iBAAiB,cACpEW,WAAY,CACVC,IAAK,CACH/B,MAAOO,KAAKL,MAAQK,KAAKL,MAAM,GAAK,GAEtC8B,KAAM,CACJhC,MAAOO,KAAKL,MAAQK,KAAKL,MAAM,GAAK,GAEtC+B,KAAM,CACJjC,MAAOO,KAAKL,MAAQK,KAAKL,MAAM,GAAK,KAI1CK,KAAK2B,aAAeC,IAAIb,GACxB,MAAMc,EAAyB,IAAM7B,KAAKsB,qBAAqBQ,MAAMC,KAAK/B,KAAK2B,aAAaK,UAAUC,aACtGjC,KAAK2B,aAAaO,OAAOC,GAAG,kBAAmBN,GAC/C7B,KAAKoC,eAAiBC,SAAS,KAC7BrC,KAAK2B,aAAaW,sBACjB,KACHtC,KAAK2B,aAAaO,OAAOC,GAAG,mBAAoBN,GAChDU,OAAOC,iBAAiB,SAAU,KAChCxC,KAAKoC,mBAEPpC,KAAK2B,aAAaO,OAAOC,GAAG,eAAgB,KAC1C,MAAM3B,EAAQ,IAAIiC,YAAY,SAAUnD,OAAOoD,cAAc1C,KAAK2B,aAAaK,YAC/EhC,KAAKE,MAAMyC,cAAcnC,KAE3BR,KAAK2B,aAAaO,OAAOC,GAAG,mBAAoB,KAC9C,MAAM3B,EAAQ,IAAIiC,YAAY,SAAUnD,OAAOoD,cAAc1C,KAAK2B,aAAaK,YAC/EhC,KAAKE,MAAMyC,cAAcnC,KAG7BjB,eACMS,KAAKG,aACPH,KAAKG,WAAWW,SAAW,EAC3Bd,KAAK4C,YAAY5C,KAAKG,aAEpBH,KAAKI,aACPJ,KAAKI,WAAWU,SAAW,EAC3Bd,KAAK4C,YAAY5C,KAAKI,aAG1Bb,YAAYsD,GACVA,EAAOL,iBAAiB,WAAYM,IACnB,UAAXA,EAAEC,MACJC,WAAW,IAAMC,SAASC,cAAc,QAAQxC,UAAUyC,IAAI,kBAAmB,MAIvF5D,qBAAqBU,GACnB,MAAO,CACLmD,OAAQ,CACNzD,MAAOM,EAAOoD,WACdC,QAASrD,EAAOR,MAChB8D,MAAOtD,EAAOuD","sourcesContent":["class Slider {\r\n constructor(el, items, controls, count, gutter = 30) {\r\n this.slider = this;\r\n this.scope = el;\r\n this.items = items;\r\n this.count = count ? count : false;\r\n this.prevButton = controls[0];\r\n this.nextButton = controls[1];\r\n this.gutter = gutter;\r\n this.buildSlider();\r\n this.indexButtons();\r\n }\r\n\r\n removeFocusableItems(items) {\r\n items.forEach(slide => {\r\n const tabIndexVal = (slide.classList.contains(`tns-slide-active`)) ? \"\" : -1;\r\n slide.querySelectorAll(`a, button`).forEach(link => link.tabIndex = tabIndexVal);\r\n });\r\n }\r\n\r\n buildSlider() {\r\n let options = {\r\n container: this.items,\r\n mouseDrag: true,\r\n controls: true,\r\n loop: false,\r\n gutter: this.gutter,\r\n prevButton: this.prevButton,\r\n nextButton: this.nextButton,\r\n autoHeight: false,\r\n preventScrollOnTouch: false,\r\n onInit: () => this.removeFocusableItems(this.items.querySelectorAll(`.tns-item`)),\r\n responsive: {\r\n 768: {\r\n items: this.count ? this.count[0] : 2\r\n },\r\n 1024: {\r\n items: this.count ? this.count[1] : 3\r\n },\r\n 1366: {\r\n items: this.count ? this.count[2] : 3\r\n }\r\n }\r\n };\r\n\r\n this.sliderObject = tns(options);\r\n \r\n const doRemoveFocusableItems = () => this.removeFocusableItems(Array.from(this.sliderObject.getInfo().slideItems));\r\n\r\n this.sliderObject.events.on(`transitionStart`, doRemoveFocusableItems);\r\n\r\n this.resizeFunction = debounce(() => {\r\n this.sliderObject.updateSliderHeight();\r\n }, 500);\r\n\r\n this.sliderObject.events.on('newBreakpointEnd', doRemoveFocusableItems);\r\n\r\n window.addEventListener(\"resize\", () => {\r\n this.resizeFunction();\r\n });\r\n\r\n this.sliderObject.events.on('indexChanged', () => {\r\n const slide = new CustomEvent('change', Slider.getSlideCount(this.sliderObject.getInfo()));\r\n this.scope.dispatchEvent(slide);\r\n });\r\n\r\n this.sliderObject.events.on(\"newBreakpointEnd\", () => {\r\n const slide = new CustomEvent('change', Slider.getSlideCount(this.sliderObject.getInfo()));\r\n this.scope.dispatchEvent(slide);\r\n })\r\n\r\n }\r\n \r\n indexButtons() {\r\n if(this.prevButton){\r\n this.prevButton.tabIndex = 0;\r\n this.enterButton(this.prevButton);\r\n }\r\n if(this.nextButton){\r\n this.nextButton.tabIndex = 0;\r\n this.enterButton(this.nextButton);\r\n }\r\n }\r\n \r\n enterButton(button){\r\n button.addEventListener(\"keypress\", e=>{\r\n if(e.code === \"Enter\"){\r\n setTimeout(()=> document.querySelector('body').classList.add('keyboard-input'), 60);\r\n }\r\n })\r\n }\r\n\r\n static getSlideCount(slider) {\r\n return {\r\n detail: {\r\n count: slider.slideCount,\r\n visible: slider.items,\r\n index: slider.displayIndex\r\n }\r\n };\r\n }\r\n\r\n}"],"file":"dcc.slider-min.js"}