{"version":3,"file":"455.a015192c8dd15c9bf2ee.js","mappings":"mJAEAA,EAAAA,GAAKC,eAAeC,EAAAA,GAqFpB,UAnFA,MACEC,WAAAA,GACEC,KAAKC,OAASC,SAASC,iBAAiB,qBACxCH,KAAKI,aAAeF,SAASG,cAAc,uBAC3CL,KAAKM,cAAgBJ,SAASG,cAAc,qBAC5CL,KAAKO,cAAgBL,SAASG,cAAc,4BAC5CL,KAAKQ,aAAeN,SAASG,cAAc,4BAC3CL,KAAKS,MAAQT,KAAKI,aAAaM,cAAgBC,OAAOC,iBAAiBZ,KAAKI,cAC5EJ,KAAKa,YAAcC,KAAKC,MAAMC,WAAWhB,KAAKS,MAAMI,cACpDb,KAAKiB,aAAejB,KAAKM,cAAcI,cAAgBC,OAAOC,iBAAiBZ,KAAKM,eACpFN,KAAKkB,mBAAqBJ,KAAKC,MAAMC,WAAWhB,KAAKiB,aAAaJ,cAElEb,KAAKmB,MACP,CACAA,IAAAA,GACEnB,KAAKO,cAAca,iBAAiB,SAAS,KAC3C,MAAMC,EAAcrB,KAAKsB,iBACzBtB,KAAKuB,KAAKF,EAAY,IAGxBrB,KAAKQ,aAAaY,iBAAiB,SAAS,KAC1C,MAAMC,EAAcrB,KAAKsB,iBACzBtB,KAAKwB,KAAKH,EAAY,IAGxBrB,KAAKI,aAAagB,iBAAiB,UAAU,KAC3C,MAAMC,EAAcrB,KAAKsB,iBAGrBD,GAFkBrB,KAAKI,aAAaqB,YAAczB,KAAKI,aAAasB,YAErC1B,KAAKa,YAAcb,KAAKkB,mBACzDlB,KAAKO,cAAcoB,UAAUC,IAAI,+BAEjC5B,KAAKO,cAAcoB,UAAUE,OAAO,+BAGlCR,EAAerB,KAAKa,YAAcb,KAAKkB,mBACzClB,KAAKQ,aAAamB,UAAUC,IAAI,+BAEhC5B,KAAKQ,aAAamB,UAAUE,OAAO,8BACrC,GAEJ,CAEAN,IAAAA,CAAKF,GACH,MAAMS,EAAkB,GACxB,IAAIC,EAMJ,GALA/B,KAAKC,OAAO+B,SAAQC,IACdA,EAAMC,WAAab,EAAcrB,KAAKkB,mBAAqBlB,KAAKa,aAClEiB,EAAgBK,KAAMF,EAAMC,WAC9B,IAEEJ,EAAgBM,OAAQ,CAIxBL,EAHeD,EAAgBO,MAAK,CAACC,EAAGC,IAAMD,EAAIC,IAGhC,GAIpBvC,KAAKI,aAAaoC,SAAS,CAAEC,IAAK,EAAGC,KAAOX,EAAS/B,KAAKkB,mBAAqBlB,KAAKa,YAAc8B,SAAU,UAC9G,CACF,CAEAnB,IAAAA,CAAKH,GACH,MAAMS,EAAkB,GACxB,IAAIC,EACJ/B,KAAKC,OAAO+B,SAAQC,IACdA,EAAMC,WAAalC,KAAKkB,mBAAqBlB,KAAKa,YAAcQ,GAClES,EAAgBK,KAAKF,EAAMC,WAC7B,IAEEJ,EAAgBM,SAElBL,EADiBD,EAAgBO,MAAK,CAACC,EAAGC,IAAMA,EAAID,IAClC,GAClBtC,KAAKI,aAAaoC,SAAS,CAAEC,IAAK,EAAGC,KAAOX,EAAS/B,KAAKkB,mBAAqBlB,KAAKa,YAAc8B,SAAU,WAEhH,CAEArB,cAAAA,GACE,OAAOtB,KAAKI,aAAawC,UAC3B,E","sources":["webpack://pratt-parent/./static/js/components/slider-controls.js"],"sourcesContent":["import { gsap, ScrollTrigger } from 'gsap/all';\n\ngsap.registerPlugin(ScrollTrigger);\n\nclass SliderControls {\n constructor() {\n this.slides = document.querySelectorAll('.js-slider__slide');\n this.slides__list = document.querySelector('.js-slider__wrapper');\n this.slides__inner = document.querySelector('.js-slider__inner');\n this.control_right = document.querySelector('.pagination__arrow--next');\n this.control_left = document.querySelector('.pagination__arrow--prev');\n this.style = this.slides__list.currentStyle || window.getComputedStyle(this.slides__list);\n this.paddingLeft = Math.round(parseFloat(this.style.paddingLeft));\n this.inner__style = this.slides__inner.currentStyle || window.getComputedStyle(this.slides__inner);\n this.inner__paddingLeft = Math.round(parseFloat(this.inner__style.paddingLeft));\n\n this.init();\n }\n init() {\n this.control_right.addEventListener('click', () => {\n const scrollPoint = this.getScrollPoint();\n this.next(scrollPoint);\n });\n\n this.control_left.addEventListener('click', () => {\n const scrollPoint = this.getScrollPoint();\n this.prev(scrollPoint);\n });\n\n this.slides__list.addEventListener('scroll', () => {\n const scrollPoint = this.getScrollPoint();\n const maxScrollLeft = this.slides__list.scrollWidth - this.slides__list.clientWidth;\n\n if (scrollPoint >= maxScrollLeft - this.paddingLeft - this.inner__paddingLeft) {\n this.control_right.classList.add('pagination__arrow--disabled');\n } else {\n this.control_right.classList.remove('pagination__arrow--disabled');\n }\n\n if (scrollPoint < (this.paddingLeft + this.inner__paddingLeft)) {\n this.control_left.classList.add('pagination__arrow--disabled');\n } else {\n this.control_left.classList.remove('pagination__arrow--disabled');\n }\n });\n }\n\n next(scrollPoint) {\n const possibleTargets = [];\n let target;\n this.slides.forEach(slide => {\n if (slide.offsetLeft > scrollPoint + this.inner__paddingLeft + this.paddingLeft) {\n possibleTargets.push((slide.offsetLeft));\n }\n });\n if (possibleTargets.length) {\n const smallest = possibleTargets.sort((a, b) => a - b);\n if (scrollPoint === 0) {\n // User hasn't scrolled yet so we need to set the target as the second array element\n target = smallest[0];\n } else {\n target = smallest[0];\n }\n this.slides__list.scrollTo({ top: 0, left: (target - this.inner__paddingLeft - this.paddingLeft), behavior: 'smooth' });\n }\n }\n\n prev(scrollPoint) {\n const possibleTargets = [];\n let target;\n this.slides.forEach(slide => {\n if (slide.offsetLeft - this.inner__paddingLeft - this.paddingLeft < scrollPoint) {\n possibleTargets.push(slide.offsetLeft);\n }\n });\n if (possibleTargets.length) {\n const greatest = possibleTargets.sort((a, b) => b - a);\n target = greatest[0];\n this.slides__list.scrollTo({ top: 0, left: (target - this.inner__paddingLeft - this.paddingLeft), behavior: 'smooth' });\n }\n }\n\n getScrollPoint() {\n return this.slides__list.scrollLeft;\n }\n}\n\nexport default SliderControls;\n"],"names":["gsap","registerPlugin","ScrollTrigger","constructor","this","slides","document","querySelectorAll","slides__list","querySelector","slides__inner","control_right","control_left","style","currentStyle","window","getComputedStyle","paddingLeft","Math","round","parseFloat","inner__style","inner__paddingLeft","init","addEventListener","scrollPoint","getScrollPoint","next","prev","scrollWidth","clientWidth","classList","add","remove","possibleTargets","target","forEach","slide","offsetLeft","push","length","sort","a","b","scrollTo","top","left","behavior","scrollLeft"],"sourceRoot":""}