{"version":3,"file":"slidingCardContainer-CnYglysX.js","sources":["../../src/scripts/modules/slidingCardContainer.ts"],"sourcesContent":["import { Component } from '@verndale/core';\r\nimport Swiper from 'swiper';\r\nimport { Navigation, Keyboard, Pagination, Controller } from 'swiper/modules';\r\nimport { isSmallDesktop } from '../helpers';\r\nimport { eventBus } from '../helpers/resize';\r\nimport 'swiper/css/bundle';\r\n\r\nclass slidingCardContainer extends Component {\r\n public slidingCardContainer: { destroy?: () => void | undefined };\r\n\r\n constructor(el: HTMLElement) {\r\n super(el);\r\n this.slidingCardContainer = {};\r\n }\r\n\r\n setupDefaults() {\r\n this.dom = {\r\n el: this.el,\r\n swiperContainer: this.el.querySelector<HTMLElement>('.swiper'),\r\n swiperWrapper: this.el.querySelector<HTMLElement>('.swiper-wrapper'),\r\n swiperItems: this.el.querySelectorAll<HTMLElement>('.swiper-slide'),\r\n pagination: this.el.querySelector<HTMLElement>('.sliding-card__slider-pagination'),\r\n prevButton: this.el.querySelector<HTMLElement>('.btn-previous-slide'),\r\n nextButton: this.el.querySelector<HTMLElement>('.btn-next-slide')\r\n };\r\n\r\n if (!isSmallDesktop()) {\r\n this.initSwiper();\r\n } else {\r\n (this.dom.swiperItems as NodeList).forEach(item => {\r\n (item as HTMLElement).classList.remove('swiper-slide');\r\n });\r\n }\r\n }\r\n\r\n addListeners() {\r\n eventBus.subscribe('breakpointChange', (breakpoint: string) => {\r\n this.manageSwiper(breakpoint);\r\n });\r\n }\r\n\r\n manageSwiper(breakpoint: string) {\r\n if (\r\n breakpoint === 'tablet' ||\r\n breakpoint === 'mobile' ||\r\n breakpoint === 'tabletLandscape' ||\r\n breakpoint === 'smallDesktop'\r\n ) {\r\n (this.dom.swiperItems as NodeList).forEach(item => {\r\n (item as HTMLElement).classList.add('swiper-slide');\r\n });\r\n this.initSwiper();\r\n } else {\r\n if (this.slidingCardContainer) {\r\n if (this.slidingCardContainer.destroy) {\r\n this.slidingCardContainer.destroy();\r\n }\r\n }\r\n (this.dom.swiperItems as NodeList).forEach(item => {\r\n (item as HTMLElement).classList.remove('swiper-slide');\r\n });\r\n }\r\n }\r\n\r\n initSwiper() {\r\n Swiper.use([Navigation, Keyboard, Pagination, Controller]);\r\n\r\n this.slidingCardContainer = new Swiper(this.dom.swiperContainer as HTMLElement, {\r\n pagination: {\r\n el: this.dom.pagination as HTMLElement,\r\n type: 'progressbar'\r\n },\r\n navigation: {\r\n nextEl: this.dom.nextButton as HTMLElement,\r\n prevEl: this.dom.prevButton as HTMLElement\r\n },\r\n slidesPerView: 1.22,\r\n autoHeight: false,\r\n loop: true\r\n });\r\n }\r\n}\r\n\r\nexport default slidingCardContainer;\r\n"],"names":["slidingCardContainer","Component","el","__publicField","isSmallDesktop","item","eventBus","breakpoint","Swiper","Navigation","Keyboard","Pagination","Controller"],"mappings":"sbAOA,MAAMA,UAA6BC,CAAU,CAG3C,YAAYC,EAAiB,CAC3B,MAAMA,CAAE,EAHHC,EAAA,6BAIL,KAAK,qBAAuB,CAAC,CAAA,CAG/B,eAAgB,CACd,KAAK,IAAM,CACT,GAAI,KAAK,GACT,gBAAiB,KAAK,GAAG,cAA2B,SAAS,EAC7D,cAAe,KAAK,GAAG,cAA2B,iBAAiB,EACnE,YAAa,KAAK,GAAG,iBAA8B,eAAe,EAClE,WAAY,KAAK,GAAG,cAA2B,kCAAkC,EACjF,WAAY,KAAK,GAAG,cAA2B,qBAAqB,EACpE,WAAY,KAAK,GAAG,cAA2B,iBAAiB,CAClE,EAEKC,IAGF,KAAK,IAAI,YAAyB,QAAgBC,GAAA,CAChDA,EAAqB,UAAU,OAAO,cAAc,CAAA,CACtD,EAJD,KAAK,WAAW,CAKlB,CAGF,cAAe,CACJC,EAAA,UAAU,mBAAqBC,GAAuB,CAC7D,KAAK,aAAaA,CAAU,CAAA,CAC7B,CAAA,CAGH,aAAaA,EAAoB,CAE7BA,IAAe,UACfA,IAAe,UACfA,IAAe,mBACfA,IAAe,gBAEd,KAAK,IAAI,YAAyB,QAAgBF,GAAA,CAChDA,EAAqB,UAAU,IAAI,cAAc,CAAA,CACnD,EACD,KAAK,WAAW,IAEZ,KAAK,sBACH,KAAK,qBAAqB,SAC5B,KAAK,qBAAqB,QAAQ,EAGrC,KAAK,IAAI,YAAyB,QAAgBA,GAAA,CAChDA,EAAqB,UAAU,OAAO,cAAc,CAAA,CACtD,EACH,CAGF,YAAa,CACXG,EAAO,IAAI,CAACC,EAAYC,EAAUC,EAAYC,CAAU,CAAC,EAEzD,KAAK,qBAAuB,IAAIJ,EAAO,KAAK,IAAI,gBAAgC,CAC9E,WAAY,CACV,GAAI,KAAK,IAAI,WACb,KAAM,aACR,EACA,WAAY,CACV,OAAQ,KAAK,IAAI,WACjB,OAAQ,KAAK,IAAI,UACnB,EACA,cAAe,KACf,WAAY,GACZ,KAAM,EAAA,CACP,CAAA,CAEL"}